/* Progressive enhancement: the page remains fully readable without this controller. */
.reading-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:45;pointer-events:none}
.reading-progress span{display:block;width:100%;height:100%;background:var(--acid);transform:scaleX(var(--page-progress,0));transform-origin:left}
.motion-dock{display:none;position:fixed;right:20px;bottom:20px;z-index:35;align-items:center;border:1px solid #6f7953;background:#10150ee8;backdrop-filter:blur(12px);color:#eff3df;font:9px Inter,sans-serif;letter-spacing:.09em;box-shadow:0 4px 20px #0002}
.motion-ready .motion-dock{display:flex}.scroll-readout{padding:0 13px;color:#c2cca8;font-variant-numeric:tabular-nums}.motion-switch{border:0;border-left:1px solid #59653c;background:none;font-size:10px;color:var(--acid);min-height:44px;padding:0 14px}.motion-switch:before{content:'';display:inline-block;width:5px;height:5px;background:var(--acid);border-radius:50%;margin-right:8px}.motion-switch[aria-pressed=true]:before{background:#8d9580}
main{overflow-x:clip}
.hero-orbit{position:absolute;right:var(--pad);top:95px;width:130px;height:130px;border:1px solid #d6ed4566;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--acid);background:#10150d36;pointer-events:none}
.hero-orbit span{font-size:6px;letter-spacing:.12em}.hero-orbit i{font-style:normal;font-size:52px;line-height:1}.hero-orbit:before{content:'';position:absolute;inset:10px;border:1px dashed #d6ed4580;border-radius:50%}
.manifesto-line{display:block}.perspective-pin{position:relative;isolation:isolate}.thread-trace{position:absolute;inset:0;width:100%;height:100%;z-index:-1;overflow:visible;pointer-events:none}.thread-trace-guide{stroke:#a4bc3821;stroke-width:1}.thread-trace-line{stroke:#d6ed4570;stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:0}.narrative-progress{display:none;align-items:center;gap:18px;width:160px;margin:30px 0 0 12%;font:8px Inter,sans-serif;letter-spacing:.1em;color:#a6af8e}.narrative-progress i{height:1px;background:#3e472b;flex:1;position:relative}.narrative-progress i:after{content:'';position:absolute;inset:0;background:var(--acid);transform:scaleX(var(--story-progress,0));transform-origin:left}
.motion-tape{padding:25px 0;overflow:hidden;border-top:1px solid #6e8032;border-bottom:1px solid #6e8032;background:var(--acid);color:#151a0b;contain:paint}.tape-track{display:flex;width:max-content}.tape-copy{display:flex;align-items:center;flex-shrink:0;gap:45px;padding-right:45px;font-size:clamp(28px,4vw,65px);font-weight:850;font-style:italic;letter-spacing:-.055em;line-height:1;white-space:nowrap}.tape-copy i{font-size:.9em;font-weight:400;font-style:normal}
.brand-row{position:relative;isolation:isolate}.brand-row:before{content:'';position:absolute;inset:0 calc(var(--pad) * -1);background:#252d15;z-index:-1;transform:scaleY(0);transform-origin:bottom;transition:transform .4s cubic-bezier(.2,.7,.2,1)}.brand-row:hover:before,.brand-row:focus-visible:before{transform:scaleY(1)}.brand-row:after{content:'';position:absolute;left:0;top:-1px;height:1px;width:100%;background:#93a747;transform:scaleX(0);transform-origin:left}.brand-info,.row-index{position:relative;z-index:1}
.study-photo{isolation:isolate}.study-photo:after{content:'';position:absolute;inset:0;border:1px solid #d6ed4526;pointer-events:none}.study-caption,.study>p{position:relative;z-index:1}.hero-description{position:relative}.round-link,.photo-open{touch-action:manipulation}.process-grid{position:relative}.process-grid:before{content:'';position:absolute;left:0;top:-1px;width:100%;height:2px;background:var(--acid);transform-origin:left;transform:scaleX(0)}.process-grid li{position:relative}.process-grid li:before{content:'';position:absolute;top:-5px;left:0;width:8px;height:8px;border-radius:50%;background:var(--acid);box-shadow:0 0 0 5px var(--bg)}.process-grid li+li:before{left:25px}.process-grid li h3{transition:color .25s,transform .35s}.process-grid li:hover h3{color:var(--acid);transform:translateX(7px)}
.faq-items details[open] p{animation:faq-unfold .35s both}.study-dialog[open]{animation:dialog-unfold .45s cubic-bezier(.16,1,.3,1) both}.study-dialog[open]::backdrop{animation:backdrop-in .35s both}.mobile-nav:not([hidden]){animation:menu-unfold .35s cubic-bezier(.16,1,.3,1) both}.desktop-nav a:before{content:'';position:absolute;bottom:8px;left:0;width:100%;height:1px;background:var(--acid);transform:scaleX(0);transform-origin:right;transition:transform .3s}.desktop-nav a:hover:before{transform:scaleX(1);transform-origin:left}

.motion-ready[data-motion=on] .hero-image{transform:translate3d(var(--pointer-x,0px),calc(var(--hero-y,0px) + var(--pointer-y,0px)),0) scale(var(--hero-scale,1.1));will-change:transform}
.motion-ready[data-motion=on] .hero-main{transform:translate3d(0,var(--copy-y,0px),0);opacity:var(--copy-opacity,1)}
.motion-ready[data-motion=on] .hero h1>span{transform:translate3d(var(--title-left,0px),0,0);animation:hero-unfold 1.15s cubic-bezier(.16,1,.3,1) both}
.motion-ready[data-motion=on] .hero h1>em{transform:translate3d(var(--title-right,0px),0,0);animation:hero-unfold 1.15s .16s cubic-bezier(.16,1,.3,1) both}
.motion-ready[data-motion=on] .hero-orbit{transform:rotate(var(--orbit-turn,0deg))}.motion-ready[data-motion=on] .hero-orbit i{animation:orbit-spin 24s linear infinite paused}.motion-ready[data-motion=on] .signal{animation:signal-pulse 2.6s ease-in-out infinite paused}
.motion-ready[data-motion=on] .manifesto-line{opacity:var(--line-opacity,1);transform:translate3d(var(--line-x,0px),0,0)}
.motion-ready[data-motion=on] .thread-trace-line{stroke-dashoffset:var(--trace-progress,1)}
.motion-ready[data-motion=on] .inline-thread{transform:rotate(var(--thread-turn,0deg)) scale(1.1)}
.motion-ready[data-motion=on] .perspective-note{transform:translate3d(0,var(--note-y,0px),0)}
.motion-ready[data-motion=on] .asterisk{display:inline-block;animation:orbit-spin 32s linear infinite paused}
.motion-ready.has-pinned-story .perspective{min-height:calc(100svh + 440px);padding-top:56px;padding-bottom:72px}
.motion-ready.has-pinned-story .perspective-pin{position:sticky;top:104px}
.motion-ready .perspective .section-label{padding-bottom:32px}
.motion-ready .manifesto h2{font-size:clamp(36px,4.4vw,70px);line-height:1.26}
.motion-ready .perspective-note{margin-top:32px}
.motion-ready .perspective-note .asterisk{font-size:62px}
.motion-ready.has-pinned-story .narrative-progress{display:flex}
.motion-ready[data-motion=on] .brand-row h3{transform:translate3d(var(--brand-drift,0px),0,0)}
.motion-ready[data-motion=on] .brand-row:after{transform:scaleX(var(--row-fill,0))}
.motion-ready[data-motion=on] .tape-offset{transform:translate3d(var(--tape-shift,0px),0,0)}
.motion-ready[data-motion=on] .tape-track{animation:tape-run 35s linear infinite paused}
.motion-ready[data-motion=on] .studies-heading h2{transform:translate3d(var(--heading-x,0px),0,0)}
.motion-ready[data-motion=on] .studies-heading em{display:inline-block;transform:translate3d(var(--heading-counter,0px),0,0)}
.motion-ready[data-motion=on] .study{transform:translate3d(0,var(--study-y,0px),0)}
.motion-ready[data-motion=on] .study-photo img{transform:translate3d(0,var(--photo-y,0px),0) scale(var(--photo-scale,1.19));transition:filter .5s;will-change:transform}
.motion-ready[data-motion=on] .study-photo:hover img{filter:brightness(1.13)}
.motion-ready[data-motion=on] .stitch-stage{transform:translate3d(0,var(--lab-y,0px),0) rotate(var(--lab-turn,0deg)) scale(var(--lab-scale,1));transform-origin:50% 55%}
.motion-ready[data-motion=on] .stitch-stage #stitch-lines{transform-origin:300px 300px;animation:orbit-spin 110s linear infinite paused}
.motion-ready[data-motion=on] .stitch-stage #stitch-lines[data-shape=wave]{animation:wave-breathe 9s ease-in-out infinite paused}
.motion-ready[data-motion=on] .stitch-stage .stage-guides{transform-origin:300px 300px;animation:orbit-spin 80s linear infinite reverse paused}
.motion-ready[data-motion=on] .process-grid:before{transform:scaleX(var(--process-fill,0))}
.motion-ready[data-motion=on] .footer-title{transform:translate3d(0,var(--footer-y,0px),0) rotate(var(--footer-turn,0deg));transform-origin:left bottom}
.motion-ready[data-motion=on] .footer-title>span:not(.sr-only){display:inline-block;transform:translate3d(var(--footer-word-x,0px),0,0)}
.motion-ready[data-motion=on] .footer-title>i{transform:rotate(var(--footer-arrow,0deg))}
.motion-ready[data-motion=on] .round-link,.motion-ready[data-motion=on] .photo-open{transform:translate3d(var(--magnet-x,0px),var(--magnet-y,0px),0);transition:transform .18s ease-out,background .25s,color .25s}
.motion-ready[data-motion=on] .round-link span{display:block;transition:transform .35s}.motion-ready[data-motion=on] .round-link:hover span{transform:rotate(45deg)}
.motion-ready[data-motion=on] .motion-reveal{transition:opacity .7s var(--reveal-delay,0ms),transform .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
.motion-ready[data-motion=on] .motion-reveal:not(.is-visible){opacity:0;transform:translate3d(0,35px,0)}
.motion-ready[data-motion=on] .motion-reveal:focus-within{opacity:1;transform:none}
.motion-ready[data-motion=on][data-ambient=running] .hero.is-active .hero-orbit i,
.motion-ready[data-motion=on][data-ambient=running] .hero.is-active .signal,
.motion-ready[data-motion=on][data-ambient=running] .perspective-pin.is-active .asterisk,
.motion-ready[data-motion=on][data-ambient=running] .motion-tape.is-active .tape-track,
.motion-ready[data-motion=on][data-ambient=running] .stitch-stage.is-active #stitch-lines,
.motion-ready[data-motion=on][data-ambient=running] .stitch-stage.is-active .stage-guides{animation-play-state:running}

@keyframes hero-unfold{from{clip-path:inset(110% -12% -18%);opacity:0}to{clip-path:inset(-18% -12% -18%);opacity:1}}
@keyframes orbit-spin{to{transform:rotate(360deg)}}
@keyframes signal-pulse{50%{box-shadow:0 0 0 6px #d6ed4500;opacity:.45}0%,100%{box-shadow:0 0 0 0 #d6ed4580;opacity:1}}
@keyframes tape-run{to{transform:translate3d(-50%,0,0)}}
@keyframes wave-breathe{0%,100%{transform:rotate(-3deg) scale(.98)}50%{transform:rotate(3deg) scale(1.025)}}
@keyframes faq-unfold{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes dialog-unfold{from{opacity:0;transform:translateY(35px) scale(.96)}to{opacity:1;transform:none}}
@keyframes backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes menu-unfold{from{opacity:0;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}
@media(max-width:1050px){.hero-orbit{width:108px;height:108px;top:80px}.hero-orbit i{font-size:42px}.process-grid li+li:before{left:18px}}
@media(max-width:760px){.motion-dock{right:12px;bottom:12px}.scroll-readout{font-size:7px;padding:0 9px}.motion-switch{font-size:9px;padding:0 11px}.hero-orbit{top:74px;right:25px;width:86px;height:86px;gap:8px}.hero-orbit span{font-size:4px}.hero-orbit i{font-size:34px}.hero-orbit:before{inset:6px}.motion-tape{padding:20px 0}.tape-copy{font-size:32px;gap:24px;padding-right:24px}.thread-trace{width:160%;left:-30%;opacity:.55}.motion-ready[data-motion=on] .manifesto-line{opacity:var(--line-opacity,1)}.process-grid:before{display:none}.process-grid li:nth-child(even):before{left:20px}.process-grid li:nth-child(odd):before{left:0}.motion-ready[data-motion=on] .motion-reveal:not(.is-visible){transform:translate3d(0,20px,0)}.footer-credit{padding-bottom:45px}.brand-row:before{display:none}}
html[data-motion=off] .thread-trace-line{stroke-dashoffset:0}html[data-motion=off] .process-grid:before{transform:scaleX(1)}
@media(prefers-reduced-motion:reduce){html:not([data-motion=on]) .hero-image,html:not([data-motion=on]) .study-photo img{transform:none}.reading-progress span{transition:none}html:not([data-motion=on]) .motion-tape .tape-track{animation:none!important}}

/* Reserve space for the floating control at both ends of the page. */
.hero-bottom{padding-bottom:48px}.footer-credit{padding-bottom:45px}
@media(max-width:760px){.motion-ready .manifesto h2{font-size:clamp(30px,6.8vw,52px);line-height:1.45}.motion-ready .perspective-note{margin-top:35px}.motion-ready .perspective-note .asterisk{font-size:42px}.hero-bottom{padding-bottom:52px}}
