:root{--paper: #f4ecd8;--paper-2: #ede3cb;--ink: #2a2520;--ink-2: #5b534b;--ink-3: #8a8077;--line: #d9ccb0;--accent: #8b2020;--green: #2f5d3a;--red: #9b2c2c;--code: #efe6d0;--font: Inter, system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #16140f;--paper-2: #1e1b14;--ink: #ece4d2;--ink-2: #b9afa0;--ink-3: #8a8077;--line: #3a342a;--code: #221f17}}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.skip-link{position:absolute;left:-999px;top:8px;background:var(--paper-2);padding:6px 10px}.skip-link:focus{left:8px}.topbar{border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:5}.topbar-inner{max-width:1280px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:28px}.top-nav{display:flex;gap:18px;font-weight:500}.top-nav a{color:var(--ink-2);padding:6px 2px;border-bottom:2px solid transparent}.top-nav a.on{color:var(--ink);border-bottom-color:var(--accent)}.top-nav a:hover{text-decoration:none;color:var(--ink)}.shell{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:250px minmax(0,1fr) 220px;gap:36px;padding:28px 20px 80px}.sidebar-toggle{display:none}.sidebar-col nav{position:sticky;top:76px;max-height:calc(100vh - 100px);overflow:auto}.nav-group{margin:0 0 18px}.nav-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px;font-weight:600}.nav-group a{display:block;padding:5px 10px;margin-left:-10px;border-radius:6px;color:var(--ink-2);font-size:14.5px}.nav-group a:hover{background:var(--paper-2);text-decoration:none;color:var(--ink)}.nav-group a.active{background:var(--paper-2);color:var(--ink);font-weight:600}.article-col{min-width:0}.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 6px}.article-col h1{font-size:34px;letter-spacing:-.02em;margin:0 0 10px;line-height:1.15}.lead{font-size:18px;color:var(--ink-2);margin:0 0 26px}.article-col h2{font-size:22px;margin:36px 0 10px;padding-top:10px;border-top:1px solid var(--line);letter-spacing:-.01em}.article-col h3{font-size:17px;margin:24px 0 8px}.article-col p,.article-col li{color:var(--ink)}.article-col ul,.article-col ol{padding-left:22px}code{font-family:var(--mono);font-size:13.5px;background:var(--code);padding:1px 5px;border-radius:4px}pre{background:var(--code);border:1px solid var(--line);border-radius:8px;padding:14px 16px;overflow:auto;font-size:13.5px;line-height:1.5}pre code{background:none;padding:0}table{border-collapse:collapse;width:100%;margin:14px 0;font-size:14.5px}th,td{border-bottom:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}th{color:var(--ink-3);font-weight:600;font-size:12.5px;text-transform:uppercase;letter-spacing:.05em}blockquote{margin:16px 0;padding:10px 16px;border-left:3px solid var(--accent);background:var(--paper-2);color:var(--ink-2);border-radius:0 8px 8px 0}.callout{border:1px solid var(--line);background:var(--paper-2);border-radius:10px;padding:12px 16px;margin:16px 0}.toc-head{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin:0 0 8px}.toc-col nav{position:sticky;top:76px}.toc-list{list-style:none;padding:0;margin:0;font-size:13.5px}.toc-list li{margin:4px 0}.toc-list a{color:var(--ink-2)}.toc-list li.h3{padding-left:12px}.pager{display:flex;justify-content:space-between;gap:12px;margin-top:48px;padding-top:18px;border-top:1px solid var(--line);font-size:14.5px}.addr{font-family:var(--mono);font-size:13px;word-break:break-all}.muted{color:var(--ink-3)}@media(max-width:1080px){.shell{grid-template-columns:230px minmax(0,1fr)}.toc-col{display:none}}@media(max-width:760px){.shell{grid-template-columns:1fr;gap:12px;padding:14px 16px 60px}.sidebar-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;background:var(--paper-2);border:1px solid var(--line);border-radius:8px;padding:10px 12px;font:inherit;color:var(--ink)}.sidebar-col.is-collapsed{display:none}.sidebar-col nav{position:static;max-height:none}.topbar-inner{gap:14px}.article-col h1{font-size:28px}}
