:root{color-scheme:dark;--bg:#0b1020;--panel:#151e35;--panel2:#1b2743;--line:#2d3b5f;--text:#f5f7ff;--muted:#9eabc8;--accent:#f6c453;--blue:#5888ff;--green:#47c99a;--red:#ff6f79}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -20%,#273c6d 0%,transparent 54%),var(--bg);color:var(--text);font-family:Manrope,Segoe UI,sans-serif}.app-shell{width:min(1160px,calc(100% - 36px));margin:0 auto;padding:42px 0 30px}.hidden{display:none!important}.panel{background:linear-gradient(145deg,rgba(28,41,72,.97),rgba(18,26,46,.98));border:1px solid var(--line);border-radius:22px;box-shadow:0 22px 70px #03071370}.setup-screen{max-width:590px;margin:7vh auto 0;padding:42px}.eyebrow{margin:0 0 8px;color:var(--accent);text-transform:uppercase;letter-spacing:.16em;font-weight:800;font-size:.74rem}.setup-screen h1,.topbar h1{margin:0;font-size:clamp(2rem,5vw,3.3rem);letter-spacing:-.045em}.intro{color:var(--muted);line-height:1.65;margin:14px 0 28px}.setup-screen form>label{display:block;margin-bottom:8px;font-weight:700}.setup-screen select,.name-fields input,.bet-input{width:100%;padding:13px 14px;border-radius:11px;border:1px solid var(--line);background:#10182d;color:var(--text);font:inherit;outline:none}.setup-screen select:focus,.name-fields input:focus,.bet-input:focus{border-color:var(--blue)}.name-fields{display:grid;gap:11px;margin:16px 0}.name-field label{display:block;color:var(--muted);font-size:.85rem;margin:0 0 6px}.setup-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.button{border:0;border-radius:10px;padding:12px 17px;font:700 .95rem Manrope,Segoe UI,sans-serif;cursor:pointer;transition:transform .12s,filter .12s}.button:hover{filter:brightness(1.08);transform:translateY(-1px)}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.primary{background:var(--accent);color:#1c1a13}.secondary{background:#2a385a;color:var(--text);border:1px solid #43557e}.quiet{background:transparent;border:1px solid var(--line);color:var(--muted)}.danger{background:var(--red);color:#2c1015}.hint{font-size:.83rem;color:var(--muted);line-height:1.5}.game-screen{animation:appear .35s ease}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.top-actions{display:flex;align-items:center;gap:12px}.round-label{color:var(--muted);font-size:.9rem}.scoreboard{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.score-card{padding:15px 17px;border:1px solid var(--line);border-radius:14px;background:#141d33}.score-card.active{border-color:var(--accent);box-shadow:0 0 0 1px #f6c45340}.score-name{font-size:.87rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.score-value{font-size:1.7rem;font-weight:800;margin-top:5px}.key-badge{float:right;color:#7181a5;font-size:.75rem}.board-wrap{overflow-x:auto}.board{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:9px;min-width:650px}.category-title{min-height:76px;display:grid;place-items:center;text-align:center;padding:12px;border-radius:12px;background:#26365c;color:#fff;font-weight:800;letter-spacing:.02em}.cell{display:grid;place-items:center;min-height:66px;border-radius:12px;background:linear-gradient(145deg,#1c2a4b,#17233e);border:1px solid #2a3d69;color:var(--accent);font-size:1.5rem;font-weight:800;cursor:pointer}.cell:hover:not(:disabled){background:#2b416e;border-color:var(--accent)}.cell:disabled{color:#526080;background:#111a2d;border-color:#1c2740;cursor:default}.board-hint{text-align:center;margin:15px 0 0}.question-panel{padding:clamp(24px,5vw,48px);margin-top:6px}.question-meta{display:flex;justify-content:space-between;color:var(--accent);font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}.question-text{font-size:clamp(1.5rem,4vw,2.8rem);line-height:1.25;margin:28px 0 22px;max-width:900px}.timer{height:7px;background:#273653;border-radius:10px;overflow:hidden;margin:18px 0 26px}.timer-fill{height:100%;width:100%;background:var(--green);transition:width .2s linear}.answer-box{padding:17px 19px;border:1px solid #3e527f;border-radius:12px;background:#10182d;margin:20px 0}.answer-label{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.11em}.answer-text{font-size:1.25rem;font-weight:700;margin-top:5px}.buzz-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:20px 0}.buzz-chip{padding:10px 15px;background:#202e4d;border:1px solid var(--line);border-radius:10px;font-weight:700}.buzz-chip.first{border-color:var(--accent);color:var(--accent)}.actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:23px}.timer-expired{color:var(--red);font-weight:800}.final-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:13px;margin:20px 0}.final-player{padding:16px;border-radius:12px;border:1px solid var(--line);background:#111a2d}.final-player h3{margin:0 0 9px}.final-player .bet-input{margin:10px 0}.final-result{margin-top:15px;padding:12px 14px;background:#26365c;border-radius:10px}.game-footer{display:flex;justify-content:space-between;align-items:center;color:#7482a3;font-size:.78rem;margin-top:22px}.text-button{background:none;border:0;color:#8796b8;text-decoration:underline;cursor:pointer;font:inherit}.dialog{border:1px solid var(--line);border-radius:18px;padding:28px;background:#18233d;color:var(--text);max-width:420px;width:calc(100% - 30px)}.dialog::backdrop{background:#050915c9;backdrop-filter:blur(3px)}.dialog h2{margin:0}.dialog p{color:var(--muted)}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@media(max-width:720px){.app-shell{width:min(100% - 22px,600px);padding-top:20px}.setup-screen{padding:27px 21px;margin-top:4vh}.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%;justify-content:space-between}.scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}.game-footer{align-items:flex-start;gap:10px;flex-direction:column}.question-panel{padding:24px 18px}}@media(max-width:380px){.score-value{font-size:1.35rem}.button{padding:11px 13px}}
.setup-error{padding:12px 14px;border:1px solid #8d4651;background:#3b202a;color:#ffd5d9;border-radius:10px;line-height:1.45}
.question-media-frame{margin:0 auto 24px;max-width:min(100%,760px);padding:12px;border:1px solid var(--line);border-radius:14px;background:#0d1528;text-align:center}.question-media-frame img{display:block;max-width:100%;max-height:420px;width:auto;height:auto;margin:auto;object-fit:contain;border-radius:8px}.audio-frame{max-width:680px;margin:0 auto 24px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#0d1528}.audio-frame audio{display:block;width:100%}.audio-frame .hint{margin:10px 0 0}.media-error{padding:12px 14px;border:1px solid #8d4651;background:#3b202a;color:#ffd5d9;border-radius:10px;line-height:1.45}

/* End-of-game celebration, kept in the results screen without blocking controls. */
.winner-celebration { position: relative; overflow: hidden; text-align: center; padding: 24px 12px 32px; isolation: isolate; }
.winner-trophy { font-size: clamp(64px, 12vw, 110px); animation: trophy-arrive .8s cubic-bezier(.2,.8,.2,1) both; }
.winner-names { font-size: clamp(26px, 5vw, 48px); font-weight: 800; color: #ffd779; overflow-wrap: anywhere; margin: 12px 0 28px; animation: trophy-arrive 1s both; }
.winner-standings { display: grid; gap: 12px; max-width: 680px; margin: auto; }
.winner-place { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px; border: 1px solid #526180; border-radius: 16px; background: #18233b; animation: place-arrive .6s var(--delay) both; }
.winner-place strong { overflow-wrap: anywhere; min-width: 0; }
.winner-place span { flex-shrink: 0; }
.winner-first { border-color: #ffd779; background: linear-gradient(120deg, #514025, #222c42); }
.confetti { position: absolute; inset: 0; pointer-events: none; z-index: -1; }
.confetti i { position: absolute; top: -20px; left: var(--x); width: 8px; height: 16px; background: var(--color); animation: confetti-fall 3.5s var(--delay) both; }
@keyframes trophy-arrive { from { opacity: 0; transform: scale(.5) translateY(30px); } to { opacity: 1; transform: none; } }
@keyframes place-arrive { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@keyframes confetti-fall { from { transform: translateY(-20px) rotate(0); opacity: 1; } to { transform: translateY(650px) rotate(600deg); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .winner-trophy, .winner-names, .winner-place { animation: none; } .confetti { display: none; } }
@media (max-width: 480px) { .winner-place { padding: 12px; gap: 8px; font-size: 14px; } .top-actions { flex-wrap: wrap; } }
#return-to-game { margin-bottom: 16px; }

/* Orange actions and question choices on both the local and public screens. */
body .button.primary, body.public-page .app-shell .button.primary { background: #ff9f43; color: #241508; }
body.public-page .app-shell .button.primary { box-shadow: 0 8px 24px #ff9f4333; }
body.public-page .app-shell .button.primary:hover:not(:disabled) { background: #ffb566; box-shadow: 0 10px 30px #ff9f4350; }
body .cell, body.public-page .app-shell .public-board-question { color: #ffad57; }
body .cell:hover:not(:disabled), body.public-page .app-shell button.public-board-question:hover:not(:disabled) { border-color: #ffad57; }
body .mode-tab.active, body.public-page .app-shell .menu-popover button[aria-current="page"] { color: #ffad57; }
.public-page .round-topic-choice { flex-wrap: wrap; align-content: start; }
.public-page .round-topic-choice > span { flex: 1 1 160px; overflow-wrap: anywhere; }
.public-page .round-topic-choice select { width: auto; min-width: 120px; flex: 1 1 120px; margin: 0; }
