:root{--bg:#000000;--panel:#1a1a2e;--fg:#fcfcfc;--dim:#7c7c7c;--red:#e40058;--orange:#f87858;--yellow:#f8b800;--green:#58d854;--cyan:#3cbcfc;--blue:#0058f8;--purple:#b800f8;--font:"Press Start 2P","DotGothic16",ui-monospace,monospace}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:12px;line-height:1.8;-webkit-font-smoothing:none}body{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:24px 16px}a{color:var(--cyan);text-decoration:none}a:hover,a:focus-visible{color:var(--yellow)}h1{font-size:20px;color:var(--yellow);text-shadow:4px 4px 0 var(--red);margin:8px 0 24px;text-align:center;letter-spacing:2px}.frame{border:4px solid var(--fg);box-shadow:0 0 0 4px var(--bg),0 0 0 8px var(--blue);background:var(--bg)}.btn{display:inline-block;font-family:var(--font);font-size:12px;color:var(--fg);background:var(--red);border:0;padding:10px 16px;box-shadow:4px 4px 0 var(--fg);cursor:pointer}.btn:active{transform:translate(4px,4px);box-shadow:none}.btn:hover,.btn:focus-visible{color:var(--yellow);outline:none}.btn-sub{background:var(--blue)}.topbar{width:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin:8px 0 24px}.topbar h1{margin:0}.home-btn{justify-self:start;font-size:10px;padding:8px 10px;white-space:nowrap}.retro-dialog{font-family:var(--font);color:var(--fg);background:var(--bg);border:4px solid var(--fg);box-shadow:0 0 0 4px var(--bg),0 0 0 8px var(--blue);padding:20px 24px;text-align:center;max-width:calc(100% - 48px)}.retro-dialog::backdrop{background:rgba(0,0,0,0.7)}.retro-dialog p{margin:0 0 8px}.retro-dialog .note{color:var(--dim);font-size:10px}.retro-dialog:focus{outline:none}.retro-dialog .actions{display:flex;gap:20px;justify-content:center;margin:16px 0}canvas.pixel{display:block;image-rendering:pixelated;image-rendering:crisp-edges;touch-action:none;width:100%;height:auto}.blink{animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.blink{animation:none}}