@layer reset,base,layout,components,utilities;@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400.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:ibm plex mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-600.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:ibm plex sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400.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:ibm plex sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600.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}:root{color-scheme:dark;--bg:#0b0d12;--bg-2:#10131a;--bg-3:#161a23;--line:#222736;--text:#e9ebf1;--muted:#8f97aa;--faint:#7a839b;--accent:#ff7a3d;--accent-ink:#1a0d06;--link:#8ed0ff;--prompt:#7ee787;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--wrap:1120px;--gutter:clamp(16px, 4vw, 32px);--radius:8px;--step--1:clamp(0.85rem, 0.82rem + 0.15vw, 0.95rem);--step-0:clamp(1rem, 0.96rem + 0.25vw, 1.125rem);--step-1:clamp(1.2rem, 1.1rem + 0.5vw, 1.5rem);--step-2:clamp(1.5rem, 1.3rem + 1vw, 2.1rem);--step-3:clamp(2rem, 1.6rem + 2vw, 3.2rem);--step-4:clamp(2.6rem, 1.8rem + 4vw, 5rem);--space-s:clamp(12px, 2vw, 20px);--space-m:clamp(24px, 4vw, 40px);--space-l:clamp(48px, 8vw, 96px)}@layer reset{*,*::before,*::after{box-sizing:border-box}body{margin:0}img,svg,video{max-width:100%;height:auto;display:block}h1,h2,h3,p,ul,ol,dl,pre,figure{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}button{font:inherit}}@layer base{html{scroll-behavior:smooth}body{min-height:100dvh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font-family:var(--sans);font-size:var(--step-0);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3{line-height:1.1;letter-spacing:-.02em;font-weight:600;text-wrap:balance}h1{font-size:var(--step-3)}h2{font-size:var(--step-2)}h3{font-size:var(--step-1)}p{text-wrap:pretty}a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:color-mix(in srgb,var(--link) 50%,transparent)}a:hover{text-decoration-color:initial}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}::selection{background:var(--text);color:var(--bg)}code,kbd,pre,.mono{font-family:var(--mono);font-feature-settings:"liga" 0}@view-transition{navigation: auto; }}@layer layout{main{flex:1}.wrap{width:min(var(--wrap),100% - 2 * var(--gutter));margin-inline:auto}.narrow{width:min(72ch,100%)}.section{padding-block:var(--space-l)}.section+.section{border-top:1px solid var(--line)}.stack>*+*{margin-top:var(--space-s)}.grid-3{display:grid;gap:var(--space-m);grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.split{display:grid;gap:var(--space-m);grid-template-columns:1fr;align-items:center}@media(min-width:900px){.split{grid-template-columns:minmax(0,5fr)minmax(0,6fr)}}.skip{text-decoration:none;position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-ink);padding:8px 12px;z-index:100}.skip:focus{left:8px;top:8px}}@layer components{.site-header{position:sticky;top:0;z-index:10;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);font-family:var(--mono);font-size:var(--step--1)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;flex-wrap:wrap}.brand{display:inline-flex;align-items:center;gap:10px;color:var(--text);text-decoration:none}.brand .host{color:var(--prompt)}.brand .name{font-weight:600;letter-spacing:.02em}.site-nav{display:flex;gap:2px;flex-wrap:wrap}.site-nav a{color:var(--muted);padding:6px 10px;border-radius:4px;text-decoration:none}.site-nav a::before{content:"~/";color:var(--faint)}.site-nav a:hover{color:var(--text);background:var(--bg-3);text-decoration:none}.site-nav a[aria-current=page]{color:var(--text)}.site-nav a[aria-current=page]::before{color:var(--accent)}.hero{position:relative;isolation:isolate;padding-block:var(--space-l);overflow:hidden}.hero-bg{position:absolute;inset:0;z-index:-1}.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center 70%;opacity:.85}.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 35%,transparent) 14%,color-mix(in srgb,var(--bg) 55%,transparent) 60%,var(--bg) 100%),linear-gradient(90deg,color-mix(in srgb,var(--bg) 85%,transparent) 0%,color-mix(in srgb,var(--bg) 40%,transparent) 45%,transparent 75%)}.hero h1{font-size:var(--step-3);max-width:19ch}.game-hero{min-height:min(60vh,560px);display:grid;align-items:end}.game-hero h1{font-size:var(--step-4)}.hero .lede{font-size:var(--step-1)}.hero-min{padding-block:var(--space-m)var(--space-s)}.eyebrow{font-family:var(--mono);font-size:var(--step--1);color:var(--muted);margin-bottom:var(--space-s)}.eyebrow::before{content:"# ";color:var(--faint)}.lede{color:var(--muted);max-width:58ch}.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:var(--space-m);align-items:center}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border-radius:6px;font-weight:600;text-decoration:none;font-family:var(--mono);font-size:var(--step--1);background:var(--accent);color:var(--accent-ink);border:1px solid var(--accent);transition:transform 120ms ease,filter 120ms ease}.btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn.ghost{background:0 0;color:var(--text);border-color:var(--line)}.btn.ghost:hover{border-color:var(--muted)}.btn::before{content:"$ ";opacity:.6}.term{font-family:var(--mono);font-size:var(--step--1);line-height:1.7;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 30px 80px -40px rgba(0,0,0,.9)}.term-bar{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--line);color:var(--faint);font-size:.8em}.term-bar .dot{width:9px;height:9px;border-radius:50%;background:var(--line)}.term-body{padding:14px 16px;white-space:pre-wrap;overflow-wrap:anywhere}.term .p{color:var(--prompt)}.term .c{color:var(--text)}.term .o{color:var(--muted)}.term .a{color:var(--accent)}.term a{color:var(--link)}.cursor{display:inline-block;width:.6em;height:1.1em;background:var(--text);vertical-align:text-bottom;animation:blink 1.1s steps(1)infinite}@keyframes blink{50%{opacity:0}}.session{padding-block:var(--space-l);font-family:var(--mono)}.session .cmd{color:var(--muted);margin-top:var(--space-m)}.session .cmd:first-child{margin-top:0}.session .p{color:var(--prompt)}.session h1{font-size:var(--step-4);letter-spacing:-.04em;margin-top:var(--space-s)}.session .comment{color:var(--muted);margin-top:10px}.session .comment::before{content:"# ";color:var(--faint)}.session .cmd .comment{margin-top:0}.session h1.err{font-size:var(--step-1);font-weight:400;letter-spacing:0;color:var(--text);margin-top:8px}.session .out{color:var(--text);margin-top:8px;white-space:pre-wrap}.session .lede{font-family:var(--sans);font-size:var(--step-1);color:var(--text);max-width:44ch;margin-top:var(--space-s)}.session .facts{font-size:clamp(.85rem,.6rem + 1.2vw,1.125rem);column-gap:1ch;border-top:0;padding-top:0;margin-top:var(--space-s)}.session .facts dt::after{content:none}.session .facts dd{padding-left:2ch;text-indent:-2ch}.session .facts dd::before{content:"= ";color:var(--faint)}.session .facts dd.str::before{content:"= \""}.session .facts dd.str::after{content:"\"";color:var(--faint)}.pillar h3{margin-bottom:8px}.pillar h3::before{content:"// ";color:var(--faint);font-family:var(--mono);font-weight:500}.pillar p{color:var(--muted)}.log{border-top:1px solid var(--line)}.log li{display:grid;gap:4px 20px;grid-template-columns:1fr;padding:14px 0;border-bottom:1px solid var(--line);align-items:baseline}@media(min-width:640px){.log li{grid-template-columns:11ch 1fr}}.log time{font-family:var(--mono);font-size:var(--step--1);color:var(--muted)}.log a{color:var(--text);font-weight:600;font-size:var(--step-1);text-decoration:none}.log a:hover{text-decoration:underline}.log p{grid-column:-2/-1;color:var(--muted);margin-top:2px}.section-head h2 a{text-decoration:none}.section-head h2 a:hover{text-decoration:underline}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:var(--space-s)}.more{font-family:var(--mono);font-size:var(--step--1)}.more::after{content:" ->"}.card-grid{display:grid;gap:var(--space-m);grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.card a{display:block;color:var(--text);text-decoration:none}.card img{border-radius:var(--radius);border:1px solid var(--line);margin-bottom:14px;transition:border-color 120ms}.card a:hover img{border-color:var(--muted)}.card h2{font-size:var(--step-1)}.card .status{font-family:var(--mono);font-size:var(--step--1);color:var(--accent);margin:4px 0 6px}.card p{color:var(--muted)}.shots{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.shots a{text-decoration:none}.shots img{border-radius:6px;border:1px solid var(--line);aspect-ratio:16/9;object-fit:cover;transition:border-color 120ms}.shots a:hover img{border-color:var(--muted)}.facts{font-family:var(--mono);font-size:var(--step--1);display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 24px;border-top:1px solid var(--line);padding-top:14px}.facts dt{color:var(--muted)}.facts dt::after{content:":"}.facts dd{margin:0;overflow-wrap:anywhere}.key-art{border-radius:var(--radius);border:1px solid var(--line)}.prose{max-width:68ch}.prose>*+*{margin-top:1.1em}.prose h2{margin-top:2.2em}.prose h3{margin-top:1.6em}.prose ul,.prose ol{padding-left:1.4em}.prose ul{list-style:"- "}.prose ol{list-style:decimal}.prose li+li{margin-top:.3em}.prose img{border-radius:var(--radius);border:1px solid var(--line)}.prose blockquote{padding-left:1em;border-left:2px solid var(--accent);color:var(--muted)}.prose code{font-size:.9em;background:var(--bg-3);padding:1px 5px;border-radius:4px}.prose pre{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:14px;overflow-x:auto;font-size:var(--step--1)}.prose pre code{background:0 0;padding:0}.prose table{border-collapse:collapse;width:100%;font-size:var(--step--1)}.prose th,.prose td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}.prose th{color:var(--muted);font-weight:500;font-family:var(--mono)}.prose hr{border:0;border-top:1px solid var(--line)}.meta{font-family:var(--mono);font-size:var(--step--1);color:var(--muted)}.page-head{padding-block:var(--space-l)var(--space-m)}.page-head .lede{margin-top:var(--space-s)}.site-footer{margin-top:var(--space-l);border-top:1px solid var(--line);font-family:var(--mono);font-size:var(--step--1);color:var(--muted)}.footer-cols{display:grid;gap:var(--space-m);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding-block:var(--space-m)}.site-footer strong{display:block;color:var(--text);font-weight:600;margin-bottom:8px}.site-footer strong::before{content:"# ";color:var(--faint)}.site-footer li{margin:3px 0}.site-footer li::before{content:"- ";color:var(--faint)}.status-bar{display:flex;flex-wrap:wrap;gap:0 20px;padding:10px 0;border-top:1px solid var(--line);background:var(--bg-2);font-size:.85em}.status-bar .wrap{display:flex;flex-wrap:wrap;gap:6px 20px}.status-bar .ok{color:var(--prompt)}.status-bar .dim{color:var(--faint)}.status-bar .right{margin-left:auto}}@layer utilities{.muted{color:var(--muted)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cursor{animation:none}.btn{transition:none}}