.classic-audience-stage {
  position: relative; isolation: isolate; display: grid; grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 20px; height: 100svh; min-height: 100svh; padding: 32px 40px 30px; overflow: hidden;
  background: linear-gradient(115deg, #fff9df, #fffcf4 45%, #effaff 80%, #f6f0ff);
  color: var(--ink, #111827); font-family: Inter, system-ui, sans-serif; letter-spacing: 0;
}
.ca-architecture { position: absolute; inset: 0; width: 100%; height: 100%; z-index: -2; pointer-events: none; }
.ca-back-left { fill: color-mix(in srgb, var(--ca-left) 20%, #eefaff); }
.ca-back-right { fill: color-mix(in srgb, var(--ca-right) 20%, #f6f0ff); }
.ca-floor { fill: #fff9ed; opacity: .8; }
.ca-header { display: grid; place-items: center; min-width: 0; }
.ca-title-sign { position: relative; isolation: isolate; width: min(100%, 660px); padding: 26px 38px; text-align: center; }
.ca-title-sign::before, .ca-title-sign::after { content: ''; position: absolute; z-index: -1; inset: 0; clip-path: polygon(2% 14%, 50% 0, 98% 14%, 100% 86%, 50% 100%, 0 86%); }
.ca-title-sign::before { background: #ffed9e; transform: rotate(-3deg) scale(1.035, 1.12); }
.ca-title-sign::after { background: linear-gradient(#fff, #fcfaff); border: 5px solid #dfd2fa; border-radius: 28px; }
.ca-title-sign h1 { max-width: 100%; margin: 0; font-size: 42px; line-height: 1.08; font-weight: 850; text-wrap: balance; overflow-wrap: anywhere; }
.ca-stage-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px minmax(0, 1fr); gap: 30px; min-height: 0; align-items: center; }
.ca-team { position: relative; isolation: isolate; min-width: 0; text-align: center; padding: 32px 22px; }
.ca-team[data-audience-team="1"] { --ca-team: var(--ca-left); grid-column: 1; }
.ca-team[data-audience-team="0"] { --ca-team: var(--ca-right); grid-column: 3; }
.ca-team::before { content: ''; position: absolute; inset: -10px -8px; z-index: -1; background: color-mix(in srgb, var(--ca-team) 14%, #fff); border: 2px solid #ffffffb3; border-radius: 42px; transform: skew(-6deg, 3deg); transition: background .35s, box-shadow .35s, border-color .35s; }
.ca-team[data-audience-team="0"]::before { transform: skew(6deg, -3deg); }
.ca-team.is-winner::before { background: color-mix(in srgb, var(--ca-team) 28%, #fff); border-color: color-mix(in srgb, var(--ca-team) 75%, #fff); box-shadow: 0 12px 30px color-mix(in srgb, var(--ca-team) 20%, transparent); }
.ca-team.is-active::before {
  background: color-mix(in srgb, var(--ca-team) 42%, #fff);
  border-color: color-mix(in srgb, var(--ca-team) 80%, #111827);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--ca-team) 75%, #111827),
    0 20px 30px #11182738, 0 10px 36px color-mix(in srgb, var(--ca-team) 45%, transparent);
}
.ca-team h2 { margin: 0 0 18px; font-size: 34px; line-height: 1.12; font-weight: 850; overflow-wrap: anywhere; text-wrap: balance; }
.ca-score-console { position: relative; margin: 0 auto 16px; width: min(100%, 280px); padding: 10px 16px; background: #ffffffa3; border-radius: 28px; }
.ca-score { display: block; font-size: 128px; line-height: 1; font-weight: 850; font-variant-numeric: tabular-nums; }
.ca-pair { display: flex; justify-content: center; gap: 18px; min-height: 45px; }
.ca-pair > div { min-width: 0; flex: 0 1 50%; }
.ca-pair strong { display: block; font-size: 22px; line-height: 1.2; overflow-wrap: anywhere; }
.ca-pair div > span { display: block; margin-top: 4px; font-size: 13px; color: #52627a; }
.ca-pair p { margin: 0; color: #52627a; font-size: 18px; }
.ca-center { grid-column: 2; grid-row: 1; min-width: 0; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.ca-round-label { display: inline-block; align-self: center; justify-self: center; width: fit-content; max-width: 100%; padding: 6px 12px; border-radius: 999px; background: #ede7ff; font-size: 16px; line-height: 1.2; color: #4145ad; font-weight: 700; text-transform: uppercase; }
.ca-header > .ca-round-label { position: absolute; top: 24px; right: 32px; max-width: calc(100% - 64px); }
.ca-clock { min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.ca-clock > span, .ca-stakes > span { display: block; max-width: 100%; text-transform: uppercase; font-size: 16px; line-height: 1.2; color: #111827; font-weight: 750; overflow-wrap: anywhere; }
.ca-clock strong, .ca-center .show-timer { display: block; font-size: 68px; line-height: 1.1; font-weight: 850; font-variant-numeric: tabular-nums; color: #111827; }
.ca-clock-idle { color: #111827; font-size: 22px; }
.ca-stakes { position: relative; width: 100%; min-width: 0; padding-top: 12px; }
.ca-stakes::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: min(72px, 40%); height: 2px; border-radius: 2px; background: #e0d3fa; }
.ca-center.has-no-clock .ca-stakes { padding-top: 0; }
.ca-center.has-no-clock .ca-stakes::before { display: none; }
.ca-stakes strong { display: block; color: #4145ad; font-size: 60px; line-height: 1.1; font-weight: 850; font-variant-numeric: tabular-nums; margin-bottom: 4px; }
.ca-clock.is-paused strong { color: #4145ad; }
.ca-clock.is-warning strong, .ca-center .show-timer.is-low { color: #9e380b; }
.ca-clock.is-urgent:not(.is-paused) strong { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 6px; }
.ca-audience-prompt { position: relative; transform: translateY(var(--ca-prompt-shift, 0px)); text-align: center; min-width: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; margin-bottom: clamp(24px, 4svh, 48px); padding: 28px 32px; border: 3px solid #fff; border-radius: 36px; background: linear-gradient(110deg, #fff, #f6f1ff); box-shadow: 0 14px 30px #4338a51a; }
.ca-question { margin: 0; font-size: 44px; line-height: 1.12; font-weight: 850; text-wrap: balance; }
.ca-prompt { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px 24px; }
.ca-status { margin: 0; font-size: 20px; line-height: 1.2; color: #52627a; font-weight: 700; }
.ca-clue-line { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 10px; margin: 0; }
.ca-clue-line > span { color: #52627a; font-size: 18px; }
.ca-clue { display: block; color: #4145ad; font-size: 30px; line-height: 1.1; overflow-wrap: anywhere; }
.ca-kicker, .ca-reveal-label { margin: 0; color: #4145ad; font-size: 16px; font-weight: 750; }
.ca-reveal-label { text-transform: uppercase; }
.ca-result-title { margin: 0; font-size: 30px; line-height: 1.15; overflow-wrap: anywhere; }
.ca-password { font-size: 52px; line-height: 1.05; text-transform: uppercase; font-weight: 850; overflow-wrap: anywhere; }
.ca-award { display: block; font-size: 30px; line-height: 1; color: #4145ad; }
.ca-award span { font-size: 20px; }
.ca-score-console .ca-award { position: absolute; bottom: -10px; right: 8px; padding: 6px 12px; border-radius: 999px; background: #fff; box-shadow: 0 3px 12px #4338a51a; font-size: 24px; }
.ca-result-message { display: block; max-width: 100%; min-height: 1.12em; perspective: 700px; }
.ca-flip-word { display: inline-block; white-space: nowrap; }
.ca-flip-letter { display: inline-block; backface-visibility: hidden; transform-origin: center; }
.ca-next, .ca-final-note { margin: 0; color: #52627a; font-size: 18px; }
.ca-victory-wave { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 10; fill: var(--ca-winner); opacity: 0; }
.ca-round-ready { position: absolute; inset: 0; z-index: 11; display: grid; place-items: center; padding: 24px; pointer-events: none; opacity: 0; }
.ca-round-ready[hidden] { display: none; }
.ca-round-ready p { width: min(100%, 540px); margin: 0; padding: 28px 32px; border: 3px solid #fff; border-radius: 24px; background: linear-gradient(110deg, #fff, #f6f1ff); box-shadow: 0 18px 48px #11182733; color: #111827; text-align: center; font-size: 36px; line-height: 1.15; font-weight: 850; text-wrap: balance; overflow-wrap: anywhere; }
.ca-solved, .ca-clue-history { max-width: 100%; font-size: 18px; color: #4145ad; }
.ca-solved > span, .ca-clue-history > span { font-size: 13px; font-weight: 750; color: #52627a; }
.ca-solved ol, .ca-clue-history ol { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 16px; list-style: none; padding: 0; margin: 4px 0 0; max-height: 48px; overflow: auto; }
.ca-solved li, .ca-clue-history li { overflow-wrap: anywhere; }
.ca-audience-prompt .championship-prize { margin: 0; font-size: 16px; }
.ca-audience-prompt .show-stage { width: 100%; gap: 10px; }
.ca-audience-prompt .show-word { font-size: 44px; overflow-wrap: anywhere; }
.ca-audience-prompt .spotlight-points { font-size: 20px; }
.ca-audience-prompt .spotlight-matchup, .ca-audience-prompt .classroom-mini-scores { display: none; }
.ca-audience-prompt .spotlight-secret strong { font-size: 40px; }
.ca-audience-prompt .spotlight-award { font-size: 36px; }
.ca-audience-prompt .spotlight-victory h2 { font-size: 30px; }
.ca-audience-prompt .spotlight-streak { font-size: 16px; }
.ca-show-stage:not(.is-result) .ca-audience-prompt .spotlight-stage > h2 { display: none; }
.ca-audience-prompt .game-show-round-controls { padding: 0; }
.ca-audience-prompt .championship-live > p { margin: 8px 0; }
.ca-audience-prompt .alphabet-heading { display: none; }
.ca-audience-prompt .alphabet-board { margin-block: 10px; }
.ca-audience-prompt .alphabet-board li { height: 42px; }
.ca-bonus-stage .ca-center .alphabet-clock { font-size: 64px; color: #111827; }
.ca-field-stage .ca-stage-layout { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
.ca-field-stage .ca-center { grid-column: 1; grid-row: 1; flex-direction: row; justify-content: center; gap: 32px; }
.ca-field-stage .ca-stakes { width: auto; border: 0; padding: 0; }
.ca-field-stage .ca-stakes::before { display: none; }
.ca-field-stage .ca-center .show-timer, .ca-field-stage .ca-stakes strong { font-size: 44px; }
.ca-field-stage .ca-stakes strong { font-size: 38px; }
.ca-contestants { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 20px; overflow: auto; max-height: 100%; padding: 14px; }
.ca-contestants .ca-team { grid-column: auto; grid-row: auto; padding: 12px; }
.ca-contestants .ca-team::before { inset: 0; transform: none; border-radius: 24px; }
.ca-contestants .ca-team h2 { font-size: 24px; }
.ca-contestants .ca-score { font-size: 64px; }
.ca-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.classic-category-intro { min-height: 100svh; display: grid; place-items: center; padding: 32px 48px; background: linear-gradient(115deg, #fff9df, #fffcf4 45%, #effaff 80%, #f6f0ff); color: var(--ink, #111827); text-align: center; }
.category-intro-sign { position: relative; isolation: isolate; width: min(100%, 1120px); padding: 72px 64px; border: 10px solid #fff; border-radius: 40px; background: linear-gradient(135deg, #fff, #fffcf4 60%, #f3f1ff); box-shadow: 0 28px 64px #1118271f; overflow: hidden; overflow-wrap: anywhere; }
.category-intro-sign::before, .category-intro-sign::after { content: ''; position: absolute; z-index: -1; pointer-events: none; border-radius: 32px; }
.category-intro-sign::before { width: 180px; height: 180px; top: -100px; right: -64px; transform: rotate(15deg); background: #ffeba2; }
.category-intro-sign::after { width: 180px; height: 180px; bottom: -130px; left: -72px; transform: rotate(-15deg); background: #e3dfff; }
.category-intro-kicker { display: table; margin: 0 auto; padding: 10px 22px; border-radius: 999px; background: #eef2ff; color: #4145ad; font-size: 18px; font-weight: 850; }
.category-intro-sign h1 { max-width: 900px; margin: 28px auto 24px; font-size: 64px; line-height: 1.12; color: var(--ink, #111827); font-weight: 850; text-wrap: balance; }
.category-intro-description { max-width: 760px; margin: 0 auto; font-size: 26px; line-height: 1.5; font-weight: 650; color: var(--muted, #52627a); white-space: pre-line; }
@media (min-width: 1600px) and (min-height: 900px) {
  .classic-audience-stage { padding: 48px 64px; gap: 32px; }
  .ca-title-sign { width: min(100%, 800px); padding: 34px 48px; }
  .ca-title-sign h1 { font-size: 54px; }
  .ca-stage-layout { grid-template-columns: minmax(0, 1fr) 360px minmax(0, 1fr); gap: 60px; }
  .ca-team h2 { font-size: 44px; }
  .ca-score { font-size: 160px; }
  .ca-score-console { width: min(100%, 340px); }
  .ca-pair strong { font-size: 28px; }
  .ca-pair div > span { font-size: 16px; }
  .ca-clock strong, .ca-center .show-timer { font-size: 88px; }
  .ca-stakes strong { font-size: 72px; }
  .ca-clock > span, .ca-stakes > span { font-size: 18px; }
  .ca-question { font-size: 56px; }
  .ca-password { font-size: 68px; }
}
@media (max-width: 1100px), (max-height: 740px) {
  .classic-audience-stage { padding: 24px 32px; gap: 16px; }
  .ca-title-sign { width: min(100%, 560px); padding: 20px 32px; }
  .ca-title-sign h1 { font-size: 34px; }
  .ca-stage-layout { grid-template-columns: minmax(0, 1fr) 240px minmax(0, 1fr); gap: 24px; }
  .ca-team { padding: 20px 12px; }
  .ca-team h2 { font-size: 28px; margin-bottom: 12px; }
  .ca-team::before { inset: -4px -10px; border-radius: 30px; }
  .ca-score { font-size: 96px; }
  .ca-pair strong { font-size: 20px; }
  .ca-clock strong, .ca-center .show-timer { font-size: 56px; }
  .ca-stakes strong { font-size: 48px; }
  .ca-question { font-size: 36px; }
  .ca-audience-prompt { padding: 20px 24px; gap: 6px; }
  .ca-password { font-size: 42px; }
  .ca-result-title { font-size: 26px; }
  .ca-bonus-stage .ca-score { font-size: 72px; }
  .ca-bonus-stage .ca-team { padding-block: 12px; }
  .ca-bonus-stage .ca-team h2 { font-size: 24px; }
  .ca-bonus-stage .ca-center .alphabet-clock { font-size: 48px; }
}
@media (max-width: 1000px) {
  .classic-audience-stage .ca-header { padding-top: 44px; }
}
@media (max-width: 700px) {
  .classic-audience-stage { height: auto; min-height: 100svh; overflow: hidden; padding: 24px 18px; gap: 24px; grid-template-rows: auto 1fr auto; }
  .ca-title-sign { padding: 20px 16px; }
  .ca-title-sign h1 { font-size: 28px; }
  .ca-stage-layout { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto auto; gap: 24px 16px; align-content: center; }
  .ca-team { padding: 16px 8px; grid-row: 1; }
  .ca-team[data-audience-team="0"] { grid-column: 2; }
  .ca-team::before { inset: -4px; transform: skew(0, 3deg); border-radius: 24px; }
  .ca-team[data-audience-team="0"]::before { transform: skew(0, -3deg); }
  .ca-team h2 { font-size: 22px; }
  .ca-score-console { padding: 8px; border-radius: 20px; margin-bottom: 12px; }
  .ca-score { font-size: 64px; }
  .ca-pair { flex-direction: column; gap: 8px; }
  .ca-pair strong { font-size: 18px; }
  .ca-pair div > span { margin-top: 2px; font-size: 12px; }
  .ca-center { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; align-items: center; }
  .ca-center.has-no-clock { grid-template-columns: minmax(0, 1fr); }
  .ca-round-label { font-size: 14px; }
  .ca-header > .ca-round-label { top: 18px; right: 18px; max-width: calc(100% - 36px); }
  .ca-clock strong, .ca-center .show-timer { font-size: 44px; }
  .ca-stakes strong { font-size: 38px; }
  .ca-clock > span, .ca-stakes > span { font-size: 14px; }
  .ca-stakes { padding: 0; }
  .ca-stakes::before { display: none; }
  .ca-audience-prompt { padding: 22px 16px; border-radius: 28px; }
  .ca-question { font-size: 28px; }
  .ca-status { font-size: 18px; }
  .ca-password, .ca-audience-prompt .show-word { font-size: 36px; }
  .ca-clue { font-size: 26px; }
  .ca-result-title { font-size: 24px; }
  .ca-solved ol, .ca-clue-history ol { max-height: 44px; }
  .classic-category-intro { padding: 24px 16px; }
  .category-intro-sign { padding: 40px 20px; border-width: 8px; border-radius: 32px; }
  .category-intro-sign h1 { font-size: 38px; margin-block: 24px 20px; }
  .category-intro-description { font-size: 20px; }
  .category-intro-kicker { font-size: 16px; }
}
@media (max-width: 360px) {
  .ca-clock strong, .ca-center .show-timer { font-size: 40px; }
}
@media (max-height: 500px) and (min-width: 701px) {
  .classic-audience-stage { height: auto; grid-template-rows: auto auto auto; padding: 14px 24px; gap: 12px; }
  .ca-title-sign { padding: 12px 24px; width: min(100%, 500px); }
  .ca-title-sign h1 { font-size: 26px; }
  .ca-stage-layout { grid-template-columns: minmax(0, 1fr) 180px minmax(0, 1fr); }
  .ca-team { padding: 8px 12px; }
  .ca-team h2 { font-size: 22px; margin-bottom: 6px; }
  .ca-score { font-size: 56px; }
  .ca-score-console { padding: 2px 10px; width: min(100%, 150px); margin-bottom: 6px; }
  .ca-pair { min-height: 30px; gap: 8px; }
  .ca-pair strong { font-size: 18px; }
  .ca-pair div > span { font-size: 11px; margin-top: 0; }
  .ca-center { gap: 8px; }
  .ca-clock strong, .ca-center .show-timer { font-size: 36px; }
  .ca-stakes strong { font-size: 32px; }
  .ca-clock > span, .ca-stakes > span, .ca-round-label { font-size: 14px; }
  .ca-stakes { padding-top: 10px; }
  .ca-audience-prompt { padding: 12px 20px; gap: 4px; }
  .ca-question, .ca-password, .ca-audience-prompt .show-word { font-size: 28px; }
  .ca-result-title, .ca-award, .ca-clue { font-size: 22px; }
  .ca-solved, .ca-clue-history { font-size: 14px; }
  .ca-solved ol, .ca-clue-history ol { max-height: 24px; }
  .classic-category-intro { padding: 16px 24px; }
  .category-intro-sign { padding: 24px 32px; border-width: 8px; border-radius: 32px; }
  .category-intro-sign h1 { font-size: 40px; margin-block: 16px; }
  .category-intro-description { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .classic-audience-stage *, .classic-audience-stage *::before, .classic-audience-stage *::after { animation: none !important; transition: none !important; }
  .ca-victory-wave, .ca-round-ready { display: none; }
}
@media (max-width: 700px) {
  .ca-round-ready p { padding: 24px; font-size: 28px; }
}
