/* ============================================================
   TOKENS.CSS — Design Tokens for Mosaic Harmony Festival
   Single source of truth for all design primitives.
   ============================================================ */

:root {
  /* ── Color Palette ── */
  --color-teal:          #f14902;
  --color-teal-light:    #f56a30;
  --color-teal-dark:     #c13501;
  --color-teal-50:       #fce8e5;
  --color-teal-100:      #f9c5bd;

  --color-orange:        #f7a324;
  --color-orange-light:  #facd66;
  --color-orange-dark:   #e08e1f;
  --color-orange-50:     #fff6e0;
  --color-orange-100:    #ffe8b3;

  --color-navy:          #002e3d;
  --color-navy-light:    #004a5c;
  --color-navy-mid:      #00394c;
  --color-navy-surface:  #001f2b;

  --color-white:         #FFFFFF;
  --color-surface:       #f8ead8;
  --color-surface-alt:   #fff5ee;
  --color-surface-dark:  #e9e0d5;

  --color-text:          #1E293B;
  --color-text-light:    #475569;
  --color-text-muted:    #94A3B8;
  --color-text-inverse:  #F8FAFC;

  /* ── Gradients ── */
  --gradient-hero:       linear-gradient(135deg, rgba(15, 23, 42, 0.92) 0%, rgba(13, 148, 136, 0.75) 50%, rgba(249, 115, 22, 0.6) 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(13, 148, 136, 0.1), rgba(249, 115, 22, 0.1));

  /* ── Typography ── */
  --font-family:         'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --font-size-xs:        0.75rem;    /* 12px */
  --font-size-sm:        0.875rem;   /* 14px */
  --font-size-base:      1rem;       /* 16px */
  --font-size-lg:        1.125rem;   /* 18px */
  --font-size-xl:        1.25rem;    /* 20px */
  --font-size-2xl:       1.5rem;     /* 24px */
  --font-size-3xl:       1.875rem;   /* 30px */
  --font-size-4xl:       2.25rem;    /* 36px */
  --font-size-5xl:       3rem;       /* 48px */
  --font-size-6xl:       3.75rem;    /* 60px */
  --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;   /* 4px */
  --space-2:   0.5rem;    /* 8px */
  --space-3:   0.75rem;   /* 12px */
  --space-4:   1rem;      /* 16px */
  --space-5:   1.25rem;   /* 20px */
  --space-6:   1.5rem;    /* 24px */
  --space-8:   2rem;      /* 32px */
  --space-10:  2.5rem;    /* 40px */
  --space-12:  3rem;      /* 48px */
  --space-16:  4rem;      /* 64px */
  --space-20:  5rem;      /* 80px */
  --space-24:  6rem;      /* 96px */

  /* ── Border Radius ── */
  --radius-sm:   0.375rem;  /* 6px */
  --radius-md:   0.5rem;    /* 8px */
  --radius-lg:   0.75rem;   /* 12px */
  --radius-xl:   1rem;      /* 16px */
  --radius-2xl:  1.5rem;    /* 24px */
  --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.1), 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(13, 148, 136, 0.3);
  --shadow-glow-orange: 0 0 20px rgba(249, 115, 22, 0.3);

  /* ── 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);
}
