/*
 * Archivo and JetBrains Mono, self-hosted.
 *
 * These are the exact subset files Google Fonts serves -- variable axes, split
 * by `unicode-range` -- downloaded and committed rather than fetched from a
 * third-party origin on every page load. Sources:
 *
 *   Archivo v25 (SIL Open Font License 1.1)        -> LICENSE-Archivo.txt
 *   JetBrains Mono v24 (SIL Open Font License 1.1) -> LICENSE-JetBrainsMono.txt
 *
 * WHY THIS FILE IS `fonts-2.css` AND NOT `fonts.css`: everything under /fonts is
 * immutable (see the cache note below), so a font change ships as a NEW filename.
 * `fonts.css` served Inter and is gone; browsers still holding it keep resolving
 * Inter from their own cache until it expires, which is the intended behaviour --
 * they get a working page, just the previous face, and the next HTML they load
 * points them here. Renaming rather than editing is what makes that graceful.
 *
 * ARCHIVO CARRIES TWO AXES AND BOTH ARE LOAD-BEARING. `wght` 100-900 is ordinary.
 * `wdth` 62-125 is the mechanism behind the two registers in BRAND.md: the product
 * runs at `wdth 100` and the brand register announces at `wdth 118`. It is ONE
 * file doing both jobs, which is the whole reason this family was chosen over
 * Inter -- so the `font-stretch` descriptor below is not boilerplate. Drop it and
 * every brand surface silently snaps back to normal width.
 *
 * VERIFIED ON THE SUBSET ACTUALLY COMMITTED HERE, not on the full TTF:
 * axes `wght` 100-900 + `wdth` 62-125, 302 glyphs, complete Spanish coverage,
 * and `tnum` present -- which is the one that matters, since `tabular-nums`
 * is load-bearing across 27 files. `zero` and `case` are NOT in this subset;
 * they were not in the Inter subset either, so nothing regresses, but do not
 * reach for `slashed-zero` or the `case` feature expecting them to work.
 *
 * `unicode-range` is what makes four files cheap: `latin` is the only one a
 * Mexican Spanish page ever pulls. `latin-ext` is fetched only when a character
 * in its range actually appears -- an accented surname, a European dish name --
 * and costs nothing until then. Do not merge the two into one face: that turns a
 * conditional download into an unconditional one.
 *
 * They live in `public/` and are referenced by absolute `/fonts/...` paths ON
 * PURPOSE. This file is read by both builds -- Vite for the Inertia app,
 * Propshaft for Storybook -- and each rewrites relative asset URLs its own way.
 * An absolute path out of `public/` resolves identically in both.
 *
 * THE COST, AND IT BITES LATER: nothing under `public/` carries a digest, and
 * `config/environments/production.rb` serves it all with a one-year
 * `cache-control` -- a line written when everything in there WAS digest stamped.
 * A returning browser therefore holds these WOFF2 files *and this stylesheet*
 * for up to a year. Everything under `/fonts` is immutable: to ship a font
 * change -- a new face, a different subset, a corrected `src` -- RENAME THE
 * FILE. Editing one in place reaches new visitors and nobody else.
 *
 * WHO LOADS THIS, and why it is not imported from tokens.css: the public menu
 * page (app/views/layouts/public.html.erb) shares the Vite stylesheet with the
 * rest of the app, and it is the one page whose entire architecture is chosen
 * for LCP. It has never loaded a webfont. Self-hosting removes the third-party
 * round trip that was the original objection, so letting that page opt in is now
 * a one-line change -- but it is a visible change to a diner-facing page, so it
 * stays a decision rather than a side effect of this file existing.
 */

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url('/fonts/archivo-latin-ext.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;
}

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 100 900;
  font-stretch: 62% 125%;
  font-display: swap;
  src: url('/fonts/archivo-latin.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: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-latin-ext.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;
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/fonts/jetbrains-mono-latin.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;
}
