/* ============================================================================
   Slab text type — Libre Franklin (+ Barlow Condensed on the timeclock board).
   SELF-HOSTED: the woff2 files ship from Slab out of /fonts/, so no page blocks
   on a third-party request before its text renders and Google receives no hit
   when anyone opens a Slab page. Do NOT swap this back for the Google Fonts CDN
   — that is the same rule the icon font lives under (see slab-icons.css).
   Regenerate the files with tools/build-text-font.sh; verify with
   `node test/fonts-selfhost.test.js`.

   ONE declaration, linked by every page — not a copy pasted into 26 <head>s.
   It is a stylesheet rather than an injection from nav.js because NINE pages
   never load nav.js (field, m, m-field, m-office, m-owner, m-pm, privacy,
   schedule, terms) and would have been left with no text font at all,
   and because an @font-face injected by script arrives after parse and
   guarantees the reflow that font-display:block exists to prevent.

   Libre Franklin is a VARIABLE font: one file serves the whole 400..800 axis,
   which is every weight Slab uses (400/500/600/700/800, measured from the
   font-weight declarations in public/ — no 900 anywhere, despite five pages
   having asked the CDN for it).

   font-display:block matches the icon font. These files are same-origin and
   ~29KB, so the block period is a few milliseconds — text paints once, in the
   right face, with no swap and no reflow. `swap` would have traded the
   third-party request for a guaranteed flash of fallback text on every load.

   Fallback: every rule in Slab reads `'Libre Franklin',sans-serif`, so a 404 on
   these files degrades to the platform sans rather than to a serif.

   LICENCE: both faces are SIL Open Font License 1.1. Serving the woff2 from
   /fonts/ is redistribution, which obliges us to carry the licence and its
   copyright notice alongside them — see fonts/LICENSE-libre-franklin-OFL.txt
   and fonts/LICENSE-barlow-condensed-OFL.txt, refreshed by the build script.
   The OFL permits this freely; it forbids only selling the fonts on their own,
   and requires that any MODIFIED version be renamed.
   ========================================================================== */

/* latin — U+0000-00FF covers ASCII plus the accented Latin-1 that shows up in
   vendor and project names (í é ó á ñ ÿ), and U+2000-206F the em dash, curly
   quotes, bullet and ellipsis Slab's copy uses throughout. */
@font-face{
  font-family:'Libre Franklin';
  font-style:normal;
  font-weight:400 800;
  font-display:block;
  src:url('/fonts/libre-franklin-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;
}

/* latin-ext — nothing in the source needs it today, but names arrive from
   QuickBooks and the field. Its own unicode-range means the browser downloads
   it only if such a character actually renders: it costs bytes in the repo and
   nothing on the wire. */
@font-face{
  font-family:'Libre Franklin';
  font-style:normal;
  font-weight:400 800;
  font-display:block;
  src:url('/fonts/libre-franklin-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;
}

/* Barlow Condensed 700 — the timeclock board and printed poster only
   (.board-top .l1/.tag, .bcard .site, .poster .*). One weight, latin only. */
@font-face{
  font-family:'Barlow Condensed';
  font-style:normal;
  font-weight:700;
  font-display:block;
  src:url('/fonts/barlow-condensed-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;
}

/* The stack Slab's own rules already spell out, as a token for new code. */
:root{
  --slab-font-text:'Libre Franklin',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
}
