/* ============================================================
   REPLAY PAGE — additions only.
   styles.css is loaded first and is untouched. Everything here
   is either new, or a deliberate override scoped to this page.
   ============================================================ */

/* The Wistia iframe needs a positioned parent with a 16:9 box.
   .video-embed in styles.css has the frame treatment but no ratio,
   because on the funnel Vidalytics supplied its own padding box. */
.video-embed {
  position: relative;
  aspect-ratio: 16 / 9;
}

/* Runtime + deadline line directly under the player. Small, quiet,
   factual. This is where the honest scarcity actually lives. */
.video-meta {
  margin: 16px auto 0;
  text-align: center;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: var(--ink-soft);
  max-width: none;
}
.video-meta .dot { color: var(--gold); margin-inline: 0.5em; }

/* The line under the countdown. Deliberately not a warning colour. */
.deadline-line {
  font-size: 0.95rem;
  color: var(--ink-soft);
  max-width: 54ch;
  margin-inline: auto;
}

/* Codex block */
.codex-offer { max-width: 660px; margin: 0 auto; }
.codex-offer p { margin-inline: auto; }
.codex-note {
  margin-top: 16px;
  font-size: 0.76rem;
  color: var(--ink-soft);
  letter-spacing: 0.04em;
}

/* Expired state: give it the same vertical presence as a hero so the
   page does not look broken when it swaps. */
.expired-wrap { padding-block: clamp(70px, 12vw, 150px); }
.expired-wrap .hairline { margin-block: 30px; }

/* [hidden] needs help against the display values set in styles.css. */
[hidden] { display: none !important; }
