/* ============================================================
   Caigua 3.0 — Tipografías (#278)
   ------------------------------------------------------------
   Caprasimo para titulares y Figtree para todo lo demás, las dos
   **autoalojadas**: nada de CDN, que es la regla 1 del proyecto.
   Los ficheros están en `static/fonts/`, bajados una vez de
   Google Fonts. Las dos son OFL 1.1 — ver `fonts/LICENCIA.txt`.

   ## Por qué esto no es solo un @font-face

   `tokens.css` decía, con todas las letras, «pilas del sistema,
   sin descargar ninguna fuente — media pantalla en blanco en el
   móvil del huerto no la paga nadie». Con `font-display: swap`
   no hay pantalla en blanco, pero sí un intercambio, y el
   intercambio mueve el texto. Eso es CLS, y CLS es señal de
   posicionamiento: la wiki existe para que la encuentren.

   Así que cada fuente lleva **un fallback con sus métricas
   ajustadas**. Mientras la real se descarga se pinta la del
   sistema estirada hasta ocupar exactamente lo mismo, y al
   llegar la buena no se mueve una línea.

   ## De dónde salen los porcentajes

   Medidos con fontTools sobre los ficheros que se sirven, no
   copiados de ningún sitio:

     size-adjust       = anchoMedio(fuente) / anchoMedio(Arial)
     ascent-override   = ascender / upm / size-adjust
     descent-override  = |descender| / upm / size-adjust

   El ancho medio se midió sobre una muestra de prosa botánica en
   español —con sus tildes y su eñe—, no sobre el alfabeto suelto.
   Arial es la referencia porque es la única cara que está en los
   tres sistemas; en Linux entra por Liberation Sans o Arimo, que
   son métricamente idénticas y por eso están en el `local()`.

     Figtree     ancho 0.4761 em · Arial 0.4842 · a 1.7 % de distancia
     Caprasimo   ancho 0.5511 em · Arial 0.4842 · un 13.8 % más ancha

   Esa segunda cifra es la que había que arreglar: sin ajustar,
   cada titular del sitio pegaba un salto al cargar la fuente.

   ## Peso

   60 KB los cuatro ficheros. Figtree es **variable** (eje wght
   300–900), así que los tres pesos que usa el sitio —400, 600 y
   700— salen de un solo fichero de 20 KB en vez de tres.
   ============================================================ */

/* --- Caprasimo 400 — titulares ----------------------------------- */

@font-face {
  font-family: "Caprasimo";
  src: url("../fonts/caprasimo-latin.c7371a20ecd7.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  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: "Caprasimo";
  src: url("../fonts/caprasimo-latin-ext.cafc1973f2b8.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  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;
}

/* --- Figtree 300–900 — cuerpo, interfaz y datos ------------------- */

/* Un solo fichero por rango: es variable, y el navegador saca de él el 400 del
   cuerpo, el 600 de los nombres y el 700 de lo que va en negrita. */

@font-face {
  font-family: "Figtree";
  src: url("../fonts/figtree-latin.202cfb54d4e6.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
  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: "Figtree";
  src: url("../fonts/figtree-latin-ext.eca8d8b337ff.woff2") format("woff2");
  font-weight: 300 900;
  font-style: normal;
  font-display: swap;
  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;
}

/* --- Los fallbacks ajustados -------------------------------------- */

/* No descargan nada: `local()` a secas, así que si ninguna de las cuatro está
   en el sistema la cara sencillamente no carga y la pila sigue a la siguiente,
   que es exactamente lo que pasaba antes de #278. Nunca deja texto sin pintar. */

@font-face {
  font-family: "Figtree fallback";
  src: local("Arial"), local("Liberation Sans"), local("Arimo"),
       local("Helvetica Neue"), local("Helvetica");
  size-adjust: 98.34%;
  ascent-override: 96.60%;
  descent-override: 25.42%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Caprasimo fallback";
  src: local("Arial"), local("Liberation Sans"), local("Arimo"),
       local("Helvetica Neue"), local("Helvetica");
  size-adjust: 113.83%;
  ascent-override: 80.64%;
  descent-override: 20.12%;
  line-gap-override: 0%;
}
