/* Copyright 2014 The DM Sans Project Authors (https://github.com/googlefonts/dm-fonts)
 * Copyright 2021 The Outfit Project Authors (https://github.com/Outfitio/Outfit-Fonts)
 * Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)
 *
 * These three families are licensed under the SIL Open Font License 1.1
 * (https://openfontlicense.org). OFL clause 2 requires this notice to travel with every
 * redistributed copy — and these woff2 files ARE redistributed, served to every visitor from the
 * published build, not just used at development time. Subsetting to a unicode range is a permitted
 * modification; no glyph outlines were altered. See THIRD_PARTY_NOTICES.md. */

/* src/fonts/fonts.css — LibrePT-vendored variable webfonts (DM Sans, Outfit, JetBrains
 * Mono), latin + latin-ext subsets only (latin-ext covers Slovenian č/š/ž). Vendored from
 * Google Fonts so the offline-first PWA has ZERO third-party font origin: no fonts.googleapis
 * .com / fonts.gstatic.com fetch, so the CSP needs no external font host and a signal-less
 * first load still renders in-brand. To regenerate: fetch the Google Fonts css2 stylesheet for
 * these families with a modern-browser UA, keep only the latin + latin-ext @font-face blocks,
 * download their woff2 files here, and rewrite each src url() to the local ./filename. */

/* latin-ext */
@font-face {
  font-family: "DM Sans";
  font-style: italic;
  font-weight: 100 1000;
  font-display: swap;
  src: url(./dmsans-italic-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;
}

/* latin */
@font-face {
  font-family: "DM Sans";
  font-style: italic;
  font-weight: 100 1000;
  font-display: swap;
  src: url(./dmsans-italic-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 */
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url(./dmsans-normal-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;
}

/* latin */
@font-face {
  font-family: "DM Sans";
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url(./dmsans-normal-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 */
@font-face {
  font-family: "JetBrains Mono";
  font-style: italic;
  font-weight: 100 800;
  font-display: swap;
  src: url(./jetbrainsmono-italic-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;
}

/* latin */
@font-face {
  font-family: "JetBrains Mono";
  font-style: italic;
  font-weight: 100 800;
  font-display: swap;
  src: url(./jetbrainsmono-italic-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 */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url(./jetbrainsmono-normal-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;
}

/* latin */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 100 800;
  font-display: swap;
  src: url(./jetbrainsmono-normal-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 */
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(./outfit-normal-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;
}

/* latin */
@font-face {
  font-family: "Outfit";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url(./outfit-normal-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 symbols and emoji the app writes into its own SENTENCES. Every typeface and every
   icon here is vendored so a first load in a basement gym needs no network and no host font — and
   these characters were the one exception, supplied by whatever the device happened to have. On a
   phone with a thin font set they were empty boxes, ☰ among them, which is the character the sandbox
   card names as the way out.

   ONE family, two files, split by `unicode-range` — which is what unicode-range is for: the browser
   fetches the emoji file only for a page that shows an emoji, and a second family name would be a
   second thing every font stack has to remember. The ranges are printed by
   `python -m agent_tools.text_glyphs --build`, never typed from memory.

   Cut from DejaVu Sans and Noto Color Emoji; both permit subsetting and reserve their names, so the
   faces are renamed and carry their own copyright in their name tables. See THIRD_PARTY_NOTICES.md. */
@font-face {
  font-family: "LibrePT Symbols";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./librept-symbols.woff2) format("woff2");
  unicode-range: U+2192, U+22EE, U+22EF, U+25BE, U+2630, U+270E, U+2713, U+2715;
}

@font-face {
  font-family: "LibrePT Symbols";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./librept-emoji.woff2) format("woff2");
  unicode-range: U+26A0, U+1F44B, U+1F4AA, U+1F4C5, U+1F4DD, U+1F525, U+1F52C, U+1F680, U+1F9EA;
}
