/* Shared height budget; keep controls in the page rather than hiding overflow. */
.game-page.page, .games-page.page { padding-top: calc(var(--top-h) + 12px); padding-bottom: 16px; }
.wheel-page.page { padding-bottom: 16px; }
.game-page .game-head { margin-bottom: 12px; }
.game-page .quiz-zone { min-height: 0; }
.game-page .quiz-zone.px-setup-zone,
.mg-page .quiz-zone.em-zone.px-setup-zone {
  height: auto;
  min-height: 0;
}
.game-page .px-setup-zone { min-height: 0; }
.game-page .px-play-row { margin-top: 16px; }
.game-page .px-hist { margin-top: 12px; }
.game-page .wt-who { min-width: 0; }
.game-page .wt-acts { flex-wrap: wrap; }
.game-page .qz-cover { max-height: clamp(100px, calc(100dvh - 440px), 250px); }
.game-page .qz-actions { margin-top: 14px; }
.game-page .wt-search:has(.wt-results:not([hidden])) .wt-results {
  position: static;
  max-height: none;
  margin-top: 6px;
  width: 100%;
}
.game-page .wt-zone.wt-over,
.game-page .px-zone.wt-over { min-height: min(480px, calc(100dvh - var(--top-h) - 150px)); }

@media (max-height: 760px) {
  .game-page .quiz-zone { padding: 14px 18px; }
  .game-page .qz-q { gap: 10px; }
  .game-page .qz-body { min-height: 80px; }
  .game-page .qz-img { width: 75px; }
  .game-page .qz-body h3 { font-size: 22px; }
  .game-page .qz-choice { min-height: 44px; padding: 8px 12px; }
  .game-page .wt-zone.wt-play .wt-kb button { height: 36px; }
  .game-page .wt-play .wt-holo { height: calc(5 * var(--wt-t) + 130px); }
  .game-page .hl-img { height: clamp(100px, calc(100dvh - 440px), 220px); }
}

@media (max-width: 860px) {
  .duels-page .duel-lists { gap: 8px; }
  .duels-page .duel-empty { padding-block: 8px; }
  .game-page .game-layout { grid-template-columns: minmax(0, 1fr); }
  .game-page .game-side { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .game-page .game-side > * { min-width: 0; }
  .game-page .px-board { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: center; }
  .game-page .px-board .px-frame { width: 100%; }
  .game-page .px-q { font-size: 21px; }
  .game-page .px-form { gap: 6px; }
  .game-page .wt-zone.wt-play .wt-board { grid-template-columns: auto minmax(0, 1fr); gap: 12px; }
  .game-page .hl-unis { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .game-page .hl-u { aspect-ratio: 1.4; }
  .game-page .hl-u-txt b { font-size: 14px; }
}

@media (max-width: 520px) {
  .game-page .wt-reveal.overlay { padding: 16px; gap: 12px; }
  .game-page .game-head h1 { font-size: 24px; }
  .game-page .game-head .jp { display: none; }
  .game-page .quiz-zone { padding: 12px; }
  .game-page .px-board { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .game-page .px-board .px-frame { width: min(48%, 190px); }
  .game-page .px-setup h2 { font-size: 24px; }
  .game-page .px-lvls { gap: 8px; }
  .game-page .px-lvl { min-width: 0; padding: 8px; }
  .game-page .px-lvl-art { width: 65px; }
  .game-page .wt-zone.wt-play .wt-board { grid-template-columns: minmax(0, 1fr); }
  .game-page .wt-play .wt-side { display: flex; align-items: center; gap: 10px; }
  .game-page .wt-play .wt-holo { width: 42px; height: 56px; flex: none; }
  .game-page .wt-play .wt-anime { font-size: 16px; }
  .game-page .qz-themes { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .game-page .qz-theme b { font-size: 11px; }
  .game-page .qz-choices { gap: 6px; }
}
