/* 3240 × 1920: header / playing table / public score strip are separate zones.
   The scenic bitmap is confined to the table, never behind the player boards. */
.display-stage .action-summary {
  top: 40px; left: 80px; right: 80px; width: auto; height: 200px;
  grid-template-columns: 840px minmax(0, 1fr) 650px;
  grid-template-rows: 40px 56px;
  column-gap: 40px; row-gap: 8px;
  padding: 24px 40px;
}
.display-stage .action-meta { grid-column: 1; grid-row: 1; }
.display-stage .action-summary h1 {
  grid-column: 1; grid-row: 2; margin: 0; font-size: 48px;
}
.display-stage .action-summary p {
  grid-column: 2; grid-row: 1 / 3;
  margin: 0; min-height: 0; font-size: 32px; line-height: 1.4;
}
.display-stage .public-counters {
  grid-column: 3; grid-row: 1 / 3; margin: 0;
  gap: 20px; width: 100%;
}
.display-stage .public-counters span { min-width: 175px; padding: 4px 18px; height: 70px; }
.display-stage .tabletop {
  left: 60px; top: 280px; width: 3120px; height: 1190px;
  isolation: isolate;
}
.display-stage .tabletop .charcoal-background {
  z-index: 0; object-fit: contain; pointer-events: none;
}
.display-stage .public-pile {
  top: 380px; width: 270px; height: 438px;
  grid-template-rows: 360px 78px;
}
.display-stage .public-pile img { width: 240px; height: 360px; }
.display-stage .public-pile b { height: 78px; min-width: 206px; font-size: 28px; }
.display-stage .deck-pile { left: 175px; }
.display-stage .discard-pile { right: 175px; }
.display-stage .table-action-cards {
  left: 500px; right: 500px; top: 230px; bottom: 200px; gap: 38px;
}
.display-stage .table-card { width: 300px; height: 450px; }
.display-stage .action-separator { min-width: 108px; height: 82px; font-size: 46px; }
.display-stage .lobby-codes { left: 550px; right: 550px; top: 180px; bottom: 170px; gap: 46px; }
.display-stage .lobby-code-list { gap: 32px; }
.display-stage .lobby-code { height: 152px; }
.display-stage .catch-overlay {
  top: 875px; width: 1820px; min-height: 700px;
  grid-template-columns: 710px 1fr; gap: 70px;
}
.display-stage .catch-art img { width: 270px; height: 405px; }
/* 80 canonical pixels of real air between scene bounds and the score tickets.
   Their existing black halo remains entirely in this independent bottom zone. */
.display-stage .player-ring { inset: auto 80px 40px; height: 330px; }
