:root{color-scheme:dark;--ink: #05070b;--ink-soft: #0a0f16;--moon: #e6ecf6;--mist: #8b97a8;--mist-dim: #5d6877;--line: rgba(198, 212, 232, .14);--line-strong: rgba(210, 224, 244, .34);--seal: #8a4747;--serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "SimSun", serif}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--ink);color:var(--moon);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}#app{height:100%}a{color:inherit;text-decoration:none}button{font-family:inherit}::selection{background:#a0b8d647}.scene-page{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060a;animation:scene-fade-in 1.1s ease both}.scene-host{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.scene-host canvas{display:block;width:100%;height:100%;outline:none}.scene-ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5}.back-home{pointer-events:auto;position:absolute;top:24px;left:26px;display:inline-flex;align-items:center;gap:10px;padding:10px 18px 10px 14px;background:#070a108c;border:1px solid var(--line);color:#d6e0eec7;font-size:12px;letter-spacing:.22em;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .3s ease,background .3s ease,color .3s ease}.back-home:before{content:"";width:18px;height:1px;background:currentColor;opacity:.6;transition:transform .3s ease}.back-home:hover{color:#eef4fcf2;border-color:var(--line-strong);background:#0c111ab8}.back-home:hover:before{transform:translate(-3px)}.back-home:focus-visible{outline:1px solid rgba(190,210,235,.6);outline-offset:3px}.scene-toggle{pointer-events:auto;position:absolute;top:24px;right:26px;display:inline-flex;align-items:center;gap:9px;padding:9px 16px;background:#070a108c;border:1px solid var(--line);color:#c8d4e499;font-size:11px;letter-spacing:.16em;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .3s ease,background .3s ease,color .3s ease}.scene-toggle-dot{width:6px;height:6px;border-radius:50%;background:#becde14d;transition:background .3s ease,box-shadow .3s ease}.scene-toggle:hover{color:#eef4fcf2;border-color:var(--line-strong);background:#0c111ab8}.scene-toggle.is-on{color:#e8f0faeb;border-color:#b4cdc36b}.scene-toggle.is-on .scene-toggle-dot{background:#a8cbbc;box-shadow:0 0 8px #96c8b4b3}.scene-toggle:focus-visible{outline:1px solid rgba(190,210,235,.6);outline-offset:3px}.scene-toggles{pointer-events:none;position:absolute;top:24px;right:26px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.scene-toggles .scene-toggle{position:relative;top:auto;right:auto}.scene-chapters{pointer-events:auto;position:absolute;top:24px;left:50%;transform:translate(-50%);display:flex;align-items:stretch;gap:2px;padding:4px 4px 6px;background:#070a1085;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chapter-tick{display:flex;align-items:baseline;gap:8px;padding:8px 14px;border:0;background:transparent;color:#b2c0d29e;font-family:inherit;font-size:11.5px;letter-spacing:.16em;cursor:pointer;transition:color .3s ease,background .3s ease}.tick-index{font-size:9.5px;letter-spacing:.2em;color:#96a8be8c}.tick-title{white-space:nowrap}.chapter-tick:hover{color:#ecf2faeb;background:#becde112}.chapter-tick.active{color:#f5f9fff5;background:#becde11c}.chapter-tick.active .tick-index{color:#e2ecfae6}.chapter-tick:focus-visible{outline:1px solid rgba(190,210,235,.6);outline-offset:-1px}.chapter-progress{position:absolute;left:6px;right:6px;bottom:3px;height:1px;background:linear-gradient(90deg,#c6d8f0bf,#78beaa8c);transform-origin:left center;transform:scaleX(0)}.scene-caption{pointer-events:auto;position:absolute;left:50%;bottom:22px;transform:translate(-50%);display:flex;align-items:center;gap:16px;width:min(660px,calc(100vw - 48px));padding:9px 18px;background:#06090e99;border:1px solid rgba(190,205,225,.12);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.caption-index{flex-shrink:0;font-size:10px;letter-spacing:.2em;color:#a0b2c899}.caption-body{flex:1;min-width:0;display:flex;align-items:baseline;gap:12px}.caption-body strong{flex-shrink:0;font-size:12px;font-weight:500;letter-spacing:.2em;color:#ecf2faf0}.caption-body p{margin:0;font-size:11.5px;line-height:1.55;letter-spacing:.06em;color:#b0bed0d9}.caption-hint{flex-shrink:0;font-size:9.5px;letter-spacing:.14em;color:#7e8c9eb3}.caption-replay{flex-shrink:0;padding:6px 14px;border:1px solid rgba(190,205,225,.24);background:transparent;color:#e2ecfae0;font-family:inherit;font-size:10.5px;letter-spacing:.18em;cursor:pointer;transition:border-color .3s ease,background .3s ease}.caption-replay:hover{border-color:#d2e2f68c;background:#bed2eb1a}@media(max-width:900px){.scene-chapters{top:68px;max-width:calc(100vw - 32px);overflow-x:auto}.caption-hint{display:none}.caption-body{flex-direction:column;gap:3px}}.scene-fatal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;display:flex;align-items:center;justify-content:center;padding:0 12vw;margin:0;font-size:13px;line-height:1.9;letter-spacing:.08em;text-align:center;color:#c49e9ee6;background:#04060adb}@keyframes scene-fade-in{0%{opacity:0}to{opacity:1}}.placeholder-veil{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 50% 58%,rgba(34,48,68,.22),transparent 54%),radial-gradient(ellipse at 50% 130%,rgba(18,27,40,.6),transparent 62%)}.placeholder-note{position:absolute;top:0;right:0;bottom:0;left:0;z-index:6;display:flex;align-items:center;justify-content:center;gap:20px;pointer-events:none;animation:note-in 1.6s ease both}.placeholder-note p{margin:0;font-size:13px;font-weight:400;letter-spacing:.34em;text-indent:.34em;color:#bccadc9e}.note-line{width:46px;height:1px;background:linear-gradient(90deg,transparent,rgba(176,194,218,.32),transparent)}@keyframes note-in{0%{opacity:0}to{opacity:1}}@media(max-width:560px){.note-line{width:24px}.placeholder-note p{font-size:12px;letter-spacing:.2em}}@media(prefers-reduced-motion:reduce){.scene-page,.placeholder-note{animation:none}}
