/* Generado por scripts/figuras.mjs desde styles/fonts.css: fuentes propias de las figuras. */
/* Fuentes propias del Sistema Subrayador. Cero peticiones externas (CSP font-src 'self').
 *
 * Origen (descargadas el 18-oct-2026; licencia SIL OFL 1.1 junto a cada archivo, public/fonts/<familia>/OFL.txt):
 * - Bricolage Grotesque v9 (Google Fonts): variable opsz 12-96 · wght 200-800; se declara 600-800.
 * - Inter v20 (Google Fonts): variable opsz 14-32 · wght; se declara 400-700.
 * - Kalam v18 (Google Fonts): estáticas 400 y 700.
 * - JetBrains Mono v24 (Google Fonts): variable wght; se declara 400-700 porque el sistema usa
 *   400 (metadatos), 600 (antetítulos) y 700 (etiqueta Pro).
 *   Los cuatro, en los subconjuntos latin y latin-ext de Google Fonts con su unicode-range:
 *   el navegador solo descarga latin-ext si la página lo necesita. Más un archivo «simbolos»
 *   (parámetro text= de Google Fonts) con flechas y operadores que latin no trae (→ ≈ ≤ ≥ ≠ ∞ ∫…),
 *   para que el folio y las anotaciones no caigan al fallback.
 * - STIX Two Math v12 (Google Fonts, sin subconjuntos): recortado con pyftsubset (fontTools) a
 *   latín, latín extendido A, griego, operadores, flechas y alfanuméricos matemáticos
 *   (cursiva, negrita, caligráfica y de doble trazo). Conserva la tabla MATH para MathML.
 *
 * Fallbacks: Arial/Liberation Sans, Courier New/Liberation Mono y Times New Roman/Liberation
 * Serif con size-adjust y overrides calculados con fontTools (anchura de un texto de muestra
 * en castellano y métricas verticales de cada fuente), para que el cambio de fuente no mueva
 * la maqueta. */

@font-face {
  font-family: "Bricolage Grotesque";
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url("/fonts/bricolage-grotesque/bricolage-grotesque-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;
}
@font-face {
  font-family: "Bricolage Grotesque";
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url("/fonts/bricolage-grotesque/bricolage-grotesque-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Bricolage Grotesque";
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url("/fonts/bricolage-grotesque/bricolage-grotesque-simbolos.woff2") format("woff2");
  unicode-range: U+2190, U+2192, U+2202, U+2205, U+2206, U+2211, U+221A, U+221E, U+222B, U+2248, U+2260, U+2264, U+2265;
}

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/inter/inter-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;
}
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/inter/inter-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/inter/inter-simbolos.woff2") format("woff2");
  unicode-range: U+2190, U+2192, U+2194, U+21D2, U+21D4, U+2202, U+2205, U+2206, U+2211, U+221A, U+221E, U+222B, U+2248, U+2260, U+2264, U+2265;
}

@font-face {
  font-family: Kalam;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/kalam/kalam-400-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;
}
@font-face {
  font-family: Kalam;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/kalam/kalam-400-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: Kalam;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/kalam/kalam-400-simbolos.woff2") format("woff2");
  unicode-range: U+2202, U+2206, U+2211, U+221A, U+221E, U+222B, U+2248, U+2260, U+2264, U+2265;
}
@font-face {
  font-family: Kalam;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/kalam/kalam-700-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;
}
@font-face {
  font-family: Kalam;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/kalam/kalam-700-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: Kalam;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/fonts/kalam/kalam-700-simbolos.woff2") format("woff2");
  unicode-range: U+2202, U+2206, U+2211, U+221A, U+221E, U+222B, U+2248, U+2260, U+2264, U+2265;
}

@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/jetbrains-mono/jetbrains-mono-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;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/jetbrains-mono/jetbrains-mono-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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("/fonts/jetbrains-mono/jetbrains-mono-simbolos.woff2") format("woff2");
  unicode-range: U+2190, U+2192, U+2194, U+2200, U+2202, U+2203, U+2208, U+2209, U+220B, U+220C, U+2211, U+221A, U+221E, U+222B, U+2248, U+2249, U+2260, U+2264, U+2265, U+2282-2285;
}

@font-face {
  font-family: "STIX Two Math";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/fonts/stix-two-math/stix-two-math.woff2") format("woff2");
}

/* Fallbacks con métricas ajustadas. */
@font-face {
  font-family: "Bricolage Grotesque Fallback";
  src: local("Arial Bold"), local("Arial-BoldMT"), local("Liberation Sans Bold"), local("Arimo Bold");
  /* Anchura de Bricolage 800 con opsz 24-30 (titulares y botones), no la de opsz 96. */
  size-adjust: 100%;
  ascent-override: 93%;
  descent-override: 27%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Arimo");
  size-adjust: 105.47%;
  ascent-override: 91.85%;
  descent-override: 22.87%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Kalam Fallback";
  src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("Arimo");
  size-adjust: 98.25%;
  ascent-override: 108.2%;
  descent-override: 54.05%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "JetBrains Mono Fallback";
  src: local("Courier New"), local("CourierNewPSMT"), local("Liberation Mono"), local("Cousine");
  size-adjust: 100%;
  ascent-override: 102%;
  descent-override: 30%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "STIX Two Math Fallback";
  src: local("Times New Roman"), local("TimesNewRomanPSMT"), local("Liberation Serif"), local("Tinos");
  size-adjust: 103.47%;
  ascent-override: 73.65%;
  descent-override: 23%;
  line-gap-override: 24.16%;
}
