/* ============================================================
   Self-hosted web fonts. Every face this app renders is served from our own
   origin: nothing on any page asks Google Fonts (or any other third party) for
   a font, so opening a demo tells no one else the visitor's IP address, and a
   third party being slow or down cannot hold up the page.

   1. The brand faces, as WOFF2. colors_and_type.css (a byte-for-byte mirror of
      the design project, see design-sync/check.mjs) declares Quilichao Grotesk
      and Space Grotesk from the TrueType files in fonts/. The rules below
      declare the SAME family, weight and style again from a WOFF2 of the same
      file (a lossless re-wrap: same glyphs, same metrics, ~60% fewer bytes).
      This sheet loads after that one, and when two @font-face rules match
      identically the later one is used, so the TTFs stay in the repo for the
      design sync and are never downloaded by a browser.

   2. Nunito Sans (the demo page body face), Inter and JetBrains Mono (the
      Studio chrome, theme.jsx), which were loaded from fonts.googleapis.com.
      The Google Fonts files themselves (variable fonts, one file per subset,
      the weights we asked for), latin and latin-ext only: the app is English
      and Spanish. unicode-range means a page downloads a subset only when it
      draws a character in it. SIL Open Font License 1.1 — fonts/licenses/.

   build.mjs stamps every url() below with ?v=<content hash>, so nginx can
   cache the files for a year.
   ============================================================ */

/* ---------- 1. brand faces (WOFF2 of fonts/*.ttf) ---------- */
@font-face { font-family: "Quilichao Grotesk"; font-style: normal; font-weight: 300; src: url("./fonts/QuilichaoGrotesk-Light.woff2?v=b5d43196bb") format("woff2"); font-display: swap; }
@font-face { font-family: "Quilichao Grotesk"; font-style: normal; font-weight: 400; src: url("./fonts/QuilichaoGrotesk-Regular.woff2?v=5b561fa498") format("woff2"); font-display: swap; }
@font-face { font-family: "Quilichao Grotesk"; font-style: italic; font-weight: 400; src: url("./fonts/QuilichaoGrotesk-RegularIt.woff2?v=b0916a4ce9") format("woff2"); font-display: swap; }
@font-face { font-family: "Quilichao Grotesk"; font-style: normal; font-weight: 500; src: url("./fonts/QuilichaoGrotesk-Medium.woff2?v=f92e930952") format("woff2"); font-display: swap; }
@font-face { font-family: "Quilichao Grotesk"; font-style: normal; font-weight: 600; src: url("./fonts/QuilichaoGrotesk-SemiBold.woff2?v=a4d5add225") format("woff2"); font-display: swap; }
@font-face { font-family: "Quilichao Grotesk"; font-style: normal; font-weight: 700; src: url("./fonts/QuilichaoGrotesk-Bold.woff2?v=059ae08939") format("woff2"); font-display: swap; }
@font-face { font-family: "Quilichao Grotesk"; font-style: normal; font-weight: 900; src: url("./fonts/QuilichaoGrotesk-Black.woff2?v=ca4aff37d3") format("woff2"); font-display: swap; }

@font-face { font-family: "Space Grotesk"; font-style: normal; font-weight: 300; src: url("./fonts/SpaceGrotesk-Light.woff2?v=39d264ff45") format("woff2"); font-display: swap; }
@font-face { font-family: "Space Grotesk"; font-style: normal; font-weight: 400; src: url("./fonts/SpaceGrotesk-Regular.woff2?v=befd36c018") format("woff2"); font-display: swap; }
@font-face { font-family: "Space Grotesk"; font-style: normal; font-weight: 500; src: url("./fonts/SpaceGrotesk-Medium.woff2?v=ed8317def1") format("woff2"); font-display: swap; }
@font-face { font-family: "Space Grotesk"; font-style: normal; font-weight: 600; src: url("./fonts/SpaceGrotesk-SemiBold.woff2?v=456132f699") format("woff2"); font-display: swap; }
@font-face { font-family: "Space Grotesk"; font-style: normal; font-weight: 700; src: url("./fonts/SpaceGrotesk-Bold.woff2?v=0b328e7c6f") format("woff2"); font-display: swap; }

/* ---------- 2. formerly Google Fonts ---------- */
/* Nunito Sans · latin-ext */
@font-face {
  font-family: "Nunito Sans"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("./fonts/nunito-sans-latin-ext.woff2?v=be03926a11") 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;
}
/* Nunito Sans · latin */
@font-face {
  font-family: "Nunito Sans"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("./fonts/nunito-sans-latin.woff2?v=d381eaa777") 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;
}
/* Inter · latin-ext */
@font-face {
  font-family: "Inter"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("./fonts/inter-latin-ext.woff2?v=521e24d174") 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;
}
/* Inter · latin */
@font-face {
  font-family: "Inter"; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url("./fonts/inter-latin.woff2?v=1dc044f482") 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;
}
/* JetBrains Mono · latin-ext */
@font-face {
  font-family: "JetBrains Mono"; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("./fonts/jetbrains-mono-latin-ext.woff2?v=7eed183e41") 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;
}
/* JetBrains Mono · latin */
@font-face {
  font-family: "JetBrains Mono"; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("./fonts/jetbrains-mono-latin.woff2?v=340e696a95") 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;
}
