/* ════════════════════════════════════════
   BASE — RESET & GLOBAL
════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: var(--font-b);
  background: radial-gradient(ellipse 100% 60% at 30% 20%, #2d1008 0%, #1a0803 35%, #0d0a08 70%) fixed;
  background-color: #0d0a08;
  color: var(--text-primary);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  transition: var(--theme-transition);
}

[data-theme="light"] body {
  background: var(--bg);
  background-image: none;
}

/* Apply colour transitions to major elements */
#header, .mnav-panel, .show-card, .testi-card, .perf-row,
.sched-hdr, section, footer, .hero-tab, .nl-input,
.slide-content, .badge-dim {
  transition: var(--theme-transition);
}

img   { display: block; max-width: 100%; }
a     { text-decoration: none; color: inherit; }
button { cursor: pointer; font-family: inherit; border: none; background: none; }
ul    { list-style: none; }

/* Layout helpers */
.container { max-width: var(--mxw); margin: 0 auto; padding: 0 clamp(1.25rem, 4vw, 3rem); }
.section    { padding: clamp(4rem, 9vw, 7.5rem) 0; }
.section-sm { padding: clamp(2rem, 4vw, 3.5rem) 0; }

/* ── Typography ── */
.t-xl   { font-family: var(--font-d); font-size: clamp(2.4rem, 5vw, 5rem); font-weight: 600; line-height: 1; letter-spacing: -.02em; }
.t-lg   { font-family: var(--font-d); font-size: clamp(1.7rem, 3vw, 3rem); font-weight: 500; line-height: 1.1; }
.label  { font-size: .68rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; }

/* ── Eyebrow / rule ── */
.eyebrow         { display: inline-flex; align-items: center; gap: .75rem; color: var(--gold); }
.eyebrow::before { content: ''; display: block; width: 26px; height: 1.5px; background: var(--gold); flex-shrink: 0; }
.gold-rule       { display: block; width: 52px; height: 1.5px; background: var(--gold); margin: 1.2rem 0; }

/* ── Section header ── */
.section-hdr    { margin-bottom: clamp(2.5rem, 5vw, 4rem); }
.section-hdr p  { font-size: .95rem; color: var(--text-muted); max-width: 480px; line-height: 1.7; margin-top: .5rem; }

/* ── Scroll reveal ── */
.reveal     { opacity: 0; transform: translateY(22px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
.reveal.in  { opacity: 1; transform: translateY(0); }
.d1 { transition-delay: .07s; }
.d2 { transition-delay: .14s; }
.d3 { transition-delay: .21s; }
