/* Brand-Source: avanserv/brand@v0.3.2 */
/*
 * GENERATED by build/tokens.ts from fonts.css.
 * @avanserv/brand 0.3.2. Do not edit: the next build overwrites this file.
 */

/*
  Self-hosted Spline Sans (variable, wght 300-700), two unicode subsets from Google Fonts v16, and
  its monospace sibling Spline Sans Mono the same way from Google Fonts v13.

  It was vendored originally so the headless render of the brand masters would work offline: the
  box has no system fonts, so without these the wordmark falls back to nothing at all. Serving the
  same files to products is the better default for a second reason. A remote font import is a
  third-party request on every page load and a dependency on a host the company does not run, and
  the published cookie policy is easier to keep true without one.

  The wordmark is plain ASCII, so the latin subset alone would carry it. latin-ext rides along
  because the company's legal language is French and a master may yet need an accent.

  The url() paths are relative, so a consumer importing dist/fonts.css must serve dist/fonts/
  alongside it. dist/manifest.json records both.
*/
@font-face {
  font-family: 'Spline Sans';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(fonts/spline-sans-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: 'Spline Sans';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(fonts/spline-sans-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: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(fonts/spline-sans-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;
}

@font-face {
  font-family: 'Spline Sans Mono';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url(fonts/spline-sans-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;
}

/*
  The fallbacks, each a system face resized to take the room its brand face will.

  `swap` paints the page in a fallback and replaces it when the brand face lands, and a fallback
  with other metrics wraps text onto another number of lines, so the page moves under the reader.
  These make the swap change the letterforms and nothing else. They follow their brand face in
  `--font-sans` and `--font-mono`, and a family whose `local()` finds nothing is skipped for the
  next one.

  Every value comes from `tools/fallback_metrics.py`, measuring the text the site sets at each
  weight (`tools/fallback_samples/`) in the brand face and in Arial, Arial Bold, Roboto, Roboto Bold
  and Courier New. The names in each `src` share one set of metrics: Liberation and the Croscore
  faces were drawn to Arial's and Courier New's widths, and Arial to Helvetica's.

  The sans has a face for each weight the site sets: 400 for prose, 500 for labels, 600 for card
  titles and 700 for headings. Spline Sans widens with every step, while Arial has two weights, so
  the regular stretched to prose runs about 1% narrow at 500, and a synthesized bold keeps the
  regular's advances altogether. The 500 face draws Arial's regular at the size Spline Sans's 500
  takes. Guessed percentages move a shift rather than remove it.
*/
@font-face {
  font-family: 'Spline Sans Fallback';
  font-weight: 100 449;
  src:
    local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans'),
    local('Arimo'), local('Helvetica');
  size-adjust: 101.1%;
  ascent-override: 95.3%;
  descent-override: 23.39%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'Spline Sans Fallback';
  font-weight: 450 549;
  src:
    local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans'),
    local('Arimo'), local('Helvetica');
  size-adjust: 102.11%;
  ascent-override: 94.36%;
  descent-override: 23.16%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'Spline Sans Fallback';
  font-weight: 550 649;
  src:
    local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'),
    local('LiberationSans-Bold'), local('Arimo Bold'), local('Arimo-Bold'), local('Helvetica Bold'),
    local('Helvetica-Bold');
  size-adjust: 96.84%;
  ascent-override: 99.49%;
  descent-override: 24.42%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'Spline Sans Fallback';
  font-weight: 650 900;
  src:
    local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'),
    local('LiberationSans-Bold'), local('Arimo Bold'), local('Arimo-Bold'), local('Helvetica Bold'),
    local('Helvetica-Bold');
  size-adjust: 97.76%;
  ascent-override: 98.56%;
  descent-override: 24.19%;
  line-gap-override: 0%;
}

/*
  Android has none of the names above, so without this family its text paints in Roboto at its
  own widths, about 1.5% narrower, and a long page rewraps near its top. Roboto is a family of its
  own rather than more sources above because every `src` in one face shares one set of overrides.
  The 500 and 600 bands name the regular and the bold, as Arial's do: Android's lookup is not known
  to index Roboto's medium or semibold instance, and a band whose source is missing drops its text
  to an unfitted Roboto.
*/
@font-face {
  font-family: 'Spline Sans Roboto Fallback';
  font-weight: 100 449;
  src: local('Roboto'), local('Roboto Regular'), local('Roboto-Regular');
  size-adjust: 101.42%;
  ascent-override: 95%;
  descent-override: 23.32%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'Spline Sans Roboto Fallback';
  font-weight: 450 549;
  src: local('Roboto'), local('Roboto Regular'), local('Roboto-Regular');
  size-adjust: 102.8%;
  ascent-override: 93.73%;
  descent-override: 23.01%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'Spline Sans Roboto Fallback';
  font-weight: 550 649;
  src: local('Roboto Bold'), local('Roboto-Bold');
  size-adjust: 103.09%;
  ascent-override: 93.47%;
  descent-override: 22.94%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'Spline Sans Roboto Fallback';
  font-weight: 650 900;
  src: local('Roboto Bold'), local('Roboto-Bold');
  size-adjust: 103.56%;
  ascent-override: 93.04%;
  descent-override: 22.84%;
  line-gap-override: 0%;
}

@font-face {
  font-family: 'Spline Sans Mono Fallback';
  src:
    local('Courier New'), local('CourierNewPSMT'), local('Liberation Mono'),
    local('LiberationMono'), local('Cousine');
  size-adjust: 99.98%;
  ascent-override: 96.37%;
  descent-override: 23.65%;
  line-gap-override: 0%;
}
