/* ============================================
   DESIGN TOKENS — Portfolio Design System
   ============================================ */

:root {
  /* ── Colors ── */
  --bg-primary:       #0a0a0f;
  --bg-secondary:     #12121a;
  --bg-tertiary:      #1a1a2e;
  --bg-nav:           rgba(10, 10, 15, 0.85);

  --accent-primary:   #64ffda;
  --accent-secondary: #7b61ff;
  --accent-gradient:  linear-gradient(135deg, #64ffda, #7b61ff);

  --text-primary:     #e2e8f0;
  --text-secondary:   #8892b0;
  --text-heading:     #ccd6f6;
  --text-accent:      #64ffda;

  --glass-bg:         rgba(255, 255, 255, 0.03);
  --glass-bg-hover:   rgba(255, 255, 255, 0.06);
  --glass-border:     rgba(255, 255, 255, 0.08);
  --glass-border-hover: rgba(100, 255, 218, 0.15);

  --shadow-sm:        0 2px 8px rgba(0, 0, 0, 0.3);
  --shadow-md:        0 4px 20px rgba(0, 0, 0, 0.4);
  --shadow-lg:        0 8px 40px rgba(0, 0, 0, 0.5);
  --shadow-glow:      0 0 20px rgba(100, 255, 218, 0.15);
  --shadow-glow-lg:   0 0 40px rgba(100, 255, 218, 0.2);

  /* ── Typography ── */
  --font-heading:     'Outfit', sans-serif;
  --font-body:        'Inter', sans-serif;
  --font-mono:        'JetBrains Mono', monospace;

  --fs-xs:    0.75rem;    /* 12px */
  --fs-sm:    0.875rem;   /* 14px */
  --fs-base:  1rem;       /* 16px */
  --fs-md:    1.125rem;   /* 18px */
  --fs-lg:    1.25rem;    /* 20px */
  --fs-xl:    1.5rem;     /* 24px */
  --fs-2xl:   2rem;       /* 32px */
  --fs-3xl:   2.5rem;     /* 40px */
  --fs-4xl:   3.5rem;     /* 56px */
  --fs-hero:  clamp(2.5rem, 6vw, 5rem);

  --fw-regular:   400;
  --fw-medium:    500;
  --fw-semibold:  600;
  --fw-bold:      700;
  --fw-extrabold: 800;

  --lh-tight:   1.1;
  --lh-snug:    1.3;
  --lh-normal:  1.6;
  --lh-relaxed: 1.8;

  --ls-tight:   -0.02em;
  --ls-normal:  0;
  --ls-wide:    0.05em;
  --ls-wider:   0.1em;

  /* ── Spacing (8px grid) ── */
  --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 */
  --space-32: 8rem;      /* 128px */

  /* ── Layout ── */
  --max-width:     1200px;
  --nav-height:    70px;
  --section-py:    var(--space-24);
  --border-radius-sm:  6px;
  --border-radius-md:  12px;
  --border-radius-lg:  20px;
  --border-radius-xl:  28px;

  /* ── Transitions ── */
  --transition-fast:    150ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-base:    250ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-slow:    400ms cubic-bezier(0.4, 0, 0.2, 1);
  --transition-spring:  500ms cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* ── Responsive Adjustments ── */
@media (max-width: 768px) {
  :root {
    --section-py:   var(--space-16);
    --nav-height:   60px;
  }
}

@media (max-width: 480px) {
  :root {
    --section-py:   var(--space-12);
  }
}
