:root{--bg: #0b0e17;--bg2: #141a2a;--panel: #182033;--text: #e8ecf5;--muted: #9aa5bd;--accent: #f2c42c;--accent2: #22c5d8;--danger: #e5434b;--field: #070a12;--gridline: rgba(255, 255, 255, .06);--border: #3b4766;--cell: min(3.7vh, 30px);color-scheme:dark}:root[data-theme=pastel]{--bg: #f4f1ea;--bg2: #ebe6da;--panel: #ffffff;--text: #2a2a33;--muted: #6b6b78;--accent: #b9770e;--accent2: #2a8ca0;--field: #fbfaf6;--gridline: rgba(0, 0, 0, .07);--border: #c9c2b0;color-scheme:light}:root[data-theme=neon]{--bg: #05010d;--bg2: #0f0620;--panel: #140a2a;--accent: #ff3df5;--accent2: #00f0ff;--border: #5d2a9a;--field: #000000}:root[data-theme=mono]{--bg: #101010;--bg2: #1a1a1a;--panel: #1f1f1f;--accent: #ffffff;--accent2: #bbbbbb;--border: #555}*{box-sizing:border-box}html,body{margin:0;min-height:100%}body{background:radial-gradient(ellipse at top,var(--bg2),var(--bg) 70%) fixed;background-color:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}#app{min-height:100vh;display:flex;flex-direction:column}a{color:var(--accent2)}button,select,input{font:inherit;color:inherit}button{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 14px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent2)}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:#111;border-color:var(--accent);font-weight:700}select,input[type=text]{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:6px 8px}.muted{color:var(--muted)}.hidden{display:none!important}.menu-head{text-align:center;padding:32px 16px 8px}.menu-head h1{margin:0;font-size:clamp(30px,6vw,52px);letter-spacing:.02em}.logo{color:var(--accent)}.tag{color:var(--muted);margin:8px auto 0;max-width:560px}.menu{width:100%;max-width:1040px;margin:0 auto;padding:16px;flex:1}.modes{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.mode-wrap{display:flex;flex-direction:column;gap:6px}.mode-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:16px;min-height:140px;border-radius:12px;border-width:2px;background:linear-gradient(160deg,var(--panel),var(--bg2));transition:transform .12s ease,border-color .12s ease}.mode-card:hover,.mode-card:focus-visible{transform:translateY(-2px);border-color:var(--accent)}.mode-card.daily{border-color:var(--accent2)}.mode-name{font-size:19px;font-weight:800}.mode-blurb{color:var(--muted);font-size:14px;flex:1}.mode-best{font-size:13px;color:var(--accent);font-weight:600}.tools{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:24px 0 8px}.lifetime{text-align:center;color:var(--muted);font-size:13px}.foot{text-align:center;color:var(--muted);font-size:12px;padding:16px}.bar{display:flex;align-items:center;gap:8px;padding:8px 12px;flex-wrap:wrap}.bar-title{flex:1;font-weight:700;text-align:center;min-width:120px}.bar-btn{padding:6px 10px;font-size:14px}.speeds{display:flex;gap:4px}.game{flex:1;display:grid;grid-template-columns:minmax(80px,170px) auto minmax(80px,170px);justify-content:center;align-items:start;gap:14px;padding:8px 12px 16px}.game.versus{grid-template-columns:minmax(80px,170px) auto minmax(110px,220px)}.side{display:flex;flex-direction:column;gap:12px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px}.panel h2{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.preview{display:block;width:100%;height:calc(var(--cell) * 2.6)}.preview.small{height:calc(var(--cell) * 2);opacity:.85}.center{position:relative}.board{display:block;width:calc(var(--cell) * 10 + 14px);height:calc(var(--cell) * 22);touch-action:none}.board.cpu{width:100%;height:calc(var(--cell) * 12)}.cpu-stats{font-size:12px;color:var(--muted);text-align:center}.stats{margin:0;display:grid;grid-template-columns:auto;gap:0;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.stats dt{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.stats dd{margin:0 0 6px;font-size:18px;font-weight:700;font-variant-numeric:tabular-nums}.progress{height:6px;background:var(--panel);border-radius:3px;margin-top:6px;overflow:hidden}.progress-fill{height:100%;width:0;background:var(--accent2)}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000008c;border-radius:6px;z-index:5;overflow-y:auto}.overlay-box{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:8px;width:min(92%,360px);max-height:96%;overflow-y:auto}.overlay-box h2{margin:0;text-align:center;font-size:26px}.overlay-box.ov-countdown{background:transparent;border:0;align-items:center}.count{font-size:96px;font-weight:900;color:var(--accent);text-shadow:0 4px 24px rgba(0,0,0,.6)}.rank{color:var(--accent);text-align:center;font-weight:700;margin:0}.results{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:4px 0;font-size:14px}.results dt{color:var(--muted)}.results dd{margin:0;font-variant-numeric:tabular-nums}.buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.touchpad{display:none}@media(hover:none)and (pointer:coarse){.touchpad{display:grid;grid-template-columns:repeat(12,1fr);gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));position:sticky;bottom:0;background:var(--bg)}.tp{grid-column:span 3;padding:14px 0;font-size:20px;user-select:none;touch-action:none}.tp-left,.tp-soft,.tp-right{grid-column:span 4}.tp-hard{background:var(--accent);color:#111}}.modal-back{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:var(--bg2);border:1px solid var(--border);border-radius:14px;width:min(640px,100%);max-height:90vh;display:flex;flex-direction:column}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.modal-head h2{margin:0;font-size:20px}.close{padding:4px 10px}.modal-body{padding:8px 16px 16px;overflow-y:auto}.modal-body h3{margin:16px 0 6px;font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent)}.row{display:grid;grid-template-columns:150px 1fr 90px;align-items:center;gap:10px;padding:4px 0}.row.check{grid-template-columns:auto 1fr}.row.bind{grid-template-columns:1fr auto auto}.row output{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}.keys{display:flex;gap:4px;flex-wrap:wrap}kbd{background:var(--panel);border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font-size:13px}button.small{padding:4px 10px;font-size:13px}.tabs{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.tabs button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}.records table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.records th,.records td{text-align:left;padding:4px 6px;border-bottom:1px solid var(--border)}.error{color:var(--danger)}@media(max-width:640px){:root{--cell: min(3.1vh, 5.5vw, 30px)}.game,.game.versus{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:6px;padding:4px 6px}.panel{padding:6px 4px}.stats{padding:6px}.stats dd{font-size:14px}.stats dt{font-size:9px}.bar-btn{padding:5px 8px;font-size:13px}.row{grid-template-columns:1fr}.board.cpu{height:calc(var(--cell) * 8)}}@media(prefers-reduced-motion:reduce){.mode-card{transition:none}}
