.h-family[data-astro-cid-34ap2c4q]{padding:.9rem var(--h-inset);border-top:1px solid var(--h-line);font-family:var(--h-font-ui);color:var(--h-ink-muted);margin:0;font-size:.78rem}.h-family[data-astro-cid-34ap2c4q] a[data-astro-cid-34ap2c4q]{color:var(--h-accent-ink);text-underline-offset:.18em;text-decoration:none}.h-family[data-astro-cid-34ap2c4q] a[data-astro-cid-34ap2c4q]:hover{text-decoration:underline}.h-family[data-astro-cid-34ap2c4q] a[data-astro-cid-34ap2c4q]:focus-visible{outline:2px solid var(--h-accent);outline-offset:3px}.site-footer[data-astro-cid-nns7i3if]{background:var(--h-ground);margin-top:5rem}.footer-rights[data-astro-cid-nns7i3if]{padding-top:1rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom));justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.footer-rights[data-astro-cid-nns7i3if] p[data-astro-cid-nns7i3if]{max-width:70ch;color:var(--h-ink-body);margin:0;font-size:.82rem}.footer-rights[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]{min-height:44px;color:var(--ink-muted);white-space:nowrap;align-items:center;font-size:.88rem;font-weight:650;text-decoration:none;display:inline-flex}.footer-rights[data-astro-cid-nns7i3if] a[data-astro-cid-nns7i3if]:hover{color:var(--accent);text-decoration:underline}@media (width<=680px){.footer-rights[data-astro-cid-nns7i3if]{flex-direction:column;gap:.5rem}}.h-plate[data-astro-cid-oemfqlgo]{border-radius:var(--plate-radius);box-shadow:var(--h-plate-shadow);line-height:0;text-decoration:none;display:inline-flex}.h-plate[data-astro-cid-oemfqlgo] svg[data-astro-cid-oemfqlgo]{display:block}a[data-astro-cid-oemfqlgo].h-plate:focus-visible{outline:2px solid var(--h-accent);outline-offset:3px}.h-nav[data-astro-cid-y3wesh5g]{padding:.85rem var(--h-inset);border-bottom:1px solid var(--h-line);background:var(--h-page);justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.h-nav-items[data-astro-cid-y3wesh5g]{font-family:var(--h-font-ui);flex-wrap:wrap;align-items:center;gap:1.25rem;font-size:.85rem;display:flex}.h-nav-link[data-astro-cid-y3wesh5g]{color:var(--h-ink-muted);text-underline-offset:.18em;text-decoration:none}.h-nav-link[data-astro-cid-y3wesh5g]:hover{color:var(--h-accent-ink);text-decoration:underline}.h-nav-link[data-astro-cid-y3wesh5g].current{color:var(--h-ink);font-weight:600}.h-nav-link[data-astro-cid-y3wesh5g]:focus-visible{outline:2px solid var(--h-accent);outline-offset:3px}.h-nav-version[data-astro-cid-y3wesh5g]{font-family:var(--h-font-mono);color:var(--h-ink-muted);font-size:.78rem}@media (width<=40rem){.h-nav[data-astro-cid-y3wesh5g]{flex-direction:column;align-items:flex-start;gap:.75rem}}.site-header[data-astro-cid-fzpbxy5g]{z-index:10;position:sticky;top:0}:root{color-scheme:light dark}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}:root{--h-page-base:light-dark(#fdfcf7,#1a1714);--h-ground-base:light-dark(#f4f1e8,#221d16);--h-page:var(--h-page-base);--h-ground:var(--h-ground-base);--h-tint-strength:5%;--h-ink:light-dark(#3a2c1f,#efe7d6);--h-ink-body:light-dark(#3f4652,#b9ad96);--h-ink-muted:light-dark(#606773,#b9ad96);--h-ink-faint:light-dark(#94a3b8,#8a7f6a);--h-accent:light-dark(#b74d2d,#e0744a);--h-accent-deep:light-dark(#a8401f,#c85122);--h-accent-ink:var(--h-accent-deep);--h-line:light-dark(#d6d3ca,#3a342a);--h-line-soft:light-dark(#e2ded3,#4a4234);--h-code-bg:light-dark(#242019,#100e0c);--h-code-ink:#efe7d6;--h-surface-light:#f5e2d8;--h-surface-dark:#3d2c21;--h-inset:clamp(1rem, 4vw, 2.25rem);--h-plate-frame:light-dark(var(--h-ink),#efe7d6);--h-plate-cell:light-dark(var(--h-page),#242019);--h-plate-shadow:var(--h-lift-1);--h-project-code:#a93800;--h-project-emu:#0066af;--h-project-asm:#007742;--h-project-cat:#8000e0;--h-project-build:#865900;--h-project-debug:#b9003c;--h-project-isa:#00717b;--h-project-forge:#a4009e;--h-project-play:#5b6c00;--h-project-format:#007465;--h-project-studio:#482aff;--h-font-ui:"Nebula Sans", ui-sans-serif, system-ui, -apple-system, sans-serif;--h-font-read:Literata, Georgia, "Times New Roman", serif;--h-font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--h-text-display:4rem;--h-lh-display:calc(68 / 64);--h-tr-display:-.025em;--h-text-h1:3rem;--h-lh-h1:calc(56 / 48);--h-tr-h1:-.02em;--h-text-h2:2.5rem;--h-lh-h2:calc(48 / 40);--h-tr-h2:-.02em;--h-text-h3:2rem;--h-lh-h3:calc(40 / 32);--h-tr-h3:-.015em;--h-text-h4:1.5rem;--h-lh-h4:calc(32 / 24);--h-tr-h4:-.01em;--h-text-lead:1.5rem;--h-lh-lead:calc(36 / 24);--h-text-body:1.25rem;--h-lh-body:calc(32 / 20);--h-text-small:1rem;--h-lh-small:calc(24 / 16);--h-text-micro:.875rem;--h-lh-micro:calc(20 / 14);--h-tr-micro:.01em;--h-weight-major:700;--h-weight-minor:600;--h-space-1:.25rem;--h-space-2:.5rem;--h-space-3:.75rem;--h-space-4:1rem;--h-space-6:1.5rem;--h-space-8:2rem;--h-space-12:3rem;--h-space-16:4rem;--h-space-24:6rem;--h-measure:65ch;--h-lift-1:0 1px 2px light-dark(#3a2c1f33,#0000), 0 3px 8px light-dark(#3a2c1f1a,#0000), 0 0 20px -6px light-dark(#0000,#efe7d626);--h-lift-2:0 2px 4px light-dark(#3a2c1f38,#0000), 0 8px 24px light-dark(#3a2c1f24,#0000), 0 0 32px -8px light-dark(#0000,#efe7d626);--h-rise:.12s;--h-decay:.42s;--h-ease:cubic-bezier(.2, 0, .1, 1)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--h-tint-strength:20%;--h-accent-ink:var(--h-accent)}}:root[data-theme=dark]{--h-tint-strength:20%;--h-accent-ink:var(--h-accent)}:root[data-tint=code]{--h-tint:var(--h-project-code)}:root[data-tint=emu]{--h-tint:var(--h-project-emu)}:root[data-tint=asm]{--h-tint:var(--h-project-asm)}:root[data-tint=cat]{--h-tint:var(--h-project-cat)}:root[data-tint=build]{--h-tint:var(--h-project-build)}:root[data-tint=debug]{--h-tint:var(--h-project-debug)}:root[data-tint=isa]{--h-tint:var(--h-project-isa)}:root[data-tint=forge]{--h-tint:var(--h-project-forge)}:root[data-tint=play]{--h-tint:var(--h-project-play)}:root[data-tint=format]{--h-tint:var(--h-project-format)}:root[data-tint=studio]{--h-tint:var(--h-project-studio)}:root[data-tint]{--h-page:color-mix(in oklab, var(--h-tint) var(--h-tint-strength), var(--h-page-base));--h-ground:color-mix(in oklab, var(--h-tint) var(--h-tint-strength), var(--h-ground-base))}@media (prefers-reduced-motion:reduce){:root{--h-rise:0s;--h-decay:0s}}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nebula-sans-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nebula-sans-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nebula-sans-400-greek.woff2)format("woff2");unicode-range:U+370-3FF}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nebula-sans-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/nebula-sans-600-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/nebula-sans-600-latin-ext.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/nebula-sans-600-greek.woff2)format("woff2");unicode-range:U+370-3FF}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/nebula-sans-600-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nebula-sans-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nebula-sans-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nebula-sans-700-greek.woff2)format("woff2");unicode-range:U+370-3FF}@font-face{font-family:Nebula Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nebula-sans-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nebula Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/nebula-sans-400-italic-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nebula Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/nebula-sans-400-italic-latin-ext.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nebula Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/nebula-sans-400-italic-greek.woff2)format("woff2");unicode-range:U+370-3FF}@font-face{font-family:Nebula Sans;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/nebula-sans-400-italic-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/literata-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/literata-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/literata-400-greek.woff2)format("woff2");unicode-range:U+370-3FF}@font-face{font-family:Literata;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/literata-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/literata-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/literata-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/literata-700-greek.woff2)format("woff2");unicode-range:U+370-3FF}@font-face{font-family:Literata;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/literata-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Literata;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/literata-400-italic-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Literata;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/literata-400-italic-latin-ext.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Literata;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/literata-400-italic-greek.woff2)format("woff2");unicode-range:U+370-3FF}@font-face{font-family:Literata;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/literata-400-italic-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-greek.woff2)format("woff2");unicode-range:U+370-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-400-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2AF,U+304,U+308,U+329,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-greek.woff2)format("woff2");unicode-range:U+370-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-700-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}:root{color-scheme:light dark;--ink:var(--h-ink);--ink-muted:var(--h-ink-muted);--ink-soft:var(--h-ink-muted);--paper:var(--h-page);--paper-strong:var(--h-page);--panel:var(--h-ground);--line:var(--h-line);--line-strong:var(--h-line-soft);--accent:var(--h-accent);--accent-strong:var(--h-accent-ink);--accent-soft:color-mix(in oklab, var(--h-accent) 5%, var(--h-page));--signal:var(--h-accent-ink);--code-bg:var(--h-code-bg);--code-ink:var(--h-code-ink);--shadow-sm:0 1px 2px #3a2c1f14;--shadow-md:0 16px 40px #3a2c1f1a;--radius:8px;--container:1180px;--h-inset:max(1rem, calc((100vw - var(--container)) / 2));--font-sans:var(--h-font-ui);--font-read:var(--h-font-read);--font-mono:var(--h-font-mono);--ink-on-accent:#fff}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ink-on-accent:var(--h-page)}}:root[data-theme=dark]{--ink-on-accent:var(--h-page)}*{box-sizing:border-box}html{background:var(--paper);min-width:320px;color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;scroll-behavior:smooth;font-size:16px}body{margin:0}body::selection{background:var(--accent-soft)}a{color:var(--accent-strong);text-underline-offset:.18em}a:hover{color:var(--signal)}button,a{touch-action:manipulation}:focus-visible{outline:2px solid var(--h-ink);outline-offset:3px}h1,h2,h3{text-wrap:balance}p{color:var(--ink-muted)}code{font-family:var(--font-mono)}pre{border-radius:var(--radius);background:var(--code-bg);color:var(--code-ink);box-shadow:var(--shadow-sm);padding:1rem;overflow-x:auto}pre code{color:inherit}table{border-collapse:collapse;width:100%;font-size:.94rem}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:.75rem .65rem}th{color:var(--ink);white-space:nowrap;font-weight:650}.container{width:min(100% - 2rem, var(--container));margin-inline:auto}.eyebrow{color:var(--accent-strong);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .8rem;font-size:.78rem;font-weight:750}.pill{background:var(--accent-soft);min-height:2rem;color:var(--accent-strong);border-radius:999px;align-items:center;padding:0 .75rem;font-size:.86rem;font-weight:650;display:inline-flex}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;display:grid}.stat{border-radius:var(--radius);background:var(--panel);min-height:108px;box-shadow:inset 0 0 0 1px var(--line), var(--shadow-sm);padding:1rem}.stat strong{color:var(--ink);font-variant-numeric:tabular-nums;font-size:1.75rem;line-height:1.1;display:block}.stat span{color:var(--ink-muted);margin-top:.35rem;font-size:.92rem;display:block}@media (width<=760px){th,td{padding:.65rem .45rem}.container{width:min(100% - 1.25rem, var(--container))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
