/*
 * Indic script coverage for printed bills — self-hosted, SIL OFL 1.1.
 *
 * ## Why these are not on the Google Fonts link with the rest
 *
 * Two reasons, and the second is the one that matters.
 *
 * **Noto Sans ships no Tamil.** `index.html` has carried a CAUTION saying exactly that since the
 * theme landed: the family every print path falls back to covers Latin, Greek, Cyrillic and
 * Devanagari and nothing else. So a shop selling in Tamil, Kannada, Telugu or Malayalam had its
 * own item names rendered by whatever the operating system happened to supply — or by nothing at
 * all, as empty boxes, on a locked-down till or a kiosk.
 *
 * **The till sells offline, and a bill printed then still has to be readable.** A webfont from a
 * CDN is the one asset that is not there when the connection is not, and `window.print()` does
 * not wait for a font that is never coming. A shopkeeper who loses connectivity mid-afternoon
 * should not start handing customers receipts full of tofu.
 *
 * ## Why this costs nothing for the shops that never need it
 *
 * Every face is scoped by `unicode-range` to its own script block. A browser fetches a file only
 * when the page actually contains a codepoint inside that range — so a shop billing in English
 * downloads none of this, ever, and pays not one byte for it. The cost falls on exactly the shops
 * the coverage exists for, which is the right way round.
 *
 * Latin and latin-ext subsets are deliberately excluded: Figtree already carries Latin.
 *
 * ## Regenerating
 *
 * Fetch `https://fonts.googleapis.com/css2?family=<Family>:wght@400;700&display=swap` with a
 * desktop user-agent, keep the one @font-face whose `unicode-range` names the SCRIPT block rather
 * than a Latin one, and save its `.woff2` here. The 400 and 700 URLs are the same variable file,
 * which is why each family below is one rule spanning both weights and not two rules.
 */

@font-face {
  font-family: 'Noto Sans Devanagari';
  font-style: normal;
  /* A RANGE, not two rules. Google serves one variable file for 400 and 700 — the two
     downloads were byte-identical — so declaring the span points both weights at the
     one file instead of shipping it twice. */
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/NotoSansDevanagari.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;
}

@font-face {
  font-family: 'Noto Sans Bengali';
  font-style: normal;
  /* A RANGE, not two rules. Google serves one variable file for 400 and 700 — the two
     downloads were byte-identical — so declaring the span points both weights at the
     one file instead of shipping it twice. */
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/NotoSansBengali.woff2) format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1;
}

@font-face {
  font-family: 'Noto Sans Gujarati';
  font-style: normal;
  /* A RANGE, not two rules. Google serves one variable file for 400 and 700 — the two
     downloads were byte-identical — so declaring the span points both weights at the
     one file instead of shipping it twice. */
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/NotoSansGujarati.woff2) format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0A80-0AFF, U+200C-200D, U+20B9, U+25CC, U+A830-A839;
}

@font-face {
  font-family: 'Noto Sans Telugu';
  font-style: normal;
  /* A RANGE, not two rules. Google serves one variable file for 400 and 700 — the two
     downloads were byte-identical — so declaring the span points both weights at the
     one file instead of shipping it twice. */
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/NotoSansTelugu.woff2) format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0C00-0C7F, U+1CDA, U+1CF2, U+200C-200D, U+25CC;
}

@font-face {
  font-family: 'Noto Sans Kannada';
  font-style: normal;
  /* A RANGE, not two rules. Google serves one variable file for 400 and 700 — the two
     downloads were byte-identical — so declaring the span points both weights at the
     one file instead of shipping it twice. */
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/NotoSansKannada.woff2) format('woff2');
  unicode-range: U+0951-0952, U+0964-0965, U+0C80-0CF3, U+1CD0, U+1CD2-1CD3, U+1CDA, U+1CF2, U+1CF4, U+200C-200D, U+20B9, U+25CC, U+A830-A835;
}

@font-face {
  font-family: 'Noto Sans Malayalam';
  font-style: normal;
  /* A RANGE, not two rules. Google serves one variable file for 400 and 700 — the two
     downloads were byte-identical — so declaring the span points both weights at the
     one file instead of shipping it twice. */
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/NotoSansMalayalam.woff2) format('woff2');
  unicode-range: U+0307, U+0323, U+0951-0952, U+0964-0965, U+0D00-0D7F, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC, U+A830-A832;
}

@font-face {
  font-family: 'Noto Sans Tamil';
  font-style: normal;
  /* A RANGE, not two rules. Google serves one variable file for 400 and 700 — the two
     downloads were byte-identical — so declaring the span points both weights at the
     one file instead of shipping it twice. */
  font-weight: 400 700;
  font-display: swap;
  src: url(/fonts/NotoSansTamil.woff2) format('woff2');
  unicode-range: U+0964-0965, U+0B82-0BFA, U+200C-200D, U+20B9, U+25CC;
}
