/* ============================================================
   Self-hosted webfonts
   ------------------------------------------------------------
   Previously these came from api.fontshare.com + fonts.googleapis.com.
   Three reasons they now live here:

   1. CORRECTNESS. Fontshare's API returns only the FIRST family when a
      request asks for several (`f[]=clash-display...&f[]=general-sans...`
      returned Clash Display alone, verified in a browser). General Sans
      therefore never loaded and all body copy fell back to the system sans.
   2. Two render-blocking round-trips to third-party origins are removed
      from the critical path.
   3. No visitor IP is handed to Google or Fontshare, and the CSP can drop
      two origins.

   Licences: Clash Display + General Sans are ITF Free Font License (self
   hosting permitted). Space Mono and Noto Serif JP are SIL OFL 1.1.
   ============================================================ */

/* ---------- Clash Display — display face. 400/500/600 are the only
     weights the site actually sets; 700 was requested but never used. ---- */
@font-face {
  font-family: 'Clash Display';
  src: url('assets/fonts/clash-display-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Clash Display';
  src: url('assets/fonts/clash-display-500.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Clash Display';
  src: url('assets/fonts/clash-display-600.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}

/* ---------- General Sans — body ---------- */
@font-face {
  font-family: 'General Sans';
  src: url('assets/fonts/general-sans-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'General Sans';
  src: url('assets/fonts/general-sans-500.woff2') format('woff2');
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'General Sans';
  src: url('assets/fonts/general-sans-600.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
}

/* ---------- Space Mono — all metadata. Only 400 upright is used; the
     old request also pulled 700 and an italic that nothing references.
     Split by subset so latin-ext only downloads when a page needs it. ---- */
@font-face {
  font-family: 'Space Mono';
  src: url('assets/fonts/space-mono-400-latin.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  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: 'Space Mono';
  src: url('assets/fonts/space-mono-400-latin-ext.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  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-20C4, U+2113, U+2C60-2C7F,
    U+A720-A7FF;
}

/* ---------- Noto Serif JP — subset to the six kanji ma-sake.html shows
     (間 青 黄 赤 紫 緑), which is why these are ~2KB each. ---------- */
@font-face {
  font-family: 'Noto Serif JP';
  src: url('assets/fonts/noto-serif-jp-400.woff2') format('woff2');
  font-weight: 400; font-style: normal; font-display: swap;
  unicode-range: U+7D2B, U+7DD1, U+8D64, U+9593, U+9752, U+9EC4;
}
@font-face {
  font-family: 'Noto Serif JP';
  src: url('assets/fonts/noto-serif-jp-600.woff2') format('woff2');
  font-weight: 600; font-style: normal; font-display: swap;
  unicode-range: U+7D2B, U+7DD1, U+8D64, U+9593, U+9752, U+9EC4;
}
