*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#10161c;font-family:Inter,Arial,sans-serif;color:#fff}canvas{display:block;width:100%;height:100%;cursor:crosshair}.hidden{display:none!important}section{position:fixed;inset:0}#auth-screen,#end-screen{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#293844,#0a0e13 72%);z-index:5}.card{width:min(520px,92vw);padding:36px;border-radius:24px;text-align:center;background:#101820ed;border:1px solid #fff2;box-shadow:0 30px 100px #000a}.logo{font-size:58px;font-weight:1000;letter-spacing:-4px}.logo span{color:#5af}.card p{color:#aeb9c6;line-height:1.5}.card input{display:block;width:100%;margin:9px 0;padding:13px 14px;border:1px solid #fff1;border-radius:10px;background:#0a1016;color:#fff;outline:none}.card button{width:100%;margin-top:9px;padding:13px;border:0;border-radius:10px;background:#3e94ed;color:#fff;font-weight:900;cursor:pointer}.card hr{border:0;border-top:1px solid #fff1;margin:20px 0}.card #auth-error{color:#ff7a86;min-height:20px;margin-top:12px}.top{position:absolute;top:15px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:18px;pointer-events:none}.team,.score,.status,.controls{background:#0d141bdd;border:1px solid #fff1;border-radius:12px;box-shadow:0 8px 30px #0005;backdrop-filter:blur(8px)}.team{width:170px;padding:10px;text-align:center;font-weight:900;letter-spacing:2px}.team b{display:block;font-size:22px;letter-spacing:0}.blue{color:#5af}.red{color:#ff5964}.score{padding:10px 18px;font-size:26px;font-weight:1000}.score small{display:block;font-size:9px;text-align:center;color:#9ba8b5;letter-spacing:2px}.status{position:absolute;top:16px;left:16px;padding:10px 14px;font-size:13px}.controls{position:absolute;bottom:16px;left:50%;transform:translate(-50%);padding:11px 15px;color:#b8c3cf;font-size:12px}.controls b{color:#fff}#banner{position:absolute;top:100px;left:50%;transform:translate(-50%);font-size:24px;font-weight:1000;opacity:0;transition:.2s;text-shadow:0 4px 20px #000}#end-screen .big{font-size:54px;font-weight:1000;color:#5af;margin:20px}#replay{background:#5af}@media(max-width:700px){.top{gap:5px}.team{width:110px;font-size:11px}.score{font-size:20px}.controls{white-space:nowrap;font-size:10px}}
