/* Shared motion layer. Content remains visible before JavaScript initializes. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
.hero-field{position:absolute;inset:0;overflow:hidden;pointer-events:none;color:#c9ccc2;z-index:0}
.hero-grid{position:absolute;inset:-100px;background-image:linear-gradient(rgb(220 225 210 / .045) 1px,transparent 1px),linear-gradient(90deg,rgb(220 225 210 / .045) 1px,transparent 1px);background-size:100px 100px;mask-image:linear-gradient(110deg,transparent,black 68%);transform:translateY(var(--field-y,0px))}
.hero-orbits{position:absolute;width:1100px;height:900px;left:40%;top:-160px;opacity:.28;transform:translate3d(0,var(--field-y,0px),0)}
.hero-orbits svg{width:100%;height:100%;overflow:visible;transform-origin:50% 50%}
.hero-orbits g{stroke-width:.7}.field-trace{stroke-width:1.5;opacity:.65}
.hero-sweep{position:absolute;top:0;bottom:0;width:1px;left:61%;background:linear-gradient(transparent,#cdd0c6,transparent);opacity:.3}
.welcome-stage:before{background:rgb(220 225 210 / .12)}
.welcome-rule{pointer-events:auto}.welcome-rule:hover{color:#fcfcfc}.welcome-rule:focus-visible{outline-color:#fcfcfc}
.motion-toggle{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:none;border:1px solid #bdbeb9;border-radius:100px;padding:8px 12px;color:inherit;font:10px/1.4 var(--mono);letter-spacing:.025em;min-height:34px;white-space:nowrap}
.motion-toggle[hidden]{display:none}.motion-toggle:before{content:'';display:block;width:7px;height:9px;border-inline:2px solid currentColor}
[data-motion="off"] .motion-toggle:before{border:0;width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:6px solid currentColor}
.hero-motion-toggle{position:absolute;bottom:22px;right:var(--gutter);z-index:4;color:#e0e1da;border-color:#62665d;background:#222322}
.hero-motion-toggle:hover{background:#34372f;color:#fff}.hero-motion-toggle:focus-visible{outline-color:white}
.footer-note .motion-toggle{align-self:center}.footer-note{flex-wrap:wrap}

/* Only decorative layers run continuously, and only while the hero is visible. */
[data-motion="on"] .hero-orbits svg{animation:field-orbit 32s ease-in-out infinite alternate;animation-play-state:paused}
[data-motion="on"] .hero-sweep{animation:field-scan 14s ease-in-out infinite alternate;animation-play-state:paused}
[data-motion="on"] .hero-field .field-trace{stroke-dasharray:80 18;animation:trace-flow 24s linear infinite;animation-play-state:paused}
[data-motion="on"] .hero-is-visible .hero-orbits svg,[data-motion="on"] .hero-is-visible .hero-sweep,[data-motion="on"] .hero-is-visible .field-trace{animation-play-state:running}
[data-page-hidden] .hero-orbits svg,[data-page-hidden] .hero-sweep,[data-page-hidden] .field-trace{animation-play-state:paused!important}
@keyframes field-orbit{from{transform:rotate(-12deg) scale(.94)}to{transform:rotate(12deg) scale(1.07)}}
@keyframes field-scan{from{transform:translateX(-140px);opacity:.13}to{transform:translateX(340px);opacity:.38}}
@keyframes trace-flow{to{stroke-dashoffset:-392}}

/* Bounded scroll depth. Chart workspaces never receive transforms. */
[data-motion="on"] .welcome-portrait{transform:translate3d(-50%,var(--portrait-y,0px),0)}
[data-motion="on"] .welcome-copy{transform:translate3d(0,var(--copy-y,0px),0)}
[data-motion="on"] .welcome-lettering>span:first-child{transform:translateX(var(--type-x,0px))}
[data-motion="on"] .welcome-ideas{transform:translateX(var(--ideas-x,0px))}
[data-motion="on"] .hero-arriving .welcome-copy h1{animation:hero-arrive .7s var(--motion-ease) both}
[data-motion="on"] .hero-arriving .welcome-lettering{animation:hero-arrive 1s var(--motion-ease) .07s both}
[data-motion="on"] .hero-arriving .welcome-rule{animation:hero-arrive 1s var(--motion-ease) .14s both}
@keyframes hero-arrive{from{opacity:.2;translate:0 28px}to{opacity:1;translate:0 0}}

.motion-reveal{transition:opacity .75s var(--motion-ease),translate .85s var(--motion-ease);transition-delay:var(--reveal-delay,0ms)}
[data-motion="on"] .motion-reveal:not(.in-view){opacity:.12;translate:0 32px}
[data-motion="on"] .motion-reveal.in-view{opacity:1;translate:0 0}
.motion-reveal:focus-within{opacity:1!important;translate:0 0!important;transition-delay:0s}
[data-motion="on"] .brief-panel.motion-reveal:not(.in-view) .brief-bar-track i{transform:scaleX(0)}
.brief-bar-track i{transform-origin:left;transition:transform .95s var(--motion-ease) .12s}
[data-motion="on"] .editorial-image img{transform:translate3d(0,var(--image-y,0px),0) scale(1.09);transition:filter .5s,scale .8s var(--motion-ease)}
@media(hover:hover){
 [data-motion="on"] .editorial-card:hover .editorial-image img{transform:translate3d(0,var(--image-y,0px),0) scale(1.09);scale:1.025}
 .home-path .path-title span,.editorial-foot>span:last-child,.edition-arrow{display:inline-block;transition:translate .45s var(--motion-ease)}
 [data-motion="on"] .home-path:hover .path-title span,[data-motion="on"] .editorial-card:hover .editorial-foot>span:last-child,[data-motion="on"] .edition-row:hover .edition-arrow{translate:3px -3px}
 .archive-row h2,.writing-row h3{transition:translate .45s var(--motion-ease)}
 [data-motion="on"] .archive-row:hover h2,[data-motion="on"] .writing-row:hover h3{translate:5px 0}
}
.nav a{position:relative}.nav a:after{content:'';height:1px;position:absolute;left:0;right:0;bottom:0;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--motion-ease)}
.nav a:hover:after,.nav a:focus-visible:after{transform:scaleX(1);transform-origin:left}
.reading-progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;background:var(--ink);transform:scaleX(var(--reading-progress,0));transform-origin:left;pointer-events:none}
@media(max-width:1050px){.hero-orbits{left:22%;top:-100px;width:960px;height:780px}}
@media(max-width:700px){.hero-orbits{left:-34%;top:130px;width:760px;height:620px;opacity:.24}.hero-grid{background-size:72px 72px;mask-image:linear-gradient(180deg,transparent,black)}.hero-motion-toggle{bottom:16px;right:20px;font-size:9px;min-height:36px}.hero-sweep{left:35%}}
@media(prefers-reduced-motion:reduce){
 .hero-field *{animation:none!important}.motion-reveal{opacity:1!important;translate:none!important}.welcome-copy,.welcome-lettering>span{transform:none!important}.welcome-portrait{transform:translateX(-50%)!important}.editorial-image img{transform:none!important;scale:1!important}.brief-bar-track i{transform:none!important}
}
[data-motion="off"] .motion-reveal{opacity:1;translate:none;transition:none}
[data-motion="off"] .hero-field *{animation:none!important}
[data-motion="off"] .hero-grid,[data-motion="off"] .hero-orbits{transform:none}
[data-motion="off"] .editorial-image img{transform:none;scale:1}
[data-motion="off"] .nav a:after,[data-motion="off"] .brief-bar-track i{transition:none}
[data-motion="off"]{scroll-behavior:auto}
