:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#12140f;--bg-raised:#1b2116;--line:#31382a;--text:#f4f1e6;--muted:#b7b39a;--accent:#d6ff4a;--accent-ink:#17200a;background:var(--bg);color:var(--text);font-family:Avenir Next,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(900px 420px at 0% -10%, #2a3318 0%, transparent 60%), var(--bg);min-height:100dvh;margin:0}h1,.wordmark,.card-title{font-family:Iowan Old Style,Palatino,Georgia,serif;font-weight:600}a{color:inherit}a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.shell{min-height:100dvh}.topbar,.catalog,.game-heading,.not-found,.stage{width:min(72rem,100% - 2rem);margin-inline:auto}.topbar{justify-content:space-between;align-items:baseline;gap:1rem;padding:1.25rem 0 .5rem;display:flex}.wordmark{letter-spacing:-.03em;font-size:1.35rem;text-decoration:none}.api-status{color:var(--muted);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}.eyebrow{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .35rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem}h1{letter-spacing:-.04em;margin:0 0 .6rem;font-size:clamp(2.6rem,7vw,4.6rem);line-height:.92}.lede{max-width:38rem;color:var(--muted);margin:0}.catalog{padding:1.5rem 0 3rem}.grid{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem;margin:1.75rem 0 0;padding:0;list-style:none;display:grid}.card{border:1px solid var(--line);background:var(--bg-raised);border-radius:1rem;flex-direction:column;height:100%;text-decoration:none;display:flex;overflow:hidden}.card:hover{border-color:var(--accent)}.card img,.thumb-fallback{aspect-ratio:16/9;object-fit:cover;background:#10140c;width:100%;display:block}.thumb-fallback{color:var(--accent);place-items:center;font-family:Iowan Old Style,Palatino,Georgia,serif;font-size:2.5rem;display:grid}.card-body{flex-direction:column;flex:1;gap:.45rem;padding:.9rem 1rem 1rem;display:flex}.card-title{letter-spacing:-.03em;font-size:1.45rem}.card-copy{color:var(--muted);font-size:.95rem}.tags{flex-wrap:wrap;gap:.35rem;margin-top:auto;padding-top:.35rem;display:flex}.tag{color:var(--accent);background:#10140c;border-radius:999px;padding:.1rem .45rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem}.game-page{flex-direction:column;gap:1rem;padding-bottom:1.25rem;display:flex}.game-heading h1{font-size:clamp(2rem,5vw,3.2rem)}.stage{border:1px solid var(--line);background:#0c0e0a;border-radius:1rem;min-height:min(70vh,40rem);position:relative;overflow:hidden}.stage-host{position:absolute;inset:0}.stage-host canvas{width:100%;height:100%;display:block}.stage-status{color:var(--muted);pointer-events:none;place-items:center;margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;display:grid;position:absolute;inset:0}.not-found{padding:2.5rem 0 3rem}.text-link{color:var(--accent-ink);background:var(--accent);border-radius:999px;margin-top:1.25rem;padding:.45rem .8rem;font-weight:650;text-decoration:none;display:inline-block}.empty{color:var(--muted);margin-top:1.5rem}@media (width<=640px){.topbar{flex-direction:column;align-items:flex-start;gap:.35rem}.stage{min-height:60vh}}
