:root{color-scheme:dark;--bg:#141923;--bg-2:#1b2230;--panel:#222b3a;--ink:#eee8dc;--ink-muted:#b2b8c4;--line:rgba(234,224,205,.14);--gold:#d6b47d;--gold-soft:#f1d7a2;--gold-ink:#1e1a17;--shadow:0 16px 60px rgba(0,0,0,.22);--reading-size:19px;--reading-width:750px;--serif:Georgia,'Times New Roman',serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif}
html[data-theme=light]{color-scheme:light;--bg:#f8f5ed;--bg-2:#f1ecdf;--panel:#fffdf6;--ink:#23252c;--ink-muted:#66656a;--line:rgba(30,35,50,.13);--gold:#82602d;--gold-soft:#6e4d1b;--gold-ink:#fffdf6;--shadow:0 15px 50px rgba(49,35,16,.07)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);min-height:100vh;-webkit-font-smoothing:antialiased}button,input{font:inherit}a{color:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.sr-only{position:absolute!important;clip:rect(0,0,0,0);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}.skip-link{position:absolute;z-index:100;background:var(--gold);color:var(--gold-ink);padding:12px;transform:translateY(-130%)}.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 91%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header-inner{max-width:1190px;margin:auto;padding:0 28px;min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;font-size:15px;font-weight:700;letter-spacing:.06em}.brand-mark{width:30px;height:30px;display:block;border-radius:7px}.head-actions{display:flex;align-items:center;gap:7px}.head-actions a{text-decoration:none;font-size:13px;color:var(--ink-muted);padding:10px 14px}.head-actions a:hover{color:var(--ink)}.icon-btn{width:40px;height:40px;display:grid;place-items:center;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink-muted);font-size:21px}.icon-btn:hover{color:var(--gold-soft);background:var(--panel);border-color:var(--line)}.icon-btn.text-size{font-size:13px;font-weight:700}
.kicker{font-size:11px;letter-spacing:.23em;color:var(--gold);font-weight:750}.hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 52% -16%,rgba(205,166,105,.14),transparent 56%),var(--bg-2);border-bottom:1px solid var(--line)}.hero:after{content:'';position:absolute;width:780px;height:780px;left:50%;top:15%;border:1px solid rgba(211,173,114,.045);border-radius:50%;transform:translateX(-50%);z-index:-1;box-shadow:0 0 0 160px rgba(211,173,114,.021),0 0 0 320px rgba(211,173,114,.012)}.hero-inner{max-width:1000px;margin:auto;text-align:center;padding:88px 24px 90px}.hero-ornament{display:block;width:48px;height:48px;margin:0 auto 25px;opacity:.92}.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(45px,6.7vw,83px);line-height:1.12;letter-spacing:-.038em;max-width:880px;margin:20px auto 26px}.hero-rule{width:62px;height:1px;background:var(--gold);margin:0 auto 25px}.hero-sub{font-family:var(--serif);font-size:20px;color:var(--ink-muted);margin:0}.hero-buttons{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:39px auto 25px}.btn-primary,.btn-secondary{display:inline-flex;gap:18px;align-items:center;justify-content:center;text-decoration:none;border-radius:5px;min-height:48px;padding:12px 23px;font-size:13px;letter-spacing:.03em;font-weight:700;transition:background .15s,transform .15s}.btn-primary{background:var(--gold);color:var(--gold-ink);border:1px solid var(--gold)}.btn-primary:hover{background:var(--gold-soft);transform:translateY(-1px)}.btn-secondary{border:1px solid var(--line);background:var(--panel);color:var(--ink)}.btn-secondary:hover{border-color:var(--gold)}.content-notice{margin:24px auto 0;color:var(--ink-muted);font-size:12px;opacity:.85}
.toc-section{max-width:1130px;margin:0 auto;padding:78px 28px 110px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:25px;border-bottom:1px solid var(--line);padding-bottom:28px;margin-bottom:30px}.section-heading h2{font-family:var(--serif);font-weight:400;font-size:clamp(36px,4.2vw,52px);margin:12px 0 8px;line-height:1.1}.section-heading p{color:var(--ink-muted);margin:0;font-size:14px}.toc-total{color:var(--gold);font-size:13px;white-space:nowrap;margin-bottom:7px}.search-label{display:block;font-size:12px;color:var(--ink-muted);margin-bottom:11px}.home-search,#toc-query{width:100%;height:48px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:5px;padding:12px 16px;outline:none}.home-search:focus,#toc-query:focus{border-color:var(--gold)}.toc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin-top:18px}.toc-item{min-height:66px;display:flex;align-items:center;gap:18px;padding:13px 6px;border-bottom:1px solid var(--line);text-decoration:none;transition:color .12s}.toc-item:hover{color:var(--gold-soft)}.toc-number{color:var(--gold);font-size:12px;font-variant-numeric:tabular-nums;font-weight:700;min-width:30px}.toc-name{font-family:var(--serif);font-size:16px;line-height:1.4;flex:1}.toc-arrow{opacity:.38;font-size:18px}.toc-item:hover .toc-arrow{opacity:1}.empty-search{font-family:var(--serif);color:var(--ink-muted);font-size:20px;text-align:center;padding:30px}
.reader-main{max-width:1120px;padding:0 28px 90px;margin:0 auto}.reader-top{display:flex;justify-content:space-between;align-items:center;margin:30px auto 45px;max-width:var(--reading-width);gap:20px}.back-link{text-decoration:none;font-size:12px;color:var(--ink-muted)}.back-link:hover{color:var(--gold)}.read-progress{font-size:10px;letter-spacing:.19em;color:var(--ink-muted);white-space:nowrap}.chapter-article{max-width:var(--reading-width);margin:auto}.chapter-heading{text-align:center;margin:0 auto 70px}.chapter-heading .kicker{font-family:var(--serif);letter-spacing:.02em;font-size:13px}.chapter-index{color:var(--gold);font-size:12px;letter-spacing:.24em;margin:35px auto 9px;font-weight:650}.chapter-heading h1{font-family:var(--serif);font-size:clamp(32px,4.7vw,49px);font-weight:400;letter-spacing:-.025em;line-height:1.22;margin:0 auto;max-width:700px}.chapter-heading-line{display:block;background:var(--gold);height:1px;width:75px;opacity:.62;margin:34px auto 0}.chapter-text{font-family:var(--serif);font-size:var(--reading-size);line-height:1.93;letter-spacing:.002em;color:var(--ink);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.chapter-text p{margin:0 0 1.38em;overflow-wrap:break-word}.chapter-text em{font-style:italic}.chapter-text strong{font-weight:700}.chapter-text blockquote{margin:1.9em 0;padding:1.1em 1.35em;background:var(--bg-2);border-left:2px solid var(--gold);color:var(--ink)}.chapter-text blockquote p:last-child{margin-bottom:0}.chapter-text ol{margin:1.5em 0;padding-left:1.8em}.chapter-text ol li{padding-left:.3em;margin-bottom:.6em}.scene-break{width:45px;border:0;border-top:1px solid var(--gold);opacity:.75;margin:3.25em auto}.chapter-navigation{max-width:var(--reading-width);margin:90px auto 0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;border-top:1px solid var(--line);padding-top:27px}.nav-button{text-decoration:none;display:flex;flex-direction:column;gap:8px;padding:13px 0;font-family:var(--serif);font-size:15px;line-height:1.4;min-width:0}.nav-button:hover{color:var(--gold)}.nav-label{font:650 11px var(--sans);letter-spacing:.07em;color:var(--gold)}.nav-next{text-align:right}.nav-empty{color:var(--ink-muted);font-size:13px}.nav-contents{align-self:center;text-decoration:none;font-size:12px;display:flex;gap:7px;align-items:center;color:var(--ink-muted)}.nav-contents:hover{color:var(--gold)}.reader-footnote{max-width:var(--reading-width);text-align:center;color:var(--ink-muted);font-size:11px;margin:65px auto 0}
.site-footer{text-align:center;font-size:12px;color:var(--ink-muted);border-top:1px solid var(--line);padding:38px 18px 48px;line-height:2}.toc-dialog{position:fixed;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);color:var(--ink);box-shadow:var(--shadow);max-width:min(650px,92vw);width:100%;max-height:min(84vh,820px);padding:26px;overflow:hidden}.toc-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(5px)}.dialog-header{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:20px}.dialog-header h2{font:400 33px var(--serif);margin:10px 0 0}.toc-results{max-height:55vh;overflow:auto;margin-top:17px;padding-right:6px}.toc-results a{display:flex;gap:14px;text-decoration:none;border-bottom:1px solid var(--line);padding:11px 4px;font:15px var(--serif)}.toc-results a:hover{color:var(--gold)}.toc-results a span:first-child{color:var(--gold);font:700 11px var(--sans);width:32px;flex:0 0 32px;padding-top:3px}.copy-message{position:fixed;bottom:25px;left:50%;transform:translate(-50%,120px);z-index:99;padding:12px 18px;background:var(--panel);border:1px solid var(--gold);border-radius:8px;color:var(--ink);box-shadow:var(--shadow);font-size:12px;max-width:90vw;text-align:center;opacity:0;pointer-events:none;transition:transform .25s,opacity .25s}.copy-message.visible{transform:translate(-50%,0);opacity:1}.error-main{min-height:60vh;text-align:center;max-width:600px;margin:120px auto;padding:24px}.error-main h1{font:400 44px var(--serif)}.error-main p{color:var(--ink-muted);margin-bottom:35px}html{scroll-padding-top:90px}
@media(max-width:720px){.header-inner{padding:0 15px;min-height:62px}.brand{font-size:12px;gap:6px;letter-spacing:.025em}.brand-mark{width:26px;height:26px}.head-actions{gap:0}.icon-btn{width:33px;height:37px;font-size:19px}.head-actions a{display:none}.head-actions .text-size{font-size:11px}.hero-inner{padding:66px 17px 74px}.hero h1{font-size:clamp(42px,10vw,63px)}.hero-sub{font-size:18px}.hero-buttons{gap:9px}.btn-primary,.btn-secondary{padding:11px 17px}.toc-section{padding:58px 18px 76px}.toc-grid{grid-template-columns:1fr}.section-heading{align-items:start}.toc-total{display:none}.reader-main{padding:0 18px 70px}.reader-top{margin:28px auto 40px}.chapter-heading{margin-bottom:50px}.chapter-heading h1{font-size:35px}.chapter-text{line-height:1.82}.chapter-navigation{margin-top:68px;gap:10px;grid-template-columns:1fr 1fr}.nav-contents{grid-column:1/-1;grid-row:2;justify-content:center;margin:15px 0}.nav-button{font-size:13px}.toc-dialog{padding:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
[hidden]{display:none!important}

/* Navigation that stays available while reading, without crowding the prose. */
.reading-progress-track{position:fixed;top:70px;left:0;right:0;height:3px;z-index:48;pointer-events:none;background:transparent}
#reading-progress-bar{width:0;height:100%;background:var(--gold);transition:width .08s linear}
.side-chapter{position:fixed;top:50%;transform:translateY(-50%);z-index:42;display:flex;justify-content:center;align-items:center;width:50px;height:62px;border:1px solid var(--line);border-radius:12px;background:var(--bg-2);color:var(--gold-soft);box-shadow:var(--shadow);font:400 44px/1 var(--serif);text-decoration:none;opacity:.82;transition:opacity .15s,background .15s,border-color .15s,transform .15s}
.side-chapter:hover,.side-chapter:focus-visible{opacity:1;background:var(--panel);border-color:var(--gold);transform:translateY(-50%) scale(1.04)}
.side-prev{left:clamp(16px,calc((100vw - 1000px)/2),155px)}
.side-next{right:clamp(16px,calc((100vw - 1000px)/2),155px)}
.back-to-top{position:fixed;right:28px;bottom:25px;z-index:42;width:43px;height:43px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--gold-soft);font-size:21px;box-shadow:var(--shadow);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .18s,transform .18s}
.back-to-top.is-visible{opacity:.88;pointer-events:auto;transform:translateY(0)}
.back-to-top:hover{opacity:1;border-color:var(--gold)}
@media(max-width:900px){
  .side-chapter{top:auto;bottom:17px;transform:none;width:48px;height:48px;border-radius:50%;font-size:38px;opacity:.95}
  .side-chapter:hover,.side-chapter:focus-visible{transform:scale(1.04)}
  .side-prev{left:18px}.side-next{right:18px}
  .back-to-top{right:auto;left:50%;transform:translate(-50%,10px);bottom:19px}
  .back-to-top.is-visible{transform:translate(-50%,0)}
  .reader-main{padding-bottom:115px}
}
@media(max-width:720px){.reading-progress-track{top:62px}}
