:root {
  /* Colors */
  --color-bg:              #09090b;
  --color-surface:         #111113;
  --color-surface-raised:  #18181c;
  --color-border:          #1e1e24;
  --color-border-subtle:   #16161a;

  --color-text-primary:    #ededf0;
  --color-text-secondary:  #6b6b7a;
  --color-text-muted:      #3a3a45;

  --color-accent:          #7c6af7;
  --color-accent-dim:      #5b4dd4;
  --color-accent-glow:     rgba(124, 106, 247, 0.12);
  --color-accent-border:   rgba(124, 106, 247, 0.25);
  --color-accent-text:     rgba(124, 106, 247, 1);

  /* Typography */
  --font-display: 'Inter', system-ui, -apple-system, sans-serif;
  --font-mono:    'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;

  --text-xs:   11px;
  --text-sm:   13px;
  --text-base: 15px;
  --text-lg:   17px;
  --text-xl:   22px;
  --text-2xl:  30px;
  --text-3xl:  42px;
  --text-hero: clamp(48px, 7vw, 92px);

  --leading-tight:  1.15;
  --leading-snug:   1.3;
  --leading-normal: 1.55;
  --leading-loose:  1.75;

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

  /* Spacing (4px grid) */
  --space-1:  4px;
  --space-2:  8px;
  --space-3:  12px;
  --space-4:  16px;
  --space-5:  20px;
  --space-6:  24px;
  --space-8:  32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;

  /* Layout */
  --max-width:    1120px;
  --gutter:       clamp(20px, 5vw, 64px);
  --section-gap:  clamp(80px, 12vw, 148px);
  --nav-height:   60px;

  /* Border radius */
  --radius-sm:   6px;
  --radius-md:   10px;
  --radius-lg:   16px;
  --radius-xl:   24px;
  --radius-full: 9999px;

  /* Shadows */
  --shadow-sm:  0 1px 3px rgba(0,0,0,0.4);
  --shadow-md:  0 4px 16px rgba(0,0,0,0.5);
  --shadow-lg:  0 12px 40px rgba(0,0,0,0.6);
  --shadow-glow: 0 0 40px rgba(124, 106, 247, 0.15);

  /* Motion */
  --ease-out-expo:  cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out:    cubic-bezier(0.4, 0, 0.2, 1);
  --duration-fast:  150ms;
  --duration-base:  220ms;
  --duration-slow:  500ms;
  --duration-enter: 650ms;
}
