/* ============================================================================
   Sistema OSECAC — Tipografías
   ----------------------------------------------------------------------------
   Las tres familias del sistema, servidas **desde este proyecto**. Se carga
   ANTES que `tokens.css`, que es donde viven `--f-titulo`, `--f-texto` y
   `--f-dato`: acá se declaran los archivos, allá se declara quién los usa.

   ## Por qué no se cargan de Google Fonts

   Hasta el 06/09/2026 las tres venían de `fonts.googleapis.com`. Se trajeron
   adentro por cinco razones, y la tercera es la que no se negocia:

   1. La hoja de Google **bloquea el primer pintado** y, con ella, los scripts
      diferidos. Un inspector con señal mala mira una pantalla en blanco.
   2. Nos rompía la medición: el servicio respondía de manera intermitente
      desde el entorno de desarrollo, que es peor que fallar siempre.
   3. ⚠️ Cada visita le mandaba **la IP del usuario a un tercero**. Con la
      residencia de datos (Ley 25.326) todavía abierta como pregunta, esto la
      saca del tablero en vez de discutirla.
   4. Un service worker no cachea con garantías una respuesta de otro origen:
      sin esto, la PWA de **T035** no resiste la mala señal del todo.
   5. El diseño deja de depender de que un servicio externo siga sirviendo la
      misma versión. `Archivo v25` podía pasar a `v26` con métricas distintas.

   ## Lo que hay adentro — y por qué son cinco archivos y no once

   🔍 **Archivo y Figtree son tipografías variables.** Un solo `woff2` por
   familia cubre TODO el eje de peso; Google emitía cuatro `@font-face` por
   familia apuntando al mismo archivo, que es una compatibilidad para
   navegadores viejos, no cuatro descargas. Por eso acá va **una** declaración
   por familia con el rango completo (`font-weight: 100 900`), y el navegador
   interpola el peso que le pidan. IBM Plex Mono sí es estática: tres archivos,
   uno por peso.

   Subconjunto **latin** en los cinco. Alcanza para el español: verificado que
   están á é í ó ú ñ ü ¿ ¡ ° º ª — – … « » $ €.

   🔍 **`font-optical-sizing`: no se declara, y es a propósito** (T171, 08/10/2026).
   El valor por defecto del navegador es `auto` —«aplicá el eje `opsz` si la
   fuente lo trae»— y **ninguna de las tres lo trae**: Archivo y Figtree sólo
   tienen `wght` (el subconjunto latin no incluye ni `wdth`), y Plex Mono es
   estática. Así que `auto` es inocuo: no cambia ni un píxel. Escribirlo
   sería prometer un ajuste óptico que el producto no tiene. Si algún día se
   incorpora una fuente con `opsz`, ahí sí se decide —y se mide— por familia.
   Lo guarda `interno/tests/test_t171_texto_en_rem.py`.

   ✅ **Licencia SIL Open Font License** en las tres familias (viven bajo
   `ofl/` en `google/fonts`), que permite autoalojar y redistribuir. Versión,
   origen y fecha de descarga en `tipografias/LEEME.md`.

   `font-display: swap` en todas: el texto se lee desde el primer cuadro con la
   familia de respaldo y cambia al llegar la definitiva. La página nunca queda
   en blanco esperando una letra.
   ========================================================================== */

/* ── Archivo — títulos y cifras (`--f-titulo`) ──────────────────────────────
   Eje de peso 100–900. El sistema le pide 500, 600, 700 y 800. */
@font-face{
  font-family:"Archivo";
  font-style:normal;
  font-weight:100 900;
  font-stretch:100%;
  font-display:swap;
  src:url("tipografias/archivo-latin-variable.cd56e2ec63d7.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;
}

/* ── Figtree — texto corrido (`--f-texto`) ──────────────────────────────────
   ⚠️ Su eje arranca en 300, no en 100. Pedirle menos de 300 no da una letra
   más fina: da 300. El sistema le pide 400, 500, 600 y 700, así que no toca
   el borde — pero si alguien agrega un `--peso-` más liviano, es acá. */
@font-face{
  font-family:"Figtree";
  font-style:normal;
  font-weight:300 900;
  font-display:swap;
  src:url("tipografias/figtree-latin-variable.202cfb54d4e6.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;
}

/* ── IBM Plex Mono — datos, CUILes, importes (`--f-dato`) ───────────────────
   Estática: un archivo por peso. Los tres tienen que estar, porque un peso
   que falta **no falla**: el navegador lo sintetiza engordando la letra por su
   cuenta, y el resultado se ve mal sin que nada proteste. */
@font-face{
  font-family:"IBM Plex Mono";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("tipografias/ibm-plex-mono-latin-400.79936b18df9f.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:"IBM Plex Mono";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("tipografias/ibm-plex-mono-latin-500.b1c8a895f5fd.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:"IBM Plex Mono";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("tipografias/ibm-plex-mono-latin-600.5a2ce7798732.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;
}
