/*
  Self-hosted DM Sans for the static marketing pages.

  ⚠️ WHY SELF-HOSTED RATHER THAN THE GOOGLE FONTS CDN:
  the pages use → (U+2192) and ↳ (U+21B3), and NEITHER is in Google's standard
  "latin" subset. On the CDN those glyphs fall back to a different typeface
  mid-sentence. These files are subset from the source TTFs with the arrow
  block included, so what ships matches what the pages actually use. It also
  removes a third-party request from the critical path.

  ⚠️ ONLY 400 / 500 / 600 ARE DECLARED. The design system prohibits 700 and
  above, and `font-synthesis: none` is already set on body — so a stray
  `font-weight: 700` resolves to the nearest available face (600) instead of
  being faux-bolded. The constraint is enforced by the assets, not just by
  convention.

  ⚠️ font-display: swap — text renders immediately in the fallback and swaps
  when the face arrives. Without it the copy is INVISIBLE while the font
  loads, which is worse than a brief reflow on a sales page.

  Subset range: latin + punctuation + U+2190-21FF (arrows).
  ⚠️ ↳ (U+21B3) is NOT in DM Sans at all — not a subsetting miss. It appears
  once on index.html and once on features.html and will render in the fallback
  face. Swap it for → if that ever looks wrong.
*/

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/brand/fonts/dm-sans-400.woff2') format('woff2');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/brand/fonts/dm-sans-500.woff2') format('woff2');
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/brand/fonts/dm-sans-600.woff2') format('woff2');
}
