/* Stadium 03: the stadium leads; its controls occupy three deliberate edges.
   Existing IDs, native scenes and game controls remain available. */
.stadium-ui {
  --stadium-ink: #edf3ff;
  --stadium-muted: #becde4;
  --stadium-line: #b2c6e438;
  --stadium-panel: #050b18f5;
  --stadium-yellow: #ffcf00;
  --stadium-blue: #043cff;
  color-scheme: dark;
}
.stadium-ui ::selection { background: var(--stadium-yellow); color: #080b12; }
.stadium-ui :is(input,textarea) { caret-color: var(--stadium-yellow); }
.stadium-ui :is(button,a,summary,select,input):focus-visible {
  outline: 2px solid var(--stadium-yellow) !important;
  outline-offset: 4px !important;
}
.stadium-ui :is(.drawer,.modal,#help,.settings,#viewControls) {
  scrollbar-width: thin;
  scrollbar-color: #7189b2 #08101e;
}
.stadium-ui :is(button,a,summary,select) { -webkit-tap-highlight-color: #ffcf002a; }
.stadium-ui button:disabled { cursor: default; opacity: .5; }
.stadium-ui details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  list-style: none;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid var(--stadium-line);
  border-radius: 4px;
  background: #060d1bf0;
  color: var(--stadium-ink);
  font: 600 11px/1.2 Inter, Arial, sans-serif;
  letter-spacing: .08em;
  cursor: pointer;
  user-select: none;
}
.stadium-ui details > summary::-webkit-details-marker { display: none; }
.stadium-ui details > summary svg {
  width: 18px;
  height: 18px;
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  transition: transform 180ms ease;
}
.stadium-ui details[open] > summary svg { transform: rotate(180deg); }
.stadium-ui details:not([open]) > :not(summary) { display: none !important; }
.stadium-ui details > summary:hover { background: #132347; border-color: #a6bee377; }
.stadium-ui :is(.stadium-home-link,.stadium-return-link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 0 15px;
  border: 1px solid #ffcf0077;
  border-radius: 4px;
  background: #070d1aed;
  color: var(--stadium-yellow);
  font: 600 11px/1.2 Inter, Arial, sans-serif;
  letter-spacing: .08em;
  white-space: nowrap;
  text-decoration: none;
}
.stadium-ui :is(.stadium-home-link,.stadium-return-link):hover {
  background: var(--stadium-yellow);
  color: #070b15;
}

/* The duel: score above the flight path, equipment controls below it. */
.stadium-arena > header,
.stadium-green #game-ui > header {
  top: max(22px, env(safe-area-inset-top));
  left: max(28px, env(safe-area-inset-left));
  right: max(28px, env(safe-area-inset-right));
  z-index: 30;
  pointer-events: none;
}
.stadium-ui :is(.brand,.topActions) { pointer-events: auto; }
.stadium-ui .brand { font-size: 23px; letter-spacing: .14em; }
.stadium-ui .brand small { font-size: 12px; color: var(--stadium-muted); }
.stadium-ui .topActions { gap: 8px; }
.stadium-ui .topActions button {
  min-height: 44px;
  background: #070d1aed;
  border: 1px solid var(--stadium-line);
  color: var(--stadium-ink);
  font-size: 12px;
  letter-spacing: .05em;
}
.stadium-ui #scoreboard {
  top: -3px;
  gap: 22px;
  padding: 10px 24px;
  border: 1px solid var(--stadium-line);
  border-radius: 4px;
  background: #040a16e8;
  box-shadow: 0 8px 24px #0005;
  font-variant-numeric: tabular-nums;
}
.stadium-ui #scoreboard b { font-size: 38px; }
.stadium-ui #scoreboard small { font-size: 12px; letter-spacing: .06em; }
.stadium-ui #matchType { font-size: 12px; letter-spacing: .04em; color: #e1ebfa; }
.stadium-ui #matchType em { font-size: 12px; color: var(--stadium-muted); }
.stadium-ui #readyHint {
  top: calc(99px + env(safe-area-inset-top));
  bottom: auto;
  padding: 8px 16px;
  background: #040a16e8;
  border: 1px solid var(--stadium-line);
  box-shadow: 0 6px 20px #0004;
  z-index: 16;
}
.stadium-ui #readyHint b { color: var(--stadium-ink); font-size: 15px; }
.stadium-ui #readyHint span { color: var(--stadium-muted); font-size: 12px; }
.stadium-ui #announcement { top: 24%; z-index: 15; }
.stadium-ui #announcement strong { font-size: clamp(30px, 3.5vw, 46px); letter-spacing: .04em; }
.stadium-ui #arenaMoment { max-width: min(460px, calc(100vw - 48px)); }
.stadium-ui #flightHud {
  left: max(28px, env(safe-area-inset-left));
  right: max(28px, env(safe-area-inset-right));
  bottom: calc(22px + env(safe-area-inset-bottom));
  height: 72px;
  padding: 0;
  z-index: 15;
  font-variant-numeric: tabular-nums;
}
.stadium-ui #flightHud .boost { width: clamp(210px, 25vw, 340px); bottom: 0; }
.stadium-ui #flightHud .session { bottom: 62px; max-width: 380px; }
.stadium-ui #flightHud .session > span { font-size: 12px; color: var(--stadium-muted); }
.stadium-ui #flightHud .session strong { color: var(--stadium-ink); font-size: 12px; }
.stadium-ui #flightHud :is(.energyCaption,.energyLegend) { color: var(--stadium-muted); }
.stadium-ui #flightHud .energyCaption > small,
.stadium-ui #flightHud .energyCaption span small { color: var(--stadium-muted) !important; }
.stadium-ui #flightHud .flightTelemetry { position: absolute; left: 0; bottom: 0; }
.stadium-ui #flightHud .ballStats { position: absolute; right: 0; bottom: 0; }
.stadium-ui #flightHud .ballStats small { font-size: 12px; color: var(--stadium-muted); }
.stadium-ui .stadium-match-tools {
  position: fixed;
  left: max(28px, env(safe-area-inset-left));
  bottom: calc(118px + env(safe-area-inset-bottom));
  z-index: 42;
  width: min(346px, calc(100vw - 56px));
}
.stadium-ui .stadium-match-tools > summary { width: max-content; }
.stadium-ui .stadium-match-tools[open] > summary { border-radius: 0 0 4px 4px; border-top: 0; }
.stadium-ui .stadium-match-tools #viewControls {
  position: absolute;
  left: 0;
  right: 0;
  top: auto;
  bottom: 44px;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  max-width: none;
  max-height: min(430px, calc(100dvh - 200px));
  overflow: auto;
  padding: 16px;
  border: 1px solid var(--stadium-line);
  border-radius: 4px 4px 4px 0;
  background: var(--stadium-panel);
  box-shadow: 0 -8px 30px #0007;
}
.stadium-ui .stadium-match-tools #viewControls > * { flex: 1 1 135px; }
.stadium-ui .stadium-match-tools #viewControls :is(button,label) {
  min-height: 44px;
  padding: 10px 12px;
  background: #101d34;
  border: 1px solid var(--stadium-line);
  color: var(--stadium-ink);
  font-size: 12px;
  letter-spacing: .02em;
}
.stadium-ui .stadium-match-tools #viewControls button:hover { background: #1c3157; }
.stadium-ui .stadium-match-tools #viewControls label { flex-basis: 100%; justify-content: space-between; }
.stadium-ui .stadium-match-tools #viewControls label > span { display: inline; color: var(--stadium-muted); font-size: 12px; }
.stadium-ui .stadium-match-tools #quality { min-height: 30px; font-size: 14px; background: #071020; }
/* Overrides the old release rule that hid the quality selector mid-match. */
.stadium-ui .stadium-match-tools #viewControls :is(#quality,#camDistance) { opacity: 1 !important; pointer-events: auto !important; }
.stadium-ui #resumePanel,
.stadium-ui #help,
.stadium-ui .modal { background: var(--stadium-panel); border-color: var(--stadium-line); box-shadow: 0 18px 52px #0008; }
.stadium-ui #resumePanel { z-index: 65; padding: 26px; max-height: calc(100dvh - 120px); overflow: auto; }
.stadium-ui #help { z-index: 65; color: var(--stadium-ink); }
.stadium-ui #help :is(p,span,.tip) { font-size: 14px; color: var(--stadium-muted); }
.stadium-ui #help kbd { font-size: 12px; }
.stadium-ui #closeHelp { min-height: 44px; min-width: 44px; }
.stadium-arena > .rotor-home { display: none !important; }
.stadium-arena #sceneTravelLaunch { right: 28px; bottom: 118px; min-height: 44px; }
.stadium-arena.searching .stadium-match-tools { visibility: hidden; }

/* Green Room: retain physical mode objects; give every other route one home. */
.stadium-green #world-ui {
  background: linear-gradient(180deg,#010613a6,transparent 17%,transparent 76%,#000818b3);
}
.stadium-green #world-ui .mast {
  padding: 22px 28px;
  gap: 20px;
  align-items: center;
  z-index: 50;
}
.stadium-green #world-ui .wordmark { margin-right: auto; }
.stadium-green #world-ui .wordmark small { font-size: 12px; letter-spacing: .1em; color: var(--stadium-muted); }
.stadium-green #world-ui .stadium-room-nav { position: relative; pointer-events: auto; }
.stadium-green #world-ui .stadium-room-nav nav {
  position: absolute;
  top: 52px;
  right: 0;
  width: 246px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: stretch;
  padding: 14px;
  border: 1px solid var(--stadium-line);
  border-radius: 4px;
  background: var(--stadium-panel);
  box-shadow: 0 14px 36px #0008;
}
.stadium-green #world-ui .stadium-room-nav nav :is(a,button) {
  min-height: 44px;
  margin: 0;
  padding: 12px;
  border-radius: 3px;
  border: 1px solid transparent;
  color: var(--stadium-ink);
  text-align: left;
  letter-spacing: .04em;
  font-size: 12px !important;
  background: transparent;
  box-shadow: none;
}
.stadium-green #world-ui .stadium-room-nav nav :is(a,button):hover,
.stadium-green #world-ui .stadium-room-nav nav button[aria-current=page] { background: #173363; border-color: #a1bbde44; }
.stadium-green #world-ui .stadium-room-nav nav .nav-play { background: var(--stadium-yellow); color: #070b15 !important; }
.stadium-green #world-ui .stadium-room-nav nav .nav-play:hover { background: #ffe062 !important; color: #070b15 !important; }
.stadium-green #world-ui #pilotToggle { display: flex; min-height: 44px; padding: 0 0 0 8px; }
.stadium-green #world-ui #pilotToggle .pilot-heading small:first-child { display: none; }
.stadium-green #world-ui #worldPilotTier { color: var(--stadium-muted); font-size: 12px; }
.stadium-green #world-ui .opening-title { top: 19%; left: 4.5%; width: min(29vw,340px); max-width: none; }
.stadium-green #world-ui .opening-title h1 { font-size: clamp(36px,4.3vw,66px); line-height: .95; letter-spacing: -.02em; }
.stadium-green #world-ui .opening-title #nightSubtitle { color: var(--stadium-muted); font-size: 12px !important; letter-spacing: .02em; }
.stadium-green #world-ui .opening-title .power-court-play { min-height: 48px; max-width: 290px; font-size: 23px; }
.stadium-green #world-ui .title-navigation { display: flex !important; flex-wrap: wrap; gap: 10px 16px; }
.stadium-green #world-ui .title-navigation button { min-height: 36px; color: var(--stadium-muted); font-size: 12px; letter-spacing: .02em; }
.stadium-green #world-ui .opening-title #howToggle { min-height: 44px; color: var(--stadium-muted); }
/* Inline projected positions in world.js are measured from the full viewport. */
.stadium-green #world-ui .club-navigation { position: absolute; inset: 0; width: auto; pointer-events: none; }
.stadium-green #world-ui #choices { position: absolute; inset: 0; width: auto; height: auto; pointer-events: none; }
.stadium-green #world-ui #choices .mode { pointer-events: auto; border-radius: 8px; }
.stadium-green #world-ui #choices .mode .index { font-size: 12px !important; letter-spacing: .06em; }
.stadium-green #world-ui .club-explore {
  display: block !important;
  position: absolute;
  right: 28px;
  bottom: 88px;
  width: min(282px,calc(100vw - 56px));
  pointer-events: auto;
  z-index: 25;
}
.stadium-green #world-ui .club-explore-panel {
  position: absolute;
  bottom: 50px;
  right: 0;
  width: 100%;
  max-height: calc(100dvh - 210px);
  overflow: auto;
  padding: 14px;
  border: 1px solid var(--stadium-line);
  border-radius: 4px;
  background: var(--stadium-panel);
  box-shadow: 0 -8px 30px #0007;
}
.stadium-green #world-ui .club-explore-panel > button {
  display: block;
  width: 100%;
  min-height: 54px;
  padding: 12px;
  border: 0;
  border-bottom: 1px solid var(--stadium-line);
  background: transparent;
  text-align: left;
}
.stadium-green #world-ui .club-explore-panel #matchSetupToggle { display: block; }
.stadium-green #world-ui .club-explore-panel :is(small,span) { display: block; font-size: 12px; color: var(--stadium-muted); }
.stadium-green #world-ui .club-explore-panel strong { font-size: 12px; color: var(--stadium-ink); }
.stadium-green #world-ui .club-explore-panel > button:hover { background: #172d50; }
.stadium-green #world-ui .stadium-room-info { position: absolute; left: 28px; bottom: 88px; z-index: 25; pointer-events: auto; }
.stadium-green #world-ui .stadium-room-info-panel {
  position: absolute;
  bottom: 50px;
  left: 0;
  width: min(380px,calc(100vw - 56px));
  display: grid;
  grid-template-columns: 1fr 130px;
  gap: 18px;
  padding: 20px;
  max-height: calc(100dvh - 220px);
  overflow: auto;
  border: 1px solid var(--stadium-line);
  border-radius: 4px;
  background: var(--stadium-panel);
  box-shadow: 0 -8px 30px #0007;
}
.stadium-green #world-ui .stadium-room-info .night-context {
  display: grid !important;
  position: static;
  grid-template-columns: 1fr auto;
  grid-column: 1/-1;
  min-height: 0;
  gap: 10px 12px;
  padding: 0 0 14px;
  color: var(--stadium-muted);
  font-size: 12px;
  letter-spacing: .02em;
}
.stadium-green .stadium-room-info .night-context > span:first-child,
.stadium-green .stadium-room-info #networkState { grid-column: 1/-1; }
.stadium-green #world-ui .stadium-room-info .arena-telemetry { display: grid !important; position: static; width: auto; }
.stadium-green #world-ui .stadium-room-info .arena-telemetry button { padding: 10px 0; }
.stadium-green #world-ui .stadium-room-info .arena-telemetry :is(span,small) { color: var(--stadium-muted); font-size: 12px; }
.stadium-green #world-ui .stadium-room-info .arena-telemetry #openingRating { font-size: 27px; }
.stadium-green #world-ui .stadium-room-info .feature { display: block !important; position: static; width: auto; border-color: var(--stadium-line); }
.stadium-green #world-ui .stadium-room-info .feature-title { font-size: 20px; }
.stadium-green #world-ui .stadium-room-info .feature-title small { display: block; font-size: 12px; }
.stadium-green #world-ui .stadium-room-info #videoPause { min-height: 36px; color: var(--stadium-muted); font-size: 12px; }
.stadium-green #world-ui .world-footer {
  left: 28px;
  right: 28px;
  bottom: calc(22px + env(safe-area-inset-bottom));
  padding: 0;
  min-height: 44px;
  height: auto;
  border: 0;
  background: transparent;
  backdrop-filter: none;
  pointer-events: none;
  overflow: visible;
}
.stadium-green #world-ui #inputHint { display: flex !important; flex: none; min-height: 44px; padding: 0 8px; color: var(--stadium-muted); background: #050c1ce6; border: 1px solid var(--stadium-line); border-radius: 4px; letter-spacing: .04em; gap: 6px; }
.stadium-green #world-ui #inputHint button { min-height: 44px; min-width: 36px; color: var(--stadium-ink); }
.stadium-green #world-ui #inputHint > span { font-size: 12px !important; }
.stadium-green #world-ui #padStatus { display: none; }
.stadium-green #world-ui .stadium-angle-rail {
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 4px 2px;
  scrollbar-width: thin;
  scrollbar-color: var(--stadium-line) transparent;
  pointer-events: auto;
}
.stadium-green #world-ui .stadium-angle-rail > button {
  flex: none;
  min-height: 44px;
  padding: 10px 14px;
  white-space: nowrap;
  font-size: 12px;
  letter-spacing: .04em;
  border: 1px solid var(--stadium-line);
  border-radius: 4px;
  background: #071227eb;
  color: var(--stadium-muted);
}
.stadium-green #world-ui .stadium-angle-rail > button:hover { background: #1a3157; color: var(--stadium-ink); }
.stadium-green[data-world-view=everyAngle] .stadium-angle-rail [data-view=everyAngle],
.stadium-green[data-world-view=titleHigh] .stadium-angle-rail [data-view=titleHigh],
.stadium-green[data-world-view=trophyCourt] .stadium-angle-rail [data-view=trophyCourt],
.stadium-green[data-world-view=farVenue] .stadium-angle-rail [data-view=farVenue],
.stadium-green[data-world-view=trophyClose] .stadium-angle-rail [data-view=trophyClose],
.stadium-green[data-world-view=lighting] .stadium-angle-rail [data-view=lighting],
.stadium-green[data-world-view=stadium] .stadium-angle-rail [data-view=stadium],
.stadium-green[data-world-view=overview] .stadium-angle-rail [data-view=overview] {
  color: #080d18;
  background: var(--stadium-yellow);
  border-color: var(--stadium-yellow);
  box-shadow: inset 0 -3px 0 #917300;
}
.stadium-green #world-ui .stadium-world-tools { position: relative; pointer-events: auto; }
.stadium-green #world-ui .stadium-world-tools .settings {
  position: absolute;
  bottom: 52px;
  right: 0;
  width: min(380px,calc(100vw - 56px));
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 16px;
  max-height: calc(100dvh - 150px);
  overflow: auto;
  border: 1px solid var(--stadium-line);
  border-radius: 4px;
  background: var(--stadium-panel);
  box-shadow: 0 -8px 30px #0007;
}
.stadium-green #world-ui .stadium-world-tools .settings button { flex: 1 1 135px; min-height: 44px; padding: 10px; font-size: 12px; border: 1px solid var(--stadium-line); background: #0d1d35; }
.stadium-green #world-ui .stadium-world-tools .settings button:not([hidden]) { display: block; }
.stadium-green #world-ui .stadium-world-tools .settings button:hover { background: #17325a; }
.stadium-green #world-ui .stadium-world-tools .settings label { display: flex; flex: 1 1 100%; min-height: 44px; justify-content: space-between; font-size: 12px; color: var(--stadium-muted); }
.stadium-green #world-ui .stadium-world-tools .settings select { font-size: 14px; background: #071020; }
.stadium-green #world-ui #viewDock:not([hidden]) {
  display: flex !important;
  flex-wrap: wrap;
  align-items: center;
  bottom: 88px;
  left: 28px;
  right: auto;
  width: min(780px,calc(100vw - 56px));
  max-height: min(28dvh,180px);
  overflow: auto;
  padding: 12px 16px;
  gap: 12px;
  background: var(--stadium-panel);
  border-color: var(--stadium-line);
  box-shadow: 0 14px 36px #0006;
}
.stadium-green #world-ui #viewDock h1 { font-size: 23px; }
.stadium-green #world-ui #viewDock p { color: var(--stadium-muted); font-size: 12px; }
.stadium-green #world-ui #viewDock :is(button,a) { min-height: 44px; font-size: 12px; }
.stadium-green #world-ui #tourControls:not([hidden]) { display: flex !important; top: auto; bottom: 86px; max-width: calc(100vw - 56px); border-color: var(--stadium-line); background: var(--stadium-panel); }
.stadium-green #world-ui #tourControls button { min-height: 44px; }
.stadium-green #world-ui .drawer { top: 94px; right: 28px; max-height: calc(100dvh - 180px); background: var(--stadium-panel); border-color: var(--stadium-line); }
.stadium-green #world-ui .drawer p { color: var(--stadium-muted); font-size: 14px; }
.stadium-green #world-ui .drawer dd { color: var(--stadium-muted); font-size: 12px; }
.stadium-green #world-ui .drawer-close { min-height: 44px; padding: 8px 12px; }
.stadium-green #world-ui .drawer .primary { min-height: 44px; }
.stadium-green:not([data-world-view=entrance]) .stadium-room-info,
.stadium-green.touring .stadium-room-info { display: none; }
/* The original world now supplies the menu and status; retire duplicate chrome. */
.stadium-green :is(#rotorField,#pfFinalHud,#pfFinalEvent,#pfLive,#pfAngle,#pfTag,#d32pip,#modePreview,.rc03-utility) { display: none !important; }
.stadium-green #broadcastBug :is(.bb-card,.bb-hint,.bb-live) { display: none !important; }
.stadium-green #world-ui #boardHotspot { display: none !important; }
/* Authored camera beats no longer remove the single surviving navigation layer.
   Explicit UI-off and cinematic entry retain their intended behavior. */
.stadium-green:not(.pf-ui-off):not(.cinematic-active):not(.cinematic-entry):not(.arrival-waiting):not(.launch-title-open) #world-ui :is(header.mast,footer.world-footer,#inputHint,#pilotToggle,#pilotPanel,#viewDock,#tourControls) { opacity: 1 !important; }
.stadium-green:not(.pf-ui-off):not(.cinematic-active):not(.cinematic-entry):not(.arrival-waiting):not(.launch-title-open) #world-ui :is(header.mast,#inputHint,#pilotToggle,#pilotPanel,#viewDock,#tourControls) { pointer-events: auto !important; }
.stadium-green:not(.pf-ui-off):not(.cinematic-active):not(.cinematic-entry):not(.arrival-waiting):not(.launch-title-open) #world-ui footer.world-footer { pointer-events: none !important; }
.stadium-green:not(.pf-ui-off):not(.cinematic-active):not(.cinematic-entry):not(.arrival-waiting):not(.launch-title-open) #world-ui footer.world-footer > * { pointer-events: auto !important; }

@media(max-width: 980px) {
  .stadium-ui #scoreboard { gap: 14px; padding: 10px 16px; }
  .stadium-ui #scoreboard > div { gap: 8px; }
  .stadium-ui .topActions #sound { font-size: 12px; }
  .stadium-ui .topActions #sound::after { content: none; }
  .stadium-green #world-ui .mast { gap: 12px; }
  .stadium-green #world-ui #pilotToggle .pilot-emblem { width: 25px; }
  .stadium-green #world-ui #pilotToggle .pilot-heading small { display: none; }
  .stadium-green #world-ui .opening-title { width: min(34vw,310px); }
}
@media(max-width: 760px) {
  .stadium-arena > header,
  .stadium-green #game-ui > header { top: calc(14px + env(safe-area-inset-top)); left: 16px; right: 16px; }
  .stadium-ui .brand { font-size: 19px; }
  .stadium-ui .brand small { display: none; }
  .stadium-ui .topActions { gap: 6px; }
  .stadium-ui .stadium-home-link { padding: 0 10px; font-size: 12px; }
  .stadium-ui .topActions #sound { padding: 0 10px; font-size: 12px; }
  .stadium-ui #scoreboard { top: 58px; gap: 18px; padding: 8px 18px; min-height: 48px; }
  .stadium-ui #scoreboard b { font-size: 32px; }
  .stadium-ui #readyHint { top: calc(132px + env(safe-area-inset-top)); max-width: calc(100vw - 32px); padding: 8px 12px; }
  .stadium-ui #readyHint b { font-size: 14px; }
  .stadium-ui #readyHint span { font-size: 12px; }
  .stadium-ui #announcement { top: 31%; }
  .stadium-ui #flightHud { left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); height: 110px; }
  .stadium-ui #flightHud .boost { width: 100%; }
  .stadium-ui #flightHud .session { bottom: 84px; display: none; }
  .stadium-ui #flightHud .flightTelemetry { bottom: 59px; }
  .stadium-ui #flightHud .ballStats { bottom: 59px; gap: 16px; }
  .stadium-ui #flightHud .ballStats b { font-size: 23px; }
  .stadium-ui #flightHud #flightSpeed { font-size: 23px; }
  .stadium-ui .stadium-match-tools { left: 16px; bottom: calc(145px + env(safe-area-inset-bottom)); width: min(346px,calc(100vw - 32px)); }
  .stadium-ui .stadium-match-tools > summary { min-height: 40px; }
  .stadium-ui .stadium-match-tools #viewControls { bottom: 40px; }
  .stadium-arena #sceneTravelLaunch { right: 16px; bottom: calc(145px + env(safe-area-inset-bottom)); min-height: 40px; }
  .stadium-green #world-ui .mast { padding: 14px 16px; gap: 8px; flex-wrap: nowrap; }
  .stadium-green #world-ui .wordmark { font-size: 20px; letter-spacing: .1em; }
  .stadium-green #world-ui .wordmark small { font-size: 12px; }
  .stadium-green #world-ui #pilotToggle { display: none; }
  .stadium-green #world-ui .stadium-return-link { min-height: 40px; padding: 0 10px; font-size: 12px; letter-spacing: .04em; }
  .stadium-green #world-ui .stadium-room-nav > summary { min-height: 40px; padding: 0 10px; gap: 8px; font-size: 12px; }
  .stadium-green #world-ui .stadium-room-nav nav { top: 48px; width: min(250px,calc(100vw - 32px)); right: -135px; }
  .stadium-green #world-ui .opening-title { top: 112px; left: 20px; width: 64%; max-width: none; }
  .stadium-green #world-ui .opening-title h1 { font-size: 38px; min-height: 0; }
  .stadium-green #world-ui .opening-title #nightSubtitle { min-height: 0; font-size: 12px !important; max-width: 230px; }
  .stadium-green #world-ui .opening-title .power-court-play { min-height: 44px; font-size: 20px; }
  .stadium-green #world-ui .opening-title .reveal-court { display: none; }
  .stadium-green #world-ui .title-navigation { display: none !important; }
  .stadium-green #world-ui #choices { position: absolute; inset: auto 16px 145px; height: 84px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
  .stadium-green #world-ui #choices .mode { position: relative !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; transform: none; padding: 12px 10px; background: #06152ae6; }
  .stadium-green #world-ui #choices .mode strong { font-size: 20px !important; opacity: 1; letter-spacing: .01em; }
  .stadium-green #world-ui #choices .mode .detail { display: none; }
  .stadium-green #world-ui #choices .mode .index { position: static; padding: 0; border: 0; box-shadow: none; background: none; max-width: none; font-size: 12px !important; }
  .stadium-green #world-ui #orbAction { bottom: 240px; min-height: 40px; }
  .stadium-green #world-ui .stadium-room-info { left: 16px; bottom: calc(81px + env(safe-area-inset-bottom)); }
  .stadium-green #world-ui .club-explore { right: 16px; bottom: calc(81px + env(safe-area-inset-bottom)); width: auto; }
  .stadium-green #world-ui .stadium-room-info > summary,
  .stadium-green #world-ui .club-explore > summary { min-height: 40px; padding: 0 12px; font-size: 12px; gap: 8px; }
  .stadium-green #world-ui .stadium-room-info-panel { width: calc(100vw - 32px); grid-template-columns: 1fr 120px; bottom: 48px; max-height: calc(100dvh - 170px); }
  .stadium-green #world-ui .club-explore-panel { width: min(290px,calc(100vw - 32px)); bottom: 48px; }
  .stadium-green #world-ui .world-footer { left: 16px; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); gap: 8px; flex-wrap: nowrap; }
  .stadium-green #world-ui #inputHint { padding: 0 6px; gap: 4px; }
  .stadium-green #world-ui #inputHint > span { display: none; }
  .stadium-green #world-ui .stadium-world-tools > summary { min-height: 44px; padding: 0 12px; gap: 8px; font-size: 12px; }
  .stadium-green #world-ui .stadium-world-tools > summary svg { display: none; }
  .stadium-green #world-ui .stadium-angle-rail > button { font-size: 12px; padding: 8px 12px; }
  .stadium-green #world-ui .stadium-world-tools .settings { width: min(380px,calc(100vw - 32px)); }
  .stadium-green #world-ui #viewDock:not([hidden]) { left: 16px; right: 16px; width: auto; bottom: 80px; padding: 16px; gap: 12px; max-height: 28dvh; }
  .stadium-green #world-ui #viewDock p { font-size: 12px; }
  .stadium-green #world-ui #tourControls:not([hidden]) { top: auto; bottom: 81px; width: calc(100vw - 32px); max-width: none; flex-wrap: wrap; }
  .stadium-green #world-ui .drawer { top: 80px; left: 16px; right: 16px; width: auto; max-height: calc(100dvh - 100px); }
}
@media(pointer: coarse) {
  .stadium-ui.playing #touch button { min-height: 44px; }
  .stadium-ui.playing #touch { bottom: calc(205px + env(safe-area-inset-bottom)); }
  .stadium-ui #d22Touch .pad { left: 16px; bottom: calc(205px + env(safe-area-inset-bottom)); }
  .stadium-ui #d22Touch .swing { right: 16px; bottom: calc(208px + env(safe-area-inset-bottom)); }
  .stadium-ui #d22Touch .slice { right: 104px; bottom: calc(208px + env(safe-area-inset-bottom)); }
}
@media(max-height: 560px) and (orientation: landscape) {
  .stadium-ui #scoreboard { top: -2px; min-height: 40px; padding: 6px 12px; }
  .stadium-ui #scoreboard b { font-size: 28px; }
  .stadium-ui .topActions .stadium-home-link { font-size: 12px; padding: 0 9px; }
  .stadium-ui #readyHint { top: 70px; max-width: min(400px,calc(100vw - 270px)); }
  .stadium-ui #flightHud { height: 55px; }
  .stadium-ui #flightHud .boost { left: auto; right: 0; transform: none; width: 36%; min-width: 210px; }
  .stadium-ui #flightHud .flightTelemetry { bottom: 0; }
  .stadium-ui #flightHud .ballStats { bottom: 0; left: 100px; right: auto; }
  .stadium-ui .stadium-match-tools { bottom: calc(88px + env(safe-area-inset-bottom)); }
  .stadium-ui .stadium-match-tools #viewControls { max-height: calc(100dvh - 154px); }
  .stadium-arena #sceneTravelLaunch { bottom: 88px; }
  .stadium-ui #resumePanel { top: 68px; max-height: calc(100dvh - 88px); }
  .stadium-green #world-ui .opening-title { top: 94px; width: 27%; }
  .stadium-green #world-ui .opening-title h1 { font-size: 29px; }
  .stadium-green #world-ui .opening-title #nightSubtitle { display: none; }
  .stadium-green #world-ui .opening-title .power-court-play { font-size: 18px; }
  .stadium-green #world-ui #choices { left: 37%; right: 16px; bottom: 116px; height: 74px; }
  .stadium-green #world-ui #choices .mode strong { font-size: 18px !important; }
  .stadium-green #world-ui #orbAction { display: none; }
  .stadium-green #world-ui .stadium-room-info-panel { max-height: calc(100dvh - 160px); }
}
@media(prefers-reduced-motion: reduce) {
  .stadium-ui details > summary svg { transition: none; }
}
@media(forced-colors: active) {
  .stadium-ui :is(details > summary,.stadium-home-link,.stadium-return-link,#scoreboard) { background: Canvas; color: CanvasText; border-color: CanvasText; }
  .stadium-ui :is(button,a,summary,select,input):focus-visible { outline-color: Highlight !important; }
}

/* The official player is compact and visible only on deliberate expansion. */
.stadium-ui #pfRadio{position:fixed!important;right:24px!important;top:90px!important;left:auto!important;bottom:auto!important;z-index:55!important;display:flex!important;align-items:center;gap:5px;padding:5px;border:1px solid #a6bed540;border-radius:24px;background:#050c18ed;color:#dbe7fa;font:700 11px/1 Inter,sans-serif}
.stadium-ui #pfRadio b{padding:0 10px;color:#91a9cc}.stadium-ui #pfRadio button{min-height:32px;padding:8px 12px;border:0;border-radius:20px;background:transparent;color:#d1def3;font:700 11px/1 Inter,sans-serif;cursor:pointer}
.stadium-ui #pfRadio button[aria-pressed=true]{background:#c7fc68;color:#05070a}
.stadium-ui #pfDeck{position:fixed!important;right:24px!important;top:142px!important;bottom:auto!important;left:auto!important;width:310px!important;max-width:calc(100vw - 48px);max-height:calc(100dvh - 234px);overflow:auto;z-index:56!important;padding:12px!important;border:1px solid #85aeff55;border-radius:12px;background:#06122af5;color:#e4edff;font:12px/1.5 Inter,sans-serif;box-shadow:0 14px 40px #0008}
.stadium-ui #pfDeck:not([hidden]){display:block!important;opacity:1!important;pointer-events:auto!important;transform:none!important}
.stadium-ui #pfDeck[hidden],.stadium-ui #pfSpotifyControls[hidden]{display:none!important}
.stadium-ui #pfDeck .top{display:flex;align-items:center;justify-content:space-between;gap:12px}.stadium-ui #pfDeck button{min-height:36px;padding:7px 10px;border:1px solid #9daec055;border-radius:8px;background:#162840;color:#edf4ff;cursor:pointer}
.stadium-ui #pfDeck .host,.stadium-ui #pfDeck iframe{width:100%;height:152px;border:0}.stadium-ui #pfDeck .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.stadium-ui #pfDeck a{color:#c7fc68}.stadium-ui #pfSpotifyStatus{color:#afc5e4;font-size:12px}
.stadium-ui.in-power-court #pfRadio,.stadium-ui.playing #pfRadio{display:none!important}
.stadium-green:not(.pf-ui-off):not(.cinematic-active):not(.cinematic-entry):not(.arrival-waiting):not(.launch-title-open) #pfRadio{opacity:1!important;pointer-events:auto!important;transform:none!important}

/* The persistent glass player uses Spotify's own transport controls. */
#pfDeck .top [data-expand],#pfDeck [data-spotify-play],#pfDeck [data-retry],#pfDeck .pf-spotify-note{display:none!important}
#pfDeck:not([hidden]){background:linear-gradient(135deg,#6685a42b,#06101fe0)!important;backdrop-filter:blur(18px) saturate(1.2);border-color:#99caff5c!important;box-shadow:inset 0 1px #d5eaff50,0 8px 36px #0005!important}
#pfDeck .top{margin-bottom:6px!important}#pfDeck .acts{margin-top:4px!important}#pfDeck .acts a{font-size:11px}#pfDeck .acts button{font-size:11px;min-height:28px}#pfDeck #pfSpotifyStatus{font-size:11px;margin:4px 0 8px}#pfDeck .host{height:152px!important}
@media(max-width:600px){body:not(.launch-title-open) #pfDeck:not([hidden]){top:110px!important;right:12px!important;width:260px!important;max-height:220px;padding:8px!important}#pfDeck .top,#pfDeck #pfSpotifyStatus,#pfDeck .acts{display:none!important}#pfDeck .host{height:152px!important}}

/* Match feedback owns the view; menu taglines and companion panels stay in exploration. */
.stadium-arena.playing :is(#pfTag,#r4xCoach,#clarityCompanion){display:none!important}

/* Shared quiet motion option stays in the existing tools disclosure. */
#stadiumMotion{min-height:44px;padding:10px 14px;border:1px solid #8aabc055;border-radius:8px;background:#0b1b2d;color:#dbeaff;font:700 11px/1.4 Inter,sans-serif;cursor:pointer}#stadiumMotion:focus-visible{outline:2px solid #c7fc68;outline-offset:3px}

/* Green Room has one tool panel and one edge control to restore it. */
.stadium-green :is(#pfCount,#viewModeDock,#sceneTravelLaunch,#pfModeModal,#menuMusic,#orbAction,#worldSound){display:none!important}
.stadium-green #pfUi{position:static!important;display:flex!important;min-height:44px;opacity:1!important;pointer-events:auto!important;border-radius:8px}
.stadium-wake{position:fixed;right:max(18px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));z-index:120;min-height:44px;padding:10px 14px;color:#dceeff;background:#071625e8;border:1px solid #92bada66;border-radius:12px;font:700 11px/1.4 Inter,sans-serif;cursor:pointer}
.stadium-wake[hidden]{display:none!important}
.stadium-wake:focus-visible{outline:2px solid #c7fc68;outline-offset:4px}
.stadium-green:is(.stadium-idle,.pf-ui-off) #world-ui{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.stadium-green:is(.stadium-idle,.pf-ui-off) #world-ui *{pointer-events:none!important}
.stadium-green #world-ui .stadium-world-tools:not([open])>.settings{display:none!important}
.stadium-green #world-ui .stadium-world-tools .settings :is(#viewDock,#tourControls){position:static!important;transform:none!important;width:100%!important;max-width:none!important;max-height:none!important;box-sizing:border-box;flex:1 1 100%;margin:0;padding:12px;overflow:visible}
.stadium-green #world-ui .stadium-world-tools .settings :is(#viewDock,#tourControls)[hidden]{display:none!important}
.stadium-green #world-ui .stadium-world-tools #viewDock h1{font-size:20px}
.stadium-green #world-ui .stadium-world-tools #viewDock .view-controls{display:flex;flex-wrap:wrap;gap:8px}
.stadium-green #world-ui .stadium-world-tools #viewDock p{line-height:1.5}
.stadium-green #world-ui .stadium-room-info{display:block}
.stadium-green #world-ui .drawer a.primary{display:flex;align-items:center;justify-content:center;padding:12px;background:#c7fc68;color:#071208;border-radius:4px;text-decoration:none;font-weight:700}
.stadium-green #world-ui .club-explore-panel button:disabled{display:none}

/* Keep source and transport together; no floating branding covers the stadium. */
body.stadium-green #world-ui .stadium-world-tools :is(#pfRadio,#pfDeck){position:static!important;inset:auto!important;transform:none!important;max-width:100%!important;width:100%!important;box-sizing:border-box;flex:1 1 100%;z-index:auto!important}
body.stadium-green #world-ui .stadium-world-tools #pfRadio{display:flex!important;flex-wrap:wrap;padding:8px;gap:5px;border-radius:8px;letter-spacing:.03em}
body.stadium-green #world-ui .stadium-world-tools #pfRadio b{font:700 11px/1.4 Inter,sans-serif!important;letter-spacing:.1em;padding:0 8px}
body.stadium-green #world-ui .stadium-world-tools #pfRadio button{flex:1 1 auto;min-height:44px;padding:8px;font:700 11px/1.4 Inter,sans-serif!important;border-radius:6px}
body.stadium-green #world-ui .stadium-world-tools #pfRadio .pf-radio-state{position:static;width:100%;max-width:none;text-align:left;padding:4px 8px}
body.stadium-green #world-ui .stadium-world-tools #pfDeck{max-height:none!important;overflow:visible!important;padding:10px!important}
body.stadium-green #world-ui .stadium-world-tools #pfDeck[hidden]{display:none!important}

/* Projection safety: preserve all three choices when a camera approaches them. */
.stadium-green #world-ui #choices .mode{box-sizing:border-box;max-width:270px;max-height:280px;min-height:64px;right:auto;bottom:auto}
.stadium-green #world-ui #choices[data-layout=dock]{position:absolute;inset:auto auto 150px 50%;transform:translateX(-50%);width:min(690px,calc(100vw - 32px));height:90px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stadium-green #world-ui #choices[data-layout=dock] .mode{position:relative!important;inset:auto!important;transform:none!important;width:auto!important;height:auto!important;max-width:none;max-height:none;padding:12px 14px;background:linear-gradient(145deg,#163049e8,#06111ff5);border:1px solid #6999bf88;border-top:2px solid var(--mode-color);border-radius:9px;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;text-align:left;box-shadow:inset 0 1px #c6eaff21,0 5px 18px #0005}
.stadium-green #world-ui #choices .mode[data-mode="0"]{--mode-color:#ffcf00}
.stadium-green #world-ui #choices .mode[data-mode="1"]{--mode-color:#7cbaff}
.stadium-green #world-ui #choices .mode[data-mode="2"]{--mode-color:#c7fc68}
.stadium-green #world-ui #choices[data-layout=dock] .mode .index{position:static!important;font:700 10px/1.2 Inter,sans-serif!important;letter-spacing:.08em;color:var(--mode-color);padding:0;border:0;background:none;box-shadow:none;max-width:none}
.stadium-green #world-ui #choices[data-layout=dock] .mode strong{position:static!important;font:800 24px/1.05 'Barlow Condensed',Impact,sans-serif!important;letter-spacing:.02em;color:#edf5ff;opacity:1}
.stadium-green #world-ui #choices[data-layout=dock] .mode .detail{position:static!important;font:500 10px/1.3 Inter,sans-serif!important;color:#bad1e6;opacity:1;display:block}
.stadium-green #world-ui #choices[data-layout=dock] .mode .detail svg{display:none}
@media(max-width:760px){.stadium-green #world-ui #choices[data-layout=dock]{bottom:140px;height:84px;gap:8px}.stadium-green #world-ui #choices[data-layout=dock] .mode{padding:10px}.stadium-green #world-ui #choices[data-layout=dock] .mode strong{font-size:20px!important}.stadium-green #world-ui #choices[data-layout=dock] .mode .detail{display:none}}
@media(max-height:560px) and (orientation:landscape){.stadium-green #world-ui #choices[data-layout=dock]{bottom:130px;height:68px;left:auto;right:16px;transform:none;width:60%}.stadium-green #world-ui #choices[data-layout=dock] .mode .detail{display:none}}

/* At tablet and in-app widths, score gets its own row below the top actions. */
@media(max-width:1050px){
 .stadium-arena > header #scoreboard,.stadium-green #game-ui > header #scoreboard{top:58px;min-height:54px;gap:18px;padding:8px 20px;max-width:calc(100vw - 32px)}
 .stadium-arena > header #scoreboard b,.stadium-green #game-ui > header #scoreboard b{font-size:32px}
 .stadium-arena #readyHint,.stadium-green #game-ui #readyHint{top:calc(158px + env(safe-area-inset-top));max-width:calc(100vw - 32px);white-space:normal}
 .stadium-arena > header .brand small,.stadium-green #game-ui > header .brand small{display:none}
}
/* The map is still available, but its trigger belongs to Court Controls. */
.stadium-arena .stadium-match-tools #viewControls #sceneTravelLaunch{position:static!important;inset:auto!important;transform:none!important;width:auto;min-height:44px;margin:0;display:block!important;opacity:1!important;pointer-events:auto!important;font-size:12px}

/* Profile and medals remain preserved for the next phase, outside match controls. */
.stadium-arena #medalsButton{display:none!important}
.stadium-ui #help .controller-help{font-size:12px;line-height:1.6;color:#b6cce3;margin:18px 0;padding:12px;border:1px solid #6999bf44;border-radius:6px;background:#0b1b2d}
.stadium-ui #help i{white-space:normal;line-height:1.5}

/* Clear courtside lenses: retain destinations without frosting over the venue. */
.stadium-green :is(#courtsideVault,#openFlightLab){position:fixed!important;left:28px!important;right:auto!important;top:94px!important;width:190px!important;height:auto!important;min-height:44px!important;max-height:64px!important;padding:10px 14px!important;box-sizing:border-box!important;background:linear-gradient(130deg,#b8dfff0d,#08152616)!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border:1px solid #adcfff55!important;border-radius:10px!important;box-shadow:inset 0 1px #e0f2ff55,0 3px 12px #0002!important;color:#e3efff!important;z-index:20!important;text-align:left!important;transform:none!important}
.stadium-green #openFlightLab{top:154px!important}
.stadium-green :is(#courtsideVault,#openFlightLab):hover{border-color:#aaff66!important;background:#246aff24!important}
@media(max-width:600px){.stadium-green :is(#courtsideVault,#openFlightLab){left:16px!important;width:150px!important;font-size:10px!important}.stadium-green #courtsideVault{top:82px!important}.stadium-green #openFlightLab{top:136px!important}}

/* Touch matches have separate header, court and thumb regions. Optional
   telemetry leaves the thumb region explicitly; the live court is untouched. */
@media(pointer:coarse),(any-pointer:coarse){
  .stadium-arena.playing{
    --arena-touch-left:max(12px,env(safe-area-inset-left,0px));
    --arena-touch-right:max(12px,env(safe-area-inset-right,0px));
    --arena-tools-top:calc(124px + env(safe-area-inset-top,0px));
    --arena-touch-reserve:236px;
    --arena-edge-column:min(158px,calc((100dvw - var(--arena-touch-left) - var(--arena-touch-right) - 12px) / 2));
  }
  .stadium-arena.playing > header{
    top:calc(8px + env(safe-area-inset-top,0px));
    left:var(--arena-touch-left);
    right:var(--arena-touch-right);
    min-height:44px;
  }
  .stadium-arena.playing > header .brand{
    display:flex;
    align-items:center;
    min-height:44px;
    font-size:18px;
    letter-spacing:.1em;
  }
  .stadium-arena.playing > header .brand small{display:none}
  .stadium-arena.playing > header .topActions{gap:4px}
  .stadium-arena.playing > header .topActions :is(.stadium-home-link,#sound){
    min-height:44px;
    padding:0 8px;
    font-size:11px;
    letter-spacing:.03em;
    white-space:nowrap;
  }
  .stadium-arena.playing > header #pause{width:44px;min-width:44px;min-height:44px;padding:0}
  .stadium-arena.playing > header #scoreboard{
    top:52px;
    width:min(340px,100%);
    justify-content:space-between;
    min-height:54px;
    max-width:calc(100dvw - var(--arena-touch-left) - var(--arena-touch-right));
    gap:16px;
    padding:8px 16px;
  }
  .stadium-arena.playing .stadium-match-tools{
    top:var(--arena-tools-top);
    bottom:auto;
    left:var(--arena-touch-left);
    width:var(--arena-edge-column);
  }
  .stadium-arena.playing .stadium-match-tools > summary{
    width:100%;
    min-height:44px;
    padding:0 10px;
    gap:6px;
    font-size:11px;
    letter-spacing:.03em;
    white-space:nowrap;
  }
  .stadium-arena.playing .stadium-match-tools > summary svg{width:16px;height:16px}
  .stadium-arena.playing .stadium-match-tools[open] > summary{border-radius:4px 4px 0 0;border-top:1px solid var(--stadium-line)}
  .stadium-arena.playing .stadium-match-tools #viewControls{
    top:48px;
    bottom:auto;
    right:auto;
    width:min(346px,calc(100dvw - var(--arena-touch-left) - var(--arena-touch-right)));
    max-height:max(62px,min(430px,calc(100dvh - var(--arena-tools-top) - 48px - var(--arena-touch-reserve) - env(safe-area-inset-bottom,0px))));
    padding:8px;
    border-radius:0 4px 4px 4px;
    overscroll-behavior:contain;
  }
  .stadium-arena.playing .stadium-match-tools #viewControls label{flex-wrap:wrap;gap:6px}
  .stadium-arena.playing #flightHud{
    top:var(--arena-tools-top);
    bottom:auto;
    left:auto;
    right:var(--arena-touch-right);
    width:var(--arena-edge-column);
    height:44px;
    padding:0;
  }
  .stadium-arena.playing #flightHud :is(.flightTelemetry,.ballStats,.session,.energyLegend){display:none}
  .stadium-arena.playing #flightHud .boost{
    inset:0;
    transform:none;
    width:100%;
    min-width:0;
    height:44px;
    padding:7px 8px;
    border:1px solid var(--stadium-line);
    border-radius:4px;
    background:#071324c9;
  }
  .stadium-arena.playing #flightHud .energyCaption{margin:0 0 5px;line-height:1.2}
  .stadium-arena.playing #flightHud .energyCaption :is(small,b){font-size:11px;letter-spacing:.02em}
  .stadium-arena.playing #flightHud .energyCaption b{font-size:16px}
  .stadium-arena.playing #flightHud .track{height:4px;padding:0}
  .stadium-arena.playing #touch{
    display:flex;
    left:50%;
    right:auto;
    bottom:calc(184px + env(safe-area-inset-bottom,0px));
    transform:translateX(-50%);
    width:max-content;
    height:44px;
    gap:8px;
    justify-content:center;
    flex-wrap:nowrap;
    overflow:visible;
    margin:0;
  }
  .stadium-arena.playing #touch button{flex:none;min-width:64px;min-height:44px;padding:0 10px;font-size:11px;letter-spacing:.03em}
  .stadium-arena.playing #readyHint{
    top:calc(176px + env(safe-area-inset-top,0px));
    max-width:calc(100dvw - var(--arena-touch-left) - var(--arena-touch-right));
    padding:5px 10px;
    white-space:normal;
  }
  .stadium-arena.playing #readyHint b{font-size:12px;line-height:1.2}
  .stadium-arena.playing #readyHint span{display:none}
  .stadium-arena.playing:has(.stadium-match-tools[open]) #readyHint{display:none}
}

/* A short landscape reserves 140 px above the safe bottom for the sticks and
   opens its optional panel in the left column, clear of the central rise row. */
@media(pointer:coarse) and (max-height:560px) and (orientation:landscape),
      (any-pointer:coarse) and (max-height:560px) and (orientation:landscape){
  .stadium-arena.playing{--arena-tools-top:calc(62px + env(safe-area-inset-top,0px));--arena-touch-reserve:140px}
  .stadium-arena.playing > header .topActions{position:static}
  .stadium-arena.playing > header .topActions .stadium-home-link{position:absolute;top:0;right:52px;width:88px;padding:0 4px}
  .stadium-arena.playing > header .topActions #sound{position:absolute;top:0;left:70px;width:72px;padding:0 4px}
  .stadium-arena.playing > header #pause{position:absolute;top:0;right:0}
  .stadium-arena.playing > header #scoreboard{top:0;width:194px;height:44px;min-height:44px;gap:8px;padding:2px 10px}
  .stadium-arena.playing > header #scoreboard > div{flex-direction:column;gap:1px}
  .stadium-arena.playing > header #scoreboard b{font-size:24px;line-height:1}
  .stadium-arena.playing > header #scoreboard small{font-size:11px;line-height:1.1;letter-spacing:.03em}
  .stadium-arena.playing > header #matchType{font-size:11px;line-height:1.3}
  .stadium-arena.playing > header #matchType em{font-size:11px}
  .stadium-arena.playing .stadium-match-tools #viewControls{
    width:min(240px,calc((100dvw - var(--arena-touch-left) - var(--arena-touch-right) - 224px) / 2));
  }
  .stadium-arena.playing #touch{bottom:calc(128px + env(safe-area-inset-bottom,0px))}
  .stadium-arena.playing #readyHint{top:calc(116px + env(safe-area-inset-top,0px));max-width:350px}
  .stadium-arena.playing #announcement{top:calc(108px + env(safe-area-inset-top,0px))}
  .stadium-arena.playing #announcement strong{font-size:24px;line-height:1}
  .stadium-arena.playing #announcement span{font-size:11px;line-height:1.1;margin-top:2px}
}
