/* Keep the story inside the city footprint; decisions and private hands remain live. */
.city-tableau,.stage-city-detail,#broadcast-city { position:relative; isolation:isolate; }
.action-stage-host { position:absolute; inset:0; z-index:3; overflow:hidden; border-radius:12px; pointer-events:none; visibility:hidden; container-type:size; }
.action-stage-host.is-active { visibility:visible; }
.has-action-scene > .city-stage,.has-action-scene > .table-objects { visibility:hidden; }
.stage-city-detail { min-height:300px; }
.stage-city-detail > .action-stage-host { min-height:300px; }
.table-event-banner { position:relative; }
.table-event-banner > .action-stage-host { display:none; }
#broadcast-city > .action-stage-host { border-radius:14px; }
@media(max-width:760px) and (max-height:740px) {
  .in-game .table-event-banner.has-stage-recap { min-height:72px; padding:0; display:block; }
  .in-game .table-event-banner.has-stage-recap > :not(.action-stage-host) { visibility:hidden; }
  .table-event-banner > .action-stage-host { display:block; }
  .in-game .table-surface:has(.opponents .seat:nth-child(5)) .table-event-banner.has-stage-recap { display:block; }
}
@media(prefers-reduced-motion:reduce) {
  .action-stage-host * { animation:none!important; transition:none!important; }
}
html[data-motion="reduced"] .action-stage-host * { animation:none!important; transition:none!important; }
@media(max-width:360px) and (max-height:740px) {
  .in-game .table-surface:has(.opponents .seat:nth-child(5)) { gap:5px; }
  .in-game .opponents:has(.seat:nth-child(5)) .seat { min-height:48px; gap:3px; padding:4px; }
}
@media(max-width:760px) and (max-height:740px) {
  .in-game .table-event-banner .action-scene { display:flex; align-items:center; padding:5px 8px; }
  .in-game .table-event-banner .action-scene .scene-copy { padding-right:74px; width:100%; }
  .in-game .table-event-banner .action-scene .scene-headline { margin:0 0 3px; font:650 11.5px/1.1 var(--sans,system-ui,sans-serif); }
  .in-game .table-event-banner .action-scene .scene-detail { margin:0; font:400 9px/1.2 var(--sans,system-ui,sans-serif); }
  .in-game .table-event-banner .action-scene .scene-eyebrow,
  .in-game .table-event-banner .action-scene .scene-footnote { display:none; }
  .in-game .table-event-banner .action-scene .scene-theatre { right:0; width:80px; bottom:3px; }
}
@media(max-width:360px) and (max-height:740px) {
  .in-game .opponents:has(.seat:nth-child(5)) .seat { min-height:44px; gap:2px; padding:2px; }
}
