:root{--bg: #04050a;--panel: rgba(12, 14, 24, .62);--panel-2: rgba(22, 24, 40, .66);--ink: #f2f3fa;--muted: #98a0b8;--line: rgba(255, 255, 255, .09);--accent: #4c6ef5;--accent-2: #b197fc;--good: #37d67a;--warn: #ffb400;--bad: #ff5a5f;--radius: 22px;--shadow: 0 24px 70px rgba(0, 0, 0, .55);--font-hud: "Barlow Condensed", "Arial Narrow", "Helvetica Neue", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overflow:hidden;touch-action:manipulation;user-select:none;-webkit-user-select:none}button{font-family:inherit;cursor:pointer}h1,h2,h3{margin:0;line-height:1.02;letter-spacing:-.02em}.fill{position:fixed;top:0;right:0;bottom:0;left:0}.center{display:flex;align-items:center;justify-content:center}.col{display:flex;flex-direction:column}.muted{color:var(--muted)}.glass{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:var(--shadow)}.btn{border:none;border-radius:999px;padding:16px 28px;font-size:18px;font-weight:800;letter-spacing:.04em;color:#fff;background:linear-gradient(180deg,var(--accent),#3a56d4);box-shadow:0 8px 24px #4c6ef559;transition:transform .06s ease,filter .15s ease}.btn:active{transform:scale(.96)}.btn:disabled{filter:grayscale(.6) brightness(.6);cursor:not-allowed}.btn-ghost{background:var(--panel-2);box-shadow:none;color:var(--ink)}.dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex:0 0 auto}.fx-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;z-index:0;background:var(--bg)}.fx-fallback{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(1100px 700px at 30% 110%,#12224a 0%,transparent 60%),radial-gradient(900px 700px at 75% -10%,#241a4d 0%,var(--bg) 65%)}.home{max-width:640px;padding:40px;text-align:center;gap:22px}.home h1{font-size:66px;font-weight:900;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.tv-root{position:fixed;top:0;right:0;bottom:0;left:0}.tv-chrome-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:clamp(14px,2.2vh,26px) clamp(18px,2.4vw,34px);z-index:6;pointer-events:none;transition:opacity .6s ease}.tv-chrome-top.recede{opacity:0}.brand{font-size:clamp(15px,2vh,22px);font-weight:900;letter-spacing:.18em;opacity:.85;text-shadow:0 2px 12px rgba(0,0,0,.6)}.brand .dot{color:var(--accent);width:auto;height:auto}.code-pill{display:flex;align-items:center;gap:10px;padding:8px 18px;font-weight:900;letter-spacing:.2em;font-size:clamp(14px,2vh,20px);border-radius:999px}.tv-phase-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2}.tv-root .phase-screen{pointer-events:none}.phase-screen{position:absolute;top:0;right:0;bottom:0;left:0;padding:clamp(16px,4vh,56px);gap:clamp(10px,2vh,22px);z-index:2}.host-dock{position:absolute;right:clamp(14px,2vw,28px);bottom:clamp(14px,2.4vh,28px);z-index:7;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:16px}.host-dock select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-weight:700}.dock-btn{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);border-radius:10px;padding:8px 14px;font-weight:800;letter-spacing:.06em;font-size:13px;transition:transform .06s ease,background .15s ease}.dock-btn:active{transform:scale(.94)}.dock-btn.go{background:linear-gradient(180deg,var(--good),#26a15c);border:none;color:#04140b}.attract{align-items:center;justify-content:center;text-align:center}.attract-title{font-size:clamp(22px,4.4vh,52px);font-weight:900;letter-spacing:.34em;text-shadow:0 4px 30px rgba(0,0,0,.7)}.qr-panel{background:#fff;border-radius:26px;padding:clamp(12px,1.8vh,24px);box-shadow:var(--shadow),0 0 90px #788cff38;display:grid;place-items:center}.qr-panel svg{display:block;width:100%;height:100%}.attract-qr{width:min(56vh,44vw);height:min(56vh,44vw)}.room-code{font-size:clamp(40px,9vh,110px);font-weight:900;letter-spacing:.22em;text-indent:.22em;font-variant-numeric:tabular-nums;text-shadow:0 6px 40px rgba(0,0,0,.8)}.join-url{font-size:clamp(14px,2.2vh,22px);color:var(--muted);text-shadow:0 2px 10px rgba(0,0,0,.8)}.lobby-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-columns:46% 54%;align-items:center;padding:clamp(56px,9vh,110px) clamp(20px,3vw,48px) clamp(20px,4vh,44px);gap:clamp(16px,2.5vw,40px);z-index:2}.lobby-qr-col{align-items:center;gap:clamp(10px,1.8vh,20px)}.lobby-qr-panel{width:min(52vh,34vw);height:min(52vh,34vw)}.lobby-roster-col{gap:clamp(10px,1.8vh,18px);min-height:0;max-height:100%;justify-content:center}.lobby-status-card{padding:clamp(14px,2.4vh,26px) clamp(18px,2vw,30px);display:flex;flex-direction:column;gap:6px}.lobby-count{display:flex;align-items:baseline;gap:12px}.lobby-count .big{font-size:clamp(30px,6vh,62px);font-weight:900}.lobby-ready-line{font-weight:800;letter-spacing:.05em;color:var(--warn);font-size:clamp(14px,2.2vh,22px)}.lobby-ready-line.go{color:var(--good)}.lobby-roster{display:flex;flex-direction:column;gap:8px;overflow:hidden auto;min-height:0;padding-right:4px}.roster-row{display:flex;align-items:center;gap:12px;border-radius:14px;padding:10px 16px;font-weight:800;font-size:clamp(15px,2.2vh,24px);backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--panel-2);box-shadow:none}.roster-row.joining{opacity:.5;font-style:italic}.roster-name{display:flex;align-items:center;gap:10px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bot-tag{font-style:normal;font-size:.62em;font-weight:900;letter-spacing:.12em;color:var(--accent-2);border:1px solid rgba(177,151,252,.4);border-radius:6px;padding:1px 6px;margin-left:8px;vertical-align:middle}.ready-pill{margin-left:auto;font-size:.62em;font-weight:900;letter-spacing:.14em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 12px;animation:waiting-pulse 2s ease-in-out infinite}.ready-pill.on{color:#06180d;background:var(--good);border-color:transparent;animation:none;box-shadow:0 0 18px #37d67a80}@keyframes waiting-pulse{0%,to{opacity:.5}50%{opacity:1}}.lobby-hint{font-size:clamp(12px,1.8vh,18px);letter-spacing:.08em}.mote-field{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;overflow:hidden}.mote{position:absolute;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--mote, #fff);box-shadow:0 0 12px var(--mote, #fff),0 0 44px var(--mote, #fff);opacity:.9;transition:left .12s linear,top .12s linear;will-change:left,top}.mote.ready:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;border-radius:50%;border:2px solid var(--mote, #fff);opacity:.8;animation:mote-ring 1.6s ease-out infinite}@keyframes mote-ring{0%{transform:scale(.7);opacity:.9}to{transform:scale(1.5);opacity:0}}.mote-tag{position:absolute;top:-26px;left:50%;transform:translate(-50%);font-size:13px;font-weight:800;white-space:nowrap;text-shadow:0 2px 8px #000}.emote{position:absolute;font-size:34px;margin:-40px 0 0 -17px;animation:emote-rise 2.6s ease-out forwards;pointer-events:none}@keyframes emote-rise{0%{opacity:0;transform:translateY(6px) scale(.6)}15%{opacity:1;transform:translateY(-4px) scale(1.1)}to{opacity:0;transform:translateY(-70px) scale(1)}}.countdown-screen{align-items:center;justify-content:center;text-align:center}.count-label{font-family:var(--font-hud);font-size:clamp(17px,3.2vh,32px);font-weight:700;letter-spacing:.42em;text-transform:uppercase;color:#ffffffbf;text-shadow:0 2px 14px rgba(0,0,0,.8)}.count-num{font-family:var(--font-hud);font-size:clamp(150px,40vh,440px);font-weight:800;line-height:.9;font-variant-numeric:tabular-nums;text-shadow:0 0 60px rgba(255,255,255,.35),0 10px 60px rgba(0,0,0,.8);animation:count-pop 1s cubic-bezier(.2,.9,.3,1)}@keyframes count-pop{0%{transform:scale(1.45);opacity:0;filter:blur(6px)}30%{transform:scale(1);opacity:1;filter:blur(0)}to{transform:scale(.94);opacity:.95}}.count-hint{color:var(--muted);font-size:clamp(14px,2.4vh,24px)}.team-reveal{position:absolute;left:0;right:0;bottom:clamp(20px,6vh,70px);display:flex;justify-content:space-between;padding:0 clamp(20px,4vw,70px);gap:20px}.team-panel{min-width:clamp(220px,26vw,460px);max-width:42vw;padding:clamp(12px,2vh,22px) clamp(16px,1.8vw,28px);border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:4px solid var(--team);box-shadow:var(--shadow);box-shadow:0 0 60px color-mix(in srgb,var(--team) 26%,transparent),var(--shadow)}.team-panel.left{animation:slide-in-l .7s cubic-bezier(.2,.9,.3,1) both}.team-panel.right{animation:slide-in-r .7s cubic-bezier(.2,.9,.3,1) both;text-align:right}@keyframes slide-in-l{0%{transform:translate(-60%);opacity:0}}@keyframes slide-in-r{0%{transform:translate(60%);opacity:0}}.team-name{font-family:var(--font-hud);font-size:clamp(22px,4.4vh,48px);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--team)}.team-members{margin-top:6px;display:flex;flex-wrap:wrap;gap:6px 14px;font-weight:700;font-size:clamp(13px,2vh,20px);justify-content:inherit}.team-panel.right .team-members{justify-content:flex-end}.battle-hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;font-family:var(--font-hud)}.bar-hud{position:absolute;top:clamp(16px,2.8vh,32px);left:50%;transform:translate(-50%);display:flex;align-items:center;z-index:5;filter:drop-shadow(0 8px 22px rgba(0,0,0,.55))}.bcast-plate{display:flex;align-items:center;transform:skew(-12deg);padding:clamp(6px,1.1vh,10px) clamp(14px,1.5vw,24px);border-radius:3px}.bcast-plate-inner{transform:skew(12deg);display:flex;align-items:center;gap:clamp(8px,.9vw,14px)}.bcast-name{font-style:normal;font-size:clamp(13px,2vh,19px);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#ffffffeb}.bcast-score{font-size:clamp(19px,3.1vh,30px);font-weight:800;color:#fff;font-variant-numeric:tabular-nums;line-height:1}.bar-track{position:relative;width:min(46vw,660px);height:clamp(14px,2.4vh,22px);background:#060910d9;margin:0 4px;display:flex;overflow:visible}.bar-fill{height:100%;transition:width .12s linear;background:var(--team);background:linear-gradient(90deg,var(--deep, var(--team)),var(--team))}.bar-fill.right{background:var(--team);background:linear-gradient(270deg,var(--deep, var(--team)),var(--team))}.bar-tick{position:absolute;top:2px;bottom:2px;width:1px;background:#ffffff4d}.bar-tick.center{left:50%;top:0;bottom:0;width:2px;background:#ffffff80}.bar-marker{position:absolute;top:-4px;bottom:-4px;width:5px;margin-left:-2.5px;background:#fff;box-shadow:0 0 14px #ffffffe6,0 0 34px #ffffff80;transition:left .12s linear}.hud-clock{position:absolute;top:clamp(58px,9.4vh,96px);left:50%;transform:translate(-50%);font-family:var(--font-hud);font-size:clamp(19px,3.4vh,36px);font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.12em;color:#ffffffeb;text-shadow:0 2px 14px rgba(0,0,0,.8);z-index:5}.hud-clock.low{color:var(--bad);animation:clock-panic 1s ease-in-out infinite}.hud-clock.sd{color:var(--bad);animation:clock-panic .8s ease-in-out infinite}@keyframes clock-panic{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(-50%) scale(1.1)}}.lower-third{position:absolute;left:clamp(20px,2.2vw,34px);bottom:clamp(24px,4.4vh,44px);font-family:var(--font-hud);font-size:clamp(14px,2.4vh,24px);font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--lt, #fff);background:#080b12b8;border-left:3px solid var(--lt, #fff);padding:clamp(7px,1.2vh,11px) clamp(14px,1.4vw,20px) clamp(7px,1.2vh,11px) clamp(12px,1.2vw,17px);z-index:5;animation:lt-in .35s ease both}@keyframes lt-in{0%{transform:translate(-16px);opacity:0}}.boost-stinger{position:absolute;left:50%;top:26%;transform:translate(-50%) skew(-12deg);background:var(--deep, #222);border-left:4px solid var(--team, #fff);border-right:4px solid var(--team, #fff);padding:clamp(10px,2vh,20px) clamp(26px,3vw,48px);border-radius:4px;z-index:6;filter:drop-shadow(0 10px 30px rgba(0,0,0,.6));animation:stinger-in .45s cubic-bezier(.16,1,.3,1) both,stinger-out .4s ease 2s both}.boost-stinger span{display:block;transform:skew(12deg);font-family:var(--font-hud);font-size:clamp(30px,6.4vh,66px);font-weight:800;font-style:italic;letter-spacing:.12em;text-transform:uppercase;color:#fff;text-shadow:0 0 30px var(--team, #fff)}@keyframes stinger-in{0%{transform:translate(-90%) skew(-12deg);opacity:0}}@keyframes stinger-out{to{transform:translate(30%) skew(-12deg);opacity:0}}.ot-overlay{position:absolute;left:50%;top:30%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:clamp(6px,1.4vh,14px);z-index:6;text-align:center}.ot-word{font-family:var(--font-hud);font-style:italic;font-size:clamp(56px,12vh,140px);font-weight:800;letter-spacing:.14em;text-indent:.14em;text-transform:uppercase;color:var(--team);text-shadow:0 0 60px var(--team),0 8px 40px rgba(0,0,0,.8);animation:ot-pulse .75s ease-in-out infinite}@keyframes ot-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}.ot-sub{font-family:var(--font-hud);font-size:clamp(15px,2.6vh,28px);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-variant-numeric:tabular-nums;text-shadow:0 2px 14px rgba(0,0,0,.85)}.ot-meter{width:min(34vw,440px);height:12px;border-radius:999px;background:#00000073;box-shadow:0 0 0 1px #ffffff2e;overflow:hidden}.ot-meter-fill{height:100%;border-radius:999px;background:var(--team);box-shadow:0 0 18px var(--team);transition:width .09s linear}.ot-hint{font-size:clamp(11px,1.8vh,17px);letter-spacing:.22em;color:#ffffffa6;text-shadow:0 2px 10px rgba(0,0,0,.8)}.fly-layer{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:3}.fly-num{position:absolute;font-weight:900;font-size:clamp(22px,3.6vh,40px);color:var(--team);text-shadow:0 0 14px var(--team),0 4px 18px rgba(0,0,0,.8);animation:fly-up 1.5s cubic-bezier(.2,.7,.4,1) forwards;will-change:transform,opacity}.fly-num.big{font-size:clamp(32px,5.4vh,62px)}.fly-num.boost{font-size:clamp(44px,8vh,96px);animation-duration:2s;text-shadow:0 0 26px var(--team),0 0 80px var(--team),0 6px 24px rgba(0,0,0,.8)}@keyframes fly-up{0%{transform:translateY(12px) scale(.6);opacity:0}12%{transform:translateY(0) scale(1.08);opacity:1}to{transform:translateY(-26vh) scale(1);opacity:0}}.results-screen{align-items:center;justify-content:center;text-align:center}.results-kicker{font-family:var(--font-hud);font-weight:700;letter-spacing:.5em;text-transform:uppercase;color:#ffffffb3;font-size:clamp(15px,2.6vh,26px);animation:result-in .6s ease both}.results-title{font-family:var(--font-hud);font-style:italic;font-size:clamp(66px,16vh,210px);font-weight:800;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 0 70px currentColor,0 10px 60px rgba(0,0,0,.85);animation:result-in .7s cubic-bezier(.2,.9,.3,1) .1s both}.results-score{font-size:clamp(26px,5.4vh,60px);font-weight:900;font-variant-numeric:tabular-nums;animation:result-in .7s ease .25s both}.results-score .vs{color:var(--muted);font-style:normal}@keyframes result-in{0%{transform:translateY(26px) scale(.94);opacity:0}}.results-footer{letter-spacing:.1em}.rank{display:flex;flex-direction:column;gap:8px;width:min(560px,80vw);padding:14px;animation:result-in .7s ease .4s both}.rank .row{display:flex;align-items:center;gap:12px;background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:12px 18px;font-size:clamp(15px,2.4vh,22px);font-weight:700}.rank .row .pos{width:40px;font-weight:900;color:var(--muted)}.rank .row .score{margin-left:auto;font-weight:900;font-variant-numeric:tabular-nums}.overlay-screen{position:absolute;top:0;right:0;bottom:0;left:0;padding:clamp(56px,10vh,110px) clamp(20px,4vw,60px) clamp(20px,4vh,40px);gap:20px;text-align:center;align-items:center;justify-content:center;z-index:2}.overlay-screen h2{font-size:clamp(30px,6vh,64px);font-weight:900;text-shadow:0 4px 24px rgba(0,0,0,.8)}.countdown{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:5}.countdown .num{font-size:clamp(120px,34vh,380px);font-weight:900;color:var(--accent-2);text-shadow:0 0 60px rgba(177,151,252,.5)}.controller-root{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.ctrl-head{position:relative;z-index:4;display:flex;align-items:center;justify-content:space-between;padding:max(12px,env(safe-area-inset-top)) 18px 10px;font-size:14px;color:var(--muted);pointer-events:none}.ctrl-head .ctrl-me{display:flex;align-items:center;gap:8px;font-weight:800;color:var(--ink);text-shadow:0 2px 8px rgba(0,0,0,.8)}.ctrl-body{position:relative;flex:1;min-height:0;z-index:2;display:flex;flex-direction:column}.name-gate{flex:1;padding:22px;justify-content:center}.name-card{gap:20px;padding:30px 26px;width:min(400px,92vw);text-align:center}.name-card h1{font-size:30px;font-weight:900}.input{width:100%;font-size:24px;text-align:center;padding:16px;border-radius:16px;border:2px solid var(--line);background:#06080e99;color:var(--ink);outline:none}.input:focus{border-color:var(--accent)}.ctrl-lobby{flex:1;min-height:0;padding:8px 18px calc(14px + env(safe-area-inset-bottom));gap:14px}.ctrl-lobby-top{gap:2px;text-align:center}.ctrl-me-name{font-size:30px;font-weight:900;text-shadow:0 0 24px currentColor}.ctrl-ready-wrap{flex:1;min-height:0;gap:18px}.ready-btn{width:min(62vw,300px);height:min(62vw,300px);border-radius:50%;border:3px solid var(--me, #8a8a99);background:#080a1273;color:var(--ink);font-size:30px;font-weight:900;letter-spacing:.06em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 0 44px #7882a04d;box-shadow:0 0 44px color-mix(in srgb,var(--me, #8a8a99) 30%,transparent);transition:transform .08s ease,background .25s ease,box-shadow .25s ease}.ready-btn:active{transform:scale(.94)}.ready-btn.on{background:var(--me, #8a8a99);background:color-mix(in srgb,var(--me, #8a8a99) 82%,#000);box-shadow:0 0 70px #7882a080,inset 0 0 30px #ffffff2e;box-shadow:0 0 70px color-mix(in srgb,var(--me, #8a8a99) 65%,transparent),inset 0 0 30px #ffffff2e;animation:ready-breathe 2.4s ease-in-out infinite}@keyframes ready-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.ctrl-ready-status{font-weight:700;letter-spacing:.04em;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.8)}.emote-bar{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.emote-btn{border:1px solid var(--line);background:var(--panel-2);border-radius:14px;font-size:26px;padding:9px 0;transition:transform .06s ease}.emote-btn:active{transform:scale(.86)}.ctrl-countdown{position:relative;flex:1;text-align:center;gap:10px}.unready-btn{margin-top:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:999px;padding:10px 22px;font-weight:800;letter-spacing:.08em;font-size:14px}.unready-btn:active{transform:scale(.94)}.ctrl-team-name{font-size:44px;font-weight:900;letter-spacing:.1em;text-shadow:0 0 34px currentColor}.ctrl-count-num{font-size:34vh;line-height:.95;font-weight:900;font-variant-numeric:tabular-nums;text-shadow:0 0 60px rgba(255,255,255,.25)}.tap-surface{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;overflow:hidden;display:flex;align-items:flex-start;justify-content:center}.tap-counter{margin-top:6vh;display:flex;flex-direction:column;align-items:center;pointer-events:none;text-shadow:0 0 30px var(--me, #fff)}.tap-count{font-size:15vh;font-weight:900;line-height:1;font-variant-numeric:tabular-nums}.tap-count-label{font-weight:800;letter-spacing:.4em;color:var(--muted)}.tap-hint{position:absolute;bottom:16vh;left:0;right:0;text-align:center;font-weight:900;letter-spacing:.24em;color:#ffffffd9;text-shadow:0 2px 14px rgba(0,0,0,.9);animation:waiting-pulse 1.6s ease-in-out infinite;pointer-events:none}.tap-surface.boosted{animation:boost-surface .6s ease-in-out infinite}@keyframes boost-surface{0%,to{filter:brightness(1)}50%{filter:brightness(1.18)}}.boost-meter-wrap{position:absolute;top:max(10px,env(safe-area-inset-top));left:16px;right:16px;display:flex;flex-direction:column;gap:5px;pointer-events:none;z-index:4}.boost-meter-label{font-weight:900;letter-spacing:.18em;font-size:15px;color:var(--warn);text-shadow:0 2px 10px rgba(0,0,0,.9);text-align:center}.boost-meter{height:10px;border-radius:999px;background:#00000080;box-shadow:0 0 0 1px #fff3;overflow:hidden}.boost-meter-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--warn),#ffe14a);box-shadow:0 0 16px var(--warn);transition:width .1s linear}.ctrl-callout{position:absolute;left:0;right:0;top:34vh;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;text-align:center}.ctrl-callout-word{font-size:11vw;font-weight:900;letter-spacing:.06em;text-shadow:0 0 40px rgba(255,255,255,.35),0 4px 20px rgba(0,0,0,.9);animation:ot-pulse .7s ease-in-out infinite}.ctrl-callout.break .ctrl-callout-word{color:var(--bad)}.ctrl-callout.sd .ctrl-callout-word{color:var(--warn);font-size:9vw}.ctrl-callout-sub{font-weight:800;letter-spacing:.2em;font-variant-numeric:tabular-nums;color:#ffffffd9;text-shadow:0 2px 12px rgba(0,0,0,.9)}.boost-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;padding:12px 14px calc(14px + env(safe-area-inset-bottom));gap:12px;background:#03040859;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.boost-card{padding:12px 16px;gap:10px;align-items:center}.boost-title{width:100%;text-align:center;color:var(--warn);font-weight:900;letter-spacing:.08em;font-size:18px}.boost-slots{display:flex;gap:10px}.boost-slot{width:52px;height:64px;display:grid;place-items:center;font-size:30px;font-weight:900;border-radius:12px;background:#06080eb3;border:1px solid var(--line)}.boost-slot.done{background:var(--good);color:#06180d;border-color:transparent;box-shadow:0 0 18px #37d67a99}.boost-keys{flex:1;min-height:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.boost-key{font-size:clamp(34px,6vh,52px);font-weight:900;color:var(--ink);border-radius:16px;backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--panel-2);box-shadow:none}.boost-key:active{transform:scale(.93);background:#ffb40040}.ctrl-results{position:relative;flex:1;text-align:center;gap:12px}.ctrl-result-word{font-size:13vw;font-weight:900;letter-spacing:.06em;text-shadow:0 0 50px rgba(255,255,255,.3)}.ctrl-result-taps{font-size:40px;font-weight:900;font-variant-numeric:tabular-nums}.pad{flex:1;display:flex;flex-direction:column;gap:16px;min-height:0;padding:12px 16px calc(16px + env(safe-area-inset-bottom))}.banner{text-align:center;padding:24px;gap:12px}.spinner{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.status-dot.open{background:var(--good)}.status-dot.closed,.status-dot.connecting{background:var(--warn)}.dev{height:100%;display:grid;grid-template-columns:1fr 380px}.dev-tv{position:relative;border-right:1px solid var(--line);overflow:hidden;transform:translateZ(0)}.dev-tv .fx-canvas,.dev-tv .tv-root,.dev-tv .fx-fallback{position:absolute}.dev-phones{overflow:auto;padding:12px;display:flex;flex-direction:column;gap:12px;background:#06060a;z-index:1}.dev-phone{height:560px;border:1px solid var(--line);border-radius:24px;overflow:hidden;position:relative;background:var(--bg);flex:0 0 auto;transform:translateZ(0)}.dev-phone .fx-canvas,.dev-phone .controller-root,.dev-phone .fx-fallback{position:absolute}.dev-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tv-intro{align-items:center;justify-content:center;text-align:center;gap:clamp(8px,1.6vh,18px)}.intro-brand{font-size:clamp(15px,2.4vh,26px);font-weight:900;letter-spacing:.55em;text-indent:.55em;color:var(--muted);animation:intro-kicker .9s cubic-bezier(.16,1,.3,1) both}.intro-title{font-family:var(--font-hud);font-style:italic;font-size:clamp(70px,19vh,220px);font-weight:800;letter-spacing:.06em;text-transform:uppercase;background:linear-gradient(180deg,#fff 30%,#8fa2ff 90%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 10px 50px rgba(110,130,255,.45));animation:intro-slam .8s .25s cubic-bezier(.16,1,.3,1) both}.intro-sub{font-family:var(--font-hud);font-size:clamp(14px,2.6vh,30px);font-weight:700;letter-spacing:.4em;text-indent:.4em;color:#ffffffd1;animation:intro-kicker .9s 1.15s cubic-bezier(.16,1,.3,1) both}@keyframes intro-kicker{0%{opacity:0;transform:translateY(18px);letter-spacing:.2em}}@keyframes intro-slam{0%{opacity:0;transform:scale(1.7);filter:blur(22px) drop-shadow(0 10px 50px rgba(110,130,255,.45))}60%{filter:blur(0px) drop-shadow(0 10px 50px rgba(110,130,255,.45))}}.attract-reveal{animation:attract-in .7s cubic-bezier(.16,1,.3,1) both}@keyframes attract-in{0%{opacity:0;transform:translateY(4vh) scale(.96)}}.attract-hint{font-family:var(--font-hud);font-size:clamp(13px,2.2vh,24px);font-weight:700;letter-spacing:.3em;text-indent:.3em;color:#ffffffbf;animation:waiting-pulse 2.2s ease-in-out infinite}.join-callout{position:absolute;top:7%;left:50%;transform:translate(-50%);z-index:8;text-align:center;pointer-events:none;animation:callout-in .45s cubic-bezier(.16,1,.3,1) both}.join-callout-kicker{font-family:var(--font-hud);font-size:clamp(13px,2.2vh,24px);font-weight:700;letter-spacing:.4em;text-indent:.4em;color:#fffc;text-shadow:0 2px 12px rgba(0,0,0,.85)}.join-callout-name{font-family:var(--font-hud);font-style:italic;font-size:clamp(30px,6.4vh,72px);font-weight:800;letter-spacing:.08em;color:var(--team);text-shadow:0 0 40px var(--team),0 6px 30px rgba(0,0,0,.85)}.join-callout-name em{font-style:normal;font-size:.55em;font-weight:700;color:#ffffffd9;letter-spacing:.2em}@keyframes callout-in{0%{opacity:0;transform:translate(-50%) translateY(-16px) scale(1.15)}}.lobby-teams{display:flex;gap:clamp(8px,1vw,14px);flex:1;min-height:0;overflow:hidden auto}.lobby-team-col{flex:1;display:flex;flex-direction:column;gap:8px;padding:clamp(8px,1.2vh,14px);border-radius:var(--radius);background:#080a126b;box-shadow:inset 0 3px 0 var(--team),inset 0 0 0 1px var(--line)}.lobby-team-head{font-family:var(--font-hud);font-weight:800;font-size:clamp(13px,2.2vh,22px);letter-spacing:.24em;color:var(--team);text-shadow:0 0 18px var(--team)}.ctrl-team-badge{display:flex;flex-direction:column;align-items:center;gap:4px;padding:20px 34px;border-radius:22px;background:#0000005c;box-shadow:0 0 0 2px var(--team),0 0 56px color-mix(in srgb,var(--team) 55%,transparent);animation:badge-in .5s cubic-bezier(.16,1,.3,1) both}.ctrl-team-badge-kicker{font-size:11px;font-weight:700;letter-spacing:.34em;text-indent:.34em;color:var(--muted)}.ctrl-team-badge-name{font-family:var(--font-hud);font-style:italic;font-size:36px;font-weight:800;letter-spacing:.06em;color:var(--team);text-shadow:0 0 26px var(--team)}@keyframes badge-in{0%{opacity:0;transform:scale(.82)}}.coupon{width:min(86vw,380px);display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:22px 20px 18px;border-radius:24px;background:linear-gradient(165deg,#171a2e,#0a0b15 70%);box-shadow:0 0 0 2px var(--team),0 0 70px color-mix(in srgb,var(--team) 45%,transparent),var(--shadow);animation:coupon-in .65s cubic-bezier(.16,1,.3,1) both}.coupon-kicker{font-family:var(--font-hud);font-weight:800;font-size:17px;letter-spacing:.3em;text-indent:.3em;color:var(--team);text-shadow:0 0 20px var(--team)}.coupon-img{width:74%;border-radius:16px;box-shadow:0 14px 40px #0000008c;pointer-events:none}.coupon-title{font-family:var(--font-hud);font-style:italic;font-size:27px;font-weight:800;letter-spacing:.04em}.coupon-sub{font-size:13px;color:var(--muted)}.coupon-code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:24px;font-weight:700;letter-spacing:.18em;text-indent:.18em;padding:10px 20px;border:2px dashed var(--team);border-radius:12px;color:#fff}.coupon-bar{width:80%;height:42px;border-radius:6px;background:repeating-linear-gradient(90deg,#0a0b14 0 2px,transparent 2px 5px,#0a0b14 5px 9px,transparent 9px 11px,#0a0b14 11px 12px,transparent 12px 17px),#eef0f8}.coupon-note{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}@keyframes coupon-in{0%{opacity:0;transform:translateY(34px) scale(.86) rotate(-2.5deg)}}.coupon-chip{align-self:center;margin-bottom:8px;padding:10px 18px;border:none;border-radius:999px;font-size:13px;font-weight:800;letter-spacing:.14em;color:var(--ink);box-shadow:0 0 0 1.5px var(--team),0 0 26px color-mix(in srgb,var(--team) 45%,transparent)}.coupon-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#04050ad9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.coupon-reveal .muted{animation:intro-kicker .6s .5s both}.hold-surface{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;touch-action:none}.hold-surface.up:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 0 4px var(--warn),inset 0 0 90px #ffb40047;animation:hold-urgent .55s ease-in-out infinite}.hold-surface.down:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 0 4px var(--me),inset 0 0 120px color-mix(in srgb,var(--me) 40%,transparent)}@keyframes hold-urgent{0%,to{opacity:1}50%{opacity:.25}}.hold-ring{position:relative;width:min(56vw,250px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--me) var(--p),rgba(255,255,255,.14) 0);box-shadow:0 0 56px color-mix(in srgb,var(--me) 60%,transparent)}.hold-ring:before{content:"";position:absolute;top:14px;right:14px;bottom:14px;left:14px;border-radius:50%;background:#04050ac7}.hold-secs{position:relative;font-family:var(--font-hud);font-size:58px;font-weight:800;font-variant-numeric:tabular-nums;text-shadow:0 0 30px var(--me)}.hold-word{font-family:var(--font-hud);font-style:italic;font-size:36px;font-weight:800;letter-spacing:.08em;text-shadow:0 0 30px var(--me),0 4px 18px rgba(0,0,0,.8)}.hold-surface.up .hold-word{color:var(--warn);text-shadow:0 0 30px var(--warn);animation:hold-urgent .55s ease-in-out infinite}.hold-sub{font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#fffc}.ot-ring{position:relative;width:clamp(120px,21vh,210px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--team) var(--p),rgba(255,255,255,.14) 0);box-shadow:0 0 70px var(--team)}.ot-ring:before{content:"";position:absolute;top:11px;right:11px;bottom:11px;left:11px;border-radius:50%;background:#04050acc}.ot-secs{position:relative;font-family:var(--font-hud);font-size:clamp(44px,9vh,92px);font-weight:800;font-variant-numeric:tabular-nums;text-shadow:0 0 34px var(--team)}.ot-overlay.frozen .ot-ring{animation:hold-urgent .6s ease-in-out infinite}.ot-overlay.frozen .ot-sub{color:var(--warn);text-shadow:0 0 26px var(--warn),0 2px 14px rgba(0,0,0,.85)}.ot-overlay.closing .ot-word{animation-duration:.34s}.ot-overlay.closing .ot-ring{box-shadow:0 0 110px var(--team)}.bcast-field{font-family:var(--font-hud);font-weight:800;font-size:clamp(14px,2.4vh,26px);font-variant-numeric:tabular-nums;letter-spacing:.04em;color:#ffffffa6;line-height:1}.bcast-field.lead{color:var(--glow);text-shadow:0 0 16px var(--glow)}.bcast-plate.leading{box-shadow:0 0 26px #ffffff24}.results-reward{font-family:var(--font-hud);font-weight:800;font-size:clamp(15px,2.8vh,30px);letter-spacing:.16em;color:var(--team);text-shadow:0 0 30px var(--team);padding:10px 26px;border-radius:999px;background:#00000061;box-shadow:0 0 0 1.5px var(--team);animation:result-in .5s .5s backwards}
