:root{--bg: #0b0f17;--panel: #121826;--panel-2: #182033;--line: #253048;--ink: #eef3fb;--muted: #93a4c4;--accent: #4c8dff;--good: #4fe092;--bad: #f05b69;--mint: #5eecc8}body[data-sport=basketball]{--accent: #f2994a}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Barlow Condensed,Arial Narrow,Roboto Condensed,system-ui,sans-serif}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}.muted{color:var(--muted)}.kicker{margin:0 0 6px;color:var(--accent);letter-spacing:.16em;font-size:.8rem;font-weight:700}.top{height:54px;display:flex;align-items:center;gap:12px;padding:0 16px;border-bottom:1px solid var(--line);background:#0d121c;position:sticky;top:0;z-index:5}.brand{display:flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;letter-spacing:.08em}.brand i{width:18px;height:18px;border-radius:5px;background:linear-gradient(135deg,#4c8dff,#5eecc8)}.crumb{color:var(--muted)}.sports{display:flex;gap:4px;margin-left:8px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:3px}.sports button{border:0;background:none;color:var(--muted);padding:6px 14px;border-radius:6px;font-weight:600}.sports button.on{background:var(--accent);color:#0b0f17}.sound{margin-left:auto;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;padding:6px 10px;white-space:nowrap}.chip{color:var(--muted);font-size:.95rem;white-space:nowrap}.chip b{color:var(--ink)}.lobby{max-width:1080px;margin:0 auto;padding:28px 16px 48px}.hero h1{margin:0;font-size:clamp(3rem,11vw,6.5rem);line-height:.9;letter-spacing:.02em}.hero h1 span{color:var(--accent)}.lead{max-width:560px;color:var(--muted);font-size:1.15rem;line-height:1.4}.cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:18px}.primary{border:0;background:var(--accent);color:#0b0f17;font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:1.15rem;padding:14px 30px;border-radius:10px;box-shadow:0 8px 30px color-mix(in srgb,var(--accent) 35%,transparent)}.primary:hover{filter:brightness(1.08)}.ghost{border:1px solid var(--line);background:var(--panel);padding:12px 22px;border-radius:10px}.practice{color:var(--muted);display:flex;gap:6px;align-items:center}.practice input{accent-color:var(--accent)}.grid{margin-top:32px;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;min-width:0}.card.wide{grid-column:1 / -1}.card h2{margin:0 0 12px;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.elo{display:flex;align-items:baseline;gap:10px}.elo b{font-size:3.2rem;line-height:1}.elo span{color:var(--accent);font-weight:700;font-size:1.2rem}.record{margin:6px 0 12px;color:var(--muted)}.bar{height:6px;background:var(--panel-2);border-radius:3px;overflow:hidden}.bar i{display:block;height:100%;background:var(--accent)}.rules{margin:0;padding-left:18px;color:var(--ink);line-height:1.4}.rules li+li{margin-top:8px}.keys{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;margin:0;align-items:center}.keys dd{margin:0;color:var(--muted)}kbd{font-family:inherit;background:var(--panel-2);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:2px 7px;white-space:nowrap}.history{list-style:none;margin:0;padding:0}.history li{display:grid;grid-template-columns:28px 1fr auto 48px;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}.history li:first-child{border-top:0}.history li.empty{display:block;color:var(--muted)}.history b{text-align:center;border-radius:4px;font-size:.85rem;padding:2px 0}.history .w b{background:color-mix(in srgb,var(--good) 20%,transparent);color:var(--good)}.history .l b{background:color-mix(in srgb,var(--bad) 20%,transparent);color:var(--bad)}.history small{color:var(--muted)}.history em{font-style:normal;text-align:right;color:var(--muted)}.match{position:fixed;inset:0;z-index:10;background:#000;touch-action:none;user-select:none;-webkit-user-select:none}.match canvas{display:block;width:100%;height:100%}.board{position:absolute;top:max(12px,env(safe-area-inset-top));left:50%;transform:translate(-50%);display:flex;align-items:stretch;background:#0b0f17db;border:1px solid var(--line);border-radius:12px;overflow:hidden;pointer-events:none}.board .side{display:flex;align-items:center;gap:12px;padding:6px 16px}.board .side b{font-size:2.2rem;line-height:1;font-variant-numeric:tabular-nums}.board .side small{color:var(--muted);letter-spacing:.08em;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board .you{border-left:4px solid #4c8dff}.board .cpu{border-right:4px solid #f05b69}.board .mid{display:grid;justify-items:center;padding:4px 14px;background:var(--panel);font-size:.72rem;letter-spacing:.12em;color:var(--muted)}.board .mid b{font-size:1.4rem;color:var(--ink);font-variant-numeric:tabular-nums}.board .mid b.low{color:var(--bad)}#poss.o{color:var(--mint)}#poss.d{color:#f2b84b}.quit{position:absolute;top:max(12px,env(safe-area-inset-top));right:12px;border:1px solid var(--line);background:#0b0f17cc;border-radius:8px;padding:8px 12px}.flash,.callout{position:absolute;left:50%;transform:translate(-50%,-50%) scale(.9);opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;font-weight:800;letter-spacing:.06em;text-shadow:0 4px 24px rgba(0,0,0,.6);white-space:nowrap}.flash{top:38%;font-size:clamp(2.2rem,8vw,4.5rem)}.callout{top:58%;font-size:1.3rem;color:var(--ink)}.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.flash.good,.callout.good{color:var(--good)}.flash.bad{color:var(--bad)}.callout.miss{color:#f2b84b}.callout.move{color:var(--mint)}.meter{position:absolute;left:50%;bottom:18%;width:min(280px,60vw);height:12px;transform:translate(-50%);background:#0b0f17d9;border:1px solid var(--line);border-radius:6px;overflow:hidden}.meter i{display:block;height:100%;background:linear-gradient(90deg,#4c8dff,var(--accent))}.meter em{position:absolute;top:0;bottom:0;width:10%;margin-left:-5%;background:color-mix(in srgb,var(--good) 55%,transparent);border-left:2px solid var(--good);border-right:2px solid var(--good)}.touch{display:none}.touch-ui .touch{display:block}.touch .stick{position:fixed;width:110px;height:110px;margin:-55px 0 0 -55px;border-radius:50%;border:2px solid rgba(255,255,255,.25);opacity:0;pointer-events:none}.touch .stick.on{opacity:1}.touch .stick i{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px;border-radius:50%;background:#ffffff59;transform:translate(var(--kx, 0),var(--ky, 0))}.touch button{position:fixed;border-radius:50%;border:2px solid rgba(255,255,255,.3);background:#0b0f1799;font-weight:800;letter-spacing:.04em;touch-action:none}#shootBtn{right:20px;bottom:max(24px,env(safe-area-inset-bottom));width:88px;height:88px;border-color:var(--accent)}#specialBtn{right:118px;bottom:max(34px,env(safe-area-inset-bottom));width:66px;height:66px}.overlay{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#05080db8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:16px}.panel{width:min(420px,100%);text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 22px}.panel h2{margin:0 0 8px;font-size:2.2rem}.panel .cta{justify-content:center}.spinner{width:44px;height:44px;margin:0 auto 14px;border-radius:50%;border:4px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}#queue.found .spinner{animation:none;border-color:var(--good)}@keyframes spin{to{transform:rotate(360deg)}}#result[data-won=true] h2{color:var(--good)}#result[data-won=false] h2{color:var(--bad)}.final{font-size:1.3rem;margin:0 0 6px}.delta{margin:0;font-weight:700}.delta.up{color:var(--good)}.delta.down{color:var(--bad)}@media(max-width:820px){.grid{grid-template-columns:1fr}.crumb{display:none}.sports button{padding:6px 10px}.chip span{display:none}}@media(max-width:520px){.top{gap:8px;padding:0 12px}.brand b{display:none}.sound{padding:5px 8px;font-size:.85rem}.sports{margin-left:0}.board .mid{padding:4px 10px;white-space:nowrap;font-size:.62rem}.board .side{padding:4px 10px;gap:8px}.board .side small{max-width:64px;font-size:.7rem}.board .side b{font-size:1.7rem}.quit{top:auto;bottom:max(130px,env(safe-area-inset-bottom));right:12px;padding:6px 10px}.chip{font-size:.85rem}}
