:root{
  --bg:#070a12;--bg2:#0c1220;--surface:#111827;--surface2:#172033;--surface3:#1d2940;
  --text:#f8fafc;--muted:#94a3b8;--faint:#64748b;--line:rgba(148,163,184,.16);
  --accent:#7c3aed;--accent2:#2563eb;--cyan:#06b6d4;--good:#22c55e;--bad:#ef4444;--warn:#f59e0b;
  --radius:22px;--radius-sm:15px;--shadow:0 20px 60px rgba(0,0,0,.28);--shadow-soft:0 10px 28px rgba(0,0,0,.18)
}
*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;min-height:100vh;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:
radial-gradient(900px 500px at 15% -10%,rgba(124,58,237,.22),transparent 60%),
radial-gradient(800px 500px at 100% 0,rgba(37,99,235,.16),transparent 55%),var(--bg);-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.hidden{display:none!important}
.app-shell{width:min(980px,100%);margin:0 auto;padding:0 16px 38px}.topbar{position:sticky;top:0;z-index:30;min-height:72px;display:flex;align-items:center;gap:12px;padding:10px 0;background:linear-gradient(180deg,rgba(7,10,18,.96) 75%,rgba(7,10,18,0));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.brand{flex:1;min-width:0}.eyebrow{font-size:10px;font-weight:900;letter-spacing:.18em;color:#a78bfa;text-transform:uppercase}.brand h1,h1{font-size:20px;line-height:1.15;margin:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}h2{font-size:clamp(28px,6vw,46px);letter-spacing:-.035em;line-height:1.02;margin:9px 0 14px}h3{font-size:18px;letter-spacing:-.015em;margin:0 0 14px}p{line-height:1.55}.muted,.section-sub{color:var(--muted)}.section-sub{margin:-7px 0 14px}
.icon-btn{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;border-radius:14px;border:1px solid var(--line);background:rgba(17,24,39,.78);color:var(--text);font-size:20px;text-decoration:none;cursor:pointer;box-shadow:var(--shadow-soft)}
.card{position:relative;background:linear-gradient(150deg,rgba(23,32,51,.92),rgba(12,18,32,.94));border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:14px 0;box-shadow:var(--shadow-soft);overflow:hidden}.card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.035),transparent 35%)}
.hero{text-align:center;padding:38px 24px}.hero-icon{width:86px;height:86px;margin:0 auto 14px;display:grid;place-items:center;border-radius:28px;background:linear-gradient(145deg,rgba(124,58,237,.25),rgba(37,99,235,.14));border:1px solid rgba(167,139,250,.24);font-size:42px;box-shadow:0 14px 35px rgba(76,29,149,.18)}.hero p{max-width:650px;margin:0 auto 24px;color:var(--muted);font-size:16px}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(124,58,237,.15);border:1px solid rgba(167,139,250,.3);color:#c4b5fd;font-size:10px;font-weight:900;letter-spacing:.14em}
.primary,.secondary,.danger{min-height:50px;border-radius:15px;padding:13px 16px;border:0;font-weight:850;font-size:15px;cursor:pointer;transition:transform .14s ease,filter .14s ease,background .14s ease,border-color .14s ease}.primary{color:#fff;background:linear-gradient(100deg,var(--accent),var(--accent2));box-shadow:0 12px 30px rgba(79,70,229,.28)}.primary.xl{min-height:56px;font-size:16px}.secondary{color:var(--text);background:rgba(30,41,59,.72);border:1px solid rgba(148,163,184,.20)}.danger{color:#fecdd3;background:rgba(127,29,29,.22);border:1px solid rgba(244,63,94,.28)}.primary:hover,.secondary:hover,.danger:hover{filter:brightness(1.08)}.primary:active,.secondary:active,.danger:active,.answer:active,.category:active,.mode-card:active{transform:scale(.985)}button:disabled{opacity:.42;cursor:not-allowed;filter:none}.cta-stack{display:grid;gap:9px;max-width:440px;margin:0 auto}.cta-stack .secondary{margin:0}a.primary,a.secondary{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.stat{margin:0;padding:17px 8px;text-align:center}.stat strong{display:block;font-size:26px;letter-spacing:-.03em}.stat span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.feature-grid>div{min-height:105px;padding:14px;border-radius:17px;background:rgba(15,23,42,.68);border:1px solid var(--line)}.feature-grid span{display:block;font-size:25px;margin-bottom:8px}.feature-grid b{display:block;font-size:14px}.feature-grid small{display:block;margin-top:3px;color:var(--muted);line-height:1.35}
.setup-grid,.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.settings-grid label{display:block;font-size:12px;font-weight:850;color:#cbd5e1}.settings-grid label span{display:block;margin:0 0 7px}.player-row{display:grid;grid-template-columns:38px 1fr 42px;gap:9px;align-items:center;margin:9px 0}.player-num{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:rgba(124,58,237,.16);border:1px solid rgba(167,139,250,.22);color:#c4b5fd;font-weight:900}.player-row input,input,select{width:100%;min-height:48px;padding:11px 13px;border-radius:13px;border:1px solid rgba(148,163,184,.22);outline:none;background:#0b1220;color:var(--text);transition:border-color .15s,box-shadow .15s}input:focus,select:focus{border-color:#7c3aed;box-shadow:0 0 0 3px rgba(124,58,237,.16)}input::placeholder{color:#64748b}.remove-btn{height:40px;border-radius:12px;border:1px solid rgba(244,63,94,.24);background:rgba(127,29,29,.22);color:#fda4af;font-size:20px}
.mode-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.mode-card{position:relative;min-height:93px;padding:15px;border-radius:17px;border:1px solid var(--line);background:rgba(15,23,42,.72);color:var(--text);text-align:left;cursor:pointer}.mode-card.active{border-color:rgba(167,139,250,.7);background:linear-gradient(145deg,rgba(124,58,237,.20),rgba(37,99,235,.10));box-shadow:inset 0 0 0 1px rgba(124,58,237,.34)}.mode-card.active::after{content:"✓";position:absolute;top:12px;right:12px;width:23px;height:23px;display:grid;place-items:center;border-radius:999px;background:#7c3aed;color:#fff;font-size:12px;font-weight:900}.mode-card strong{display:block;padding-right:28px;font-size:14px}.mode-card small{display:block;margin-top:5px;color:var(--muted);line-height:1.35}
.category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.category{position:relative;display:flex;align-items:center;gap:11px;min-height:65px;padding:11px 12px;border-radius:16px;border:1px solid var(--line);background:rgba(15,23,42,.66);color:var(--text);text-align:left;cursor:pointer}.category.active{border-color:rgba(124,58,237,.72);background:rgba(124,58,237,.14);box-shadow:inset 0 0 0 1px rgba(124,58,237,.24)}.category.active::after{content:"✓";margin-left:auto;width:21px;height:21px;display:grid;place-items:center;border-radius:50%;background:#7c3aed;font-size:11px;font-weight:900}.category .emoji{font-size:24px}.category b{font-size:13px}.category small{color:var(--muted);font-size:11px}
.switchrow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.switchrow:last-child{border-bottom:0}.switch{flex:0 0 auto;width:52px;height:30px;padding:3px;border:0;border-radius:999px;background:#334155;cursor:pointer}.switch::after{content:"";display:block;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.25);transition:.18s}.switch.on{background:linear-gradient(90deg,#7c3aed,#2563eb)}.switch.on::after{transform:translateX(22px)}
.game-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.turn-badge{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(124,58,237,.12);border:1px solid rgba(167,139,250,.2);color:#ddd6fe;font-size:12px;font-weight:900}.progress{height:6px;margin:14px 0 6px;border-radius:999px;background:rgba(148,163,184,.13);overflow:hidden}.progress>div{height:100%;border-radius:inherit;background:linear-gradient(90deg,#06b6d4,#7c3aed,#2563eb);transition:width .3s ease}.question-media{min-height:128px;margin:15px 0;display:grid;place-items:center;padding:18px;border-radius:20px;background:linear-gradient(145deg,rgba(15,23,42,.95),rgba(30,41,59,.72));border:1px solid var(--line);font-size:70px;text-align:center}.question-media .symbol{font-size:86px}.question-media .mini{font-size:20px}.question{max-width:800px;margin:18px 0 20px;font-size:clamp(22px,5vw,34px);line-height:1.18;letter-spacing:-.025em;font-weight:900}.answers{display:grid;grid-template-columns:1fr 1fr;gap:10px}.answer{position:relative;min-height:78px;padding:14px 15px;border-radius:17px;border:1px solid rgba(148,163,184,.20);background:rgba(15,23,42,.78);color:var(--text);font-size:15px;font-weight:760;text-align:left;cursor:pointer;transition:transform .12s,border-color .12s,background .12s}.answer:hover{border-color:rgba(167,139,250,.45);background:rgba(30,41,59,.95)}.answer span{display:inline-grid;place-items:center;width:27px;height:27px;margin-right:8px;border-radius:9px;background:rgba(124,58,237,.15);color:#c4b5fd;font-weight:950}.answer.selected{outline:3px solid rgba(96,165,250,.55);border-color:#60a5fa;background:rgba(37,99,235,.12)}.answer.correct{background:rgba(22,101,52,.32);border-color:rgba(34,197,94,.75)}.answer.wrong{background:rgba(127,29,29,.30);border-color:rgba(239,68,68,.72)}.answer.hidden-answer{visibility:hidden}.feedback{margin-top:14px;padding:15px 16px;border-radius:16px;background:rgba(15,23,42,.75);border:1px solid var(--line);line-height:1.5}.feedback.good{background:rgba(20,83,45,.26);border-color:rgba(34,197,94,.45)}.feedback.bad{background:rgba(127,29,29,.24);border-color:rgba(239,68,68,.42)}
.timer-wrap{min-width:62px;text-align:right}.timer{font-size:25px;font-weight:950;letter-spacing:-.04em}.timer.danger{color:#f87171;animation:pulse .65s infinite alternate}@keyframes pulse{to{transform:scale(1.08)}}.powerbar{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.power{min-height:43px;border-radius:13px;border:1px solid var(--line);background:rgba(30,41,59,.78);color:#fff;font-size:12px;font-weight:800}.power.used{opacity:.35;text-decoration:line-through}.score-strip{display:flex;gap:8px;overflow:auto;padding:1px 1px 4px;scrollbar-width:none}.score-strip::-webkit-scrollbar{display:none}.score-pill{flex:0 0 auto;min-width:128px;padding:10px 12px;border-radius:14px;border:1px solid var(--line);background:rgba(15,23,42,.70)}.score-pill.current{border-color:rgba(6,182,212,.55);background:rgba(6,182,212,.09)}.score-pill b,.score-pill span{display:block}.score-pill b{font-size:13px}.score-pill span{margin-top:3px;color:var(--muted);font-size:11px}
.winner{text-align:center;padding:34px 20px}.trophy{font-size:70px;filter:drop-shadow(0 14px 20px rgba(245,158,11,.18))}.leaderboard{display:grid;gap:8px}.rank-row,.player-live{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:10px;padding:12px;border-radius:15px;background:rgba(15,23,42,.72);border:1px solid var(--line)}.rank{font-size:22px;text-align:center}.points{font-weight:950}.confetti{font-size:25px;letter-spacing:6px}.party-card{text-align:center;padding:30px 20px}.party-card .party-icon{font-size:64px}.party-prompt{margin:20px 0;font-size:clamp(22px,5vw,32px);line-height:1.24;font-weight:900}
.pill-row{display:flex;flex-wrap:wrap;gap:8px}.mini-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;border:1px solid var(--line);background:rgba(15,23,42,.72);font-size:12px;color:#cbd5e1}.mini-pill input{width:auto;min-height:auto;accent-color:#7c3aed}.toast{position:fixed;left:50%;bottom:24px;z-index:99;transform:translateX(-50%);padding:11px 16px;border-radius:999px;background:#111827;border:1px solid rgba(148,163,184,.24);box-shadow:var(--shadow);font-weight:800}
.footer{text-align:center;padding:20px 0 0;color:#64748b;font-size:11px}.room-code{margin:8px 0;font-size:clamp(42px,12vw,68px);letter-spacing:.16em;font-weight:950;text-align:center;background:linear-gradient(90deg,#c4b5fd,#67e8f9);-webkit-background-clip:text;background-clip:text;color:transparent}.player-live{display:flex;justify-content:space-between;grid-template-columns:none;margin:7px 0}.host-tag{display:inline-flex;margin-left:5px;padding:3px 6px;border-radius:999px;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.2);color:#fcd34d;font-size:9px;font-weight:900;letter-spacing:.08em}.online-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.join-row{display:grid;gap:9px}.statusline{text-align:center;color:var(--muted);font-size:13px}.answer-status{text-align:center;color:var(--muted);font-size:12px}.correct-answer{margin:12px 0;padding:15px 16px;border-radius:16px;background:rgba(34,197,94,.10);border:1px solid rgba(34,197,94,.22)}.copybtn{display:block;width:100%;max-width:300px;margin:9px auto 0}.connection{font-size:11px;font-weight:800;white-space:nowrap}.connection.good{color:#86efac}.connection.bad{color:#fca5a5}
.portal{max-width:920px;margin:0 auto;padding:8px 0}.portal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.portal-card{display:flex;flex-direction:column;min-height:260px;padding:24px}.portal-card .big{width:56px;height:56px;display:grid;place-items:center;margin-bottom:10px;border-radius:17px;background:rgba(124,58,237,.12);font-size:28px}.portal-card h2{font-size:25px;margin:6px 0 8px}.portal-card p{flex:1;margin:0 0 16px;color:var(--muted)}.portal-card .primary{width:100%}.online-dot{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.10)}.install-note{margin-top:12px}.install-note .install-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.install-note .secondary{margin:0;width:100%}
@media(max-width:720px){.app-shell{padding-left:12px;padding-right:12px}.hero{padding:31px 17px}.portal-grid{grid-template-columns:1fr}.portal-card{min-height:auto}.stat-grid{grid-template-columns:1fr 1fr}.feature-grid{grid-template-columns:1fr 1fr}.setup-grid,.settings-grid{grid-template-columns:1fr}.answers{grid-template-columns:1fr}.card{padding:16px}.question-media{min-height:110px}.install-note .install-actions{grid-template-columns:1fr}.topbar{min-height:64px}.brand h1{font-size:18px}}
@media(max-width:430px){.mode-grid,.category-grid,.feature-grid{grid-template-columns:1fr}.online-actions{grid-template-columns:1fr}.hero-icon{width:76px;height:76px;border-radius:24px;font-size:36px}.stat strong{font-size:23px}.question{font-size:23px}.answer{min-height:70px}.room-code{letter-spacing:.12em}}

/* v2.1 avatars, QR join and game-show mode */
.avatar-picker{margin-top:15px;padding-top:14px;border-top:1px solid var(--line)}
.avatar-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:7px;margin-top:9px}
.avatar-choice,.player-avatar-btn{border:1px solid var(--line);background:rgba(15,23,42,.82);color:#fff;cursor:pointer;transition:.15s}
.avatar-choice{aspect-ratio:1;border-radius:13px;font-size:23px}
.avatar-choice:hover,.avatar-choice.active{transform:translateY(-1px);border-color:rgba(167,139,250,.8);background:rgba(124,58,237,.18);box-shadow:0 0 0 2px rgba(124,58,237,.12)}
.avatar-player-row{grid-template-columns:48px 1fr 42px}
.player-avatar-btn{width:46px;height:46px;border-radius:14px;font-size:25px}
.avatar-inline{display:inline-grid;place-items:center;margin-right:5px}
.qr-wrap{display:flex;align-items:center;justify-content:center;gap:14px;width:min(390px,100%);margin:12px auto 4px;padding:12px;border-radius:18px;background:#fff;color:#111827;text-align:left}
.qr-wrap img{width:112px;height:112px;border-radius:8px;image-rendering:pixelated}.qr-wrap .muted{color:#64748b}
.game-show-toolbar{display:flex;justify-content:flex-end;margin:-4px -4px 3px}.game-show-full{font-size:20px}
body.game-show-mode{overflow:auto;background:#05070d}
body.game-show-mode .topbar,body.game-show-mode .footer{display:none}
body.game-show-mode .app-shell{width:100%;max-width:none;padding:0}
body.game-show-mode .online-shell,body.game-show-mode #app{width:min(1180px,100%);margin:0 auto;padding:18px}
body.game-show-mode .game-show-card{min-height:calc(100vh - 36px);display:flex;flex-direction:column;justify-content:center;padding:clamp(20px,4vw,56px);border-radius:28px;background:radial-gradient(circle at 15% 0,rgba(124,58,237,.18),transparent 36%),linear-gradient(150deg,#101827,#090d17)}
body.game-show-mode .question{font-size:clamp(30px,5vw,62px);max-width:1050px;margin:clamp(18px,3vh,38px) 0}
body.game-show-mode .answer{min-height:clamp(82px,13vh,132px);font-size:clamp(18px,2.1vw,28px);padding:20px 24px}
body.game-show-mode .answer span{width:38px;height:38px;border-radius:12px;font-size:18px}
body.game-show-mode .question-media{min-height:170px;font-size:100px}
body.game-show-mode .question-media .symbol{font-size:120px}
body.game-show-mode .game-head{font-size:18px}
body.game-show-mode .timer{font-size:42px}
@media(max-width:560px){.avatar-grid{grid-template-columns:repeat(4,1fr)}.qr-wrap{flex-direction:column;text-align:center}.qr-wrap img{width:132px;height:132px}body.game-show-mode .online-shell,body.game-show-mode #app{padding:8px}body.game-show-mode .game-show-card{min-height:calc(100vh - 16px);padding:18px 14px;border-radius:20px}}

.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.player-achievements{padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--surface2)}.achievement{display:flex;flex-direction:column;gap:4px;padding:10px 12px;margin:8px 0;border-radius:13px;background:rgba(124,58,237,.10);border:1px solid rgba(167,139,250,.16)}.achievement span{color:var(--muted);font-size:13px}

/* v2.3 persistent online Hall of Fame */
.hof-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.hof-section{padding:12px;border-radius:18px;background:var(--surface2);border:1px solid var(--line)}.hof-section h3{margin:4px 4px 10px}.achievement-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.player-achievements{padding:15px;border:1px solid var(--line);border-radius:18px;background:var(--surface2)}.achievement{display:flex;flex-direction:column;gap:4px;padding:10px 12px;margin:8px 0;border-radius:13px;background:rgba(124,58,237,.10);border:1px solid rgba(167,139,250,.16)}.achievement span{color:var(--muted);font-size:13px}

.server-warning{border-color:rgba(239,68,68,.45);background:rgba(239,68,68,.09);color:#fecaca}.server-warning span{color:#fca5a5}
