/* font-display: block relies on the preload links every page adds for these two faces (inline head script, http only). The display face blocks (invisible, never the wrong face) rather than swaps: headline wrapping depends on its
   metrics, and a late swap from the system serif re-wrapped titles and shifted the page (CLS) on cached visits. */
@font-face {
  font-family: 'Libre Caslon Display';
  src: url('../fonts/libre-caslon-display-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: block;
}

/* Libre Caslon Display has no italic: the Text cut supplies it for headline accents */
@font-face {
  font-family: 'Libre Caslon Display';
  src: url('../fonts/libre-caslon-text-400-italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: block;
}

@font-face {
  font-family: 'Hanken Grotesk';
  src: url('../fonts/hanken-grotesk-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Hanken Grotesk';
  src: url('../fonts/hanken-grotesk-500.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Hanken Grotesk';
  src: url('../fonts/hanken-grotesk-600.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'JetBrains Mono';
  src: url('../fonts/jetbrains-mono-400.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
