/* ============================================================
   Beaupixel — Webfonts
   Basis Grotesque  → display / headings (primary)
   Neue Haas Grotesk Display → body / labels (secondary)
   Inconsolata      → mono / overline accents
   Font binaries are the originals shipped on beaupixel.com.
   ============================================================ */

/* ---------- Basis Grotesque (primary / display) ---------- */
@font-face {
  font-display: swap;
  font-family: 'Basis Grotesque';
  font-style: normal;
  font-weight: 300;
  src: url('../assets/fonts/basic-grotesque/basisgrotesque-light-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Basis Grotesque';
  font-style: normal;
  font-weight: 400;
  src: url('../assets/fonts/basic-grotesque/basisgrotesque-regular-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Basis Grotesque';
  font-style: italic;
  font-weight: 400;
  src: url('../assets/fonts/basic-grotesque/basisgrotesque-italic-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Basis Grotesque';
  font-style: normal;
  font-weight: 500;
  src: url('../assets/fonts/basic-grotesque/basisgrotesque-medium-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Basis Grotesque';
  font-style: normal;
  font-weight: 700;
  src: url('../assets/fonts/basic-grotesque/basisgrotesque-bold-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Basis Grotesque';
  font-style: italic;
  font-weight: 700;
  src: url('../assets/fonts/basic-grotesque/basisgrotesque-bolditalic-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Basis Grotesque';
  font-style: normal;
  font-weight: 900;
  src: url('../assets/fonts/basic-grotesque/basisgrotesque-black-webfont.woff2') format('woff2');
}

/* ---------- Basis Grotesque Mono ---------- */
@font-face {
  font-display: swap;
  font-family: 'Basis Grotesque Mono';
  font-style: normal;
  font-weight: 400;
  src: url('../assets/fonts/basic-grotesque/basisgrotesque-mono-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Basis Grotesque Mono';
  font-style: normal;
  font-weight: 700;
  src: url('../assets/fonts/basic-grotesque/basisgrotesque-monobold-webfont.woff2') format('woff2');
}

/* ---------- Neue Haas Grotesk Display (secondary / body) ---------- */
@font-face {
  font-display: swap;
  font-family: 'Neue Haas Grotesk Display';
  font-style: normal;
  font-weight: 100;
  src: url('../assets/fonts/neue-haas-groteskt-display/neuehaasdisplayxxthin-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Neue Haas Grotesk Display';
  font-style: normal;
  font-weight: 200;
  src: url('../assets/fonts/neue-haas-groteskt-display/neuehaasdisplayxthin-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Neue Haas Grotesk Display';
  font-style: normal;
  font-weight: 300;
  src: url('../assets/fonts/neue-haas-groteskt-display/neuehaasdisplaylight-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Neue Haas Grotesk Display';
  font-style: normal;
  font-weight: 400;
  src: url('../assets/fonts/neue-haas-groteskt-display/neuehaasdisplayroman-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Neue Haas Grotesk Display';
  font-style: italic;
  font-weight: 400;
  src: url('../assets/fonts/neue-haas-groteskt-display/neuehaasdisplayromanitalic-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Neue Haas Grotesk Display';
  font-style: normal;
  font-weight: 500;
  src: url('../assets/fonts/neue-haas-groteskt-display/neuehaasdisplaymedium-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Neue Haas Grotesk Display';
  font-style: normal;
  font-weight: 700;
  src: url('../assets/fonts/neue-haas-groteskt-display/neuehaasdisplaybold-webfont.woff2') format('woff2');
}
@font-face {
  font-display: swap;
  font-family: 'Neue Haas Grotesk Display';
  font-style: normal;
  font-weight: 900;
  src: url('../assets/fonts/neue-haas-groteskt-display/neuehaasdisplayblack-webfont.woff2') format('woff2');
}

/* ---------- Inconsolata (mono accent) ---------- */
@font-face {
  font-display: swap;
  font-family: 'Inconsolata';
  font-style: normal;
  font-weight: 400;
  src: url('../assets/fonts/inconsolata/inconsolata-regular.woff2') format('woff2');
}

/* ============================================================
   Metric-matched fallback faces  (CLS / FOUT reflow guard)
   ------------------------------------------------------------
   Each block re-shapes a locally-installed Arial / Courier New so the
   text it renders occupies the same width and the same line box as the
   webfont it stands in for. Paragraphs therefore wrap at the same points
   before and after the font loads, and `font-display: swap` becomes a
   repaint instead of a reflow of everything below it.

   GENERATED -- do not hand-edit. See scripts/gen-font-fallbacks.py.
   ============================================================ */

/* ---------- Basis Grotesque Fallback ---------- */
@font-face {
  font-family: 'Basis Grotesque Fallback';
  font-style: normal;
  font-weight: 300;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
  size-adjust: 98.631%;
  ascent-override: 94.655%;
  descent-override: 24.06%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Basis Grotesque Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
  size-adjust: 101.203%;
  ascent-override: 92.25%;
  descent-override: 23.448%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Basis Grotesque Fallback';
  font-style: italic;
  font-weight: 400;
  src: local('Arial Italic'), local('Arial-ItalicMT'), local('Liberation Sans Italic'), local('Arimo Italic');
  size-adjust: 101.995%;
  ascent-override: 91.533%;
  descent-override: 23.266%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Basis Grotesque Fallback';
  font-style: normal;
  font-weight: 500;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
  size-adjust: 103.5%;
  ascent-override: 90.202%;
  descent-override: 22.928%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Basis Grotesque Fallback';
  font-style: normal;
  font-weight: 700;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('Arimo Bold');
  size-adjust: 97.483%;
  ascent-override: 95.77%;
  descent-override: 24.343%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Basis Grotesque Fallback';
  font-style: italic;
  font-weight: 700;
  src: local('Arial Bold Italic'), local('Arial-BoldItalicMT'), local('Liberation Sans Bold Italic');
  size-adjust: 98.282%;
  ascent-override: 94.991%;
  descent-override: 24.145%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Basis Grotesque Fallback';
  font-style: normal;
  font-weight: 900;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('Arimo Bold');
  size-adjust: 99.135%;
  ascent-override: 94.864%;
  descent-override: 23.938%;
  line-gap-override: 0%;
}

/* ---------- Basis Grotesque Mono Fallback ---------- */
@font-face {
  font-family: 'Basis Grotesque Mono Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Courier New'), local('CourierNewPSMT'), local('Liberation Mono'), local('Cousine');
  size-adjust: 100.084%;
  ascent-override: 93.281%;
  descent-override: 23.711%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Basis Grotesque Mono Fallback';
  font-style: normal;
  font-weight: 700;
  src: local('Courier New Bold'), local('CourierNewPS-BoldMT'), local('Liberation Mono Bold');
  size-adjust: 100.084%;
  ascent-override: 93.281%;
  descent-override: 23.711%;
  line-gap-override: 0%;
}

/* ---------- Neue Haas Grotesk Display Fallback ---------- */
@font-face {
  font-family: 'Neue Haas Grotesk Display Fallback';
  font-style: normal;
  font-weight: 100;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
  size-adjust: 83.177%;
  ascent-override: 109.307%;
  descent-override: 26.886%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Neue Haas Grotesk Display Fallback';
  font-style: normal;
  font-weight: 200;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
  size-adjust: 83.667%;
  ascent-override: 108.783%;
  descent-override: 26.729%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Neue Haas Grotesk Display Fallback';
  font-style: normal;
  font-weight: 300;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
  size-adjust: 86.609%;
  ascent-override: 105.539%;
  descent-override: 26.949%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Neue Haas Grotesk Display Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
  size-adjust: 91.591%;
  ascent-override: 100.012%;
  descent-override: 27.029%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Neue Haas Grotesk Display Fallback';
  font-style: italic;
  font-weight: 400;
  src: local('Arial Italic'), local('Arial-ItalicMT'), local('Liberation Sans Italic'), local('Arimo Italic');
  size-adjust: 89.251%;
  ascent-override: 102.634%;
  descent-override: 27.737%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Neue Haas Grotesk Display Fallback';
  font-style: normal;
  font-weight: 500;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('Arimo');
  size-adjust: 96.215%;
  ascent-override: 96.677%;
  descent-override: 29.384%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Neue Haas Grotesk Display Fallback';
  font-style: normal;
  font-weight: 700;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('Arimo Bold');
  size-adjust: 92.058%;
  ascent-override: 101.573%;
  descent-override: 30.711%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Neue Haas Grotesk Display Fallback';
  font-style: normal;
  font-weight: 900;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('Arimo Bold');
  size-adjust: 95.384%;
  ascent-override: 98.543%;
  descent-override: 29.64%;
  line-gap-override: 0%;
}

/* ---------- Inconsolata Fallback ---------- */
@font-face {
  font-family: 'Inconsolata Fallback';
  font-style: normal;
  font-weight: 400;
  src: local('Courier New'), local('CourierNewPSMT'), local('Liberation Mono'), local('Cousine');
  size-adjust: 83.32%;
  ascent-override: 103.096%;
  descent-override: 22.804%;
  line-gap-override: 0%;
}
