:root {
  /* Palette */
  --color-navy: #0b1f3a;
  --color-navy-light: #14304f;
  --color-slate: #475569;
  --color-slate-light: #cbd5e1;
  --color-surface: #ffffff;
  --color-surface-alt: #f1f5f9;
  --color-surface-tint: #f0fdfa;

  /* Accent: teal, taken from the logo's eyes */
  --color-accent: #2dd4bf;
  --color-accent-hover: #5eead4;
  --color-accent-strong: #0f766e;

  /* Roles */
  --color-text: #0b1f3a;
  --color-text-muted: #475569;
  --color-link: #0f766e;
  --color-on-dark: #ffffff;
  --color-on-dark-muted: #cbd5e1;
  --color-on-accent: #0b1f3a;
  --color-border: #e2e8f0;
  --color-focus: #0f766e;
  --color-focus-on-dark: #5eead4;
  --color-error: #b91c1c;
  --color-success: #15803d;

  /* Type */
  --font-sans: "IBM Plex Sans", "IBM Plex Sans Arabic", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-arabic: "IBM Plex Sans Arabic", "IBM Plex Sans", system-ui, "Segoe UI", Tahoma, sans-serif;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.125rem;
  --text-xl: clamp(1.25rem, 1.15rem + 0.5vw, 1.5rem);
  --text-2xl: clamp(1.5rem, 1.3rem + 1vw, 2.25rem);
  --text-3xl: clamp(2rem, 1.5rem + 2.5vw, 3.5rem);

  /* Space and shape */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-12: 3rem;
  --space-16: 4rem;
  --space-24: 6rem;
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-lg: 1rem;
  --container: 72rem;
  --gutter: clamp(1rem, 4vw, 2rem);
  --tap-target: 2.75rem;
  --shadow-header: 0 2px 12px rgb(11 31 58 / 0.12);

  /* Backgrounds */
  --pattern-grid:
    repeating-linear-gradient(45deg, rgb(255 255 255 / 0.025) 0 1px, transparent 1px 28px),
    repeating-linear-gradient(-45deg, rgb(255 255 255 / 0.025) 0 1px, transparent 1px 28px);
  --mesh-hero:
    radial-gradient(60rem 30rem at 85% -10%, rgb(45 212 191 / 0.14), transparent 70%),
    radial-gradient(50rem 30rem at 0% 110%, rgb(71 85 105 / 0.35), transparent 70%),
    linear-gradient(160deg, var(--color-navy), var(--color-navy-light));
}
