:root {
  /* backgrounds */
  --bg-0: #070912;
  --bg-1: #0d1322;
  --bg-2: #141c33;
  --bg-3: #1a2340;

  /* foregrounds */
  --fg-0: #e6ecff;
  --fg-1: #9aa6c7;
  --fg-2: #5b6789;

  /* accents */
  --accent-cyan: #00e5ff;
  --accent-violet: #a855f7;
  --accent-green: #39ff88;
  --accent-glow: rgb(0 229 255 / 0.30);
  --accent-glow-violet: rgb(168 85 247 / 0.25);

  /* borders */
  --border: rgb(255 255 255 / 0.08);
  --border-accent: rgb(0 229 255 / 0.25);

  /* typography */
  --font-sans: ui-sans-serif, system-ui, "Inter", "Segoe UI", Arial, sans-serif;
  --font-mono: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, Consolas, monospace;

  /* type scale */
  --text-xs:   0.75rem;
  --text-sm:   0.875rem;
  --text-base: 1rem;
  --text-lg:   1.125rem;
  --text-xl:   1.25rem;
  --text-2xl:  1.5rem;
  --text-3xl:  2rem;
  --text-4xl:  2.75rem;
  --text-5xl:  3.75rem;

  /* spacing */
  --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;

  /* radii */
  --radius-sm: 6px;
  --radius: 14px;
  --radius-lg: 22px;
  --radius-full: 9999px;

  /* transitions */
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --duration-fast: 150ms;
  --duration-base: 250ms;
  --duration-slow: 400ms;

  /* shadows */
  --shadow-glow: 0 0 24px var(--accent-glow);
  --shadow-card: 0 4px 32px rgb(0 0 0 / 0.5);
}
