:root,:root[data-theme=default]{--bg:#16161e;--bg-elev:#1a1b26;--bg-titlebar:#13131a;--fg:#c0caf5;--fg-muted:#565f89;--accent:#7aa2f7;--accent-2:#bb9af7;--ok:#9ece6a;--err:#f7768e;--warn:#e0af68;--glow:transparent;--selection:#33467c}:root[data-theme=crt]{--bg:#020a02;--bg-elev:#041004;--bg-titlebar:#030c03;--fg:#3f6;--fg-muted:#1d8c3d;--accent:#6f9;--accent-2:#9fb;--ok:#6f9;--err:#f55;--warn:#fc3;--glow:#33ff668c;--selection:#0d4d1f}:root[data-theme=amber]{--bg:#0d0800;--bg-elev:#150d02;--bg-titlebar:#100a01;--fg:#ffb000;--fg-muted:#8c6a1d;--accent:#ffc933;--accent-2:#fd6;--ok:#ffc933;--err:#f55;--warn:#fd6;--glow:#ffb00073;--selection:#4d3800}:root[data-theme=light]{--bg:#fafafa;--bg-elev:#fff;--bg-titlebar:#ececec;--fg:#1a1a2e;--fg-muted:#6b7280;--accent:#2563eb;--accent-2:#7c3aed;--ok:#16a34a;--err:#dc2626;--warn:#d97706;--glow:transparent;--selection:#bfdbfe;color-scheme:light}:root[data-theme=birthday]{--bg:#1a0f24;--bg-elev:#241432;--bg-titlebar:#150c1e;--fg:#ffe8ff;--fg-muted:#a173b5;--accent:#ff5fd2;--accent-2:#ffd24a;--ok:#5ff0c0;--err:#ff6b8a;--warn:#ffd24a;--glow:#ff5fd280;--selection:#5a2a6e}:root[data-theme=halloween]{--bg:#120a02;--bg-elev:#1c1006;--bg-titlebar:#0d0701;--fg:#ffcf99;--fg-muted:#8c5a2b;--accent:#ff7518;--accent-2:#a259ff;--ok:#9ece6a;--err:#ff4d4d;--warn:#ff7518;--glow:#ff751873;--selection:#4d2600}:root[data-theme=christmas]{--bg:#0a1410;--bg-elev:#0f1d16;--bg-titlebar:#081109;--fg:#eaf6ea;--fg-muted:#5c8c6a;--accent:#e63946;--accent-2:#2ecc71;--ok:#2ecc71;--err:#e63946;--warn:#f4c542;--glow:#2ecc7166;--selection:#143a24}:root[data-theme=newyear]{--bg:#0b0b10;--bg-elev:#14141c;--bg-titlebar:#08080c;--fg:#f4ead0;--fg-muted:#8a7d5a;--accent:gold;--accent-2:silver;--ok:gold;--err:#f55;--warn:#ffe680;--glow:#ffd70080;--selection:#4d4000}:root[data-theme=lunar]{--bg:#1a0606;--bg-elev:#260a0a;--bg-titlebar:#140404;--fg:#ffe9c7;--fg-muted:#b06a5a;--accent:#ffcf40;--accent-2:#ff5a4d;--ok:#ffcf40;--err:#ff5a4d;--warn:#ffcf40;--glow:#ffcf4080;--selection:#5a1414}:root[data-theme=valentine]{--bg:#1e0d14;--bg-elev:#2a121d;--bg-titlebar:#170a0f;--fg:#ffe3ee;--fg-muted:#b86f8c;--accent:#ff4d80;--accent-2:#ff9ec4;--ok:#7ef0b0;--err:#f56;--warn:#ffb3c9;--glow:#ff4d8073;--selection:#5a1f38}:root[data-theme=aureus]{--bg:#14100a;--bg-elev:#1f1810;--bg-titlebar:#0f0b06;--fg:#ffe9a8;--fg-muted:#9c7f42;--accent:#ffd24a;--accent-2:#fff1b0;--ok:#ffd24a;--err:#ff7a5c;--warn:#ffe08a;--glow:#ffd24a80;--selection:#4d3a12}:root[data-theme=crt] body,:root[data-theme=amber] body{text-shadow:0 0 6px var(--glow)}:root[data-theme=crt] body:after{content:"";pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,#00000038 0 1px,#0000 1px 3px);animation:.12s infinite crt-flicker;position:fixed;inset:0}@keyframes crt-flicker{0%{opacity:.97}50%{opacity:1}to{opacity:.98}}@media (prefers-reduced-motion:reduce){:root[data-theme=crt] body:after{animation:none}}@font-face{font-family:Cascadia Mono;src:url(/fonts/CascadiaMono-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cascadia Mono;src:url(/fonts/CascadiaMono-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{color-scheme:dark;--font-mono:"Cascadia Mono", "SFMono-Regular", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;--astro-code-foreground:var(--fg);--astro-code-background:transparent;--astro-code-token-comment:var(--fg-muted);--astro-code-token-keyword:var(--accent-2);--astro-code-token-string:var(--ok);--astro-code-token-string-expression:var(--ok);--astro-code-token-function:var(--accent);--astro-code-token-constant:var(--warn);--astro-code-token-parameter:var(--fg);--astro-code-token-punctuation:color-mix(in srgb, var(--fg-muted) 80%, var(--fg));--astro-code-token-link:var(--accent)}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--fg);font-family:var(--font-mono);margin:0;padding:0;font-size:15px;line-height:1.55}pre,code,kbd,samp{font-family:var(--font-mono)}::selection{background:var(--selection)}a,.term-link{color:var(--accent);text-decoration-color:var(--fg-muted)}a:hover,.term-link:hover{color:var(--accent-2)}.muted{color:var(--fg-muted)}.cmd-link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline dotted}.cmd-link:hover{color:var(--accent-2)}.line-error{color:var(--err)}.line-success{color:var(--ok)}.line-muted{color:var(--fg-muted)}.line-ascii{color:var(--accent-2);white-space:pre}.out-name{color:var(--accent-2);font-weight:600}.out-head{color:var(--accent);letter-spacing:.02em;font-weight:600}.out-head:before{content:"▸ ";color:var(--accent-2)}.out-rule{color:color-mix(in srgb, var(--fg-muted) 50%, transparent)}.kv-key{color:var(--fg-muted)}.badge,.chip{border:1px solid color-mix(in srgb, var(--fg-muted) 40%, transparent);color:var(--fg-muted);vertical-align:baseline;border-radius:999px;padding:.02em .5em;font-size:.76em;line-height:1.35;display:inline-block}.chip{color:var(--accent);opacity:.85;border:none;padding:0}.badge-star{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 45%, transparent);background:color-mix(in srgb, var(--warn) 12%, transparent);font-weight:600}.badge-cat{color:var(--accent-2);border-color:color-mix(in srgb, var(--accent-2) 45%, transparent)}.badge-tag{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.badge-intro{color:var(--fg-muted)}.badge-easy{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 50%, transparent)}.badge-medium{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 50%, transparent)}.badge-hard{color:var(--err);border-color:color-mix(in srgb, var(--err) 50%, transparent)}.badge-ok{color:var(--ok);border-color:color-mix(in srgb, var(--ok) 50%, transparent)}.badge-warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 50%, transparent)}.game-screen{margin:.3rem 0}.game-head{margin-bottom:.5rem}.game-grid,.game-2048{white-space:pre;margin:0;line-height:1;overflow-x:auto}.game-grid{color:color-mix(in srgb, var(--fg-muted) 55%, transparent)}.g-snake{color:var(--ok)}.g-head{color:var(--accent)}.g-food{color:var(--err)}.game-2048{line-height:1.15}.game-2048 .tile{text-align:center;border-radius:4px;width:5ch;margin-right:.4ch;font-weight:600;display:inline-block}.tile-0{color:color-mix(in srgb, var(--fg-muted) 45%, transparent);font-weight:400}.tile-2,.tile-4{color:var(--fg);background:color-mix(in srgb, var(--fg-muted) 18%, transparent)}.tile-8,.tile-16{color:var(--bg);background:var(--accent)}.tile-32,.tile-64{color:var(--bg);background:var(--accent-2)}.tile-128,.tile-256{color:var(--bg);background:var(--warn)}.tile-512,.tile-1024{color:var(--bg);background:var(--ok)}.tile-2048{color:var(--bg);background:var(--ok);box-shadow:0 0 10px var(--ok)}.boot-grub-sel{background:var(--accent);color:var(--bg)}.boot-count{color:var(--accent);font-weight:600}.boot-bar{color:var(--ok);letter-spacing:-1px}.boot-star{color:var(--accent-2);font-weight:600}.boot-caret{color:var(--accent);animation:1s step-end infinite boot-blink}@keyframes boot-blink{50%{opacity:0}}.boot-skip-hint{color:var(--fg-muted);opacity:.6;margin-bottom:.4rem;font-size:.8rem}.ne-dot-0{color:var(--err)}.ne-dot-1{color:var(--warn)}.ne-dot-2{color:var(--ok)}.ne-dot-3{color:var(--accent)}.ne-dot-4{color:var(--accent-2)}.ne-dot-5{color:var(--fg)}.ne-dot-6{color:var(--fg-muted)}.ne-dot-7{color:var(--accent)}.term-window{border:1px solid color-mix(in srgb, var(--fg-muted) 40%, transparent);background:var(--bg-elev);border-radius:8px;max-width:60rem;margin:2rem auto;overflow:hidden;box-shadow:0 12px 48px #00000080}.term-titlebar{background:var(--bg-titlebar);color:var(--fg-muted);border-bottom:1px solid color-mix(in srgb, var(--fg-muted) 25%, transparent);align-items:center;gap:.5rem;padding:.55rem .9rem;font-size:.8rem;display:flex}.term-titlebar .dots{gap:.4rem;display:flex}.term-titlebar .dot{border-radius:50%;width:.72rem;height:.72rem}.dot-r{background:#ff5f56}.dot-y{background:#ffbd2e}.dot-g{background:#27c93f}.term-titlebar .title{margin-inline:auto}.term-body{padding:1.1rem 1.3rem 1.6rem}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-footer{text-align:center;padding:1rem;font-size:.8rem}.site-footer nav{margin-bottom:.4rem;line-height:1.9}.site-footer nav a{white-space:nowrap}.skip-link{background:var(--bg-elev);color:var(--fg);z-index:10000;padding:.5rem 1rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}@media (width<=640px){.term-window{border-inline:none;border-radius:0;min-height:100dvh;margin:0}html,body{font-size:14px}}.arev{border:1px solid color-mix(in srgb, var(--fg-muted) 40%, transparent);background:var(--bg-elev);border-radius:8px;margin:1.5rem 0;padding:.9rem 1rem;font-size:.9rem}.arev-head{color:var(--fg-muted);margin-bottom:.7rem;font-size:.82rem}.arev-noise{color:var(--accent-2)}.arev-dump{overflow-x:auto}.arev-row{white-space:pre;gap:.9rem;line-height:1.7;display:flex}.arev-off{color:var(--fg-muted)}.arev-hex .arev-b{color:var(--err);padding:0 .15ch;transition:color .12s}.arev-hex .arev-b.revealed{color:var(--ok)}.arev-asc{color:var(--fg-muted);letter-spacing:.05ch}.arev-asc .arev-a.revealed{color:var(--ok);font-weight:700}.arev-controls{flex-wrap:wrap;align-items:center;gap:.8rem;margin-top:.9rem;display:flex}.arev-slider{min-width:8rem;accent-color:var(--accent);cursor:pointer;flex:12rem}.arev-count{color:var(--fg-muted);white-space:nowrap;font-size:.82rem}.arev button{font:inherit;cursor:pointer;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);background:0 0;border-radius:6px;padding:.2rem .6rem;font-size:.82rem}.arev button:hover{color:var(--accent-2);border-color:var(--accent-2)}.arev-callout{border-left:3px solid var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent);color:var(--fg);margin-top:.9rem;padding:.6rem .8rem;font-size:.86rem;line-height:1.6}.arev-callout[hidden]{display:none}.arev-hl{color:var(--ok);font-weight:700}@media (prefers-reduced-motion:reduce){.arev-hex .arev-b{transition:none}}.hm-grid{white-space:pre;letter-spacing:.04ch;margin:.15rem 0;line-height:1;display:block;overflow-x:auto}.hm{color:var(--fg-muted)}.hm-0{color:color-mix(in srgb, var(--fg-muted) 28%, transparent)}.hm-1{color:color-mix(in srgb, var(--ok) 40%, var(--bg))}.hm-2{color:color-mix(in srgb, var(--ok) 62%, var(--bg))}.hm-3{color:color-mix(in srgb, var(--ok) 82%, var(--bg))}.hm-4{color:var(--ok)}
