:root{--bg:#f7f3ea;--paper:#fffdf8;--ink:#24201a;--muted:#776d61;--line:#ded4c5;--accent:#27645b;--accent-soft:#e5f0eb}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Songti SC","Noto Serif SC",serif;line-height:1.75}
.topbar{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 20px;background:rgba(247,243,234,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.brand{font-weight:700;color:var(--ink);text-decoration:none}.topbar nav{display:flex;gap:14px}.topbar a{color:var(--accent);text-decoration:none}
.reader{max-width:860px;margin:0 auto;padding:34px 22px 72px;background:var(--paper);min-height:calc(100vh - 52px);box-shadow:0 0 0 1px rgba(90,70,40,.06)}
.hero{padding:42px 0 18px}.kicker{color:var(--muted);font-size:14px}.hero h1{font-size:34px;line-height:1.25;margin:10px 0}.hero p{color:var(--muted)}
h1{font-size:30px;line-height:1.32;margin:24px 0 18px}h2{font-size:23px;margin:34px 0 10px}h3{font-size:19px;margin:26px 0 8px}
p{margin:10px 0}ul,ol{padding-left:1.35rem}li{margin:4px 0}blockquote{border-left:4px solid var(--accent);margin:18px 0;padding:8px 16px;background:#f0ebe0;color:#3c352c}
hr{border:0;border-top:1px solid var(--line);margin:36px 0}.table-wrap{overflow:auto;margin:18px 0;border:1px solid var(--line);border-radius:8px;background:white}
table{border-collapse:collapse;width:100%;min-width:680px}th,td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}th{background:#efe8dc}
.toc{display:grid;gap:10px}.toc a{display:block;padding:12px 14px;background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none}
.toc a:hover,.toc a.active{border-color:var(--accent);background:var(--accent-soft);color:#123d36}.toc.compact{gap:6px}.toc.compact a{padding:8px 10px;font-size:14px;line-height:1.45}
.chapter-nav{max-width:860px;margin:18px auto 0;padding:0 22px;display:flex;justify-content:space-between}.chapter-nav a{color:var(--accent);text-decoration:none}
.toc-toggle{position:fixed;left:18px;bottom:18px;z-index:35;border:0;border-radius:999px;background:var(--accent);color:white;padding:10px 14px;box-shadow:0 8px 22px rgba(0,0,0,.16)}
.toc-drawer{position:fixed;top:53px;bottom:0;left:0;z-index:34;width:min(360px,86vw);padding:18px;background:#fbf7ef;border-right:1px solid var(--line);overflow:auto;transform:translateX(-105%);transition:transform .18s ease;box-shadow:10px 0 28px rgba(0,0,0,.12)}
.toc-drawer.open{transform:translateX(0)}.toc-title{font-weight:700;margin:2px 0 12px;color:var(--muted)}
.toc-backdrop{display:none;position:fixed;inset:53px 0 0 0;background:rgba(30,25,18,.22);z-index:33}.toc-backdrop.open{display:block}
.progress{height:4px;position:fixed;top:0;left:0;background:var(--accent);z-index:40;width:0}.mark-btn{position:fixed;right:18px;bottom:18px;border:0;border-radius:999px;background:#584b3b;color:white;padding:10px 14px;box-shadow:0 8px 22px rgba(0,0,0,.16)}
.mark{background:#fff3a3;border-radius:3px}.search-box{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:8px;font-size:16px}.results a{display:block;margin:10px 0;color:var(--accent)}
@media(min-width:1260px){.toc-drawer{transform:none;box-shadow:none}.toc-toggle,.toc-backdrop{display:none}.reader,.chapter-nav{margin-left:390px;margin-right:auto}}
@media(max-width:720px){.reader{padding:24px 16px 72px}.topbar{padding:10px 14px}.hero h1{font-size:28px}h1{font-size:26px}h2{font-size:21px}.chapter-nav{padding:0 16px}.brand{font-size:14px}.topbar nav{gap:10px}.mark-btn{right:14px}.toc-toggle{left:14px}}