:root{--paper:#f4f3ef;--surface:#fff;--surface-sunk:#faf9f6;--ink:#15120d;--ink-2:#3e4349;--muted:#6b675f;--rule:color-mix(in srgb, var(--ink) 18%, var(--paper));--rule-strong:color-mix(in srgb, var(--ink) 34%, var(--paper));--grid:color-mix(in srgb, var(--ink) 14%, var(--paper));--accent:#004bab;--accent-ink:#004bab;--accent-soft:color-mix(in srgb, var(--accent) 9%, var(--paper));--accent-contrast:#fff;--ok:#1a7a44;--ok-soft:color-mix(in srgb, var(--ok) 10%, var(--paper));--warn:#bf2230;--warn-soft:color-mix(in srgb, var(--warn) 10%, var(--paper));--diagram-ink:var(--ink);--shadow-lift:0 6px 18px color-mix(in srgb, var(--ink) 10%, transparent);--sans:ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--serif:Georgia, "Times New Roman", serif;--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--step-display:clamp(2.25rem, 1.4rem + 3.6vw, 3.9rem);--step-h2:clamp(1.5rem, 1.25rem + 1.05vw, 1.95rem);--step-h3:1.25rem;--text-body:1.0625rem;--text-small:.875rem;--text-label:.72rem;--measure:68ch;--max-width:1200px;--nav-height:60px;--radius:3px;--radius-sm:3px;--ease:cubic-bezier(.4, 0, .2, 1);color-scheme:light}[data-theme=dark]{--paper:#1b1916;--surface:#221f1b;--surface-sunk:#282420;--ink:#e6e2d8;--ink-2:#ccc7bc;--muted:#a39d90;--rule:color-mix(in srgb, var(--ink) 22%, var(--paper));--rule-strong:color-mix(in srgb, var(--ink) 40%, var(--paper));--grid:color-mix(in srgb, var(--ink) 16%, var(--paper));--accent:#6ea8ff;--accent-ink:#6ea8ff;--accent-soft:color-mix(in srgb, var(--accent) 14%, var(--paper));--accent-contrast:#1b1916;--ok:#4aa870;--ok-soft:color-mix(in srgb, var(--ok) 16%, var(--paper));--warn:#e25a64;--warn-soft:color-mix(in srgb, var(--warn) 16%, var(--paper));--diagram-ink:#fff;--shadow-lift:0 6px 18px #0006;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-height) + 1.5rem)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background:var(--paper);color:var(--ink-2);font-family:var(--serif);font-size:var(--text-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6}nav,button,input,select,.chip,.kicker,.sec-note,.skip-link{font-family:var(--sans)}img,svg,video{max-width:100%;height:auto}h1,h2,h3,h4{font-family:var(--serif);letter-spacing:-.015em;color:var(--ink);text-wrap:balance;font-weight:600;line-height:1.15}h1{font-size:var(--step-display);letter-spacing:-.022em;line-height:1.03}h2{font-size:var(--step-h2)}h3{font-size:var(--step-h3)}h1 em,h2 em{color:var(--accent);font-style:italic}p{margin:0 0 1.1em}a{color:var(--accent-ink);text-underline-offset:.18em;transition:color .15s var(--ease);text-decoration-thickness:1px}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}code,kbd,pre{font-family:var(--mono);font-size:.9em}:not(pre)>code{background:var(--accent-soft);color:var(--accent-ink);border-radius:4px;padding:.12em .36em;font-size:.86em}pre{background:var(--surface-sunk);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:1rem 1.1rem;line-height:1.55;overflow-x:auto}hr{border:none;border-top:1px solid var(--rule);margin:2.5rem 0}blockquote{border-left:2px solid var(--accent);color:var(--ink-2);margin:1.5rem 0;padding-left:1.1rem;font-style:italic}.wrap{max-width:var(--max-width);margin:0 auto;padding:0 1.5rem}.prose{max-width:var(--measure)}.prose>.bleed{max-width:none}.section{padding:3.5rem 0 .5rem}.sec-head{align-items:baseline;gap:.9rem;margin-bottom:1.4rem;display:flex}.section+.section .sec-head{margin-top:1rem}.sec-head .sec-num{font-family:var(--mono);font-size:var(--text-small);color:var(--accent);font-weight:600}.sec-head h2{margin:0}.sec-head .sec-note{font-family:var(--sans);font-size:var(--text-small);color:var(--muted);text-align:right;max-width:38ch;margin:0 0 0 auto}.kicker{font-family:var(--sans);font-size:var(--text-label);letter-spacing:.01em;color:var(--accent);margin:0 0 .85rem}.chip{font-family:var(--mono);font-size:var(--text-label);color:var(--ink-2);background:var(--surface);border:1px solid var(--rule-strong);border-radius:var(--radius-sm);white-space:nowrap;padding:.32rem .65rem;display:inline-block}.chip b{color:var(--accent-ink);font-weight:600}.chip--ok{color:var(--ok);background:var(--ok-soft);border-color:currentColor}.chip--warn{color:var(--warn);background:var(--warn-soft);border-color:currentColor}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius);color:inherit;transition:transform .12s var(--ease), box-shadow .12s var(--ease), border-color .12s var(--ease);padding:1.35rem;text-decoration:none;display:block}a.card:hover,a.card:focus-visible{box-shadow:var(--shadow-lift);border-color:var(--accent);transform:translateY(-3px)}.dotfield{background:linear-gradient(0deg, var(--paper) 2%, #0000 45%), radial-gradient(var(--grid) 1px, transparent 1px), var(--paper);background-size:auto,32px 32px,auto;position:relative}.dotfield>*{position:relative}.mono{font-family:var(--mono);font-size:var(--text-small);color:var(--muted)}.lede{color:var(--ink-2);max-width:64ch;font-size:1.09rem}.lede b{color:var(--ink);font-weight:600}.skip-link{background:var(--accent);color:var(--accent-contrast);z-index:100;border-radius:0 0 var(--radius-sm) 0;padding:.6rem 1rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.nav[data-astro-cid-wpvy4v7s]{z-index:50;height:var(--nav-height);border-bottom:1px solid var(--rule);background:color-mix(in srgb, var(--paper) 88%, transparent);backdrop-filter:saturate(160%)blur(10px);align-items:center;display:flex;position:sticky;top:0}.nav-inner[data-astro-cid-wpvy4v7s]{justify-content:space-between;align-items:center;gap:1rem;width:100%;display:flex}.brand[data-astro-cid-wpvy4v7s]{align-items:center;text-decoration:none;display:inline-flex}.brand-logo[data-astro-cid-wpvy4v7s]{width:auto;height:30px;display:block}.brand-logo-dark[data-astro-cid-wpvy4v7s],[data-theme=dark] .brand-logo-light[data-astro-cid-wpvy4v7s]{display:none}[data-theme=dark] .brand-logo-dark[data-astro-cid-wpvy4v7s]{display:block}.nav-right[data-astro-cid-wpvy4v7s]{align-items:center;gap:.35rem;display:flex}.nav-links[data-astro-cid-wpvy4v7s]{align-items:center;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}.nav-link[data-astro-cid-wpvy4v7s]{border-radius:var(--radius-sm);font-size:var(--text-small);color:var(--ink-2);white-space:nowrap;padding:.4rem .7rem;font-weight:500;text-decoration:none;display:block}.nav-link[data-astro-cid-wpvy4v7s]:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 5%, transparent)}.nav-link[data-astro-cid-wpvy4v7s].active{color:var(--accent-ink);background:var(--accent-soft)}.icon-btn[data-astro-cid-wpvy4v7s]{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--ink-2);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn[data-astro-cid-wpvy4v7s]:hover{color:var(--ink);border-color:var(--rule)}[data-theme=light] .icon-moon[data-astro-cid-wpvy4v7s],[data-theme=dark] .icon-sun[data-astro-cid-wpvy4v7s]{display:none}.nav-toggle[data-astro-cid-wpvy4v7s]{flex-direction:column;gap:4px;display:none}.nav-toggle[data-astro-cid-wpvy4v7s] span[data-astro-cid-wpvy4v7s]{background:currentColor;width:16px;height:1.5px;display:block}@media (width<=820px){.nav-toggle[data-astro-cid-wpvy4v7s]{display:inline-flex}.nav-links[data-astro-cid-wpvy4v7s]{top:var(--nav-height);border-bottom:1px solid var(--rule);background:var(--paper);flex-direction:column;align-items:stretch;gap:0;padding:.5rem;display:none;position:absolute;left:0;right:0}.nav-links[data-astro-cid-wpvy4v7s].open{display:flex}.nav-link[data-astro-cid-wpvy4v7s]{padding:.7rem}}main[data-astro-cid-hkbrpulz]{min-height:calc(100vh - var(--nav-height) - 12rem)}.site-footer[data-astro-cid-hkbrpulz]{border-top:1px solid var(--rule);margin-top:6rem;padding:1.75rem 0 2.5rem}.footer-inner[data-astro-cid-hkbrpulz]{font-size:var(--text-small);color:var(--muted);flex-wrap:wrap;gap:.5rem 1.75rem;display:flex}.footer-inner[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{color:var(--muted);text-decoration:none}.footer-inner[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:hover{color:var(--accent);text-decoration:underline}
