:root{--ink:#f6f3ee;--ink-soft:#f6f3eed1;--glass:#141a2447;--glass-edge:#ffffff38;--serif:"Cormorant Garamond Variable", "Cormorant Garamond", Georgia, serif;--sans:"Inter Variable", "Inter", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html{touch-action:pan-y;overscroll-behavior-y:none;background:#1d2733}html.lb-open{overflow:hidden}body{font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}#scene{z-index:0;width:100vw;height:100lvh;display:block;position:fixed;top:0;left:0}main{z-index:1;position:relative}.chapter{justify-content:center;align-items:center;padding:10vh 6vw;display:flex;position:relative}.chapter-spring{min-height:170vh}.chapter-summer{min-height:220vh}.chapter-autumn{min-height:300vh}.hero{align-items:center;gap:clamp(1.5rem,4vw,4rem);width:100%;max-width:1080px;display:flex}.portrait{filter:drop-shadow(0 18px 36px #0a0e1659);flex-shrink:0;width:clamp(200px,30vw,380px);height:auto}.panel{background:var(--glass);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(10px)saturate(1.1);border-radius:20px;padding:clamp(1.4rem,3vw,2.4rem);box-shadow:0 20px 60px #0a0e162e}.eyebrow{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);font-size:.78rem}h1{font-family:var(--serif);letter-spacing:.01em;text-shadow:0 2px 30px #0a0e1640;margin:.35rem 0 .8rem;font-size:clamp(4rem,11vw,8.5rem);font-weight:500;line-height:.95}.lede{font-family:var(--serif);color:var(--ink-soft);max-width:34ch;font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.5}.scroll-hint{white-space:nowrap;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);opacity:.75;font-size:.75rem;position:absolute;bottom:5vh;left:50%;transform:translate(-50%)}.chapter-label span{font-family:var(--serif);color:var(--ink);text-shadow:0 2px 24px #0a0e1659;font-size:clamp(2.2rem,5vw,3.6rem);font-style:italic;position:sticky;top:45vh}@media (width<=767px),(hover:none) and (pointer:coarse){.panel,.note{-webkit-backdrop-filter:none;background:#141a246b}}@media (width<=767px){.hero{text-align:center;flex-direction:column}.portrait{width:min(62vw,300px)}.lede{margin:0 auto}}.veil{z-index:0;pointer-events:none;background:linear-gradient(#9fb6cf 0%,#d9e2ea 60%,#b9c6a8 100%);transition:opacity 1.6s;position:fixed;inset:0}body.is-ready .veil{opacity:0}.debug-fps{z-index:50;color:#fff;background:#0000008c;border-radius:6px;padding:6px 10px;font:12px/1.4 ui-monospace,monospace;position:fixed;bottom:10px;left:10px}.dates{letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-top:.9rem;font-size:.82rem}.voice{border:1px solid var(--glass-edge);color:var(--ink);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff1a;border-radius:999px;align-items:center;gap:.9rem;margin-top:1.6rem;padding:.55rem 1.3rem .55rem .55rem;transition:background .3s,border-color .3s,transform .3s;display:inline-flex}.voice:hover{background:#ffffff2e;border-color:#fff6}.voice:active{transform:scale(.98)}.voice:focus-visible{outline-offset:3px;outline:2px solid #ffffffb3}.voice-nose{background:#ffffff1f;border:1px solid #ffffff38;border-radius:50%;flex-shrink:0;width:52px;height:52px;position:relative}.voice-nose:after{content:"";background:var(--ink);position:absolute;inset:9px 5px;-webkit-mask:url(/media/noseprint.webp) 50%/contain no-repeat;mask:url(/media/noseprint.webp) 50%/contain no-repeat}.voice.is-playing .voice-nose{animation:1.6s ease-in-out infinite nose-glow}@keyframes nose-glow{0%,to{box-shadow:0 0 #fff0}50%{box-shadow:0 0 0 8px #ffffff1f}}.voice-caption{font-family:var(--serif);letter-spacing:.01em;font-size:1.35rem;font-style:italic}.voice-wave{align-items:center;gap:3px;width:0;height:18px;transition:width .4s;display:inline-flex;overflow:hidden}.voice.is-playing .voice-wave{width:26px}.voice-wave i{background:var(--ink-soft);border-radius:2px;width:3px;height:30%;display:block}.voice.is-playing .voice-wave i{animation:.9s ease-in-out infinite wave}.voice-wave i:nth-child(2){animation-delay:-.2s}.voice-wave i:nth-child(3){animation-delay:-.5s}.voice-wave i:nth-child(4){animation-delay:-.3s}.voice-wave i:nth-child(5){animation-delay:-.65s}@keyframes wave{0%,to{height:25%}50%{height:100%}}@media (width<=767px){.voice{margin-left:auto;margin-right:auto}}.summer-stage{pointer-events:none;width:100%;height:100vh;position:sticky;top:0}.summer-video{aspect-ratio:480/848;opacity:0;visibility:hidden;will-change:opacity, transform;pointer-events:auto;max-width:88vw;height:min(78vh,900px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.92)}.summer-video video{object-fit:cover;-webkit-mask-composite:source-in;width:100%;height:100%;display:block;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 20% 80%,#0000 100%),linear-gradient(#0000 0%,#000 15% 85%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000 20% 80%,#0000 100%),linear-gradient(#0000 0%,#000 15% 85%,#0000 100%);-webkit-mask-composite:source-in;mask-composite:intersect}.summer-sound{border:1px solid var(--glass-edge);color:var(--ink);font:.72rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:#141a2466;border-radius:999px;padding:.5rem 1rem;position:absolute;bottom:12%;left:50%;transform:translate(-50%)}.summer-sound[hidden]{display:none}.notes-stage{perspective:1400px;perspective-origin:50% 45%;opacity:0;visibility:hidden;width:100%;height:100vh;position:sticky;top:0}.notes-ring{transform-style:preserve-3d;position:absolute;inset:0}.note{-webkit-backdrop-filter:blur(8px)saturate(1.1);width:min(420px,78vw);color:var(--ink);will-change:transform, opacity;backface-visibility:hidden;background:#ffffff1a;border:1px solid #ffffff3d;border-radius:22px;padding:clamp(1.4rem,3vw,2.2rem);position:absolute;top:50%;left:50%;box-shadow:0 24px 60px #140c062e}.note-text{font-family:var(--serif);text-shadow:0 1px 12px #140c0640;font-size:clamp(1.15rem,1.8vw,1.4rem);line-height:1.55}.note-name{letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);margin-top:1.2rem;font-size:.78rem}.note-name:before{content:"— "}html[data-profile=lite] .panel,html[data-profile=lite] .note{-webkit-backdrop-filter:none}html[data-profile=lite] .panel{background:#141a246b}html[data-profile=lite] .note{background:#281c1457}@media (width<=767px),(hover:none) and (pointer:coarse){.note{background:#281c145c}}.chapter-summer,.chapter-autumn,.chapter-spring,.chapter-winter{padding:0;display:block}.chapter-winter{min-height:200vh}.summer-stage,.notes-stage,.spring-stage,.winter-stage{height:100svh}.spring-stage,.winter-stage{justify-content:center;align-items:center;padding:0 6vw;display:flex;position:sticky;top:0}.winter-stage{opacity:0;visibility:hidden}.gallery{text-align:center;width:min(1100px,100%)}.gallery-title{font-family:var(--serif);text-shadow:0 2px 24px #0a0e164d;margin:.3rem 0 1.6rem;font-size:clamp(2.4rem,6vw,4rem);font-weight:500}.gallery-strip{scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x pan-y;justify-content:safe center;gap:16px;padding:6px 4px 12px;display:flex;overflow-x:auto}.gallery-strip::-webkit-scrollbar{display:none}.gallery-card{aspect-ratio:3/4;cursor:pointer;scroll-snap-align:center;background:#ffffff14;border:1px solid #ffffff47;border-radius:18px;flex:0 0 clamp(190px,24vw,280px);padding:0;position:relative;overflow:hidden;box-shadow:0 16px 40px #0a0e1638}.gallery-card img{object-fit:cover;width:100%;height:100%;transition:transform .5s;display:block}.gallery-card:hover img{transform:scale(1.04)}.gallery-play{color:#fff;text-shadow:0 2px 12px #00000080;place-items:center;font-size:1.6rem;display:grid;position:absolute;inset:0}.gallery-empty{max-width:34ch;font-family:var(--serif);color:var(--ink-soft);margin:0 auto;font-size:1.25rem}.gallery-nav{justify-content:center;gap:.6rem;margin-top:1rem;display:flex}.gallery-nav[hidden]{display:none}.gallery-arrow{border:1px solid var(--glass-edge);width:44px;height:44px;color:var(--ink);cursor:pointer;background:#141a244d;border-radius:50%;font-size:1.1rem}@media (hover:none) and (pointer:coarse){.gallery-nav{display:none}}.lightbox{z-index:100;touch-action:pan-y;background:#080b10eb;place-items:center;display:grid;position:fixed;inset:0}.lightbox[hidden]{display:none}.lb-media{max-width:92vw;max-height:82svh}.lb-media img,.lb-media video{border-radius:12px;max-width:92vw;max-height:82svh;display:block}.lb-caption{text-align:center;font-family:var(--serif);color:var(--ink-soft);padding:0 6vw;font-size:1.15rem;position:absolute;bottom:4svh;left:0;right:0}.lb-close,.lb-prev,.lb-next{border:1px solid var(--glass-edge);color:#fff;cursor:pointer;background:#ffffff14;border-radius:50%;width:46px;height:46px;font-size:1.3rem;position:absolute}.lb-close{top:16px;right:16px}.lb-prev{top:50%;left:16px;transform:translateY(-50%)}.lb-next{top:50%;right:16px;transform:translateY(-50%)}@media (hover:none) and (pointer:coarse){.lb-prev,.lb-next{display:none}}.note-soon{color:var(--ink-soft);font-style:italic}
