:root{--color-deep:#0a1f44;--color-deep-2:#102a56;--color-accent:#2563eb;--color-accent-hover:#1d4ed8;--color-accent-light:#60a5fa;--color-accent-soft:#93c5fd;--color-ink:#0b1220;--color-muted:#4b5563;--color-line:#d9dee7;--color-bg:#fff;--color-bg-alt:#f3f5f9;--color-ok:#15803d;--color-ok-light:#4ade80;--color-danger:#f87171;--color-footer:#06142e;--color-on-deep:#fff;--color-on-deep-muted:#c7d2e5;--color-on-deep-subtle:#93a4c3;--color-on-deep-line:#ffffff1f;--color-grid:#60a5fa14;--color-diagram-bg:#102a5699;--color-diagram-line:#60a5fa4d;--color-layer:#2563eb24;--color-sample-bg:#fef3c7;--color-sample-fg:#92400e;--text-xs:12px;--text-sm:14px;--text-base:16px;--text-md:18px;--text-lg:20px;--text-xl:24px;--text-2xl:28px;--text-3xl:34px;--text-4xl:42px;--text-5xl:58px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-14:56px;--space-18:72px;--space-24:96px;--radius:2px;--max-width:1200px;--gutter:32px;--tap:44px;--header-height:68px}@media (width<=560px){:root{--gutter:16px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + var(--space-4))}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-ink);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}img,svg{max-width:100%;height:auto}a{color:var(--color-accent)}h1,h2,h3{letter-spacing:-.02em;text-wrap:balance;margin:0;font-weight:600;line-height:1.15}p{margin:0}:focus-visible{outline:3px solid var(--color-accent-light);outline-offset:2px}.wrap{max-width:var(--max-width);padding-inline:var(--gutter);margin-inline:auto}.label{font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);font-weight:500}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);padding:var(--space-3) var(--space-5);border-radius:var(--radius);font-size:var(--text-base);border:1px solid #0000;font-weight:500;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn-primary{background:var(--color-accent);color:var(--color-on-deep)}.btn-primary:hover{background:var(--color-accent-hover)}.btn-outline-light{border-color:var(--color-on-deep-line);color:var(--color-on-deep)}.btn-outline-light:hover{border-color:var(--color-on-deep)}.btn-outline-dark{border-color:var(--color-ink);color:var(--color-ink)}.btn-outline-dark:hover{background:var(--color-ink);color:var(--color-bg)}.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}.skip-link{left:var(--space-4);z-index:100;padding:var(--space-3) var(--space-4);background:var(--color-bg);color:var(--color-ink);position:absolute;top:-100px}.skip-link:focus{top:var(--space-4)}.grid-bg{background:var(--color-deep);color:var(--color-on-deep);position:relative;overflow:hidden}.grid-bg:before{content:"";background-image:linear-gradient(var(--color-grid) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid) 1px, transparent 1px);pointer-events:none;background-size:40px 40px;position:absolute;inset:0}.grid-bg>*{position:relative}.grid-bg .label{color:var(--color-accent-light)}.table-scroll{overflow-x:auto}.prose{min-width:0;max-width:70ch;font-size:var(--text-md);overflow-wrap:break-word}.prose>*+*{margin-top:var(--space-4)}.prose h2{margin-top:var(--space-12);font-size:var(--text-2xl)}.prose h3{margin-top:var(--space-10);font-size:var(--text-xl)}.prose ul,.prose ol{padding-left:var(--space-6)}.prose li+li{margin-top:var(--space-2)}.prose code{font-family:var(--font-mono);font-size:.9em}.prose table{border-collapse:collapse;max-width:100%;font-size:var(--text-base);display:block;overflow-x:auto}.prose th,.prose td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-line);text-align:left;vertical-align:top;overflow-wrap:normal}.prose thead th{background:var(--color-bg-alt);font-weight:600}.illus{padding:var(--space-5);border:1px solid var(--color-diagram-line);background:var(--color-deep);color:var(--color-on-deep);margin:0}.illus svg{width:100%;height:auto;font-family:var(--font-mono);font-size:11px;display:block;overflow:visible}.illus figcaption{margin-top:var(--space-3);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-on-deep-subtle)}.illus .i-box{fill:var(--color-deep);stroke:var(--color-accent-light)}.illus .i-cell{fill:var(--color-deep-2);stroke:var(--color-accent)}.illus .i-zone{fill:var(--color-layer);stroke:var(--color-accent)}.illus .i-line{fill:none;stroke:var(--color-accent-light)}.illus .i-dash{fill:none;stroke:var(--color-accent-light);stroke-dasharray:3 3}.illus .i-ghost{fill:none;stroke:var(--color-on-deep-subtle);stroke-dasharray:3 3}.illus .i-text{fill:var(--color-on-deep)}.illus .i-label{fill:var(--color-accent-soft);letter-spacing:1px;font-size:10px}.illus .i-muted{fill:var(--color-on-deep-subtle);letter-spacing:1px;font-size:10px}.illus .i-fill{fill:var(--color-accent)}.illus .i-ok{fill:var(--color-ok-light)}.illus .i-ok-stroke{fill:none;stroke:var(--color-ok-light)}.illus .i-danger{fill:var(--color-danger)}.illus .i-danger-stroke{fill:none;stroke:var(--color-danger)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}.logo[data-astro-cid-f7espo7c]{align-items:center;gap:var(--space-2);font-size:var(--text-lg);font-weight:600;display:inline-flex}.mark[data-astro-cid-f7espo7c] rect[data-astro-cid-f7espo7c],.mark[data-astro-cid-f7espo7c] path[data-astro-cid-f7espo7c]{stroke:var(--color-accent-light)}.word[data-astro-cid-f7espo7c]{color:var(--color-on-deep)}.word[data-astro-cid-f7espo7c] b[data-astro-cid-f7espo7c]{color:var(--color-accent-light);font-weight:600}.on-light[data-astro-cid-f7espo7c] .word[data-astro-cid-f7espo7c]{color:var(--color-ink)}.on-light[data-astro-cid-f7espo7c] .word[data-astro-cid-f7espo7c] b[data-astro-cid-f7espo7c],.on-light[data-astro-cid-f7espo7c] .mark[data-astro-cid-f7espo7c] rect[data-astro-cid-f7espo7c],.on-light[data-astro-cid-f7espo7c] .mark[data-astro-cid-f7espo7c] path[data-astro-cid-f7espo7c]{color:var(--color-accent);stroke:var(--color-accent)}.site-header[data-astro-cid-nen7h5rs]{z-index:20;background:var(--color-deep);border-bottom:1px solid var(--color-on-deep-line);position:sticky;top:0}.bar[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-4);min-height:var(--header-height);display:flex}.home[data-astro-cid-nen7h5rs]{min-height:var(--tap);align-items:center;text-decoration:none;display:inline-flex}.desktop-nav[data-astro-cid-nen7h5rs]{margin-left:auto}.desktop-nav[data-astro-cid-nen7h5rs]>ul[data-astro-cid-nen7h5rs]{align-items:center;gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.nav-link[data-astro-cid-nen7h5rs],.dropdown[data-astro-cid-nen7h5rs]>summary[data-astro-cid-nen7h5rs]{min-height:var(--tap);padding:0 var(--space-3);color:var(--color-on-deep-muted);font-size:var(--text-base);cursor:pointer;align-items:center;text-decoration:none;display:flex}.nav-link[data-astro-cid-nen7h5rs]:hover,.nav-link[data-astro-cid-nen7h5rs][aria-current=page],.dropdown[data-astro-cid-nen7h5rs]>summary[data-astro-cid-nen7h5rs]:hover{color:var(--color-on-deep)}.dropdown[data-astro-cid-nen7h5rs]{position:relative}.dropdown[data-astro-cid-nen7h5rs]>summary[data-astro-cid-nen7h5rs]{list-style:none}.dropdown[data-astro-cid-nen7h5rs]>summary[data-astro-cid-nen7h5rs]::-webkit-details-marker{display:none}.dropdown[data-astro-cid-nen7h5rs]>summary[data-astro-cid-nen7h5rs]:after{content:"▾";margin-left:var(--space-1)}.menu[data-astro-cid-nen7h5rs]{width:min(520px, calc(100vw - 2 * var(--gutter)));margin-top:var(--space-2);padding:var(--space-5);background:var(--color-deep-2);border:1px solid var(--color-on-deep-line);position:absolute;top:100%;left:0}.align-end[data-astro-cid-nen7h5rs]>.menu[data-astro-cid-nen7h5rs]{left:auto;right:0}.groups[data-astro-cid-nen7h5rs]{gap:var(--space-5) var(--space-6);grid-template-columns:1fr 1fr;display:grid}.group-label[data-astro-cid-nen7h5rs]{margin-bottom:var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-on-deep-subtle)}.menu[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{margin:0;padding:0;list-style:none}.menu[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{min-height:36px;color:var(--color-on-deep);align-items:center;text-decoration:none;display:flex}.menu[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]:hover,.menu[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs][aria-current=page]{color:var(--color-accent-light)}.all[data-astro-cid-nen7h5rs]{min-height:var(--tap);margin-top:var(--space-4);color:var(--color-accent-light);align-items:center;display:inline-flex}.mobile-menu[data-astro-cid-nen7h5rs]{display:none}@media (width<=960px){.desktop-nav[data-astro-cid-nen7h5rs],.book[data-astro-cid-nen7h5rs]{display:none}.mobile-menu[data-astro-cid-nen7h5rs]{margin-left:auto;display:block}.mobile-menu[data-astro-cid-nen7h5rs]>summary[data-astro-cid-nen7h5rs]{min-height:var(--tap);padding:0 var(--space-4);border:1px solid var(--color-on-deep-line);color:var(--color-on-deep);cursor:pointer;align-items:center;list-style:none;display:flex}.mobile-menu[data-astro-cid-nen7h5rs]>summary[data-astro-cid-nen7h5rs]::-webkit-details-marker{display:none}.mobile-panel[data-astro-cid-nen7h5rs]{max-height:calc(100vh - var(--header-height));padding:var(--space-4) var(--gutter) var(--space-6);background:var(--color-deep-2);border-bottom:1px solid var(--color-on-deep-line);position:absolute;top:100%;left:0;right:0;overflow-y:auto}.mobile-panel[data-astro-cid-nen7h5rs] .group-label[data-astro-cid-nen7h5rs]{margin-top:var(--space-4)}.mobile-panel[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs]{margin:0 0 var(--space-4);padding:0;list-style:none}.mobile-panel[data-astro-cid-nen7h5rs] ul[data-astro-cid-nen7h5rs] a[data-astro-cid-nen7h5rs]{min-height:var(--tap);color:var(--color-on-deep);border-bottom:1px solid var(--color-on-deep-line);align-items:center;text-decoration:none;display:flex}}.site-footer[data-astro-cid-jo6i4kqk]{padding-block:var(--space-14) var(--space-8);background:var(--color-footer);color:var(--color-on-deep-subtle);font-size:var(--text-sm)}.brand[data-astro-cid-jo6i4kqk]{gap:var(--space-4);max-width:420px;margin-bottom:var(--space-12);display:grid}.cols[data-astro-cid-jo6i4kqk]{gap:var(--space-8);grid-template-columns:repeat(4,1fr);display:grid}.head[data-astro-cid-jo6i4kqk]{margin-bottom:var(--space-4);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-on-deep);font-weight:500}ul[data-astro-cid-jo6i4kqk]{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}a[data-astro-cid-jo6i4kqk]{min-height:32px;color:var(--color-on-deep-subtle);align-items:center;display:inline-flex}a[data-astro-cid-jo6i4kqk]:hover{color:var(--color-on-deep)}.bottom[data-astro-cid-jo6i4kqk]{justify-content:space-between;gap:var(--space-3);margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--color-on-deep-line);font-family:var(--font-mono);font-size:var(--text-xs);flex-wrap:wrap;display:flex}@media (width<=960px){.cols[data-astro-cid-jo6i4kqk]{grid-template-columns:1fr 1fr}}.cta[data-astro-cid-amjew3wo]{padding-block:var(--space-24)}.inner[data-astro-cid-amjew3wo]{gap:var(--space-12);grid-template-columns:1.4fr 1fr;align-items:center;display:grid}h2[data-astro-cid-amjew3wo]{margin-top:var(--space-3);font-size:clamp(var(--text-2xl), 3.4vw, var(--text-4xl))}.text[data-astro-cid-amjew3wo]{margin-top:var(--space-4);color:var(--color-on-deep-muted);font-size:var(--text-md)}.actions[data-astro-cid-amjew3wo]{gap:var(--space-3);justify-items:start;display:grid}.note[data-astro-cid-amjew3wo]{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-on-deep-subtle)}.note[data-astro-cid-amjew3wo] a[data-astro-cid-amjew3wo]{color:var(--color-on-deep)}@media (width<=960px){.cta[data-astro-cid-amjew3wo]{padding-block:var(--space-18)}.inner[data-astro-cid-amjew3wo]{gap:var(--space-8);grid-template-columns:1fr}}
