/* ==========================================================================
   Nimus design tokens — GENERATED from design-system/tokens.json.
   Do not hand-edit values here; change tokens.json and regenerate, or
   override a variable in site.css if you need a one-off.
   ========================================================================== */

:root {
  color-scheme: light;
  --font-sans: "Hanken Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --space-24: 96px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-full: 9999px;
  --container: 1120px;
  --measure: 64ch;
  --display-xl-size: 80px; --display-xl-line: 84px; --display-xl-weight: 300; --display-xl-tracking: -0.03em;
  --display-size: 56px; --display-line: 62px; --display-weight: 300; --display-tracking: -0.025em;
  --heading-1-size: 48px; --heading-1-line: 56px; --heading-1-weight: 300; --heading-1-tracking: -0.02em;
  --heading-2-size: 32px; --heading-2-line: 40px; --heading-2-weight: 400; --heading-2-tracking: -0.01em;
  --heading-3-size: 24px; --heading-3-line: 32px; --heading-3-weight: 400; --heading-3-tracking: -0.005em;
  --body-lg-size: 21px; --body-lg-line: 34px; --body-lg-weight: 400;
  --body-size: 18px; --body-line: 30px; --body-weight: 400;
  --small-size: 16px; --small-line: 26px; --small-weight: 400;
  --label-size: 14px; --label-line: 20px; --label-weight: 500; --label-tracking: 0.01em;
  --button-size: 16px; --button-line: 24px; --button-weight: 600; --button-tracking: 0.005em;
  --stat-size: 64px; --stat-line: 68px; --stat-weight: 300; --stat-tracking: -0.03em;
  --wordmark-size: 168px; --wordmark-line: 160px; --wordmark-weight: 400; --wordmark-tracking: -0.045em;
  --paper: #f8faff;
  --surface: #ffffff;
  --surface-alt: #eef2fb;
  --line: #dde3ef;
  --line-strong: #8c93a6;
  --ink: #080708;
  --ink-muted: #565b6b;
  --blue: #3772ff;
  --action: #2a5ff0;
  --action-hover: #1f4fd6;
  --link: #2a5ff0;
  --blue-soft: #ebf0ff;
  --red: #df2935;
  --red-text: #c41f2b;
  --red-soft: #fdecee;
  --on-accent: #ffffff;
  --night: #080708;
  --night-raised: #16151a;
  --night-line: #2a2930;
  --on-night: #f8faff;
  --on-night-muted: #a4a9b8;
  --ink-fixed-muted: #565b6b;
  --success: #0f7a55;
  --shadow-sm: 0 1px 2px #0807080d;
  --shadow-lg: 0 12px 32px -8px #08070829, 0 2px 6px #0807080f;
  --focus-ring: 0 0 0 2px #f8faff, 0 0 0 4px #3772ff;
}

/* Dark theme: only when the visitor switches it on with the header toggle.
   Light is the default for everyone, whatever their device setting. */
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #080708;
  --surface: #121116;
  --surface-alt: #0e0d11;
  --line: #26252c;
  --line-strong: #6b6f7d;
  --ink: #f8faff;
  --ink-muted: #a4a9b8;
  --blue: #3772ff;
  --action: #2a5ff0;
  --action-hover: #1f4fd6;
  --link: #6f9bff;
  --blue-soft: #0f1a38;
  --red: #df2935;
  --red-text: #ff5a63;
  --red-soft: #2a0b0e;
  --on-accent: #ffffff;
  --night: #111015;
  --night-raised: #1b1a20;
  --night-line: #302f37;
  --on-night: #f8faff;
  --on-night-muted: #a4a9b8;
  --ink-fixed-muted: #565b6b;
  --success: #4cd39b;
  --shadow-sm: 0 1px 2px #00000080;
  --shadow-lg: 0 12px 32px -8px #000000cc;
  --focus-ring: 0 0 0 2px #080708, 0 0 0 4px #6f9bff;
}

/* Type styles as utility classes */
.t-display-xl { font-size: var(--display-xl-size); line-height: var(--display-xl-line); font-weight: var(--display-xl-weight); letter-spacing: var(--display-xl-tracking); }
.t-display { font-size: var(--display-size); line-height: var(--display-line); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); }
.t-heading-1 { font-size: var(--heading-1-size); line-height: var(--heading-1-line); font-weight: var(--heading-1-weight); letter-spacing: var(--heading-1-tracking); }
.t-heading-2 { font-size: var(--heading-2-size); line-height: var(--heading-2-line); font-weight: var(--heading-2-weight); letter-spacing: var(--heading-2-tracking); }
.t-heading-3 { font-size: var(--heading-3-size); line-height: var(--heading-3-line); font-weight: var(--heading-3-weight); letter-spacing: var(--heading-3-tracking); }
.t-body-lg { font-size: var(--body-lg-size); line-height: var(--body-lg-line); font-weight: var(--body-lg-weight); }
.t-body { font-size: var(--body-size); line-height: var(--body-line); font-weight: var(--body-weight); }
.t-small { font-size: var(--small-size); line-height: var(--small-line); font-weight: var(--small-weight); }
.t-label { font-size: var(--label-size); line-height: var(--label-line); font-weight: var(--label-weight); letter-spacing: var(--label-tracking); }
.t-button { font-size: var(--button-size); line-height: var(--button-line); font-weight: var(--button-weight); letter-spacing: var(--button-tracking); }
.t-stat { font-size: var(--stat-size); line-height: var(--stat-line); font-weight: var(--stat-weight); letter-spacing: var(--stat-tracking); }
.t-wordmark { font-size: var(--wordmark-size); line-height: var(--wordmark-line); font-weight: var(--wordmark-weight); letter-spacing: var(--wordmark-tracking); }
