/* ============================================================
   DESIGN TOKENS — 8pt Grid System
   ============================================================ */
:root {
  /* Color Palette */
  --color-bg:         #FFFFFF;
  --color-surface:    #F5F5F3;
  --color-border:     #E8E8E4;
  --color-text-primary:   #111111;
  --color-text-secondary: #595959;
  --color-text-muted:     #6D6D6D;
  --color-accent:     #22962E;
  --color-accent-dark:#00820D;
  --color-accent-light:#c3d59f;
  --color-black:      #000000;
  --color-white:      #FFFFFF;
  --color-overlay:    rgba(0, 0, 0, 0.45);

  /* Typography — Scale */
  --font-sans: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --font-display: 'Inter', 'Helvetica Neue', Arial, sans-serif;

  --text-xs:   0.75rem;   /* 12px */
  --text-sm:   0.875rem;  /* 14px */
  --text-base: 1rem;      /* 16px */
  --text-lg:   1.125rem;  /* 18px */
  --text-xl:   1.25rem;   /* 20px */
  --text-2xl:  1.5rem;    /* 24px */
  --text-3xl:  2rem;      /* 32px */
  --text-4xl:  2.5rem;    /* 40px */
  --text-5xl:  3.5rem;    /* 56px */
  --text-6xl:  5rem;      /* 80px */
  --text-hero: 7.5rem;    /* 120px */

  --leading-tight:  1.1;
  --leading-snug:   1.25;
  --leading-normal: 1.5;
  --leading-relaxed:1.75;

  --weight-regular: 400;
  --weight-medium:  500;
  --weight-semibold:600;
  --weight-bold:    700;
  --weight-black:   900;

  /* 8pt Grid Spacing */
  --space-1:  8px;
  --space-2:  16px;
  --space-3:  24px;
  --space-4:  32px;
  --space-5:  40px;
  --space-6:  48px;
  --space-7:  56px;
  --space-8:  64px;
  --space-10: 80px;
  --space-12: 96px;
  --space-16: 128px;
  --space-20: 160px;
  --space-24: 192px;

  /* Layout */
  --max-width:      1440px;
  --content-width:  1200px;
  --gutter:         48px;
  --gutter-md:      32px;
  --gutter-sm:      24px;

  /* Radius */
  --radius-sm:  4px;
  --radius-md:  8px;
  --radius-lg:  16px;
  --radius-xl:  24px;
  --radius-full: 9999px;

  /* Shadows */
  --shadow-sm:   0 1px 3px rgba(0,0,0,0.08);
  --shadow-md:   0 4px 16px rgba(0,0,0,0.08);
  --shadow-lg:   0 12px 40px rgba(0,0,0,0.12);
  --shadow-xl:   0 24px 64px rgba(0,0,0,0.16);

  /* Transitions */
  --ease-out:   cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out:cubic-bezier(0.45, 0, 0.55, 1);
  --dur-fast:   0.15s;
  --dur-base:   0.3s;
  --dur-slow:   0.6s;
  --dur-slower: 1s;
}

/* ── Dark Mode Tokens ──────────────────────────────────── */
[data-theme="dark"] {
  --color-bg:              #111111;
  --color-surface:         #1C1C1C;
  --color-border:          #2E2E2E;
  --color-text-primary:    #F0F0EE;
  --color-text-secondary:  #A0A0A0;
  --color-text-muted:      #6E6E6E;
  --color-accent:          #00820D;
  --color-accent-dark:     #007d0c;
  --color-accent-light:    #1C381C;
  --color-white:           #FFFFFF;
  --color-black:           #000000;
  --color-overlay:         rgba(0, 0, 0, 0.65);

  --shadow-sm:   0 1px 3px rgba(0,0,0,0.4);
  --shadow-md:   0 4px 16px rgba(0,0,0,0.4);
  --shadow-lg:   0 12px 40px rgba(0,0,0,0.5);
  --shadow-xl:   0 24px 64px rgba(0,0,0,0.6);
}

@media (max-width: 768px) {
  :root {
    --text-hero: 4.5rem;
    --text-6xl:  3rem;
    --text-5xl:  2.25rem;
    --gutter:    var(--gutter-sm);
  }
}

@media (max-width: 430px) {
  :root {
    --text-hero: 3.5rem;   /* 56px — down from 72px at 768px */
    --text-6xl:  2.5rem;   /* 40px */
    --text-5xl:  2rem;     /* 32px */
    --gutter:    20px;
  }
}

@media (max-width: 375px) {
  :root {
    --text-hero: 3rem;
    --text-6xl:  2.25rem;
    --text-5xl:  1.875rem;
    --gutter:    16px;
  }
}
