/**
 * Self-hosted Google Fonts — HIPAA privacy compliance (Issue #1299)
 *
 * Eliminates third-party requests to fonts.googleapis.com / fonts.gstatic.com
 * which leak user IP addresses and page paths to Google.
 *
 * Fonts: Onest, DM Mono, DM Sans, and signature fonts
 * (Dancing Script, Great Vibes, Pacifico, Satisfy, Caveat, Sacramento)
 *
 * WOFF FALLBACK (#1706): Each @font-face includes a .woff fallback URL after
 * the .woff2 source. Browsers that support woff2 will use it (smaller file);
 * older browsers (e.g. legacy Safari, older Android WebView) will fall back
 * to woff. If woff files are not yet generated, browsers will gracefully
 * skip the missing woff and use system font-family fallbacks from the stack.
 *
 * NOTE (#1764): These fonts only include Latin and Latin-ext unicode ranges.
 * CJK (Chinese/Japanese/Korean), Arabic, Cyrillic, and other non-Latin glyphs
 * are NOT covered. The app currently supports EN/ES which use Latin glyphs.
 * If i18n expands to non-Latin languages, self-hosted font subsets for those
 * scripts must be added here and the corresponding woff2 files placed in
 * /assets/fonts/.
 */

/* ── Onest (variable weight 300-900) ─────────────────────────── */

/* latin-ext */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src:
    url('/assets/fonts/onest-latin-ext.woff2') format('woff2'),
    url('/assets/fonts/onest-latin-ext.woff') format('woff');
  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-20C0, U+2113, U+2C60-2C7F,
    U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 300 900;
  font-display: swap;
  src:
    url('/assets/fonts/onest-latin.woff2') format('woff2'),
    url('/assets/fonts/onest-latin.woff') format('woff');
  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;
}

/* ── DM Mono 400 ─────────────────────────────────────────────── */

/* latin-ext */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url('/assets/fonts/dm-mono-400-latin-ext.woff2') format('woff2'),
    url('/assets/fonts/dm-mono-400-latin-ext.woff') format('woff');
  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-20C0, U+2113, U+2C60-2C7F,
    U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url('/assets/fonts/dm-mono-400-latin.woff2') format('woff2'),
    url('/assets/fonts/dm-mono-400-latin.woff') format('woff');
  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;
}

/* ── DM Mono 500 ─────────────────────────────────────────────── */

/* latin-ext */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src:
    url('/assets/fonts/dm-mono-500-latin-ext.woff2') format('woff2'),
    url('/assets/fonts/dm-mono-500-latin-ext.woff') format('woff');
  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-20C0, U+2113, U+2C60-2C7F,
    U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src:
    url('/assets/fonts/dm-mono-500-latin.woff2') format('woff2'),
    url('/assets/fonts/dm-mono-500-latin.woff') format('woff');
  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;
}

/* ── DM Sans (variable weight 400-700) ───────────────────────── */

/* latin-ext */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src:
    url('/assets/fonts/dm-sans-latin-ext.woff2') format('woff2'),
    url('/assets/fonts/dm-sans-latin-ext.woff') format('woff');
  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-20C0, U+2113, U+2C60-2C7F,
    U+A720-A7FF;
}

/* latin */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src:
    url('/assets/fonts/dm-sans-latin.woff2') format('woff2'),
    url('/assets/fonts/dm-sans-latin.woff') format('woff');
  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;
}

/* ── Signature Fonts ─────────────────────────────────────────── */

/* Dancing Script 700 — latin */
@font-face {
  font-family: 'Dancing Script';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src:
    url('/assets/fonts/dancing-script-700-latin.woff2') format('woff2'),
    url('/assets/fonts/dancing-script-700-latin.woff') format('woff');
  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;
}

/* Great Vibes 400 — latin */
@font-face {
  font-family: 'Great Vibes';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url('/assets/fonts/great-vibes-400-latin.woff2') format('woff2'),
    url('/assets/fonts/great-vibes-400-latin.woff') format('woff');
  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;
}

/* Pacifico 400 — latin */
@font-face {
  font-family: 'Pacifico';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url('/assets/fonts/pacifico-400-latin.woff2') format('woff2'),
    url('/assets/fonts/pacifico-400-latin.woff') format('woff');
  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;
}

/* Satisfy 400 — latin */
@font-face {
  font-family: 'Satisfy';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url('/assets/fonts/satisfy-400-latin.woff2') format('woff2'),
    url('/assets/fonts/satisfy-400-latin.woff') format('woff');
  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;
}

/* Caveat 700 — latin */
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src:
    url('/assets/fonts/caveat-700-latin.woff2') format('woff2'),
    url('/assets/fonts/caveat-700-latin.woff') format('woff');
  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;
}

/* Sacramento 400 — latin */
@font-face {
  font-family: 'Sacramento';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src:
    url('/assets/fonts/sacramento-400-latin.woff2') format('woff2'),
    url('/assets/fonts/sacramento-400-latin.woff') format('woff');
  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;
}
