:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070b14;--panel:#0f172a;--panel-2:#111c2e;--line:#1e293b;--text:#e2e8f0;--muted:#94a3b8;--accent:#22d3ee;--accent-2:#4ade80;--danger:#f87171;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html,body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-text-size-adjust:100%;margin:0;padding:0}body{background-image:radial-gradient(1200px 600px at 10% -10%,#22d3ee14,#0000 60%),radial-gradient(900px 500px at 90% 0,#4ade800f,#0000 55%);background-attachment:fixed;min-height:100dvh}a{color:var(--accent)}.app{max-width:1240px;padding:20px 20px 48px;padding-bottom:max(48px, env(safe-area-inset-bottom));margin:0 auto}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:18px;padding-bottom:14px;display:flex}.brand{font-weight:400;font-family:var(--mono);letter-spacing:.14em;align-items:baseline;gap:8px;margin:0;display:inline-flex}.brand__logo{color:var(--accent);text-shadow:0 0 18px #22d3ee59;font-size:26px;font-weight:800}.brand__sub{color:var(--muted);font-size:13px}.tagline{color:var(--muted);margin:0;font-size:13px}.toolbar{grid-template-columns:1fr;align-items:center;gap:12px;padding:18px 0 6px;display:grid}.toolbar__selects{flex-wrap:wrap;gap:8px;display:flex}.search,.select{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;border-radius:10px;min-height:42px;padding:10px 12px;font-size:14px}.search:focus-visible,.select:focus-visible,.btn:focus-visible,.card__link:focus-visible,.card__favorite:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.search::placeholder{color:#64748b}.count{color:var(--muted);margin:10px 2px;font-size:13px}.grid-wrap{padding-top:4px}.grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.grid.grid--compact{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.card{background:linear-gradient(180deg, var(--panel), #0b1220);border:1px solid var(--line);color:inherit;border-radius:14px;flex-direction:column;transition:transform .14s,border-color .14s,box-shadow .14s;display:flex;position:relative;overflow:hidden}.card__link{min-width:0;color:inherit;flex-direction:column;flex:1;text-decoration:none;display:flex}.card__favorite{z-index:1;border:1px solid var(--line);color:#fbbf24;width:40px;height:40px;font:inherit;cursor:pointer;background:#0f172ae6;border-radius:50%;font-size:22px;line-height:1;position:absolute;top:8px;right:8px}.card__favorite:hover{border-color:#fbbf24}.card__favorite[aria-pressed=true]{background:#422006}.card:hover{border-color:#22d3ee8c;transform:translateY(-3px);box-shadow:0 10px 30px #02061799}.card__cover{aspect-ratio:256/240;border-bottom:1px solid var(--line);background:#020617}.card__cover img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated;display:block}.card__body{flex-direction:column;gap:8px;padding:12px 14px 14px;display:flex}.card__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.card__title{margin:0;font-size:17px;line-height:1.2}.card__meta{color:var(--muted);margin:0;font-size:12.5px}.card__desc{color:#cbd5e1;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.45;display:-webkit-box;overflow:hidden}.card__tags{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.grid--compact .card__cover{aspect-ratio:16/9}.grid--compact .card__body{padding:10px 12px 12px}.grid--compact .card__title{font-size:15px}.grid--compact .card__desc,.grid--compact .card__tags{display:none}.tag{border:1px solid var(--line);color:var(--muted);background:#0f172ab3;border-radius:999px;padding:3px 7px;font-size:11px}.tag--warn{color:#fbbf24;border-color:#fbbf2466}.tag--danger{color:var(--danger);border-color:#f8717166}.empty,.muted{color:var(--muted)}.empty{border:1px dashed var(--line);text-align:center;border-radius:12px;grid-column:1/-1;padding:36px 16px}.empty p{margin:0 0 16px}.footer{border-top:1px solid var(--line);color:#64748b;text-align:center;margin-top:36px;padding-top:16px;font-size:12px}.footer p{margin:0}.footer a{color:inherit;border-bottom:1px solid #94a3b859;text-decoration:none}.footer a:hover,.footer a:focus-visible{color:var(--accent);border-bottom-color:currentColor}.gamebar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding-bottom:12px;display:flex}.back{color:var(--muted);font-size:14px;text-decoration:none}.back:hover{color:var(--accent)}.gamebar__title{flex:auto;margin:0;font-size:20px}.badge{color:var(--muted);border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:4px 9px;font-size:11.5px}.game-layout{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:20px;padding-top:18px;display:grid}.stage{touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;width:-moz-fit-content;width:fit-content;max-width:100%;margin:0 auto;display:flex;position:relative}.stage:fullscreen{background:#000;justify-content:center;width:100vw;max-width:none;height:100dvh;margin:0}.game-frame{box-sizing:content-box;background:#000;border:1px solid #1f2937;border-radius:12px;flex:none;max-width:100%;line-height:0;position:relative;overflow:hidden}.stage:fullscreen .game-frame{border-radius:0}.game-canvas{image-rendering:pixelated;touch-action:none;display:block}.loading,.error{color:var(--muted);text-align:center;padding:24px;font-size:14px}.error{color:var(--danger)}.pause-overlay{z-index:20;touch-action:auto;background:#020617d1;place-items:center;padding:16px;line-height:normal;display:grid;position:absolute;inset:0;overflow:auto}.pause-overlay[hidden]{display:none}.pause-dialog{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;width:min(100%,420px);max-height:100%;padding:18px;overflow:auto;box-shadow:0 18px 50px #00000073}.pause-dialog>h2{text-align:center;margin:0 0 14px}.pause-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.pause-actions .btn{text-align:center;min-height:48px;text-decoration:none}.pause-dialog .panel{max-height:180px;margin-top:12px;overflow:auto}.setting-row{align-items:center;gap:10px;min-height:48px;display:flex}.setting-row input[type=checkbox]{width:20px;height:20px}.setting-row input[type=range]{flex:1;min-width:80px}.setting-row .select{flex:1;min-width:0}.key-bindings{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;padding-top:12px;display:grid}.key-bindings h3,.rebind-status{grid-column:1/-1;margin:0}.key-bindings h3{color:var(--muted);font-size:12px}.rebind-status{min-height:32px;color:var(--accent);font-size:12px}.onboarding{background:var(--panel);border:1px solid #22d3ee59;border-radius:12px;margin-bottom:14px;padding:14px 16px}.onboarding h2{margin:0 0 8px;font-size:16px}.onboarding p,.onboarding li{color:#cbd5e1;font-size:13px;line-height:1.5}.onboarding ul{margin:8px 0 12px;padding-left:20px}.game-actions{flex-wrap:wrap;gap:8px;padding:12px 0 0;display:flex}.btn{border:1px solid var(--line);background:var(--panel);color:var(--text);font:inherit;cursor:pointer;border-radius:9px;min-height:40px;padding:9px 13px;font-size:13px}.btn:hover{color:var(--accent);border-color:#22d3ee99}.hint{color:#64748b;margin:10px 0 0;font-size:12px}.game-side{flex-direction:column;gap:14px;display:flex}.desc{color:#cbd5e1;margin:0;font-size:14px;line-height:1.5}.panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 14px}.panel h2{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 10px;font-size:13px}.controls{color:#cbd5e1;flex-direction:column;gap:6px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.controls strong{color:var(--accent);font-weight:600}.save-row{flex-wrap:wrap;gap:8px;display:flex}.save-row .select{flex:110px}.save-status{color:var(--accent-2);min-height:16px;margin:8px 0 0;font-size:12px}.scores{color:#cbd5e1;font-family:var(--mono);flex-direction:column;gap:4px;margin:0;padding-left:20px;font-size:13px;display:flex}.legal{color:#475569;margin:0;font-size:11.5px;line-height:1.5}.notfound{text-align:center;padding:60px 0}@media (max-width:920px){.app{padding:14px 14px 40px}.toolbar,.game-layout{grid-template-columns:1fr}.gamebar__title{font-size:17px}.grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.card__desc{-webkit-line-clamp:2}}@media (prefers-reduced-motion:reduce){.card,.card:hover{transition:none;transform:none}}
