/* Launch layer. Turns the approved storyboard shell into the production site.
   Storyboard-only chrome is hidden rather than removed, because the approved
   scene scripts still read those nodes. Do not restyle approved scenes here. */

body.live .controls,
body.live .notes,
body.live .caption,
body.live .community-note { display: none !important; }

body.live .stage { border-bottom: 0; }
body.live .scene:last-of-type { border-bottom: 0; }

/* Production footer */
.site-footer { background: #180d1f; color: #e8d9e6; padding: 54px 4vw 40px; }
.site-footer a { color: inherit; text-underline-offset: 3px; }
.site-footer a:focus-visible { outline: 3px solid #ffbe55; outline-offset: 4px; }
.site-footer-grid {
  display: grid; gap: 34px 40px; max-width: 1180px; margin: 0 auto;
  grid-template-columns: minmax(240px, 1.3fr) repeat(2, minmax(160px, 1fr));
}
.site-footer-grid h2 {
  font-size: 10px; letter-spacing: 2px; text-transform: uppercase;
  color: #ef88b5; margin: 0 0 14px; font-weight: 700;
}
.site-footer-brand img { width: 92px; height: 91px; object-fit: contain; margin-bottom: 14px; }
.site-footer address { font-style: normal; font-size: 14px; line-height: 1.75; }
.site-footer-links { display: flex; flex-direction: column; gap: 9px; font-size: 14px; }
.site-footer-social { display: flex; flex-wrap: wrap; gap: 9px 18px; font-size: 14px; }
.site-footer-legal {
  max-width: 1180px; margin: 36px auto 0; padding-top: 22px;
  border-top: 1px solid #ffffff2b; display: flex; flex-wrap: wrap;
  gap: 10px 26px; justify-content: space-between; font-size: 12px; line-height: 1.7; color: #c5aec4;
}
.site-footer-legal p { margin: 0; max-width: 620px; }
.site-footer-legal nav { display: flex; flex-wrap: wrap; gap: 18px; }

/* Standalone legal pages */
.legal-page { background: #f8efdf; color: #211229; }
.legal-page main { max-width: 820px; margin: 0 auto; padding: 46px 6vw 70px; }
.legal-page h1 { font: 44px/1.1 Georgia, serif; margin: 0 0 10px; }
.legal-page .legal-date { font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: #652b88; margin: 0 0 32px; }
.legal-page h2 { font: 24px/1.25 Georgia, serif; margin: 34px 0 10px; }
.legal-page p, .legal-page li { font-size: 15px; line-height: 1.75; max-width: 70ch; }
.legal-page ul { padding-left: 20px; }
.legal-page .legal-flag {
  background: #ffe7b8; border-left: 4px solid #cf276a; padding: 14px 18px;
  font-size: 14px; line-height: 1.65; margin: 26px 0;
}
.legal-header { padding: 18px 6vw; display: flex; align-items: center; gap: 16px; background: #211229; }
.legal-header img { width: 62px; height: 61px; object-fit: contain; }
.legal-header a { color: #f8efdf; font-size: 13px; text-underline-offset: 3px; }

/* sp.html defines .sp-footer in its own inline <style>, scoped to that page.
   privacy.html reuses the .sp-footer markup but needs the rule here instead
   of duplicating it inline; .legal-footer also sets the background sp.html
   gets for free from its dark <body>, since privacy.html's body is not dark. */
.legal-footer { padding: 26px 7vw; font-size: 12px; color: #d2abc5; background: #211229; }

@media (max-width: 760px) {
  .site-footer-grid { grid-template-columns: 1fr; gap: 28px; }
  .site-footer { padding: 40px 6vw 34px; }
  .legal-page h1 { font-size: 34px; }
}
