:root{--ink: #f3ede1;--accent: #e8a0b4;--panel: rgba(18, 20, 24, .55)}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#0b0e11}body{font-family:Songti SC,STSong,"Noto Serif SC","Source Han Serif SC",serif;color:var(--ink);-webkit-font-smoothing:antialiased}#app,#app canvas{position:fixed;top:0;right:0;bottom:0;left:0;display:block}.hidden{opacity:0!important;pointer-events:none!important}#startOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:radial-gradient(ellipse at 50% 42%,#1d232b,#0b0e11 75%);display:flex;align-items:center;justify-content:center;transition:opacity 1.4s ease;text-align:center}.so-box h1{font-size:clamp(56px,9vw,118px);letter-spacing:.28em;text-indent:.28em;font-weight:600;color:#f6dfe6;text-shadow:0 0 42px rgba(232,160,180,.35)}.so-author{margin-top:10px;font-size:20px;letter-spacing:.5em;color:#b9c2c9}.so-line{margin-top:34px;font-size:17px;color:#98a4ab;letter-spacing:.12em}.so-note{margin-top:10px;font-size:13px;color:#6d7780;letter-spacing:.1em}#btnStart{margin-top:44px;padding:14px 66px;font-size:20px;letter-spacing:.6em;text-indent:.6em;font-family:inherit;color:#f3e6d8;background:#e8a0b41f;border:1px solid rgba(232,160,180,.45);border-radius:3px;cursor:pointer;transition:all .3s ease}#btnStart:hover{background:#e8a0b447;box-shadow:0 0 30px #e8a0b440}.so-tip{margin-top:30px;font-size:12px;color:#5c656d;letter-spacing:.08em}#topTitle{position:fixed;top:26px;left:50%;transform:translate(-50%);z-index:20;font-size:26px;letter-spacing:.5em;text-indent:.5em;color:#f3ede1d9;pointer-events:none;transition:opacity 2s ease;text-shadow:0 1px 14px rgba(0,0,0,.6)}#topTitle span{display:block;font-size:12px;letter-spacing:.32em;text-align:center;color:#f3ede180;margin-top:8px}#chapterCard{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:opacity .9s ease;background:radial-gradient(ellipse at center,#05070938,#0507098c)}.cc-inner{text-align:center}.cc-num{font-size:14px;letter-spacing:.7em;text-indent:.7em;color:var(--accent);margin-bottom:14px}.cc-name{font-size:clamp(34px,5vw,58px);letter-spacing:.3em;text-indent:.3em;font-weight:600;color:#f6ead9;text-shadow:0 2px 26px rgba(0,0,0,.75)}#subtitle{position:fixed;bottom:86px;left:50%;transform:translate(-50%);z-index:25;max-width:min(86vw,900px);text-align:center;font-size:clamp(17px,2.1vw,24px);line-height:1.65;letter-spacing:.1em;color:#f5efdf;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 18px rgba(0,0,0,.55);transition:opacity .45s ease;pointer-events:none}#controls{position:fixed;bottom:0;left:0;right:0;z-index:40;display:flex;align-items:center;gap:10px;padding:10px 16px;background:linear-gradient(to top,#0a0c0fd1,#0a0c0f00);transition:opacity .5s ease}#controls button{font-family:inherit;font-size:15px;color:var(--ink);background:var(--panel);border:1px solid rgba(243,237,225,.22);border-radius:4px;padding:7px 12px;cursor:pointer;transition:all .2s;white-space:nowrap}#controls button:hover{background:#3c424acc;border-color:#e8a0b499}#controls button.active{border-color:var(--accent);color:#ffdce6}.timegroup{display:flex;align-items:center;gap:8px;font-size:13px;color:#cfd6db}#seek{width:clamp(120px,20vw,260px);accent-color:var(--accent);cursor:pointer}#chapterBtns{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;max-width:46vw;scrollbar-width:none}#chapterBtns::-webkit-scrollbar{display:none}#chapterBtns button{font-size:12.5px;padding:6px 9px;letter-spacing:.05em}#freeHint{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:35;font-size:13px;letter-spacing:.08em;color:#dfe6ea;background:#0a0c0f9e;border:1px solid rgba(243,237,225,.2);padding:9px 18px;border-radius:4px;transition:opacity .4s ease}#dayFlash{position:fixed;top:18%;left:50%;transform:translate(-50%);z-index:28;font-size:20px;letter-spacing:.4em;color:#f6ead9e6;text-shadow:0 1px 10px rgba(0,0,0,.7);transition:opacity 1s ease;pointer-events:none}@media (max-width: 760px){#chapterBtns{max-width:40vw}#subtitle{bottom:120px}}
