:root{--scroll-progress:0}
body::before{content:"";position:fixed;z-index:100;top:0;left:0;width:calc(var(--scroll-progress)*1%);height:2px;background:#008aff;pointer-events:none}
.site-head{transition:color .35s,background .35s,transform .35s}
.site-head.scrolled{position:fixed;color:#05275b;background:rgba(252,253,254,.86);backdrop-filter:blur(18px);border-bottom:1px solid rgba(5,39,91,.1)}
.site-head.scrolled nav{height:72px}
.hero>video{position:absolute;inset:0;height:100%;will-change:transform;transform:scale(calc(1.03 + var(--scroll-progress)*.0007)) translateY(calc(var(--scroll-progress)*.7px))}
.hero h1{animation:heroIn 1.25s cubic-bezier(.16,1,.3,1) .12s both}
.hero-copy p{animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .55s both}
.quick{animation:fadeUp .9s cubic-bezier(.16,1,.3,1) .78s both}
@keyframes heroIn{from{opacity:0;transform:translateY(70px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
.motion-ready{opacity:.001;transform:translateY(70px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.motion-ready.is-in{opacity:1;transform:none}
.motion-ready .motion-child{opacity:0;transform:translateY(34px);transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);transition-delay:calc(var(--i)*80ms + 120ms)}
.motion-ready.is-in .motion-child{opacity:1;transform:none}
.media-reveal{overflow:hidden;clip-path:inset(0 0 100% 0 round 18px);transition:clip-path 1.2s cubic-bezier(.16,1,.3,1)}
.is-in .media-reveal,.media-reveal.is-in{clip-path:inset(0 0 0 0 round 18px)}
.media-reveal img{transform:scale(1.12);transition:transform 1.5s cubic-bezier(.16,1,.3,1)}
.is-in .media-reveal img,.media-reveal.is-in img{transform:scale(1)}
.service-list a,.artist-strip div,.cards>a,.team-grid article,.gallery-grid figure{opacity:0;transform:translateY(35px);transition:opacity .7s,transform .7s;transition-delay:calc(var(--i)*70ms)}
.is-in .service-list a,.is-in .artist-strip div,.is-in .cards>a,.is-in .team-grid article,.is-in .gallery-grid figure{opacity:1;transform:none}
.window img{will-change:transform;transform:scale(1.08) translateY(calc((var(--scroll-progress) - 45)*-.9px))}
.window-type{will-change:transform}
.window.portal{height:230vh;padding:0;background:#05275b;overflow:visible}
.portal .portal-stage{position:sticky;top:0;height:100vh;overflow:hidden;background:#dce9f2}
.portal .portal-interior{position:absolute;inset:0;width:100%;height:100%;border-radius:0;object-fit:cover;transform-origin:23% 44%;will-change:transform;z-index:1}
.portal-sky{position:absolute;inset:-5%;z-index:2;background:url('/static/img/sky-open.jpg') center/cover no-repeat;opacity:0;transform:scale(1.18);will-change:opacity,transform}
.portal .window-type{z-index:3;top:42%;color:white;text-shadow:0 2px 30px rgba(5,39,91,.28)}
.portal-caption{position:absolute;z-index:4;right:6vw;bottom:8vh;margin:0;color:white;font:italic 54px/1 var(--serif);text-align:right;opacity:0;transform:translateY(30px);will-change:opacity,transform}
.orb{transition:transform .25s ease-out;will-change:transform}
.pill{position:relative;overflow:hidden;transition:color .3s,border-color .3s,transform .3s}
.pill::after{content:"";position:absolute;inset:0;background:#008aff;transform:translateY(102%);transition:transform .35s cubic-bezier(.16,1,.3,1);z-index:-1}
.pill:hover{color:white;border-color:#008aff;transform:translateY(-2px)}
.pill:hover::after{transform:none}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.hero>video{display:none}.hero{background:url('/static/img/hero.jpg') center/cover no-repeat}.motion-ready,.motion-child,.service-list a,.artist-strip div,.cards>a,.team-grid article,.gallery-grid figure{opacity:1!important;transform:none!important}.media-reveal{clip-path:none!important}.window.portal{height:100vh}.portal .portal-interior{display:none}.portal-sky{opacity:1!important;transform:none!important}.portal-caption{opacity:1!important;transform:none!important}}
