/* Cybereum web-font fallbacks. Linked only by the shared head fragment, next
   to the Google Fonts request, so pages that never load the web fonts
   (legal utilities, 404, internal consoles) do not get these faces: on those
   pages the "… Fallback" names in --cyb-display / --cyb-body resolve to
   nothing and the stacks fall through to the system UI font as before. */
/* Metric-matched fallbacks: while the web fonts are in flight, text is set in a
   local Arial-compatible face scaled to the web font's average advance and
   vertical metrics, so headlines keep their line breaks when the swap lands.
   Values derived from the Google Fonts latin files with fontTools. The
   Michroma fallback leaves out the symbols Michroma itself lacks (primes,
   arrows, ≤, ✓), so in display text those fall through to IBM Plex Sans
   rather than to a 142%-scaled Arial. */
@font-face{font-family:"Michroma Fallback";src:local("Arial"),local("ArialMT"),local("Helvetica"),local("Liberation Sans"),local("Arimo"),local("Arimo Regular"),local("Arimo-Regular"),local("Roboto"),local("Roboto Regular"),local("Roboto-Regular");unicode-range:U+0000-2031,U+2034-218F,U+2200-2263,U+2265-25B7,U+25B9-2712,U+2714-10FFFF;size-adjust:142%;ascent-override:81.4%;descent-override:18.7%;line-gap-override:0%}
@font-face{font-family:"IBM Plex Sans Fallback";font-weight:100 500;src:local("Arial"),local("ArialMT"),local("Helvetica"),local("Liberation Sans"),local("Arimo"),local("Arimo Regular"),local("Arimo-Regular"),local("Roboto"),local("Roboto Regular"),local("Roboto-Regular");size-adjust:101.4%;ascent-override:101.1%;descent-override:27.1%;line-gap-override:0%}
@font-face{font-family:"IBM Plex Sans Fallback";font-weight:600 700;src:local("Arial Bold"),local("Arial-BoldMT"),local("Helvetica Bold"),local("Liberation Sans Bold"),local("Arimo Bold");size-adjust:96.6%;ascent-override:106.1%;descent-override:28.5%;line-gap-override:0%}

/* Typographic defaults for the web faces. They live here, not in site-core, because
   they are statements about Michroma (one 400 weight) and IBM Plex Sans (semibold
   emphasis): pages that load no web fonts keep the browser's bold system headings.
   :where() keeps them at zero specificity so any page rule wins. */
:where(h1,h2){font-weight:400;line-height:1.12}
:where(h3,h4,h5,h6){font-weight:600;line-height:1.3}
:where(b,strong,th){font-weight:600}

/* If the web fonts fail (blocked network), site-theme.js marks the root and the
   stacks drop only the metric-matched fallbacks (the web faces stay listed, so a face that does arrive is still used): Arial at 142% matches
   Michroma's width but not its short caps, so multi-line display text would sit too
   tight for good. During a normal load the fallback is on screen only briefly. */
:root.cyb-display-font-unavailable{--cyb-display:"Michroma","IBM Plex Sans",ui-sans-serif,system-ui,sans-serif}
:root.cyb-body-font-unavailable{--cyb-body:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif}
