/* Impress Designs brand tokens — the machine-readable distribution of the brand
 * standard. Consume these custom properties; a hard-coded copy of a colour does
 * not follow when the token changes. The standard itself is prose, in the spec:
 * https://github.com/impressdesigns/spec/blob/main/brand/colors.md
 */

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/inter/web/InterVariable.woff2") format("woff2");
}

@font-face {
  font-family: Inter;
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/inter/web/InterVariable-Italic.woff2") format("woff2");
}

:root {
  /* The approved palette. One token per approved colour, one value per token.
   * RGB and CMYK renderings are omitted deliberately: RGB restates the hex, and a
   * CMYK build is negotiated with the printer per press and substrate. Neither is
   * an invariant worth freezing here. */
  --blue: #194289; /* Impress Blue, Pantone 7687 C */
  --blue-dark: #002f6d; /* Impress Deep Blue, Pantone 294 C */
  --blue-pale: #dce3ec; /* Impress Pale Blue, Pantone 656 C */
  --ink: #021e42; /* Impress Navy, Pantone 282 C */
  --ink-soft: #53555a; /* Impress Medium Gray, Pantone Cool Gray 11 C */
  --line: #d9d8d6; /* Impress Light Gray, Pantone Cool Gray 1 C */
  --charcoal: #25282a; /* Impress Charcoal, Pantone 426 C */
  --yellow: #ffd100; /* Impress Bright Yellow, Pantone 109 C */
  --yellow-pale: #f6e0a4; /* Impress Pale Yellow, Pantone 7401 C */
  --error: #c0042f; /* Impress Bright Red, Pantone 200 C */
  --error-pale: #f5d9df; /* Impress Pale Red, Pantone 705 C */
  --success: #007934; /* Impress Bright Green, Pantone 356 C */
  --success-pale: #cfdfd6; /* Impress Pale Green, Pantone 621 C */
  --white: #ffffff; /* White — the substrate or digital white, not a spot ink */

  /* Channel triplets for the colours that get composited with alpha. CSS cannot
   * decompose a hex custom property, so `rgb(var(--blue-rgb) / 12%)` has no
   * formulation that reads `--blue` directly. These are derived from the values
   * above and must be changed with them. White is here for the same reason the
   * others are: a scrim, a hairline, or a translucent chip over a dark branded
   * surface is white at a fraction of an alpha, and without the triplet every
   * consumer writes `rgb(255 255 255 / x%)` by hand. */
  --blue-rgb: 25 66 137;
  --blue-pale-rgb: 220 227 236;
  --ink-rgb: 2 30 66;
  --yellow-rgb: 255 209 0;
  --white-rgb: 255 255 255;

  /* Aliases that carry a rule rather than a second name for a colour. */

  /* A required control's boundary is Impress Medium Gray, never Light Gray: --line is
   * 1.42:1 on white and cannot be the only thing marking an input's edge. */
  --control-border: var(--ink-soft);

  /* There is deliberately no single focus colour. Each component picks the token
   * for the surface it actually sits on. */
  --focus-on-light: var(--blue);
  --focus-on-dark: var(--yellow);

  /* Inter is packaged above — the complete upstream release, not a subset, so the
   * fallbacks are for a failed load rather than for uncovered characters. Segoe UI
   * is the first Windows fallback, system-ui the platform default, sans-serif the
   * final generic. */
  --font-sans: Inter, "Segoe UI", system-ui, sans-serif;
}

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/inter-latin/InterVariable-Latin.woff2") format("woff2");
  unicode-range: U+0000, U+0020-007E, U+00A0-00AC, U+00AE-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0304, U+0306-030A, U+030C, U+030F, U+0313, U+0315, U+031B, U+0323, U+0326-0328, U+032C, U+0337-0338, U+0342-0343, U+0346-036F, U+2000-200B, U+2010-2027, U+202F-2055, U+2057, U+205F, U+2074, U+20AC, U+2122, U+2190-2193, U+2197, U+2212, U+FEFF;
}

@font-face {
  font-family: Inter;
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/inter-latin/InterVariable-Italic-Latin.woff2") format("woff2");
  unicode-range: U+0000, U+0020-007E, U+00A0-00AC, U+00AE-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0300-0304, U+0306-030A, U+030C, U+030F, U+0313, U+0315, U+031B, U+0323, U+0326-0328, U+032C, U+0337-0338, U+0342-0343, U+0346-036F, U+2000-200B, U+2010-2027, U+202F-2055, U+2057, U+205F, U+2074, U+20AC, U+2122, U+2190-2193, U+2197, U+2212, U+FEFF;
}
