:root{--bg:#0b0b12;--p:#14141f;--p2:#1d1d2c;--line:#2a2a3d;--t:#f3f1ff;--m:#9a97b5;--a:#ff2e63;--b:#08d9d6;--g:#ffd166;--win:#3ddc84}
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{background:radial-gradient(1200px 700px at 50% -10%,#2a1030 0,transparent 60%),var(--bg);color:var(--t);font:15px/1.5 "Segoe UI",system-ui,sans-serif;overflow-x:hidden}
button{font:inherit;cursor:pointer}input{font:inherit}
#confetti{position:fixed;inset:0;pointer-events:none;z-index:50}
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 20px}
.brand{font-weight:900;letter-spacing:.06em;font-size:20px}.brand span{color:var(--a)}
.topright{display:flex;gap:10px;align-items:center}.net{font-size:12px;color:var(--m);padding:3px 9px;border:1px solid var(--line);border-radius:99px}.net.ok{color:var(--win);border-color:#1f5c3a}
.icon{background:var(--p);border:1px solid var(--line);color:var(--t);border-radius:10px;padding:5px 9px}
main{max-width:1180px;margin:0 auto;padding:0 16px 40px}
.screen{display:none}.screen.on{display:block;animation:in .4s ease}
@keyframes in{from{opacity:0;transform:translateY(12px)}}
.title{font-size:clamp(40px,8vw,88px);font-weight:900;letter-spacing:-.03em;text-align:center;margin:30px 0 4px;line-height:1}
.title span{color:var(--a);text-shadow:0 0 30px rgba(255,46,99,.5)}
.sub{text-align:center;color:var(--m);margin:0 0 26px}.sub b{color:var(--a)}
.panel{max-width:460px;margin:0 auto;background:var(--p);border:1px solid var(--line);border-radius:18px;padding:22px}
.lbl{font-size:12px;color:var(--m);letter-spacing:.1em;text-transform:uppercase}
.panel input,.join input{width:100%;background:var(--bg);border:1px solid var(--line);color:var(--t);border-radius:12px;padding:12px 14px;margin:6px 0 14px;outline:none}
.panel input:focus,.join input:focus{border-color:var(--a)}
.btns{display:grid;gap:10px}.join{display:flex;gap:8px}.join input{margin:0;text-transform:uppercase;letter-spacing:.3em;text-align:center;font-weight:800}
.big{background:var(--a);color:#fff;border:0;border-radius:12px;padding:13px 18px;font-weight:800;letter-spacing:.04em;transition:transform .12s,filter .12s;white-space:nowrap}
.big:hover{filter:brightness(1.1);transform:translateY(-1px)}.big:active{transform:translateY(1px)}
.big.alt{background:var(--b);color:#03292a}.big.ghost{background:transparent;border:1px solid var(--line);color:var(--t)}.big.small{padding:9px 14px;font-size:13px}
.big:disabled{opacity:.5;cursor:default;transform:none}
.big.isready{background:var(--win);color:#04210f}
.how{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:26px auto 0;max-width:720px}
.how div{background:var(--p);border:1px solid var(--line);border-radius:99px;padding:6px 12px;font-size:13px;color:var(--m)}.how b{margin-right:6px}
.fine{text-align:center;color:#6e6b8a;font-size:12.5px;max-width:560px;margin:22px auto 0}
.hud{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin:4px 0 12px}
.roomtag{font-size:13px;color:var(--m)}.roomtag b{color:var(--t);letter-spacing:.2em;font-size:16px}
.mini{background:var(--p);border:1px solid var(--line);color:var(--m);border-radius:8px;padding:3px 8px;font-size:12px;margin-left:6px}
.phase{text-align:center}#phaseName{font-weight:900;letter-spacing:.12em;font-size:14px;color:var(--m)}
.timer{font-size:46px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;min-height:46px}
.timer.pulse{animation:pulse .5s ease}@keyframes pulse{50%{transform:scale(1.25);color:var(--a)}}
.rounds{display:flex;justify-content:flex-end;gap:6px}.rounds i{width:14px;height:14px;border-radius:50%;background:var(--p2);border:1px solid var(--line)}
.rounds i.me{background:var(--win)}.rounds i.op{background:var(--a)}.rounds i.tie{background:var(--m)}.rounds i.now{box-shadow:0 0 0 2px var(--g)}
.challenge{display:flex;gap:16px;align-items:center;justify-content:center;background:linear-gradient(90deg,transparent,var(--p2),transparent);padding:10px;margin-bottom:12px;border-radius:14px}
.challenge.hidden{visibility:hidden}.ce{font-size:52px;animation:bob 1.2s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-6px) rotate(-6deg)}}
.cn{font-size:28px;font-weight:900;letter-spacing:.04em}.ch{color:var(--m)}
.stage{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}
.versus{font-weight:900;font-size:30px;color:var(--a);text-shadow:0 0 20px rgba(255,46,99,.6)}
.cam{position:relative;aspect-ratio:4/3;background:#06060b;border:2px solid var(--line);border-radius:18px;overflow:hidden;transition:box-shadow .4s,border-color .4s}
.cam video,.cam img{width:100%;height:100%;object-fit:cover;display:block}#vMe{transform:scaleX(-1)}
.hidden{display:none!important}
.empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;color:var(--m);font-weight:700}.empty small{display:block;font-weight:400;font-size:12px}
.stamp{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%) rotate(-14deg) scale(3);opacity:0;font-weight:900;font-size:clamp(28px,5vw,56px);color:var(--a);border:5px solid var(--a);padding:2px 14px;border-radius:10px;letter-spacing:.1em;background:rgba(11,11,18,.55)}
.seat.mogged .stamp{opacity:1;transform:translate(-50%,-50%) rotate(-14deg) scale(1);transition:all .35s cubic-bezier(.2,1.8,.4,1)}
.seat.mogged .cam{filter:grayscale(.7)}
.crown{position:absolute;top:-6px;left:50%;transform:translateX(-50%) translateY(-60px);font-size:54px;opacity:0;transition:all .6s cubic-bezier(.2,1.6,.4,1)}
.seat.king .crown{opacity:1;transform:translateX(-50%) translateY(0)}
.seat.king .cam{border-color:var(--g);box-shadow:0 0 40px rgba(255,209,102,.45)}
.seat.lead .cam{border-color:var(--win);box-shadow:0 0 26px rgba(61,220,132,.35)}
.seat.roundwin .cam{animation:winflash .9s ease}@keyframes winflash{30%{box-shadow:0 0 60px rgba(61,220,132,.9)}}
.who{display:flex;justify-content:space-between;align-items:center;margin:8px 4px 6px;font-weight:800}
.pts{background:var(--p2);border-radius:8px;padding:1px 10px;font-variant-numeric:tabular-nums}
.meter{position:relative;height:26px;background:var(--p2);border-radius:9px;overflow:hidden;border:1px solid var(--line)}
.meter i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,var(--b),var(--win));transition:width .25s linear}
.meter.opp i{background:linear-gradient(90deg,#ff7a59,var(--a))}
.meter span{position:absolute;inset:0;display:grid;place-content:center;font-weight:900;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px #000}
.facewarn{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);background:var(--a);color:#fff;font-weight:900;font-size:12px;padding:3px 10px;border-radius:99px;animation:pulse 1s infinite}
.floaters{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.floaters span{position:absolute;bottom:-40px;font-size:40px;animation:floatup 2.2s ease-out forwards}
@keyframes floatup{to{transform:translateY(-360px) rotate(20deg);opacity:0}}
.banner{text-align:center;font-size:clamp(22px,4vw,40px);font-weight:900;margin:16px 0 4px;animation:in .3s}
.banner small{display:block;font-size:15px;color:var(--m);font-weight:600}
.controls{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:16px}
.oppready{color:var(--m);font-size:13px}.oppready.yes{color:var(--win)}
.reacts{display:flex;gap:4px}.reacts button{background:var(--p);border:1px solid var(--line);border-radius:10px;font-size:20px;padding:4px 8px;transition:transform .1s}.reacts button:hover{transform:scale(1.2)}
.relaynote{text-align:center;color:#6e6b8a;font-size:12px;margin-top:10px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(80px);background:var(--p2);border:1px solid var(--line);padding:10px 16px;border-radius:12px;transition:transform .3s;z-index:60}
.toast.on{transform:translateX(-50%) translateY(0)}
@media(max-width:760px){.stage{grid-template-columns:1fr 1fr}.versus{display:none}.hud{grid-template-columns:1fr 1fr}.phase{grid-column:1/-1;order:-1}.rounds{justify-content:flex-start}.cn{font-size:20px}.ce{font-size:38px}.timer{font-size:36px}}
/* invite screen, camera help, unmute (2026-10-07 connection fixes) */
.invite-only{display:none}
#landing.invited .invite-only{display:flex}#landing.invited .no-invite{display:none}
#landing.invited .invite-only.btns{flex-direction:column;gap:8px}
.invitebox{flex-direction:column;align-items:center;text-align:center;font-size:12px;letter-spacing:.14em;color:var(--m);margin:-4px 0 16px;gap:2px}
.invitebox b{font-size:40px;letter-spacing:.3em;color:var(--t);text-shadow:0 0 30px rgba(255,46,99,.45);margin:2px 0 2px .3em}
.linkish{background:none;border:0;color:var(--m);text-decoration:underline;font-size:13px;padding:6px;cursor:pointer}
.camhelp{position:fixed;inset:0;z-index:50;background:rgba(5,5,10,.82);display:grid;place-items:center;padding:16px}
.camhelp .panel{width:100%}.camhelp h2{margin:0 0 8px;font-size:20px}.camhelp p{color:var(--m);margin:0 0 14px}.camhelp p b{color:var(--t)}
.camhelp .join{display:flex;gap:8px;align-items:center}.camhelp .join input{margin:0;font-size:13px}
.camhelp #camClose{width:100%;margin-top:12px}
.unmute{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:3;background:rgba(0,0,0,.72);color:#fff;border:1px solid var(--line);border-radius:99px;padding:7px 14px;font-weight:700;font-size:13px;cursor:pointer}
/* ---------- overhaul 2026-10-07: MOG SCAN, settings, peak faces, MOG RATING card, record ---------- */
.scan{position:absolute;inset:0;pointer-events:none;z-index:2}
.scanline{position:absolute;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--b),transparent);box-shadow:0 0 12px var(--b);opacity:0;top:0}
#arena.scanning .scanline{opacity:.55;animation:sweep 2.4s linear infinite}
@keyframes sweep{0%{top:0}50%{top:calc(100% - 2px)}100%{top:0}}
.scanbox{position:absolute;transition:left .22s ease-out,top .22s ease-out,width .22s ease-out,height .22s ease-out}
.scanbox i{position:absolute;width:18%;height:18%;border:3px solid var(--b);filter:drop-shadow(0 0 6px var(--b))}
.scanbox i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:8px 0 0 0}
.scanbox i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 8px 0 0}
.scanbox i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 8px}
.scanbox i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 8px 0}
#seatOpp .scanbox i{border-color:var(--a);filter:drop-shadow(0 0 6px var(--a))}
.scanlbl{position:absolute;left:0;top:-24px;white-space:nowrap;font:900 11px/1 ui-monospace,Consolas,monospace;letter-spacing:.12em;background:var(--b);color:#03292a;padding:4px 7px;border-radius:5px}
#seatOpp .scanlbl{background:var(--a);color:#fff}
.scanexp{position:absolute;left:0;bottom:-20px;white-space:nowrap;font:700 10px/1 ui-monospace,Consolas,monospace;letter-spacing:.12em;color:var(--b);text-shadow:0 1px 3px #000}
.settings{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:14px}
.seg{display:flex;background:var(--p);border:1px solid var(--line);border-radius:12px;padding:3px;gap:2px;flex-wrap:wrap;justify-content:center}
.seg button{background:none;border:0;color:var(--m);font-weight:800;font-size:12px;letter-spacing:.06em;padding:7px 11px;border-radius:9px}
.seg button.on{background:var(--a);color:#fff;box-shadow:0 0 16px rgba(255,46,99,.4)}
.seg button:disabled{cursor:default}.seg button:disabled:not(.on){opacity:.55}
.settings small{color:#6e6b8a;font-size:12px}
.peaks{display:flex;gap:14px;justify-content:center;align-items:flex-end;margin-top:10px;flex-wrap:wrap}
.peaks>span{width:100%;font-size:11px;letter-spacing:.3em;color:var(--m)}
.peaks figure{margin:0;width:150px;border-radius:12px;overflow:hidden;border:2px solid var(--line);background:#06060b;animation:in .4s}
.peaks figure.best{border-color:var(--g);box-shadow:0 0 24px rgba(255,209,102,.4)}
.peaks img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.peaks figure:not(.got) img{visibility:hidden;background:repeating-linear-gradient(45deg,#14141f 0 10px,#1d1d2c 10px 20px)}
.peaks figcaption{font-size:12px;font-weight:800;padding:4px 6px;letter-spacing:.04em}
.finalcard{position:fixed;inset:0;z-index:40;background:rgba(5,5,10,.86);display:grid;place-items:center;padding:14px;animation:in .35s}
.fc-inner{width:min(720px,100%);background:linear-gradient(180deg,#1a1026,#0f0f19);border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 30px 90px rgba(0,0,0,.7),0 0 60px -20px rgba(255,46,99,.5)}
.fc-title{text-align:center;font-weight:900;letter-spacing:.4em;color:var(--m);font-size:13px;margin-bottom:14px}
.fc-body{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center}
.fc-vs{font-weight:900;font-size:24px;color:var(--a)}
.fc-col{text-align:center;padding:12px;border-radius:16px;border:1px solid var(--line);background:var(--p)}
.fc-col.winner{border-color:var(--g);box-shadow:0 0 34px rgba(255,209,102,.3)}
.fc-face{position:relative;aspect-ratio:4/3;border-radius:12px;overflow:hidden;background:#06060b;display:grid;place-items:center}
.fc-face img{width:100%;height:100%;object-fit:cover;display:block}
.fc-bot{font-size:64px}
.fc-scanline{position:absolute;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--b),transparent);box-shadow:0 0 14px var(--b);animation:sweep 1.4s linear 2}
.fc-name{font-weight:800;margin:10px 0 2px}
.fc-rating{font-size:64px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;background:linear-gradient(180deg,#fff,var(--a));-webkit-background-clip:text;background-clip:text;color:transparent}
.fc-col.winner .fc-rating{background:linear-gradient(180deg,#fff,var(--g));-webkit-background-clip:text;background-clip:text}
.fc-lbl{font-size:10px;letter-spacing:.3em;color:var(--m)}
.fc-tier{display:inline-block;margin:10px 0;padding:5px 12px;border-radius:99px;background:var(--p2);border:1px solid var(--line);font-weight:900;letter-spacing:.08em;animation:pop .5s cubic-bezier(.2,1.6,.4,1) 1.3s both}
@keyframes pop{from{transform:scale(0);opacity:0}}
.fc-stats{display:flex;justify-content:center;gap:12px;font-size:11px;color:var(--m)}.fc-stats b{display:block;font-size:18px;color:var(--t)}
.fc-btns{display:flex;justify-content:center;gap:10px;margin-top:16px}
.record{text-align:center;margin:14px auto 0;font-size:12px;letter-spacing:.12em;color:var(--m)}.record b{color:var(--t)}.record .w{color:var(--win)}.record .l{color:var(--a)}
@media(max-width:760px){.fc-body{grid-template-columns:1fr 1fr}.fc-vs{display:none}.fc-rating{font-size:46px}.peaks figure{width:42vw}.scanlbl{font-size:9px}}
