:root {
  /* BMG primary palette: official HEX values from the brand guideline.
     Limelight is reserved for primary actions, progress and focus. */
  --bmg-midnight: #14394c;
  --bmg-limelight: #def154;
  --bmg-vinyl: #303030;
  --bmg-platinum: #d9d9d9;
  --bmg-silver: #a6a6a6;
  --bmg-diamond: #eeeeee;
  --color-bg: var(--bmg-midnight);
  --color-bg-elevated: var(--bmg-vinyl);
  --color-surface: var(--bmg-midnight);
  --color-surface-alt: var(--bmg-vinyl);
  --color-border: var(--bmg-silver);
  --color-text: var(--bmg-diamond);
  --color-text-muted: var(--bmg-silver);
  --color-primary: var(--bmg-limelight);
  --color-primary-dark: var(--bmg-platinum);
  --color-primary-contrast: var(--bmg-vinyl);
  --color-accent: var(--bmg-platinum);
  /* Functional status colors remain distinct from decorative brand colors. */
  --color-success: #3ecf8e;
  --color-warning: #f5b544;
  --color-danger: #ff8296;
  --color-focus: var(--bmg-limelight);

  /* Light surfaces used on cards inside dark shell (landing/participant on phones benefit from light too) */
  --color-on-light-bg: var(--bmg-diamond);
  --color-on-light-text: var(--bmg-vinyl);

  /* Typography */
  --font-family: 'Segoe UI', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
  --font-size-xs: 0.8rem;
  --font-size-sm: 0.925rem;
  --font-size-base: 1rem;
  --font-size-lg: 1.15rem;
  --font-size-xl: 1.5rem;
  --font-size-2xl: 2rem;
  --font-size-3xl: 2.75rem;
  --font-size-4xl: 3.5rem;
  --line-height-tight: 1.15;
  --line-height-base: 1.5;

  /* Spacing scale */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4rem;

  /* Shape */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --shadow-md: 0 8px 24px rgba(0, 0, 0, 0.35);
  --shadow-lg: 0 16px 48px rgba(0, 0, 0, 0.45);

  /* Motion */
  --transition-fast: 150ms ease;
  --transition-base: 260ms ease;
  --touch-target: 44px;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --transition-fast: 0ms;
    --transition-base: 0ms;
  }
}
