/* Motion is an enhancement; the underlying layout and no-JS content stay intact. */
.scene-label{z-index:4}.core-toggle{font:inherit;letter-spacing:inherit;color:#c2c2b8;background:none;border:0;padding:10px 0;text-align:inherit;min-height:44px}.core-toggle:hover,.core-toggle[aria-pressed="true"]{color:#ff7845}.core-toggle span{margin-left:8px;color:#ff5c28}.scene-label:has(.core-toggle){pointer-events:auto}
.motion-word{display:inline-block;vertical-align:baseline}
.motion-ready:not(.motion-paused) .motion-heading:not(.is-revealed) .motion-word{opacity:0;transform:translate3d(0,.7em,0) rotate(3deg);clip-path:inset(0 0 100% 0)}
.motion-ready .motion-heading.is-revealed .motion-word{transition:transform 850ms cubic-bezier(.16,1,.3,1),opacity 650ms ease,clip-path 850ms cubic-bezier(.16,1,.3,1);transition-delay:var(--word-delay,0ms);opacity:1;transform:none;clip-path:inset(-20% -10% -25% -10%)}
.motion-ready:not(.motion-paused) .motion-enter:not(.is-revealed){opacity:0;transform:translate3d(0,24px,0)}
.motion-ready .motion-enter.is-revealed{opacity:1;transform:none;transition:opacity 850ms ease var(--enter-delay,0ms),transform 950ms cubic-bezier(.16,1,.3,1) var(--enter-delay,0ms)}
.motion-ready:not(.motion-paused) #scene{animation:scene-arrival 1.6s cubic-bezier(.16,1,.3,1) both}
@keyframes scene-arrival{from{opacity:0;transform:translate3d(0,45px,0) scale(.93)}to{opacity:1;transform:none}}
.motion-ready:not(.motion-paused) .scroll-arrow{display:inline-block;animation:scroll-invitation 2.8s ease-in-out infinite}
@keyframes scroll-invitation{0%,70%,100%{transform:translateY(0)}35%{transform:translateY(6px)}}
.motion-ready:not(.motion-paused) .asterisk{animation:asterisk-orbit 30s linear infinite;transform-origin:50% 50%}
@keyframes asterisk-orbit{to{transform:rotate(360deg)}}
.hero-copy{translate:0 var(--hero-shift,0px)}
.portrait-wrap img{scale:1.07;translate:0 var(--portrait-shift,0px)}
.depth-card{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform 350ms cubic-bezier(.2,.7,.2,1);transform-origin:center;isolation:isolate}
.depth-card::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:4;background:radial-gradient(circle at var(--light-x,50%) var(--light-y,50%),#fff2,transparent 60%);opacity:0;transition:opacity .35s}
.depth-card.pointer-active::after{opacity:1}
.project-open{transition:background .3s,color .3s,rotate .35s}
.project-visual:hover .project-open{background:#ff5c28;color:#101010;rotate:45deg}
.pill,.nav-contact,.work-controls button{transition:translate 220ms ease,transform .3s,background .3s,color .3s}
.pill span,.nav-contact span,.text-link{transition:translate .35s ease,color .25s}
.pill:hover span,.nav-contact:hover span{translate:3px -3px}
.text-link{background:linear-gradient(#ff5c28,#ff5c28) 0 100%/0 1px no-repeat;transition:background-size .4s,color .3s}
.text-link:hover{background-size:100% 1px}
.stats strong{font-variant-numeric:tabular-nums;min-height:1.2em}
.process-grid{position:relative}
.process-grid::before{content:"";height:1px;position:absolute;left:0;right:0;top:0;transform:scaleX(var(--process-progress,0));transform-origin:left;background:#ff5c28;z-index:1}
.brief-form input,.brief-form textarea,.brief-form select{transition:border-color .3s,box-shadow .3s}
.brief-form input:focus,.brief-form textarea:focus,.brief-form select:focus{border-color:#ff5c28;box-shadow:0 1px #ff5c28}
.motion-paused .motion-word,.motion-paused .motion-enter{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}
.motion-paused #scene,.motion-paused .asterisk,.motion-paused .scroll-arrow{animation:none!important}
.motion-paused .hero-copy,.motion-paused .portrait-wrap img,.motion-paused .pill,.motion-paused .nav-contact,.motion-paused .work-controls button{translate:none!important}
.motion-paused .depth-card{transform:none!important}.motion-paused .depth-card::after{display:none}
.motion-paused .process-grid::before{transform:scaleX(1)}
@media(max-width:760px){.motion-ready .motion-heading.is-revealed .motion-word{transition-duration:650ms;transition-delay:calc(var(--word-delay,0ms) * .7)}.hero-copy{translate:none}.portrait-wrap img{scale:1;translate:none}.process-grid::before{display:none}.motion-ready:not(.motion-paused) .asterisk{animation:none}}
@media(prefers-reduced-motion:reduce){.motion-word,.motion-enter{opacity:1!important;transform:none!important;clip-path:none!important;transition:none!important}.hero-copy,.portrait-wrap img,.pill,.nav-contact,.work-controls button{translate:none!important}.depth-card{transform:none!important}.depth-card::after{display:none}.process-grid::before{transform:scaleX(1)}}
