@font-face{font-family:Cabinet;src:url('fonts/cabinet-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Cabinet;src:url('fonts/cabinet-medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:Cabinet;src:url('fonts/cabinet-extrabold.woff2') format('woff2');font-weight:800;font-display:swap}

:root{--night:#191c1a;--deep:#101311;--paper:#eef0eb;--ink:#242923;--mint:#b8edcc;--quiet:#aeb8b0;--body:clamp(17px,1.24vw,20px);--small:14px;--lead:clamp(25px,2.65vw,36px);--head:clamp(38px,4.1vw,64px);--gutter:clamp(20px,3.3vw,54px);--ease:cubic-bezier(.22,1,.36,1);--duration:800ms;color-scheme:dark;font-family:Cabinet,Arial,sans-serif;color:var(--paper);background:var(--night);font-synthesis:none;scroll-behavior:smooth;scrollbar-color:var(--quiet) var(--night)}
*{box-sizing:border-box}
body{margin:0;font-size:var(--body);line-height:1.5;overflow-x:clip;color:var(--paper);background:var(--night)}
body,button,a{-webkit-tap-highlight-color:transparent}
button,input{font:inherit}
button,a{touch-action:manipulation}
button{cursor:pointer}
a{color:inherit;text-decoration:none;text-underline-offset:.3em}
a:hover{text-decoration:underline}
button{color:inherit}
button svg,a svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4;flex-shrink:0}
button:active,.start-link:active{transform:translateY(2px)}
:focus-visible{outline:3px solid currentColor;outline-offset:6px}
.start-link:focus-visible,.skip-link:focus-visible{outline-color:var(--paper)}
.memory-button:focus-visible,.profile-tabs button:focus-visible{outline-color:var(--ink)}
::selection{background:var(--mint);color:var(--ink)}
img{display:block;max-width:100%;height:auto}
figure,p,h1,h2,h3,blockquote{margin:0}
h1,h2,h3{font-weight:500;line-height:1.05;letter-spacing:-.035em;text-wrap:balance}
h2{font-size:var(--head)}
p{text-wrap:pretty}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link{position:fixed;top:10px;left:10px;z-index:100;background:var(--mint);color:var(--ink);padding:14px;transform:translateY(-180%)}
.skip-link:focus{transform:none}
.section-pad{padding:120px var(--gutter)}
.light{background:var(--paper);color:var(--ink);color-scheme:light}
.lead{font-size:var(--lead);line-height:1.2;letter-spacing:-.025em}
.prose{max-width:34ch}
.prose p+p{margin-top:1.1em}
.site-header{position:absolute;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:28px var(--gutter);gap:30px;color:var(--paper)}
.brand{font-weight:800;font-size:24px;letter-spacing:-.035em;line-height:1}
.site-header nav{display:flex;gap:32px;align-items:center;font-size:16px}
.site-header a{min-height:44px;display:inline-flex;align-items:center;gap:8px}
.hero{position:relative;height:100svh;min-height:700px;max-height:1300px;isolation:isolate;overflow:hidden;background:var(--night)}
.hero-photo{position:absolute;inset:0 0 0 34%;overflow:hidden;z-index:-1}
.hero-photo:after{content:"";position:absolute;inset:0;background:rgba(11,17,12,.19)}
.hero-photo img{height:100%;width:100%;object-fit:cover;object-position:50% 31%;transform:scale(1.035)}
.hero-intro{position:absolute;top:25%;left:var(--gutter);max-width:27%;font-size:18px}
.hero-intro p:first-child{font-size:var(--lead);letter-spacing:-.025em;margin-bottom:24px}
.monument{position:absolute;left:var(--gutter);right:var(--gutter);bottom:97px;display:flex;justify-content:space-between;font-size:clamp(160px,32.8vw,540px);font-weight:800;line-height:.68;letter-spacing:-.04em;pointer-events:none;color:var(--paper)}
.monument span{display:block;transform-origin:bottom}
.hero-bottom{position:absolute;bottom:25px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:center;font-size:16px;gap:20px}
.start-link{display:flex;gap:30px;align-items:center;background:var(--mint);color:var(--ink);padding:15px 20px;min-height:54px;transition:transform 180ms var(--ease),background-color 180ms ease}
.start-link:hover{text-decoration:none;background:var(--paper)}
.hero-credit{position:absolute;right:var(--gutter);top:44%;font-size:14px;writing-mode:vertical-rl}
.chapter-opening{display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter);align-items:start}
.reading-note{font-size:16px;justify-self:end;max-width:30ch}
.invitation{padding-top:130px;padding-bottom:90px}
.invitation-body{display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter);align-items:start;margin-top:110px}
.invitation-body>.prose{padding-left:17%;max-width:42ch}
.evening{display:grid;grid-template-columns:1.05fr .95fr;gap:8%;padding-top:30px;padding-bottom:140px;align-items:start}
.evening-photo{width:100%;overflow:hidden}
.evening-photo img{aspect-ratio:4/5;object-fit:cover;object-position:50% 35%;width:100%}
figcaption{font-size:var(--small);line-height:1.4;margin-top:16px}
.evening-story{padding-top:110px}
.evening-story h2{margin-bottom:48px;font-size:clamp(35px,3.4vw,52px)}
blockquote{font-size:var(--lead);line-height:1.2;letter-spacing:-.02em;font-weight:500}
.evening-story blockquote{margin:60px 0 36px}
.turn{position:relative;display:grid;grid-template-columns:1fr 1fr;background:#282f2b;color:var(--paper)}
.turn-visual{grid-column:2;grid-row:1;position:sticky;top:0;height:100svh;min-height:650px;overflow:hidden}
.turn-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 35%;opacity:0;transform:scale(1.025);transition:opacity 900ms var(--ease),transform 1800ms var(--ease)}
.turn-image.is-active{opacity:1;transform:scale(1)}
.visual-caption{position:absolute;inset:auto 24px 24px;display:flex;justify-content:space-between;gap:16px;font-size:14px;color:white;background:rgba(16,19,17,.82);padding:12px 16px}
.turn-narrative{grid-column:1;grid-row:1}
.scene{min-height:105svh;padding:100px var(--gutter);display:flex;align-items:center}
.scene-copy{width:100%;max-width:550px;margin:auto}
.scene h2{font-size:clamp(36px,3.8vw,58px);margin-bottom:48px}
.scene .prose{max-width:32ch}
.scene blockquote{margin:44px 0 24px;font-size:clamp(25px,2.45vw,36px)}
.scene-aside{margin-top:70px;color:var(--quiet);font-size:16px}
.scene-fallback{position:absolute;clip-path:inset(50%);width:1px;height:1px}
.threshold{background:var(--mint);color:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter);padding-top:120px;padding-bottom:120px;min-height:800px}
.threshold h2{font-size:clamp(36px,3.5vw,56px)}
.threshold .lead{max-width:26ch}
.threshold-body>.prose{margin-top:32px}
.threshold-body .choice-prose{margin-top:70px}
.choice-statement{font-size:var(--lead);line-height:1.2;letter-spacing:-.025em;margin-top:60px}
.aftermath{background:var(--deep);padding-top:120px}
.aftermath-heading{display:flex;justify-content:space-between;gap:50px;margin-bottom:80px}
.aftermath-heading .prose{max-width:37ch}
.aftermath-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:8%;align-items:center}
.aftermath-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 39%}
.aftermath-copy .lead{margin-bottom:48px}
.last-detail{margin-top:85px;font-size:16px;color:var(--quiet)}
.memory{display:grid;grid-template-columns:1.1fr .9fr;gap:10%;align-items:center;padding-top:120px;padding-bottom:120px;background:var(--paper);color:var(--ink);min-height:850px}
.memory h2{margin-bottom:80px}
.memory .lead{margin-bottom:28px}
.memory-copy>.prose{max-width:30ch}
.memory-picture{max-width:470px;justify-self:end;width:100%}
.memory-picture img{aspect-ratio:4/5;object-fit:cover;object-position:50% 33%;width:100%}
.memory-picture figcaption{max-width:28ch}
.memory-button{display:flex;align-items:center;justify-content:space-between;gap:42px;margin-top:48px;padding:14px 18px;background:var(--ink);color:var(--paper);border:0;min-height:56px;transition:background-color 180ms ease,transform 180ms ease}
.memory-button:hover{background:#3b493e}
.memory-response{margin-top:24px;font-size:16px;max-width:33ch;min-height:48px}
.memory.is-interactive .memory-picture img{opacity:.32;filter:grayscale(1);transform:translateY(12px);transition:opacity 1100ms var(--ease),transform 1300ms var(--ease),filter 1100ms var(--ease)}
.memory.is-remembered .memory-picture img{opacity:1;filter:none;transform:none}
.memory.is-remembered{background:var(--mint)}
.profile{scroll-margin-top:0;padding-top:90px;min-height:100svh}
.profile-top{display:flex;justify-content:space-between;gap:30px;align-items:center;margin-bottom:80px}
.text-button{background:none;border:0;padding:12px 0;display:flex;align-items:center;gap:12px;font-size:16px}
.text-button:hover{text-decoration:underline;text-underline-offset:.3em}
.profile-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:10%;align-items:start}
.profile-info{position:sticky;top:60px;max-width:42ch}
.profile-info h3{font-size:36px;margin-bottom:32px}
.profile-info h3 span{font-size:24px;line-height:1.8;letter-spacing:0}
.profile-info dl{margin:40px 0}
.profile-info dl>div+div{margin-top:22px}
.profile-info dt{font-weight:800}
.profile-info dd{margin:4px 0 0}
.profile-note{font-size:14px;max-width:38ch}
.profile-tabs{display:flex;gap:8px;margin-top:30px}
.profile-tabs button{background:#dce1d9;border:0;padding:13px 16px;font-size:16px;min-height:48px}
.profile-tabs button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
.profile-tabs button:hover{background:var(--mint);color:var(--ink)}
.reference-link{display:inline-flex;align-items:center;gap:8px;font-size:16px;margin-top:20px;min-height:44px}
.profile-reference img{width:100%;height:auto}
.profile-reference{min-width:0}
.footer{background:var(--night);padding-top:70px;padding-bottom:30px;min-height:560px;display:flex;flex-direction:column;justify-content:space-between}
.footer-top{display:flex;justify-content:space-between;gap:30px}
.footer-actions{display:flex;align-items:flex-start;gap:35px;font-size:16px}
.footer-actions a{display:flex;align-items:center;gap:12px;min-height:44px}
.creator-title{display:flex;align-items:center;justify-content:space-between;font-size:clamp(70px,14vw,230px);letter-spacing:-.04em;line-height:1;font-weight:800;margin:70px 0 60px}
.creator-title svg{width:10vw;height:10vw;max-width:150px;max-height:150px;stroke-width:1}
.creator-title:hover{color:var(--mint);text-decoration:none}
.footer-bottom{display:flex;justify-content:space-between;gap:30px;font-size:16px}
.footer-bottom a{text-decoration:underline}
.credits{margin-top:40px;font-size:var(--small);color:var(--quiet)}
.reading-progress{position:fixed;bottom:0;left:0;right:0;height:4px;z-index:30;pointer-events:none}
.reading-progress span{display:block;height:100%;width:100%;background:var(--mint);transform:scaleX(0);transform-origin:left}

@media(prefers-reduced-motion:no-preference){
 .hero-intro{animation:enter 1100ms var(--ease) both;animation-delay:100ms}
 .monument span{animation:letter-in 1300ms var(--ease) both}
 .monument span:nth-child(2){animation-delay:80ms}
 .monument span:nth-child(3){animation-delay:160ms}
 .monument span:nth-child(4){animation-delay:240ms}
 .hero-photo img{animation:portrait-in 2000ms var(--ease) both}
 .hero-bottom{animation:enter 1000ms var(--ease) both;animation-delay:500ms}
 [data-reveal].will-reveal{transform:translateY(24px);opacity:.35;transition:transform 1100ms var(--ease),opacity 900ms var(--ease)}
 [data-reveal].will-reveal.is-visible{transform:none;opacity:1}
 .shutter.will-reveal{transform:translateY(35px)}
}
@keyframes enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes letter-in{from{opacity:0;transform:translateY(60%)}to{opacity:1;transform:none}}
@keyframes portrait-in{from{transform:scale(1.09)}to{transform:scale(1.035)}}

@media(min-width:1700px){.evening-story{max-width:570px}.hero-intro{top:22%}.monument{font-size:32vw}.scene-copy{max-width:620px}}
@media(max-width:1000px){
 .hero{min-height:650px}.hero-intro{top:20%;max-width:30%;font-size:16px}.hero-intro p:first-child{font-size:28px}.hero-photo{left:28%}.monument{bottom:110px}
 .site-header nav{gap:20px}.brand{font-size:22px}.evening{gap:6%}.evening-story{padding-top:50px}.evening-story blockquote{margin-top:36px}.evening-story h2{margin-bottom:28px}
 .scene{padding:80px 30px}.scene h2{font-size:36px}.scene blockquote{font-size:27px}.threshold{gap:40px;grid-template-columns:.8fr 1.2fr}.aftermath-layout{gap:6%;grid-template-columns:1.15fr .85fr}.memory{gap:7%}
 .profile-grid{gap:6%}.profile-info{position:static}.profile-tabs{flex-wrap:wrap}
}
@media(max-width:700px){
 :root{--gutter:22px;--head:38px;--lead:27px;--body:18px}
 .section-pad{padding:80px var(--gutter)}
 .site-header{padding:18px var(--gutter);gap:18px}.brand{font-size:22px}.site-header nav{font-size:15px;gap:16px}.site-header .story-link,.site-header .creator-link{display:none}
 .hero{height:100svh;min-height:720px;max-height:1000px}.hero-photo{inset:0 0 260px 0}.hero-photo img{object-position:50% 23%}.hero-photo:after{background:rgba(9,14,10,.18)}
 .hero-intro{top:auto;bottom:155px;max-width:90%;font-size:16px}.hero-intro p:first-child{font-size:var(--lead);margin-bottom:6px}.hero-intro p:nth-child(2){max-width:34ch}.hero-intro p:nth-child(2) br{display:none}.hero-intro p:nth-child(2) br:after{content:' '}
 .monument{font-size:33vw;bottom:275px;left:18px;right:18px;line-height:.7}.hero-credit{display:none}
 .hero-bottom{bottom:25px;display:block;font-size:16px}.hero-bottom>span{display:block;margin-bottom:20px}.start-link{justify-content:space-between;padding:14px 17px;max-width:none}
 .chapter-opening{display:block}.reading-note{margin-top:30px;font-size:16px;max-width:29ch;justify-self:start}.invitation-body{display:block;margin-top:60px}.invitation-body>.prose{padding:0;margin-top:30px;max-width:30ch}.wide-only{display:none}
 .evening{display:flex;flex-direction:column;padding-top:10px;gap:0}.evening-photo{width:88%}.evening-photo img{aspect-ratio:3/4}.evening-story{padding-top:55px;padding-left:11%}.evening-story h2{font-size:34px;margin-bottom:30px}.evening-story blockquote{margin:38px 0 28px;font-size:30px}
 .turn{display:block}.turn-visual{display:none}.scene{display:block;min-height:0;padding:0}.scene-fallback{position:static;clip-path:none;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 35%}.scene-copy{padding:60px var(--gutter) 80px}.scene h2{font-size:38px;margin-bottom:32px}.scene .prose{max-width:34ch}.scene-aside{margin-top:40px}.scene blockquote{font-size:28px;margin-top:35px}
 .threshold{display:block;min-height:0}.threshold h2{font-size:38px;margin-bottom:60px}.threshold-body>.prose{margin-top:24px}.threshold-body .choice-prose{margin-top:50px}.choice-statement{margin-top:45px;font-size:30px}
 .aftermath-heading{display:block;margin-bottom:45px}.aftermath-heading h2{margin-bottom:30px}.aftermath-layout{display:block}.aftermath-photo{margin:0 calc(var(--gutter) * -1)}.aftermath-photo img{aspect-ratio:3/4;object-position:50% 35%}.aftermath-copy{padding-top:50px}.aftermath-copy .lead{margin-bottom:30px}.last-detail{margin-top:45px}
 .memory{display:flex;flex-direction:column;min-height:0;gap:30px;align-items:stretch}.memory h2{margin-bottom:50px}.memory .lead{font-size:var(--lead)}.memory-button{margin-top:36px;width:100%}.memory-response{min-height:0}.memory-picture{width:82%;align-self:flex-end;margin-top:15px}
 .profile-top{align-items:flex-start;margin-bottom:45px;flex-direction:column;gap:15px}.profile-grid{display:flex;flex-direction:column;gap:40px}.profile-info h3{font-size:32px}.profile-tabs{flex-wrap:nowrap}.profile-tabs button{padding:12px;font-size:16px}.profile-reference{width:100%}
 .footer{min-height:0;padding:55px var(--gutter) 25px}.footer-top{flex-direction:column;gap:30px}.footer-actions{justify-content:space-between;gap:20px}.creator-title{font-size:14.2vw;letter-spacing:-.04em;margin:65px 0 40px}.creator-title svg{width:10vw;height:10vw}.footer-bottom{display:block}.footer-bottom a{display:inline-block;margin-top:18px;min-height:44px}.credits{margin-top:25px;font-size:var(--small);max-width:36ch}
}
.evening-story h2,.scene h2,.threshold h2{font-size:var(--head)}
.evening-story blockquote,.scene blockquote,.choice-statement{font-size:var(--lead)}
@media(prefers-reduced-motion:reduce){
 :root{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}
 .hero-photo img,.turn-image{transform:none}.memory.is-interactive .memory-picture img{opacity:1;filter:none;transform:none}
}
@media print{
 .site-header,.reading-progress,.memory-button,.profile-tabs,.footer-actions{display:none}
 .hero{height:500px;min-height:0}.turn{display:block}.turn-visual{display:none}.scene-fallback{position:static;clip-path:none;width:250px;height:auto}.scene{min-height:0;break-inside:avoid}.section-pad{padding:40px}.memory.is-interactive .memory-picture img{opacity:1;filter:none;transform:none}body{background:white;color:black}
}

/* Alternate edition: lamplight before the original cold ending. */
:root{--warm-paper:#f1e6da;--room:#392e2a;--warm-quiet:#d3c0b4;--room-text:#f5ece3}
.invitation,.evening{background:var(--warm-paper)}
.turn{background:var(--room);color:var(--room-text)}
.turn .scene-aside{color:var(--warm-quiet)}
.turn-image{object-position:50% 30%}
.turn[data-active-scene="1"] [data-scene-image="0"]{transform:scale(1.075);object-position:50% 24%}
.scene-trust h2{font-size:clamp(34px,3.6vw,54px)}
.scene-rejection{background:var(--night);color:var(--paper)}
.scene-rejection .scene-aside{color:var(--quiet)}
@media(max-width:700px){
 .scene-close .scene-copy{padding-top:24px;padding-bottom:90px}
 .scene-trust .scene-fallback{aspect-ratio:1/1;object-position:50% 22%}
 .scene-rejection .scene-copy{padding-top:80px}
 .scene-trust h2{font-size:36px}
}
@media(prefers-reduced-motion:reduce){.turn[data-active-scene="1"] [data-scene-image="0"]{transform:none}}

/* Late sequence: construction, disconnected hardware, then a later outdoor location. */
.stillness{background:var(--deep);display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center;padding-top:40px}
.stillness h2,.disposal h2{margin-bottom:40px}
.hardware-photo{width:100%;max-width:480px;justify-self:end}
.hardware-photo img{width:100%;height:auto}
.disposal{background:var(--night);display:grid;grid-template-columns:1.05fr .95fr;gap:40px 10%;align-items:center}
.disposal-copy{grid-column:2;grid-row:1;align-self:end}
.disposal>.last-detail{grid-column:2;grid-row:2;margin:0;align-self:start}
.disposal-photo{grid-column:1;grid-row:1 / span 2}
.disposal-photo img{width:100%;height:auto}
.disposal-copy .prose{max-width:32ch}
@media(max-width:700px){
 .stillness{display:flex;flex-direction:column;align-items:stretch;gap:36px;padding-top:0}
 .stillness h2,.disposal h2{margin-bottom:30px}
 .hardware-photo{width:auto;max-width:none;margin:0 calc(var(--gutter) * -1)}
 .hardware-photo figcaption{margin-left:var(--gutter);margin-right:var(--gutter)}
 .disposal{display:flex;flex-direction:column;align-items:stretch;gap:40px;padding-top:80px}
 .disposal-photo{margin:0 calc(var(--gutter) * -1)}
 .disposal-copy,.disposal>.last-detail{align-self:stretch}
 .disposal>.last-detail{margin-top:0}
}
