/* ============================================================
   NUNITO, SELF-HOSTED — AND WHY IT MUST STAY THAT WAY
   ============================================================
   index.html used to pull this font from fonts.googleapis.com and
   fonts.gstatic.com on EVERY page view, INCLUDING A CHILD'S. A font request
   sends the visitor's IP address, and 16 CFR 312.2 lists an IP address as
   personal information — so the app was disclosing a child's personal
   information to a third party on every single screen.

   That is not a cosmetic problem here, because it undercuts three things at
   once:

     1. THE CONSENT METHOD. "Email plus" (16 CFR 312.5) is only available to
        operators that do NOT disclose children's personal information to
        third parties. Migration 0032 and supabase/PARENTAL_CONSENT.md rest
        on that condition. Re-add a third-party request and the cheap consent
        route arguably stops being available — the alternative is card or ID
        verification for every free family.
     2. THE PRIVACY CLAIM. The app tells parents it does not share their
        data. A font CDN request makes that sentence false.
     3. APPLE'S KIDS CATEGORY, which asks directly about sending personally
        identifiable information or device information to third parties.

   So: the font is served from our own origin and no page makes a
   third-party request of any kind. DO NOT put the Google Fonts <link> back,
   and do not add another third-party stylesheet, script, pixel, font or
   analytics tag — each one re-opens all three problems together.

   ---------------------------------------------------------------
   ONE FILE PER SUBSET, NOT ONE PER WEIGHT. Nunito is a VARIABLE font:
   Google's css2 endpoint lists five @font-face blocks for weights
   400/600/700/800/900, but all five point at the SAME woff2 (verified by
   checksum — the five latin files were byte-identical). Downloading each
   weight separately shipped 380 KB where 76 KB does the same job. The
   `font-weight: 400 900` range below is what tells the browser one file
   covers them all.

   SUBSETS: latin + latin-ext only. That covers English and European
   accented names — José, Zoë, Håkon. Google also serves cyrillic,
   cyrillic-ext and vietnamese, which were most of the bytes for an audience
   this app does not have yet. Add a subset back deliberately if that
   changes, rather than shipping it speculatively.

   `font-display: swap` is kept from Google's own CSS: text paints
   immediately in the fallback and re-renders when the font arrives, which
   matters more now that the file is on our origin and not a CDN edge.
   ============================================================ */

/* latin-ext */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(/fonts/nunito-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;
}

/* latin */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 400 900;
  font-display: swap;
  src: url(/fonts/nunito-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;
}
