@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-vietnamese-wght-normal.D0rl6rjA.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-ext-wght-normal.D9tNdqV9.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk Variable;font-style:normal;font-display:swap;font-weight:300 700;src:url(/_astro/space-grotesk-latin-wght-normal.BhU9QXUp.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/jetbrains-mono-latin-400-normal.V6pRDFza.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-400-normal.6-qcROiO.woff) format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/jetbrains-mono-latin-500-normal.BWZEU5yA.woff2) format("woff2"),url(/_astro/jetbrains-mono-latin-500-normal.CJOVTJB7.woff) format("woff")}@font-face{font-family:CJK Punctuation;src:local("PingFang SC"),local("PingFangSC-Regular"),local("Microsoft YaHei"),local("MicrosoftYaHei"),local("Noto Sans CJK SC"),local("NotoSansCJKsc-Regular"),local("Source Han Sans SC");unicode-range:U+2014,U+2026,U+2018-2019,U+201C-201D}:root{color-scheme:dark;--ink: #f0edf6;--ink-dim: rgba(240, 237, 246, .82);--ink-faint: rgba(240, 237, 246, .55);--accent: #ff4f9e;--accent-deep: #37b8c8;--font-sans: "CJK Punctuation", "Space Grotesk Variable", "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", sans-serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, "PingFang SC", "Microsoft YaHei", monospace}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-color:rgba(240,237,246,.24) transparent;scrollbar-gutter:stable}@media(pointer:coarse){html{scroll-snap-type:y mandatory}html[data-section-overflow=true]{scroll-snap-type:none}}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#f0edf638;border-radius:5px}body{margin:0;min-height:100%;background:radial-gradient(ellipse at 72% 30%,#21152a,#06070d 70%) fixed;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}body:not([data-render-state=ready]) .scene-canvas,body:not([data-render-state=ready]) .depth-readout{opacity:0}body[data-render-state=ready] .scene-canvas,body[data-render-state=ready] .depth-readout{opacity:1;transition:opacity .9s ease}.scene-poster{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.scene-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .9s ease;animation:poster-drift 26s ease-in-out infinite alternate}body:not([data-chapter]) .scene-poster img:nth-child(1),body[data-chapter="0"] .scene-poster img:nth-child(1),body[data-chapter="1"] .scene-poster img:nth-child(2),body[data-chapter="2"] .scene-poster img:nth-child(3),body[data-chapter="3"] .scene-poster img:nth-child(4){opacity:1}body[data-render-state=ready] .scene-poster{visibility:hidden;transition:visibility 0s linear 1s}@keyframes poster-drift{0%{transform:scale(1)}to{transform:scale(1.045)}}body:not([data-render-state=error]) .loading-screen{display:none}.loading-screen{position:fixed;right:clamp(1.1rem,4vw,3rem);bottom:max(1.1rem,env(safe-area-inset-bottom));width:min(22rem,calc(100% - 2.2rem));z-index:40;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.5rem .75rem;padding:1rem;border:1px solid rgba(240,237,246,.12);border-radius:.6rem;background:#06070df0;transition:opacity .7s ease,visibility .7s ease}body[data-render-state=ready] .loading-screen{opacity:0;visibility:hidden;pointer-events:none}.loading-screen[hidden],body:not([data-render-state=error]) .loader-actions{display:none}.loader-ring{width:18px;height:18px;border:2px solid rgba(255,255,255,.14);border-top-color:var(--accent);border-radius:50%;animation:spin 1.1s linear infinite}.loader-text{font-size:.82rem;letter-spacing:.06em;color:var(--ink)}.loader-hint{grid-column:2;font-size:.72rem;line-height:1.6;color:var(--ink-dim)}.loader-actions{grid-column:2;display:flex;flex-wrap:wrap;gap:.6rem}.loader-retry,.loader-dismiss{padding:.5rem .75rem;border:1px solid var(--accent);border-radius:.3rem;background:transparent;color:var(--ink);font:inherit;font-size:.8rem;cursor:pointer}.loader-dismiss{border-color:#f0edf659}.loader-retry:focus-visible,.loader-dismiss:focus-visible,.render-retry-compact:focus-visible{outline:2px solid var(--ink);outline-offset:3px}body[data-render-state=error] .loader-ring{animation:none;border-color:var(--accent)}body:not([data-render-state=ready]) .fps-readout{display:none}@keyframes spin{to{transform:rotate(360deg)}}.scene-canvas{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0;touch-action:pan-y;cursor:grab}.scene-canvas[data-dragging=true]{cursor:grabbing}.scene-vignette{position:fixed;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to right,rgba(3,4,9,.62) 0%,rgba(3,4,9,.34) 30%,transparent 56%),radial-gradient(ellipse at 50% 42%,transparent 36%,rgba(2,3,8,.62) 100%),linear-gradient(to bottom,rgba(2,3,8,.45) 0%,transparent 24%),linear-gradient(to top,rgba(2,3,8,.55) 0%,transparent 26%)}.scene-vignette:after{content:"";position:absolute;inset:0;background:#0000;mix-blend-mode:screen;opacity:0;transition:background-color .75s ease,opacity .75s ease}body[data-scene-stage=alley]{--accent: #ff579f}body[data-scene-stage=downpour]{--accent: #81b7ff}body[data-scene-stage=clear]{--accent: #d3c1ff}body[data-scene-stage=alley] .scene-vignette:after{background-color:#ff2a8f2e;opacity:.16}body[data-scene-stage=downpour] .scene-vignette:after{background-color:#436eff38;opacity:.2}body[data-scene-stage=clear] .scene-vignette:after{background-color:#90acff2e;opacity:.14}.site-header{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:clamp(1rem,2.6vw,1.9rem) clamp(1.1rem,4vw,3rem);pointer-events:none}.brand{pointer-events:auto;display:flex;flex-direction:column;gap:.15rem;text-decoration:none;color:var(--ink)}.brand b{font-size:.86rem;font-weight:650;letter-spacing:.16em;white-space:nowrap;text-shadow:0 2px 14px rgba(0,0,0,.8)}.brand small{font-size:.66rem;letter-spacing:.32em;color:var(--ink-faint)}.header-tools{display:flex;align-items:center;gap:.9rem}.render-status{margin:0;display:flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;color:var(--ink-dim);white-space:nowrap;text-shadow:0 2px 12px rgba(0,0,0,.8)}.render-status i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px #ff4f9ee6;animation:pulse 2.4s ease-in-out infinite;transition:background-color .75s ease,box-shadow .75s ease}.render-retry-compact{pointer-events:auto;padding:.3rem .5rem;border:1px solid rgba(240,237,246,.35);border-radius:.3rem;background:#06070db3;color:var(--ink);font:inherit;cursor:pointer}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.sound-toggle{pointer-events:auto;display:inline-flex;align-items:center;gap:.45rem;padding:.32rem .7rem;border:1px solid rgba(240,237,246,.22);border-radius:999px;background:#06070d66;color:var(--ink-dim);font:inherit;font-size:.72rem;letter-spacing:.08em;cursor:pointer;transition:border-color .3s ease,color .3s ease}.sound-toggle:hover,.sound-toggle[aria-pressed=true]{border-color:var(--accent);color:var(--ink)}.sound-toggle:focus-visible,.end-replay:focus-visible,.end-link:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.sound-bars{display:inline-flex;align-items:flex-end;gap:2px;height:10px}.sound-bars i{width:2px;height:3px;background:currentColor;border-radius:1px}.sound-toggle[aria-pressed=true] .sound-bars i{animation:sound-bar .9s ease-in-out infinite alternate}.sound-toggle[aria-pressed=true] .sound-bars i:nth-child(2){animation-delay:-.3s}.sound-toggle[aria-pressed=true] .sound-bars i:nth-child(3){animation-delay:-.6s}@keyframes sound-bar{0%{height:3px}to{height:10px}}.depth-readout{position:fixed;right:clamp(1.1rem,4vw,3rem);bottom:clamp(1.1rem,3vw,2.2rem);z-index:20;margin:0;display:flex;align-items:baseline;gap:.35rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.18em;color:var(--ink-faint);text-shadow:0 2px 12px rgba(0,0,0,.85)}.depth-readout b{font-size:1.35rem;font-weight:500;letter-spacing:.04em;color:var(--ink)}.story{position:relative;z-index:10;pointer-events:none}.story-panel{min-height:100vh;min-height:100svh;scroll-snap-align:start;display:flex;align-items:center;padding:clamp(5rem,12vh,8rem) clamp(1.1rem,5vw,4rem)}.panel-body{position:relative;isolation:isolate;pointer-events:auto;width:100%;max-width:42rem;padding:clamp(1.5rem,3.4vw,2.6rem) 0;opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}.story-panel[data-active] .panel-body{opacity:1;transform:none}.eyebrow{margin:0 0 1.1rem;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);text-shadow:0 2px 16px rgba(0,0,0,.8);transition:color .75s ease}.hero-title-en{margin:0 0 1.2rem;font-size:clamp(2.6rem,8vw,6rem);font-weight:700;line-height:.95;letter-spacing:-.035em;text-shadow:0 0 28px rgba(255,79,158,.28),0 6px 40px rgba(0,0,0,.8)}.hero-subtitle{margin:0;max-width:34rem;font-size:clamp(.95rem,1.9vw,1.14rem);line-height:1.75;color:var(--ink-dim);text-shadow:0 2px 20px rgba(0,0,0,.85)}.story-panel h2{margin:0 0 1.6rem;font-size:clamp(1.4rem,3.4vw,2.1rem);font-weight:620;letter-spacing:.01em;line-height:1.3;text-shadow:0 2px 24px rgba(0,0,0,.65)}.panel-copy{margin:0 0 1.8rem;max-width:32rem;font-size:1rem;line-height:1.8;color:var(--ink-dim);text-shadow:0 2px 16px rgba(0,0,0,.75)}.scroll-cue{margin-top:2.6rem;display:flex;align-items:center;gap:.8rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.24em;color:var(--ink-faint)}.scroll-cue i{display:block;width:54px;height:1px;background:linear-gradient(to right,var(--accent),transparent);animation:slide 2.6s ease-in-out infinite}@keyframes slide{0%,to{transform:translate(0);opacity:.5}50%{transform:translate(14px);opacity:1}}.zone-meta{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:.4rem 1.6rem}.zone-meta li{display:flex;align-items:baseline;gap:.6rem;text-shadow:0 1px 12px rgba(0,0,0,.7)}.zone-meta span{font-size:.72rem;letter-spacing:.12em;color:var(--accent);transition:color .75s ease}.zone-meta b{font-family:var(--font-mono);font-size:.86rem;font-weight:500;color:var(--ink)}.zone-tags{margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:.45rem}.zone-tags span{padding:.2rem .6rem;border:1px solid rgba(240,237,246,.18);border-radius:999px;background:#06070d59;font-size:.74rem;letter-spacing:.06em;color:var(--ink-dim)}.panel-end{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:.8rem}.end-replay,.end-link{padding:.62rem 1.1rem;border:1px solid rgba(240,237,246,.28);border-radius:999px;background:#06070d73;color:var(--ink);font:inherit;font-size:.86rem;letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:border-color .3s ease,background-color .3s ease}.end-link{border-color:var(--accent)}.end-replay:hover,.end-link:hover{border-color:var(--accent);background:#06070db3}.panel-footer{margin-top:2.6rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:.6rem 1.4rem;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.16em;color:var(--ink-faint);text-shadow:0 1px 10px rgba(0,0,0,.65)}.noscript-message{position:fixed;inset:0;z-index:50;display:grid;place-items:center;margin:0;padding:2rem;text-align:center;background:#06070d;color:var(--ink-dim);font-size:.95rem}@media(max-height:700px)and (min-width:641px){.story-panel{padding-top:3.5rem;padding-bottom:2.5rem}.panel-body{padding:1rem 0}.eyebrow{margin-bottom:.7rem}.story-panel h2{margin-bottom:1rem}.panel-copy{margin-bottom:1.2rem}.zone-tags{margin-top:.7rem}.panel-footer{margin-top:1.4rem;padding-top:.8rem}}@media(max-height:450px)and (min-width:641px){.site-header{padding-top:.8rem;padding-bottom:.8rem}.brand b{font-size:.75rem}.brand small{font-size:.58rem}.story-panel{padding-bottom:2rem}.panel-body{padding:.75rem 0}.story-panel h2{margin-bottom:.65rem;font-size:1.5rem}.panel-copy{margin-bottom:.75rem;font-size:.9rem;line-height:1.65}.zone-tags{margin-top:.5rem}.panel-footer{margin-top:1rem;padding-top:.5rem}}@media(max-width:640px){.loading-screen{top:4.5rem;bottom:auto}.brand b{font-size:.75rem;letter-spacing:.12em}.brand small{font-size:.58rem;letter-spacing:.24em}.render-status{gap:.3rem;font-size:.62rem;letter-spacing:.04em}.header-tools{gap:.55rem}.sound-toggle{padding:.28rem .55rem;font-size:.66rem}.panel-end{margin-top:1.4rem}.story-panel{align-items:flex-end;padding-top:4.5rem;padding-bottom:clamp(2.6rem,7vh,4rem)}.panel-body{padding:1rem 0}.eyebrow{margin-bottom:.7rem}.hero-title-en{margin-bottom:.9rem}.story-panel h2{margin-bottom:1rem;font-size:1.3rem}.panel-copy{margin-bottom:1.2rem;font-size:.92rem;line-height:1.68}.scroll-cue{margin-top:1.8rem}.zone-meta{gap:.3rem 1.2rem}.zone-tags{margin-top:.7rem}.scene-vignette{background:linear-gradient(to top,rgba(3,4,9,.78) 0%,rgba(3,4,9,.4) 34%,transparent 58%),radial-gradient(ellipse at 50% 42%,transparent 36%,rgba(2,3,8,.62) 100%),linear-gradient(to bottom,rgba(2,3,8,.45) 0%,transparent 24%)}.panel-footer{margin-top:1.6rem;padding-top:.9rem}.depth-readout{bottom:auto;top:clamp(3.9rem,11vw,5rem)}}@media(max-width:360px){body[data-render-state=ready] [data-render-label]{display:none}.site-header{gap:.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;scroll-snap-type:none}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
