:root {
  /* =============================================
     COLOR — Bolder dark-first palette
     ============================================= */

  --bg-base: #0b0d14;
  --bg-surface: #12141e;
  --bg-elevated: #1a1c28;
  --bg-overlay: rgba(11, 13, 20, 0.85);

  --border-subtle: #1e2234;
  --border-default: #2d3145;
  --border-strong: #3d4259;

  --text-primary: #eae8e5;
  --text-secondary: #a0a3b1;
  --text-tertiary: #6e7186;
  --text-inverse: #0b0d14;

  --accent: #5b8def;
  --accent-hover: #729df5;
  --accent-active: #4a7cde;
  --accent-subtle: rgba(91, 141, 239, 0.10);
  --accent-text: #8ab4ff;

  --success: #63a875;
  --success-subtle: rgba(99, 168, 117, 0.12);
  --warning: #d4a43e;
  --warning-subtle: rgba(212, 164, 62, 0.12);
  --error: #d4636a;
  --error-subtle: rgba(212, 99, 106, 0.12);

  /* =============================================
     TYPOGRAPHY
     ============================================= */

  --font-heading: "Space Grotesk", system-ui, sans-serif;
  --font-heading-bold: "Space Grotesk", system-ui, sans-serif;
  --font-body: "DM Sans", system-ui, -apple-system, sans-serif;
  --font-mono: "Inconsolata", ui-monospace, monospace;

  --text-xs: clamp(0.7rem, 0.65rem + 0.25vw, 0.75rem);
  --text-sm: clamp(0.8rem, 0.75rem + 0.25vw, 0.875rem);
  --text-base: clamp(0.9rem, 0.85rem + 0.25vw, 1rem);
  --text-lg: clamp(1.05rem, 0.95rem + 0.5vw, 1.2rem);
  --text-xl: clamp(1.25rem, 1rem + 1.25vw, 1.5rem);
  --text-2xl: clamp(1.5rem, 1.1rem + 2vw, 2rem);
  --text-3xl: clamp(1.85rem, 1.2rem + 3.25vw, 2.75rem);
  --text-4xl: clamp(2.25rem, 1.3rem + 4.75vw, 3.5rem);
  --text-hero: clamp(2.75rem, 1.5rem + 6vw, 4.5rem);

  --leading-tight: 1.1;
  --leading-snug: 1.25;
  --leading-normal: 1.55;
  --leading-relaxed: 1.7;

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

  /* =============================================
     SPACING — 4px base
     ============================================= */

  --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;
  --space-section: clamp(3rem, 2rem + 5vw, 6rem);

  /* =============================================
     RADII
     ============================================= */

  --radius-sm: 4px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-full: 9999px;

  /* =============================================
     SHADOWS
     ============================================= */

  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 4px 24px rgba(0, 0, 0, 0.35);
  --shadow-xl: 0 8px 40px rgba(0, 0, 0, 0.4);
  --shadow-accent: 0 4px 20px rgba(91, 141, 239, 0.2);

  /* =============================================
     TRANSITIONS
     ============================================= */

  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.45, 0, 0.55, 1);

  --duration-fast: 120ms;
  --duration-normal: 200ms;
  --duration-slow: 350ms;

  /* =============================================
     LAYOUT
     ============================================= */

  --container-sm: 640px;
  --container-md: 840px;
  --container-lg: 1100px;
  --container-xl: 1280px;
  /* Catalogue hub + component listings: wide but capped so lines stay readable on ultrawide */
  --container-catalogue-max: min(1560px, calc(100vw - 2 * var(--space-6)));
  --header-height: 52px;
}
