/* Broadcast shell: scene, scoreboard and player desk are independent layers. */
:root { --solo-ink:#f7fbff; --solo-muted:#b5c7da; --solo-blue:#58b8ff; --solo-amber:#ffcf67; }
.solo-app, .solo-app * { box-sizing:border-box; }
.solo-preview-page { background:#03070d; margin:0; }
.solo-app { font-family:system-ui,-apple-system,sans-serif; color:var(--solo-ink); background:#07111f; margin:0; width:100%; overflow:hidden; }
.solo-app [hidden] { display:none !important; }
.solo-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.solo-app__workspace { position:relative; min-width:0; }
.solo-app__stage { height:180px; position:relative; background:#020812; overflow:hidden; }
#solo-studio-canvas { display:block; width:100%; height:100%; visibility:hidden; position:absolute; inset:0; }
.solo-app[data-renderer="active"] #solo-studio-canvas { visibility:visible; }
.solo-app[data-renderer="active"] .solo-app__workspace { height:min(850px,calc(100dvh - var(--broadcast-top,0px))); min-height:0; }
.solo-app[data-renderer="active"] .solo-app__stage { height:100%; }
.solo-app__stage-fallback { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; padding:1rem; }
.solo-app__stage-mark { font-size:2rem; font-weight:900; color:var(--solo-blue); }
.solo-app__stage-fallback p { margin:.3rem; color:var(--solo-muted); }
.solo-app__progress { position:absolute; inset:0; text-align:center; padding-top:20%; background:#020812bb; }
.solo-app__progress progress { display:block; width:min(22rem,70%); margin:1rem auto; }
.solo-app__roundline { display:flex; align-items:center; gap:1rem; background:#091626eb; border:1px solid #567089; border-radius:12px; padding:.6rem 1rem; font-size:.85rem; font-weight:750; font-variant-numeric:tabular-nums; }
.solo-app[data-renderer="active"] .solo-app__roundline { position:absolute; z-index:3; left:50%; top:12px; transform:translateX(-50%); width:min(960px,calc(100% - 32px)); box-shadow:0 4px 16px #0005; }
#solo-round { text-transform:uppercase; letter-spacing:.06em; color:var(--solo-muted); }
#solo-score { margin-left:auto; color:var(--solo-amber); }
#solo-timer { min-width:100px; text-align:right; }
#solo-timer:empty { display:none; }
#solo-timer[data-urgent="true"] { background:#602723; color:#fff4d8; border:2px solid #ffcc79; border-radius:6px; padding:.2rem .45rem; font-weight:900; }
.solo-app:is([data-state="ready"],[data-state="final_results"],[data-state="fatal_content_error"]) .solo-app__roundline { display:none; }
.solo-app__interaction { background:#07111f; padding:0 16px 12px; }
.solo-app[data-renderer="active"] .solo-app__interaction { position:absolute; z-index:2; left:0; right:0; bottom:0; max-height:62%; overflow-y:auto; background:linear-gradient(transparent,#061020ed 22%,#061020fc); padding-top:8px; }
.solo-app__panel { width:min(960px,100%); margin:0 auto; }
.solo-app .solo-app__caption { position:relative; width:min(960px,100%); margin:0 auto 8px; min-height:42px; max-height:66px; overflow-y:auto; padding:9px 16px; background:#081523ec; border:1px solid #445870; border-radius:8px; font-size:.9rem; line-height:1.4; color:#d7e3ef; text-align:center; }
.solo-app__caption:empty { visibility:hidden; }
.solo-app[data-captions="off"] .solo-app__caption { display:none; }
#solo-prompt { margin:0 0 10px; padding:10px 16px; border-left:3px solid var(--solo-amber); background:#101f32f5; font-size:clamp(1rem,1.45vw,1.25rem); line-height:1.35; font-weight:750; border-radius:4px 10px 10px 4px; }
.solo-app__choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.solo-app button,.solo-app input,.solo-app textarea { font:inherit; }
.solo-app button { display:flex; align-items:center; gap:12px; min-width:0; min-height:52px; padding:10px 14px; background:#162a42; border:1px solid #6583a0; color:var(--solo-ink); border-radius:10px; font-weight:650; text-align:left; cursor:pointer; line-height:1.3; overflow-wrap:anywhere; }
.solo-app button:not(:disabled):hover { background:#203e5e; border-color:#a7d9ff; }
.solo-app :is(button,input,summary,textarea):focus-visible { outline:3px solid var(--solo-amber); outline-offset:3px; }
.solo-app button:disabled { opacity:.42; cursor:default; }
.solo-app button[data-state="selected"] { background:#53421e; border:2px solid var(--solo-amber); opacity:1; }
.solo-app button[data-state="correct"] { background:#124434; border:2px solid #8de4b7; opacity:1; }
.solo-app button[data-state="incorrect"] { background:#532431; border:2px solid #ffacbc; opacity:1; }
.solo-app button[data-state="locked"] { opacity:.48; }
.solo-answer-letter { display:grid; place-items:center; flex:0 0 30px; height:30px; border:1px solid #7890aa; border-radius:6px; background:#091929; font-size:.85rem; color:#bedcff; }
.solo-answer-text { min-width:0; }
.solo-answer-result { font-size:.75rem; font-weight:800; }
.solo-app__feedback { font-size:.9rem; font-weight:750; padding:7px 12px; margin-bottom:8px; border-radius:6px; background:#152b41; }
.solo-app__feedback:empty { display:none; }
.solo-app__feedback[data-result="correct"] { color:#a6f0c9; }
.solo-app__feedback[data-result="incorrect"] { color:#ffd3b6; }
.solo-app__lifelines { display:flex; justify-content:flex-end; gap:8px; margin-top:8px; }
.solo-app__lifelines button { min-height:44px; padding:6px 12px; font-size:.8rem; background:#0b192a; }
.solo-app .solo-app__primary { background:#64bcff; border-color:#b5e1ff; color:#041424; justify-content:center; font-weight:800; }
.solo-app .solo-risk-card { display:grid; gap:4px; }
.solo-risk-title { font-size:1rem; font-weight:800; }
.solo-risk-gain { color:#a5edc6; font-size:.85rem; }
.solo-risk-loss { color:#e5c8b2; font-size:.8rem; }
.solo-app[data-state="risk_selection"] .solo-app__choices { grid-template-columns:repeat(3,minmax(0,1fr)); }
.solo-app__wager { grid-column:1/-1; display:grid; grid-template-columns:1fr auto; gap:8px 12px; align-items:center; }
.solo-wager-presets { grid-column:1/-1; display:flex; gap:8px; }
.solo-wager-presets button { flex:1; justify-content:center; min-height:44px; font-size:.85rem; }
.solo-wager-presets button[aria-pressed="true"] { border-color:var(--solo-amber); background:#433b22; }
.solo-app__wager label { grid-column:1/-1; font-size:.8rem; color:var(--solo-muted); }
.solo-app__wager input { background:#101f32 !important; border:1px solid #7890aa; color:white; min-height:44px; width:100%; padding:8px 12px; border-radius:8px; }
.solo-wager-outcome { grid-column:1/-1; margin:0; font-size:.8rem; color:var(--solo-muted); }
.solo-app__setup-error { background:#532431; border:1px solid #ffacbc; padding:1rem; border-radius:8px; }
.solo-app:has(#solo-setup:not([hidden])) .solo-app__stage { display:none; }
.solo-app:has(#solo-setup:not([hidden])) .solo-app__interaction { padding:2rem; }
.solo-app:has(#solo-setup:not([hidden])) .solo-app__caption { display:none; }
#solo-setup h3 { margin:0 0 .5rem; }
.solo-finale-heading { display:none; }
.solo-app[data-state="final_results"] .solo-finale-heading { display:block; grid-column:1; grid-row:1/4; }
.solo-app[data-state="final_results"] #solo-ended { display:grid; grid-template-columns:150px minmax(0,1fr) auto; align-items:center; gap:4px 20px; padding:14px 20px; border:1px solid #bba36b; border-radius:12px; background:#091726f5; }
.solo-finale-heading p { margin:0; }
.solo-app__eyebrow { font-size:.65rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--solo-amber); }
#solo-finale-name { display:none; }
.solo-finale-score strong { display:block; color:#ffdf8b; font-size:2.8rem; font-weight:850; line-height:1.1; font-variant-numeric:tabular-nums; }
.solo-finale-score span { font-size:.65rem; letter-spacing:.12em; color:var(--solo-muted); }
#solo-result-title { grid-column:2; margin:0; font-size:1.15rem; }
#solo-result-copy { grid-column:2; margin:0; font-size:.9rem; color:#d3e0ed; }
#solo-restart { grid-column:3; grid-row:1/4; }
.solo-app__share { grid-column:2; font-size:.8rem; color:var(--solo-muted); }
.solo-app__share summary { cursor:pointer; padding:4px 0; }
.solo-app__share textarea { display:block; margin:.5rem 0; width:100%; padding:.5rem; background:#fff; color:#102035; border-radius:6px; }
.solo-app__share button { min-height:44px; font-size:.8rem; }
@media(max-width:600px) {
  .solo-app[data-renderer="active"] .solo-app__roundline { top:8px; width:calc(100% - 16px); padding:8px; gap:8px; font-size:.7rem; }
  #solo-timer { min-width:66px; }
  .solo-app__interaction { padding:0 8px 8px; }
  .solo-app .solo-app__caption { font-size:.78rem; min-height:38px; max-height:58px; padding:7px 10px; }
  #solo-prompt { font-size:.95rem; padding:8px 10px; margin-bottom:8px; }
  .solo-app__choices { gap:6px; }
  .solo-app button { font-size:.85rem; padding:9px; gap:7px; min-height:48px; }
  .solo-answer-letter { flex-basis:24px; height:26px; font-size:.75rem; }
  .solo-app[data-state="risk_selection"] .solo-app__choices { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .solo-risk-title { font-size:.85rem; }
  .solo-risk-gain,.solo-risk-loss { font-size:.7rem; }
  .solo-wager-presets button { font-size:.75rem; padding:8px 4px; }
  .solo-app[data-state="final_results"] #solo-ended { grid-template-columns:85px minmax(0,1fr); padding:10px; gap:4px 10px; }
  .solo-finale-score strong { font-size:2.2rem; }
  #solo-result-title { font-size:.95rem; }
  #solo-result-copy { font-size:.75rem; }
  #solo-restart { grid-column:2; grid-row:auto; min-height:44px; }
  .solo-app__share { grid-column:1/-1; grid-row:4; }
}
@media(prefers-reduced-motion:reduce) { .solo-app *, .solo-app *::before,.solo-app *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; } }
.solo-app[data-motion="reduce"] *, .solo-app[data-motion="reduce"] *::before,.solo-app[data-motion="reduce"] *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
.solo-finale-confetti { position: absolute; inset: 0; z-index: 5; overflow: hidden; pointer-events: none; }
.solo-finale-confetti i { position: absolute; top: -20px; width: 9px; height: 17px; opacity: 0; animation: solo-confetti-fall 8s var(--delay) ease-in forwards; }
@keyframes solo-confetti-fall {
    0% { opacity: 0; transform: translate3d(0, 0, 0) rotate(0deg); }
    5%, 75% { opacity: 1; }
    100% { opacity: 0; transform: translate3d(var(--drift), 1000px, 0) rotate(900deg); }
}
@media (prefers-reduced-motion: reduce) {
    .solo-finale-confetti { display: none; }
}
.solo-app[data-motion="reduce"] .solo-finale-confetti { display: none; }
/* The result preview is HTML, independent of the WebGL broadcast canvas. */
.result-sharing { padding-top:12px; }
.solo-app__share:open { grid-column:1/-1; grid-row:4; }
.solo-app .result-card { max-width:380px; margin:0 auto 12px; padding:16px; border:1px solid #b8a15d; border-radius:14px; text-align:center; color:#f5f8ff; background:linear-gradient(145deg,#162b4b,#0b1830); font-family:Arial,sans-serif; overflow-wrap:anywhere; }
.result-card__brand { color:#ffdc83; letter-spacing:3px; font-size:12px; font-weight:800; margin-bottom:10px; }
.result-card__avatar { width:48px; height:48px; border-radius:50%; object-fit:cover; border:2px solid #e3bf67; }
.solo-app .result-card h4 { margin:10px 0 6px; font-size:24px; color:#fff; }
.solo-app .result-card p { margin:6px 0; }
.result-card__player { color:#c5d4e7; font-size:14px; }
.result-card__score { display:block; font-size:46px; color:#ffdc83; line-height:1.1; margin-top:10px; }
.result-card__score + span { letter-spacing:3px; font-size:11px; }
.result-card__correct { padding-top:8px; font-size:16px; }
.result-card__challenge { font-size:16px; font-weight:700; padding-top:8px; }
.result-card__site { display:block; margin-top:8px; color:#afc7e5; font-size:12px; }
.result-sharing__actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.solo-app .result-sharing__actions button { min-height:44px; justify-content:center; }
.solo-app .result-sharing__actions [data-share] { background:#64bcff; color:#041424; }
.result-sharing__status { text-align:center; margin:10px 0 0; font-size:.8rem; }
.solo-app .result-sharing textarea { background:#fff !important; color:#102035; }
/* Opening sharing gives the preview room; the closed finale remains compact. */
.solo-app[data-renderer="active"]:has(.solo-app__share[open]) .solo-app__interaction { max-height:calc(100% - 52px); }
/* On phones, expanded sharing flows below the stage instead of clipping its actions. */
@media(max-width:600px) {
  .solo-app[data-renderer="active"]:has(.solo-app__share[open]) .solo-app__workspace { height:auto; }
  .solo-app[data-renderer="active"]:has(.solo-app__share[open]) .solo-app__stage { height:min(400px,50dvh); }
  .solo-app[data-renderer="active"]:has(.solo-app__share[open]) .solo-app__interaction { position:relative; max-height:none; }
}

.solo-app__episode-count { margin: 0 0 .5rem; font-size: .8rem; color: inherit; opacity: .8; }

/* Beta controls remain in flow, including zoomed and short viewports. */
.solo-toolbar { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; padding:.75rem 1rem; background:#0b1424; }
.solo-app a { color:#ffe19a; text-decoration:underline; }
.solo-app button, .solo-app select, .solo-toolbar a, #solo-settings label { min-height:44px; }
.solo-toolbar a { display:inline-flex; align-items:center; }
#solo-settings { padding:1rem; background:#152238; color:#f6f8fc; }
#solo-settings:not([hidden]) { display:flex; flex-wrap:wrap; gap:1rem; }
#solo-settings label { display:flex; align-items:center; gap:.5rem; }
#solo-settings p { flex-basis:100%; }
#solo-settings input[type=checkbox] { width:22px; height:22px; }
#solo-settings select { color:#111; background:#fff; }
#solo-settings input[type=range] { width:130px; }
.solo-app [hidden] { display:none !important; }
.solo-app[data-captions=off] #solo-caption { visibility:hidden; }
.solo-app__panel { font-size:calc(1rem * var(--player-text-scale, 1)); }
#solo-stakes, #solo-lifeline-status, #solo-result-trust { color:#f3dfaa; }
#solo-report a, #solo-review a { display:inline-flex; align-items:center; min-height:44px; }
#solo-review { grid-column:1/-1; }
#solo-review-items { padding-left:1.5rem; }
#solo-review-items li { margin-block:1rem; }
#solo-review-items p { margin-block:.4rem; }
.solo-app summary { min-height:44px; cursor:pointer; padding-block:.65rem; }
.solo-app :focus-visible { outline:3px solid #ffe19a; outline-offset:3px; }
.solo-risk-card:disabled { opacity:.65; }
body:has(#solo-app) article { background:#111c2d; color:#f6f8fc; padding:1.25rem; border-top:1px solid #40516a; }
body:has(#solo-app) article a { color:#a9d1ff; }
.solo-app #solo-prompt { font-size:calc(1.1rem * var(--player-text-scale, 1)); }
.solo-app .solo-app__feedback, .solo-app .solo-app__episode-count,
.solo-app .solo-risk-title, .solo-app .solo-risk-gain, .solo-app .solo-risk-loss,
.solo-app .solo-wager-outcome, .solo-app .solo-app__choices button,
.solo-app .solo-app__lifelines button { font-size:calc(1rem * var(--player-text-scale, 1)); }
.solo-app .solo-app__caption { font-size:calc(.9rem * var(--player-text-scale, 1)); }
.solo-app[data-state="final_results"] #solo-result-trust { grid-column:1/-1; }
.solo-app[data-state="final_results"]:has(#solo-review[open]) .solo-app__workspace,
.solo-app[data-state="final_results"]:has(#solo-share[open]) .solo-app__workspace { height:auto; }
.solo-app[data-state="final_results"]:has(#solo-review[open]) .solo-app__stage,
.solo-app[data-state="final_results"]:has(#solo-share[open]) .solo-app__stage { height:250px; }
.solo-app[data-state="final_results"]:has(#solo-review[open]) .solo-app__interaction,
.solo-app[data-state="final_results"]:has(#solo-share[open]) .solo-app__interaction { position:relative; max-height:none; margin-top:0; }
@media (max-height:650px), (max-width:600px) {
 .solo-app[data-renderer="active"] .solo-app__workspace { height:auto; min-height:620px; }
 .solo-app[data-renderer="active"] .solo-app__stage { height:220px; }
 .solo-app[data-renderer="active"] .solo-app__interaction { position:relative; max-height:none; margin-top:0; }
 .solo-app[data-state="risk_selection"] .solo-app__choices { grid-template-columns:1fr; }
}
.solo-app[data-text-scale="150"][data-renderer="active"] .solo-app__workspace,
.solo-app[data-text-scale="200"][data-renderer="active"] .solo-app__workspace { height:auto; }
.solo-app[data-text-scale="150"][data-renderer="active"] .solo-app__stage,
.solo-app[data-text-scale="200"][data-renderer="active"] .solo-app__stage { height:250px; }
.solo-app[data-text-scale="150"][data-renderer="active"] .solo-app__interaction,
.solo-app[data-text-scale="200"][data-renderer="active"] .solo-app__interaction { position:relative; max-height:none; margin-top:0; }

#solo-choose-another { grid-column:1/-1; min-height:44px; display:inline-flex; align-items:center; }
.solo-app #solo-result-title { font-size:calc(1.1rem * var(--player-text-scale, 1)); }
.solo-app #solo-result-copy { font-size:calc(1rem * var(--player-text-scale, 1)); }
.solo-app .solo-toolbar, .solo-app #solo-settings { font-size:calc(1rem * var(--player-text-scale, 1)); }
.solo-app[data-text-scale="150"] .solo-app__caption,
.solo-app[data-text-scale="200"] .solo-app__caption { max-height:none; }
.solo-finale-score strong { overflow-wrap:anywhere; }
