:root{color-scheme:light;--bg:#f4f0e5;--surface:#fffdf7;--ink:#26392d;--muted:#697363;--line:#dcded0;--accent:#36573e;--soft:#e8eddc;--gold:#b99152;--text-size:20px;--bar:#192d24}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"PingFang TC","Microsoft JhengHei",sans-serif;-webkit-text-size-adjust:100%;line-height:1.7;transition:background .15s,color .15s}
body.dark{color-scheme:dark;--bg:#15251e;--surface:#203329;--ink:#edeedc;--muted:#b5c0a9;--line:#415342;--accent:#c0d3a5;--soft:#304435;--gold:#d5b981}
button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,audio:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button:disabled{cursor:default;opacity:.4}button{border:0;border-radius:12px}a{color:var(--accent);text-underline-offset:4px}h1,h2,h3,p{overflow-wrap:break-word}button:disabled{pointer-events:none}[hidden]{display:none!important}
.topbar{height:64px;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--bar);color:#f5f0dc;position:sticky;top:0;z-index:10;border-bottom:1px solid #405045}.brand{font-size:14px;letter-spacing:.05em;line-height:1.3}.brand small{display:block;font-size:10px;color:#b5c3a7;margin-top:4px;letter-spacing:.15em}.toolbar{display:flex;gap:7px;flex-shrink:0}.topbutton{background:#2d4435;color:#f7f2df;border:1px solid #52654a;min-height:44px;padding:8px 12px;font-size:14px}
main{max-width:880px;margin:0 auto;padding:24px 18px 120px}.spread{margin:0}.js .spread{display:none}.js .spread.active{display:block}.cover .eyebrow,.chapter-kicker{font-size:11px;font-weight:650;letter-spacing:.19em;color:var(--muted)}.cover h1{font-family:Georgia,"Noto Serif TC","Songti TC",serif;font-size:clamp(36px,9vw,62px);font-weight:600;line-height:1.24;letter-spacing:.06em;margin:10px 0 12px}.cover .lead{font-size:17px;line-height:1.85;margin:0 0 18px;max-width:28em;color:var(--muted)}.cover-layout{display:grid;gap:18px;align-items:center}.cover-photo{margin:0 auto;max-width:220px}.cover-photo img{width:100%;display:block;height:auto;box-shadow:0 12px 30px #14281d26;border-radius:110px 110px 12px 12px}.cover-photo figcaption{text-align:center;font-size:11px;letter-spacing:.12em;color:var(--muted);margin-top:10px}.cover .primary{margin-top:18px;display:block;width:100%;padding:12px 18px;min-height:50px;background:var(--accent);color:var(--surface);font-size:17px;font-weight:650}.secondary{background:var(--soft);color:var(--ink);padding:11px 16px;min-height:46px;width:100%;margin-top:10px}.cover .disclaimer{font-size:12px;line-height:1.8;color:var(--muted);margin:18px 0 0}.reading-hint{font-size:12px;text-align:center;color:var(--muted);margin:14px 0 0}.cover-label{margin-bottom:6px}
.chapter{background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden}.art-panel{background:var(--soft);padding:18px;display:flex;justify-content:center;align-items:center;position:relative}.art-panel img{width:100%;max-width:270px;height:auto;display:block;border-radius:8px}.art-caption{position:absolute;left:14px;top:14px;padding:4px 9px;background:#192d24e8;color:#f5f0df;border-radius:20px;font-size:11px;font-variant-numeric:tabular-nums;letter-spacing:.07em}.chapter-text{padding:24px}.chapter-kicker{margin:0 0 8px}.chapter h2{font-size:clamp(28px,7.5vw,38px);letter-spacing:.025em;font-weight:650;line-height:1.35;margin:0 0 18px}.chapter .body-copy{font-size:var(--text-size);line-height:1.9;letter-spacing:.015em;margin:0}.fact{margin-top:24px;border-top:1px solid var(--line);padding-top:17px}.fact strong{display:block;color:var(--gold);font-size:12px;letter-spacing:.12em;margin-bottom:7px}.fact p{margin:0;font-size:calc(var(--text-size) - 4px);line-height:1.85;color:var(--muted)}.afterword{font-size:14px;color:var(--muted);padding:20px 4px 0;line-height:1.85}.afterword button{background:var(--soft);color:var(--ink);padding:10px 16px;min-height:44px;margin-top:8px}
.reader-footer{background:var(--surface);position:fixed;bottom:0;left:0;right:0;z-index:15;border-top:1px solid var(--line);padding:0 max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.footer-inner{max-width:880px;margin:auto}.track{height:3px;background:var(--line);margin:0 -12px 7px}.track span{display:block;height:100%;width:0;background:var(--gold);transition:width .2s}.navrow{display:grid;grid-template-columns:1fr 100px 1fr;align-items:center;gap:8px}.navbutton{min-height:46px;padding:8px 10px;background:var(--soft);color:var(--ink);font-size:15px}.navbutton.next{background:var(--accent);color:var(--surface)}.page-counter{text-align:center;font-size:14px;line-height:1.35;font-variant-numeric:tabular-nums}.page-counter small{display:block;margin-top:4px;font-size:10px;color:var(--muted);letter-spacing:.1em}.footer-hint{font-size:10px;text-align:center;color:var(--muted);line-height:1.4;margin:7px 0 0}
dialog{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:22px;width:min(440px,calc(100vw - 24px));max-height:82dvh;padding:0;box-shadow:0 20px 80px #0005}dialog::backdrop{background:#10251db3}.dialog-top{padding:18px 18px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--surface);z-index:1}.dialog-top h2{font-size:19px;margin:0}.close{color:var(--ink);background:var(--soft);font-size:14px;padding:8px 12px;min-height:44px}.dialog-body{padding:18px}.toc-list{list-style:none;padding:0;margin:0;display:grid;gap:7px}.toc-button{min-height:48px;width:100%;display:flex;align-items:center;gap:14px;background:var(--soft);color:var(--ink);text-align:left;padding:10px 12px;font-size:16px}.toc-button span{font-size:12px;letter-spacing:.06em;min-width:27px;color:var(--muted)}.toc-button[aria-current="page"]{outline:2px solid var(--accent);outline-offset:-2px}.settings-label{display:block;font-size:14px;font-weight:600;margin:0 0 10px}.font-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;align-items:center}.setting-button{background:var(--soft);color:var(--ink);padding:9px 14px;min-height:46px}#font-value{text-align:center;font-size:17px}.setting-section+.setting-section{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.setting-note{font-size:12px;line-height:1.8;color:var(--muted);margin:10px 0 0}.music{width:100%;display:block}.sources{font-size:15px;line-height:1.9}.sources h3{display:none}.sources ol{padding-left:22px;margin:0}.sources li{margin:0 0 12px}.sources p{font-size:13px;color:var(--muted)}.sources a{overflow-wrap:anywhere}.sources-intro{font-size:13px;color:var(--muted);margin:0 0 14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:680px){main{padding-top:40px}.cover-layout{grid-template-columns:1.3fr 1fr;gap:40px;min-height:440px}.cover-photo{max-width:260px}.cover h1{font-size:56px}.cover .primary{max-width:330px}.cover .secondary{max-width:330px}.chapter{display:grid;grid-template-columns:340px 1fr;min-height:530px}.art-panel{padding:28px}.chapter-text{padding:34px;align-self:center}.navrow{grid-template-columns:1fr 160px 1fr}.footer-hint{font-size:11px}}
@media(max-width:350px){main{padding:18px 12px 120px}.chapter-text{padding:20px}.topbar{padding-left:12px;padding-right:12px}.brand{font-size:12px}.topbutton{padding:8px 10px}.cover-photo{max-width:185px}.navrow{grid-template-columns:1fr 82px 1fr}.navbutton{font-size:14px;padding:8px}.cover h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}@media print{.topbar,.reader-footer,dialog,.cover .primary,.cover .secondary,.reading-hint{display:none!important}body{background:#fff!important;color:#26392d!important}main{padding:0;max-width:none}.js .spread,.js .spread.active{display:block;break-after:page;margin-bottom:30px}.chapter{display:block;break-inside:avoid}.art-panel img{max-width:200px}.chapter-text{padding:24px}.cover-layout{display:block}.cover-photo{max-width:200px}.cover .disclaimer{font-size:12px}.afterword button{display:none}}
