/* ==========================================================================
   AFOLAOLA — Design Tokens
   Ink navy, indigo, mint. Space Grotesk / Inter / IBM Plex Mono.
   ========================================================================== */

:root {
  /* ---- Brand palette (light default is "premium dark-first" per brief) ---- */
  --ink-navy: #0b0e1a;
  --ink-navy-raised: #12162a;
  --ink-navy-line: #1f2440;
  --indigo: #5b5fef;
  --indigo-soft: #7d80f5;
  --mint: #2dd4a7;
  --mint-soft: #5be2c3;
  --amber: #e8b64a;

  --white: #ffffff;
  --paper: #f7f7fb;

  /* On-dark text scale — for sections that stay ink-navy regardless of theme
     (e.g. The AFOLAOLA Standard), which need fixed text tokens rather than
     the theme-switching --color-text tokens below. */
  --on-dark-text: #f4f5fb;
  --on-dark-text-muted: #a9adc8;
  --on-dark-text-soft: #c5c8de;
  --on-dark-text-faint: #7d81a3;

  /* ---- Semantic tokens (dark theme = default premium experience) ---- */
  --color-bg: var(--ink-navy);
  --color-bg-raised: var(--ink-navy-raised);
  --color-bg-overlay: rgba(11, 14, 26, 0.86);
  --color-line: var(--ink-navy-line);
  --color-line-soft: rgba(255, 255, 255, 0.08);

  --color-text: #f4f5fb;
  --color-text-muted: #a9adc8;
  --color-text-faint: #6d7195;

  --color-accent: var(--indigo);
  --color-accent-strong: var(--indigo-soft);
  --color-honor: var(--mint);
  --color-honor-strong: var(--mint-soft);

  --color-focus: var(--mint);

  --shadow-soft: 0 20px 60px rgba(4, 6, 16, 0.45);
  --shadow-card: 0 8px 30px rgba(4, 6, 16, 0.35);
  --shadow-glow-indigo: 0 0 80px rgba(91, 95, 239, 0.25);
  --shadow-glow-mint: 0 0 80px rgba(45, 212, 167, 0.18);

  /* ---- Type ---- */
  --font-display: "Space Grotesk", "Inter", -apple-system, sans-serif;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;

  --fs-hero: clamp(2.75rem, 8vw, 6.5rem);
  --fs-h1: clamp(2.25rem, 5vw, 3.75rem);
  --fs-h2: clamp(1.75rem, 3.4vw, 2.75rem);
  --fs-h3: clamp(1.25rem, 2vw, 1.625rem);
  --fs-lead: clamp(1.125rem, 1.6vw, 1.375rem);
  --fs-body: 1.0625rem;
  --fs-small: 0.9375rem;
  --fs-micro: 0.8125rem;
  --fs-mono-label: 0.8125rem;

  --lh-tight: 1.05;
  --lh-snug: 1.25;
  --lh-normal: 1.55;
  --lh-relaxed: 1.75;

  --ls-tight: -0.02em;
  --ls-normal: 0;
  --ls-wide: 0.08em;
  --ls-wider: 0.16em;

  /* ---- Space ---- */
  --space-3xs: 0.25rem;
  --space-2xs: 0.5rem;
  --space-xs: 0.75rem;
  --space-sm: 1rem;
  --space-md: 1.5rem;
  --space-lg: 2.5rem;
  --space-xl: 4rem;
  --space-2xl: 6rem;
  --space-3xl: 9rem;
  --space-4xl: 12rem;

  --container-max: 1180px;
  --container-narrow: 780px;
  --container-pad: clamp(1.25rem, 5vw, 3rem);

  /* ---- Radius / motion ---- */
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-pill: 999px;

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 180ms;
  --dur-med: 420ms;
  --dur-slow: 900ms;

  --z-nav: 100;
  --z-overlay: 200;
}

/* ---- Light theme override ---- */
[data-theme="light"] {
  --color-bg: var(--paper);
  --color-bg-raised: #ffffff;
  --color-bg-overlay: rgba(247, 247, 251, 0.88);
  --color-line: #e4e4ee;
  --color-line-soft: rgba(11, 14, 26, 0.08);

  --color-text: #12162a;
  --color-text-muted: #4c5170;
  --color-text-faint: #8a8ea8;

  --shadow-soft: 0 20px 60px rgba(20, 24, 50, 0.12);
  --shadow-card: 0 8px 30px rgba(20, 24, 50, 0.08);
  --shadow-glow-indigo: 0 0 80px rgba(91, 95, 239, 0.12);
  --shadow-glow-mint: 0 0 80px rgba(45, 212, 167, 0.14);
}

@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --color-bg: var(--paper);
    --color-bg-raised: #ffffff;
  }
}
