/* Vendored fonts so the app works on a LAN with no internet access. Files are
   TTF - modern browsers handle them fine; we accept the size hit to keep the
   build offline-safe.

   Archivo (Daylight Pro UI): https://github.com/Omnibus-Type/Archivo (OFL)
   Rajdhani + Share Tech Mono kept for legacy content (scenario art references
   them by name); UI surfaces use Archivo. */

@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('Archivo-Regular.ttf') format('truetype');
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('Archivo-Medium.ttf') format('truetype');
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('Archivo-SemiBold.ttf') format('truetype');
}
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('Archivo-Bold.ttf') format('truetype');
}

@font-face {
  font-family: 'Rajdhani';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('rajdhani-400.ttf') format('truetype');
}
@font-face {
  font-family: 'Rajdhani';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('rajdhani-500.ttf') format('truetype');
}
@font-face {
  font-family: 'Rajdhani';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('rajdhani-600.ttf') format('truetype');
}
@font-face {
  font-family: 'Rajdhani';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('rajdhani-700.ttf') format('truetype');
}
@font-face {
  font-family: 'Share Tech Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('sharetechmono-400.ttf') format('truetype');
}

/* ---- Scenario-theme display faces (themes.css) --------------------------
   All SIL Open Font License, vendored as latin-subset woff2 from Google
   Fonts (fonts.google.com). One face per theme personality:
     Black Ops One    — tactical stencil headings
     Special Elite    — comms typewriter headings
     Playfair Display — diplomatic serif headings
     Anton            — alert impact headings
     Caveat           — sketchbook big handwriting
     Patrick Hand     — sketchbook labels / body accents               */

@font-face {
  font-family: 'Black Ops One';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('blackopsone-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Special Elite';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('specialelite-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('playfair-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Anton';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('anton-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Caveat';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('caveat-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Patrick Hand';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('patrickhand-400.woff2') format('woff2');
}

/* ---- 2026-09 professional theme worlds (themes.css) ---------------------
   Two more OFL faces, latin woff2 from Google Fonts:
     Instrument Serif — Boardroom editorial headings (regular + italic)
     IBM Plex Mono    — Clinical headings / Blueprint numerals / data labels
   (Caveat, Patrick Hand, Special Elite, Black Ops One stay vendored for
   old scenario art that references them; no theme uses them now.)          */

@font-face {
  font-family: 'Instrument Serif';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('instrumentserif-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Instrument Serif';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('instrumentserif-400i.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('ibmplexmono-400.woff2') format('woff2');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('ibmplexmono-500.woff2') format('woff2');
}

/* Caveat draws its handwritten digits well below cap height, which makes
   numbers inside sketchbook headings look shrunken next to the letters.
   'Caveat Figures' is Caveat for letters with Patrick Hand's full-height
   digits (and currency marks) spliced in via unicode-range — the later
   rule wins where ranges overlap. Used by the sketchbook heading hook in
   themes.css; the big count-up number stays pure Caveat on purpose. */
@font-face {
  font-family: 'Caveat Figures';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('caveat-700.woff2') format('woff2');
}
@font-face {
  font-family: 'Caveat Figures';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('patrickhand-400.woff2') format('woff2');
  unicode-range: U+0030-0039, U+0024, U+00A3, U+20AC;
}

/* ---- 2026-10-14 PREMIERE (themes.css) and the scenario cards -------------
   Two more SIL Open Font License 1.1 families, woff2 from Google Fonts
   (fonts.google.com, css2 API), vendored so a LAN with no internet keeps
   them; Latin and Latin Extended subsets, as Google splits them:
     Big Shoulders Display — condensed poster titles, one variable file per
       subset for weights 700-900 (github.com/xotypeco/big_shoulders)
     Courier Prime         — the screenplay lines: regular, italic, bold
       (quoteunquoteapps.com/courierprime)                                  */

@font-face {
  font-family: 'Big Shoulders Display';
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
  src: url('bigshouldersdisplay-var-latinext.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: 'Big Shoulders Display';
  font-style: normal;
  font-weight: 700 900;
  font-display: swap;
  src: url('bigshouldersdisplay-var-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: 'Courier Prime';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('courierprime-400-latinext.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: 'Courier Prime';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('courierprime-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: 'Courier Prime';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('courierprime-400i-latinext.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: 'Courier Prime';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('courierprime-400i-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: 'Courier Prime';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('courierprime-700-latinext.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: 'Courier Prime';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('courierprime-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;
}
