/* =========================================================================
   QUOMYA — TYPOGRAPHY ASSETS V1
   Wave: S4.1F (Plus Jakarta Sans asset gate)
   Authority: 10_REFERENCE/STITCH/QUOMYA_UI_STITCH_DESIGN_LOCK_V1.md §4

   Self-hosted @font-face declarations only. No tokens, no component rules.
   Loaded FIRST so the browser discovers the face declarations as early as
   possible; the actual token wiring lives in qy-tokens-v1.css.

   ------------------------------------------------------------------------
   ASSET PROVENANCE  (see src/assets/fonts/PROVENANCE.md)
   ------------------------------------------------------------------------
   Family      Plus Jakarta Sans, version 2.071 (gftools 0.9.30)
   Upstream    https://github.com/tokotype/PlusJakartaSans
   Licence     SIL Open Font License 1.1 — src/assets/fonts/OFL.txt
   Copyright   2020 The Plus Jakarta Sans Project Authors

   Verified by decoding each file's own `name` and `fvar` tables, not by
   trusting the download URL: family "Plus Jakarta Sans", licence URL
   https://scripts.sil.org/OFL, variable axis wght 200..800 default 400.

   ------------------------------------------------------------------------
   WHY ONE VARIABLE FILE PER SUBSET RATHER THAN FOUR STATIC WEIGHTS
   ------------------------------------------------------------------------
   The design system needs 400, 500, 600 and 700. As static woff2 that is
   4 weights x 2 subsets = 8 files, roughly 160 KB. The variable font covers
   the whole 200..800 range in 2 files totalling 49 KB, and every weight is a
   real interpolated instance rather than a browser-synthesised one.

   ------------------------------------------------------------------------
   WHY TWO SUBSETS
   ------------------------------------------------------------------------
   `latin` alone covers 24/24 of the Spanish + English probe set: all accented
   vowels, n-tilde, inverted punctuation, the euro sign, digits, en/em dashes,
   curly quotes and the minus sign. It is what Quomya actually renders.

   `latin-ext` is complementary, not a superset. `unicode-range` means the
   browser fetches it ONLY if a character in that range appears on the page,
   so it costs 0 bytes for typical ES/EN content while preventing tofu when a
   user types a concept or client name containing, say, "č" or "ł".

   Cyrillic and Vietnamese subsets are deliberately NOT shipped.

   ------------------------------------------------------------------------
   RUNTIME
   ------------------------------------------------------------------------
   No fonts.googleapis.com, no fonts.gstatic.com, no third-party CDN. The
   files are served from the app origin, which satisfies the existing
   `font-src 'self'` in both the enforced and report-only CSP without any
   policy change. `font-display: swap` keeps first paint non-blocking.
   ========================================================================= */

@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  /* Range descriptor: one file answers 400, 500, 600 and 700. */
  font-weight: 200 800;
  font-display: swap;
  src: url("/assets/fonts/plus-jakarta-sans-latin.woff2") format("woff2");
  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: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("/assets/fonts/plus-jakarta-sans-latin-ext.woff2") format("woff2");
  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;
}
