:root{--bg:#f7f6f2;--ink:#161a1d;--mut:#555f69;--card:#ffffff;--line:#dcd9d1;--acc:#0b5d4b;--acc2:#e7f2ee;--accInk:#0a4f40;--warnBg:#fbf1dc;--warnInk:#6b4a05}
:root[data-theme="dark"]{--bg:#14171a;--ink:#ecebe6;--mut:#a7afb6;--card:#1c2024;--line:#2c3238;--acc:#6fcdb4;--acc2:#12302a;--accInk:#a6e3d0;--warnBg:#3a2f14;--warnInk:#f1d48a}
*{box-sizing:border-box}html{scroll-behavior:smooth}[id]{scroll-margin-top:76px}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 "IBM Plex Sans",system-ui,sans-serif}
a{color:var(--acc)}.wrap{max-width:1080px;margin:0 auto;padding:0 22px}
header{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:60px;flex-wrap:wrap;padding-top:8px;padding-bottom:8px}
.logo{font:600 21px "Fraunces",Georgia,serif;letter-spacing:-.01em;color:var(--ink);text-decoration:none}
nav.sub{display:flex;gap:4px 16px;flex-wrap:wrap;font-size:15px}nav.sub a{color:var(--ink);text-decoration:none;padding:4px 0}nav.sub a:hover,nav.sub a[aria-current]{color:var(--acc);text-decoration:underline;text-underline-offset:4px}
main{max-width:760px;margin:0 auto;padding:36px 22px 60px}
h1{font:600 clamp(30px,4.4vw,42px)/1.12 "Fraunces",Georgia,serif;letter-spacing:-.02em;margin:0 0 8px;text-wrap:balance}
h2{font:600 clamp(21px,2.6vw,26px)/1.2 "Fraunces",Georgia,serif;letter-spacing:-.01em;margin:38px 0 10px}
h3{font-size:18px;margin:24px 0 6px}
p,li{max-width:68ch}ul,ol{padding-left:22px}li{margin:4px 0}
.meta{color:var(--mut);font:14px/1.5 "IBM Plex Mono",ui-monospace,monospace;margin:0 0 22px}
.note{background:var(--warnBg);color:var(--warnInk);border-radius:10px;padding:12px 16px;font-size:15px;margin:0 0 26px}
.note a{color:inherit}
.fill{background:var(--acc2);color:var(--accInk);border-radius:6px;padding:0 5px;font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.92em}
table{border-collapse:collapse;width:100%;font-size:15px;margin:10px 0 18px}th,td{text-align:left;vertical-align:top;padding:8px 10px;border-bottom:1px solid var(--line)}th{font-weight:600;color:var(--mut);font-size:13.5px;text-transform:uppercase;letter-spacing:.04em}
.tbl{overflow-x:auto}
.fill{white-space:normal;overflow-wrap:anywhere}
@media(max-width:600px){table.kv,table.kv tbody,table.kv tr,table.kv th,table.kv td{display:block;width:100%}table.kv th{padding:10px 0 0;border:0}table.kv td{padding:2px 0 10px}}
.toc{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 18px;font-size:15px;margin:0 0 10px}.toc ol{margin:6px 0 0;padding-left:20px;columns:2;column-gap:24px}@media(max-width:600px){.toc ol{columns:1}}
footer{border-top:1px solid var(--line);color:var(--mut);font-size:14px;padding:26px 0 48px}
.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px}@media(max-width:700px){.fgrid{grid-template-columns:1fr}}
.fgrid a{display:block;margin:2px 0}.mono{font:13px/1.5 "IBM Plex Mono",ui-monospace,monospace}
.skip{position:absolute;left:8px;top:-60px;background:var(--ink);color:var(--bg);padding:8px 12px;border-radius:8px;z-index:100}.skip:focus{top:8px}
