:root{color-scheme:light;--paper:#f5f2eb;--surface:#fbf9f4;--ink:#252b2a;--muted:#5d6560;--line:#d1d4cb;--accent:#315d50;--brass:#866a34;--wash:#e8ebe3;--code:#eeece5;--mono:'Berkeley Mono',ui-monospace,'SFMono-Regular',Consolas,monospace;font:16px/1.7 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--paper);color:var(--ink)}
:root[data-theme="dark"]{color-scheme:dark;--paper:#1d2523;--surface:#222d29;--ink:#eeede5;--muted:#b4beb6;--line:#415049;--accent:#b1cdba;--brass:#c6ac73;--wash:#293730;--code:#26312b}
*{box-sizing:border-box}body{margin:0}a{color:var(--accent);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}button{font:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}:focus-visible{outline:2px solid var(--accent);outline-offset:5px}[hidden]{display:none!important}p,h1,h2,h3,figure{margin:0}p+p{margin-top:1rem}code,kbd,.label,.version,.nav-number{font-family:var(--mono);font-variant-ligatures:none}code{font-size:.85em;overflow-wrap:anywhere}p code,li code,td code{background:var(--code);padding:.1em .3em;border-radius:3px}
.masthead{max-width:1360px;margin:auto;padding:29px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none;font-size:19px;font-weight:600}.brand img{width:37px;height:37px}.brand .divider{width:1px;height:21px;background:var(--line);margin:0 4px}.brand .manual{font-size:15px;font-weight:400;color:var(--muted)}.masthead-links{display:flex;gap:24px;font-size:12px}.masthead-links a{color:var(--muted)}
.book{display:grid;grid-template-columns:225px minmax(0,1fr);max-width:1312px;margin:0 auto;border-top:1px solid var(--line)}.contents{padding:35px 26px 40px 0;border-right:1px solid var(--line)}.contents-inner{position:sticky;top:25px}.label{color:var(--brass);font-size:10px;line-height:1.6;letter-spacing:.09em;text-transform:uppercase}.contents nav{display:grid;gap:7px;margin-top:20px}.contents nav a{color:var(--muted);text-decoration:none;padding:9px 8px;font-size:12px;border-left:2px solid transparent;display:flex;align-items:baseline;gap:9px}.nav-number{font-size:9px;color:var(--brass)}.contents nav a[aria-current="page"]{color:var(--ink);border-left-color:var(--brass);background:var(--wash)}.version{color:var(--muted);font-size:10px;margin-top:32px;line-height:1.9}.theme-control{margin-top:26px}.switch{display:flex;gap:3px;margin-top:9px}.switch button{border:1px solid transparent;background:transparent;color:var(--muted);padding:7px 9px;border-radius:3px;font-size:11px}.switch button[aria-pressed="true"]{border-color:var(--line);background:var(--surface);color:var(--ink)}.download-all{display:inline-block;font-size:11px;margin-top:28px}
.reading{min-width:0;padding:46px 46px 35px}.chapter{max-width:910px}.chapter-head{max-width:740px;margin-bottom:36px}h1{font:400 clamp(29px,3.1vw,45px)/1.2 var(--mono);letter-spacing:-.045em;margin:18px 0 21px;text-wrap:balance}.dek{color:var(--muted);font-size:17px;line-height:1.75;max-width:61ch}.chapter-grid{display:grid;grid-template-columns:minmax(0,650px) minmax(135px,1fr);gap:34px}.prose{min-width:0}.prose h2{font:400 22px/1.4 var(--mono);letter-spacing:-.035em;margin:35px 0 14px;scroll-margin-top:22px}.prose>h2:first-child{margin-top:0}.prose h3{font:700 15px/1.6 var(--mono);margin:24px 0 9px}.prose p{margin-bottom:1rem}.prose ul,.prose ol{padding-left:22px;margin:14px 0 22px}.prose li{padding-left:3px;margin-top:9px}.prose li p{margin-bottom:.5rem}kbd{display:inline-block;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:1px 6px;font-size:12px;background:var(--surface)}
figure{margin:24px 0}figure img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:4px}figcaption{margin-top:10px;font-size:11px;color:var(--muted);line-height:1.7}.margin{color:var(--muted);font-size:12px;line-height:1.75;padding-top:5px}.margin div{border-top:1px solid var(--line);padding-top:13px;margin-bottom:30px}.margin strong{color:var(--ink);font-weight:600;display:block;margin-bottom:7px}.note,blockquote{background:var(--wash);padding:17px 20px;border-left:2px solid var(--brass);margin:24px 0;font-size:13px;line-height:1.7}.note p:last-child,blockquote p:last-child{margin-bottom:0}
pre{margin:16px 0 22px;padding:19px 21px;border:1px solid var(--line);border-left:2px solid var(--brass);background:var(--code);border-radius:3px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}pre code{font-size:12px}.code-tools{display:flex;justify-content:flex-end;margin-bottom:-10px}.copy,.copy-page{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:3px;padding:6px 10px;font-size:11px}.copy-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}table{border-collapse:collapse;width:100%;margin:16px 0 25px;font-size:13px;table-layout:fixed}caption{text-align:left;font-weight:600;margin-bottom:10px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:11px 9px 11px 0;overflow-wrap:anywhere}th{font-size:11px;color:var(--muted);font-weight:500}th:first-child,td:first-child{width:34%}td code{font-size:11px}
.page-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:21px;font-size:11px}.copy-page{font-family:var(--mono);padding:8px 11px}.page-tools [role="status"]{color:var(--muted)}.page-copy-fallback{margin-top:18px;font-size:12px}.page-copy-fallback label{font-weight:600}.page-copy-fallback p{color:var(--muted);margin:6px 0 10px}.page-copy-fallback textarea{display:block;width:100%;max-height:24rem;resize:vertical;padding:12px;border:1px solid var(--line);border-radius:3px;background:var(--code);color:var(--ink);font:11px/1.7 var(--mono)}
.next{margin-top:36px;border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;align-items:baseline;gap:18px;font-size:12px}.next span{color:var(--muted);font-size:11px}.next a:last-child{text-align:right}.colophon{font-size:11px;line-height:1.9;color:var(--muted);margin-top:36px;padding-top:18px;border-top:1px dashed var(--line)}.site-footer{max-width:1264px;margin:20px auto 50px;display:flex;gap:24px;justify-content:space-between;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:22px}.site-footer a{color:var(--muted)}.skip{position:absolute;top:-100px;left:15px;z-index:2;padding:8px;background:var(--surface)}.skip:focus{top:15px}
@media(max-width:1370px){.book{margin-inline:24px}.site-footer{margin-inline:48px}}
@media(max-width:1100px){.book{grid-template-columns:195px minmax(0,1fr)}.reading{padding:35px 30px}.chapter-grid{grid-template-columns:1fr;gap:0}.margin{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:30px}}
@media(max-width:740px){.masthead{padding:23px 22px}.masthead-links{gap:15px}.masthead-links a:last-child{display:none}.book{display:block;margin-inline:22px}.contents{border-right:0;border-bottom:1px solid var(--line);padding:15px 0}.contents-inner{position:static}.contents-inner>.label,.contents .version{display:none}.contents nav{display:flex;flex-wrap:wrap;margin:0;gap:5px}.contents nav a{padding:7px 8px;font-size:11px}.nav-number{display:none}.theme-control{display:flex;align-items:center;gap:10px;margin-top:15px}.theme-control>.label{font-size:9px}.switch{margin:0}.download-all{margin-top:12px}.reading{padding:32px 0}.dek{font-size:16px}.brand{gap:7px}.brand .divider{margin:0 2px}.brand .manual{font-size:13px}.margin{grid-template-columns:1fr;gap:0}.site-footer{margin:12px 22px 35px;flex-direction:column;gap:12px}pre{padding:16px 14px}.prose h2{font-size:21px}.next{font-size:11px}table{font-size:12px}}
@media(prefers-reduced-motion:no-preference){a,button{transition:background-color .12s,color .12s}}
@media print{.contents,.masthead-links,.code-tools,.page-tools,.page-copy-fallback,.next,.site-footer{display:none!important}:root,:root[data-theme="dark"]{--paper:#fff;--surface:#fff;--ink:#222;--muted:#555;--line:#bbb;--accent:#244f45;--brass:#705422;--wash:#f4f4f4;--code:#f4f4f4}.book{display:block;margin:0}.reading{padding:20px 0}.chapter-grid{display:block}figure,pre,.note{break-inside:avoid}}
