/* fonts.css — SELF-HOSTED. Generated once; regenerate with the script in the
   session scratchpad if a family or subset changes.

   WHY THIS FILE EXISTS
   --------------------
   Both faces used to come from fonts.googleapis.com as a render-blocking
   <link>. Measured on a throttled connection, that stylesheet plus the Font
   Awesome one held FIRST PAINT at 1200ms — a full second of blank screen on
   every navigation — and the real fonts only finished at 2980ms, at which
   point every line of text re-rendered and shifted. That combination is what
   reads as a "flash" when moving between pages.

   Serving them ourselves removes a third-party round trip per page, removes a
   request to Google on every page view, and means the site keeps its
   typography if that CDN is slow or blocked.

   These are VARIABLE fonts: one file spans weight 400-900, so the six static
   weights the old link requested are now two files per family. `unicode-range`
   means an English page never downloads the 118 KB Devanagari subset — the
   browser fetches it only when Devanagari characters are actually on the page.

   Licence: both families are SIL Open Font License 1.1, which permits
   self-hosting and redistribution. See frontend/fonts/LICENSE.txt.
*/

/* Montserrat — the rupee sign, and nothing else.
   This face used to be the full Google `latin-ext` subset: 68 KB, 632 glyphs. It was
   downloading on nearly every page, and a scan of every HTML/JS/locale file in the repo
   found exactly ONE character in its unicode-range anywhere on the site — U+20B9 '₹',
   which appears in 21 files because we quote prices. The other 631 glyphs were never used.
   Subset to the single glyph: 68,224 -> 1,188 bytes, variable axes preserved, so ₹ still
   renders in Montserrat rather than falling back to a system font next to the digits.
   If latin-ext copy is ever added (an accented name, a € price), widen this range AND
   re-cut the subset — otherwise the new character silently falls back. */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400 900;          /* one variable file covers the whole ramp */
    font-display: swap;
    src: url('/fonts/montserrat-rupee.woff2') format('woff2');
    unicode-range: U+20B9;
}

/* Montserrat — latin */
@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400 900;          /* one variable file covers the whole ramp */
    font-display: swap;
    src: url('/fonts/montserrat-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;
}

/* Noto Sans Devanagari — devanagari */
@font-face {
    font-family: 'Noto Sans Devanagari';
    font-style: normal;
    font-weight: 400 900;          /* one variable file covers the whole ramp */
    font-display: swap;
    src: url('/fonts/noto-devanagari-devanagari.woff2') format('woff2');
    unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}

/* Noto Sans Devanagari — latin */
@font-face {
    font-family: 'Noto Sans Devanagari';
    font-style: normal;
    font-weight: 400 900;          /* one variable file covers the whole ramp */
    font-display: swap;
    src: url('/fonts/noto-devanagari-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;
}
