/* Shared 1920 × 1080 broadcast geometry. Container units follow the player,
   including embedded previews; they do not follow the surrounding page. */
.player-panel, .stage {
  container-type: inline-size;
  --broadcast-safe-inline: 2.916667%;
  --broadcast-caption-clearance: max(10.740741%, calc(var(--broadcast-crawl-height) + 1cqw));
  --broadcast-crawl-height: max(calc(24px / var(--broadcast-scale, 1)), 3.645833cqw);
  --broadcast-crawl-type: max(calc(10px / var(--broadcast-scale, 1)), 1.25cqw);
  --broadcast-crawl-inset: 3.020833cqw;
}
.player-panel .channel-crawl, .stage .status-bar {
  box-sizing: border-box;
  inset: auto 0 0;
  height: var(--broadcast-crawl-height);
  min-height: 0;
  padding: 0 var(--broadcast-crawl-inset);
  gap: 1.25cqw;
  border: 0;
  border-top: 1px solid rgb(255 255 255 / 14%);
  border-radius: 0;
  background: linear-gradient(90deg, rgb(3 10 18 / 68%), rgb(3 10 18 / 52%));
  color: #f5fbff;
  font: 700 var(--broadcast-crawl-type)/1.3 Arial, Helvetica, sans-serif;
}
.player-panel .channel-crawl-brand, .stage .brand { color: #65c9ff; }
.player-panel .channel-crawl-mask, .stage .crawl-mask { height: 1.35em; }
.player-panel .channel-crawl-mask span, .stage .crawl-text { animation-duration: 30s; }
.player-panel { aspect-ratio: 16 / 9; }
.player-panel video {
  position: absolute;
  /* Program video fills the broadcast frame; the crawl overlays its bottom. */
  inset: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
}
.stage .slide img, .stage .slide video {
  width: calc(100% - 2 * var(--broadcast-safe-inline));
  height: calc(100% - var(--broadcast-caption-clearance));
  max-width: none;
  max-height: none;
  object-fit: contain;
  object-position: center top;
}
.live-site .channel-meta { grid-template-columns: minmax(0, 1fr); }
.generated-card-layer {
  gap: 2.5cqw;
  padding: 5.416667cqw 7.8125cqw 7.8125cqw;
}
.generated-card-copy > span { font-size: 1.45cqw; margin-bottom: 1.45cqw; }
.generated-card-primary { gap: 3.54cqw; }
.generated-card-primary > strong { font-size: 9.16cqw; }
.generated-card-primary h3 { max-width: 24ch; font-size: 4.166667cqw; }
.generated-card-primary p { font-size: 1.666667cqw; margin-top: 1.14cqw; }
.generated-card-brand { right: 7.8125cqw; bottom: 6.145833cqw; font-size: .916667cqw; }

/* v3 bulletins already contain their complete broadcast composition. */
.player-panel.bulletin-composed video { inset: 0; width: 100%; height: 100%; object-position: center; }
.generated-card-layer { display: block; padding: 0; background: none; }
.generated-card-layer > svg { display: block; width: 100%; height: 100%; }
.stage .slide:has(> svg) { padding: 0; }
.stage .slide > svg { width: 100%; height: 100%; display: block; }
.stage::before { inset: 0; transform: none; animation: none; background: linear-gradient(135deg, #355780, #192a40 50%, #070e17); }

/* A baked stage and its overlay must share the same normalized crawl edge. */
.stage, .player-panel.bulletin-composed { --broadcast-crawl-height: 3.645833cqw; --broadcast-crawl-type: 1.25cqw; }
