/* Self-hosted variable fonts, Latin subset (REDESIGN-PLAN.md §4.2–4.3).
   Sources, axes and sizes: site/fonts/SOURCES.txt. Licences: site/fonts/OFL-*.txt.
   The fallback faces are local Arial (or its metric twins Arimo and Liberation Sans)
   scaled to each face, so the swap moves text as little as possible. */

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("/fonts/bricolage-grotesque.woff2") format("woff2");
  font-weight: 200 800;
  font-stretch: 75% 100%;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Hanken Grotesk";
  src: url("/fonts/hanken-grotesk.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Hanken Grotesk";
  src: url("/fonts/hanken-grotesk-italic.woff2") format("woff2");
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
}

/* Fallback faces: local Arial (or its metric twins Arimo and Liberation Sans), scaled to
   match each face, so the swap moves text as little as possible (§4.3 item 2).
   Measured with fontTools against an English letter-frequency sample. Each family has a
   regular and a bold fallback, so headings never fall back to regular or faux bold
   (font-synthesis is off). Bricolage narrows at large optical sizes, hence its own display
   fallback. Safari 17 applies size-adjust but ignores the ascent, descent and line-gap
   overrides, so line height may still shift slightly there.

     Bricolage 700, opsz 96 vs Arial Bold   92.4%   (display)
     Bricolage 600–650, opsz 72–96          91.7–94.1% → 94% (title, section)
     Bricolage 600, opsz 40                 98.2%   (component; 94% used, within 4%)
     Bricolage 500, opsz 64 vs Arial        101.6%  (promise and other weights under 600)
     Hanken 400 vs Arial                    101.7%;  italic 102.8%
     Hanken 600 vs Arial Bold               95.0%;   italic 95.8% */
@font-face {
  font-family: "Bricolage Display Fallback";
  src: local("Arial Bold"), local("Arial-BoldMT"), local("Arimo Bold"), local("Liberation Sans Bold");
  font-weight: 100 900;
  size-adjust: 92.4%;
  ascent-override: 100.7%;
  descent-override: 29.2%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Bricolage Fallback";
  src: local("Arial"), local("ArialMT"), local("Arimo"), local("Liberation Sans");
  font-weight: 100 550;
  size-adjust: 101.6%;
  ascent-override: 91.6%;
  descent-override: 26.6%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Bricolage Fallback";
  src: local("Arial Bold"), local("Arial-BoldMT"), local("Arimo Bold"), local("Liberation Sans Bold");
  font-weight: 551 900;
  size-adjust: 94%;
  ascent-override: 98.9%;
  descent-override: 28.7%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Hanken Fallback";
  src: local("Arial"), local("ArialMT"), local("Arimo"), local("Liberation Sans");
  font-style: normal;
  font-weight: 100 550;
  size-adjust: 101.7%;
  ascent-override: 98.33%;
  descent-override: 29.79%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Hanken Fallback";
  src: local("Arial Bold"), local("Arial-BoldMT"), local("Arimo Bold"), local("Liberation Sans Bold");
  font-style: normal;
  font-weight: 551 900;
  size-adjust: 95%;
  ascent-override: 105.3%;
  descent-override: 31.9%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Hanken Fallback";
  src: local("Arial Italic"), local("Arial-ItalicMT"), local("Arimo Italic"), local("Liberation Sans Italic");
  font-style: italic;
  font-weight: 100 550;
  size-adjust: 102.76%;
  ascent-override: 97.32%;
  descent-override: 29.49%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Hanken Fallback";
  src: local("Arial Bold Italic"), local("Arial-BoldItalicMT"), local("Arimo Bold Italic"), local("Liberation Sans Bold Italic");
  font-style: italic;
  font-weight: 551 900;
  size-adjust: 95.8%;
  ascent-override: 104.4%;
  descent-override: 31.6%;
  line-gap-override: 0%;
}
