/* Self-hosted Google Fonts (latin subset) for offline / Capacitor use.
   No CDN, no runtime Google Fonts request — every file is in assets/fonts/.

   ⚠ These are VARIABLE fonts. Each family is ONE file covering its whole weight
   axis, declared with a weight RANGE ("400 800", not "400").

   Before 2026-08-26 this file declared one @font-face per weight, each pointing
   at a differently-named but byte-identical copy of the same variable file:
   13 files, 441 KB, of which 339 KB was duplicate bytes that a phone downloaded
   five times over. Consolidating to one file per family is the whole fix.

   Baloo 2 and Nunito are still DECLARED because the app hardcodes those names
   (88 and 110 references) — but since 2026-09-19 they load the Fredoka and Lexend
   files (see the note above their faces). */

/* Fredoka — display. Also what Khan Academy Kids uses. */
@font-face{
  font-family:'Fredoka';
  font-style:normal;
  font-weight:300 700;              /* variable axis */
  font-display:swap;
  src:url(../assets/fonts/fredoka.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;
}

/* Lexend — body. Designed to aid reading fluency; added 2026-08-26. */
@font-face{
  font-family:'Lexend';
  font-style:normal;
  font-weight:300 700;
  font-display:swap;
  src:url(../assets/fonts/lexend.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;
}

/* Baloo 2 and Nunito — RE-POINTED at Fredoka and Lexend (design pass, 2026-09-19).
   styles.css still names "Baloo 2" 88 times and "Nunito" 110 times. Rather than edit
   every selector, the two old NAMES now load the approved files, so every screen
   renders Fredoka + Lexend. baloo2.woff2 and nunito.woff2 are no longer loaded.

   ⚠ The weight is split in two faces per name, on purpose. The old rules ask for 700
   and 800 everywhere; in these round faces that reads as shouting. A request for
   600 or heavier matches the single-weight 600 face, and Chrome clamps the variable
   axis to that face's range, so it renders at 600 — a real weight, never synthesised
   (html{font-synthesis:none} in css/skin.css).
   ⚠ Do not give either name a face whose range reaches past 599 besides the 600 one:
   a range that CONTAINS 800 beats the 600 face and the cap stops working.
   To undo: restore the two blocks from git (they pointed at baloo2/nunito.woff2). */
@font-face{
  font-family:'Baloo 2';
  font-style:normal;
  font-weight:400 599;
  font-display:swap;
  src:url(../assets/fonts/fredoka.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:'Baloo 2';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url(../assets/fonts/fredoka.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:'Nunito';
  font-style:normal;
  font-weight:200 599;
  font-display:swap;
  src:url(../assets/fonts/lexend.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:'Nunito';
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url(../assets/fonts/lexend.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;
}
