.loader{position:fixed;inset:0;z-index:1000;background:#030814;display:grid;place-items:center;transition:opacity .65s,visibility .65s}.loader img{width:min(290px,65vw);animation:loaderLogo .8s both}.loader i{position:absolute;bottom:20%;height:2px;background:linear-gradient(90deg,var(--blue),var(--pink));animation:load 1s both}.loaded .loader{opacity:0;visibility:hidden}.hero-kicker,.hero-lead,.hero-actions,.floating-code,.scroll{opacity:0;transform:translateY(22px)}.hero h1 i{transform:translateY(110%)}.loaded .hero-kicker{animation:enter .7s .35s forwards}.loaded .hero h1 span:nth-child(1) i{animation:title .85s .42s forwards}.loaded .hero h1 span:nth-child(2) i{animation:title .85s .55s forwards}.loaded .hero h1 span:nth-child(3) i{animation:title .85s .68s forwards}.loaded .hero-lead{animation:enter .75s .82s forwards}.loaded .hero-actions{animation:enter .75s .95s forwards}.loaded .floating-code,.loaded .scroll{animation:enter .7s 1.1s forwards}.loaded .hero-bg{animation:bgZoom 2s both}.o1{animation:float1 8s ease-in-out infinite}.o2{animation:float2 6s ease-in-out infinite}.grid{animation:gridMove 18s linear infinite}.animate{opacity:0;filter:blur(7px);transition:opacity .85s cubic-bezier(.2,.7,.2,1),transform .85s cubic-bezier(.2,.7,.2,1),filter .85s}.anim-up{transform:translateY(48px)}.anim-left{transform:translateX(-55px)}.anim-right{transform:translateX(55px)}.anim-scale{transform:scale(.93)}.animate.visible{opacity:1;filter:blur(0);transform:none}.service-card.visible,.steps article.visible,.values article.visible{transition-delay:var(--delay)}.placeholder:after{content:"";position:absolute;inset:-100% auto -100% -50%;width:30%;background:linear-gradient(90deg,transparent,#ffffff88,transparent);transform:rotate(15deg);animation:shine 6s ease-in-out infinite}.placeholder{position:relative}.immersive.visible .immersive-bg{animation:slowZoom 12s ease-in-out infinite alternate}.floating-code{animation:floatCode 4s ease-in-out infinite!important}@keyframes load{from{width:0}to{width:110px}}@keyframes loaderLogo{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes enter{to{opacity:1;transform:none}}@keyframes title{to{transform:none}}@keyframes bgZoom{from{opacity:.2;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes float1{50%{transform:translate(27px,-23px) scale(1.08)}}@keyframes float2{50%{transform:translate(-20px,28px) scale(.9)}}@keyframes gridMove{to{background-position:75px 75px}}@keyframes slowZoom{to{transform:scale(1.08)}}@keyframes floatCode{50%{transform:translateY(-12px)}}@keyframes shine{0%,65%{left:-50%}85%,100%{left:145%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.loader{display:none}.animate,.hero-kicker,.hero-lead,.hero-actions,.floating-code,.scroll{opacity:1!important;filter:none!important;transform:none!important}.hero h1 i{transform:none!important}}
/* FX-WOW-V3 */
html.js .fx{opacity:0;-webkit-filter:blur(10px);filter:blur(10px);-webkit-transition-property:opacity,-webkit-transform,-webkit-filter;transition-property:opacity,transform,filter;-webkit-transition-duration:900ms;transition-duration:900ms;-webkit-transition-delay:var(--fx-delay,0ms);transition-delay:var(--fx-delay,0ms);-webkit-transition-timing-function:cubic-bezier(.16,1,.3,1);transition-timing-function:cubic-bezier(.16,1,.3,1);will-change:opacity,transform,filter}
html.js .fx-reveal{-webkit-transform:translate3d(0,58px,0) rotateX(4deg);transform:translate3d(0,58px,0) rotateX(4deg);-webkit-transform-origin:center bottom;transform-origin:center bottom}
html.js .fx-rise{-webkit-transform:translate3d(0,42px,0);transform:translate3d(0,42px,0)}
html.js .fx-slide{-webkit-transform:translate3d(-52px,0,0);transform:translate3d(-52px,0,0)}
html.js .fx-pop{-webkit-transform:translate3d(0,34px,0) scale(.92);transform:translate3d(0,34px,0) scale(.92)}
html.js .fx-image{-webkit-transform:translate3d(0,44px,0) scale(.94);transform:translate3d(0,44px,0) scale(.94);-webkit-clip-path:inset(12% 0 0 0 round 24px);clip-path:inset(12% 0 0 0 round 24px)}
html.js .fx.fx-visible{opacity:1!important;-webkit-filter:blur(0)!important;filter:blur(0)!important;-webkit-transform:none!important;transform:none!important;-webkit-clip-path:inset(0 0 0 0 round 24px)!important;clip-path:inset(0 0 0 0 round 24px)!important}
.logo-marquee{position:relative}.logo-marquee:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--blue),var(--pink),transparent);background-size:200% 100%;-webkit-animation:lineFlow 4s linear infinite;animation:lineFlow 4s linear infinite}
.service-card:before,.steps article:before,.values article:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 20%,rgba(255,255,255,.18) 42%,transparent 64%);-webkit-transform:translateX(-130%);transform:translateX(-130%);-webkit-transition:-webkit-transform .9s cubic-bezier(.16,1,.3,1);transition:transform .9s cubic-bezier(.16,1,.3,1)}
.service-card:hover:before,.steps article:hover:before,.values article:hover:before{-webkit-transform:translateX(130%);transform:translateX(130%)}
.steps article,.values article{position:relative;overflow:hidden}.heading h2,.split h2{background:linear-gradient(90deg,var(--ink) 0%,var(--ink) 45%,var(--blue) 55%,var(--ink) 70%);background-size:240% auto;-webkit-background-clip:text;background-clip:text;-webkit-animation:textSheen 9s ease-in-out infinite;animation:textSheen 9s ease-in-out infinite}
.dark-slot,.immersive,.brand-interlude{background-color:var(--ink)}
@-webkit-keyframes lineFlow{to{background-position:-200% 0}}@keyframes lineFlow{to{background-position:-200% 0}}
@-webkit-keyframes textSheen{0%,72%,100%{background-position:100% center}84%{background-position:-100% center}}@keyframes textSheen{0%,72%,100%{background-position:100% center}84%{background-position:-100% center}}
@media(prefers-reduced-motion:reduce){html.js .fx{opacity:1!important;-webkit-filter:none!important;filter:none!important;-webkit-transform:none!important;transform:none!important;-webkit-clip-path:none!important;clip-path:none!important;transition:none!important}.logo-marquee:after,.heading h2,.split h2{animation:none!important}}

html.js .page-hero>.eyebrow,html.js .page-hero>h1,html.js .page-hero>i{opacity:0;-webkit-transform:translate3d(0,32px,0);transform:translate3d(0,32px,0)}
html.loaded .page-hero>.eyebrow{-webkit-animation:enter .7s .3s forwards;animation:enter .7s .3s forwards}
html.loaded .page-hero>h1{-webkit-animation:enter .85s .45s forwards;animation:enter .85s .45s forwards}
html.loaded .page-hero>i{-webkit-animation:enter .7s .65s forwards;animation:enter .7s .65s forwards}

/* FX-V31: classic opacity + transform for Edge/Chrome/Firefox/Safari */
html.js .v31{opacity:0;-webkit-transform:translate3d(0,46px,0);transform:translate3d(0,46px,0);-webkit-transition:opacity .82s cubic-bezier(.2,.75,.25,1),-webkit-transform .82s cubic-bezier(.2,.75,.25,1);transition:opacity .82s cubic-bezier(.2,.75,.25,1),transform .82s cubic-bezier(.2,.75,.25,1);-webkit-transition-delay:var(--v31-delay,0ms);transition-delay:var(--v31-delay,0ms);will-change:opacity,transform}
html.js .v31-left{-webkit-transform:translate3d(-48px,0,0);transform:translate3d(-48px,0,0)}
html.js .v31-right{-webkit-transform:translate3d(48px,0,0);transform:translate3d(48px,0,0)}
html.js .v31-scale{-webkit-transform:translate3d(0,24px,0) scale(.94);transform:translate3d(0,24px,0) scale(.94)}
html.js .v31-show{opacity:1!important;-webkit-transform:translate3d(0,0,0) scale(1)!important;transform:translate3d(0,0,0) scale(1)!important}
.service-card,.project-grid>a,.portfolio article,.founder-photo{-webkit-transition:transform .35s cubic-bezier(.2,.75,.25,1),box-shadow .35s ease;transition:transform .35s cubic-bezier(.2,.75,.25,1),box-shadow .35s ease}
.service-card:hover,.project-grid>a:hover,.portfolio article:hover{-webkit-transform:translate3d(0,-8px,0);transform:translate3d(0,-8px,0);box-shadow:0 28px 70px rgba(5,11,25,.16)}
@-webkit-keyframes v31Float{0%,100%{-webkit-transform:translate3d(0,0,0)}50%{-webkit-transform:translate3d(18px,-18px,0)}}@keyframes v31Float{0%,100%{transform:translate3d(0,0,0)}50%{transform:translate3d(18px,-18px,0)}}
.o1{-webkit-animation:v31Float 8s ease-in-out infinite!important;animation:v31Float 8s ease-in-out infinite!important}.o2{-webkit-animation:v31Float 6s ease-in-out infinite reverse!important;animation:v31Float 6s ease-in-out infinite reverse!important}
@media(prefers-reduced-motion:reduce){html.js .v31{opacity:1!important;-webkit-transform:none!important;transform:none!important;transition:none!important}}
