/*
 * Self-hosted brand fonts (replaces fonts.googleapis.com).
 *
 * Why: with Google Fonts + display=swap every page painted its first frame in
 * the system fallback and then swapped to Outfit / Space Grotesk once the
 * font file arrived — headings re-wrapped and the nav shifted once on every
 * load. Now the files are same-origin, preloaded from <head>, cached for a
 * year, and the fallback faces below are metric-matched to Arial (Capsize
 * metrics), so even when a swap does happen nothing visibly moves.
 *
 * Files: @fontsource-variable/outfit 5.x, @fontsource-variable/space-grotesk 5.x
 * (variable weight axis). License: SIL Open Font License 1.1 — see OFL.txt.
 * Family names stay 'Outfit' / 'Space Grotesk' so existing CSS keeps working.
 */

/* Outfit — latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/outfit-latin-ext-wght-normal.woff2) format('woff2-variations'), url(/fonts/outfit-latin-ext-wght-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Outfit — latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url(/fonts/outfit-latin-wght-normal.woff2) format('woff2-variations'), url(/fonts/outfit-latin-wght-normal.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;
}

/* Space Grotesk — vietnamese */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 300 700;
  src: url(/fonts/space-grotesk-vietnamese-wght-normal.woff2) format('woff2-variations'), url(/fonts/space-grotesk-vietnamese-wght-normal.woff2) format('woff2');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}
/* Space Grotesk — latin-ext */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 300 700;
  src: url(/fonts/space-grotesk-latin-ext-wght-normal.woff2) format('woff2-variations'), url(/fonts/space-grotesk-latin-ext-wght-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* Space Grotesk — latin */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-display: swap;
  font-weight: 300 700;
  src: url(/fonts/space-grotesk-latin-wght-normal.woff2) format('woff2-variations'), url(/fonts/space-grotesk-latin-wght-normal.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;
}

/* Metric-matched fallbacks (Arial scaled to the brand fonts' ascent/descent
   and average glyph width; Liberation Sans is Arial-metric-compatible on Linux) — used by --font-heading / --font-body in
   tokens.css while the real file is still loading. */
@font-face {
  font-family: 'Outfit Fallback';
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans');
  ascent-override: 100.18%;
  descent-override: 26.0468%;
  line-gap-override: 0%;
  size-adjust: 99.8204%;
}
@font-face {
  font-family: 'Space Grotesk Fallback';
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans');
  ascent-override: 89.7072%;
  descent-override: 26.6204%;
  line-gap-override: 0%;
  size-adjust: 109.6903%;
}
