/* QP Holdings — self-hosted Noto Sans with FOUT-friendly size-adjust.
 *
 * Three subset files cover the languages we ship: latin (English numerals,
 * UI), latin-ext (Vietnamese diacritics on roman letters), and Vietnamese
 * (full Vietnamese script). Each subset is a single woff2 saved to the
 * theme so we don't depend on fonts.gstatic.com, which was the largest
 * remaining LCP/CLS culprit on slow networks.
 *
 * `size-adjust` and metric overrides (ascent/descent/line-gap) are tuned so
 * the system-ui fallback during `font-display: swap` matches the rendered
 * Noto Sans metrics closely enough to avoid layout shifts when the swap
 * happens. Values are taken from Google Fonts' own metric overrides.
 */

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('noto-sans-latin-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: 'Noto Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('noto-sans-latin-ext-400.woff2') format('woff2');
  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Noto Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('noto-sans-vi-400.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;
}

/* Adjust the system-ui fallback so the FOUT swap is invisible.
 * Numbers come from https://github.com/seek-oss/capsize-style overrides
 * for Noto Sans against -apple-system. */
@font-face {
  font-family: 'Noto Sans Fallback';
  src: local('Arial');
  size-adjust: 100.06%;
  ascent-override: 105%;
  descent-override: 27%;
  line-gap-override: 0%;
}
