*{box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#05020c;color:#fff2c9;font-family:Impact,'Arial Narrow Bold',sans-serif;touch-action:none}body.lightsOut{background:radial-gradient(circle at 50% 38%,#160036,#05020c 62%)}body[data-mood=strike] #status,body[data-mood=spare] #status{animation:pulseWin .75s infinite alternate}body[data-mood=miss] #status{color:#ff6b6b!important;text-shadow:0 0 10px #ff2222!important}canvas{position:fixed;inset:0;width:100%;height:100%}header{position:fixed;z-index:5;top:max(8px,env(safe-area-inset-top));left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right));display:flex;align-items:center;justify-content:space-between;gap:8px}header h1{margin:0;color:#8cff25;font-size:clamp(20px,5vw,38px);text-shadow:0 0 12px #8cff25,3px 3px #000}button,a{color:inherit;font:inherit;text-decoration:none;background:#15131b;border:2px solid #e7ad43;padding:8px;border-radius:10px;box-shadow:0 0 12px #0008}button{cursor:pointer}.score{position:fixed;z-index:5;top:58px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding:7px 13px;background:#070411e6;border:1px solid #8cff25aa;border-radius:999px;font:700 12px monospace;white-space:nowrap;box-shadow:0 0 18px #8cff2555}.score #status{color:#8cff25;text-shadow:0 0 8px #8cff25}.score #turnBadge{padding:4px 9px;border-radius:999px;background:#ff3cff;color:#12051a;box-shadow:0 0 12px #ff3cff}.score #turnBadge.wait{background:#2e2540;color:#d9c9ff;box-shadow:none}.score #turnBadge.mine{background:#8cff25;color:#132400}#scoreboard{position:fixed;z-index:5;top:96px;left:50%;transform:translateX(-50%);width:min(1080px,96vw);padding:8px;background:#06030fd9;border:1px solid #ff3cff88;border-radius:14px;box-shadow:0 0 18px #ff3cff44;font:700 11px monospace;pointer-events:none}#leader{text-align:center;color:#ffeb67;letter-spacing:.12em;margin-bottom:5px;text-shadow:0 0 10px #ffeb67}.scoreRow{display:grid;grid-template-columns:minmax(82px,1.4fr) repeat(10,minmax(30px,1fr)) 48px;gap:3px;align-items:stretch;margin:3px 0;opacity:.72}.scoreRow.active{opacity:1;filter:drop-shadow(0 0 7px #8cff25)}.scoreRow b,.scoreRow strong,.scoreRow span{background:#140a22;border:1px solid #ffffff22;border-radius:6px;padding:4px;text-align:center;min-height:28px}.scoreRow b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8cff25}.scoreRow span.now{border-color:#8cff25;background:#17230e}.scoreRow span em{display:block;color:#ffeb67;font-style:normal;font-size:9px;line-height:1}.scoreRow strong{color:#fff;background:#361353;border-color:#ff3cff}#picker,#message{position:fixed;z-index:10;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:radial-gradient(circle at 50% 30%,#3b0065,#09070c 68%)}#picker:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#00f5ff22 0 2px,transparent 2px 72px),linear-gradient(#ff35d422 0 2px,transparent 2px 72px);mask:linear-gradient(#0000,#000 18%,#000 80%,#0000);pointer-events:none}#picker>*{position:relative}#picker h2,#message h2{font-size:clamp(30px,8vw,64px);margin:0;color:#8cff25;text-shadow:0 0 18px #8cff25,4px 4px #000}#picker h3{margin:0;color:#ffeb67;letter-spacing:.08em;text-shadow:0 0 10px #ff3cff}#roster{display:grid;grid-template-columns:repeat(4,minmax(70px,120px));gap:7px;max-width:95vw}#roster button.active,.mode button.active,#glowToggle.active,.ballChoice.active{background:#8cff25;color:#142006;border-color:#f6ff70;box-shadow:0 0 18px #8cff25}.mode,#roomActions,#roomReady,#ballPicker{display:flex;gap:7px;align-items:center;justify-content:center;flex-wrap:wrap}#ballPicker{max-width:min(760px,96vw)}.ballChoice{display:flex;align-items:center;gap:8px;background:#10071e;border-color:#ff3cff}.ballChoice span{width:20px;height:20px;border-radius:50%;display:inline-block;box-shadow:inset -4px -5px 5px #0008,0 0 10px currentColor}#onlineLobby strong{display:block;color:#8cff25;font:700 13px monospace}#roomCode{width:120px;padding:9px;background:#17131b;border:2px solid #e7ad43;color:white;text-align:center;font:700 13px monospace;text-transform:uppercase;border-radius:10px}#swipeHelp{position:fixed;z-index:5;left:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(92vw,680px);padding:10px 14px;text-align:center;background:#070411e6;border:1px solid #e7ad43;border-radius:14px;color:#fff2c9;font:700 clamp(10px,2.5vw,13px) monospace;pointer-events:none;box-shadow:0 0 16px #000}#swipeTrail{position:fixed;z-index:6;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}#swipePath{fill:none;stroke:#8cff25;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 5px #8cff25)}@keyframes pulseWin{from{transform:scale(1);filter:brightness(1)}to{transform:scale(1.08);filter:brightness(1.6)}}@media(max-width:700px){header h1{font-size:18px}.score{top:54px;max-width:96vw;overflow:hidden;gap:7px;font-size:10px}.score span:last-child{max-width:34vw;overflow:hidden;text-overflow:ellipsis}#scoreboard{top:92px;padding:5px;font-size:9px}.scoreRow{grid-template-columns:minmax(52px,1.2fr) repeat(10,minmax(20px,1fr)) 34px;gap:2px}.scoreRow b,.scoreRow strong,.scoreRow span{padding:2px;min-height:23px}#roster{grid-template-columns:repeat(2,minmax(120px,1fr))}.ballChoice{font-size:13px;padding:7px}}@media(orientation:landscape) and (max-height:450px){header h1{font-size:21px}.score{top:45px}#scoreboard{top:80px;transform:translateX(-50%) scale(.86);transform-origin:top center}.scoreRow{margin:1px 0}#swipeHelp{bottom:6px;padding:6px}#roster{grid-template-columns:repeat(7,minmax(62px,90px))}#roster button{padding:5px}#picker{gap:8px}#picker h2{font-size:28px}#ballPicker{max-width:92vw}.ballChoice{padding:5px;font-size:12px}}
