*{box-sizing:border-box}html{scroll-behavior:auto;scrollbar-width:thin;scrollbar-color:var(--muted) var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-body);-webkit-font-smoothing:antialiased}button,a,input{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button{font:inherit;cursor:pointer}a{text-decoration:none}button{background:none;border:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:var(--hairline) solid var(--ink);outline-offset:var(--space-1)}button:hover,a:hover{color:var(--pink)}h1,h2,p{margin:0}h1,h2{text-wrap:balance;letter-spacing:var(--tracking-display);font-weight:500}em{font-family:var(--font-accent);font-weight:400}p{text-wrap:pretty}.skip{position:fixed;top:var(--space-1);left:var(--space-1);transform:translateY(-160%);background:var(--ink);color:var(--bg);padding:var(--space-2);z-index:var(--z-note)}.skip:focus{transform:none}.sr-only{position:absolute;width:var(--hairline);height:var(--hairline);overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.header{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;position:absolute;inset:0 0 auto;z-index:var(--z-header);gap:var(--space-3)}.wordmark{font-size:var(--text-heading);font-weight:500;letter-spacing:var(--tracking-display);white-space:nowrap}.brand-dot{font-size:var(--text-label);vertical-align:super;display:inline-block;margin-left:var(--space-1)}nav{display:flex;gap:var(--space-4);font-size:var(--text-label)}.location{font-size:var(--text-label);color:var(--muted)}
.journey{height:760svh;position:relative}.stage{height:100svh;position:sticky;top:0;overflow:hidden;background:var(--bg);isolation:isolate}.ambient{position:absolute;inset:0;background:radial-gradient(ellipse at 69% 40%,oklch(29% .025 150 / .55),transparent 62%);pointer-events:none}.grain{position:absolute;inset:0;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23n)' opacity='.7' d='M0 0h160v160H0z'/%3E%3C/svg%3E");pointer-events:none;z-index:2}.ghost-word{position:absolute;left:48%;top:51%;font-size:var(--text-ghost);font-family:var(--font-accent);font-style:italic;color:var(--ink);opacity:.025;white-space:nowrap;transform:rotate(-8deg);pointer-events:none}#scene{position:absolute;width:100%;height:100%;inset:0;z-index:1}.copy-zone{position:relative;height:100%;pointer-events:none;z-index:3}.scene-copy{position:absolute;top:50%;max-width:var(--copy-max);transform:translateY(-44%);opacity:0;visibility:hidden;pointer-events:none}.scene-copy.is-current{opacity:1;visibility:visible;pointer-events:auto}.scene-copy h1,.scene-copy h2{font-size:var(--text-display);line-height:1.02}.eyebrow{font-size:var(--text-label);margin-bottom:var(--space-3);letter-spacing:.06em}.lede{font-size:var(--text-body);line-height:1.6;color:var(--muted);margin-top:var(--space-4);max-width:36ch}.text-link{display:inline-flex;align-items:center;gap:var(--space-3);margin-top:var(--space-4);padding:var(--space-1) 0;border-bottom:var(--hairline) solid var(--line);font-size:var(--text-body);font-weight:500}.text-link span{font-size:var(--text-lede)}.ingredient-tag{position:absolute;right:8%;top:66%;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-label);color:var(--muted);z-index:4;pointer-events:none}.tag-line{display:block;width:var(--space-6);height:var(--hairline);background:var(--muted);transform:rotate(-25deg);transform-origin:right center}.scene-bottom{position:absolute;bottom:var(--space-8);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--text-label);z-index:4;color:var(--muted)}.scroll-hint{display:flex;align-items:center;gap:var(--space-2)}.scroll-hint span{color:var(--ink);font-size:var(--text-lede)}#beat-name{letter-spacing:.12em}.diet-label{font-style:italic}
.story{min-height:80svh;padding-top:var(--space-9);padding-bottom:var(--space-8);display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-7);position:relative;background:var(--bg)}.story h2{font-size:var(--text-display);line-height:1.05}.story-detail{padding-top:var(--space-6);max-width:40ch}.story-detail p{font-size:var(--text-lede);line-height:1.6;color:var(--muted);margin-bottom:var(--space-3)}footer{grid-column:1/-1;display:flex;justify-content:space-between;gap:var(--space-3);border-top:var(--hairline) solid var(--line);padding-top:var(--space-4);align-items:baseline}footer>span:first-child{font-size:var(--text-heading);letter-spacing:var(--tracking)}footer>span:last-child{font-size:var(--text-label);color:var(--muted)}
.study-controls{position:fixed;bottom:var(--space-3);left:50%;transform:translateX(-50%);height:var(--control-height);display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2);border:var(--hairline) solid var(--line);border-radius:var(--round);background:var(--panel);backdrop-filter:blur(var(--space-3));z-index:var(--z-controls);font-size:var(--text-label);box-shadow:0 var(--space-1) var(--space-4) oklch(0% 0 0 / .12);white-space:nowrap}.study-controls button{font-size:var(--text-label);min-height:var(--space-4);padding:0 var(--space-1)}.study-label{border-right:var(--hairline) solid var(--line);padding-right:var(--space-2)!important}.study-label span{color:var(--muted)}.theme-switch{display:flex;border:var(--hairline) solid var(--line);border-radius:var(--round);padding:2px}.theme-switch button{border-radius:var(--round);padding-inline:var(--space-2);min-height:var(--space-3);color:var(--muted)}.theme-switch button[aria-pressed=true]{background:var(--ink);color:var(--bg)}#progress{width:var(--space-9);accent-color:var(--ink);height:var(--space-2);cursor:ew-resize}#play{min-width:var(--space-7)}#reset{font-size:var(--text-lede)}.study-note{position:fixed;left:50%;bottom:var(--space-8);transform:translateX(-50%);max-width:var(--copy-max);width:calc(100% - var(--space-6));background:var(--panel);border:var(--hairline) solid var(--line);padding:var(--space-3);border-radius:var(--space-2);z-index:var(--z-note);font-size:var(--text-body);box-shadow:0 var(--space-2) var(--space-6) oklch(0% 0 0 / .2)}.study-note p{margin-top:var(--space-2);line-height:1.5;color:var(--muted)}.noscript{position:fixed;inset:auto 0 var(--space-8);padding:var(--space-3);background:var(--bg);z-index:var(--z-note)}
@media(max-width:1023px){.location{display:none}.copy-zone{padding-inline:var(--margin)}.scene-copy{max-width:42%}.scene-copy h1,.scene-copy h2{font-size:var(--text-tablet)}.ingredient-tag{right:6%}.story{gap:var(--space-4)}}
@media(max-width:639px){:root{--text-display:clamp(2.5rem,11vw,3.5rem);--header-height:80px}.header{align-items:center}.wordmark{font-size:var(--text-heading)}nav{gap:var(--space-2)}nav a:first-child{display:none}.journey{height:720svh}.scene-copy{top:18%;transform:none!important;max-width:calc(100% - var(--space-6));width:100%}.scene-copy h1,.scene-copy h2{font-size:var(--text-display);line-height:1.03}.scene-copy h1 br:first-of-type{display:none}.scene-copy h2 br{display:none}.eyebrow{margin-bottom:var(--space-2)}.lede{font-size:var(--text-label);line-height:1.5;margin-top:var(--space-2)}.text-link{margin-top:var(--space-2);font-size:var(--text-label)}.ingredient-tag{top:75%;right:8%;font-size:var(--text-label)}.scene-bottom{bottom:var(--space-8);font-size:var(--text-label)}.diet-label{display:none}.study-controls{bottom:var(--space-2);gap:var(--space-1);padding-inline:var(--space-1);width:calc(100% - var(--space-3));justify-content:center}.study-label{display:none}#progress{width:var(--space-8);flex:1;min-width:var(--space-6)}.theme-switch button{padding-inline:var(--space-1)}.story{grid-template-columns:1fr;padding-top:var(--space-7);gap:var(--space-3)}.story-detail{padding-top:0}.story-detail p{font-size:var(--text-body)}footer{flex-direction:column;margin-top:var(--space-4)}.ghost-word{top:60%;left:0}.study-note{bottom:var(--space-8)}}
@media(prefers-reduced-motion:reduce){.journey{height:360svh}.grain{display:none}*{scroll-behavior:auto!important}.ambient{background:none}}

@media(max-width:639px){.ingredient-tag{top:81%}nav a[href="#story"]{display:none}}

.build-caption{position:absolute;left:48%;right:4%;top:82%;text-align:center;font-size:var(--text-label);color:var(--ink);z-index:3;pointer-events:none}@media(max-width:639px){.build-caption{left:var(--margin);right:var(--margin);top:84%}.scene-copy{top:14%}.scene-copy .lede br{display:none}}

#mosaic-background{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;mask-image:radial-gradient(ellipse 48% 55% at 70% 52%,#000 10%,transparent 100%)}
html:not([data-theme="rose"]) #mosaic-background{display:none}
html[data-theme="rose"] .ambient,html[data-theme="rose"] .grain{display:none}

@media(max-width:639px){.study-controls #progress{min-width:24px;width:64px}.study-controls .theme-switch button{font-size:11px;padding-inline:4px}.stage:has(#scene[data-phase="photographic-pour"]) .build-caption{display:none}.scene-bottom #beat-name{max-width:45%;letter-spacing:.04em}}

/* A quiet vertical chapter rail, with the user's rounded headline pairing. */
h1,h2,.wordmark,footer>span:first-child{font-family:var(--font-accent);font-weight:600}
em{font-family:inherit;font-style:normal;font-weight:inherit}
.vertical-nav{position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:var(--z-header);display:flex;flex-direction:column;gap:16px;align-items:flex-end;font-size:12px}
.vertical-nav a{display:flex;flex-direction:row-reverse;align-items:center;gap:9px;min-height:36px}
.nav-dot{width:7px;height:7px;border:1px solid currentColor;border-radius:50%;flex:none}
.vertical-nav a[aria-current="location"] .nav-dot{background:currentColor}
.vertical-nav a>span:last-child{opacity:0;transform:translateX(5px);transition:opacity .2s,transform .2s;background:var(--bg);padding:5px 7px;border-radius:4px}
.vertical-nav:hover a>span:last-child,.vertical-nav:focus-within a>span:last-child,.vertical-nav a[aria-current="location"]>span:last-child{opacity:1;transform:none}
@media(max-width:639px){.vertical-nav{right:8px;top:55%;gap:5px}.vertical-nav a{min-height:38px;min-width:30px;gap:3px}.vertical-nav a>span:last-child{display:none}.vertical-nav:hover a>span:last-child,.vertical-nav:focus-within a>span:last-child{display:block}.scene-copy h1,.scene-copy h2{font-size:clamp(2.25rem,10vw,3.5rem)}}
@media(prefers-reduced-motion:reduce){.vertical-nav a>span:last-child{transition:none}}
