:root{--bg:#0e1512;--ink:#f0f5ee;--soft:#c9d6c9;--muted:#9eafa2;--line:rgba(240,245,238,.18);--spring:#a8d3b0;--summer:#e7c98a;--autumn:#c98a5a;--winter:#8fb0c9;--ease-scene:cubic-bezier(.2,0,0,1);--serif:"Iowan Old Style","Palatino Linotype","Book Antiqua",Georgia,serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans SC","PingFang SC",sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);overflow-x:hidden}body{min-width:320px}a,button{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--soft);outline-offset:4px}.skip-link{position:fixed;top:12px;left:12px;z-index:20;transform:translateY(-160%);padding:12px 16px;background:var(--ink);color:var(--bg);border-radius:999px;transition:transform .15s var(--ease-scene)}.skip-link:focus{transform:translateY(0)}.masthead{position:fixed;top:0;left:0;right:0;z-index:8;display:flex;align-items:center;justify-content:space-between;height:72px;padding:0 clamp(18px,4vw,60px);background:linear-gradient(rgba(14,21,18,.82),transparent);pointer-events:none}.masthead>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;min-height:44px;text-decoration:none;font-size:13px;letter-spacing:.05em;white-space:nowrap}.brand img{width:28px;height:28px;display:block}.season-nav{display:flex;gap:4px;align-items:center}.season-nav button{min-width:44px;min-height:44px;padding:8px 10px;color:var(--muted);font-size:12px;letter-spacing:.04em;transition:color .15s var(--ease-scene),background-color .15s var(--ease-scene)}.season-nav button:hover,.season-nav button[aria-current=true]{color:var(--ink);background:#f0f5ee1a}.controls{display:flex;gap:8px;align-items:center}.control{min-height:44px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;color:var(--soft);font-size:12px;transition:transform .12s var(--ease-scene),background-color .15s var(--ease-scene),border-color .15s var(--ease-scene)}.control:hover{background:#f0f5ee1a;border-color:#f0f5ee5c}.control:active{transform:scale(.97)}.control[aria-pressed=true]{border-color:var(--soft);color:var(--ink)}.progress{position:fixed;right:clamp(16px,4vw,60px);bottom:22px;z-index:8;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px;letter-spacing:.08em}.progress-line{width:92px;height:1px;background:#f0f5ee38;position:relative;overflow:hidden}.progress-line span{position:absolute;inset:0 auto 0 0;width:0;background:var(--soft);transition:width .4s var(--ease-scene)}.axis{position:fixed;left:clamp(18px,4vw,60px);bottom:22px;z-index:8;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px;letter-spacing:.1em}.axis-mark{width:20px;height:20px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;font-size:13px;transition:transform .3s var(--ease-scene),border-color .15s var(--ease-scene)}.axis[data-axis=horizontal] .axis-mark{transform:rotate(90deg);border-color:var(--soft)}.film{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;background:radial-gradient(ellipse at center,transparent 44%,rgba(0,0,0,.44) 100%);mix-blend-mode:multiply}.film:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E")}.scene-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:1;pointer-events:none}#front{z-index:4}main{position:relative;z-index:3}.chapter{min-height:120dvh;position:relative;display:grid;align-items:center;padding:96px clamp(18px,7vw,120px) 80px;scroll-margin-top:72px}.chapter-intro{min-height:100dvh}.chapter-copy{max-width:520px;position:relative}.kicker{margin:0 0 18px;color:var(--muted);font-size:12px;letter-spacing:.14em}h1,h2,h3,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-.025em;text-wrap:balance}h1{max-width:680px;margin-bottom:24px;font-size:clamp(48px,7vw,96px);line-height:1.18}h2{max-width:560px;margin-bottom:18px;font-size:clamp(38px,5.8vw,76px);line-height:1.22}.lede{max-width:40ch;margin-bottom:28px;color:var(--soft);font-size:clamp(16px,1.7vw,20px);line-height:1.8}.hint{color:var(--muted);font-size:13px;line-height:1.7;max-width:34ch}.enter{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:12px 18px;border:1px solid rgba(240,245,238,.38);border-radius:999px;color:var(--ink);transition:transform .12s var(--ease-scene),background-color .15s var(--ease-scene),border-color .15s var(--ease-scene)}.enter:hover{background:#f0f5ee1f;border-color:var(--soft)}.enter:active{transform:scale(.97)}.enter span{font-size:18px;line-height:1}.chapter-season{grid-template-columns:minmax(0,480px) minmax(0,1fr);min-height:165dvh;padding-right:0}.chapter-season:nth-of-type(odd) .chapter-copy{justify-self:start}.season-copy{align-self:center;position:sticky;top:22vh;max-width:440px;z-index:5}.season-name{display:flex;align-items:center;gap:12px;margin-bottom:16px;color:var(--muted);font-size:14px;letter-spacing:.12em}.season-name:before{content:"";width:28px;height:1px;background:currentColor}.story-rail{align-self:center;display:flex;gap:4vw;width:100%;min-width:0;transform:translate(0);transition:transform .4s var(--ease-scene);will-change:transform}.shot{flex:0 0 min(62vw,800px);min-height:66dvh;padding:clamp(22px,4vw,56px);display:flex;align-items:flex-end;position:relative;overflow:hidden;border-left:1px solid rgba(240,245,238,.18);background:linear-gradient(130deg,rgba(240,245,238,.06),transparent 58%)}.shot:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 42%,rgba(8,13,11,.86) 100%);pointer-events:none}.shot-copy{position:relative;z-index:1;max-width:37ch}.shot-index{margin-bottom:16px;color:var(--muted);font-size:11px;letter-spacing:.14em}.shot h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.4vw,52px);line-height:1.25;margin-bottom:12px}.shot p{margin-bottom:0;color:var(--soft);font-size:16px;line-height:1.8}.spring .season-name{color:var(--spring)}.summer .season-name{color:var(--summer)}.autumn .season-name{color:var(--autumn)}.winter .season-name{color:var(--winter)}.spring .story-rail{--accent:var(--spring)}.summer .story-rail{--accent:var(--summer)}.autumn .story-rail{--accent:var(--autumn)}.winter .story-rail{--accent:var(--winter)}.season-progress{display:flex;gap:2px;margin-top:22px}.season-progress button{position:relative;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;color:var(--muted);font-size:11px}.season-progress button:after{content:"";position:absolute;left:8px;right:8px;bottom:8px;height:1px;background:var(--line);transition:background-color .15s var(--ease-scene)}.season-progress button:hover:after,.season-progress button[aria-current=true]:after{background:var(--accent)}.season-progress button[aria-current=true]{border-color:var(--accent);color:var(--ink)}.rebound{min-height:100dvh;display:grid;place-items:center;padding:96px 20px;text-align:center;background:linear-gradient(180deg,rgba(168,211,176,.03),transparent 50%)}.rebound .chapter-copy{max-width:560px}.rebound h2,.rebound .hint{margin-inline:auto}.mobile-shot-control{display:none}@media(max-width:900px){.masthead{height:64px}.brand{font-size:12px}.season-nav{display:none}.controls{margin-left:auto}.control{padding-inline:11px}.chapter{padding-top:88px}.chapter-season{display:block;min-height:145dvh;padding-right:clamp(18px,7vw,120px)}.season-copy{position:relative;top:auto;max-width:520px;margin-bottom:44px}.story-rail{gap:18px}.shot{flex-basis:78vw;min-height:62dvh}}@media(max-width:600px){.masthead{padding-inline:16px}.brand img{width:24px;height:24px}.controls{gap:5px}.control{font-size:11px;padding-inline:9px}.chapter{min-height:100dvh;padding:92px 18px 76px}.chapter-season{min-height:135dvh;display:flex;flex-direction:column}.season-copy{margin-top:auto;margin-bottom:24px}.story-rail{width:100%;gap:0;display:block;transform:none!important}.shot{display:none;min-height:52dvh;width:100%;padding:24px 20px}.shot.is-active{display:flex}.shot h3{font-size:34px}.shot p{font-size:15px;line-height:1.7}.mobile-shot-control{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.mobile-shot-control button{min-width:48px;min-height:44px;color:var(--soft);border:1px solid var(--line);border-radius:999px}.mobile-shot-control button:disabled{opacity:.35;cursor:default}.mobile-shot-control span{font-size:12px;color:var(--muted)}.axis{left:18px;bottom:18px}.progress{right:18px;bottom:18px}.progress-line{width:60px}.film{background:radial-gradient(ellipse at center,transparent 34%,rgba(0,0,0,.5) 100%)}h1{font-size:clamp(48px,15vw,68px);line-height:1.28}.lede{font-size:16px;line-height:1.75}.hint{font-size:12px}.rebound{padding-inline:18px}.rebound h2{font-size:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.scene-canvas{opacity:.9}.film:after{display:none}}
