/* V1 editorial system — typography. Self-hosted WOFF2 (Latin + Latin
   Extended), matching the existing Cormorant/Inter pattern in styles.css.
   Was a remote Google Fonts @import; the font-swap reflow it caused tipped
   Lighthouse's CLS budget over 0.1 on the longer identity-family pages
   (autor.html, prensa.html) once the family grew past a few short pages.
   Files pulled from fonts.googleapis.com's own CSS2 response, same bytes
   Google serves, just self-hosted with font-display:optional preserved. */
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:optional;src:url('fonts/is-normal-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:optional;src:url('fonts/is-normal-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:'Instrument Serif';font-style:italic;font-weight:400;font-display:optional;src:url('fonts/is-italic-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:optional;src:url('fonts/is-italic-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:'Manrope';font-style:normal;font-weight:400 700;font-display:optional;src:url('fonts/mr-normal-400-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:optional;src:url('fonts/mr-normal-400-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:'Newsreader';font-style:normal;font-weight:400 600;font-display:optional;src:url('fonts/nr-normal-400-600-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}
@font-face{font-family:'Newsreader';font-style:normal;font-weight:400 600;font-display:optional;src:url('fonts/nr-normal-400-600-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:'Newsreader';font-style:italic;font-weight:400;font-display:optional;src:url('fonts/nr-italic-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Newsreader';font-style:italic;font-weight:400;font-display:optional;src:url('fonts/nr-italic-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}

/* Allura — rotulo a pluma del hero cinematico de Home (menu/Comprar/
   Explorar). El autor pidio a otra IA identificar la fuente del texto
   quemado en el video ("David Porto Díaz — Escritor", caligrafia dibujada
   a mano, sin fuente exacta); de las sugeridas, Allura es la unica de uso
   libre y la que mas se acerca en forma. Se engrosa un poco por CSS
   (-webkit-text-stroke) porque el trazo original es algo mas grueso. */
@font-face{font-family:'Allura';font-style:normal;font-weight:400;font-display:optional;src:url('fonts/al-normal-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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Allura';font-style:normal;font-weight:400;font-display:optional;src:url('fonts/al-normal-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}

/* Yellowtail — script probado en la comparativa de tipografia para el
   hero de Home (kicker "Obra actual", titulo, enlaces "Abrir"), aproximacion
   libre al abecedario dorado/azul generado por el autor en GPT (no hay una
   fuente de uso libre identica al trazo original). Solo el subset 'latin':
   cubre todos los caracteres del español (incluidas vocales acentuadas y ñ,
   todas dentro de U+0000-00FF), no hace falta latin-ext para este uso.
   font-display was 'optional': the browser gives it a near-zero block
   window and, if it isn't already cached from a previous visit, commits to
   the fallback font for that entire page view and never swaps in
   Yellowtail even after the (preloaded) file finishes downloading a moment
   later -- this was the "a veces se ve mal esas letras" bug on reload.
   'swap' guarantees it always ends up rendering correctly once loaded; the
   kicker is short decorative text, so the swap's layout impact is
   negligible. */
@font-face{font-family:'Yellowtail';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/yellowtail-normal-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}

/* Metric-matched fallbacks (Georgia's outlines, forced to Newsreader's/
   Instrument Serif's own vertical metrics + size-adjust) so that IF a
   fallback ever paints before the webfont does, its line boxes already
   match -- no reflow left for the eventual swap to cause, even under
   font-display:optional's brief block period. Values computed from each
   font's own OS/2 table (useTypoMetrics on both) against Georgia's,
   using the standard ascent/descent/size-adjust formula (as in Fontaine/
   next/font): sizeAdjust = (target xAvgCharWidth/unitsPerEm) / (Georgia
   xAvgCharWidth/unitsPerEm); overrides = (target metric/unitsPerEm) /
   sizeAdjust. Referenced first in --font-reading/--font-display, ahead
   of the other named fallbacks.

   `local('Georgia')` alone silently fails to resolve on Linux (GitHub
   Actions runners and most desktop-Linux visitors don't have Georgia
   installed) -- the whole @font-face then has no usable src, so the
   browser skips straight to the next unmatched fallback in the stack
   and the swap-proof guarantee above is lost exactly where CI runs.
   ascent-override/descent-override/line-gap-override force the SAME
   line-box height no matter which local() resolves, so chaining
   Liberation Serif (fonts-liberation, on virtually every Linux distro
   incl. GH Actions' ubuntu-latest image) and DejaVu Serif keeps the
   height guarantee cross-platform; only size-adjust's glyph-width match
   stays Georgia-specific when a different font resolves, a much smaller
   residual effect than the reflow this exists to prevent. */
@font-face{font-family:'Newsreader Fallback';src:local('Georgia'),local('Liberation Serif'),local('DejaVu Serif');size-adjust:123.53%;ascent-override:59.51%;descent-override:21.45%;line-gap-override:0%}
@font-face{font-family:'Instrument Serif Fallback';src:local('Georgia'),local('Liberation Serif'),local('DejaVu Serif');size-adjust:95.91%;ascent-override:103.23%;descent-override:32.32%;line-gap-override:0%}

/* The two faces above only cover font-style:normal. An unmatched *italic*
   entry in the same family isn't synthesized against these metrics -- the
   cascade skips straight past the family to the next stack entry (Iowan Old
   Style/Charter/Georgia, none resolving on Linux either), landing on
   unmatched generic serif. Articles with an italic blockquote (Instrument
   Serif italic) or italic emphasis in body copy (Newsreader italic) hit
   this; que-es-el-portal-fantasy does, feria-libro-madrid mostly doesn't,
   which is why fixing only the normal faces above closed CLS on one
   article page but not the other. */
@font-face{font-family:'Newsreader Fallback';font-style:italic;src:local('Georgia'),local('Liberation Serif'),local('DejaVu Serif');size-adjust:111.95%;ascent-override:65.66%;descent-override:23.67%;line-gap-override:0%}
@font-face{font-family:'Instrument Serif Fallback';font-style:italic;src:local('Georgia'),local('Liberation Serif'),local('DejaVu Serif');size-adjust:98.88%;ascent-override:100.12%;descent-override:31.35%;line-gap-override:0%}

/* Same technique, Arial as the width reference instead of Georgia (Manrope
   and Allura's own stacks are sans/cursive, not serif) -- Manrope backs
   --font-ui (used inside .article-note/figcaption/table, i.e. inside the
   article reading column) and Allura backs --font-script (the 3-line
   initial-letter drop cap at the top of every article's first paragraph).
   Both were missing this fallback entirely, which is what CI's Lighthouse
   run was actually catching as the CLS regression on Cuaderno articles --
   the reading/display fonts above were already swap-proof, these weren't.
   The drop cap especially amplifies any mismatch: a single 3.4em glyph
   floated into the paragraph, so even a modest metric gap moves a lot of
   text. Liberation Sans/DejaVu Sans are the ubuntu-latest-safe pair here,
   same role Liberation/DejaVu Serif play above. */
@font-face{font-family:'Manrope Fallback';src:local('Arial'),local('Liberation Sans'),local('DejaVu Sans'),local('Helvetica');size-adjust:128.11%;ascent-override:83.21%;descent-override:23.42%;line-gap-override:0%}
@font-face{font-family:'Allura Fallback';src:local('Arial'),local('Liberation Sans'),local('DejaVu Sans'),local('Helvetica');size-adjust:130.27%;ascent-override:61.41%;descent-override:34.54%;line-gap-override:0%}
