/* Prime motion language: a measured editorial layer on top of the base layout. */
.scroll-progress{position:fixed;z-index:100;top:0;left:0;height:3px;width:0;background:var(--lime);box-shadow:0 0 16px #d8f36a99;transform-origin:left center;pointer-events:none}
.brand{width:205px;height:88px;position:relative;z-index:1;overflow:visible}.brand img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 14px #d8e7ff44);transition:filter .35s ease,transform .45s cubic-bezier(.2,.8,.2,1)}.brand:hover img{filter:drop-shadow(0 0 19px #d8f36a66);transform:scale(1.035)}
.hero{isolation:isolate}.hero-grid{position:absolute;z-index:0;inset:0;opacity:.22;pointer-events:none;background-image:linear-gradient(#d8f36a20 1px,transparent 1px),linear-gradient(90deg,#d8f36a20 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,#000 0%,#000 45%,transparent 80%);animation:grid-drift 24s linear infinite}.hero-orbit{position:absolute;z-index:0;right:29%;top:11%;width:min(520px,42vw);aspect-ratio:1;border:1px solid #d8f36a2c;border-radius:50%;transform:rotate(-19deg);pointer-events:none}.hero-orbit:before,.hero-orbit:after{content:"";position:absolute;border:1px solid #d8f36a22;border-radius:50%;inset:8%;transform:rotate(42deg)}.hero-orbit:after{inset:25%;border-color:#ffffff18;transform:rotate(-26deg)}.hero-orbit span{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--lime);top:11%;left:53%;box-shadow:0 0 20px var(--lime);animation:orbit-dot 8s linear infinite}.hero-image{z-index:1;clip-path:polygon(4% 0,100% 0,100% 100%,0 100%);transition:clip-path 1.1s cubic-bezier(.18,.8,.25,1)}.hero-image:before{content:"";position:absolute;z-index:3;left:0;right:0;top:-2px;height:2px;background:var(--lime);box-shadow:0 0 15px #d8f36a99;animation:scanline 9s ease-in-out infinite}.hero-image img{--parallax-y:0px;transform:translate3d(0,var(--parallax-y),0) scale(1.045);animation:hero-image-enhanced 1.45s cubic-bezier(.2,.75,.2,1) both}.hero-image:after{background:linear-gradient(90deg,#0b1c2a35,transparent 25%,#00000005),linear-gradient(0deg,#0b1c2a20,transparent 60%)}.hero-content{z-index:2}.hero-copy .eyebrow{animation:rise-in .7s .1s both}.hero-copy h1{animation:rise-in .8s .18s both}.hero-copy .hero-description{animation:rise-in .8s .28s both}.hero-copy .hero-actions{animation:rise-in .8s .38s both}.hero-copy .hero-bottom{animation:rise-in .8s .48s both}.hero-copy h1 em{display:inline-block;animation:accent-pulse 4s 1.6s ease-in-out infinite}.image-label{animation:label-in .9s .85s both}.scroll-cue{animation:cue-bob 2.6s ease-in-out infinite;transition:background .25s,transform .25s}.scroll-cue:hover{background:#e6ff82;transform:translateY(-4px)}.hero:after{content:"";position:absolute;z-index:1;left:var(--mx,-20%);top:var(--my,45%);width:420px;height:420px;pointer-events:none;opacity:0;transform:translate(-50%,-50%);background:radial-gradient(circle,#d8f36a25 0,transparent 67%);transition:opacity .45s ease}.hero.pointer-active:after{opacity:.75}
.service,.project,.calculator,.contact-form{transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .45s ease}.service:hover{transform:translateY(-9px);box-shadow:0 20px 45px #132b3c14}.service-dark:hover{box-shadow:0 22px 50px #0b1c2a32}.project{transform-style:preserve-3d;will-change:transform}.project:hover{transform:translateY(-6px)}.project-image{clip-path:inset(0);transition:clip-path .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}.project-image:hover{clip-path:inset(7px);box-shadow:0 18px 30px #102a3c22}.project-image:hover .project-open{transform:rotate(45deg)}.project-open{transition:transform .35s cubic-bezier(.2,.8,.2,1)}.calculator:focus-within{box-shadow:0 20px 50px #102a3c10;transform:translateY(-4px)}.contact-form:focus-within{box-shadow:0 20px 50px #07152135;transform:translateY(-4px)}.button{position:relative;overflow:hidden}.button:after{content:"";position:absolute;inset:0;transform:translateX(-110%) skewX(-15deg);background:linear-gradient(100deg,transparent 25%,#ffffff9c 48%,transparent 70%);transition:transform .65s ease}.button:hover:after{transform:translateX(110%) skewX(-15deg)}
@keyframes grid-drift{to{background-position:72px 72px}}@keyframes orbit-dot{to{transform:rotate(360deg) translateX(min(19vw,240px)) rotate(-360deg)}}@keyframes scanline{0%,100%{top:0;opacity:.1}45%{top:100%;opacity:.75}53%{top:100%;opacity:0}}@keyframes hero-image-enhanced{from{opacity:.2;transform:translate3d(0,30px,0) scale(1.13)}to{opacity:1;transform:translate3d(0,var(--parallax-y),0) scale(1.045)}}@keyframes rise-in{from{opacity:0;transform:translateY(25px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}@keyframes label-in{from{opacity:0;transform:translateX(25px)}to{opacity:1;transform:none}}@keyframes cue-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}@keyframes ticker-move{to{transform:translateX(-50%)}}@keyframes accent-pulse{0%,100%{text-shadow:0 0 0 transparent}50%{text-shadow:0 0 25px #d8f36a44}}
@media(max-width:1150px){.brand{width:165px;height:84px}.hero-orbit{right:25%}.ticker-track{gap:22px}}
@media(max-width:850px){.brand{width:145px;height:76px}.hero-grid{background-size:52px 52px;opacity:.16}.hero-orbit{width:47vw;right:4%;top:18%;opacity:.7}.hero-image{clip-path:none}.ticker-track{font-size:11px;gap:18px;padding-block:11px}.project:hover,.service:hover,.calculator:focus-within,.contact-form:focus-within{transform:none}}
@media(max-width:600px){.brand{width:137px;height:70px}.brand img{filter:drop-shadow(0 0 11px #d8e7ff3d)}.hero-grid{background-size:40px 40px;mask-image:linear-gradient(180deg,#000,transparent 70%)}.hero-orbit{width:74vw;right:-18%;top:7%;opacity:.45}.hero-image:before{display:none}.hero-image img{animation:hero-image-mobile 1.1s cubic-bezier(.2,.75,.2,1) both}.image-label{animation:label-in .8s .4s both}.ticker-track{animation-duration:24s}.service:hover{box-shadow:none}.project-image:hover{clip-path:none;box-shadow:none}.project-image:hover .project-open{transform:none}}
@media(prefers-reduced-motion:reduce){.scroll-progress,.hero-grid,.hero-orbit span,.hero-image:before,.hero-copy .eyebrow,.hero-copy h1,.hero-copy .hero-description,.hero-copy .hero-actions,.hero-copy .hero-bottom,.hero-copy h1 em,.image-label,.scroll-cue,.ticker-track{animation:none!important}.hero-image img{animation:none!important;transform:none}.project,.service,.calculator,.contact-form{transition:none!important}}
@keyframes hero-image-mobile{from{opacity:.2;transform:translate3d(0,25px,0) scale(1.1)}to{opacity:1;transform:translate3d(0,var(--parallax-y),0) scale(1.045)}}
