:root{color-scheme:light;--nav:#1c2a3d;--nav-2:#223449;--nav-line:#405268;--gold:#cbb282;--gold-dark:#9d7849;--paper:#f9f5ea;--paper-edge:#e4dac7;--ink:#34404a;--muted:#74808a;--body:#344b62;--quote:#f0e8d7;--measure:58ch;--font-size:18px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Georgia,"Noto Serif CJK SC","Source Han Serif SC","Songti SC","SimSun",serif}button,input{font:inherit}button{cursor:pointer}body{background:var(--body);color:var(--ink)}body[data-theme="night"]{color-scheme:dark;--nav:#111927;--nav-2:#1b2739;--nav-line:#3b4a5d;--gold:#d4bc8c;--gold-dark:#bba06e;--paper:#222e3e;--paper-edge:#4c5a6b;--ink:#eee8db;--muted:#b0b7bc;--body:#101823;--quote:#2b3b4d}
.shell{display:grid;grid-template-columns:304px minmax(0,1fr);height:100vh;transition:grid-template-columns .25s ease}.shell.sidebar-collapsed{grid-template-columns:0 minmax(0,1fr)}.sidebar{position:relative;z-index:5;min-width:0;width:304px;height:100vh;display:flex;flex-direction:column;background:var(--nav);color:#e7e1d3;border-right:1px solid var(--nav-line);overflow:hidden;transition:transform .25s ease,visibility .25s ease}.sidebar-collapsed .sidebar{transform:translateX(-304px);visibility:hidden}.sidebar-head{display:flex;gap:13px;align-items:center;min-height:94px;padding:21px 20px;border-bottom:1px solid var(--nav-line)}.brand-mark{display:grid;place-items:center;flex:none;width:42px;height:42px;color:var(--gold);font-size:27px;border:1px solid var(--gold-dark);border-radius:50%;box-shadow:0 0 0 4px #ffffff0a}.eyebrow,.topbar-kicker{margin:0 0 4px;font-family:Arial,sans-serif;font-size:9px;letter-spacing:.19em;color:var(--gold)}.sidebar-head strong{font-size:20px;letter-spacing:.12em;font-weight:500}.sidebar-scroll{overflow-y:auto;scrollbar-color:#6b7890 transparent;flex:1}.side-section{padding:22px 19px;border-bottom:1px solid var(--nav-line)}.side-section h2{font-family:Arial,"Microsoft YaHei",sans-serif;font-weight:500;font-size:13px;letter-spacing:.14em;margin:0;color:#eee6d7}.section-line{display:flex;align-items:center;justify-content:space-between}.section-line span{font:11px Arial,sans-serif;color:#b5bdc8}.side-hint{font:12px/1.6 Arial,"Microsoft YaHei",sans-serif;color:#aab5c2;margin:10px 0 14px}.toc{display:grid;gap:4px}.toc button{color:inherit;border:0;background:none;text-align:left}.group-toggle{width:100%;display:flex;align-items:center;gap:8px;min-height:36px;padding:5px 9px;border-radius:5px;font:600 13px Arial,"Microsoft YaHei",sans-serif;letter-spacing:.04em}.group-toggle:hover,.group-toggle.active{background:#ffffff12}.group-chevron{color:var(--gold);font-size:14px;width:14px}.group-content{padding:2px 0 7px 12px;border-left:1px solid #68758970;margin-left:15px}.volume-item{margin:2px 0}.volume-button{display:flex;gap:8px;width:100%;padding:8px 9px;border-radius:5px;font:12px/1.35 Arial,"Microsoft YaHei",sans-serif}.volume-button:hover,.volume-button.active{background:#cbb28224;color:#f5e5bf}.volume-num{flex:none;color:var(--gold);font-weight:700;min-width:27px}.volume-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-list{display:grid;gap:2px;margin:1px 0 7px 35px;border-left:1px solid #77829570}.section-button{display:block;width:100%;padding:6px 6px 6px 11px;font:11px/1.4 Arial,"Microsoft YaHei",sans-serif;color:#bac4cf!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-button:hover,.section-button.active{color:#ffe5ac!important;background:#ffffff0d}.section-button.active{border-left:2px solid var(--gold)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:17px;font:12px Arial,"Microsoft YaHei",sans-serif;color:#cfd6dd}.setting-row input[type=range]{width:78px;accent-color:var(--gold)}.setting-row output{white-space:nowrap}.segmented,.size-control{display:flex;align-items:center;border:1px solid var(--nav-line);border-radius:5px;overflow:hidden}.segmented button,.size-control button{background:transparent;color:#e4e3df;border:0;padding:7px 10px;font:12px Arial,sans-serif}.segmented button.selected{background:var(--gold);color:#172233}.size-control output{min-width:25px;text-align:center}.size-control button{font-size:17px;padding:3px 9px}.record p:not(.side-hint){font:12px/1.6 Arial,"Microsoft YaHei",sans-serif;color:#d5dbdf}.record-actions{display:flex;gap:7px;flex-wrap:wrap}.record-actions button{font:11px Arial,"Microsoft YaHei",sans-serif;background:#ffffff0c;color:#e8e2d5;border:1px solid var(--nav-line);border-radius:5px;padding:7px 9px}.record-actions button:hover{border-color:var(--gold)}.sidebar-foot{padding:14px 20px;color:#aeb9c4;font-size:11px;letter-spacing:.08em;border-top:1px solid var(--nav-line)}
.workspace{min-width:0;display:flex;flex-direction:column;height:100vh}.topbar{height:67px;flex:none;display:flex;align-items:center;gap:15px;padding:0 24px;background:var(--nav);color:#eee8d9;border-bottom:1px solid #ffffff20}.icon-button{background:transparent;border:1px solid transparent;border-radius:5px;color:var(--gold);width:39px;height:39px;display:grid;place-items:center;font-size:24px}.icon-button:hover{border-color:var(--nav-line);background:#ffffff0d}.menu-lines{display:block;width:19px;height:14px;border-top:2px solid currentColor;border-bottom:2px solid currentColor;position:relative}.menu-lines:after{content:"";position:absolute;top:5px;left:0;width:19px;border-top:2px solid currentColor}.topbar-title{display:flex;flex-direction:column;gap:1px}.topbar-title strong{font-size:17px;font-weight:500;letter-spacing:.1em}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:12px}.header-progress{font:12px Arial,"Microsoft YaHei",sans-serif;color:#c8d0d6}.main{flex:1;min-height:0;overflow-y:auto;scroll-behavior:smooth;background:radial-gradient(ellipse at 50% -180px,#70829a55,transparent 55%),var(--body)}.reader-wrap{max-width:1040px;margin:0 auto;padding:25px 38px 45px}.reader-topline{display:flex;justify-content:space-between;color:#eadfc6;font:12px Arial,"Microsoft YaHei",sans-serif;letter-spacing:.1em;padding:0 6px 14px}.page{min-height:570px;position:relative;background:var(--paper);border:1px solid var(--paper-edge);box-shadow:0 20px 50px #07122050;padding:47px clamp(24px,7vw,83px) 43px}.page:before{content:"";position:absolute;inset:9px;border:1px solid var(--paper-edge);pointer-events:none}.page:after{content:"✦";position:absolute;right:21px;top:16px;font-size:16px;color:var(--gold-dark)}.page-ornament{text-align:center;color:var(--gold-dark);font-size:15px;letter-spacing:.5em;margin-bottom:27px}.page-overline{text-align:center;color:var(--gold-dark);font:12px Arial,"Microsoft YaHei",sans-serif;letter-spacing:.22em;margin:0 0 15px}.page h1{text-align:center;font-weight:500;line-height:1.4;letter-spacing:.055em;color:var(--ink);font-size:clamp(25px,3vw,36px);margin:0 auto;max-width:24ch}.volume-heading{text-align:center;color:var(--muted);font:13px/1.7 Arial,"Microsoft YaHei",sans-serif;letter-spacing:.07em;margin:14px 0 0}.title-rule{display:flex;justify-content:center;align-items:center;gap:16px;color:var(--gold-dark);font-size:14px;margin:24px auto 32px;max-width:var(--measure)}.title-rule:before,.title-rule:after{content:"";height:1px;background:var(--paper-edge);flex:1}.prose{max-width:var(--measure);margin:0 auto;font-size:var(--font-size);line-height:1.94;letter-spacing:.015em;overflow-wrap:anywhere}.prose p{margin:0 0 1.26em}.prose h3{font-size:1.13em;color:var(--gold-dark);line-height:1.5;margin:2.1em 0 .8em;font-weight:600}.prose h4{font-size:1em;color:var(--gold-dark);margin:1.8em 0 .6em}.prose strong{color:var(--ink)}.prose a,.sources a{color:var(--gold-dark);text-underline-offset:3px}.prose blockquote{margin:0 0 1.6em;padding:12px 18px;background:var(--quote);border-left:3px solid var(--gold);color:var(--muted);font-size:.84em}.prose blockquote p{margin:0}.prose ul,.prose ol{padding-left:1.5em;margin:0 0 1.4em}.prose li{padding-left:.12em;margin:.4em 0}.prose img{max-width:100%;height:auto;display:block;margin:22px auto 8px;border:1px solid var(--paper-edge);box-shadow:0 8px 22px #11182722}.prose p:has(> img){text-align:center;font-size:.75em;color:var(--muted)}.prose hr{border:0;border-top:1px solid var(--paper-edge);margin:2em 0}.sources{max-width:var(--measure);margin:28px auto 0;border-top:1px solid var(--paper-edge);padding-top:17px;color:var(--muted);font:13px/1.7 Arial,"Microsoft YaHei",sans-serif}.sources summary{cursor:pointer;color:var(--gold-dark)}.sources ul{padding-left:1.5em}.page-end{text-align:center;color:var(--gold-dark);margin:36px auto 0}.pager{display:grid;grid-template-columns:1fr auto 1fr;gap:16px;align-items:center;color:#f3ead7;padding:23px 2px 0}.pager button{border:1px solid #cfbd9b75;background:#10203042;border-radius:7px;color:#f3ead7;display:flex;align-items:center;gap:13px;min-height:64px;max-width:320px;padding:9px 15px;text-align:left}.pager button:hover:not(:disabled){background:#cbb2822a;border-color:var(--gold)}.pager button:disabled{opacity:.45;cursor:default}.pager button:last-child{justify-self:end;text-align:right}.pager button strong,.pager button small{display:block}.pager button small{font:11px Arial,"Microsoft YaHei",sans-serif;color:var(--gold);margin-bottom:4px}.pager button strong{font-size:13px;font-weight:500;line-height:1.3;max-width:19ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pager-arrow{font-size:38px;color:var(--gold);font-family:Georgia,serif;line-height:1}.pager-middle{text-align:center;font:12px Arial,"Microsoft YaHei",sans-serif;white-space:nowrap}.pager-tip{display:block;color:#d1d4d2b8;margin-top:5px;font-size:10px}.toast{position:fixed;bottom:20px;right:22px;z-index:20;max-width:min(330px,90vw);background:#172638;color:#fff;border:1px solid var(--gold);border-radius:6px;padding:10px 14px;font:13px/1.5 Arial,"Microsoft YaHei",sans-serif;box-shadow:0 8px 20px #0005;opacity:0;transform:translateY(10px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translateY(0)}.mobile-only{display:none}
@media(max-width:800px){.shell,.shell.sidebar-collapsed{display:block}.sidebar{position:fixed;left:0;top:0;width:min(330px,88vw);transform:translateX(-100%);visibility:hidden;box-shadow:8px 0 35px #0006}.sidebar-collapsed .sidebar{transform:translateX(-100%)}body.mobile-sidebar-open .sidebar,body.mobile-sidebar-open .sidebar-collapsed .sidebar{transform:translateX(0);visibility:visible}.scrim{position:fixed;inset:0;background:#08131dbb;z-index:4}.scrim[hidden]{display:none}.mobile-only{display:grid;margin-left:auto}.workspace{height:100dvh}.topbar{height:60px;padding:0 12px}.reader-wrap{padding:19px 12px 28px}.reader-topline{font-size:10px;padding-bottom:10px}.page{padding:34px 23px 31px;min-height:420px}.page:before{inset:6px}.page-ornament{margin-bottom:23px}.page h1{font-size:25px}.prose{font-size:var(--font-size);line-height:1.85}.pager{gap:5px;padding-top:13px}.pager button{padding:8px;min-height:56px;gap:5px}.pager button strong{max-width:10ch;font-size:11px}.pager-arrow{font-size:28px}.pager-tip{display:none}.pager-middle{font-size:10px}.header-progress{font-size:10px}}
@media(max-width:440px){.topbar-kicker{display:none}.topbar-title strong{font-size:15px}.topbar-actions{gap:2px}.page{padding-left:19px;padding-right:19px}.pager button strong{max-width:7ch}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
.toc{min-width:0;width:100%;overflow:hidden}.toc-group{min-width:0;width:100%}
.edition-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px 18px;margin:0 0 16px;color:#eadfc6;font:12px/1.6 Arial,"Microsoft YaHei",sans-serif}.edition-choice{display:flex;align-items:center;gap:12px}.edition-switch button{padding:7px 13px}.edition-switch button:disabled{opacity:.45;cursor:default}.edition-switch button:focus-visible,.edition-availability button:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.edition-availability{display:flex;align-items:center;flex-wrap:wrap;gap:5px 10px}.edition-availability p{margin:0;color:#d0d4d5}.edition-availability button{border:0;background:none;padding:0;color:#f0d6a6;font:inherit;text-decoration:underline;text-underline-offset:3px}.edition-availability button[hidden]{display:none}
@media(max-width:800px){.edition-toolbar{gap:8px;margin-bottom:13px}.edition-choice{gap:10px}.edition-switch button{padding:6px 12px}.edition-availability{font-size:11px}}
