:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "Liberation Mono", monospace;--bg:#faf9f5;--bg-raised:#f4f2ea;--bg-sunken:#ece8dc;--fg:#30291f;--fg-muted:#6c6355;--fg-faint:#948b7a;--border:#e3ddcd;--border-soft:#ece7d9;--accent:#c15f3c;--accent-2:#ad9257;--accent-soft:#f2e2d5;--accent-fg:#fbf6ee;--code-bg:#f4f0e4;--danger:#b7462f;--warn:#92651c;--ok:#3f7a52;--shadow:0 1px 2px #30291f0f, 0 8px 24px #30291f12;--radius:10px;--header-h:60px;--sidebar-w:272px;--toc-w:220px;--max-w:820px}@media (prefers-color-scheme:dark){:root{--bg:#262624;--bg-raised:#2e2d2a;--bg-sunken:#1f1e1c;--fg:#eeebe2;--fg-muted:#ada79a;--fg-faint:#837c6d;--border:#3d3a34;--border-soft:#34322c;--accent:#da7756;--accent-2:#c9a869;--accent-soft:#3d2c23;--accent-fg:#1c130d;--code-bg:#211f1c;--danger:#e08469;--warn:#d3ad6b;--ok:#7bbf94;--shadow:0 1px 2px #00000059, 0 12px 32px #0006}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code,pre,kbd{font-family:var(--font-mono);font-size:.875em}code:not(pre code){background:var(--code-bg);border:1px solid var(--border-soft);border-radius:5px;padding:.12em .4em}pre{background:var(--code-bg);border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px 18px;line-height:1.55;overflow-x:auto}pre code{background:0 0;border:none;padding:0;font-size:.85em}.shiki,.shiki span{color:var(--shiki-light);background-color:var(--shiki-light-bg)!important}@media (prefers-color-scheme:dark){.shiki,.shiki span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}.shiki{border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px 18px;overflow-x:auto}.shiki code{background:0 0;border:none;padding:0;font-size:.85em;line-height:1.6}pre.fallback{background:var(--code-bg);border:1px solid var(--border-soft);border-radius:var(--radius);padding:16px 18px;overflow-x:auto}h1,h2,h3,h4{scroll-margin-top:calc(var(--header-h) + 20px);letter-spacing:-.01em;font-weight:650;line-height:1.25}h1{margin:0 0 .4em;font-size:2.1rem}h2{border-top:1px solid var(--border-soft);margin:2.2em 0 .7em;padding-top:.2em;font-size:1.45rem}h2:first-of-type{border-top:none;margin-top:1em;padding-top:0}h3{margin:1.8em 0 .5em;font-size:1.15rem}h4{margin:1.4em 0 .4em;font-size:1rem}p{color:var(--fg);margin:.9em 0}.prose,.prose p,.prose li{color:var(--fg)}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin:.35em 0}.prose blockquote{border-left:3px solid var(--accent-2);background:var(--accent-soft);color:var(--fg-muted);border-radius:0 8px 8px 0;margin:1.2em 0;padding:.2em 1em}.prose blockquote p{margin:.6em 0}.prose hr{border:none;border-top:1px solid var(--border-soft);margin:2.5em 0}table{border-collapse:collapse;width:100%;margin:1.2em 0;font-size:.92em;display:block;overflow-x:auto}th,td{text-align:left;border-bottom:1px solid var(--border-soft);vertical-align:top;padding:8px 12px}thead th{color:var(--fg-muted);border-bottom:2px solid var(--border);white-space:nowrap;font-weight:600}tbody tr:hover{background:var(--bg-raised)}.heading-anchor{opacity:0;color:var(--fg-faint);margin-left:.4em;font-size:.85em;font-weight:400;text-decoration:none}.heading-anchor:hover{color:var(--accent);text-decoration:none}h1:hover .heading-anchor,h2:hover .heading-anchor,h3:hover .heading-anchor,h4:hover .heading-anchor{opacity:1}.badge{background:var(--accent-soft);color:var(--accent);letter-spacing:.02em;border-radius:999px;padding:.15em .55em;font-size:.72rem;font-weight:600;display:inline-block}.callout{border:1px solid var(--border-soft);background:var(--bg-raised);border-radius:var(--radius);margin:1.2em 0;padding:14px 16px}.callout.warn{border-color:color-mix(in srgb, var(--warn) 40%, var(--border-soft));background:color-mix(in srgb, var(--warn) 8%, var(--bg-raised))}::selection{background:var(--accent-soft)}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}
