/* Fonts shipped with the app so it looks the same with no network.
 *
 * Each Indic face carries its own unicode-range, so the browser picks the
 * right one for the script on the page without the stylesheet having to
 * switch anything. The service worker caches them all, so a language can be
 * changed with no network at all. Malayalam, Odia, Bengali (which Assamese
 * shares) and Gujarati came with the eleven new languages, September 2026.
 */
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('space-grotesk-var.woff2') format('woff2-variations');
  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+2074, U+20AC, U+2122, U+2191,
    U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* Noto Sans Kannada */
@font-face { font-family: 'Noto Sans Kannada'; font-style: normal; font-weight: 400; font-display: swap; src: url('noto-kannada-400.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0C80-0CF3, U+1CD0, U+1CD2, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC, U+A830-A835; }
@font-face { font-family: 'Noto Sans Kannada'; font-style: normal; font-weight: 500; font-display: swap; src: url('noto-kannada-500.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0C80-0CF3, U+1CD0, U+1CD2, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC, U+A830-A835; }
@font-face { font-family: 'Noto Sans Kannada'; font-style: normal; font-weight: 600; font-display: swap; src: url('noto-kannada-600.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0C80-0CF3, U+1CD0, U+1CD2, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC, U+A830-A835; }
@font-face { font-family: 'Noto Sans Kannada'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-kannada-700.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0C80-0CF3, U+1CD0, U+1CD2, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC, U+A830-A835; }

/* Noto Sans Devanagari */
@font-face { font-family: 'Noto Sans Devanagari'; font-style: normal; font-weight: 400; font-display: swap; src: url('noto-deva-400.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 Devanagari'; font-style: normal; font-weight: 500; font-display: swap; src: url('noto-deva-500.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 Devanagari'; font-style: normal; font-weight: 600; font-display: swap; src: url('noto-deva-600.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 Devanagari'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-deva-700.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 Telugu */
@font-face { font-family: 'Noto Sans Telugu'; font-style: normal; font-weight: 400; font-display: swap; src: url('noto-telugu-400.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 Telugu'; font-style: normal; font-weight: 500; font-display: swap; src: url('noto-telugu-500.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 Telugu'; font-style: normal; font-weight: 600; font-display: swap; src: url('noto-telugu-600.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 Telugu'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-telugu-700.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0C00-0C7F, U+1CDA, U+1CF2, U+200C-200D, U+25CC; }

/* Noto Sans Tamil */
@font-face { font-family: 'Noto Sans Tamil'; font-style: normal; font-weight: 400; font-display: swap; src: url('noto-tamil-400.woff2') format('woff2'); unicode-range: U+0964-0965, U+0B82-0BFA, U+200C-200D, U+20B9, U+25CC, U+11FC0-11FF1, U+11FFF; }
@font-face { font-family: 'Noto Sans Tamil'; font-style: normal; font-weight: 500; font-display: swap; src: url('noto-tamil-500.woff2') format('woff2'); unicode-range: U+0964-0965, U+0B82-0BFA, U+200C-200D, U+20B9, U+25CC, U+11FC0-11FF1, U+11FFF; }
@font-face { font-family: 'Noto Sans Tamil'; font-style: normal; font-weight: 600; font-display: swap; src: url('noto-tamil-600.woff2') format('woff2'); unicode-range: U+0964-0965, U+0B82-0BFA, U+200C-200D, U+20B9, U+25CC, U+11FC0-11FF1, U+11FFF; }
@font-face { font-family: 'Noto Sans Tamil'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-tamil-700.woff2') format('woff2'); unicode-range: U+0964-0965, U+0B82-0BFA, U+200C-200D, U+20B9, U+25CC, U+11FC0-11FF1, U+11FFF; }

/* Noto Sans Malayalam */
@font-face { font-family: 'Noto Sans Malayalam'; font-style: normal; font-weight: 400; font-display: swap; src: url('noto-malayalam-400.woff2') format('woff2'); unicode-range: 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 Malayalam'; font-style: normal; font-weight: 500; font-display: swap; src: url('noto-malayalam-500.woff2') format('woff2'); unicode-range: 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 Malayalam'; font-style: normal; font-weight: 600; font-display: swap; src: url('noto-malayalam-600.woff2') format('woff2'); unicode-range: 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 Malayalam'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-malayalam-700.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0D00-0D7F, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC, U+A830-A832; }

/* Noto Sans Oriya */
@font-face { font-family: 'Noto Sans Oriya'; font-style: normal; font-weight: 400; font-display: swap; src: url('noto-oriya-400.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0B01-0B77, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC; }
@font-face { font-family: 'Noto Sans Oriya'; font-style: normal; font-weight: 500; font-display: swap; src: url('noto-oriya-500.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0B01-0B77, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC; }
@font-face { font-family: 'Noto Sans Oriya'; font-style: normal; font-weight: 600; font-display: swap; src: url('noto-oriya-600.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0B01-0B77, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC; }
@font-face { font-family: 'Noto Sans Oriya'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-oriya-700.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0B01-0B77, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC; }

/* Noto Sans Bengali */
@font-face { font-family: 'Noto Sans Bengali'; font-style: normal; font-weight: 400; font-display: swap; src: url('noto-bengali-400.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 Bengali'; font-style: normal; font-weight: 500; font-display: swap; src: url('noto-bengali-500.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 Bengali'; font-style: normal; font-weight: 600; font-display: swap; src: url('noto-bengali-600.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 Bengali'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-bengali-700.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; }

/* Noto Sans Gujarati */
@font-face { font-family: 'Noto Sans Gujarati'; font-style: normal; font-weight: 400; font-display: swap; src: url('noto-gujarati-400.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 Gujarati'; font-style: normal; font-weight: 500; font-display: swap; src: url('noto-gujarati-500.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 Gujarati'; font-style: normal; font-weight: 600; font-display: swap; src: url('noto-gujarati-600.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 Gujarati'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-gujarati-700.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0A80-0AFF, U+200C-200D, U+20B9, U+25CC, U+A830-A839; }

/* The almanac serif, one weight, used only for the large tithi and vara and
   the names in the almanac table on Today. Fraunces for Latin (with the
   extended range, so IAST diacritics in a sankalpa render in the same face),
   Noto Serif for the eight Indic scripts. SIL Open Font License, all of them. */
@font-face { font-family: 'Anudina Serif'; font-style: normal; font-weight: 700; font-display: swap; src: url('fraunces-latin-700.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: 'Anudina Serif'; font-style: normal; font-weight: 700; font-display: swap; src: url('fraunces-latin-ext-700.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, 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; }
@font-face { font-family: 'Anudina Serif'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-serif-kannada-700.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: 'Anudina Serif'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-serif-deva-700.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: 'Anudina Serif'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-serif-telugu-700.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: 'Anudina Serif'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-serif-tamil-700.woff2') format('woff2'); unicode-range: U+0964-0965, U+0B82-0BFA, U+200C-200D, U+20B9, U+25CC; }
@font-face { font-family: 'Anudina Serif'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-serif-malayalam-700.woff2') format('woff2'); unicode-range: 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: 'Anudina Serif'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-serif-oriya-700.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0B01-0B77, U+1CDA, U+1CF2, U+200C-200D, U+20B9, U+25CC; }
@font-face { font-family: 'Anudina Serif'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-serif-bengali-700.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: 'Anudina Serif'; font-style: normal; font-weight: 700; font-display: swap; src: url('noto-serif-gujarati-700.woff2') format('woff2'); unicode-range: U+0951-0952, U+0964-0965, U+0A80-0AFF, U+200C-200D, U+20B9, U+25CC, U+A830-A839; }
