:root{--sat: env(safe-area-inset-top, 0px);--sar: env(safe-area-inset-right, 0px);--sab: env(safe-area-inset-bottom, 0px);--sal: env(safe-area-inset-left, 0px);--bg: #0b1020;--panel: #151d38;--panel-line: rgba(255,255,255,.06);--ink: #eaf0ff;--muted: #8e9bc4;--accent: #35d27a;--danger: #ff5470;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--vw: 100vw;--vh: 100vh;--pad-x: 10px;--pad-t: 8px;--pad-b: 8px;--hud-h: 46px;--bar-h: 44px;--ib: 44px;--g1: 6px;--g2: 10px;--g3: 10px;--foot: 24px;--dpad-min: 180px;--dock: 0px}@supports (width: 100dvw){:root{--vw: 100dvw;--vh: 100dvh}}body.touch,body.dpad-on{--dock: calc(var(--g3) + var(--dpad-min))}body.touch,body.hosted{--foot: 0px}@media(max-height:559px){:root{--foot: 0px}.foot{display:none!important}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--font);overscroll-behavior:none;overflow:hidden}body{height:var(--vh);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}button{font:inherit;color:inherit;cursor:pointer}svg{width:24px;height:24px;fill:currentColor;display:block}#app{--avail-w: calc(var(--vw) - var(--sal) - var(--sar) - 2 * var(--pad-x));--avail-h: calc(var(--vh) - var(--sat) - var(--sab) - var(--pad-t) - var(--pad-b));--chrome: calc(var(--hud-h) + var(--g1) + var(--bar-h) + var(--g2) + var(--dock) + var(--foot));--bw: min(var(--avail-w), calc((var(--avail-h) - var(--chrome)) * 1.25), 1000px);width:var(--bw);height:100%;margin:0 auto;padding:calc(var(--sat) + var(--pad-t)) 0 calc(var(--sab) + var(--pad-b));display:grid;align-content:center;grid-template-columns:minmax(0,1fr);grid-template-rows:var(--hud-h) var(--bar-h) auto auto;grid-template-areas:"hud" "actions" "board" "foot"}body.touch #app,body.dpad-on #app{align-content:start;grid-template-rows:var(--hud-h) var(--bar-h) auto minmax(0,1fr) auto;grid-template-areas:"hud" "actions" "board" "dpad" "foot"}.hud{grid-area:hud;display:flex;gap:6px;min-width:0}.stat{flex:1 1 0;min-width:0;height:var(--hud-h);padding:3px 6px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--panel);border:1px solid var(--panel-line);border-radius:10px}.stat.primary{flex-grow:1.35}.stat b{font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.stat.primary b{font-size:27px;color:var(--accent)}.lbl{font-size:10px;line-height:1.1;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.actions{grid-area:actions;position:relative;margin-top:var(--g1);display:flex;gap:6px;align-items:center;min-width:0}.ib{min-width:var(--ib);height:var(--ib);border:1px solid var(--panel-line);border-radius:10px;background:var(--panel);display:inline-flex;gap:6px;align-items:center;justify-content:center;padding:0 10px;flex:none}.ib:active,.ib:hover{filter:brightness(1.25)}.ib:focus-visible,.sw:focus-visible,.d:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ib.wide{flex:1 1 auto}.ib.wide span{font-size:14px;font-weight:700;min-width:4.4em;text-align:left}.ib[aria-expanded=true]{background:#26325e}.desk-only{display:none!important}body:not(.touch) .desk-only{display:flex!important}.pop{position:absolute;z-index:30;top:calc(100% + 6px);right:0;width:min(264px,100%);padding:6px;display:grid;gap:4px;background:#0f1630;border:1px solid #2b3a6e;border-radius:12px;box-shadow:0 12px 30px #0009}.sw{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 12px;border:0;border-radius:9px;background:transparent;text-align:left}.sw:hover{background:#ffffff0f}.sw svg{width:20px;height:20px;color:var(--muted)}.sw-txt{flex:1;font-size:15px;font-weight:600}.sw-state{min-width:2.6em;padding:4px 8px;border-radius:99px;background:#26325e;font-size:12px;font-weight:800;text-align:center;letter-spacing:.06em}.sw[aria-checked=true] .sw-state{background:var(--accent);color:#05261a}.sw[aria-checked=false] .sw-txt,.sw[aria-checked=false] svg{opacity:.6}.board-wrap{grid-area:board;margin-top:var(--g2);width:100%;aspect-ratio:20 / 16;min-height:0;min-width:0;display:flex;align-items:center;justify-content:center;touch-action:none}.board-box{position:relative;border-radius:12px;overflow:hidden;box-shadow:0 10px 32px #00000080,0 0 0 2px #2a396b;touch-action:none;flex:none}.board-box canvas{display:block;width:100%;height:100%;touch-action:none}.foot{grid-area:foot;margin-top:6px;height:18px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);opacity:.75}.foot span:first-child{font-weight:800;color:var(--ink);opacity:.85}body.touch .foot,body.hosted .foot{display:none}.overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:12px;text-align:center;background:#070a18c7;backdrop-filter:blur(3px);animation:fade .18s ease-out}@keyframes fade{0%{opacity:0}to{opacity:1}}.overlay h1{margin:0;font-size:clamp(30px,8vmin,56px);letter-spacing:.08em}.overlay h1 em{font-style:normal;color:var(--accent)}.overlay h2{margin:0;font-size:clamp(22px,6vmin,38px)}.sub{margin:0;color:var(--muted);font-size:clamp(12px,2.4vmin,15px);max-width:28em}.tiny{margin:0;color:var(--muted);font-size:12px}.btn{min-height:52px;min-width:160px;padding:0 22px;border:0;border-radius:14px;background:#26325e;font-size:17px;font-weight:700}.btn.primary{background:var(--accent);color:#05261a}.btn.link{min-height:44px;background:transparent;color:var(--muted);font-size:15px}.pulsing{animation:pulse 1.2s ease-in-out infinite}.btn.danger{background:var(--danger);color:#fff}.btn:active{transform:scale(.97)}.seg{display:inline-flex;background:#0e1530;border-radius:12px;padding:3px}.seg-btn{border:0;background:transparent;border-radius:9px;padding:10px 16px;min-height:44px;font-weight:600;color:var(--muted)}.seg-btn[aria-pressed=true]{background:#26325e;color:#fff}.result{display:grid;grid-template-columns:repeat(4,auto);gap:6px 18px}.result div{display:flex;flex-direction:column;align-items:center}.result b{font-size:clamp(18px,4.5vmin,28px);font-variant-numeric:tabular-nums}.over-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.over-actions .btn{min-width:130px}.rank-line{margin:0;font-size:clamp(18px,4.6vmin,28px);font-weight:800;color:var(--accent);font-variant-numeric:tabular-nums}.rank-line.muted{color:var(--muted);font-size:clamp(14px,3.2vmin,18px);font-weight:700}.pts{margin:0;color:#ffd166;font-weight:700;font-size:14px}#ov-over[data-result=pending] #r-score-lbl,#ov-over[data-result=unconfirmed] #r-score-lbl{color:#ffd166}#ov-over[data-result=pending] #r-score,#ov-over[data-result=unconfirmed] #r-score{opacity:.72;font-style:italic}#ov-over[data-result=verified] #r-score-lbl{color:var(--accent)}#ov-over[data-result=pending] #r-verify{animation:pulse 1.2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){#ov-over[data-result=pending] #r-verify{animation:none}}.newbest{margin:0;color:#ffd166;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.ready-hint{position:absolute;left:0;right:0;bottom:8%;text-align:center;pointer-events:none;font-weight:700;font-size:clamp(12px,2.6vmin,18px);text-shadow:0 2px 6px #000;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.45}}.toast{position:absolute;top:6px;left:50%;transform:translate(-50%);background:#000000b3;padding:6px 12px;border-radius:10px;font-size:13px;pointer-events:none}.dpad{grid-area:dpad;display:none;margin-top:var(--g3);min-height:0;container-type:size;place-items:center;touch-action:none}.pad{--btn: clamp(56px, min(calc((100cqh - 12px) / 3), 28cqw), 104px);display:grid;grid-template-columns:repeat(3,var(--btn));grid-template-rows:repeat(3,var(--btn));gap:6px;touch-action:none}.dpad .d{border:0;border-radius:22%;background:var(--panel);display:flex;align-items:center;justify-content:center;touch-action:none;box-shadow:0 4px #0a0f22}.dpad .d svg{width:42%;height:42%}.dpad .d.pressed{background:var(--accent);color:#05261a;transform:translateY(3px);box-shadow:0 1px #0a0f22}.dpad .up{grid-area:1 / 2}.dpad .left{grid-area:2 / 1}.dpad .right{grid-area:2 / 3}.dpad .down{grid-area:3 / 2}body.touch .dpad,body.dpad-on .dpad{display:grid}body.touch .kbd-only{display:none}body:not(.touch) .touch-only{display:none}body.dpad-on:not(.touch) .touch-only{display:none}.brand{letter-spacing:.12em;text-transform:uppercase;font-weight:700;opacity:.7}@media(orientation:landscape){body.touch #app,body.force-landscape #app{--side: 112px;--pad-top-row: 0px;width:100%;max-width:none;margin:0;align-content:stretch;column-gap:10px;padding:calc(var(--sat) + var(--pad-t)) calc(var(--sar) + var(--pad-x)) calc(var(--sab) + var(--pad-b)) calc(var(--sal) + var(--pad-x));grid-template-columns:var(--side) minmax(0,1fr) auto;grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"hud board dpad" "actions board dpad" ". board dpad"}body.touch .hud,body.force-landscape .hud{flex-direction:column;gap:4px}body.touch .stat,body.force-landscape .stat{flex:none;height:34px;padding:0 9px;flex-direction:row;justify-content:space-between;align-items:center}body.touch .stat b,body.force-landscape .stat b{font-size:20px}body.touch .stat.primary,body.force-landscape .stat.primary{height:40px}body.touch .stat.primary b,body.force-landscape .stat.primary b{font-size:24px}body.touch .actions,body.force-landscape .actions{margin-top:8px;display:grid;grid-template-columns:1fr 1fr;gap:6px}body.touch .ib,body.force-landscape .ib{min-width:0;padding:0}body.touch .ib.wide span,body.force-landscape .ib.wide span{display:none}body.touch .pop,body.force-landscape .pop{right:auto;left:0;width:248px}body.touch .board-wrap,body.force-landscape .board-wrap{margin:0;grid-row:1 / -1;width:auto;height:100%;aspect-ratio:auto}body.touch .dpad,body.force-landscape .dpad{margin:0;grid-row:1 / -1;container-type:normal;align-self:center}body.touch .pad,body.force-landscape .pad{--btn: clamp(56px, calc(var(--vh) * .17), 76px)}body.touch .foot{display:none}}@media(max-height:460px)and (orientation:landscape){.brand{display:none}.over-actions .btn{min-width:96px;padding:0 12px;font-size:15px}.overlay h2{font-size:20px}.rank-line{font-size:17px}.overlay{gap:4px;padding:6px}.overlay .btn{min-height:44px}.overlay h1{font-size:28px}.overlay .sub,.overlay .tiny{font-size:11px}.result{gap:2px 12px}}@media(max-height:800px)and (orientation:portrait){.brand{display:none}}@media(max-width:420px)and (orientation:portrait){.overlay{gap:6px;padding:8px}.overlay .sub{font-size:12px}}@media(max-height:360px){.overlay .tiny{display:none}}@media(min-width:760px)and (orientation:landscape){body:not(.touch){--hud-h: 44px;--ib: 40px;--g2: 8px}body:not(.touch) #app{--chrome: calc(var(--bar-h) + var(--g2) + var(--dock) + var(--foot));grid-template-columns:minmax(0,1fr) auto;grid-template-rows:var(--bar-h) auto auto;grid-template-areas:"hud actions" "board board" "foot foot"}body.dpad-on:not(.touch) #app{grid-template-rows:var(--bar-h) auto minmax(0,1fr) auto;grid-template-areas:"hud actions" "board board" "dpad dpad" "foot foot"}body:not(.touch) .hud{align-self:center;margin-right:12px}body:not(.touch) .stat{height:44px;max-width:108px}body:not(.touch) .stat.primary{max-width:140px}body:not(.touch) .actions{margin-top:0;justify-self:end}body:not(.touch) .ib.wide{flex:none;width:108px}}body.theme-nokia{--bg: #0a0f0b;--panel: #121c14;--panel-line: #25422c;--ink: #c9ffd3;--muted: #5fae75;--accent: #7CFF9D;font-family:Courier New,ui-monospace,Menlo,monospace}body.theme-nokia .board-box{border-radius:6px;box-shadow:0 0 0 4px #1b2a1e,0 0 0 5px #0a120b,0 0 32px #7cff9d29}body.theme-nokia .stat,body.theme-nokia .ib,body.theme-nokia .dpad .d,body.theme-nokia .pop,body.theme-nokia .sw{border-radius:3px}body.theme-nokia .stat,body.theme-nokia .ib{border:1px solid var(--panel-line);box-shadow:inset 0 0 0 1px #070d08,inset 0 -2px #00000059}body.theme-nokia .stat{padding-top:5px}body.theme-nokia .stat b{text-shadow:0 0 8px rgba(124,255,157,.28);letter-spacing:.02em}body.theme-nokia .stat.primary{border-color:#3d7a4b}body.theme-nokia .lbl,body.theme-nokia .foot{letter-spacing:.16em}body.theme-nokia .dpad .d{border:1px solid var(--panel-line)}body.theme-nokia .pop{background:#0c140e;border-color:#2f5a39}body.theme-nokia .sw-state{border-radius:2px;background:#1b2a1e}body.theme-nokia .ib[aria-expanded=true]{background:#1b2a1e}body.theme-nokia .btn,body.theme-nokia .seg,body.theme-nokia .seg-btn{border-radius:3px}body.theme-nokia .overlay{background:#08100ad9;backdrop-filter:none}body.theme-nokia .btn.primary{background:#7cff9d;color:#06160b}body.theme-nokia .dpad .d.pressed{background:#7cff9d}@media(prefers-reduced-motion:reduce){.overlay,.ready-hint,.pulsing{animation:none}}
