:root{--ink:#18241f;--ink-soft:#52615a;--ink-faint:#8a968f;--paper:#f4f0e7;--paper-deep:#e9e2d4;--surface:#fffdf8;--line:#28393021;--line-strong:#2839303d;--jade:#1f6558;--jade-deep:#123f37;--jade-light:#d9e9df;--cinnabar:#b34d3c;--gold:#b28b48;--moss:#63785e;--night:#111915;--serif:"Iowan Old Style","Palatino",Georgia,serif;--han:"Songti SC","Hiragino Sans GB",serif;--sans:"Optima","Avenir Next",-apple-system,sans-serif}.page-content *{box-sizing:border-box}.page-content{font-family:var(--serif);color:var(--ink);-webkit-hyphens:auto;hyphens:auto;text-align:justify;orphans:2;widows:2;margin:0;font-size:10.2pt;line-height:1.58}.page-content p{margin:0 0 .62em}.page-content p.first,.page-content h1+p,.page-content h2+p,.page-content h3+p,.page-content .lede+p{text-indent:0}.page-content p+p{text-indent:1.15em}.page-content em{font-style:italic}.page-content strong{font-weight:600}.page-content a{color:inherit;text-decoration:none}.page-content .cover{page:cover;-webkit-hyphens:none;hyphens:none;color:#f3ecdd;width:148mm;height:210mm;position:relative;overflow:hidden}.page-content .cover-rings{border:.5pt solid #e2d2ad29;border-radius:50%;width:118mm;height:118mm;margin-top:-59mm;margin-left:-59mm;position:absolute;top:47%;left:50%}.page-content .cover-rings:after{content:"";border:.5pt solid #96b9a426;border-radius:50%;width:78mm;height:78mm;margin-top:-39mm;margin-left:-39mm;position:absolute;top:50%;left:50%}.page-content .cover-inner{padding:20mm 17mm 16mm;display:block;position:absolute;inset:0}.page-content .cover-seal{background:var(--cinnabar);color:#f8f1e5;width:13mm;height:13mm;font-family:var(--han);text-align:center;border-radius:3.2mm 3.2mm 3.2mm .6mm;font-size:20pt;line-height:13mm}.page-content .cover-kicker{font-family:var(--sans);letter-spacing:.26em;text-transform:uppercase;color:#a8c1b2;text-align:left;margin-top:9mm;font-size:7.4pt}.page-content .cover-han{font-family:var(--han);letter-spacing:.42em;color:#e9dcc0;text-align:left;margin-top:26mm;font-size:31pt;line-height:1.42}.page-content .cover-rule{background:var(--gold);width:22mm;height:.9pt;margin:8mm 0 7mm}.page-content .cover h1{letter-spacing:-.03em;text-align:left;color:#fbf6ea;string-set:none;margin:0;font-size:29pt;font-weight:500;line-height:1.05}.page-content .cover h1 em{color:#c9b78d;letter-spacing:-.01em;max-width:96mm;margin-top:3mm;font-size:17.5pt;font-style:italic;line-height:1.24;display:block}.page-content .cover-sub{color:#f3ecdd99;text-align:left;-webkit-hyphens:none;hyphens:none;max-width:84mm;margin-top:8mm;font-size:9.4pt;line-height:1.66}.page-content .cover-foot{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#f3ecdd6b;border-top:.5pt solid #e2d2ad33;justify-content:space-between;padding-top:4mm;font-size:7pt;display:flex;position:absolute;bottom:15mm;left:17mm;right:17mm}.page-content .frontpage{page:plain;break-before:page}.page-content .epigraph{text-align:left;margin:38mm 0 0}.page-content .epigraph .han{font-family:var(--han);color:var(--jade-deep);letter-spacing:.03em;font-size:15pt;line-height:1.75}.page-content .epigraph .en{color:var(--ink-soft);margin-top:5mm;font-size:11pt;font-style:italic;line-height:1.6}.page-content .epigraph .attr{font-family:var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-top:6mm;font-size:7.4pt}.page-content .divider{page:divider;break-before:page;color:#eadfc6;width:148mm;height:210mm;position:relative}.page-content .divider-inner{padding:0 18mm;position:absolute;inset:0}.page-content .divider-num{font-family:var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#8fae9c;font-size:7.4pt;position:absolute;top:34mm;left:18mm}.page-content .divider-han{font-family:var(--han);letter-spacing:.3em;color:#e9dcc0e6;font-size:40pt;line-height:1.3;position:absolute;top:52mm;left:18mm;right:18mm}.page-content .divider h1{letter-spacing:-.025em;color:#fbf6ea;string-set:runhead attr(data-run);margin:0;font-size:26pt;font-weight:500;line-height:1.1;position:absolute;top:104mm;left:18mm;right:22mm}.page-content .divider-rule{background:var(--gold);width:20mm;height:.9pt;position:absolute;top:132mm;left:18mm}.page-content .divider-say{-webkit-hyphens:none;hyphens:none;color:#eadfc69e;text-align:left;font-size:9.8pt;font-style:italic;line-height:1.65;position:absolute;top:142mm;left:18mm;right:20mm}.page-content .chapter{break-before:page}.page-content .chapter-head{margin-bottom:9mm}.page-content .chapter-num{font-family:var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--cinnabar);margin-bottom:3mm;font-size:7pt}.page-content h1{letter-spacing:-.025em;string-set:runhead attr(data-run);text-align:left;color:var(--ink);margin:0 0 2mm;font-size:19pt;font-weight:500;line-height:1.12}.page-content h1 .h1-han{font-family:var(--han);letter-spacing:.16em;color:var(--jade);margin-top:2.6mm;font-size:12pt;font-weight:400;display:block}.page-content h2{letter-spacing:.005em;text-align:left;color:var(--jade-deep);break-after:avoid;margin:7mm 0 2.4mm;font-size:11.4pt;font-weight:600}.page-content h3{text-align:left;color:var(--ink);break-after:avoid;margin:5mm 0 1.4mm;font-size:9.6pt;font-weight:600}.page-content .lede{color:var(--ink-soft);text-align:left;margin:0 0 6mm;font-size:11.2pt;font-style:italic;line-height:1.56}.page-content .cap{float:left;color:var(--cinnabar);padding:1.1mm 1.7mm 0 0;font-size:29pt;font-weight:500;line-height:.8}.page-content .dropcap{text-indent:0}.page-content blockquote{border-left:1.6pt solid var(--gold);break-inside:avoid;text-align:left;margin:5.5mm 0;padding:0 0 0 5.5mm}.page-content blockquote .han{font-family:var(--han);color:var(--jade-deep);letter-spacing:.02em;font-size:11.6pt;line-height:1.72}.page-content blockquote .en{color:var(--ink-soft);margin-top:2.2mm;font-size:9.6pt;font-style:italic;line-height:1.55}.page-content blockquote.plainquote{border-left-color:var(--jade-light)}.page-content blockquote.plainquote .en{color:var(--ink);font-size:10.2pt;font-style:italic}.page-content .pull{border-top:.5pt solid var(--line-strong);border-bottom:.5pt solid var(--line-strong);text-align:center;break-inside:avoid;margin:7mm 0;padding:5mm 0}.page-content .pull .han{font-family:var(--han);letter-spacing:.1em;color:var(--cinnabar);font-size:14pt;line-height:1.5}.page-content .pull .en{color:var(--ink-soft);margin-top:2.5mm;font-size:9.4pt;font-style:italic}.page-content .guard{break-inside:avoid;text-align:left;background:#b34d3c0e;border:.5pt solid #b34d3c3d;border-radius:1.6mm 1.6mm 1.6mm .5mm;margin:6mm 0;padding:4.4mm 5mm}.page-content .guard-label{font-family:var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--cinnabar);margin-bottom:2mm;font-size:6.6pt;font-weight:600}.page-content .guard p{color:var(--ink);margin:0;font-size:9.1pt;line-height:1.52}.page-content .guard p+p{text-indent:0;margin-top:1.8mm}.page-content .note{break-inside:avoid;text-align:left;background:#1f65580d;border:.5pt solid #1f655833;border-radius:1.6mm 1.6mm 1.6mm .5mm;margin:6mm 0;padding:4.4mm 5mm}.page-content .note-label{font-family:var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--jade);margin-bottom:2mm;font-size:6.6pt;font-weight:600}.page-content .note p{margin:0;font-size:9.1pt;line-height:1.52}.page-content .note p+p{text-indent:0;margin-top:1.8mm}.page-content .practice{background:var(--surface);border:.5pt solid var(--line-strong);border-left:2.2pt solid var(--cinnabar);break-inside:avoid;text-align:left;border-radius:0 1.8mm 1.8mm 0;margin:6.5mm 0;padding:5mm}.page-content .practice-label{font-family:var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--cinnabar);margin-bottom:2.6mm;font-size:6.6pt;font-weight:600}.page-content .practice h4{color:var(--ink);margin:0 0 2.4mm;font-size:10pt;font-weight:600}.page-content .practice p{margin:0 0 2mm;font-size:9.1pt;line-height:1.5}.page-content .practice ol,.page-content .practice ul{margin:0 0 2mm;padding-left:4.6mm;font-size:9.1pt;line-height:1.5}.page-content .practice li{margin-bottom:1.3mm}.page-content .writeline{border-bottom:.5pt solid var(--line-strong);height:5.6mm;margin-top:2.4mm}.page-content .writeline.short{width:56%}.page-content figure{break-inside:avoid;text-align:center;margin:7mm 0;padding:0}.page-content figure img{width:100%;height:auto;display:block}.page-content figure.narrow img{width:62%;margin:0 auto}.page-content figure.wide{margin:8mm 0}.page-content figure.closing-fig img{width:42%}.page-content figure.closing-fig{margin-bottom:4mm}.page-content figcaption{font-family:var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin-top:2.6mm;font-size:6.6pt}.page-content figcaption .han{font-family:var(--han);letter-spacing:.1em;color:var(--jade);text-transform:none;font-size:7.4pt}.page-content ul,.page-content ol{text-align:left;margin:0 0 .7em;padding-left:5mm}.page-content li{margin-bottom:1.2mm}.page-content .tight li{margin-bottom:.5mm}.page-content table{border-collapse:collapse;break-inside:auto;text-align:left;width:100%;margin:5mm 0;font-size:8.8pt}.page-content tr{break-inside:avoid;page-break-inside:avoid}.page-content thead{break-after:avoid}.page-content th{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);text-align:left;border-bottom:.5pt solid var(--line-strong);vertical-align:bottom;padding:0 2.6mm 1.8mm 0;font-size:6.6pt;font-weight:600}.page-content td{border-bottom:.5pt solid var(--line);vertical-align:top;padding:2.2mm 2.6mm 2.2mm 0;line-height:1.42}.page-content td:last-child,.page-content th:last-child{padding-right:0}.page-content .han-cell{font-family:var(--han);color:var(--jade-deep);white-space:nowrap}.page-content .swatch{vertical-align:middle;border-radius:50%;width:2.6mm;height:2.6mm;margin-right:1.6mm;display:inline-block}.page-content .sw-red{background:#b34d3c}.page-content .sw-blue{background:#496779}.page-content .sw-yellow{background:#b28b48}.page-content .sw-green{background:#63785e}.page-content .element-head{border-bottom:.5pt solid var(--line-strong);margin:0 0 6mm;padding-bottom:4mm}.page-content .element-step{font-family:var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--cinnabar);margin-bottom:2.4mm;font-size:6.8pt}.page-content .element-han{font-family:var(--han);letter-spacing:.14em;color:var(--jade-deep);font-size:26pt;line-height:1.2}.page-content .element-en{letter-spacing:-.02em;color:var(--ink);margin-top:1.6mm;font-size:15pt}.page-content .element-gloss{color:var(--ink-soft);margin-top:2.4mm;font-size:9.2pt;font-style:italic}.page-content .toc{page:plain;break-before:page}.page-content .toc h1{margin-bottom:7mm}.page-content .toc-part{font-family:var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--cinnabar);border-top:.5pt solid var(--line);margin:6mm 0 2.4mm;padding-top:2.4mm;font-size:6.8pt}.page-content .toc-item{color:var(--ink);align-items:baseline;margin-bottom:1.6mm;font-size:9.4pt;display:flex}.page-content .toc-item .t{flex:none}.page-content .toc-item .d{border-bottom:.4pt dotted var(--line-strong);flex:auto;margin:0 1.6mm 1mm}.page-content .toc-item .p{color:var(--ink-faint);flex:none;font-size:8.4pt}.page-content .toc-item .p a{color:var(--ink-faint)}.page-content .toc-item .p a:after{content:target-counter(attr(href), page)}.page-content .toc-item .t a{color:var(--ink)}.page-content .colophon{page:plain;break-before:page}.page-content .ledger td{font-size:8.6pt}.page-content .end-seal{background:var(--cinnabar);color:#f8f1e5;width:11mm;height:11mm;font-family:var(--han);text-align:center;border-radius:2.8mm 2.8mm 2.8mm .5mm;margin:8mm auto 0;font-size:16pt;line-height:11mm}.page-content .end-line{text-align:center;font-family:var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-faint);margin-top:5mm;font-size:7pt}
html,body{background:var(--night,#111915);height:100%;margin:0;overflow:hidden}*{box-sizing:border-box}.book-stage{place-items:center;width:100vw;height:100dvh;display:grid}.spread{transform-origin:50%;perspective:2400px;grid-template-rows:210mm;grid-template-columns:148mm;display:grid;position:relative}.spread--landscape{grid-template-columns:148mm 148mm}.spread>.page{grid-row:1}.leaf{width:148mm;height:210mm;transform-style:preserve-3d;z-index:5;position:absolute;top:0}.leaf--ghost{z-index:6}.leaf-face{backface-visibility:hidden;position:absolute;inset:0;overflow:hidden}.leaf-face--back{transform:rotateY(180deg)}.leaf-curl{pointer-events:none;background:linear-gradient(90deg,#00000052,#0000 45%,#ffffff2e 60%,#0000 80%);position:absolute;inset:0}.leaf-gutter-shadow{pointer-events:none;width:40mm;position:absolute;top:0;bottom:0}.leaf-gutter-shadow--left{background:linear-gradient(90deg,#00000073,#0000);left:0}.leaf-gutter-shadow--right{background:linear-gradient(270deg,#00000073,#0000);right:0}.leaf--flat .leaf-face{transition:opacity .2s;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.leaf{transition:none!important;transform:none!important}}.page{background:var(--paper,#f4f0e7);flex:none;width:148mm;height:210mm;position:relative;overflow:hidden}.page[data-named=cover]{background:var(--night,#111915)}.page[data-named=divider]{background:var(--jade-deep,#123f37)}.page-content{position:absolute;inset:19mm 16mm 17mm}.page[data-named=cover] .page-content,.page[data-named=divider] .page-content{inset:0}.running-head{height:19mm;font-family:var(--serif,Georgia, serif);letter-spacing:.14em;text-transform:uppercase;color:#9aa79f;text-align:center;justify-content:center;align-items:flex-end;padding-bottom:5mm;font-size:7.2pt;display:flex;position:absolute;top:0;left:16mm;right:16mm}.folio{height:17mm;font-family:var(--serif,Georgia, serif);color:#9aa79f;text-align:center;justify-content:center;align-items:flex-start;padding-top:4mm;font-size:8.4pt;display:flex;position:absolute;bottom:0;left:16mm;right:16mm}.mode-toolbar{z-index:20;gap:8px;display:flex;position:fixed;top:12px;right:12px}.mode-toolbar button{font-family:var(--serif,Georgia, serif);letter-spacing:.08em;text-transform:uppercase;color:#d7ddd8;cursor:pointer;background:#1119158c;border:1px solid #9aa79f66;border-radius:999px;padding:6px 14px;font-size:8.5pt}.mode-toolbar button[aria-pressed=true]{background:var(--jade-deep,#123f37);color:#f4f0e7;border-color:#0000}.fullscreen-hint{font-family:var(--serif,Georgia, serif);letter-spacing:.06em;color:#d7ddd8a6;white-space:nowrap;padding:6px 4px;font-size:7.5pt}.scroll-stage{background:var(--night,#111915);width:100vw;height:100dvh;overflow:hidden auto}.scroll-column{flex-direction:column;align-items:center;gap:24px;padding:24px 0;display:flex}.scroll-slot{flex:none;overflow:hidden}.scroll-column .page{content-visibility:auto;contain-intrinsic-size:210mm}.search-overlay{z-index:30;background:#1119158c;justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.search-panel{background:var(--paper,#f4f0e7);border:1px solid var(--line-strong,#2839303d);border-radius:10px;flex-direction:column;width:min(560px,92vw);max-height:78vh;display:flex;overflow:hidden;box-shadow:0 24px 60px #00000059}.search-bar{border-bottom:1px solid var(--line-strong,#2839303d);background:var(--surface,#fffdf8);flex:none;align-items:center;gap:8px;padding:14px 16px;display:flex}.search-bar input{min-width:0;font-family:var(--serif,Georgia, serif);color:var(--ink,#18241f);background:0 0;border:none;outline:none;flex:auto;font-size:11pt}.search-bar input::placeholder{color:var(--ink-faint,#8a968f)}.search-bar input[type=search]::-webkit-search-decoration{appearance:none}.search-bar input[type=search]::-webkit-search-cancel-button{appearance:none}.search-bar button{color:var(--ink-faint,#8a968f);cursor:pointer;background:0 0;border:none;border-radius:999px;flex:none;padding:4px 6px;font-size:13pt;line-height:1}.search-bar button:hover{background:var(--jade-light,#d9e9df);color:var(--jade-deep,#123f37)}.search-results{flex:auto;margin:0;padding:4px 0;list-style:none;overflow-y:auto}.search-results li+li{border-top:1px solid var(--line,#28393021)}.search-results button{text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 16px;font-family:inherit;display:block}.search-results button:hover,.search-results button:focus-visible{background:var(--jade-light,#d9e9df);outline:none}.search-result-meta{font-family:var(--sans,sans-serif);letter-spacing:.1em;text-transform:uppercase;color:var(--cinnabar,#b34d3c);margin-bottom:3px;font-size:7.4pt;display:block}.search-result-snippet{font-family:var(--serif,Georgia, serif);color:var(--ink,#18241f);font-size:9.6pt;line-height:1.5;display:block}.search-hint{font-family:var(--serif,Georgia, serif);color:var(--ink-faint,#8a968f);margin:0;padding:16px;font-size:9.6pt;font-style:italic}.search-error{color:var(--cinnabar,#b34d3c);font-style:normal}.search-error button{font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}
