/* HammerConnect tokens, generated from tokens.json. Light is the default; set data-theme="dark" on <html> for dark. */
@font-face { font-family: 'Archivo'; font-weight: 500; font-style: normal; font-display: swap; src: url('fonts/archivo-latin-500.woff2') format('woff2'); }
@font-face { font-family: 'Archivo'; font-weight: 700; font-style: normal; font-display: swap; src: url('fonts/archivo-latin-700.woff2') format('woff2'); }
@font-face { font-family: 'Archivo'; font-weight: 800; font-style: normal; font-display: swap; src: url('fonts/archivo-latin-800.woff2') format('woff2'); }
@font-face { font-family: 'Public Sans'; font-weight: 400; font-style: normal; font-display: swap; src: url('fonts/public-sans-latin-400.woff2') format('woff2'); }
@font-face { font-family: 'Public Sans'; font-weight: 500; font-style: normal; font-display: swap; src: url('fonts/public-sans-latin-500.woff2') format('woff2'); }
@font-face { font-family: 'Public Sans'; font-weight: 600; font-style: normal; font-display: swap; src: url('fonts/public-sans-latin-600.woff2') format('woff2'); }
@font-face { font-family: 'Public Sans'; font-weight: 700; font-style: normal; font-display: swap; src: url('fonts/public-sans-latin-700.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-weight: 500; font-style: normal; font-display: swap; src: url('fonts/ibm-plex-mono-latin-500.woff2') format('woff2'); }
:root, [data-theme="light"] {
  --surface: #f4f6f8;
  --surface-raised: #ffffff;
  --ink: #141c22;
  --ink-muted: #52636f;
  --line: #d9e0e6;
  --line-strong: #7a8b97;
  --iron: #1c252c;
  --on-iron: #f4f6f8;
  --steel: #2b4c6f;
  --steel-tint: #e3ecf5;
  --amber: #ffb000;
  --on-amber: #141c22;
  --amber-ink: #7a4e00;
  --amber-tint: #fff1cc;
  --go: #1f6b55;
  --go-tint: #e0f0e9;
  --stop: #a63d2a;
  --stop-tint: #f8e5e0;
  --focus-ring: #2b4c6f;
}
[data-theme="dark"] {
  --surface: #12181d;
  --surface-raised: #1b242b;
  --ink: #f2f5f8;
  --ink-muted: #a9b7c2;
  --line: #2e3b45;
  --line-strong: #6f8393;
  --iron: #1c252c;
  --on-iron: #f4f6f8;
  --steel: #8fb4da;
  --steel-tint: #2b425c;
  --amber: #ffb000;
  --on-amber: #141c22;
  --amber-ink: #ffc94d;
  --amber-tint: #3a2d0a;
  --go: #5bc4a0;
  --go-tint: #17332a;
  --stop: #f2907a;
  --stop-tint: #3a1e18;
  --focus-ring: #ffb000;
}
:root {
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-pill: 999px;
  --touch-min: 44px;
  --control-h: 48px;
  --shadow-card: 0 1px 2px rgba(20,28,34,0.08), 0 4px 12px rgba(20,28,34,0.06);
  --font-display: "Archivo", system-ui, sans-serif;
  --font-sans: "Public Sans", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
}
.display-xl { font-family: var(--font-display); font-size: 40px; line-height: 44px; font-weight: 800; letter-spacing: -0.02em; }
.display-l { font-family: var(--font-display); font-size: 30px; line-height: 34px; font-weight: 800; letter-spacing: -0.015em; }
.title { font-family: var(--font-display); font-size: 22px; line-height: 28px; font-weight: 700; letter-spacing: -0.01em; }
.heading { font-family: var(--font-display); font-size: 18px; line-height: 24px; font-weight: 700; }
.body { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 400; }
.body-s { font-family: var(--font-sans); font-size: 14px; line-height: 20px; font-weight: 400; }
.label { font-family: var(--font-sans); font-size: 13px; line-height: 16px; font-weight: 600; letter-spacing: 0.04em; }
.caption { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 500; }
.figure { font-family: var(--font-mono); font-size: 15px; line-height: 20px; font-weight: 500; }
.nav-title { font-family: var(--font-display); font-size: 17px; line-height: 22px; font-weight: 700; }
.button { font-family: var(--font-display); font-size: 16px; line-height: 20px; font-weight: 700; }
.tab-label { font-family: var(--font-sans); font-size: 11px; line-height: 13px; font-weight: 500; }
