:root{--navy: #0b1a33;--navy-2: #13315c;--ink: #f4f7fb;--muted: #9fb0c8;--gold: #f2c14e;--teal: #1fb5a8;--red: #e0344f;--panel: rgba(8, 18, 36, .82);--panel-edge: rgba(255, 255, 255, .08);--display: "Barlow Condensed", "Arial Narrow", Impact, sans-serif;--body: "Inter", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#050a14;overflow:hidden;color:var(--ink);font-family:var(--body)}#app{position:fixed;inset:0}#scene{width:100%;height:100%;display:block}#ui{position:absolute;inset:0;pointer-events:none}#ui button,#ui input{pointer-events:auto}kbd{display:inline-block;min-width:20px;padding:1px 5px;margin-right:6px;border-radius:4px;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-bottom-width:2px;font:600 12px var(--body);text-align:center;color:#fff}.menu{position:absolute;inset:0;display:flex;align-items:center;gap:6vw;padding:0 7vw;background:linear-gradient(90deg,#050a14eb,#050a148c 45%,#050a1400 75%);pointer-events:auto;transition:opacity .4s}.menu.hidden{opacity:0;pointer-events:none}.brand-mark{font:800 clamp(48px,7vw,104px)/.85 var(--display);letter-spacing:.02em;display:flex;flex-direction:column;text-transform:uppercase}.brand-mark .arena{color:var(--gold);-webkit-text-stroke:0;text-shadow:0 8px 40px rgba(242,193,78,.35)}.brand-sub{margin-top:14px;color:var(--muted);font-size:15px;letter-spacing:.18em;text-transform:uppercase}.menu-panel{width:min(420px,90vw);display:flex;flex-direction:column;gap:8px;padding:4px}.menu-title{font:700 14px var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin:0 0 6px 2px}.mbtn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:12px 18px;background:var(--panel);color:var(--ink);border:1px solid var(--panel-edge);border-left:3px solid transparent;border-radius:6px;cursor:pointer;font:700 22px var(--display);letter-spacing:.04em;text-transform:uppercase;transition:transform .12s,border-color .12s,background .12s}.mbtn small{font:500 12px var(--body);letter-spacing:0;text-transform:none;color:var(--muted)}.mbtn:hover,.mbtn:focus-visible{transform:translate(4px);border-left-color:var(--gold);background:#13315ce6;outline:none}.mbtn.primary{background:linear-gradient(90deg,#f2c14e,#e9a93a);color:#11213d;border-left-color:#fff}.mbtn.primary small{color:#3a3217}.mbtn.ghost{background:transparent;border-color:#ffffff24;font-size:17px}.mbtn.disabled{opacity:.45;cursor:not-allowed}.mbtn.disabled:hover{transform:none;border-left-color:transparent}.field{display:flex;flex-direction:column;gap:6px;margin:4px 0}.field label,.lbl{font:600 11px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.seg{display:flex;flex-wrap:wrap;gap:4px}.seg button{flex:1;min-width:70px;padding:9px 8px;border-radius:5px;background:var(--panel);color:var(--ink);border:1px solid var(--panel-edge);cursor:pointer;font:600 13px var(--body)}.seg button.sel{background:var(--navy-2);border-color:var(--gold);color:var(--gold)}.blurb{color:var(--muted);font-size:14px;line-height:1.5;margin:4px 2px 8px}.blurb code{color:var(--gold)}.code-input{width:100%;padding:12px 14px;border-radius:6px;border:1px solid var(--panel-edge);background:#0006;color:#fff;font:700 26px var(--display);letter-spacing:.3em;text-transform:uppercase}.code-input.wide{font:500 14px var(--body);letter-spacing:0;text-transform:none}.lobby{background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;padding:14px;font-size:14px}.lobby .room-code{font:800 44px var(--display);letter-spacing:.25em;color:var(--gold)}.lobby .seat{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--panel-edge)}.lobby .seat .who{color:var(--muted)}.lobby .seat.mine .who{color:var(--gold)}.lobby img.qr{width:132px;height:132px;background:#fff;padding:6px;border-radius:6px;float:right;image-rendering:pixelated}.hud{position:absolute;inset:0}.mode-tag{position:absolute;top:16px;right:18px;padding:6px 12px;background:var(--panel);border-radius:4px;font:600 12px var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.scorebug{position:absolute;left:50%;bottom:22px;transform:translate(-50%);display:flex;align-items:stretch;height:58px;border-radius:6px;overflow:hidden;box-shadow:0 10px 40px #00000073;font-family:var(--display);background:linear-gradient(180deg,#102447,#0a1830)}.scorebug>div{display:flex;align-items:center;padding:0 14px;border-right:1px solid rgba(255,255,255,.07)}.bug-team{gap:10px;background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 60%,#000))}.bug-team .logo{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font:800 20px var(--display);border:2px solid rgba(255,255,255,.6)}.bug-team .abbr{font-size:22px;font-weight:700;letter-spacing:.06em}.bug-team .score{font-size:36px;font-weight:800;min-width:74px;text-align:right}.bug-team .overs{font-size:18px;color:#fffc;background:#00000040;padding:2px 8px;border-radius:3px}.bug-batters{flex-direction:column;justify-content:center;align-items:stretch!important;gap:2px;min-width:190px}.bt{display:flex;gap:8px;font-size:17px;color:var(--muted)}.bt .nm{flex:1}.bt .rn{font-weight:700;color:#fff;min-width:22px;text-align:right}.bt .bl{font-size:14px;min-width:20px;text-align:right}.bt.on{color:#fff}.bt.on .nm:after{content:" *";color:var(--gold)}.bug-bowler{gap:8px;font-size:17px}.bug-bowler .lbl{font-size:12px;letter-spacing:.12em}.bug-bowler .fig{font-weight:700;font-size:20px}.bug-bowler .bl{color:var(--muted)}.bug-over{gap:5px}.chip{min-width:26px;height:26px;padding:0 5px;border-radius:13px;display:grid;place-items:center;background:#ffffff1a;font:700 15px var(--display)}.chip.dot{color:var(--muted)}.chip.four{background:#1f7fe0}.chip.six{background:#8e44ff}.chip.w{background:var(--red)}.chip.x{background:#b88a1d}.chip.empty{background:none;color:var(--muted);font-weight:500;font-size:13px}.bug-rate{flex-direction:column;justify-content:center;font-size:16px;color:var(--muted)}.bug-rate b{color:#fff;font-size:19px}.freehit{margin-top:2px;background:var(--gold);color:#11213d;font-weight:800;padding:0 8px;border-radius:3px;letter-spacing:.08em}.banner{position:absolute;top:18px;left:50%;transform:translate(-50%,-20px);opacity:0;transition:all .35s;padding:10px 22px;background:var(--panel);border-bottom:3px solid var(--gold);border-radius:4px;font:600 20px var(--display);letter-spacing:.04em}.banner.show{opacity:1;transform:translate(-50%)}.banner b{color:var(--gold)}.speed{position:absolute;right:22px;bottom:96px;padding:6px 12px;background:var(--panel);border-radius:4px;font:500 16px var(--display);opacity:0;transition:opacity .3s}.speed b{font-size:26px;color:var(--gold)}.speed.show{opacity:1}.toast{position:absolute;top:34%;left:50%;transform:translate(-50%,-50%) scale(.6);opacity:0;transition:all .25s cubic-bezier(.2,1.4,.4,1);font:800 clamp(56px,9vw,130px)/1 var(--display);letter-spacing:.03em;text-align:center;text-shadow:0 6px 30px rgba(0,0,0,.5)}.toast small{display:block;font-size:.32em;letter-spacing:.25em;margin-top:6px}.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.toast.four{color:#5fb3ff}.toast.six{color:#c59bff}.toast.out{color:#ff5a73}.toast.extra{color:var(--gold);font-size:clamp(40px,6vw,80px)}.toast.info{font-size:clamp(34px,5vw,64px);color:#fff}.timing{position:absolute;top:48%;left:50%;transform:translate(-50%);opacity:0;transition:opacity .2s;font:800 30px var(--display);letter-spacing:.12em;padding:4px 14px;border-radius:4px}.timing.show{opacity:1}.timing.perfect{color:#4dff88}.timing.good{color:#c7f36b}.timing.off{color:#ffb14d}.subtitle{position:absolute;left:50%;bottom:96px;transform:translate(-50%);max-width:60vw;padding:8px 16px;background:#0000008c;border-radius:4px;font-size:15px;font-style:italic;opacity:0;transition:opacity .3s;text-align:center}.subtitle.show{opacity:1}.hints{position:absolute;left:50%;top:70px;transform:translate(-50%);text-align:center;font-size:13px;color:#ffffffd9;text-shadow:0 1px 4px rgba(0,0,0,.8);line-height:2}.panel{position:absolute;top:90px;padding:12px;width:210px;background:var(--panel);border:1px solid var(--panel-edge);border-radius:8px;font-size:13px;opacity:0;transform:translate(-10px);transition:all .25s}.panel.show{opacity:1;transform:none}.bowl-panel,.bat-panel{left:18px}.panel .ph{font:700 18px var(--display);letter-spacing:.06em;text-transform:uppercase;margin-bottom:8px;display:flex;flex-direction:column}.panel .ph span{font:500 11px var(--body);color:var(--muted);letter-spacing:.12em}.panel .opt{padding:5px 6px;border-radius:4px;color:var(--muted)}.panel .opt.sel{background:var(--navy-2);color:#fff;box-shadow:inset 3px 0 0 var(--gold)}.panel .row{padding:5px 2px;color:#ffffffd9}.panel .row b{color:var(--gold)}.panel .shotname{margin-top:8px;font:700 20px var(--display);color:var(--gold);text-transform:uppercase}.meter{position:absolute;left:50%;bottom:100px;width:min(460px,60vw);height:16px;transform:translate(-50%);background:#0000008c;border:1px solid rgba(255,255,255,.25);border-radius:8px;overflow:hidden;opacity:0;transition:opacity .2s}.meter.show{opacity:1}.meter-zone{position:absolute;left:72%;width:16%;top:0;bottom:0;background:#4dff8873}.meter-over{position:absolute;inset:0 0 0 96%;background:#ff465a99}.meter-fill{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#fff3,#ffffffd9)}.meter-lock{position:absolute;top:-3px;bottom:-3px;width:3px;background:var(--gold);box-shadow:0 0 8px var(--gold)}.replay-badge{position:absolute;top:18px;left:18px;padding:6px 12px;background:var(--red);border-radius:3px;font:800 20px var(--display);letter-spacing:.12em;opacity:0;transition:opacity .2s}.replay-badge.show{opacity:1;animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.6}}.overlay{position:absolute;inset:0;display:none;place-items:center;background:#03070f8c;pointer-events:auto}.overlay.show{display:grid}.card{min-width:min(520px,92vw);padding:28px 30px;background:linear-gradient(180deg,#102447,#0a1830);border:1px solid rgba(255,255,255,.1);border-top:4px solid var(--gold);border-radius:10px;box-shadow:0 30px 80px #00000080;text-align:center}.card-kicker{font:600 13px var(--body);letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}.card-score{margin:10px 0;font:800 44px/1.05 var(--display)}.card-score small{font-size:.5em;color:var(--muted)}.card-sub{color:#d6e0ee;font-size:15px}.actions{display:flex;justify-content:center;gap:10px;margin-top:22px}.btn{padding:10px 22px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;font:700 18px var(--display);letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.btn.primary{background:var(--gold);color:#11213d;border-color:var(--gold)}@media(max-width:900px){.scorebug{transform:translate(-50%) scale(.72);transform-origin:bottom center}.bug-rate,.bug-bowler{display:none!important}.menu{flex-direction:column;justify-content:center;gap:20px}}.menu-panel{width:min(620px,92vw);max-height:94vh;overflow-y:auto;scrollbar-width:none}.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-grid .tile{padding:14px 16px;min-height:72px;justify-content:center;font-size:21px}.menu-grid .tile small{font-size:12px;line-height:1.35}.menu-grid .tile.wide{grid-column:span 2;min-height:84px;font-size:28px}.menu-grid .tile.ghost{background:#0812248c}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0}.stat-grid div{background:#ffffff0d;border-radius:6px;padding:8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:center}.stat-grid b{display:block;font:800 26px var(--display);color:#fff;letter-spacing:0}.career-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}.career-head .tier{font:800 18px var(--display);color:#11213d;background:var(--gold);padding:4px 10px;border-radius:4px;text-transform:uppercase}.xpbar{height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;margin:10px 0 4px}.xpbar span{display:block;height:100%;background:linear-gradient(90deg,var(--teal),var(--gold))}@media(max-height:760px){.menu-grid .tile{min-height:58px;padding:10px 14px;font-size:18px}.menu-grid .tile.wide{min-height:64px;font-size:22px}.mbtn{padding:9px 14px}}@media(max-width:900px){.menu{padding:20px 4vw;overflow-y:auto}.brand-mark{font-size:44px;flex-direction:row;gap:10px}}
