/*
 * tokens.css - the ONLY file that holds literal colors and font families.
 *
 * Palette: client palette note. Theme: docs/style-guide.md rev 1 in the
 * sparks hub repo. Only --palette-up / --palette-down are still provisional.
 * Sites override the SEMANTIC tokens (--color-*, --font-*) in their own
 * css/brand.css, loaded AFTER this file (it stays empty per the style guide).
 * Never edit palette values per site; change them here and re-sync.
 */
/* Fonts: self-hosted, Latin subset (SIL OFL 1.1, see fonts/LICENSE.txt) */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/common/fonts/montserrat-700.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/common/fonts/montserrat-800.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Work Sans";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/common/fonts/worksans-400.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Work Sans";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/common/fonts/worksans-500.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Work Sans";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/common/fonts/worksans-600.woff2) format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --palette-black: #080A0A;
  --palette-charcoal: #0F1212;
  --palette-orange: #DD530C;
  --palette-white: #FFFFFF;
  --palette-offwhite: #FBFBFB;
  --palette-ink: #000000;
  /* PROVISIONAL: market direction only */
  --palette-up: #2E9E5B;
  --palette-down: #C8372D;

  /* Semantic tokens: light page by default (style guide, "Bands") */
  --color-bg: var(--palette-offwhite);
  --color-surface: var(--palette-white);
  --color-text: var(--palette-black);
  --color-text-muted: color-mix(in srgb, var(--palette-black) 68%, transparent);
  --color-border: color-mix(in srgb, var(--palette-black) 12%, transparent);
  --color-accent: var(--palette-orange);
  --color-accent-contrast: var(--palette-white);
  --color-up: var(--palette-up);
  --color-down: var(--palette-down);
  --color-focus: var(--color-accent);

  /* Dark band set: .band--dark, header, footer, hero remap the semantic tokens to these */
  --band-dark-bg: var(--palette-black);
  --band-dark-surface: var(--palette-charcoal);
  --band-dark-text: var(--palette-white);
  --band-dark-text-muted: color-mix(in srgb, var(--palette-offwhite) 70%, transparent);
  --band-dark-border: color-mix(in srgb, var(--palette-white) 16%, transparent);

  /* Typography. Ruling 2026-10-17, see docs/style-guide.md */
  --font-heading: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-sans: "Work Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-button: var(--font-sans);
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --weight-heading: 800;
  --weight-heading-sm: 700;
  --weight-button: 600;
  --tracking-caps: 0.08em;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-lg: 1.25rem;
  --text-xl: 1.5rem;
  --text-2xl: 2rem;
  --text-3xl: 2.75rem;
  --leading-tight: 1.2;
  --leading-normal: 1.6;

  /* Spacing, shape, layout */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.5rem;
  --radius-sm: 0.25rem;
  --radius-md: 0.5rem;
  --radius-card: 0.5rem;
  --max-width: 72rem;
  --gutter: 1rem;
}
