@font-face{font-family:Uni Neue;src:url(/fonts/UniNeue-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Uni Neue;src:url(/fonts/UniNeue-Bold.woff2) format("woff2");font-weight:700;font-display:swap}:root{--team-blue: #0096c8;--team-green: #3de8a0;--aha-pink: #db476b;--dark: #1d2129;--font: "Uni Neue", "Segoe UI", "Helvetica Neue", Arial, sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden;font-family:var(--font);background:#9ecfff}#app canvas{display:block;position:fixed;inset:0}#ui{position:fixed;inset:0;pointer-events:none;overflow:hidden}.scoreboard{position:absolute;bottom:22px;left:50%;transform:translate(-50%);display:flex;align-items:stretch;background:#191e28e0;border-radius:999px;overflow:hidden;color:#fff;box-shadow:0 10px 30px #00000059;min-width:380px}.scoreboard .side{display:flex;align-items:center;gap:10px;padding:10px 22px;font-weight:700;font-size:18px}.scoreboard .side .score{font-size:26px;min-width:24px;text-align:center}.scoreboard .side.blue{background:var(--team-blue);border-radius:999px 0 0 999px}.scoreboard .side.green{background:var(--team-green);color:#10331f;border-radius:0 999px 999px 0;flex-direction:row-reverse}.scoreboard .middle{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 26px;line-height:1.15}.scoreboard .clock{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.scoreboard .players{font-size:12px;color:#aeb6c2}.banner{position:absolute;z-index:2;top:16%;left:50%;transform:translate(-50%);text-align:center;color:#fff;text-shadow:0 4px 18px rgba(0,0,0,.45);transition:opacity .25s ease}.banner.hidden{opacity:0}.banner .big{font-size:72px;font-weight:700;letter-spacing:.02em}.banner .small{font-size:22px;font-weight:700;opacity:.9}.banner .goal-team-0{color:var(--team-blue)}.banner .goal-team-1{color:var(--team-green)}.banner.fulltime{top:20%;width:max-content;max-width:92vw;padding:26px 64px 22px;background:#121721eb;border-radius:26px;border-top:6px solid #fff;box-shadow:0 26px 80px #0000008c;backdrop-filter:blur(6px);animation:ft-pop .5s cubic-bezier(.2,1.4,.4,1)}.banner.fulltime.ft-winner-0{border-top-color:var(--team-blue)}.banner.fulltime.ft-winner-1{border-top-color:var(--team-green)}.banner.fulltime .big{font-size:unset;line-height:1.1}.ft-label{font-size:17px;font-weight:700;letter-spacing:.4em;text-transform:uppercase;color:var(--aha-pink);margin-bottom:4px}.ft-score{font-size:118px;font-weight:700;font-variant-numeric:tabular-nums}.ft-score .ft-s0{color:var(--team-blue)}.ft-score .ft-s1{color:var(--team-green)}.ft-score .ft-colon{margin:0 22px;opacity:.5}.ft-result{font-size:42px;font-weight:700;margin-bottom:6px}.banner.fulltime .small{font-size:19px;color:#aeb6c2}@keyframes ft-pop{0%{opacity:0;transform:translate(-50%) scale(.8)}to{opacity:1;transform:translate(-50%) scale(1)}}.nametag{position:absolute;transform:translate(-50%,-100%);padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;color:#fff;background:#191e28bf;white-space:nowrap}.nametag.team-0{border-bottom:3px solid var(--team-blue)}.nametag.team-1{border-bottom:3px solid var(--team-green)}.nametag.self{background:#ffffffeb;color:var(--dark)}.name-pill{position:absolute;left:18px;bottom:22px;display:flex;align-items:center;gap:8px;padding:10px 18px;border:0;border-radius:999px;background:#191e28e0;color:#fff;font:700 14px var(--font);cursor:pointer;pointer-events:auto;box-shadow:0 10px 30px #00000059}.name-pill:hover{background:#2d3442f2}.name-pill .pen{color:var(--aha-pink)}.name-dialog{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0a0e168c;pointer-events:auto;z-index:3}.name-dialog .card{width:320px;padding:26px 30px;border-radius:20px;background:#121721f7;text-align:center;box-shadow:0 26px 80px #0000008c}.name-dialog .title{color:#fff;font-size:20px;font-weight:700;margin-bottom:14px}.name-dialog input{width:100%;padding:10px 14px;border:2px solid #3a414d;border-radius:12px;background:#10141c;color:#fff;font:700 18px var(--font);text-align:center;outline:none}.name-dialog input:focus{border-color:var(--team-blue)}.name-dialog .row{display:flex;gap:10px;margin-top:16px}.name-dialog .row button{flex:1;padding:10px 0;border:0;border-radius:12px;font:700 15px var(--font);cursor:pointer}.name-dialog .save{background:var(--team-blue);color:#fff}.name-dialog .cancel{background:#2a2f38;color:#c7cdd6}.name-dialog .hint{margin-top:12px;font-size:12px;color:#8a93a3}.overlay-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#141a26bf;color:#fff;font-size:24px;font-weight:700;pointer-events:auto}
