:root{
  --bg:#030816;
  --bg2:#07122d;
  --panel:#081731;
  --panel2:#0d1f42;
  --text:#f3f7ff;
  --muted:#a8b7d4;
  --blue:#1bb7ff;
  --blue2:#3557ff;
  --gold:#ffbf4b;
  --gold2:#ff9d2f;
  --pink:#ff49c0;
  --purple:#9252ff;
  --green:#35ef9c;
  --red:#ff5c75;
  --line:rgba(129,173,255,.24);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text);background:
radial-gradient(circle at 50% 0%, rgba(34,102,255,.25), transparent 28%),
radial-gradient(circle at 75% 15%, rgba(255,94,0,.12), transparent 20%),
linear-gradient(180deg,#030711,#071127 26%,#040b19 100%);
}
body::before{content:"";position:fixed;inset:0;pointer-events:none;background:
repeating-linear-gradient(90deg, rgba(255,255,255,.018) 0 1px, transparent 1px 80px),
radial-gradient(circle at top, transparent, rgba(0,0,0,.18));opacity:.5}
button,input{font:inherit}
button{cursor:pointer}
.shell{max-width:1500px;margin:0 auto;padding:18px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}
.brand{font-weight:1000;letter-spacing:.06em;text-transform:uppercase;font-size:40px;line-height:1;display:flex;align-items:center;gap:10px}
.brand span{background:linear-gradient(90deg,#2ae6ff,#5fb3ff 35%,#ffbf4b 72%,#ff9540);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 18px rgba(42,230,255,.18)}
.brand::after{content:"";display:block;height:4px;width:120px;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--pink),var(--gold));box-shadow:0 0 20px rgba(27,183,255,.35)}
.tagline{font-size:12px;font-weight:900;letter-spacing:.26em;color:#dce7ff;text-transform:uppercase;opacity:.82}
.panel{background:linear-gradient(180deg,rgba(6,18,42,.88),rgba(5,12,29,.95));border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.03);position:relative;overflow:hidden}
.panel::before{content:"";position:absolute;left:0;top:0;height:3px;width:120px;background:linear-gradient(90deg,var(--blue),var(--gold));box-shadow:0 0 18px rgba(27,183,255,.5)}
.badge{display:inline-flex;align-items:center;gap:8px;padding:9px 14px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(8,20,48,.72);text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:900}
.badge.live::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}
.setupWrap{min-height:calc(100vh - 36px);display:grid;place-items:center}
.setupScreen{width:min(1380px,100%);display:grid;grid-template-columns:1.02fr .98fr;gap:22px}
.heroPanel{padding:34px 34px 28px;display:flex;flex-direction:column;justify-content:center;min-height:700px;background:
radial-gradient(circle at 55% 12%, rgba(38,96,255,.25), transparent 28%),
radial-gradient(circle at 65% 40%, rgba(255,176,64,.08), transparent 30%),
linear-gradient(180deg, rgba(6,18,42,.92), rgba(3,9,20,.96));}
.heroPanel h1{margin:22px 0 14px;font-size:clamp(58px,7vw,120px);line-height:.9;letter-spacing:-.05em;text-transform:uppercase}
.heroPanel h1 .glow{display:block;background:linear-gradient(90deg,#e8f6ff,#44dcff 32%,#8dc2ff 54%,#ffbf4b 90%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 24px rgba(68,220,255,.1)}
.heroCopy{font-size:20px;line-height:1.55;color:var(--muted);max-width:760px}
.featureStrip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0}
.feature{background:linear-gradient(180deg,rgba(10,24,54,.88),rgba(6,14,30,.92));border:1px solid rgba(117,159,238,.2);border-radius:14px;padding:16px 16px 14px}
.feature b{display:block;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#eaf4ff;margin-bottom:6px}
.feature span{font-size:14px;color:var(--muted)}
.heroActions{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.configPanel{padding:22px 22px 20px;min-height:700px}
.configPanel h2{margin:10px 0 6px;font-size:42px;letter-spacing:-.04em}
.configPanel p{margin:0 0 14px;color:var(--muted)}
.rangeRow{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin:18px 0 16px}
.rangeRow strong,.rangeRow b{font-size:30px}
.rangeRow input{width:100%;accent-color:var(--gold)}
.names{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:480px;overflow:auto;padding-right:4px}
.nameRow{display:flex;align-items:center;gap:10px;background:rgba(5,12,29,.8);border:1px solid rgba(117,159,238,.22);padding:8px;border-radius:12px}
.nameRow span{width:34px;height:34px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(180deg,#0f3d6d,#0c2148);font-weight:1000;color:#8ce9ff;box-shadow:inset 0 0 16px rgba(39,221,255,.16)}
.nameRow input{width:100%;background:#081226;border:1px solid rgba(122,160,228,.18);border-radius:10px;padding:12px 12px;color:var(--text);outline:none}
.nameRow input:focus{border-color:rgba(255,191,75,.7);box-shadow:0 0 0 2px rgba(255,191,75,.1), 0 0 18px rgba(255,191,75,.12)}
.small{font-size:13px;color:var(--muted);line-height:1.45}
.controls{display:flex;gap:10px;flex-wrap:wrap}
.btn{border:1px solid rgba(255,255,255,.15);background:linear-gradient(180deg,#10254f,#09152d);color:#fff;border-radius:12px;padding:13px 18px;font-weight:950;text-transform:uppercase;letter-spacing:.08em;transition:.18s ease;box-shadow:inset 0 0 18px rgba(255,255,255,.03),0 10px 20px rgba(0,0,0,.22)}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(0,0,0,.28)}
.btn.primary{background:linear-gradient(90deg,var(--blue),#3183ff 45%,var(--purple));border-color:rgba(182,231,255,.85);box-shadow:0 0 28px rgba(47,174,255,.28),0 12px 24px rgba(0,0,0,.24)}
.btn.accent{background:linear-gradient(90deg,#ffb74d,#ff8f34);color:#141925;border-color:#ffe6a8;box-shadow:0 0 28px rgba(255,191,75,.24),0 12px 24px rgba(0,0,0,.2)}
.btn.ok{background:linear-gradient(180deg,#0d5b47,#083b2f);border-color:rgba(84,255,184,.62)}
.btn.danger{background:linear-gradient(180deg,#7f2038,#591627);border-color:rgba(255,115,140,.62)}
.btn.ghost{background:rgba(7,16,35,.8)}
.gameGrid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px}
.stage{padding:18px}
.stageFrame{position:relative;border-radius:18px;padding:18px;background:
radial-gradient(circle at 50% -15%, rgba(255,191,75,.12), transparent 30%),
linear-gradient(180deg, rgba(5,12,30,.96), rgba(2,7,18,.98));border:1px solid rgba(255,191,75,.15);overflow:hidden;min-height:760px}
.stageFrame::before{content:"";position:absolute;inset:0;pointer-events:none;background:
repeating-linear-gradient(90deg,transparent 0 95px, rgba(255,188,80,.06) 95px 98px, transparent 98px 190px),
radial-gradient(circle at 8% 20%, rgba(255,188,80,.38), transparent 3.5%),
radial-gradient(circle at 14% 16%, rgba(255,188,80,.38), transparent 3.5%),
radial-gradient(circle at 86% 18%, rgba(255,188,80,.38), transparent 3.5%),
radial-gradient(circle at 92% 22%, rgba(255,188,80,.38), transparent 3.5%),
radial-gradient(circle at 20% 12%, rgba(53,149,255,.45), transparent 2.5%),
radial-gradient(circle at 80% 12%, rgba(53,149,255,.45), transparent 2.5%);
opacity:.55}
.stageDisplay{height:145px;border-radius:18px;border:2px solid rgba(255,191,75,.45);background:
radial-gradient(circle at 50% 20%, rgba(97,154,255,.2), transparent 35%),
linear-gradient(180deg,#13366c,#0b2147);display:grid;place-items:center;text-align:center;position:relative;box-shadow:0 0 24px rgba(255,191,75,.18)}
.stageDisplay .mega{font-size:clamp(40px,4.5vw,72px);font-weight:1000;letter-spacing:.03em;text-transform:uppercase}
.stageDisplay .mega span{background:linear-gradient(90deg,#fff4db,#ffda8d,#ffb950);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 22px rgba(255,190,80,.18)}
.stageDisplay .sub{margin-top:8px;letter-spacing:.18em;font-size:11px;font-weight:900;text-transform:uppercase;color:#d7e6ff}
.floorArena{position:relative;margin-top:24px;padding:18px 12px 12px;border-radius:24px;background:
radial-gradient(circle at 50% 50%, rgba(16,39,84,.5), transparent 48%),
linear-gradient(180deg,rgba(2,11,28,.2),rgba(1,6,16,.1));}
.floorArena::before{content:"";position:absolute;left:0;right:0;top:0;height:120px;background:linear-gradient(180deg, rgba(255,191,75,.12), transparent 76%);opacity:.7;pointer-events:none}
.floor{display:grid;gap:6px;min-height:520px;aspect-ratio:16/10;padding:10px;border-radius:16px;border:1px solid rgba(153,225,255,.22);background:
radial-gradient(circle at 50% 0%, rgba(255,255,255,.06), transparent 22%),
linear-gradient(180deg,#071a39,#030b1d);box-shadow:inset 0 0 80px rgba(39,118,255,.12),0 0 28px rgba(49,148,255,.12)}
.cell{--territory:#2b6fff;position:relative;overflow:hidden;border:1px solid rgba(215,240,255,.8);border-radius:3px;background:linear-gradient(180deg,color-mix(in srgb,var(--territory) 83%,#092146 17%),color-mix(in srgb,var(--territory) 62%,#050e1e 38%));box-shadow:0 0 10px color-mix(in srgb,var(--territory) 18%, transparent), inset 0 0 24px rgba(255,255,255,.05);padding:10px;display:flex;flex-direction:column;justify-content:space-between;min-width:0;transition:.18s ease}
.cell::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(255,255,255,.17),transparent 18% 78%,rgba(255,255,255,.05));opacity:.38}
.cell::after{content:"";position:absolute;inset:auto 0 0;height:3px;background:#dff7ff;box-shadow:0 0 10px rgba(223,247,255,.75)}
.cell.active{outline:4px solid rgba(255,230,170,.96);outline-offset:-4px;transform:scale(1.01);box-shadow:0 0 18px rgba(255,191,75,.5), 0 0 40px color-mix(in srgb,var(--territory) 25%, transparent), inset 0 0 24px rgba(255,255,255,.1);animation:pulseGold 1.5s ease-in-out infinite}
.cell.attackable{cursor:pointer;outline:4px solid rgba(255,191,75,.75);outline-offset:-4px;box-shadow:0 0 18px rgba(255,191,75,.45), inset 0 0 22px rgba(255,191,75,.1)}
.cell.attackable:hover{transform:translateY(-3px) scale(.99);filter:brightness(1.14)}
@keyframes pulseGold{0%,100%{filter:brightness(1.02)}50%{filter:brightness(1.18)}}
.cell .owner{font-size:14px;font-weight:1000;text-transform:uppercase;text-shadow:0 2px 10px rgba(0,0,0,.8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cell .cat{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;opacity:.95;text-shadow:0 2px 8px rgba(0,0,0,.6)}
.cell .count{position:absolute;right:6px;top:6px;padding:4px 7px;background:rgba(4,11,28,.75);border:1px solid rgba(255,255,255,.24);border-radius:7px;font-size:10px;font-weight:1000}
.statbar{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 14px}
.stat{padding:14px 14px 12px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(10,25,55,.88),rgba(5,12,29,.95));box-shadow:inset 0 0 18px rgba(255,255,255,.03)}
.stat b{display:block;font-size:26px;line-height:1.05}
.stat span{font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-weight:900}
.host{padding:18px;position:sticky;top:12px;align-self:start}
.host h3{margin:0 0 10px;text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:#d6e6ff}
.hostCard{background:linear-gradient(180deg,rgba(10,25,55,.92),rgba(5,12,28,.96));border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:15px;margin-bottom:12px}
.hostCard strong{color:#fff}
.hostCard p{margin:8px 0 0;color:var(--muted);line-height:1.45}
.legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.legendItem{display:flex;align-items:center;gap:7px;background:rgba(4,11,27,.76);border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:6px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.dot{width:10px;height:10px;border-radius:2px;box-shadow:0 0 10px currentColor}
.overlay{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 15%, rgba(27,78,180,.55), rgba(4,10,24,.92) 56%, rgba(2,6,16,.96));backdrop-filter:blur(8px);z-index:20;border-radius:18px;overflow:hidden;padding:24px}
.overlay::before{content:"";position:absolute;inset:-20%;background:conic-gradient(from 0deg, transparent 0 22%, rgba(255,191,75,.09) 28%, transparent 34% 56%, rgba(27,183,255,.08) 63%, transparent 69%);animation:spin 18s linear infinite;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.overlayInner{position:relative;z-index:1;width:min(1100px,100%);text-align:center}
.kicker{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(10,22,48,.72);text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:1000;color:#eaf2ff}
.bigTitle{margin:18px 0 8px;font-size:clamp(56px,8vw,130px);line-height:.88;font-weight:1000;letter-spacing:-.06em;text-transform:uppercase}
.bigTitle.gold{background:linear-gradient(90deg,#fff8ea,#ffd47d,#ffa93f);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 30px rgba(255,191,75,.12)}
.lead{max-width:820px;margin:0 auto;color:var(--muted);font-size:20px;line-height:1.55}
.pickGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:920px;margin:28px auto 0}
.pickChip{padding:14px 10px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(9,21,48,.92),rgba(5,12,28,.96));font-weight:900;text-transform:uppercase;letter-spacing:.05em;opacity:.5;transition:.18s ease}
.pickChip.active{opacity:1;border-color:rgba(255,212,125,.88);box-shadow:0 0 18px rgba(255,191,75,.28);transform:scale(1.03)}
.vs{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin-top:24px}
.fighter{background:linear-gradient(180deg,rgba(11,25,56,.95),rgba(5,11,28,.98));border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:20px 16px;box-shadow:inset 0 0 24px rgba(255,255,255,.03);position:relative}
.fighter.current{border-color:rgba(255,191,75,.86);box-shadow:0 0 26px rgba(255,191,75,.24), inset 0 0 28px rgba(255,191,75,.05);transform:scale(1.015)}
.fighter.current::after{content:"ODPOWIADA";position:absolute;left:50%;top:-11px;transform:translateX(-50%);padding:5px 9px;border-radius:999px;background:linear-gradient(90deg,var(--gold),var(--gold2));color:#1e1402;font-size:10px;font-weight:1000;letter-spacing:.18em}
.fighter .label{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);font-weight:900}
.fighter .name{font-size:clamp(28px,4vw,50px);font-weight:1000;text-transform:uppercase;line-height:1;margin-top:8px}
.timer{font-size:clamp(72px,10vw,130px);line-height:.9;font-weight:1000;letter-spacing:-.06em;font-variant-numeric:tabular-nums;margin-top:14px;text-shadow:0 0 22px rgba(66,154,255,.2)}
.timer.low{color:#ffd5dc;text-shadow:0 0 22px rgba(255,95,117,.38)}
.vsMark{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),var(--purple));border:2px solid rgba(255,255,255,.75);font-size:30px;font-weight:1000;box-shadow:0 0 32px rgba(96,104,255,.34)}
.question{margin:26px auto 12px;max-width:920px;padding:22px;border-radius:18px;background:linear-gradient(180deg,rgba(9,23,50,.95),rgba(4,10,22,.98));border:1px solid rgba(92,144,255,.32);box-shadow:inset 0 0 34px rgba(255,255,255,.03)}
.question .category{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:1000;color:#8ccfff}
.question .prompt{font-size:clamp(30px,4.4vw,64px);line-height:1.08;font-weight:1000;margin:12px 0 10px}
.answerHint{font-size:16px;color:var(--muted)}
.duelControls,.choice{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.countdownWrap{display:grid;place-items:center;min-height:260px}
.countNum{font-size:clamp(110px,18vw,260px);font-weight:1000;line-height:.8;background:linear-gradient(180deg,#fff9eb,#ffd88d,#ffb749);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 32px rgba(255,191,75,.12)}
.countCaption{margin-top:8px;text-transform:uppercase;letter-spacing:.24em;font-size:12px;font-weight:1000;color:#d8e7ff}
.bottomBanner{margin-top:12px;padding:16px 18px;border-radius:14px;background:linear-gradient(90deg,rgba(20,42,84,.92),rgba(9,18,40,.94));border:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:14px;align-items:center}
.bottomBanner b{font-size:18px}
.bottomBanner span{color:var(--muted)}
@media(max-width:1200px){.setupScreen,.gameGrid{grid-template-columns:1fr}.host{position:relative}.heroPanel,.configPanel,.stageFrame{min-height:auto}.pickGrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.shell{padding:12px}.topbar{align-items:flex-start;flex-direction:column}.brand{font-size:30px}.brand::after{width:80px}.names{grid-template-columns:1fr}.featureStrip{grid-template-columns:1fr}.statbar{grid-template-columns:repeat(2,1fr)}.vs{grid-template-columns:1fr}.vsMark{width:68px;height:68px;margin:auto;font-size:22px}.pickGrid{grid-template-columns:repeat(2,1fr)}.bigTitle{font-size:56px}.question .prompt{font-size:30px}.timer{font-size:64px}.floor{min-height:440px}.cell{padding:7px}.cell .owner{font-size:10px}.cell .cat{font-size:8px}}

/* MVP 0.4 — visual duels and keyboard host controls */
.visualQuestion{margin:20px auto 0;max-width:760px}
.visualCategory{text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:1000;color:#dbeaff;margin-bottom:10px}
.visualCard{position:relative;min-height:310px;display:grid;place-items:center;overflow:hidden;border-radius:20px;border:3px solid rgba(242,248,255,.92);background:
  radial-gradient(circle at 50% 34%,rgba(255,255,255,.16),transparent 28%),
  linear-gradient(135deg,#7c176f 0%,#b71b9d 42%,#68166f 100%);
  box-shadow:0 0 35px rgba(216,50,207,.28),inset 0 0 80px rgba(0,0,0,.18)}
.visualCard::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 16% 12%,rgba(255,255,255,.09),transparent 22%),linear-gradient(120deg,transparent 10%,rgba(255,255,255,.07) 46%,transparent 70%);pointer-events:none}
.visualSymbol{position:relative;z-index:2;font-size:clamp(130px,18vw,235px);line-height:1;filter:drop-shadow(0 18px 24px rgba(0,0,0,.3));transform:translateY(-2px);font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.visualQuestion .answerHint{margin-top:9px;color:#b9c8df;text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:900}
.wrongOverlay,.passOverlay{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:rgba(29,3,16,.52);backdrop-filter:blur(3px)}
.wrongOverlay{font-size:clamp(54px,8vw,100px);font-weight:1000;letter-spacing:.05em;color:#fff;text-shadow:0 0 26px rgba(255,68,102,.7);background:rgba(124,6,38,.58)}
.passOverlay{align-content:center;gap:4px;background:rgba(4,12,31,.66)}
.passOverlay b{font-size:clamp(52px,8vw,90px);line-height:1;color:#ffd783;text-shadow:0 0 24px rgba(255,190,70,.5)}
.passOverlay span{font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#f6f8ff}
.wrongFlash .visualCard{animation:wrongShake .34s ease}
@keyframes wrongShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}55%{transform:translateX(7px)}75%{transform:translateX(-3px)}}
.compactVs{max-width:900px;margin:14px auto 0}
.compactVs .fighter{padding:12px 14px}
.compactVs .fighter .name{font-size:clamp(24px,3vw,40px)}
.compactVs .timer{font-size:clamp(50px,7vw,84px);margin-top:8px}
.compactVs .vsMark{width:66px;height:66px;font-size:21px}
.hostActions{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.hostActions .btn{min-height:54px}
.hostAnswer{display:block;margin-top:6px;font-size:24px;line-height:1.12;color:#fff;font-weight:1000}
.passNotice{padding:9px 10px;border-radius:9px;background:rgba(255,184,62,.11);border:1px solid rgba(255,201,101,.3);color:#ffd783!important;font-weight:900}
.hotkeys{margin-top:14px;padding-top:13px;border-top:1px solid rgba(255,255,255,.1);display:grid;gap:7px}
.hotkeys>div{display:grid;grid-template-columns:auto auto 1fr;gap:6px;align-items:center;min-height:29px;color:#9fb1cd;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}
.hotkeys>div:last-child{grid-template-columns:auto 1fr}
kbd{min-width:30px;display:inline-grid;place-items:center;padding:5px 7px;border-radius:6px;background:linear-gradient(180deg,#162a4d,#09162d);border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 -2px 0 rgba(0,0,0,.4);color:#fff;font:900 10px/1 system-ui}
@media(max-width:720px){.visualCard{min-height:240px}.visualSymbol{font-size:130px}.hostActions{grid-template-columns:1fr}}

/* MVP 0.5 — connected territories, real images, elimination, sound, graphical logo */
.heroLogo{width:min(520px,82%);height:auto;margin:0 0 22px;filter:drop-shadow(0 16px 26px rgba(0,0,0,.4))}
.brandLockup{display:flex;align-items:center;gap:16px}.brandLockup img{width:210px;height:auto;display:block}.stageLogo img{width:min(430px,62vw);height:108px;object-fit:contain;filter:drop-shadow(0 5px 16px rgba(0,0,0,.38))}.soundBtn{min-width:120px}
.floatingToast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:90;background:rgba(8,20,48,.96)!important;padding:12px 18px!important}
.floor{gap:0;padding:10px;background:#061735}.cell{border:2px solid rgba(220,244,255,.9);border-radius:0;min-height:0}.cell.join-u{border-top-color:transparent}.cell.join-d{border-bottom-color:transparent}.cell.join-l{border-left-color:transparent}.cell.join-r{border-right-color:transparent}.cell.active{outline:none;border-color:#ffe3a2;box-shadow:inset 0 0 28px rgba(255,220,137,.08),0 0 20px rgba(255,191,75,.26);z-index:2}.cell.active.join-u{border-top-color:transparent}.cell.active.join-d{border-bottom-color:transparent}.cell.active.join-l{border-left-color:transparent}.cell.active.join-r{border-right-color:transparent}.cell.attackable{outline:none;border-color:#ffd369;box-shadow:inset 0 0 24px rgba(255,191,75,.08),0 0 16px rgba(255,191,75,.26);z-index:2}.cell.attackable.join-u{border-top-color:transparent}.cell.attackable.join-d{border-bottom-color:transparent}.cell.attackable.join-l{border-left-color:transparent}.cell.attackable.join-r{border-right-color:transparent}.cell.captured{animation:capturePulse 1.5s ease both}.cell.captured::after{animation:captureLine 1.1s ease both}@keyframes capturePulse{0%{filter:brightness(2.1) saturate(.4);box-shadow:inset 0 0 70px rgba(255,255,255,.75)}55%{filter:brightness(1.35) saturate(1.25)}100%{filter:brightness(1)}}@keyframes captureLine{0%{background:#fff;box-shadow:0 0 24px #fff}100%{background:#dff7ff}}
.cell .owner{position:relative;z-index:3;font-size:15px}.cell .cat{position:relative;z-index:3}.cell .count{z-index:3}.cell:empty::before{opacity:.24}
.visualCard{min-height:350px;background:linear-gradient(135deg,#48124f,#851476 48%,#281442);padding:0}.visualPhoto{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(.985);transition:opacity .22s ease,transform .3s ease;background:#111827}.visualPhoto.loaded{opacity:1;transform:scale(1)}.imageLoader{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:12px;z-index:1;color:#e8efff;background:radial-gradient(circle at center,rgba(54,105,192,.24),transparent 42%)}.imageLoader span{width:48px;height:48px;border-radius:50%;border:4px solid rgba(255,255,255,.18);border-top-color:#ffd06a;animation:imgSpin .8s linear infinite}.imageLoader small{font-weight:900;letter-spacing:.1em;text-transform:uppercase}.imageLoader.hidden{opacity:0;pointer-events:none;transition:.18s}.imageLoader.error span{display:none}.imageLoader.error b{font-size:20px}.imageLoader.error small{text-transform:none;letter-spacing:0;font-weight:600}@keyframes imgSpin{to{transform:rotate(360deg)}}
.visualMeta{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:9px;color:#b9c8df;text-transform:uppercase;letter-spacing:.1em;font-size:10px;font-weight:900}.visualMeta a{color:#8ccfff;text-decoration:none}.visualMeta a:hover{text-decoration:underline}
.eliminationOverlay{background:radial-gradient(circle at 50% 28%,rgba(138,16,43,.7),rgba(15,4,15,.91) 58%,rgba(3,5,12,.95));backdrop-filter:blur(5px)}.eliminatedName{font-size:clamp(64px,10vw,150px);font-weight:1000;line-height:.88;text-transform:uppercase;letter-spacing:-.055em;color:#fff;text-shadow:0 0 26px rgba(255,61,101,.38)}.eliminatedText{font-size:clamp(28px,4vw,56px);font-weight:1000;letter-spacing:.14em;color:#ff6e8b;margin:16px 0 18px;text-transform:uppercase}.dangerBanner{border-color:rgba(255,90,123,.3);background:linear-gradient(90deg,rgba(101,20,42,.82),rgba(18,15,35,.94))}.postOverlay{background:radial-gradient(circle at 50% 24%,rgba(29,91,190,.58),rgba(3,8,20,.92) 60%)}.winnerOverlay{background:radial-gradient(circle at 50% 22%,rgba(215,150,37,.32),rgba(9,16,42,.92) 55%,rgba(2,5,12,.98))}
@media(max-width:720px){.brandLockup{align-items:flex-start;flex-direction:column}.brandLockup img{width:170px}.visualCard{min-height:270px}.visualMeta{align-items:flex-start;flex-direction:column}.heroLogo{width:90%}}

/* MVP 0.6 — separate participant screen, graphical logo, stronger clock tension */
.presentationShell{min-height:100vh;padding:16px 18px 22px;background:
radial-gradient(circle at 50% 0%,rgba(23,86,210,.28),transparent 30%),
linear-gradient(180deg,#020611,#06132b 48%,#020714);overflow:hidden}
.presentationTop{height:92px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;max-width:1700px;margin:0 auto 12px;padding:0 10px}
.presentationTop>img{width:245px;max-height:84px;object-fit:contain;object-position:left center;filter:drop-shadow(0 7px 20px rgba(0,0,0,.46))}
.presentationPhase{justify-self:center;padding:10px 20px;border-radius:999px;border:1px solid rgba(255,194,75,.45);background:rgba(7,17,39,.75);font-size:12px;font-weight:1000;letter-spacing:.18em;text-transform:uppercase;color:#f5f8ff;box-shadow:0 0 22px rgba(255,186,68,.1)}
.presentationFull{justify-self:end}
.presentationStage{max-width:1700px;margin:0 auto}
.screenStage{min-height:calc(100vh - 126px);padding:18px 24px 20px}
.screenStage .stageDisplay{height:126px}
.screenStage .floorArena{margin-top:16px}
.screenFloor{min-height:calc(100vh - 330px);max-height:700px}
.presentationShell .overlay{border-radius:18px}
.presentationShell .visualQuestion{max-width:980px}
.presentationShell .visualCard{min-height:min(54vh,620px)}
.presentationShell .visualPhoto{max-height:min(52vh,600px)}
.presentationShell .compactVs{max-width:980px;margin-left:auto;margin-right:auto}
.presentationShell .compactVs .fighter{padding:14px 18px}
.presentationShell .compactVs .timer{font-size:clamp(58px,8vw,108px)}
.waitingScreen{display:grid;place-items:center;text-align:center}
.waitingCard{width:min(900px,92vw);padding:44px 36px;border-radius:28px;border:1px solid rgba(255,194,75,.28);background:radial-gradient(circle at 50% 0%,rgba(37,107,236,.24),transparent 40%),linear-gradient(180deg,rgba(8,20,48,.94),rgba(3,9,22,.97));box-shadow:0 35px 90px rgba(0,0,0,.48)}
.waitingCard img{width:min(680px,88%);height:auto;filter:drop-shadow(0 20px 30px rgba(0,0,0,.45));margin-bottom:18px}
.waitingCard h1{font-size:clamp(40px,6vw,78px);line-height:.95;margin:20px 0 14px;text-transform:uppercase;letter-spacing:-.04em}
.waitingCard p{color:#b7c6e1;font-size:19px;line-height:1.5;max-width:690px;margin:0 auto 24px}
.timeUpOverlay{position:absolute;inset:0;display:grid;place-items:center;z-index:8;border-radius:20px;background:rgba(105,5,22,.78);backdrop-filter:blur(4px);font-size:clamp(68px,12vw,170px);font-weight:1000;letter-spacing:.02em;color:#fff;text-transform:uppercase;text-shadow:0 0 35px rgba(255,65,96,.85);animation:timeUpHit .24s ease-out both}
.visualQuestion{position:relative}
.timer.low{animation:criticalTimer .72s ease-in-out infinite}
@keyframes criticalTimer{0%,100%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.035);filter:brightness(1.35)}}
@keyframes timeUpHit{from{opacity:0;transform:scale(1.12)}to{opacity:1;transform:scale(1)}}
@media(max-width:900px){.presentationTop{grid-template-columns:1fr auto;height:auto}.presentationTop>img{width:180px}.presentationPhase{display:none}.presentationFull{grid-column:2}.screenStage{min-height:calc(100vh - 100px);padding:12px}.screenStage .stageDisplay{height:100px}.screenFloor{min-height:520px}.presentationShell .visualCard{min-height:360px}}
.preloadBar{height:12px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden;margin-top:14px;border:1px solid rgba(255,255,255,.1)}
.preloadBar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#27d8ff,#5d8fff,#ffbc4f);box-shadow:0 0 18px rgba(39,216,255,.35);transition:width .2s ease}
.preloadBar.big{height:18px;max-width:720px;margin:24px auto 0}
.prepareCounter{font-size:clamp(44px,7vw,86px);font-weight:1000;margin-top:22px;color:#fff;text-shadow:0 0 26px rgba(50,155,255,.25)}


/* MVP 0.9 — larger board labels */
.cell .owner{font-size:clamp(18px,1.55vw,28px)!important;line-height:1.02;letter-spacing:.02em;text-shadow:0 2px 10px rgba(0,0,0,.55)}
.cell .cat{font-size:clamp(12px,.95vw,16px)!important;letter-spacing:.16em;opacity:1;text-shadow:0 2px 8px rgba(0,0,0,.55)}
.cell .count{font-size:13px!important;padding:5px 9px!important}
.presentationShell .cell .owner{font-size:clamp(22px,1.7vw,32px)!important}
.presentationShell .cell .cat{font-size:clamp(13px,1vw,17px)!important}
@media(max-width:900px){.cell .owner{font-size:15px!important}.cell .cat{font-size:10px!important}}


/* MVP 0.9 — TV-style Floor states and duel screen */
.floor{
  --floor-base:#263fbc;
  --floor-base2:#182c8f;
  --floor-active:#f3ba36;
  --floor-active2:#d88e20;
  --floor-target:#23c5e8;
  --floor-target2:#1285c3;
  background:linear-gradient(180deg,#101b72,#07143f)!important;
}
.cell{
  --territory:var(--floor-base)!important;
  background:linear-gradient(155deg,var(--floor-base),var(--floor-base2))!important;
  border-color:rgba(224,239,255,.72)!important;
  box-shadow:inset 0 0 24px rgba(255,255,255,.035),inset 0 -22px 40px rgba(0,0,0,.18)!important;
  transition:filter .18s ease,background .22s ease,box-shadow .22s ease,opacity .18s ease;
}
.cell::after{background:rgba(223,247,255,.85)!important;box-shadow:0 0 8px rgba(215,242,255,.7)!important}
.cell.active{
  background:linear-gradient(155deg,var(--floor-active),var(--floor-active2))!important;
  border-color:#fff0ba!important;
  box-shadow:inset 0 0 30px rgba(255,255,255,.12),0 0 24px rgba(255,188,55,.42)!important;
  filter:brightness(1.08);
}
.cell.attackable{
  background:linear-gradient(155deg,var(--floor-target),var(--floor-target2))!important;
  border-color:#dffcff!important;
  box-shadow:inset 0 0 28px rgba(255,255,255,.1),0 0 25px rgba(38,219,255,.48)!important;
  filter:brightness(1.08);
}
.floorChoosing .cell.dimmed{filter:brightness(.36) saturate(.55);opacity:.58}
.floorChoosing .cell.dimmed .territoryLabel{opacity:.18}
.floorChoosing .cell.active .cat{opacity:.52}
.floorChoosing .cell.attackable{cursor:pointer;animation:targetPulse 1.25s ease-in-out infinite}
@keyframes targetPulse{0%,100%{box-shadow:inset 0 0 28px rgba(255,255,255,.08),0 0 16px rgba(38,219,255,.34)}50%{box-shadow:inset 0 0 36px rgba(255,255,255,.12),0 0 34px rgba(38,219,255,.72)}}
.territoryLabel{position:relative;z-index:4;height:100%;display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.territoryLabel .owner{font-size:clamp(18px,1.45vw,28px)!important}
.territoryLabel .cat{font-size:clamp(13px,1vw,17px)!important}
.territoryLabel.targetLabel .cat{font-size:clamp(16px,1.3vw,22px)!important;color:#fff;text-shadow:0 2px 9px rgba(0,0,0,.5)}
.stateTag{align-self:flex-start;margin-top:8px;padding:5px 8px;border-radius:999px;background:rgba(14,20,43,.7);border:1px solid rgba(255,255,255,.28);font-size:9px;font-weight:1000;letter-spacing:.12em}
.targetTag{background:rgba(0,51,81,.68);border-color:rgba(255,255,255,.56)}
.gameGrid .legend{display:none!important}
.screenFloor{width:min(92vh,100%);max-width:1180px;aspect-ratio:auto!important;margin:0 auto;min-height:auto!important;height:min(72vh,840px)}
.presentationShell .screenFloor{width:min(86vh,94vw);height:min(72vh,820px)}

.tvDuelOverlay{padding:12px!important;background:radial-gradient(circle at 50% 20%,rgba(32,74,183,.34),rgba(2,7,20,.95) 64%)!important}
.tvDuel{position:relative;z-index:2;width:min(1220px,97%);margin:auto;display:flex;flex-direction:column;align-items:stretch}
.tvDuelTop{text-align:center;margin-bottom:10px}
.tvImageFrame{position:relative;width:min(1000px,94%);height:min(54vh,560px);margin:0 auto;border:4px solid #f6f7ff;border-radius:8px;background:#11172a;box-shadow:0 0 0 2px rgba(255,184,65,.55),0 0 38px rgba(29,101,255,.25);overflow:hidden}
.tvImageFrame .visualPhoto{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#11172a}
.tvImageFrame .wrongOverlay,.tvImageFrame .passOverlay,.tvImageFrame .timeUpOverlay{border-radius:0}
.tvScoreboard{width:min(1120px,100%);margin:-2px auto 0;display:grid;grid-template-columns:1fr minmax(300px,1.25fr) 1fr;align-items:stretch;gap:0;filter:drop-shadow(0 14px 22px rgba(0,0,0,.36))}
.tvPlayer,.tvCategoryBar{border:2px solid #ffd268;background:linear-gradient(180deg,#2149c9,#0f2b8e);min-height:112px;display:flex;align-items:center;justify-content:center;position:relative}
.tvPlayer{padding:12px 18px;gap:16px}
.tvLeft{border-radius:4px 0 0 18px}.tvRight{border-radius:0 4px 18px 0;flex-direction:row-reverse}
.tvPlayer.current{background:linear-gradient(180deg,#2f64f3,#163eb4);box-shadow:inset 0 0 26px rgba(255,255,255,.13),0 0 18px rgba(255,212,104,.26)}
.tvPlayer.current::before{content:'ODPOWIADA';position:absolute;top:-20px;left:50%;transform:translateX(-50%);padding:5px 11px;border-radius:999px;background:#ffbd42;color:#181207;font-size:10px;font-weight:1000;letter-spacing:.14em;white-space:nowrap}
.tvName{font-size:clamp(24px,3vw,42px);font-weight:1000;text-transform:uppercase;line-height:1}
.tvTimer{font-size:clamp(48px,6vw,84px)!important;font-weight:1000;line-height:.9;letter-spacing:-.04em;min-width:120px;text-align:center}
.tvCategoryBar{flex-direction:column;z-index:2;border-left:0;border-right:0;background:linear-gradient(180deg,#f2b93b,#c67f17);color:#101527;text-align:center;padding:10px 16px}
.tvCategoryTitle{font-size:clamp(22px,2.6vw,40px);font-weight:1000;text-transform:uppercase;line-height:1.02}
.tvCategoryHint{margin-top:7px;font-size:10px;letter-spacing:.18em;font-weight:1000;text-transform:uppercase;opacity:.82}
.tvSourceMeta{max-width:1000px;margin:8px auto 0}
.presentationShell .tvImageFrame{height:min(55vh,620px);width:min(1120px,96%)}
.presentationShell .tvScoreboard{width:min(1240px,98%)}
.presentationShell .tvPlayer,.presentationShell .tvCategoryBar{min-height:126px}
.presentationShell .tvName{font-size:clamp(30px,3.5vw,48px)}
.presentationShell .tvTimer{font-size:clamp(58px,7vw,98px)!important}
@media(max-width:900px){
  .screenFloor,.presentationShell .screenFloor{width:100%;height:560px}
  .tvScoreboard{grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}
  .tvCategoryBar{grid-column:1/-1;grid-row:1;border:2px solid #ffd268;border-radius:6px;min-height:74px}
  .tvPlayer{min-height:92px}.tvLeft,.tvRight{border-radius:8px}
  .tvImageFrame{height:43vh}
  .territoryLabel .owner{font-size:15px!important}.territoryLabel .cat{font-size:11px!important}
}


/* MVP 1.0 — broadcast-style participant duel */
.phase-duel.presentationShell,
.phase-versus.presentationShell,
.phase-countdown.presentationShell{
  padding:0;
  background:#02040a;
}
.phase-duel .presentationTop,
.phase-versus .presentationTop,
.phase-countdown .presentationTop{display:none}
.phase-duel .presentationStage,
.phase-versus .presentationStage,
.phase-countdown .presentationStage{max-width:none;margin:0}
.phase-duel .screenStage,
.phase-versus .screenStage,
.phase-countdown .screenStage{
  min-height:100vh;
  padding:0;
  border:0;
  border-radius:0;
  background:#02040a;
  box-shadow:none;
}
.phase-duel .screenStage::before,
.phase-versus .screenStage::before,
.phase-countdown .screenStage::before{display:none}
.phase-duel .screenStage>.stageDisplay,
.phase-versus .screenStage>.stageDisplay,
.phase-countdown .screenStage>.stageDisplay{display:none}
.phase-duel .floorArena,
.phase-versus .floorArena,
.phase-countdown .floorArena{
  margin:0;
  padding:0;
  min-height:100vh;
  border-radius:0;
  background:#02040a;
}
.phase-duel .screenFloor,
.phase-versus .screenFloor,
.phase-countdown .screenFloor{
  width:100%;height:100vh;min-height:100vh!important;max-height:none!important;
  visibility:hidden;
}
.phase-duel .overlay,
.phase-versus .overlay,
.phase-countdown .overlay{border-radius:0}

.broadcastDuelOverlay{
  padding:0!important;
  background:
    linear-gradient(112deg,transparent 0 17%,rgba(31,91,255,.28) 17.3% 17.7%,transparent 18% 100%),
    linear-gradient(68deg,transparent 0 82%,rgba(31,91,255,.26) 82.3% 82.7%,transparent 83% 100%),
    linear-gradient(104deg,transparent 0 31%,rgba(11,66,213,.18) 31.2% 31.55%,transparent 31.8% 100%),
    linear-gradient(76deg,transparent 0 68%,rgba(11,66,213,.18) 68.2% 68.55%,transparent 68.8% 100%),
    radial-gradient(ellipse at 50% 28%,rgba(25,62,141,.28),transparent 43%),
    linear-gradient(180deg,#02050d 0%,#02040a 58%,#050813 100%)!important;
  overflow:hidden;
}
.broadcastDuelOverlay::before{
  content:"";
  position:absolute;inset:0;
  background:
    radial-gradient(circle at 8% 31%,#1694ff 0 3px,transparent 4px),
    radial-gradient(circle at 12% 44%,#1a8cff 0 3px,transparent 4px),
    radial-gradient(circle at 92% 31%,#1694ff 0 3px,transparent 4px),
    radial-gradient(circle at 88% 44%,#1a8cff 0 3px,transparent 4px),
    linear-gradient(90deg,transparent 4%,rgba(255,127,42,.72) 4.08% 4.22%,transparent 4.3% 95.7%,rgba(255,127,42,.72) 95.78% 95.92%,transparent 96%);
  opacity:.8;
  pointer-events:none;
}
.broadcastDuelOverlay::after{
  content:"";position:absolute;left:50%;bottom:-16vh;transform:translateX(-50%);
  width:78vw;height:28vh;border:3px solid rgba(255,118,36,.55);border-radius:50%;
  box-shadow:0 0 26px rgba(255,104,29,.15);pointer-events:none;
}
.broadcastDuel{
  position:relative;z-index:2;
  width:min(1120px,94vw);
  height:100vh;
  margin:0 auto;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:4vh 0 5vh;
}
.broadcastHostKicker{margin:0 0 10px;padding:7px 14px;border-radius:999px;background:rgba(8,20,49,.78);border:1px solid rgba(255,195,78,.42);font-size:10px;font-weight:950;letter-spacing:.18em;text-transform:uppercase}
.broadcastImageFrame{
  position:relative;
  width:min(900px,80vw);
  height:min(56vh,540px);
  background:#111522;
  border:5px solid #f8f9ff;
  border-radius:2px;
  box-shadow:
    0 0 0 2px rgba(111,174,255,.35),
    0 22px 50px rgba(0,0,0,.58),
    0 0 34px rgba(32,112,255,.12);
  overflow:hidden;
}
.broadcastImageFrame .visualPhoto{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#111522}
.broadcastImageFrame .wrongOverlay,
.broadcastImageFrame .passOverlay,
.broadcastImageFrame .timeUpOverlay{border-radius:0}

.broadcastLowerThird{
  width:min(1000px,88vw);
  margin-top:14px;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.55));
}
.broadcastNames{
  display:grid;
  grid-template-columns:1fr 320px 1fr;
  align-items:end;
  gap:0;
  height:50px;
  position:relative;
  z-index:3;
}
.broadcastName{
  height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  background:linear-gradient(180deg,#172d9d,#0d1b6b);
  color:#fff;
  font-size:clamp(23px,2.3vw,34px);
  font-weight:800;
  letter-spacing:.01em;
  text-transform:uppercase;
  text-shadow:0 2px 5px rgba(0,0,0,.5);
}
.broadcastName.left{clip-path:polygon(0 0,94% 0,100% 100%,7% 100%)}
.broadcastName.right{clip-path:polygon(6% 0,100% 0,93% 100%,0 100%)}
.broadcastName::before{content:"";position:absolute;inset:2px;background:linear-gradient(180deg,#2446c8,#10237d);z-index:-1;clip-path:inherit}
.broadcastName.current{box-shadow:0 0 24px rgba(255,198,64,.18)}
.broadcastName.current::after{
  content:"ODPOWIADA";position:absolute;top:-18px;left:50%;transform:translateX(-50%);
  padding:3px 10px;background:#f4be48;color:#191303;border-radius:2px;
  font-size:9px;font-weight:1000;letter-spacing:.12em;
}
.broadcastCategory{
  height:50px;
  margin:0 -10px;
  display:flex;align-items:center;justify-content:center;
  clip-path:polygon(7% 0,93% 0,100% 50%,93% 100%,7% 100%,0 50%);
  background:linear-gradient(180deg,#ffe49a 0%,#e5b340 45%,#c88619 100%);
  color:#fff8df;
  border:0;
  font-size:clamp(16px,1.7vw,24px);
  font-weight:900;
  letter-spacing:.015em;
  text-transform:uppercase;
  text-shadow:0 2px 4px rgba(65,37,0,.55);
  box-shadow:inset 0 0 0 2px rgba(255,240,185,.45);
}
.broadcastScores{
  display:grid;
  grid-template-columns:220px 1fr 220px;
  height:90px;
  margin-top:-2px;
  align-items:stretch;
}
.broadcastTimer,
.broadcastPrompt{
  position:relative;
  background:linear-gradient(180deg,#1834ab 0%,#11257e 100%);
  border-top:3px solid #f7cf61;
  border-bottom:3px solid #f7cf61;
}
.broadcastTimer{display:flex;align-items:center;justify-content:center}
.broadcastTimer.left{clip-path:polygon(0 0,100% 0,92% 100%,10% 100%);border-left:3px solid #f7cf61}
.broadcastTimer.right{clip-path:polygon(0 0,100% 0,90% 100%,8% 100%);border-right:3px solid #f7cf61}
.broadcastTimer .timer{
  font-size:clamp(52px,5.5vw,76px)!important;
  line-height:1;
  font-weight:800;
  letter-spacing:-.04em;
  color:#f7f9ff;
  text-shadow:0 3px 6px rgba(0,0,0,.35);
  animation:none!important;
}
.broadcastTimer.current .timer{color:#fff}
.broadcastTimer.current{background:linear-gradient(180deg,#2449d1 0%,#153195 100%)}
.broadcastTimer .timer.low{color:#ffb8c4!important;text-shadow:0 0 16px rgba(255,76,111,.5)}
.broadcastPrompt{
  margin:0 -8px;
  display:flex;align-items:center;justify-content:center;
  border-left:3px solid #f7cf61;border-right:3px solid #f7cf61;
  background:linear-gradient(180deg,#1735a8,#0d246e);
  color:#dfe8ff;
  font-size:clamp(16px,1.7vw,24px);
  font-weight:650;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.broadcastSourceMeta{max-width:900px;margin-top:8px}

/* Participant duel is clean: no web-app chrome, no instructions under the TV lower-third */
.phase-duel .bottomBanner{display:none!important}
.phase-duel .broadcastHostKicker{display:none}

/* Make non-duel presentation feel like a stage rather than a web page */
.presentationShell:not(.phase-duel){
  background:
    linear-gradient(108deg,transparent 0 16%,rgba(28,102,255,.12) 16.2% 16.45%,transparent 16.7%),
    linear-gradient(72deg,transparent 0 84%,rgba(28,102,255,.12) 84.2% 84.45%,transparent 84.7%),
    radial-gradient(circle at 50% 0%,rgba(16,70,177,.30),transparent 31%),
    linear-gradient(180deg,#020712,#06152d 44%,#020713);
}
.presentationShell:not(.phase-duel) .screenStage{
  border-color:rgba(255,139,47,.26);
  box-shadow:0 0 50px rgba(0,59,159,.12),inset 0 0 50px rgba(0,31,92,.18);
}
.presentationShell:not(.phase-duel) .stageDisplay{
  border:2px solid rgba(255,135,47,.58);
  background:linear-gradient(180deg,#0d2b65,#071b44);
  box-shadow:0 0 24px rgba(255,122,37,.11),inset 0 0 34px rgba(15,81,198,.16);
}

@media(max-width:900px){
  .broadcastDuel{width:98vw;padding:2vh 0 3vh}
  .broadcastImageFrame{width:92vw;height:48vh}
  .broadcastLowerThird{width:95vw}
  .broadcastNames{grid-template-columns:1fr 210px 1fr;height:42px}
  .broadcastName{height:40px;font-size:18px}
  .broadcastCategory{height:42px;font-size:14px}
  .broadcastScores{grid-template-columns:150px 1fr 150px;height:72px}
  .broadcastTimer .timer{font-size:46px!important}
  .broadcastPrompt{font-size:13px}
}


/* MVP 1.1 — stronger TV polish, generated graphics, clearer hierarchy */
html,body{font-weight:500}
.heroPanel{
  background-image:
    linear-gradient(90deg,rgba(4,10,22,.88),rgba(4,10,22,.66)),
    radial-gradient(circle at 55% 12%, rgba(38,96,255,.22), transparent 28%),
    url('assets/bg_setup_stage.png');
  background-size:auto,auto,cover;
  background-position:center,center,center;
}
.stageDisplay,
.presentationShell:not(.phase-duel) .stageDisplay{
  background-image:
    linear-gradient(90deg,rgba(8,26,60,.76),rgba(11,33,73,.82)),
    url('assets/bg_categories_ui.png');
  background-size:auto,cover;
  background-position:center,center;
}
.stageFrame::after{
  content:"";
  position:absolute;inset:0;pointer-events:none;opacity:.07;
  background:url('assets/bg_royal_ui.png') center/cover no-repeat;
  mix-blend-mode:screen;
}
.gameGrid{grid-template-columns:minmax(0,1fr) 320px}
.host{max-height:calc(100vh - 24px);overflow:auto;padding-right:12px}
.host::-webkit-scrollbar,.names::-webkit-scrollbar{width:10px}
.host::-webkit-scrollbar-thumb,.names::-webkit-scrollbar-thumb{background:rgba(113,152,233,.28);border-radius:999px}
.btn,.badge,.tagline,.feature b,.stageDisplay .sub,.bottomBanner b,.host h3,.broadcastHostKicker{font-weight:700!important}
.heroPanel h1,.configPanel h2,.bigTitle,.broadcastName,.tvName{font-weight:800!important}
.rangeRow strong,.rangeRow b,.stat b,.hostAnswer,.timer,.broadcastTimer .timer{font-weight:750!important}
.cell .owner,
.presentationShell .cell .owner{
  font-size:clamp(17px,1.34vw,26px)!important;
  line-height:1.04;
  letter-spacing:.01em;
  font-weight:780!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
  max-width:82%;
}
.cell .cat,
.presentationShell .cell .cat{
  font-size:clamp(11px,.88vw,15px)!important;
  line-height:1.08;
  white-space:normal;
  max-width:88%;
  font-weight:680!important;
  letter-spacing:.09em!important;
}
.territoryLabel{display:flex;flex-direction:column;justify-content:space-between;height:100%;gap:8px}
.cell .count{font-weight:700!important}
.introOverlay{align-items:flex-start;justify-content:center;padding-top:34px;background:transparent!important}
.introOverlayInner{
  max-width:min(920px,92%);padding:18px 26px;border-radius:18px;
  background:linear-gradient(180deg,rgba(5,15,38,.9),rgba(5,15,38,.75));
  border:1px solid rgba(255,216,122,.26);box-shadow:0 10px 30px rgba(0,0,0,.28)
}
.introHeadline{font-size:clamp(24px,2.3vw,36px);font-weight:800;letter-spacing:-.02em;margin-top:6px}
.rosterList{display:grid;grid-template-columns:1fr;gap:8px;margin-top:14px;max-height:320px;overflow:auto;padding-right:3px}
.rosterItem{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:rgba(10,24,54,.72);border:1px solid rgba(255,255,255,.08)}
.rosterName{font-weight:700;color:#f1f6ff}
.rosterCat{text-align:right;color:#bcd0f9;font-weight:600}
.broadcastDuelOverlay{
  background-image:
    linear-gradient(112deg,transparent 0 17%,rgba(31,91,255,.28) 17.3% 17.7%,transparent 18% 100%),
    linear-gradient(68deg,transparent 0 82%,rgba(31,91,255,.26) 82.3% 82.7%,transparent 83% 100%),
    linear-gradient(104deg,transparent 0 31%,rgba(11,66,213,.18) 31.2% 31.55%,transparent 31.8% 100%),
    linear-gradient(76deg,transparent 0 68%,rgba(11,66,213,.18) 68.2% 68.55%,transparent 68.8% 100%),
    linear-gradient(180deg,rgba(2,5,13,.92),rgba(2,5,13,.92)),
    url('assets/bg_quiz_ui.png')!important;
  background-size:auto,auto,auto,auto,auto,cover!important;
  background-position:center,center,center,center,center,center!important;
}
.broadcastImageFrame{width:min(920px,80vw);height:min(54vh,520px)}
.broadcastName{
  color:rgba(237,244,255,.62);
  background:linear-gradient(180deg,#11226c,#0a154b);
}
.broadcastName::before{background:linear-gradient(180deg,#1c358e,#0d1d63)!important}
.broadcastName.current{color:#ffffff;background:linear-gradient(180deg,#2143be,#14308e);box-shadow:0 0 24px rgba(255,198,64,.18), inset 0 0 0 1px rgba(255,255,255,.12)}
.broadcastName.current::before{background:linear-gradient(180deg,#2b4ed1,#17379a)!important}
.broadcastName.current::after{display:none}
.broadcastTimer .timer{color:rgba(247,249,255,.58)!important}
.broadcastTimer.current .timer{color:#ffffff!important;text-shadow:0 0 12px rgba(255,255,255,.18),0 3px 6px rgba(0,0,0,.35)}
.broadcastTimer{background:linear-gradient(180deg,#11226d 0%,#0a174e 100%)}
.broadcastTimer.current{background:linear-gradient(180deg,#2449d1 0%,#153195 100%)}
.broadcastPrompt{font-weight:650!important;letter-spacing:.06em}
.broadcastCategory{font-weight:760!important}
.broadcastSourceMeta{opacity:.85}
.bottomBanner b{font-size:17px}
.bottomBanner span{font-weight:500}
@media (max-width: 1300px){
  .gameGrid{grid-template-columns:minmax(0,1fr) 300px}
}
@media (max-width: 1100px){
  .host{max-height:none;overflow:visible;padding-right:0}
}
@media (max-width: 900px){
  .cell .owner,.presentationShell .cell .owner{font-size:14px!important;max-width:80%}
  .cell .cat,.presentationShell .cell .cat{font-size:10px!important;max-width:82%}
}


/* =========================
   FLOOR PARTY 1.3 TV EXPERIENCE
   ========================= */

/* Intro programu */
.showIntroOverlay{
  z-index:20;
  background:
    radial-gradient(circle at 50% 25%,rgba(35,96,255,.34),transparent 34%),
    linear-gradient(180deg,rgba(1,5,15,.98),rgba(2,9,27,.98))!important;
  display:flex;align-items:center;justify-content:center;
}
.showIntroContent{text-align:center;animation:showIntroIn .75s cubic-bezier(.2,.8,.2,1) both}
.showIntroContent img{width:min(620px,66vw);filter:drop-shadow(0 0 40px rgba(28,105,255,.42)) drop-shadow(0 12px 28px rgba(0,0,0,.65));animation:logoFloat 2.4s ease-in-out infinite alternate}
.showIntroRule{width:min(520px,58vw);height:2px;margin:22px auto 18px;background:linear-gradient(90deg,transparent,#27bfff,#ffd15a,#27bfff,transparent);box-shadow:0 0 18px rgba(39,191,255,.45)}
.showIntroStats{display:flex;gap:22px;justify-content:center;align-items:center;font-size:clamp(15px,1.4vw,21px);letter-spacing:.18em;text-transform:uppercase;color:#dce9ff}
.showIntroStats b{color:#fff;font-weight:800}.showIntroStats span{opacity:.78}
.showIntroTag{margin-top:16px;font-size:11px;letter-spacing:.35em;color:#79caff;font-weight:700}
@keyframes showIntroIn{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
@keyframes logoFloat{from{transform:translateY(0)}to{transform:translateY(-7px)}}

/* Przydział kategorii bez zasłaniania planszy */
.categoryRevealOverlay{background:transparent!important;align-items:flex-start!important;justify-content:center!important;padding:18px!important;pointer-events:none}
.categoryRevealBar{display:flex;gap:18px;align-items:center;padding:11px 22px;border-radius:999px;background:rgba(3,12,31,.88);border:1px solid rgba(255,203,87,.36);box-shadow:0 8px 30px rgba(0,0,0,.35);backdrop-filter:blur(10px)}
.categoryRevealBar b{font-size:13px;letter-spacing:.18em;color:#fff;font-weight:800}
.categoryRevealBar span{font-size:13px;color:#bcd0f9;font-weight:500}

/* VS i finał */
.versusOverlay{background:radial-gradient(circle at 50% 42%,rgba(20,78,208,.27),rgba(2,7,18,.91) 58%,rgba(1,4,12,.97))!important}
.versusInner{max-width:1050px!important}
.versusInner .fighter small{display:block;margin-top:10px;color:#91b5ff;font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.finalVersus::before{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 25%,rgba(255,190,54,.08) 25.4%,transparent 25.8%,transparent 74%,rgba(255,190,54,.08) 74.4%,transparent 74.8%);pointer-events:none}
.finalVersus .vsMark{color:#ffd15b;text-shadow:0 0 26px rgba(255,192,55,.48)}

.countdownOverlay{background:radial-gradient(circle at center,rgba(17,72,194,.2),rgba(0,2,8,.9))!important}
.countdownInner{background:transparent!important;border:0!important;box-shadow:none!important}
.countNum{filter:drop-shadow(0 0 24px rgba(41,125,255,.42));animation:countPunch .68s ease-out both}
.countNum.go{font-size:clamp(70px,11vw,170px)!important;color:#ffd25a!important;text-shadow:0 0 28px rgba(255,197,62,.45)}
@keyframes countPunch{0%{opacity:.15;transform:scale(1.45)}55%{opacity:1;transform:scale(.94)}100%{transform:scale(1)}}

/* Pojedynek */
.broadcastName:not(.current){opacity:.42;filter:saturate(.7) brightness(.8)}
.broadcastTimer:not(.current){opacity:.48;filter:saturate(.7) brightness(.82)}
.broadcastName.current,.broadcastTimer.current{opacity:1;filter:none}
.broadcastImageFrame.correctFlash{box-shadow:0 0 0 5px rgba(255,255,255,.88),0 0 45px rgba(73,255,176,.62),0 22px 50px rgba(0,0,0,.58)!important}
.correctOverlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(25,170,104,.2);color:#fff;font-size:clamp(54px,8vw,112px);font-weight:850;letter-spacing:.03em;text-shadow:0 4px 18px rgba(0,0,0,.6);animation:correctPop .19s ease-out both;z-index:6}
@keyframes correctPop{from{opacity:0;transform:scale(.84)}to{opacity:1;transform:scale(1)}}
.timer.critical{animation:timerCritical .48s ease-in-out infinite alternate!important}
@keyframes timerCritical{from{transform:scale(1);filter:brightness(1)}to{transform:scale(1.07);filter:brightness(1.35)}}

/* Animacja przejęcia */
.takeoverOverlay{background:linear-gradient(180deg,rgba(1,5,15,.25),rgba(1,5,15,.6))!important;align-items:flex-start!important;padding-top:22px!important;pointer-events:none}
.takeoverCard{text-align:center;padding:16px 28px;border-radius:18px;background:rgba(4,14,36,.9);border:1px solid rgba(255,200,80,.42);box-shadow:0 12px 36px rgba(0,0,0,.42)}
.takeoverName{font-size:clamp(34px,4vw,60px);font-weight:800;color:#fff;margin:4px 0 8px;text-transform:uppercase}
.takeoverNumbers{display:flex;gap:14px;align-items:center;justify-content:center}.takeoverNumbers b{font-size:36px;color:#ffd15a}.takeoverNumbers span{color:#c5d6fb;font-size:16px}
.streakBadge{margin:10px auto 0;width:max-content;padding:7px 14px;border-radius:999px;background:linear-gradient(90deg,#ff9b2d,#ffc94e);color:#211300;font-weight:800;font-size:12px;letter-spacing:.09em}
.cell.takeoverCell{animation:captureWave .72s cubic-bezier(.2,.9,.2,1) var(--capture-delay) both;z-index:6}
@keyframes captureWave{0%{transform:scale(.82);filter:brightness(2.3);box-shadow:0 0 0 4px #fff,0 0 34px #ffd15a}60%{transform:scale(1.045);filter:brightness(1.5)}100%{transform:scale(1);filter:brightness(1)}}

/* Historia na panelu hosta */
.historyBox{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.09)}
.historyTitle{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#7f9ac8;margin-bottom:8px;font-weight:700}
.historyRow{display:grid;grid-template-columns:auto 1fr;gap:2px 7px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.055);font-size:12px}.historyRow b{color:#fff}.historyRow span{color:#aebfdf}.historyRow small{grid-column:1/-1;color:#7894c4;font-size:10px;text-transform:uppercase;letter-spacing:.08em}

/* Finał */
.winnerOverlay{overflow:hidden;background:radial-gradient(circle at 50% 35%,rgba(21,85,219,.4),rgba(1,5,14,.96) 62%)!important}
.winnerInner{position:relative;z-index:3}
.winnerStats{display:flex;justify-content:center;gap:14px;margin:24px auto;flex-wrap:wrap}.winnerStats>div{min-width:150px;padding:14px 18px;border-radius:15px;background:rgba(8,24,58,.78);border:1px solid rgba(255,209,90,.24)}.winnerStats b{display:block;font-size:30px;color:#ffd15a}.winnerStats span{font-size:11px;color:#a9bee8;text-transform:uppercase;letter-spacing:.08em}
.winnerConfetti{position:absolute;inset:0;overflow:hidden;pointer-events:none}.winnerConfetti i{position:absolute;left:calc((var(--i) * 5.5%));top:-12%;width:9px;height:24px;background:linear-gradient(#ffd15a,#3ab7ff);transform:rotate(calc(var(--i)*19deg));animation:confettiFall 3.2s linear infinite;animation-delay:calc(var(--i)*-.17s)}
@keyframes confettiFall{0%{transform:translateY(-10vh) rotate(0)}100%{transform:translateY(120vh) rotate(720deg)}}

/* Host, bardziej użytkowy i ciaśniejszy */
.host{font-size:14px}.hostCard{padding:15px!important}.hostActions .btn{min-height:54px}.hotkeys{margin-top:12px!important}

@media(max-width:1100px){
  .categoryRevealBar{gap:10px;padding:9px 14px}.categoryRevealBar span{display:none}
}


/* =========================
   FLOOR PARTY 1.3.1 FIXES
   ========================= */

/* Category reveal must leave the entire board completely sharp and readable. */
.phase-intro .floorArena{
  filter:none !important;
}

.phase-intro .floor,
.phase-intro .cell,
.phase-intro .territoryLabel{
  filter:none !important;
  opacity:1 !important;
}

.categoryRevealOverlay{
  background:transparent !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  box-shadow:none !important;
  pointer-events:none !important;
  align-items:flex-start !important;
  justify-content:center !important;
  padding:14px 18px !important;
}

.categoryRevealOverlay::before{
  display:none !important;
  content:none !important;
}

.categoryRevealBar{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  background:rgba(3,12,31,.94) !important;
  box-shadow:0 7px 24px rgba(0,0,0,.28) !important;
}

/* During category reveal, keep all names/categories at full contrast. */
.phase-intro .cell .owner,
.phase-intro .cell .cat,
.phase-intro .cell .count{
  opacity:1 !important;
  filter:none !important;
  text-shadow:0 2px 8px rgba(0,0,0,.5);
}


/* FLOOR PARTY 1.3.2 — unique-category game logic */
.categoryRevealNotice{
  position:absolute;
  top:14px;
  left:50%;
  transform:translateX(-50%);
  z-index:25;
  pointer-events:none;
  width:max-content;
  max-width:92%;
}

.categoryRevealNotice .categoryRevealBar{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

/* Guarantee that the category reveal never blurs or dims the floor. */
.phase-intro .floorArena,
.phase-intro .floor,
.phase-intro .cell,
.phase-intro .territoryLabel{
  filter:none !important;
  opacity:1 !important;
}

.nextCategoryCard{
  display:inline-flex;
  flex-direction:column;
  gap:5px;
  min-width:280px;
  margin:12px 0 6px;
  padding:12px 22px;
  border-radius:14px;
  background:linear-gradient(180deg,rgba(18,55,132,.94),rgba(7,25,71,.96));
  border:1px solid rgba(87,206,255,.48);
  box-shadow:0 0 24px rgba(27,145,255,.15);
}
.nextCategoryCard span{
  font-size:11px;
  letter-spacing:.19em;
  color:#9fcaff;
  font-weight:700;
}
.nextCategoryCard b{
  font-size:clamp(22px,2vw,34px);
  color:#fff;
  font-weight:800;
}


/* =========================================
   FLOOR PARTY 1.3.4 — presentation cleanup
   ========================================= */

/* CATEGORY REVEAL
   Participant screen already has "Kategorie graczy" and subtitle in the top frame,
   so no additional bar is allowed to cover the first row. */
.presentationShell.phase-intro .screenFloor{
  margin-top:0 !important;
}

/* HOST DUEL
   The participant layout may use the whole viewport, but the host has a control sidebar.
   Do not size lower thirds using the full browser viewport in host mode. */
.hostPhase-duel .stageFrame{
  min-height:0;
}
.hostPhase-duel .stageDisplay{
  display:none;
}
.hostPhase-duel .floorArena{
  margin-top:0;
  padding:0;
  min-height:620px;
  height:calc(100vh - 190px);
  max-height:760px;
  overflow:hidden;
  border-radius:18px;
}
.hostPhase-duel .floor{
  visibility:hidden;
}
.hostPhase-duel .broadcastDuelOverlay{
  border-radius:18px !important;
}
.hostPhase-duel .broadcastDuel{
  width:100%;
  height:100%;
  min-height:0;
  padding:12px 10px 14px;
  justify-content:center;
}
.hostPhase-duel .broadcastHostKicker{
  margin-bottom:8px;
}
.hostPhase-duel .broadcastImageFrame{
  width:min(760px,92%);
  height:min(40vh,390px);
  flex:0 1 auto;
}
.hostPhase-duel .broadcastLowerThird{
  width:min(820px,96%);
  margin-top:10px;
}
.hostPhase-duel .broadcastNames{
  grid-template-columns:minmax(0,1fr) 230px minmax(0,1fr);
  height:44px;
}
.hostPhase-duel .broadcastName{
  height:42px;
  font-size:clamp(18px,1.6vw,28px);
  min-width:0;
  overflow:hidden;
}
.hostPhase-duel .broadcastName span{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:90%;
}
.hostPhase-duel .broadcastCategory{
  height:44px;
  font-size:clamp(14px,1.3vw,20px);
  min-width:0;
  padding-left:10px;
  padding-right:10px;
}
.hostPhase-duel .broadcastScores{
  grid-template-columns:165px minmax(0,1fr) 165px;
  height:76px;
}
.hostPhase-duel .broadcastTimer .timer{
  font-size:clamp(44px,4.2vw,64px) !important;
}
.hostPhase-duel .broadcastPrompt{
  font-size:clamp(13px,1.2vw,19px);
  padding:0 12px;
}
.hostPhase-duel .broadcastSourceMeta{
  margin-top:4px;
  font-size:10px;
}
.hostPhase-duel .bottomBanner{
  display:none !important;
}

/* Keep the sidebar fully usable during the duel. */
.hostPhase-duel .host{
  max-height:calc(100vh - 24px);
  overflow:auto;
}

/* On shorter laptop screens compress the host duel a little more. */
@media (max-height: 820px){
  .hostPhase-duel .floorArena{
    height:calc(100vh - 160px);
    min-height:560px;
  }
  .hostPhase-duel .broadcastImageFrame{
    height:min(36vh,330px);
  }
  .hostPhase-duel .broadcastScores{
    height:68px;
  }
  .hostPhase-duel .broadcastTimer .timer{
    font-size:48px !important;
  }
}


/* FLOOR PARTY 1.3.5 — scalone terytoria podczas wyboru przeciwnika */
.floor .cell.join-u{border-top-color:transparent!important}
.floor .cell.join-d{border-bottom-color:transparent!important}
.floor .cell.join-l{border-left-color:transparent!important}
.floor .cell.join-r{border-right-color:transparent!important}
.floor .cell.active.join-u,.floor .cell.attackable.join-u{border-top-color:transparent!important}
.floor .cell.active.join-d,.floor .cell.attackable.join-d{border-bottom-color:transparent!important}
.floor .cell.active.join-l,.floor .cell.attackable.join-l{border-left-color:transparent!important}
.floor .cell.active.join-r,.floor .cell.attackable.join-r{border-right-color:transparent!important}
.floor .cell.join-d::after{opacity:0!important}
.floorChoosing .cell.join-r{margin-right:-2px}
.floorChoosing .cell.join-d{margin-bottom:-2px}
.floorChoosing .cell.join-r.join-d{z-index:2}
.floorChoosing .cell.join-l,.floorChoosing .cell.join-u{z-index:1}
.floorChoosing .cell.attackable,.floorChoosing .cell.active{z-index:3}


/* FLOOR PARTY 1.3.6 — dynamic 120-item duel queue */
.bufferingOverlay{
  position:absolute;inset:0;z-index:12;display:grid;place-items:center;align-content:center;gap:8px;
  background:rgba(4,12,31,.92);backdrop-filter:blur(5px);color:#fff;text-align:center;
}
.bufferingOverlay b{font-size:clamp(24px,3vw,44px);letter-spacing:.08em}
.bufferingOverlay span{font-size:13px;color:#9ec9ff;text-transform:uppercase;letter-spacing:.15em}
.poolDebug{font-size:11px;color:#91a9d3;line-height:1.45;margin-top:10px;padding-top:9px;border-top:1px solid rgba(255,255,255,.08)}
.bufferNotice{padding:9px 10px;border-radius:9px;background:rgba(30,113,210,.16);border:1px solid rgba(81,174,255,.28);font-size:12px;color:#bfe3ff}


/* =========================================
   FLOOR PARTY 1.3.7 — text duel categories
   ========================================= */
.broadcastTextFrame{
  position:relative;
  width:min(1000px,94%);
  height:min(54vh,560px);
  margin:0 auto;
  border:5px solid #f8f9ff;
  background:
    radial-gradient(circle at 50% 38%,rgba(33,92,205,.34),transparent 48%),
    linear-gradient(155deg,#071128,#121d48 55%,#061027);
  box-shadow:0 0 0 2px rgba(255,184,65,.45),0 0 38px rgba(29,101,255,.24);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:44px 54px;
  text-align:center;
  overflow:hidden;
}
.broadcastTextFrame::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 10%,rgba(47,132,255,.09) 42%,transparent 70%);
  pointer-events:none;
}
.textQuestionLabel{
  position:relative;z-index:2;
  margin-bottom:22px;
  color:#ffcf62;
  font-size:clamp(12px,1vw,17px);
  font-weight:750;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.textQuestionValue{
  position:relative;z-index:2;
  max-width:900px;
  color:#fff;
  font-size:clamp(38px,5.2vw,84px);
  font-weight:750;
  line-height:1.04;
  letter-spacing:-.025em;
  text-wrap:balance;
  text-shadow:0 8px 30px rgba(0,0,0,.45),0 0 24px rgba(84,156,255,.14);
}
.broadcastTextFrame .passOverlay,
.broadcastTextFrame .wrongOverlay,
.broadcastTextFrame .correctOverlay,
.broadcastTextFrame .timeUpOverlay{border-radius:0}
.badImageBtn{
  grid-column:1/-1;
  background:linear-gradient(180deg,#493a69,#2b2443)!important;
  border-color:rgba(194,166,255,.4)!important;
}
.hostPhase-duel .broadcastTextFrame{
  width:min(760px,92%);
  height:min(40vh,390px);
}
@media(max-height:820px){
  .hostPhase-duel .broadcastTextFrame{height:min(36vh,330px)}
}


/* FLOOR PARTY 1.3.8 — strategy + quality control */
.modeChooser{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 8px}
.modeBtn{appearance:none;border:1px solid rgba(126,164,235,.22);border-radius:12px;padding:11px 8px;background:rgba(5,14,34,.78);color:#dbe8ff;cursor:pointer;text-align:center;transition:.16s ease}
.modeBtn b{display:block;font-size:12px;letter-spacing:.12em}.modeBtn span{display:block;margin-top:3px;font-size:10px;color:#879cc4}
.modeBtn.active{border-color:rgba(255,201,87,.75);background:linear-gradient(180deg,rgba(33,75,150,.9),rgba(8,29,70,.95));box-shadow:0 0 20px rgba(52,153,255,.18),inset 0 0 16px rgba(255,213,96,.06);color:#fff}
.modeInfo{font-size:11px;color:#93a9cf;margin:0 0 12px}.reportSetupActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.dangerText{color:#ff9aad!important}
.qualityPanel{margin-top:12px;padding:11px;border-radius:12px;border:1px solid rgba(255,255,255,.09);background:rgba(4,11,27,.68)}
.qualityTitle{margin-bottom:8px;font-size:10px;text-transform:uppercase;letter-spacing:.15em;color:#8fa8d5;font-weight:700}
.qualityActions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.qualityActions button{border:1px solid rgba(255,183,83,.24);border-radius:8px;padding:8px 5px;background:rgba(78,47,23,.4);color:#ffd59c;font-size:10px;font-weight:700;cursor:pointer}
.qualityActions button:hover{background:rgba(115,69,28,.56)}.qualityPanel small{display:block;margin-top:7px;color:#7388af;font-size:9px}.reportBtn{white-space:nowrap}
.goldToken{position:absolute;right:7px;top:42px;z-index:5;padding:4px 7px;border-radius:999px;background:linear-gradient(180deg,#ffd85e,#d78b19);color:#221500;border:1px solid #fff0a5;box-shadow:0 0 16px rgba(255,196,60,.48);font-size:10px;font-weight:900}
.goldHostInfo,.goldAwardHost{margin-top:10px;padding:9px 10px;border-radius:10px;border:1px solid rgba(255,205,83,.42);background:rgba(101,68,14,.28);color:#ffd96b;font-size:11px;font-weight:700}
.goldChoice{display:grid;gap:7px;margin-top:12px}.goldBtn{background:linear-gradient(180deg,#d8a326,#8b5e12)!important;border-color:#ffe38b!important;color:#191106!important}
.goldVsBadge{width:max-content;margin:10px auto 0;padding:6px 10px;border-radius:999px;background:rgba(116,78,14,.35);border:1px solid rgba(255,213,92,.52);color:#ffd968;font-size:9px;font-weight:800;letter-spacing:.08em}
.goldVsBadge.activeGold{background:linear-gradient(90deg,#f5b92e,#ffd968);color:#1d1300;box-shadow:0 0 20px rgba(255,201,72,.36)}
.goldAward{margin:14px auto 0;width:max-content;max-width:90%;padding:10px 18px;border-radius:12px;background:linear-gradient(180deg,#f6c84b,#c98216);color:#211300;font-weight:900;letter-spacing:.08em;box-shadow:0 0 30px rgba(255,192,54,.34)}
.goldAward span{font-size:10px;letter-spacing:.12em}
@media(max-width:720px){.modeChooser{grid-template-columns:1fr}.qualityActions{grid-template-columns:1fr}}


/* =========================================
   FLOOR PARTY 1.4.0 — TV SHOW UPDATE
   ========================================= */

.statsShowOverlay{
  position:absolute;
  inset:0;
  z-index:90;
  display:grid;
  place-items:center;
  padding:22px;
  background:radial-gradient(circle at 50% 32%,rgba(20,75,175,.42),rgba(1,6,18,.91) 58%,rgba(0,2,10,.98));
  backdrop-filter:blur(8px);
}
.statsShowCard{
  width:min(980px,92vw);
  padding:30px 34px;
  border-radius:24px;
  border:1px solid rgba(255,190,64,.62);
  background:linear-gradient(180deg,rgba(8,24,59,.97),rgba(3,9,25,.98));
  box-shadow:0 0 70px rgba(23,107,255,.25),0 0 28px rgba(255,180,52,.08);
  text-align:center;
}
.statsHeadline{
  margin:8px 0 24px;
  font-size:clamp(28px,4vw,54px);
  font-weight:800;
  letter-spacing:.015em;
  color:#fff;
}
.statsShowGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.statsShowGrid>div{
  min-height:128px;
  padding:16px 10px;
  border-radius:15px;
  border:1px solid rgba(76,168,255,.24);
  background:linear-gradient(180deg,rgba(23,70,155,.7),rgba(7,25,68,.82));
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.statsShowGrid span,.statsMoment span{
  color:#8db9ef;
  font-size:9px;
  font-weight:800;
  letter-spacing:.13em;
}
.statsShowGrid b{
  margin:7px 0 3px;
  color:#fff;
  font-size:clamp(18px,2.1vw,30px);
}
.statsShowGrid small{color:#c2d6f6}
.statsMoment{
  margin:12px 0;
  padding:13px 18px;
  border-radius:13px;
  background:rgba(90,61,12,.32);
  border:1px solid rgba(255,201,72,.34);
}
.statsMoment b{
  display:block;
  margin-top:5px;
  color:#ffd66b;
  font-size:17px;
}
.statsTotals{
  display:flex;
  justify-content:center;
  gap:26px;
  flex-wrap:wrap;
  margin-top:12px;
  color:#9fb5db;
  font-size:12px;
}
.statsClose{margin-top:18px}

.finalIntroOverlay{
  background:radial-gradient(circle at 50% 38%,rgba(32,81,190,.35),rgba(0,3,13,.96) 62%);
  overflow:hidden;
}
.finalIntroGlow{
  position:absolute;
  width:68%;
  height:120%;
  left:16%;
  top:-10%;
  background:linear-gradient(90deg,transparent,rgba(24,109,255,.14),rgba(255,189,48,.12),rgba(24,109,255,.14),transparent);
  filter:blur(18px);
  animation:finalGlow 1.1s ease-in-out infinite alternate;
}
@keyframes finalGlow{from{opacity:.45;transform:scale(.96)}to{opacity:1;transform:scale(1.05)}}
.finalIntroInner{position:relative;z-index:2;width:min(1050px,94%)}
.finalIntroTitle{
  margin:7px 0 22px;
  font-size:clamp(58px,8vw,120px);
  font-weight:900;
  line-height:.9;
  color:#fff;
  text-shadow:0 0 30px rgba(54,142,255,.38),0 5px 0 rgba(0,0,0,.24);
}
.finalIntroVs{
  display:grid;
  grid-template-columns:1fr 90px 1fr;
  align-items:center;
  gap:12px;
  margin:0 auto;
  width:min(900px,100%);
}
.finalIntroVs>div{
  padding:18px 16px;
  border-radius:16px;
  border:1px solid rgba(65,169,255,.42);
  background:linear-gradient(180deg,rgba(20,69,157,.88),rgba(6,24,66,.94));
}
.finalIntroVs span{
  display:block;
  color:white;
  font-size:clamp(24px,3vw,42px);
  font-weight:800;
}
.finalIntroVs small{color:#a9c2e8}
.finalIntroVs>b{
  font-size:34px;
  color:#ffc94d;
}
.finalCategory{
  width:max-content;
  max-width:90%;
  margin:18px auto 0;
  padding:10px 30px;
  border-radius:999px;
  border:1px solid rgba(255,210,91,.7);
  background:linear-gradient(180deg,#d9a228,#926013);
  color:#fff;
  box-shadow:0 0 28px rgba(255,191,46,.18);
}
.finalCategory small{display:block;font-size:8px;letter-spacing:.15em;opacity:.78}
.finalCategory strong{display:block;font-size:clamp(20px,2.3vw,32px)}
.finalIntroTag{
  margin-top:14px;
  color:#d9e8ff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.14em;
}
.finalHostCard{
  border-color:rgba(255,200,67,.38)!important;
  box-shadow:inset 0 0 30px rgba(255,188,50,.04);
}

.winnerStats.expanded{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.winnerRecap{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  margin:14px 0 4px;
}
.winnerRecap span{
  padding:8px 12px;
  border-radius:10px;
  border:1px solid rgba(105,169,255,.18);
  background:rgba(6,24,62,.58);
  color:#a8c1e8;
  font-size:11px;
}
.winnerRecap b{color:white}
.winnerButtons{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:16px;
}
.winnerHostSummary{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:10px;
  color:#9eb4da;
  font-size:11px;
}

@media(max-width:900px){
  .statsShowGrid{grid-template-columns:repeat(2,1fr)}
  .winnerStats.expanded{grid-template-columns:repeat(2,1fr)}
  .finalIntroVs{grid-template-columns:1fr 55px 1fr}
}


/* =========================================
   FLOOR PARTY 1.4.1 — TEST LAB + TV MOMENTS
   ========================================= */

.testBtn{
  border-color:rgba(255,193,65,.34)!important;
  color:#ffd16a!important;
}
.testPanelBackdrop{
  position:fixed;
  inset:0;
  z-index:300;
  display:flex;
  justify-content:flex-end;
  background:rgba(0,3,12,.54);
  backdrop-filter:blur(3px);
}
.testPanel{
  width:min(430px,92vw);
  height:100%;
  padding:24px;
  background:linear-gradient(180deg,#071633,#030a19);
  border-left:1px solid rgba(255,190,59,.4);
  box-shadow:-30px 0 80px rgba(0,0,0,.45);
  color:#dbe7fb;
}
.testPanelHead{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}
.testPanelHead span{
  display:block;
  color:#ffc95b;
  font-size:9px;
  font-weight:800;
  letter-spacing:.16em;
}
.testPanelHead b{
  display:block;
  margin-top:5px;
  color:white;
  font-size:27px;
}
.testPanelHead button{
  width:38px;
  height:38px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.14);
  background:#0b1b3b;
  color:white;
  font-size:24px;
  cursor:pointer;
}
.testPanel>p{
  color:#93a7ca;
  font-size:12px;
  line-height:1.55;
}
.testActions{
  display:grid;
  gap:9px;
  margin:20px 0;
}
.testActions button{
  padding:14px 15px;
  border-radius:12px;
  border:1px solid rgba(77,169,255,.26);
  background:linear-gradient(180deg,rgba(23,67,145,.92),rgba(7,27,69,.95));
  color:#fff;
  text-align:left;
  font-size:13px;
  font-weight:750;
  cursor:pointer;
}
.testActions button:first-child{
  border-color:rgba(255,199,65,.48);
  background:linear-gradient(180deg,rgba(129,86,13,.9),rgba(66,41,6,.96));
}
.testActions button:hover{filter:brightness(1.12)}
.testHint{
  margin-top:18px;
  padding:11px;
  border-radius:10px;
  background:rgba(255,255,255,.045);
  color:#adc1df;
  font-size:11px;
}
.testDanger{
  margin-top:12px;
  padding:11px;
  border-radius:10px;
  border:1px solid rgba(255,105,112,.2);
  background:rgba(92,16,28,.18);
  color:#eaa6ad;
  font-size:10px;
}
.streakBadge.hot{
  background:linear-gradient(90deg,#ca5a16,#ffb42a)!important;
  color:#fff7e2!important;
  border-color:#ffd572!important;
  box-shadow:0 0 24px rgba(255,133,35,.28);
}


/* =========================================
   FLOOR PARTY 1.4.2 — seamless territories + TV moments
   ========================================= */

/* The gradient is aligned to the whole board, so cells of the same owner no longer
   look like separately shaded tiles. */
.floor .cell{
  background-image:
    linear-gradient(120deg,rgba(255,255,255,.08),transparent 24% 74%,rgba(255,255,255,.025)),
    linear-gradient(180deg,
      color-mix(in srgb,var(--territory) 84%,#092146 16%),
      color-mix(in srgb,var(--territory) 62%,#050e1e 38%));
  background-size:var(--bg-size-x,100%) var(--bg-size-y,100%);
  background-position:var(--bg-pos-x,0%) var(--bg-pos-y,0%);
  background-repeat:no-repeat;
}
.floor .cell::before{
  background-image:linear-gradient(120deg,rgba(255,255,255,.11),transparent 19% 80%,rgba(255,255,255,.025));
  background-size:var(--bg-size-x,100%) var(--bg-size-y,100%);
  background-position:var(--bg-pos-x,0%) var(--bg-pos-y,0%);
  background-repeat:no-repeat;
}
.floor .cell.join-u,
.floor .cell.join-d,
.floor .cell.join-l,
.floor .cell.join-r{
  box-shadow:none!important;
}
.floor .cell.join-u::before,
.floor .cell.join-d::before,
.floor .cell.join-l::before,
.floor .cell.join-r::before{
  opacity:.22;
}
.floor .cell.join-d::after{opacity:0!important}

/* TV moment cards after a duel */
.tvMoment{
  margin:13px auto 0;
  width:max-content;
  max-width:90%;
  padding:9px 16px;
  border-radius:11px;
  border:1px solid rgba(100,183,255,.36);
  background:rgba(7,31,78,.74);
  text-align:center;
  box-shadow:0 0 24px rgba(47,141,255,.12);
}
.tvMoment b{
  display:block;
  font-size:13px;
  letter-spacing:.13em;
  color:#fff;
}
.tvMoment span{
  display:block;
  margin-top:4px;
  color:#a9c6ed;
  font-size:10px;
}
.tvMoment.close{
  border-color:rgba(255,104,116,.52);
  background:linear-gradient(180deg,rgba(126,28,45,.72),rgba(61,12,26,.78));
  box-shadow:0 0 24px rgba(255,72,96,.18);
}
.tvMoment.close b{color:#ff98a6}
.tvMoment.capture{
  border-color:rgba(255,207,78,.52);
  background:linear-gradient(180deg,rgba(105,68,10,.68),rgba(58,36,6,.76));
}
.tvMoment.capture b{color:#ffd568}
.tvMoment.streak{
  border-color:rgba(255,139,44,.56);
  background:linear-gradient(180deg,rgba(135,53,12,.74),rgba(74,25,5,.8));
}
.tvMoment.streak b{color:#ffb14e}
.momentHost{
  margin-top:10px;
  padding:9px 10px;
  border-radius:9px;
  border:1px solid rgba(255,194,68,.28);
  background:rgba(61,37,8,.28);
}
.momentHost b{
  display:block;
  color:#ffd36c;
  font-size:11px;
  letter-spacing:.1em;
}
.momentHost span{
  display:block;
  margin-top:3px;
  color:#b9c9e2;
  font-size:10px;
}


/* FLOOR PARTY 1.4.3 — recovery & live safety */
.recoveryCard{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:18px 0 4px;padding:14px 15px;border-radius:14px;border:1px solid rgba(74,194,255,.38);background:linear-gradient(180deg,rgba(10,61,113,.66),rgba(4,23,57,.82));box-shadow:0 0 28px rgba(35,155,255,.10)}
.recoveryCard span{display:block;color:#64d6ff;font-size:9px;font-weight:800;letter-spacing:.15em}.recoveryCard b{display:block;margin-top:4px;color:#fff;font-size:15px}.recoveryCard small{display:block;margin-top:3px;color:#8ca9d1;font-size:10px}
.recoveryBtn{white-space:nowrap;background:linear-gradient(180deg,#1677c8,#0b417f)!important;border-color:#53ceff!important}.undoBtn{border-color:rgba(255,184,87,.34)!important;color:#ffd095!important;background:rgba(84,50,13,.2)!important}.undoBtn:hover{background:rgba(114,68,17,.34)!important}
@media(max-width:720px){.recoveryCard{align-items:stretch;flex-direction:column}.recoveryBtn{width:100%}}


/* FLOOR PARTY 1.4.4 — hidden square + TV events */
.tvEventOverlay{overflow:hidden;background:radial-gradient(circle at 50% 45%,rgba(30,103,214,.42),rgba(0,3,15,.97) 68%)}.tvEventRays{position:absolute;inset:-20%;background:repeating-conic-gradient(from 0deg at 50% 50%,rgba(42,141,255,.12) 0 5deg,transparent 5deg 22deg);animation:eventSpin 10s linear infinite;filter:blur(3px)}@keyframes eventSpin{to{transform:rotate(360deg)}}.tvEventInner{position:relative;z-index:2}.tvEventTitle{font-size:clamp(58px,8vw,118px);line-height:.9;font-weight:900;color:#fff;text-shadow:0 0 35px rgba(39,147,255,.42)}.tvEventTag{width:max-content;max-width:90%;margin:16px auto 8px;padding:9px 22px;border-radius:999px;background:linear-gradient(180deg,#ebb839,#a66b0d);border:1px solid #ffe08a;color:#1c1200;font-size:12px;font-weight:900;letter-spacing:.14em}.eventVsBadge{width:max-content;max-width:100%;margin:8px auto 0;padding:5px 11px;border-radius:999px;border:1px solid rgba(255,202,78,.48);background:rgba(91,61,10,.35);color:#ffd66c;font-size:9px;font-weight:800;letter-spacing:.08em}.eventHostCard{border-color:rgba(73,170,255,.35)!important}.eventHostTag{color:#6fd7ff;font-size:9px;font-weight:800;letter-spacing:.14em;margin-bottom:5px}
.quickPassToken{position:absolute;right:7px;top:69px;z-index:6;padding:4px 7px;border-radius:999px;background:linear-gradient(180deg,#6be4ff,#1687d0);border:1px solid #c4f5ff;color:#031523;box-shadow:0 0 16px rgba(48,200,255,.35);font-size:9px;font-weight:900}.secretSquareRevealed{box-shadow:inset 0 0 0 2px rgba(255,217,93,.72),inset 0 0 28px rgba(255,188,44,.16)!important}.secretSquareRevealed::after{content:'◆';position:absolute;right:8px;bottom:8px;color:#ffd458;font-size:15px;text-shadow:0 0 12px rgba(255,196,53,.9);opacity:1!important}
.secretRevealAward{margin:13px auto 0;width:max-content;max-width:90%;padding:11px 18px;border-radius:13px;border:1px solid rgba(255,218,94,.72);background:linear-gradient(180deg,rgba(126,83,12,.94),rgba(56,35,4,.96));box-shadow:0 0 30px rgba(255,184,42,.2);text-align:center}.secretRevealAward b,.secretRevealAward span,.secretRevealAward small{display:block}.secretRevealAward b{color:#ffe179;font-size:15px;letter-spacing:.08em}.secretRevealAward span{margin-top:4px;color:#fff;font-weight:800}.secretRevealAward small{margin-top:3px;color:#d6c295;font-size:9px}.secretHostAward{margin-top:10px;padding:9px 10px;border-radius:9px;border:1px solid rgba(255,209,77,.38);background:rgba(93,61,9,.28)}.secretHostAward b,.secretHostAward span{display:block}.secretHostAward b{color:#ffd96a;font-size:11px}.secretHostAward span{margin-top:3px;color:#c5d1e6;font-size:10px}

/* FLOOR PARTY 1.4.5 — auto recap + TV records */
.autoRecapOverlay{overflow:hidden;background:radial-gradient(circle at 50% 42%,rgba(23,86,188,.38),rgba(1,5,18,.97) 68%)}
.autoRecapGlow{position:absolute;inset:0;background:linear-gradient(115deg,transparent 15%,rgba(41,146,255,.12) 38%,rgba(255,196,55,.08) 50%,rgba(41,146,255,.12) 62%,transparent 85%);animation:recapSweep 2.6s ease-in-out infinite}
@keyframes recapSweep{0%,100%{transform:translateX(-14%);opacity:.45}50%{transform:translateX(14%);opacity:1}}
.autoRecapInner{position:relative;z-index:2;width:min(1080px,94%)}
.autoRecapTitle{margin:8px 0 22px;color:#fff;font-size:clamp(34px,4.8vw,68px);font-weight:850;letter-spacing:.01em}
.autoRecapGrid{display:grid;grid-template-columns:1.25fr repeat(3,1fr);gap:10px}
.autoRecapGrid>div{min-height:132px;padding:16px;border:1px solid rgba(75,164,255,.25);border-radius:15px;background:linear-gradient(180deg,rgba(20,64,141,.76),rgba(5,21,58,.88));display:flex;flex-direction:column;justify-content:center}
.autoRecapGrid>div.primary{border-color:rgba(255,202,71,.48);background:linear-gradient(180deg,rgba(114,77,13,.64),rgba(45,31,7,.82))}
.autoRecapGrid span{color:#8ab8ed;font-size:9px;font-weight:800;letter-spacing:.12em}
.autoRecapGrid b{margin:7px 0 3px;color:#fff;font-size:clamp(19px,2vw,30px)}
.autoRecapGrid small{color:#b7c9e6}.recapHostCard{border-color:rgba(71,171,255,.3)!important}
.tvMoment.record{border-color:rgba(255,214,83,.6);background:linear-gradient(180deg,rgba(117,78,11,.76),rgba(56,35,4,.82));box-shadow:0 0 28px rgba(255,190,45,.18)}
.tvMoment.record b{color:#ffe074}
.tvMoment.streak3{border-color:rgba(255,128,55,.62);background:linear-gradient(180deg,rgba(135,48,12,.8),rgba(66,20,5,.86));box-shadow:0 0 30px rgba(255,96,30,.16)}
.tvMoment.streak3 b{color:#ffb15b}
@media(max-width:900px){.autoRecapGrid{grid-template-columns:repeat(2,1fr)}}

/* FLOOR PARTY 1.4.6 — operator pacing + round transitions */
.paceBtn{border-color:rgba(85,174,255,.28)!important;color:#b9dcff!important;white-space:nowrap}
.roundTransitionOverlay{overflow:hidden;background:rgba(1,4,15,.97)}
.roundSweep{position:absolute;inset:-30%;background:linear-gradient(105deg,transparent 35%,rgba(28,132,255,.32) 48%,rgba(255,190,52,.18) 51%,rgba(28,132,255,.28) 54%,transparent 67%);animation:roundSweepAnim .85s ease-in-out both}
@keyframes roundSweepAnim{from{transform:translateX(-55%)}to{transform:translateX(55%)}}
.roundTransitionInner{position:relative;z-index:2}
.roundTransitionTitle{color:#fff;font-size:clamp(55px,8vw,112px);font-weight:900;line-height:.92;text-shadow:0 0 30px rgba(47,143,255,.3)}
.roundTransitionSub{margin-top:13px;color:#ffd063;font-size:clamp(15px,2vw,24px);font-weight:750;letter-spacing:.07em}

/* FLOOR PARTY 1.4.7 — Director Mode */
.directorBtn{border-color:rgba(255,197,64,.36)!important;color:#ffd36b!important}
.directorBackdrop{position:fixed;inset:0;z-index:320;display:flex;justify-content:flex-end;background:rgba(0,3,12,.58);backdrop-filter:blur(4px)}
.directorPanel{width:min(470px,94vw);height:100%;overflow:auto;padding:22px;background:linear-gradient(180deg,#07152f,#020916);border-left:1px solid rgba(255,201,75,.38);box-shadow:-30px 0 90px rgba(0,0,0,.5);color:#e7eefb}
.directorHead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.directorHead span{display:block;color:#ffc95b;font-size:9px;font-weight:900;letter-spacing:.17em}.directorHead b{display:block;margin-top:4px;font-size:28px;color:#fff}.directorHead button{width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#0c1b3a;color:#fff;font-size:23px;cursor:pointer}
.directorNow{margin-top:18px;padding:14px;border:1px solid rgba(67,165,255,.28);border-radius:14px;background:linear-gradient(180deg,rgba(19,57,122,.66),rgba(6,23,59,.78))}.directorNow>span,.directorNext span{display:block;color:#79c9ff;font-size:8px;font-weight:900;letter-spacing:.14em}.directorNow>b{display:block;margin-top:5px;color:#fff;font-size:20px}.directorNow>small{display:block;margin-top:3px;color:#a4b8d8;line-height:1.35}.directorNext{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.directorNext strong{display:block;margin-top:4px;color:#ffd067;font-size:12px}
.directorSection{margin-top:20px}.directorSection h4{margin:0 0 9px;color:#91a9cf;font-size:10px;text-transform:uppercase;letter-spacing:.15em}.directorCueButtons{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.directorCueButtons button,.directorBonusButtons button,.directorControlRow button,.directorSkip{padding:11px 10px;border:1px solid rgba(78,169,255,.24);border-radius:10px;background:linear-gradient(180deg,rgba(22,65,139,.85),rgba(7,25,64,.92));color:#fff;font-size:10px;font-weight:800;cursor:pointer}.directorCueButtons button:nth-child(1),.directorCueButtons button:nth-child(2),.directorCueButtons button:nth-child(3){border-color:rgba(255,190,58,.28);background:linear-gradient(180deg,rgba(103,67,11,.62),rgba(47,29,4,.82));color:#ffd36a}
.directorSelect{width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(100,169,255,.22);background:#081a3b;color:#fff}.directorBonusButtons,.directorControlRow{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.directorBonusButtons button:first-child{border-color:rgba(255,206,79,.38);color:#ffdd83}.directorBonusButtons button:last-child{border-color:rgba(81,218,255,.34);color:#8eeaff}
.directorSkip{width:100%;margin-top:8px;opacity:.4;cursor:not-allowed}.directorSkip.ready{opacity:1;cursor:pointer;border-color:rgba(255,130,91,.34);color:#ffbc97}.directorFoot{margin-top:18px;padding:10px;border-radius:10px;background:rgba(255,255,255,.035);color:#7489ad;font-size:9px;line-height:1.45}
.directorCueOverlay{position:absolute;inset:0;z-index:110;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 45%,rgba(24,91,198,.34),rgba(0,3,13,.95) 68%);backdrop-filter:blur(5px)}.directorCueCard{width:min(800px,90%);padding:30px 34px;border-radius:22px;border:1px solid rgba(255,200,72,.58);background:linear-gradient(180deg,rgba(8,27,66,.97),rgba(3,9,24,.98));text-align:center;box-shadow:0 0 70px rgba(35,124,255,.2)}.directorCueKicker{color:#7ecfff;font-size:9px;font-weight:900;letter-spacing:.18em}.directorCueTitle{margin:7px 0 8px;color:#fff;font-size:clamp(48px,7vw,100px);font-weight:900;line-height:.92;text-shadow:0 0 30px rgba(42,137,255,.26)}.directorCueSub{color:#ffd46e;font-size:clamp(14px,2vw,23px);font-weight:700}.directorCueOverlay.close .directorCueCard{border-color:rgba(255,96,112,.55)}.directorCueOverlay.close .directorCueTitle{color:#ff9eab}.directorCueOverlay.record .directorCueTitle,.directorCueOverlay.streak .directorCueTitle{color:#ffdc70}.directorCueCard.wide{width:min(1000px,94%)}.directorPulseGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:20px 0}.directorPulseGrid>div{padding:13px;border-radius:12px;border:1px solid rgba(75,165,255,.22);background:rgba(13,43,97,.62)}.directorPulseGrid span{display:block;color:#83b8ef;font-size:8px;font-weight:800;letter-spacing:.12em}.directorPulseGrid b{display:block;margin-top:5px;color:#fff;font-size:22px}.directorPulseGrid small{color:#a8bddc}
@media(max-width:720px){.directorCueButtons,.directorBonusButtons,.directorControlRow,.directorPulseGrid{grid-template-columns:1fr}}

/* FLOOR PARTY 1.5.0 — category packs */
.packConfigHead{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:20px 0 9px}.packConfigHead b{display:block;color:#fff;font-size:14px}.packConfigHead span{display:block;margin-top:3px;color:#7f94b8;font-size:10px}.packConfigHead button{border:0;background:transparent;color:#65cfff;font-size:10px;font-weight:800;cursor:pointer}
.packChooser{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.packCard{position:relative;min-height:92px;padding:12px 12px 11px 38px;border:1px solid rgba(98,137,199,.18);border-radius:13px;background:linear-gradient(180deg,rgba(13,31,67,.72),rgba(5,16,38,.84));color:#dce8fb;text-align:left;cursor:pointer;transition:.18s ease}.packCard:hover{transform:translateY(-1px);border-color:rgba(78,177,255,.34)}.packCard.active{border-color:rgba(51,193,255,.55);background:linear-gradient(180deg,rgba(20,75,139,.78),rgba(5,34,78,.88));box-shadow:inset 0 0 24px rgba(32,149,255,.08),0 0 22px rgba(27,134,255,.08)}.packCheck{position:absolute;left:11px;top:12px;display:grid;place-items:center;width:18px;height:18px;border-radius:6px;border:1px solid rgba(90,160,225,.3);color:#7aa4ce;font-size:10px;font-style:normal}.packCard.active .packCheck{background:#1a9fe8;border-color:#78dbff;color:#fff}.packCard b,.packCard small,.packCard em{display:block}.packCard b{font-size:12px;letter-spacing:.07em;color:#fff}.packCard small{margin-top:3px;color:#64d0ff;font-size:9px;font-weight:800}.packCard em{margin-top:6px;color:#849abc;font-size:9px;line-height:1.35;font-style:normal}.packSummary{margin:9px 0 2px;color:#8299bc;font-size:10px}.packSummary b{color:#ffd168;font-size:12px}
@media(max-width:720px){.packChooser{grid-template-columns:1fr}}

/* FLOOR PARTY 1.5.4 — compact category drawer */
.packConfigHead,.packChooser,.packSummary{display:none!important}
.categoryPickerLaunchRow{display:flex;justify-content:flex-end;margin:14px 0 16px}
.categoryPickerTrigger{width:min(410px,100%);display:grid;grid-template-columns:36px 1fr 22px;align-items:center;gap:10px;padding:12px 13px;border:1px solid rgba(70,180,255,.32);border-radius:14px;background:linear-gradient(180deg,rgba(14,55,114,.72),rgba(6,25,60,.84));color:#fff;text-align:left;cursor:pointer;box-shadow:inset 0 0 24px rgba(24,143,255,.06);transition:.18s ease}
.categoryPickerTrigger:hover,.categoryPickerTrigger.open{border-color:rgba(88,211,255,.62);background:linear-gradient(180deg,rgba(17,72,143,.82),rgba(6,34,78,.9));transform:translateY(-1px)}
.categoryPickerIcon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;border:1px solid rgba(98,210,255,.28);background:rgba(23,132,205,.18);color:#73ddff;font-size:18px}
.categoryPickerCopy{min-width:0}.categoryPickerCopy small,.categoryPickerCopy b,.categoryPickerCopy em{display:block}.categoryPickerCopy small{color:#73ccff;font-size:8px;font-weight:850;letter-spacing:.14em}.categoryPickerCopy b{margin-top:3px;color:#fff;font-size:13px}.categoryPickerCopy em{margin-top:4px;color:#8ea9ce;font-size:8px;font-style:normal;font-weight:700;letter-spacing:.06em}.categoryPickerArrow{color:#65d4ff;font-size:26px;line-height:1;text-align:center}
.categoryDrawerBackdrop{position:fixed;inset:0;z-index:470;display:flex;justify-content:flex-end;background:rgba(0,3,12,.62);backdrop-filter:blur(5px)}
.categoryDrawer{width:min(460px,96vw);height:100%;display:flex;flex-direction:column;background:linear-gradient(180deg,#07152f,#020914);border-left:1px solid rgba(73,190,255,.35);box-shadow:-35px 0 90px rgba(0,0,0,.52);color:#edf5ff}
.categoryDrawerHead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:22px 20px 14px;border-bottom:1px solid rgba(255,255,255,.07)}.categoryDrawerHead span{display:block;color:#6bd8ff;font-size:8px;font-weight:900;letter-spacing:.16em}.categoryDrawerHead b{display:block;margin-top:3px;color:#fff;font-size:27px}.categoryDrawerHead small{display:block;margin-top:4px;color:#91a7ca;font-size:10px}.categoryDrawerClose{width:38px;height:38px;border-radius:11px;border:1px solid rgba(255,255,255,.13);background:#0d1d3c;color:#fff;font-size:23px;cursor:pointer}
.categoryDrawerActions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px 0}.categoryDrawerActions button{padding:9px 10px;border-radius:9px;border:1px solid rgba(77,173,255,.24);background:rgba(11,43,91,.68);color:#c9e6ff;font-size:9px;font-weight:800;cursor:pointer}.categoryDrawerActions button:first-child{border-color:rgba(75,209,255,.4);color:#79e1ff}
.categoryDrawerHint{margin:10px 16px 8px;padding:9px 10px;border-radius:9px;background:rgba(255,255,255,.035);color:#7f97bb;font-size:9px;line-height:1.45}
.categoryPackAccordion{flex:1;overflow:auto;padding:0 12px 14px}.categoryPackGroup{margin-top:7px;border:1px solid rgba(91,131,190,.18);border-radius:12px;background:rgba(5,17,40,.72);overflow:hidden}.categoryPackGroup.hasSelection{border-color:rgba(52,154,225,.27)}.categoryPackGroup.open{border-color:rgba(71,190,255,.45);box-shadow:0 0 20px rgba(25,139,229,.06)}
.categoryPackRow{display:grid;grid-template-columns:1fr 38px;align-items:center;gap:6px;min-height:52px}.categoryPackExpand{height:100%;display:flex;align-items:center;gap:8px;padding:10px 4px 10px 12px;border:0;background:transparent;color:#fff;text-align:left;cursor:pointer}.categoryPackCaret{width:16px;color:#62d4ff;font-size:18px;line-height:1}.categoryPackIdentity b,.categoryPackIdentity small{display:block}.categoryPackIdentity b{font-size:11px;letter-spacing:.06em}.categoryPackIdentity small{margin-top:3px;color:#7fa0c8;font-size:8px}.categoryPackToggle{width:28px;height:28px;border-radius:8px;border:1px solid rgba(91,143,204,.27);background:#0a1935;color:#7896bc;font-size:13px;font-weight:900;cursor:pointer}.categoryPackToggle.allOn{background:#1186c7;border-color:#67d9ff;color:#fff}.categoryPackToggle.partial{background:rgba(171,116,18,.28);border-color:rgba(255,194,72,.36);color:#ffd36d}
.categoryOptions{display:grid;gap:5px;padding:0 8px 9px;border-top:1px solid rgba(255,255,255,.05)}.categoryOption{display:grid;grid-template-columns:25px 1fr;align-items:center;gap:8px;width:100%;padding:8px 9px;border-radius:9px;border:1px solid rgba(80,126,184,.13);background:rgba(10,28,62,.58);color:#dcecff;text-align:left;cursor:pointer}.categoryOption:hover{border-color:rgba(83,185,255,.32)}.categoryOption.selected{background:rgba(9,57,104,.64);border-color:rgba(42,165,230,.24)}.categoryOption.excluded{opacity:.48;background:rgba(24,29,43,.5)}.categoryOptionCheck{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;border:1px solid rgba(86,157,214,.26);color:#8aacd0;font-size:10px;font-weight:900}.categoryOption.selected .categoryOptionCheck{background:#128ccf;border-color:#66dcff;color:#fff}.categoryOption.excluded .categoryOptionCheck{background:rgba(94,46,56,.3);border-color:rgba(224,105,117,.22);color:#d98b96}.categoryOptionText b,.categoryOptionText small{display:block}.categoryOptionText b{font-size:10px;font-weight:700}.categoryOptionText small{margin-top:2px;color:#6fa8ca;font-size:7px;font-weight:800;letter-spacing:.08em}
.categoryDrawerFooter{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:12px 16px 16px;border-top:1px solid rgba(255,255,255,.07);background:rgba(2,8,21,.96)}.categoryDrawerFooter b{color:#ffd36d;font-size:18px}.categoryDrawerFooter span{color:#8ca3c6;font-size:9px}.categoryDrawerFooter button{padding:9px 16px;border-radius:9px;border:1px solid #56cfff;background:linear-gradient(180deg,#148bc9,#0b5d96);color:#fff;font-size:10px;font-weight:800;cursor:pointer}
@media(max-width:720px){.categoryPickerTrigger{width:100%}.categoryDrawer{width:100vw}.categoryDrawerActions{grid-template-columns:1fr}.categoryPickerCopy em{font-size:7px}}

/* FLOOR PARTY 1.6.0 — visual cleanup + player category draft */

/* Setup hero: one logo only. The old background contained the logo again. */
.heroPanel{
  background-image:
    radial-gradient(circle at 22% 10%,rgba(30,126,255,.22),transparent 26%),
    radial-gradient(circle at 78% 18%,rgba(27,82,196,.18),transparent 24%),
    linear-gradient(115deg,transparent 0 19%,rgba(34,129,255,.06) 19.2% 19.55%,transparent 19.8% 100%),
    linear-gradient(65deg,transparent 0 80%,rgba(255,188,65,.045) 80.2% 80.5%,transparent 80.8% 100%),
    linear-gradient(180deg,#06142e 0%,#071a3a 52%,#030b1b 100%)!important;
  background-size:auto!important;
  background-position:center!important;
}
.heroPanel::after{
  content:"";position:absolute;inset:auto 0 0 0;height:38%;
  background:
    linear-gradient(90deg,transparent 0 49.8%,rgba(44,138,255,.13) 50%,transparent 50.2%),
    linear-gradient(180deg,rgba(24,85,188,.12),transparent 2px),
    repeating-linear-gradient(90deg,rgba(31,116,223,.10) 0 1px,transparent 1px 14%);
  transform:perspective(380px) rotateX(62deg);transform-origin:bottom;opacity:.55;pointer-events:none;
}
.heroPanel>*{position:relative;z-index:2}
.heroLogo{width:min(470px,74%)!important;margin-bottom:14px!important}
.heroPanel h1{font-size:clamp(54px,6.3vw,104px)!important;margin:14px 0 12px!important}
.heroCopy{font-size:17px!important;line-height:1.48!important;max-width:680px!important}
.featureStrip{margin:20px 0!important;gap:9px!important}.feature{padding:13px!important;background:rgba(7,19,43,.7)!important}
.feature span{font-size:12px!important}.feature b{font-size:10px!important}
.setupScreen{gap:16px!important}.panel{border-color:rgba(89,148,224,.2)!important;box-shadow:0 16px 44px rgba(0,0,0,.28)!important}

/* Remove branded image from general stage headers to avoid repeated logos behind logos. */
.stageDisplay,.presentationShell:not(.phase-duel) .stageDisplay{
  background-image:
    radial-gradient(circle at 50% -20%,rgba(50,130,255,.24),transparent 45%),
    linear-gradient(180deg,#0b285d,#071a42)!important;
  background-size:auto!important;
}
.stageFrame::after{background:none!important;opacity:0!important}
.stageLogo img{filter:drop-shadow(0 6px 15px rgba(0,0,0,.32))!important}

/* Lighter global hierarchy */
.stageFrame{border-color:rgba(90,144,220,.16)!important}
.bottomBanner{border-color:rgba(83,145,218,.16)!important}
.hostCard{border-color:rgba(93,149,219,.17)!important}
.presentationTop{border-bottom-color:rgba(88,151,223,.13)!important}

/* Category draft */
.categoryDraftOverlay{background:radial-gradient(circle at 50% 35%,rgba(14,87,196,.56),rgba(1,5,16,.96) 70%);backdrop-filter:blur(4px)}
.categoryDraftGlow{position:absolute;inset:0;background:linear-gradient(115deg,transparent 18%,rgba(52,153,255,.09) 37%,rgba(255,192,65,.06) 50%,rgba(52,153,255,.09) 63%,transparent 82%);animation:draftGlow 3s ease-in-out infinite}
@keyframes draftGlow{0%,100%{opacity:.45;transform:translateX(-5%)}50%{opacity:1;transform:translateX(5%)}}
.categoryDraftInner{position:relative;z-index:2;width:min(1160px,94%);text-align:center}
.categoryDraftPlayer{margin-top:5px;color:#ffd46b;font-size:clamp(22px,3vw,42px);font-weight:780;letter-spacing:.03em}
.categoryDraftTitle{margin:5px 0 7px;color:#fff;font-size:clamp(34px,5vw,70px);font-weight:850;line-height:.95}
.categoryDraftCards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}
.categoryDraftCard{position:relative;min-height:170px;padding:18px 16px 16px;border:1px solid rgba(80,182,255,.32);border-radius:16px;background:linear-gradient(180deg,rgba(18,66,137,.91),rgba(6,24,61,.96));color:#fff;text-align:left;cursor:pointer;box-shadow:0 14px 34px rgba(0,0,0,.2);transition:.18s ease}
.categoryDraftCard:hover:not(:disabled){transform:translateY(-4px);border-color:#66ddff;box-shadow:0 18px 42px rgba(0,100,220,.26)}
.categoryDraftCard:disabled{cursor:default}
.categoryDraftNumber{display:block;color:#5edcff;font-size:10px;font-weight:850;letter-spacing:.14em}
.categoryDraftType{display:block;margin-top:8px;color:#92abd0;font-size:8px;font-weight:800;letter-spacing:.12em}
.categoryDraftCard b{display:block;margin-top:20px;font-size:clamp(17px,1.8vw,25px);line-height:1.08}
.categoryDraftCard small{display:block;margin-top:7px;color:#9eb4d5;font-size:9px;text-transform:uppercase;letter-spacing:.07em}
.categoryDraftHost .draftProgress{height:5px;margin-top:12px;border-radius:999px;background:#06152f;overflow:hidden}.categoryDraftHost .draftProgress span{display:block;height:100%;background:linear-gradient(90deg,#18b8ed,#ffc452)}
.categoryDraftBanner{border-color:rgba(255,195,67,.23)!important}
.host .categoryDraftCards{grid-template-columns:1fr;margin-top:10px}.host .categoryDraftCard{min-height:92px;padding:11px 12px}.host .categoryDraftCard b{margin-top:7px;font-size:15px}.host .categoryDraftCard small{font-size:8px}.host .categoryDraftNumber{position:absolute;right:10px;top:10px}
.phase-categoryDraft .screenFloor,.hostPhase-categoryDraft .floor{filter:brightness(.38) saturate(.7)}
@media(max-width:900px){.categoryDraftCards{grid-template-columns:1fr}.categoryDraftCard{min-height:105px}.categoryDraftTitle{font-size:34px}}

/* FLOOR PARTY 1.6.2 — test-safe category audit */
.categoryAuditNotice{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;margin:12px 0 2px;padding:11px 13px;border-radius:12px;border:1px solid rgba(255,197,73,.28);background:linear-gradient(180deg,rgba(92,63,9,.22),rgba(31,22,6,.2))}
.categoryAuditNotice>div{min-width:150px}.categoryAuditNotice span,.categoryAuditNotice b{display:block}.categoryAuditNotice span{color:#ffd66d;font-size:8px;font-weight:900;letter-spacing:.13em}.categoryAuditNotice b{margin-top:3px;color:#fff;font-size:12px}.categoryAuditNotice small{color:#aabbd6;font-size:9px;line-height:1.45}
@media(max-width:720px){.categoryAuditNotice{grid-template-columns:1fr}}

/* FLOOR PARTY 1.6.8 — gameplay polish */
.categoryDraftOverlay .categoryDraftInner{width:min(1480px,96%)}
.categoryDraftOverlay .categoryDraftCards{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}
.categoryDraftOverlay .categoryDraftCard{min-height:126px;padding:13px 12px}
.categoryDraftOverlay .categoryDraftCard b{margin-top:10px;font-size:clamp(13px,1.25vw,18px)}
.categoryDraftOverlay .categoryDraftCard small{font-size:7px}
.host .categoryDraftCards{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-height:520px;overflow:auto;padding-right:4px}
.host .categoryDraftCard{min-height:92px!important}
.postNeighborWrap{width:min(900px,94%);margin:16px auto 12px}
.postNeighborTitle{font-size:9px;font-weight:900;letter-spacing:.15em;color:#7edcff;margin-bottom:8px;text-align:center}
.postNeighborGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.postNeighborCard{padding:10px 12px;border-radius:11px;border:1px solid rgba(80,187,255,.26);background:rgba(7,35,75,.82);text-align:left}
.postNeighborCard span,.postNeighborCard b{display:block}.postNeighborCard span{font-size:9px;color:#96abd0}.postNeighborCard b{font-size:12px;color:#fff;margin-top:3px}
.postNeighborEmpty{margin:12px auto;color:#8499ba;font-size:10px}
.passOverlay{gap:8px!important}
.passOverlay .passAnswer{display:block;max-width:88%;padding:8px 14px;border-radius:10px;background:rgba(1,8,21,.82);border:1px solid rgba(255,255,255,.22);color:#fff;font-size:clamp(14px,2vw,24px);line-height:1.2;text-align:center}
@media(max-width:1100px){.categoryDraftOverlay .categoryDraftCards{grid-template-columns:repeat(2,minmax(0,1fr));max-height:58vh;overflow:auto}.host .categoryDraftCards{grid-template-columns:1fr!important}}

/* FLOOR PARTY 1.7.2 — Voice Beta */
.voiceSetupCard{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0;padding:12px 14px;border:1px solid rgba(107,161,230,.18);border-radius:13px;background:rgba(5,20,45,.64)}
.voiceSetupCard.active{border-color:rgba(52,220,165,.35);background:linear-gradient(180deg,rgba(5,62,54,.28),rgba(5,20,45,.64))}
.voiceSetupCard span,.voiceSetupCard b,.voiceSetupCard small{display:block}.voiceSetupCard span{font-size:8px;font-weight:1000;letter-spacing:.16em;color:#63d9ff}.voiceSetupCard b{font-size:12px;color:#fff;margin-top:2px}.voiceSetupCard small{font-size:9px;color:#8ea7c8;line-height:1.4;margin-top:3px}
.voiceBetaPanel{margin:10px 0;padding:12px;border:1px solid rgba(90,151,222,.2);border-radius:13px;background:rgba(4,16,37,.74)}.voiceBetaPanel.active{border-color:rgba(48,221,162,.32);box-shadow:inset 0 0 24px rgba(28,176,132,.05)}
.voiceBetaHead{display:flex;justify-content:space-between;align-items:center;gap:10px}.voiceBetaHead span{display:block;font-size:8px;letter-spacing:.16em;font-weight:1000;color:#64d7ff}.voiceStatus{display:block;margin-top:3px;font-size:11px;color:#8ea7c7}.voiceStatus.live{color:#57e8ac}.voiceStatus.error{color:#ff8e9d}
.voiceReadout{display:grid;grid-template-columns:1fr 82px;gap:8px;margin-top:10px}.voiceReadout>div{padding:9px 10px;border-radius:9px;background:rgba(255,255,255,.035)}.voiceReadout span{display:block;font-size:7px;letter-spacing:.12em;text-transform:uppercase;color:#758eaf}.voiceReadout b{display:block;margin-top:3px;font-size:11px;color:#fff;word-break:break-word}
.voiceDecision{margin-top:8px;padding:8px 10px;border-radius:8px;background:rgba(15,73,111,.24);font-size:9px;font-weight:800;color:#aee4ff}.voiceBetaPanel>small{display:block;margin-top:7px;color:#7188a6;font-size:8px;line-height:1.35}.voiceTopBtn.voiceOn{border-color:rgba(53,222,166,.42)!important;color:#baffdf!important;background:rgba(4,71,53,.38)!important}
@media(max-width:1000px){.voiceSetupCard{align-items:flex-start;flex-direction:column}.voiceReadout{grid-template-columns:1fr}}


/* zaGRAj platform navigation */
.zagraj-home-link{position:fixed;left:14px;bottom:14px;z-index:9999;display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(3,8,22,.9);color:#fff;text-decoration:none;font-size:11px;font-weight:950;letter-spacing:.03em;box-shadow:0 14px 34px rgba(0,0,0,.36);backdrop-filter:blur(10px);transition:.18s ease}.zagraj-home-link:hover{transform:translateY(-2px);border-color:rgba(91,210,255,.55);background:rgba(7,24,52,.96)}
