:root{--bg:#f6f4ee;--paper:#fffdf8;--ink:#26342f;--muted:#7d857d;--line:#e4e5dc;--green:#246b53;--soft:#e9f0e5;--reader-size:21px;--player-height:178px;color-scheme:light}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei","PingFang SC",sans-serif}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #69aa8f;outline-offset:3px}button{border:0;background:none;color:var(--ink);border-radius:8px;min-height:44px}button:disabled{opacity:.3;cursor:default}button:hover:not(:disabled){background:var(--soft)}a{color:var(--green)}[hidden]{display:none!important}.topbar{height:82px;position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:0 36px;background:var(--bg);border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--ink);display:flex;align-items:center;gap:13px;font-size:19px;font-weight:650;letter-spacing:1px}.brand-mark{background:var(--green);color:white;width:38px;height:42px;border-radius:4px 12px 4px 12px;display:grid;place-items:center;font:24px Georgia,"Songti SC",serif}.brand small{display:block;font-size:10px;font-weight:400;letter-spacing:2px;color:var(--muted);margin-top:1px}.top-actions{display:flex;gap:8px}.quiet{padding:8px 12px;font-size:14px}.icon{min-width:44px;font-size:21px}.mobile{display:none}.sidebar{position:fixed;top:82px;left:0;bottom:var(--player-height);width:286px;border-right:1px solid var(--line);padding:28px 20px;overflow:auto;background:var(--bg);z-index:15}.sidebar-heading{display:flex;align-items:center;gap:12px;font-weight:600;letter-spacing:1px}.badge{font-size:11px;color:var(--muted);border:1px solid var(--line);padding:1px 7px;border-radius:20px}.sidebar-note{font-size:12px;color:var(--muted);margin:7px 0 22px}nav button{display:flex;width:100%;text-align:left;align-items:center;gap:12px;padding:11px 12px;margin:3px 0;border-radius:8px;color:var(--muted);font-size:14px}nav button .number{font-size:11px;width:22px;font-variant-numeric:tabular-nums}nav button.active{background:var(--soft);color:var(--green);font-weight:650}nav button.active .number{color:var(--green)}.source-note{border-top:1px solid var(--line);margin:24px 12px 0;padding-top:20px;font-size:11px;color:var(--muted);line-height:1.9}main{max-width:1160px;margin:82px auto 0;padding:52px 64px calc(var(--player-height) + 60px) 350px;min-height:100vh}.reading-top{display:flex;justify-content:space-between;gap:20px;align-items:start}.eyebrow{font-size:11px;letter-spacing:3px;color:var(--green);margin-bottom:14px}h1{font:600 29px/1.65 "Songti SC","STSong","Noto Serif SC",Georgia,serif;margin:0 0 12px}.chapter-meta{color:var(--muted);font-size:12px;letter-spacing:.5px}.download{font-size:12px;text-decoration:none;white-space:nowrap;margin-top:4px}.reading-options{display:flex;justify-content:space-between;align-items:center;margin:30px 0 0;padding-bottom:16px;border-bottom:1px solid var(--line);gap:10px}.tabs{display:flex;padding:3px;background:var(--line);border-radius:8px}.tabs button{min-height:36px;padding:6px 14px;font-size:13px;color:var(--muted)}.tabs button[aria-pressed=true]{background:var(--paper);color:var(--green);box-shadow:0 1px 4px #00000008}.follow{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:7px;white-space:nowrap;min-height:44px}.follow input{accent-color:var(--green);width:16px;height:16px}.hint{font-size:11px;color:var(--muted);margin:14px 0 26px}.cue{display:block;width:100%;text-align:left;padding:10px 16px;margin:5px 0;border-left:3px solid transparent;border-radius:0 6px 6px 0;font:var(--reader-size)/1.9 "Songti SC","STSong","Noto Serif SC",Georgia,serif;white-space:pre-wrap;overflow-wrap:anywhere;transition:background .2s,color .2s;scroll-margin-top:120px}.cue.active{color:var(--green);background:var(--soft);border-left-color:var(--green)}.end-note{text-align:center;color:var(--muted);font-size:12px;letter-spacing:2px;margin:50px 0}.lyrics .cue{color:var(--muted);text-align:center;padding:20px 12px;border-left:0;font-family:inherit;font-size:calc(var(--reader-size) + 2px);line-height:1.9;opacity:.65}.lyrics .cue.active{color:var(--green);font-weight:600;opacity:1;background:var(--soft);border-radius:12px}.player{position:fixed;inset:auto 0 0;z-index:30;background:var(--paper);border-top:1px solid var(--line);padding:14px max(36px,env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(36px,env(safe-area-inset-left));box-shadow:0 -6px 28px #26342f05}.player-head{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted)}#playing-title{color:var(--green);font-weight:600}#cue-count{font-variant-numeric:tabular-nums}.seek-row{display:flex;align-items:center;gap:14px;margin:8px 0;font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}#seek{flex:1;min-width:0;accent-color:var(--green);cursor:pointer;height:22px}.player-buttons{display:flex;justify-content:space-between;align-items:center;gap:12px}.chapter-switch,.transport,.extras{display:flex;align-items:center;gap:6px}.transport{gap:16px}.skip{font-size:12px;font-weight:600}.play{width:50px;height:50px;background:var(--green);color:white;border-radius:50%;font-size:20px;box-shadow:0 3px 10px #246b5326}.play:hover:not(:disabled){background:#19543f}.extras{gap:10px}.rate-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}select{background:var(--paper);border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:7px 10px;min-height:44px;font-size:14px}#loop[aria-pressed=true]{color:var(--green);background:var(--soft)}#status{font-size:11px;color:var(--muted);text-align:center;min-height:17px;margin-top:4px}.dark{--bg:#17221e;--paper:#1c2923;--ink:#e0e9df;--muted:#9ba99f;--line:#304037;--green:#8fc8a5;--soft:#2b4033;color-scheme:dark}.dark .play,.dark .brand-mark{color:#17221e}.dark .play:hover:not(:disabled){background:#a5d5b6}
@media(min-width:1500px){main{margin-left:calc((100vw - 1440px)/2 + 280px);padding-left:70px;max-width:1000px}}
@media(max-width:1100px){main{padding-left:304px;padding-right:28px}.sidebar{width:260px}.transport{gap:5px}.chapter-switch button{font-size:12px;padding:8px}.extras{gap:4px}.rate-label span{display:none}}
@media(max-width:760px){:root{--reader-size:20px;--player-height:225px}.mobile{display:block}.topbar{height:68px;padding:0 max(14px,env(safe-area-inset-right)) 0 max(8px,env(safe-area-inset-left));gap:6px}.brand{font-size:16px;gap:8px}.brand-mark{width:30px;height:34px;font-size:21px}.brand small{font-size:9px;letter-spacing:1px}.top-actions{gap:0}.quiet{padding:6px 9px}.top-actions .quiet{font-size:13px}.sidebar{top:68px;width:min(320px,85vw);bottom:0;z-index:40;transform:translateX(-100%);transition:transform .2s;padding-bottom:40px}.sidebar.open{transform:translateX(0)}.sidebar-heading .mobile{margin-left:auto}#shade{position:fixed;inset:68px 0 0;background:#17221e66;z-index:35}main{margin-top:68px;padding:30px 18px calc(var(--player-height) + 45px + env(safe-area-inset-bottom));max-width:100%;}.reading-top{display:block}h1{font-size:25px}.download{display:inline-block;margin-top:12px}.eyebrow{margin-bottom:10px}.reading-options{margin-top:24px}.tabs button{padding:6px 11px}.cue{padding:10px 12px;scroll-margin-top:90px}.lyrics .cue{padding:24px 10px}.player{padding:12px max(14px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}.player-buttons{display:grid;grid-template-columns:1fr 1fr;gap:5px}.transport{grid-column:1/-1;grid-row:1;justify-content:center;gap:17px}.chapter-switch{grid-row:2;gap:0}.chapter-switch button{padding:6px 8px}.extras{justify-content:flex-end;grid-row:2;gap:0}.extras .quiet{font-size:12px}.rate-label select{min-height:38px;padding:4px 6px;font-size:16px}.seek-row{margin:5px 0;gap:10px}#cue-count{font-size:11px}.player-head{font-size:11px}#status{font-size:10px}.hint{margin-bottom:20px}.brand{flex:1}.end-note{letter-spacing:1px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
