:root {
  color-scheme: light dark; --paper:#f7f2e8; --ink:#28241f; --muted:#776f64;
  --accent:#8c2f24; --line:#d9cfbf; --panel:#fffaf1; --font-size:20px;
}
html[data-theme="dark"] { --paper:#181715; --ink:#ebe3d7; --muted:#aaa094; --accent:#e17b6d; --line:#3c3934; --panel:#211f1c; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; background:var(--paper); }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Songti SC","Noto Serif CJK SC","Source Han Serif SC",serif; }
a { color:var(--accent); text-decoration-thickness:.08em; text-underline-offset:.16em; }
.reading-progress { position:fixed; z-index:20; inset:0 0 auto; height:3px; background:transparent; }
.reading-progress span { display:block; width:0; height:100%; background:var(--accent); }
.site-header { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.7rem max(1rem,calc((100vw - 920px)/2)); border-bottom:1px solid var(--line); background:color-mix(in srgb,var(--paper) 92%,transparent); backdrop-filter:blur(10px); }
.brand { color:var(--ink); font-weight:700; text-decoration:none; letter-spacing:.08em; }
.reader-tools { display:flex; gap:.35rem; }
button { border:1px solid var(--line); border-radius:.4rem; padding:.35rem .55rem; color:var(--ink); background:var(--panel); cursor:pointer; }
.reader { width:min(100% - 2rem,760px); margin:0 auto; padding:3.2rem 0 2rem; }
.eyebrow { margin:0 0 1.5rem; color:var(--muted); font:600 .75rem/1.4 system-ui,sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.book-content { font-size:var(--font-size); line-height:1.95; overflow-wrap:anywhere; }
.book-content h1 { margin:.1em 0 2.2rem; font-size:clamp(2rem,7vw,3.2rem); line-height:1.25; text-align:center; letter-spacing:.06em; }
.book-content h2,.book-content h3 { margin:2.4em 0 .8em; line-height:1.4; }
.book-content p { margin:0 0 1em; text-align:justify; }
.volume-upper .book-content p.p24,
.volume-lower .book-content p.p31 { margin:2.4em 0 .8em; font-size:1.3em; font-weight:700; line-height:1.45; text-align:left; }
.volume-upper .book-content p.p30 { font-weight:700; text-align:center; }
.volume-upper .book-content p.p34,
.volume-lower .book-content p.p46 { color:var(--muted); font-size:.82em; line-height:1.55; text-align:center; }
.book-content blockquote { margin:1.6em 0; padding:.3em 1.2em; border-left:3px solid var(--accent); color:var(--muted); }
.book-content img,.book-content svg { display:block; max-width:100%; height:auto; margin:2rem auto .7rem; }
.book-content figure { margin:2rem 0; text-align:center; }
.book-content figcaption { color:var(--muted); font-size:.85em; }
.book-content sup { font:600 .68em/1 system-ui,sans-serif; }
.book-content sup a,.book-content a:has(sup) { text-decoration:none; }
.book-content table { width:100%; border-collapse:collapse; margin:1.5rem 0; font-size:.9em; }
.book-content th,.book-content td { border:1px solid var(--line); padding:.55rem; vertical-align:top; }
.book-content .external-reference { color:inherit; overflow-wrap:anywhere; }
.page-nav { display:grid; grid-template-columns:1fr auto 1fr; gap:.8rem; align-items:center; margin-top:4rem; padding:1.2rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); font:600 .86rem/1.5 system-ui,sans-serif; }
.page-nav > :last-child { text-align:right; }
footer { padding:1.5rem; color:var(--muted); text-align:center; font:400 .75rem/1.5 system-ui,sans-serif; }
.home { width:min(100% - 2rem,920px); margin:auto; padding:4rem 0; }
.hero { display:grid; grid-template-columns:minmax(180px,280px) 1fr; gap:clamp(2rem,6vw,5rem); align-items:center; padding-bottom:4rem; border-bottom:1px solid var(--line); }
.hero img { width:100%; max-height:420px; object-fit:contain; box-shadow:0 18px 48px #0003; }
.cover-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-items:end; }
.hero h1 { margin:0 0 .4rem; font-size:clamp(2.6rem,7vw,5rem); line-height:1.08; letter-spacing:.04em; }
.hero p { color:var(--muted); font-size:1.05rem; line-height:1.8; }
.toc-volume { margin-top:3.5rem; }
.toc-volume h2 { font-size:1.7rem; border-bottom:1px solid var(--line); padding-bottom:.6rem; }
.toc-list { list-style:none; margin:0; padding:0; columns:2; column-gap:3rem; }
.toc-list li { break-inside:avoid; border-bottom:1px dotted var(--line); }
.toc-list a { display:flex; justify-content:space-between; gap:1rem; padding:.65rem 0; color:var(--ink); text-decoration:none; }
.toc-list a:hover { color:var(--accent); }
@media (max-width:650px) {
  .site-header { padding:.6rem 1rem; }
  .brand { font-size:.9rem; }
  .reader { width:min(100% - 1.4rem,760px); padding-top:2rem; }
  .book-content { line-height:1.85; }
  .hero { grid-template-columns:1fr; text-align:center; }
  .hero img { width:min(70vw,260px); margin:auto; }
  .hero .cover-pair { width:min(100%,540px); margin:auto; }
  .hero .cover-pair img { width:100%; }
  .toc-list { columns:1; }
}
@media print {
  .site-header,.reading-progress,.reader-tools,.page-nav,footer { display:none!important; }
  :root { --paper:#fff; --ink:#000; }
  .reader { width:100%; padding:0; }
  .book-content { font-size:12pt; line-height:1.7; }
}
