:root {
  --ink: #e9e5d9; --muted: #8f9aa8; --deep: #071019; --panel: #0b1722;
  --line: rgba(142, 184, 202, .18); --cyan: #72d4e4; --gold: #c8a96a;
  --reader-size: 19px; --reader-width: 760px; --rail-width: 286px;
}
:root[data-theme="light"] { --ink:#17232b; --muted:#65727a; --deep:#f1eee5; --panel:#faf8f1; --line:rgba(27,72,88,.16); --cyan:#146f86; --gold:#8c6728; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--deep); color: var(--ink); }
body { margin:0; min-height:100vh; font-family: Inter, "Segoe UI", Arial, sans-serif; background:var(--deep); color:var(--ink); transition:background .25s,color .25s; }
button,input,select { font:inherit; }
button { color:inherit; }
.field-grid { position:fixed; inset:0; pointer-events:none; opacity:.55; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:64px 64px; mask-image:linear-gradient(to bottom,black,transparent 75%); }
.masthead { position:fixed; z-index:20; inset:0 0 auto 0; height:76px; display:flex; align-items:center; gap:30px; padding:0 28px; border-bottom:1px solid var(--line); backdrop-filter:blur(18px); background:color-mix(in srgb,var(--deep) 84%,transparent); }
.brand { display:flex; align-items:center; gap:13px; border:0; background:none; text-align:left; cursor:pointer; }
.brand-mark { display:grid; place-items:center; width:38px; height:38px; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font:27px Georgia,serif; }
.brand b { display:block; font-family:"Songti SC",SimSun,serif; letter-spacing:.12em; }
.brand small { display:block; margin-top:3px; color:var(--muted); font-size:8px; letter-spacing:.19em; }
.reading-meter { flex:1; height:1px; background:var(--line); overflow:hidden; }
.reading-meter i { display:block; width:100%; height:100%; background:var(--cyan); transform:scaleX(0); transform-origin:left; }
.icon-button,.secondary { border:1px solid var(--line); background:transparent; padding:9px 13px; cursor:pointer; }
.rail { position:fixed; z-index:10; left:0; top:76px; bottom:0; width:var(--rail-width); overflow:auto; border-right:1px solid var(--line); padding:25px 16px 50px; background:color-mix(in srgb,var(--deep) 94%,transparent); }
.rail-kicker,.eyebrow,.chapter-number { color:var(--gold); font-size:10px; letter-spacing:.22em; }
#chapter-nav { display:grid; margin-top:18px; }
#chapter-nav button { display:grid; grid-template-columns:30px 1fr; gap:2px 10px; padding:12px 8px; border:0; border-top:1px solid var(--line); background:none; text-align:left; cursor:pointer; }
#chapter-nav button span { grid-row:1/3; color:var(--muted); font:11px ui-monospace,monospace; }
#chapter-nav button b { font-family:"Songti SC",SimSun,serif; font-weight:500; }
#chapter-nav button small { color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#chapter-nav button:hover,#chapter-nav button.active { background:color-mix(in srgb,var(--cyan) 9%,transparent); color:var(--cyan); }
main { margin-left:var(--rail-width); padding-top:76px; min-height:100vh; }
.hero { min-height:calc(100vh - 76px); display:flex; flex-direction:column; justify-content:center; max-width:980px; margin:auto; padding:80px 8vw; position:relative; }
.hero::after { content:"∞"; position:absolute; right:4%; top:15%; color:transparent; -webkit-text-stroke:1px var(--line); font:clamp(160px,28vw,390px) Georgia,serif; opacity:.8; z-index:-1; }
.hero h1 { margin:18px 0 4px; font:clamp(58px,9vw,116px)/.95 "Songti SC",SimSun,serif; letter-spacing:.08em; }
.hero-en { margin:12px 0 55px; color:var(--muted); font:18px Georgia,serif; letter-spacing:.19em; text-transform:uppercase; }
.hero-thesis { max-width:680px; font:clamp(22px,3vw,34px)/1.65 "Songti SC",SimSun,serif; }
.axis { display:flex; align-items:center; gap:18px; max-width:650px; margin:34px 0; color:var(--muted); font-size:11px; letter-spacing:.16em; }
.axis i { flex:1; height:1px; background:linear-gradient(90deg,var(--line),var(--cyan)); position:relative; }.axis i::after{content:"";position:absolute;right:0;top:-4px;width:9px;height:9px;border:1px solid var(--cyan);border-radius:50%;}
.axis b { color:var(--cyan); font-weight:500; }
.home-actions { display:flex; gap:12px; }.primary{border:1px solid var(--cyan);background:var(--cyan);color:#061219;padding:13px 20px;cursor:pointer}.secondary{padding:13px 20px}
.edition-note { display:flex; flex-wrap:wrap; gap:24px; margin-top:70px; color:var(--muted); font-size:10px; letter-spacing:.15em; }
.reader { padding:70px 5vw 120px; }.chapter-head,.chapter-content,.reader-toolbar,.search-results,.chapter-step{max-width:var(--reader-width);margin-left:auto;margin-right:auto}
.chapter-head { margin-bottom:55px; }.chapter-head h1{font:clamp(42px,6vw,72px)/1.15 "Songti SC",SimSun,serif;margin:16px 0 6px}.chapter-head>p:nth-of-type(2){color:var(--muted);font:20px Georgia,serif}
.chapter-coordinate{margin-top:35px;padding:18px 22px;border-left:2px solid var(--gold);background:color-mix(in srgb,var(--panel) 80%,transparent)}.chapter-coordinate span{color:var(--gold);font-size:10px;letter-spacing:.2em}.chapter-coordinate p{margin:10px 0 0;font-family:"Songti SC",SimSun,serif;line-height:1.8}
.reader-toolbar{position:sticky;top:76px;z-index:8;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 0;background:var(--deep);border-bottom:1px solid var(--line)}
.segmented{display:flex}.segmented button{border:1px solid var(--line);background:none;padding:7px 11px;cursor:pointer}.segmented button+button{border-left:0}.segmented button.active{color:var(--deep);background:var(--cyan)}
.search{flex:1;min-width:190px}.search span,.filter span{position:absolute;clip:rect(0 0 0 0)}.search input,.filter select{width:100%;color:var(--ink);background:var(--panel);border:1px solid var(--line);padding:8px 11px}.filter{width:120px}
.bilingual-unit{position:relative;padding:33px 0 38px;border-bottom:1px solid var(--line)}.unit-index{position:absolute;left:-48px;top:39px;color:var(--muted);font:9px ui-monospace,monospace}.text-en{margin:0;font:var(--reader-size)/1.72 Georgia,"Times New Roman",serif;letter-spacing:.006em}.text-zh{margin:20px 0 0;padding-left:18px;border-left:1px solid var(--gold);color:color-mix(in srgb,var(--ink) 83%,var(--muted));font:calc(var(--reader-size) * .94)/1.92 "Songti SC",SimSun,serif}
body[data-mode="en"] .text-zh,body[data-mode="zh"] .text-en{display:none}body[data-mode="zh"] .text-zh{border-left:0;padding-left:0;margin-top:0;color:var(--ink)}
.search-results{max-height:420px;overflow:auto;border:1px solid var(--line);background:var(--panel);margin-top:12px}.search-results header{display:flex;justify-content:space-between;padding:12px;color:var(--muted);font-size:12px}.search-results button{display:block;width:100%;padding:13px;border:0;border-top:1px solid var(--line);background:none;text-align:left;cursor:pointer}.search-results button span{color:var(--gold);font-size:11px}.search-results button p{margin:5px 0 0;color:var(--muted)}
.chapter-step{display:flex;justify-content:space-between;margin-top:55px}.chapter-step button{border:1px solid var(--line);background:none;padding:12px 16px;cursor:pointer}.chapter-step button:disabled{opacity:.25}
.settings{position:fixed;z-index:30;right:20px;top:90px;width:290px;padding:18px;background:var(--panel);border:1px solid var(--line);box-shadow:0 20px 70px #0008}.settings header{display:flex;justify-content:space-between;margin-bottom:20px}.settings header button{border:0;background:none;font-size:24px;cursor:pointer}.settings label{display:flex;justify-content:space-between;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.settings p{color:var(--muted);font-size:11px;line-height:1.6}.fatal{padding:20vh 10vw;font-family:serif}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
@media (max-width: 900px){:root{--rail-width:0px}.rail{transform:translateX(-100%);width:300px;transition:transform .2s}.rail.open{transform:translateX(0)}.unit-index{display:none}}
@media (max-width: 700px){.masthead{height:64px;padding:0 14px}.brand small,.reading-meter{display:none}.icon-button{margin-left:auto}.rail{top:64px}.hero{min-height:calc(100vh - 64px);padding:60px 22px}.hero h1{font-size:56px}.hero-en{font-size:12px;margin-bottom:35px}.reader{padding:45px 20px 90px}.reader-toolbar{top:64px}.filter{display:none}.text-en{font-size:calc(var(--reader-size) * .95)}.text-zh{font-size:calc(var(--reader-size) * .9)}.settings{inset:75px 12px auto auto;width:calc(100% - 24px)}}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
