/* Motion follows the reader's scrolling; native scrolling stays in control. */
.hero-dot-mesh{position:absolute;inset:0;z-index:-2;pointer-events:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='3' height='3' viewBox='0 0 3 3'><circle cx='0.55' cy='0.55' r='0.4' fill='rgba(0,0,0,0.45)'/></svg>");background-size:3px 3px;background-repeat:repeat;background-position:0 0;mix-blend-mode:multiply}
.journey-progress{position:fixed;inset:0 0 auto;height:3px;z-index:9998;pointer-events:none}.journey-progress span{display:block;height:100%;background:#b4c5a0;transform:scaleX(var(--journey,0));transform-origin:left}
.motion-controls{display:flex;gap:10px}.film-controls #motion-toggle{border-color:transparent;letter-spacing:.04em}.scroll-cue{display:flex;align-items:center;gap:32px;min-height:44px}.scroll-cue span{font-size:21px}
.hero h1 .title-letters{display:inline-block}.hero h1 .title-letter{display:inline-block}.hero-title-mask{overflow:hidden;display:inline-block;vertical-align:bottom;padding-right:.07em;margin-right:-.07em}
html[data-motion="on"] .hero .film{transform:translate3d(0,var(--film-shift,0px),0) scale(1.035);will-change:transform}
html[data-motion="on"] .hero-copy,html[data-motion="on"] .hero h1{translate:0 var(--title-shift,0px)}
html[data-motion="on"] .hero-inner{opacity:var(--hero-opacity,1)}
.story-figure{overflow:clip}.story-figure img{scale:1.06;translate:0 var(--image-shift,0px)}
.portrait img{scale:1.06;translate:0 var(--image-shift,0px)}
.section-kicker{position:relative;border-bottom:0}.section-kicker:after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--rule);transform-origin:left}
.person-info,.story-copy,.part-main{position:relative}.part{transition:background .4s,padding .4s}.part:hover{background:#ffffff2e}.part-no{transition:color .6s,translate .6s}.part.is-current .part-no{color:#244d4a;translate:0 -6px}.part.is-current .part-word{color:#244d4a}.chapter-list button{transition:padding .25s,color .25s}.chapter-list button:hover{padding-left:8px}
.read-link,.text-link{position:relative}.read-link:after,.text-link:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.2,.7,.2,1)}.read-link:hover:after,.text-link:hover:after{transform:scaleX(1);transform-origin:left}
.roadside{position:relative;isolation:isolate;background:#dfdfc3;overflow:hidden;border-top:1px solid #b6bfa6;border-bottom:1px solid #b6bfa6;padding:105px 0 75px}.roadside-marquee{position:absolute;top:20px;left:0;display:flex;white-space:nowrap;width:max-content;font:100px/1.1 var(--latin);letter-spacing:-.035em;color:#43574316;pointer-events:none;animation:detour-drift 60s linear infinite;animation-play-state:paused}.roadside-marquee span{flex:none}.roadside.in-view .roadside-marquee{animation-play-state:running}@keyframes detour-drift{to{transform:translateX(-50%)}}
.roadside-inner{position:relative;max-width:1256px;margin:auto;padding:0 58px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}.roadside-copy .eyebrow{color:#586a4e;margin-bottom:25px}.roadside-copy h2{font-size:clamp(29px,3.3vw,46px);line-height:1.85;margin-bottom:24px}.roadside-copy>p:not(.eyebrow){font-size:16px;line-height:2.2}.roadside-copy .text-link{margin-top:22px}.mascot-stage{position:relative;min-width:0}.mascot-orbit{position:absolute;width:88%;aspect-ratio:1;left:6%;top:8%;border:1px solid #7b8c5d45;border-radius:50%;transform:rotateX(58deg) rotateZ(-18deg);pointer-events:none}.mascot-note{position:absolute;top:34px;right:5%;font-size:14px;writing-mode:vertical-rl;letter-spacing:.17em;rotate:8deg;z-index:1;pointer-events:none}.mascot-stage model-viewer{position:relative;display:block;width:100%;height:420px;--poster-color:transparent;--progress-bar-color:#637747;--progress-bar-height:2px;touch-action:pan-y;z-index:2}.model-status{font:14px var(--font-sans);color:#526343;display:grid;place-items:center;position:absolute;inset:0;background:#dfdfc3}.mascot-caption{position:relative;display:flex;align-items:center;justify-content:center;gap:28px;font:12px var(--font-sans);letter-spacing:.13em;z-index:3}.mascot-caption button{border:1px solid #7b8c5d80;border-radius:40px;min-height:44px;padding:10px 20px;font-size:14px;letter-spacing:.03em;transition:background .25s}.mascot-caption button:hover{background:#f3f0e880}.mascot-caption button:disabled{opacity:.4;cursor:wait}.mascot-caption button span{display:inline-block;padding-left:12px;font-size:20px}#mascot-status{text-align:center;font:12px/1.7 var(--font-sans);color:#58684c;margin:12px 0 0}
html[data-motion="off"] .roadside-marquee{animation-play-state:paused}html[data-motion="off"] .story-figure img,html[data-motion="off"] .portrait img{translate:none;scale:1}html[data-motion="off"]{scroll-behavior:auto}html[data-motion="off"] *,html[data-motion="off"] *:after{transition:none!important}
@media(max-width:1000px){.roadside-inner{padding:0 36px;gap:24px}.mascot-stage model-viewer{height:370px}.roadside{padding:90px 0 55px}.roadside-copy h2{font-size:31px}}
@media(max-width:640px){.motion-controls{gap:0}.film-controls #motion-toggle{padding:6px 9px;min-width:0;font-size:12px}.scroll-cue{gap:10px;font-size:12px;letter-spacing:.02em}.roadside{padding:80px 0 45px}.roadside-marquee{font-size:70px;top:15px}.roadside-inner{padding:0 7%;grid-template-columns:1fr;gap:10px}.roadside-copy h2{font-size:30px}.roadside-copy>p:not(.eyebrow){font-size:16px}.mascot-stage{max-width:420px;width:100%;margin:auto}.mascot-stage model-viewer{height:330px}.mascot-note{right:6%;top:25px}.mascot-caption{gap:20px}.mascot-caption button{font-size:14px}.mascot-orbit{top:0}.part:hover{background:transparent}}
@media(prefers-reduced-motion:reduce){.roadside-marquee{animation:none}.story-figure img,.portrait img{translate:none!important;scale:1}.hero .film{transform:none!important}.hero-copy,.hero h1{translate:none!important}.hero-inner{opacity:1!important}}
