/* The fonts CSM ships, so terminal text and its symbols draw the same on every
   device: a phone has none of a desktop's fonts, and drew Claude's ⏵ as a box
   and its ⏺ as an orange emoji. Where each file came from, its licence, and how
   to update it: README.md beside this file.

   Each family keeps the font's OWN name. A setting saved as "JetBrains Mono" on
   the desktop then draws that font on the phone too, with nothing to translate.

   font-display: swap. xterm draws on a canvas, and a canvas never waits for a
   webfont whatever this descriptor says, so the terminal waits and re-measures
   in script instead (renderer/lib/font-loading.ts). The descriptor governs only
   DOM text, and swap keeps that readable on a slow link. */

@font-face {
  font-family: "Cascadia Code";
  src: url("CascadiaCode.woff2") format("woff2");
  font-weight: 200 700;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("JetBrainsMono-Regular.woff2") format("woff2");
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url("JetBrainsMono-Bold.woff2") format("woff2");
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: "Fira Code";
  src: url("FiraCode-VF.woff2") format("woff2");
  font-weight: 300 700;
  font-display: swap;
}

@font-face {
  font-family: "Source Code Pro";
  src: url("SourceCodeVF-Upright.ttf.woff2") format("woff2");
  font-weight: 200 900;
  font-display: swap;
}

@font-face {
  font-family: "Inter";
  src: url("InterVariable.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
}

/* The three fallback faces every stack in renderer/lib/fonts.ts ends with,
   ahead of the generic family, so they win over the OS emoji font for a symbol
   whose DEFAULT presentation is text (⏺ ⏸ ⚠ ✔).

   Each unicode-range is the font's own cmap MINUS every code point whose
   default presentation is emoji (Emoji_Presentation=Yes). Noto Sans Symbols 2
   carries monochrome ✅ ❌ 🌍 and more; without the cut it would take real colour
   emoji away. The range also keeps a phone from downloading a face it will not
   use: the Nerd font is 1.2 MB and only a PUA icon fetches it. Regenerate with
   the command in README.md, never by hand. */

@font-face {
  font-family: "Noto Sans Symbols 2";
  src: url("NotoSansSymbols2-Regular.woff2") format("woff2");
  font-display: swap;
  unicode-range: U+2022-2318, U+2324-23CF, U+23ED-23EF, U+23F1-23F2, U+23F4-244A, U+25A0-25FC, U+25FF-2612, U+2616-263C, U+2654-2668, U+2680-268F, U+269E-26A0, U+26AC, U+26BF-26C3, U+26C6-26CD, U+26CF-26D3, U+26D5-26E1, U+2700-2704, U+2706-2709, U+270C-2727, U+2729-274B, U+274D, U+274F-2752, U+2756, U+2758-2794, U+2798-27AF, U+27B1-27BE, U+2800-29EB, U+2B00-2B1A, U+2B1D-2B4F, U+2B51-2B54, U+2B56-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-102FB, U+10E60-10E7E, U+1D2C0-1D378, U+1F000-1F003, U+1F005-1F0CE, U+1F0D1-1F16F, U+1F1AD, U+1F321-1F32C, U+1F336, U+1F37D, U+1F394-1F39F, U+1F3CB-1F3CE, U+1F3D4-1F3DF, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F43F, U+1F441, U+1F4FD-1F4FE, U+1F53E-1F54A, U+1F568-1F579, U+1F57B-1F594, U+1F597-1F5A3, U+1F5A5-1F5FA, U+1F650-1F67F, U+1F6C6-1F6CB, U+1F6CD-1F6CF, U+1F6D3-1F6D4, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F774-1F7D9, U+1F800-1F90B, U+1F93B, U+1F946, U+1FA00-1FA6D, U+1FB00-1FBF9;
}

@font-face {
  font-family: "Noto Sans Symbols";
  src: url("NotoSansSymbols-Regular.woff2") format("woff2");
  font-display: swap;
  unicode-range: U+20DD-2199, U+2300-2317, U+231C-23E8, U+2460-25CC, U+260A-2613, U+2624-2647, U+2669-267E, U+2690-2692, U+2694-269D, U+26A2-26A9, U+26AD-26BC, U+26E2-26E9, U+26EB-26F1, U+26F4, U+26F6-26F9, U+26FB-26FC, U+26FE-26FF, U+271D-2721, U+2776-2793, U+2921-2922, U+1F100-1F18D, U+1F18F-1F190, U+1F19B-1F1AC, U+1F546-1F549, U+1F54F, U+1F700-1F773;
}

@font-face {
  font-family: "Symbols Nerd Font Mono";
  src: url("SymbolsNerdFontMono-Regular.woff2") format("woff2");
  font-display: swap;
  unicode-range: U+E000-E0D7, U+E200-E3E3, U+E5FA-E958, U+EA60-F533, U+F0001-F1AF0;
}
