/* Native scrolling drives the scenes. Content remains visible without JS. */
@keyframes signature-flow{to{transform:translateX(-50%)}}
@keyframes scroll-nudge{0%,100%{transform:translateY(-3px)}50%{transform:translateY(5px)}}
.motion-paused .signature-track,.tab-hidden .signature-track,.tab-hidden .scroll-indicator .icon{animation-play-state:paused}
.hero:has(a:focus-visible) .hero-content{opacity:1!important}
.hero:has(a:focus-visible) .hero-line{translate:0!important}
.reading-word{display:inline-block;transform-origin:left bottom}
.title-line{position:relative}
.title-echo{position:absolute;inset:0;display:block;opacity:0;pointer-events:none;user-select:none;transform-origin:left bottom}
.agency,.expertise,.faq{overflow-x:clip}
.agency-copy{overflow:clip;overflow-clip-margin:8px}
.agency-copy .lead{overflow:clip}
.agency-copy .lead>span{display:block;transform-origin:left center}
.service>summary,.questions summary{overflow:clip;overflow-clip-margin:4px}
.service h3,.questions h3{transform-origin:left center}
.art-plane{position:absolute;inset:0;opacity:0;pointer-events:none;background:var(--accent)}
.art-plane--light{background:#fff}
.contact-depth{position:absolute;inset:0;overflow:clip;pointer-events:none;z-index:0}
.contact-depth>span{position:absolute;right:-12%;top:-35%;width:65%;height:170%;border:1px solid #efffbd38;background:linear-gradient(155deg,#e6ff9918,#d8ff3603 70%);transform:rotate(-20deg);transform-origin:center}
.contact-depth>span+span{right:18%;top:-10%;width:36%;height:145%;background:linear-gradient(145deg,#ffffff10,#ffffff02 80%);transform:rotate(24deg)}
.contact-inner{position:relative;z-index:1}
.world-grid{position:relative}
/* Scene measurements must not trigger the browser's automatic scroll correction. */
.motion-active{overflow-anchor:none}
.impact-depth{display:none}
@media(prefers-reduced-motion:no-preference){
html{scroll-behavior:smooth}
.motion-active .signature-track{animation:signature-flow 20s linear infinite}
.motion-active .scroll-indicator .icon{animation:scroll-nudge 1.8s ease-in-out infinite}
.motion-active .hero-image img{transform:translate3d(var(--hero-x,0px),var(--hero-y,0px),0) rotate(var(--hero-image-angle,0deg)) scale(var(--hero-scale,1.08));transform-origin:72% 45%}
.motion-active .hero-line:nth-child(1){translate:var(--hero-line-a,0px) 0}
.motion-active .hero-line:nth-child(2){translate:var(--hero-line-b,0px) 0}
.motion-active .hero-line:nth-child(3){translate:var(--hero-line-c,0px) 0}
.motion-active .impact-line:first-child{transform:perspective(1000px) translate3d(var(--impact-a,0px),0,var(--impact-title-z,0px)) rotateY(var(--impact-yaw,0deg))}
.motion-active .impact-line:last-child{transform:perspective(1000px) translate3d(var(--impact-b,0px),0,0) rotateY(calc(var(--impact-yaw,0deg) * -1))}
.motion-active .impact-bridge{clip-path:inset(0 var(--impact-inset,0%) round var(--impact-radius,0px))}
.motion-active .impact-depth{display:block;position:absolute;inset:0;perspective:800px;overflow:clip;pointer-events:none}
.impact-bridge h2,.impact-meta,.impact-note{position:relative}
.motion-active .film-frame{transform:perspective(1200px) translate3d(0,var(--film-y,0px),var(--film-z,0px)) rotateX(var(--film-angle,0deg)) scale(var(--film-scale,1));border-radius:var(--film-radius,0px);transform-origin:center center}
.film-frame:focus-within{transform:none!important;border-radius:0!important}
.motion-active .reading-word{transform:translate3d(0,var(--word-y,0px),0) rotate(var(--word-angle,0deg))}
.motion-active .agency-art img{transform:translate3d(0,var(--art-y,0px),0) scale(1.09)}
.motion-active .world-visual img{transform:translate3d(var(--world-image-x,0px),var(--world-image-y,0px),0) scale(var(--world-image-scale,1.04));transition:none}
.motion-active .world-visual{overflow:visible;isolation:auto;background:transparent;transform-style:preserve-3d}
.motion-active .world-media{z-index:0;border-radius:inherit;box-shadow:0 24px 42px -20px #0009;transform:translateZ(0)}
.motion-active .world-media::before{content:'';position:absolute;inset:-35%;z-index:1;pointer-events:none;background:linear-gradient(115deg,transparent 35%,#f2ffd529 49%,transparent 63%);transform:translate3d(var(--card-light-x,0px),0,0);opacity:var(--card-light-opacity,0)}
.motion-active .world-visual::before{content:'';position:absolute;inset:0;background:#181e12;border:1px solid #d8ff3640;transform:translateZ(-12px);pointer-events:none}
.motion-active .world-visual h3{transform:translate3d(var(--card-title-x,0px),var(--card-title-y,0px),var(--card-title-z,0px));text-shadow:0 4px 24px #0006;transition:none}
.motion-active .world-number{transform:translateZ(var(--card-label-z,0px))}
.motion-active .world-action{translate:0 0 var(--card-label-z,0px)}
.motion-active .contact-backdrop img{transform:scale(var(--contact-scale,1.02));transform-origin:72% center}
.motion-active .contact h2{transform:translate3d(0,var(--contact-title-y,0px),0);transform-origin:left center}
.motion-active .contact-depth>span{transform:perspective(1000px) translate3d(var(--contact-plane-x,0px),var(--contact-plane-y,0px),-100px) rotate(var(--contact-plane-angle,-20deg))}
.motion-active .contact-depth>span+span{transform:perspective(1000px) translate3d(calc(var(--contact-plane-x,0px) * -1),calc(var(--contact-plane-y,0px) * -.6),40px) rotate(calc(var(--contact-plane-angle,-20deg) * -1))}
.contact h2:focus{transform:none}
.worlds.is-stacked .world-grid{display:block}
.worlds.is-stacked .world-card{position:sticky;top:calc(var(--header-height) + 12px);background:var(--ink);padding-bottom:1rem;margin:0;isolation:isolate}
.worlds.is-stacked .world-card+.world-card{margin-top:3rem}
.worlds.is-stacked .world-visual{transform:perspective(1100px) rotateX(var(--card-pitch,0deg)) scale(var(--card-scale,1));transform-origin:center top;border-radius:var(--card-radius,0px)}
.worlds.is-stacked .world-caption{opacity:var(--card-opacity,1)}
.worlds.is-stacked .world-card::after{content:'';position:absolute;inset:0;z-index:2;background:var(--ink);opacity:var(--card-dim,0);pointer-events:none}
.worlds.is-measuring .world-card{position:relative;top:auto}
}
@media(min-width:960px) and (min-height:640px){
.hero.is-pinned{height:calc(var(--hero-height) + var(--hero-travel))}
.hero.is-pinned .hero-stage{position:sticky;top:0;height:var(--hero-height);min-height:0}
.hero.is-pinned .hero-image img{will-change:transform}
.hero.is-pinned .hero-content{transform:perspective(1200px) translate3d(var(--hero-copy-x,0px),var(--hero-copy-y,0px),0) rotateY(var(--hero-copy-yaw,0deg));transform-origin:left center;opacity:var(--hero-copy-opacity,1)}
.hero.is-pinned .hero-aside,.hero.is-pinned .hero-bottom{opacity:var(--hero-detail-opacity,1)}
.hero.is-pinned .hero-finale{display:block;position:absolute;left:var(--gutter);right:var(--gutter);bottom:16%;font-size:clamp(5rem,14.2vw,17rem);line-height:1;letter-spacing:-.07em;white-space:nowrap;color:var(--paper);transform:perspective(1000px) translate3d(0,var(--hero-finale-y,100px),var(--hero-finale-z,-150px)) rotateX(var(--hero-finale-pitch,15deg));opacity:var(--hero-finale-opacity,0);pointer-events:none}
.hero-finale span{color:var(--accent)}
.hero:has(a:focus-visible) .hero-finale{opacity:0!important}
.worlds.is-pinned{padding:0;height:calc(var(--world-height) + var(--world-travel))}
.worlds.is-pinned .worlds-stage{position:sticky;top:var(--header-height);height:var(--world-height,calc(100svh - var(--header-height)));padding-block:var(--section-top);overflow:clip}
.worlds.is-pinned .section-caption{padding-bottom:.5rem}
.worlds.is-pinned .section-heading{margin-block:.75rem 1rem;gap:1.5rem}
.worlds.is-pinned .section-heading h2{font-size:clamp(2rem,3.3vw,3.8rem)}
.worlds.is-pinned .section-heading>p{font-size:.875rem}
.worlds.is-pinned .world-grid{display:flex;gap:2rem;transform:translate3d(var(--world-x,0px),0,0);will-change:transform}
.worlds.is-pinned .world-card{flex:0 0 74%;min-width:0;margin:0}
.worlds.is-pinned .world-visual{aspect-ratio:auto;height:clamp(200px,38svh,440px);transform:perspective(1100px) translateZ(var(--card-depth,0px)) rotateY(var(--card-turn,0deg)) rotateX(var(--card-pitch,0deg)) scale(var(--card-scale,1));transform-origin:center center}
.worlds.is-pinned .world-visual h3{font-size:clamp(2.5rem,4.3vw,4.75rem)}
.worlds.is-pinned .world-caption{padding-top:.5rem}
.worlds.is-pinned .world-navigation{display:flex;align-items:center;gap:1.5rem;margin-top:.75rem;font-size:.8125rem;color:var(--muted)}
.world-position{min-width:4.5rem;font-variant-numeric:tabular-nums;color:var(--accent)}
.world-meter{height:2px;flex:1;background:var(--line);overflow:hidden}
.world-meter i{display:block;width:25%;height:2px;background:var(--accent);transform:translateX(var(--world-meter-x,0%))}
.worlds.is-pinned .world-disclaimer{margin-top:.5rem}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
[data-magnetic]{transition:translate .25s var(--ease)}
.world-visual .world-action{transition:transform .5s var(--ease),background .3s}
.world-visual:hover .world-action{transform:rotate(45deg) scale(1.15)}
.world-visual h3{transition:translate .65s var(--ease)}
.world-visual:hover h3{translate:10px -8px}
}
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*::before,*::after{animation:none!important;transition:none!important}
.reading-word{color:inherit!important;transform:none!important}
.impact-outline{color:var(--ink);-webkit-text-stroke:0}
}
.motion-paused{scroll-behavior:auto}
.motion-paused .reading-word{color:inherit}
.world-visual:focus-visible{outline-offset:8px}
@media(max-width:599px){
.motion-active .world-visual::before{display:none}
}
@media print{
.hero.is-pinned,.worlds.is-pinned{height:auto}
.hero.is-pinned .hero-stage,.worlds.is-pinned .worlds-stage{position:static;height:auto}
.worlds.is-pinned .world-grid{display:grid;transform:none}
.worlds.is-stacked .world-card{position:static}
.hero-finale,.impact-bridge,.world-navigation{display:none!important}
.reading-word{color:inherit;transform:none}
}

