/* Self-hosted Inter (variable, wght axis) — landing pages.
   GDPR/CNDP: fonts are served from our own origin, NEVER Google Fonts CDN,
   so no visitor IP is disclosed to a third party. Family name is 'Inter'
   to match `--font-sans` in landing.src.css. Subsets: latin + latin-ext
   (covers French). Source: @fontsource-variable/inter 5.2.8.

   ORDER IS LOAD-BEARING. The latin and latin-ext ranges overlap on U+0131,
   U+0152-0153 (« Œ œ »), U+0304, U+0308, U+0329 and U+2020, and when several
   faces of one family/style/weight cover a code point the browser takes the
   one declared LAST (CSS Fonts 4, unicode-range). Every latin-ext face is
   therefore declared BEFORE its latin counterpart — the Google Fonts order —
   so « œ » resolves to the 48 KB latin face, which carries the glyph,
   instead of fetching the 85 KB latin-ext face, which does not (one « œ »
   on /pros cost the whole file, measured 2026-09-06).

   `?v=5.2.8` is the @fontsource release, written as a LITERAL: the preload
   in landing/base.html must be byte-equal to the `url()` here or the browser
   downloads the file twice, and a literal is the one thing both files can
   share verbatim. It also lets the edge cache the binaries as immutable.
   Bump both places together when the binaries are regenerated.

   `font-display: optional` (operator decision, 2026-09-06): a face is used
   only when it is available at first paint — preloaded, or cached from an
   earlier visit — and otherwise the whole page view stays in the metric-
   compatible fallback below. No glyph change after first paint, in any
   engine; the price is a slow first visit rendered in the Arial-metric face.

   NO italic face is downloaded, and that is deliberate (#1177). The legal
   corpus renders exactly three <em> — « Software as a Service » on /terms,
   « Data Processing Agreement » on /dpa, « avant » on /privacy and
   /patient/privacy: 56 characters, every codepoint inside U+0000-00FF. The
   italic faces that used to serve them were never preloaded and were
   discovered only once this sheet had parsed, so on any non-LAN connection
   the rule above ruled them out of the very view that paid their 51 832 B —
   and the latin-ext italic face was reachable by no codepoint the corpus
   contains at all, the latin face declared last winning every overlap. The
   browser's own oblique synthesis slants those 56 characters out of the
   variable face already on the page, for zero bytes: `font-synthesis-style`
   is `auto` by default and nothing in landing.css disables it. Do not
   re-add an italic face without a corpus that needs one. */

/* Metric-compatible fallback — kills the font-swap layout shift (#573).
   `font-display: optional` never swaps inside one page view, but a first
   visit whose Inter missed first paint renders entirely in this face and the
   NEXT visit renders in Inter: the two renders must lay out identically —
   same line boxes, same line breaks — or nothing a visitor scrolled to is
   where they left it. The overrides below are MEASURED from this very binary
   (static/fonts/inter-latin-wght-normal.woff2 — @fontsource-variable/inter
   5.2.8, Google Fonts Inter v20): unitsPerEm 2048, hhea ascender 1984,
   descender -494, lineGap 0, OS/2 typo metrics identical, USE_TYPO_METRICS set.
     ascent-override   = 1984 / 2048 / 1.0712 = 90.44 %
     descent-override  =  494 / 2048 / 1.0712 = 22.52 %
     line-gap-override = 0 % (the font declares no line gap)
   size-adjust 107.12 % scales Arial's glyph widths onto Inter's, so line boxes
   AND line breaks land in the same place in either face. Re-measure all four
   if the Inter binaries are ever regenerated.

   `src` MUST list every metric-compatible Arial clone, not just Arial (#1235):
   a face whose sole `local()` cannot be resolved never loads, so on Linux and
   ChromeOS — where Arial is absent — the four overrides above applied to
   nothing and the fallback fell straight through to bare `sans-serif`. All
   five families below share Arial's advance widths (Arial was cut to
   Helvetica's metrics; Liberation Sans, Arimo and Nimbus Sans are Arial-metric
   clones), so ONE set of overrides is correct for whichever one the client
   resolves. */
@font-face {
  font-family: 'Inter Fallback';
  src: local('Arial'), local('Helvetica'), local('Liberation Sans'),
       local('Arimo'), local('Nimbus Sans');
  ascent-override: 90.44%;
  descent-override: 22.52%;
  line-gap-override: 0%;
  size-adjust: 107.12%;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: optional;
  font-weight: 100 900;
  src: url('/static/fonts/inter-latin-ext-wght-normal.woff2?v=5.2.8') format('woff2-variations');
  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;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: optional;
  font-weight: 100 900;
  src: url('/static/fonts/inter-latin-wght-normal.woff2?v=5.2.8') format('woff2-variations');
  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;
}
