/* ============================================================
   TOKENS.CSS — Design Tokens for Mosaic Harmony Festival
   Palette: accent #f14902 · light #f8ead8 · dark #002e3d
            accent-b #f7a324 · white #ffffff · black #2a2a2a
   ============================================================ */

:root {
  /* ── Brand Colors ── */
  --color-teal:          #f14902;
  --color-teal-light:    #f56a30;
  --color-teal-dark:     #c13501;
  --color-teal-50:       rgba(241, 73, 2, 0.08);
  --color-teal-100:      rgba(241, 73, 2, 0.15);

  --color-orange:        #f7a324;
  --color-orange-light:  #facd66;
  --color-orange-dark:   #e08e1f;
  --color-orange-50:     rgba(247, 163, 36, 0.08);
  --color-orange-100:    rgba(247, 163, 36, 0.15);

  --color-navy:          #002e3d;
  --color-navy-light:    #004a5c;
  --color-navy-mid:      #003d52;
  --color-navy-surface:  #001f2b;

  --color-white:         #ffffff;
  --color-black:         #2a2a2a;

  /* ── Surface & Text (Light Theme) ── */
  --color-surface:       #f8ead8;
  --color-surface-alt:   #ffffff;
  --color-surface-dark:  #ecd9c1;

  --color-text:          #2a2a2a;
  --color-text-light:    #4a4a4a;
  --color-text-muted:    #7a7a7a;
  --color-text-inverse:  #ffffff;
  --color-error:         #EF4444;

  /* ── Gradients ── */
  --gradient-hero:        linear-gradient(135deg, rgba(0, 46, 61, 0.90) 0%, rgba(241, 73, 2, 0.60) 60%, rgba(247, 163, 36, 0.50) 100%);
  --gradient-hero-bottom: linear-gradient(to top, var(--color-navy) 0%, transparent 100%);
  --gradient-teal:        linear-gradient(135deg, var(--color-teal) 0%, var(--color-teal-light) 100%);
  --gradient-orange:      linear-gradient(135deg, var(--color-orange) 0%, var(--color-orange-light) 100%);
  --gradient-navy:        linear-gradient(135deg, var(--color-navy) 0%, var(--color-navy-light) 100%);
  --gradient-card-glow:   linear-gradient(135deg, rgba(241, 73, 2, 0.08), rgba(247, 163, 36, 0.08));

  /* ── Typography ── */
  --font-family:           'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-size-xs:          0.75rem;
  --font-size-sm:          0.875rem;
  --font-size-base:        1rem;
  --font-size-lg:          1.125rem;
  --font-size-xl:          1.25rem;
  --font-size-2xl:         1.5rem;
  --font-size-3xl:         1.875rem;
  --font-size-4xl:         2.25rem;
  --font-size-5xl:         3rem;
  --font-size-6xl:         3.75rem;
  --font-size-hero:        clamp(2.5rem, 6vw, 5rem);

  --font-weight-normal:    400;
  --font-weight-medium:    500;
  --font-weight-semibold:  600;
  --font-weight-bold:      700;
  --font-weight-extrabold: 800;

  --line-height-tight:   1.2;
  --line-height-normal:  1.5;
  --line-height-relaxed: 1.75;

  --letter-spacing-tight:  -0.025em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide:   0.05em;
  --letter-spacing-wider:  0.1em;

  /* ── Spacing Scale ── */
  --space-1:   0.25rem;
  --space-2:   0.5rem;
  --space-3:   0.75rem;
  --space-4:   1rem;
  --space-5:   1.25rem;
  --space-6:   1.5rem;
  --space-8:   2rem;
  --space-10:  2.5rem;
  --space-12:  3rem;
  --space-16:  4rem;
  --space-20:  5rem;
  --space-24:  6rem;

  /* ── Border Radius ── */
  --radius-sm:   0.375rem;
  --radius-md:   0.5rem;
  --radius-lg:   0.75rem;
  --radius-xl:   1rem;
  --radius-2xl:  1.5rem;
  --radius-full: 9999px;

  /* ── Shadows ── */
  --shadow-sm:          0 1px 2px rgba(0, 0, 0, 0.05);
  --shadow-md:          0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
  --shadow-lg:          0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.04);
  --shadow-xl:          0 20px 25px -5px rgba(0, 0, 0, 0.10), 0 8px 10px -6px rgba(0, 0, 0, 0.04);
  --shadow-2xl:         0 25px 50px -12px rgba(0, 0, 0, 0.25);
  --shadow-glow-teal:   0 0 20px rgba(241, 73, 2, 0.30);
  --shadow-glow-orange: 0 0 20px rgba(247, 163, 36, 0.30);

  /* ── Transitions ── */
  --transition-fast:   150ms ease;
  --transition-base:   250ms ease;
  --transition-slow:   350ms ease;
  --transition-spring: 500ms cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ── Z-Index Scale ── */
  --z-base:     1;
  --z-dropdown: 10;
  --z-sticky:   20;
  --z-overlay:  30;
  --z-modal:    40;
  --z-toast:    50;

  /* ── Container ── */
  --container-max:     1200px;
  --container-padding: var(--space-6);
}

/* ── Dark Mode — surfaces switch to brand dark, text goes white ── */
html[data-theme="dark"] {
  color-scheme: dark;

  /* Lighter versions of #002e3d for layered contrast */
  --color-surface:      #002e3d;
  --color-surface-alt:  #003d52;
  --color-surface-dark: #001f2b;

  --color-text:         #ffffff;
  --color-text-light:   #c2d9e0;
  --color-text-muted:   #7fa8b5;

  --color-teal-50:      rgba(241, 73, 2, 0.15);
  --color-teal-100:     rgba(241, 73, 2, 0.25);
  --color-orange-50:    rgba(247, 163, 36, 0.12);
  --color-orange-100:   rgba(247, 163, 36, 0.22);

  --gradient-hero-bottom: linear-gradient(to top, var(--color-surface) 0%, transparent 100%);

  --shadow-sm:  0 1px 2px rgba(0, 0, 0, 0.30);
  --shadow-md:  0 4px 6px -1px rgba(0, 0, 0, 0.40), 0 2px 4px -2px rgba(0, 0, 0, 0.25);
  --shadow-lg:  0 10px 15px -3px rgba(0, 0, 0, 0.40), 0 4px 6px -4px rgba(0, 0, 0, 0.25);
  --shadow-xl:  0 20px 25px -5px rgba(0, 0, 0, 0.50), 0 8px 10px -6px rgba(0, 0, 0, 0.25);
  --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.60);
}
