/* ==========================================================================
   DESIGN TOKENS
   Single source of truth for the visual language of the site.
   ========================================================================== */

:root {
  /* ---- Color: surfaces ---- */
  --bg: #05070d;
  --bg-elevated: #0a0f1c;
  --surface: #0d1526;
  --surface-2: #131f36;
  --surface-glass: rgba(16, 24, 42, 0.55);
  --border: rgba(255, 255, 255, 0.08);
  --border-strong: rgba(255, 255, 255, 0.16);

  /* ---- Color: text ---- */
  --text: #eef2f8;
  --text-muted: #93a0b5;
  --text-faint: #5b6478;

  /* ---- Color: brand ----
     A calm, tailored blue family built around #4F6A9B / #6284C1.
     No neon — every value here should read as brushed metal,
     not as a glow-stick. */
  --accent: #6284c1;         /* primary — links, active states, glow */
  --accent-light: #93aad9;   /* hover lift, highlighted text */
  --accent-dim: #4f6a9b;     /* secondary — gradients, mid-tone */
  --accent-deep: #33456b;    /* deep — gradient anchor, shaded edges */
  --accent-ink: #0d1526;     /* text-on-accent */
  --accent-soft: rgba(98, 132, 193, 0.14);
  --accent-soft-strong: rgba(98, 132, 193, 0.28);
  --accent-glow: rgba(147, 170, 217, 0.65);
  --warm: #c9a668;           /* single reserved "spark" — used once, sparingly */
  --warm-soft: rgba(201, 166, 104, 0.16);

  /* ---- Gradients ---- */
  --gradient-brand: linear-gradient(135deg, #93aad9 0%, #6284c1 48%, #4f6a9b 100%);
  --gradient-brand-deep: linear-gradient(160deg, #4f6a9b 0%, #33456b 100%);
  --gradient-mesh: radial-gradient(60% 50% at 15% 10%, rgba(98, 132, 193, 0.15), transparent 60%),
                   radial-gradient(50% 45% at 85% 20%, rgba(79, 106, 155, 0.16), transparent 60%),
                   radial-gradient(60% 55% at 50% 100%, rgba(51, 69, 107, 0.16), transparent 65%);

  /* ---- Type ---- */
  --font-display: 'Vazirmatn', 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;

  --fs-xs: clamp(0.72rem, 0.68rem + 0.15vw, 0.8rem);
  --fs-sm: clamp(0.84rem, 0.8rem + 0.2vw, 0.95rem);
  --fs-base: clamp(0.98rem, 0.94rem + 0.2vw, 1.05rem);
  --fs-md: clamp(1.1rem, 1.02rem + 0.35vw, 1.3rem);
  --fs-lg: clamp(1.4rem, 1.25rem + 0.7vw, 1.9rem);
  --fs-xl: clamp(1.9rem, 1.55rem + 1.5vw, 2.75rem);
  --fs-2xl: clamp(2.4rem, 1.9rem + 2.2vw, 3.75rem);
  --fs-hero: clamp(2.75rem, 2rem + 4vw, 5.5rem);

  --lh-tight: 1.22;
  --lh-snug: 1.35;
  --lh-normal: 1.7;

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

  /* ---- Radius ---- */
  --radius-sm: 10px;
  --radius-md: 16px;
  --radius-lg: 24px;
  --radius-full: 999px;

  /* ---- Shadow / elevation ---- */
  --shadow-sm: 0 4px 16px rgba(0, 0, 0, 0.28);
  --shadow-md: 0 12px 40px rgba(0, 0, 0, 0.35);
  --shadow-lg: 0 24px 70px rgba(0, 0, 0, 0.45);
  --shadow-glow: 0 0 0 1px rgba(98, 132, 193, 0.3), 0 0 44px rgba(98, 132, 193, 0.2);
  --shadow-glow-soft: 0 0 0 1px rgba(98, 132, 193, 0.16), 0 8px 30px rgba(15, 20, 35, 0.5);

  /* ---- Motion ---- */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --dur-fast: 0.25s;
  --dur-base: 0.5s;
  --dur-slow: 0.9s;

  /* ---- Layout ---- */
  --container: 1180px;
  --nav-height: 76px;
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-fast: 0.001s;
    --dur-base: 0.001s;
    --dur-slow: 0.001s;
  }
}
