/*
 * Inter, self-hosted. `--lw-font-sans` in src/styles/tokens.css has always
 * named Inter first; these faces are what make that token true on a machine
 * that does not happen to have Inter installed.
 *
 * WHY THESE FILES AND NOT THE PACKAGE'S OWN STYLESHEET
 *
 * src/styles.css used to open with four `@import '@fontsource/inter/NNN.css'`
 * lines. Each of those pulls in NINE subsets — cyrillic, cyrillic-ext, greek,
 * greek-ext, latin, latin-ext, vietnamese and two more — so the build emitted
 * thirty-six hashed font files to serve a console whose entire interface, and
 * every job id, EPSG code and file name in it, is Latin. A browser only
 * FETCHES the subsets a page actually needs, so the waste was in the build and
 * in the deployment rather than on the wire, but it also meant the font URLs
 * were content-hashed names nobody could preload, name in a policy, or point a
 * cache rule at.
 *
 * Served from this app's own origin, from a stable path: no CDN, no third
 * party, nothing for a customer to consent to, and two files that index.html
 * can preload by name. The woff2 files are the static instances from
 * @fontsource/inter, whose version is pinned in package.json, and the licence
 * travels beside them as LICENSE.txt (SIL OFL 1.1) because that is what the
 * licence actually requires — an SPDX identifier is a label, not a notice.
 *
 * FOUR WEIGHTS, TWO SUBSETS, AND WHAT IS DELIBERATELY MISSING
 *
 * 400 / 500 / 600 / 700, which is exactly what this app sets: a grep of
 * styles.css finds nine rules at 500, nine at 600, one at 700, and 400 is the
 * body. Latin and latin-ext, the latter because a customer's own strings — an
 * organisation name, a site name, an operator's name — are not confined to
 * ASCII even when the interface is.
 *
 * NO ITALIC and NO 800, and both omissions are worth stating rather than
 * leaving to be rediscovered, because tokens.css sets `font-synthesis: none`
 * and that turns a missing face into a silent substitution rather than a
 * visible gap:
 *
 *   Italic. Nothing in this console renders an <em> or asks for
 *   `font-style: italic` — it is an instrument panel, not a document — so
 *   there is nothing to slant. The day a rule does ask, with synthesis off it
 *   will draw ROMAN rather than a faked oblique, which is the failure mode
 *   GISweaver hit across two hundred lines of its legal documents before it
 *   shipped the italic faces. Ship them here at the same moment as the first
 *   rule that needs them.
 *
 *   800. --lw-weight-heavy exists in the token file and no face backs it, so a
 *   rule that asks for 800 draws the 700 below — correctly, and invisibly
 *   wrongly. No rule in this app asks today. The same instruction applies: the
 *   face ships with the first rule that wants it, not before.
 *
 * `font-display: swap` throughout: a survey job's progress should start
 * rendering on the fallback stack rather than wait behind a font request.
 */

/* ---------- 400: body ---------- */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(./inter-latin-400-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;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(./inter-latin-ext-400-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;
}

/* ---------- 500: medium ---------- */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(./inter-latin-500-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;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(./inter-latin-ext-500-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;
}

/* ---------- 600: semibold ---------- */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(./inter-latin-600-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;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(./inter-latin-ext-600-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;
}

/* ---------- 700: bold ---------- */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(./inter-latin-700-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;
}

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(./inter-latin-ext-700-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;
}
