/* Vendored + SUBSET from @phosphor-icons/web@2.1.1 (src/bold/) — self-hosted
 * same-origin so it stays within the enforced production CSP (font-src/style-src
 * 'self'). Only woff2+woff shipped (ttf/svg dropped).
 *
 * Pre-launch perf P1 (2026-07-06): the full vendor drop shipped ALL ~1,200+
 * bold icons (150 KB woff2 + 86 KB CSS) on every page for the 6 glyphs the
 * codebase actually uses. Subsetted via pyftsubset against the exact codepoints
 * below (retains only those 6 glyphs + .notdef) — 150 KB -> ~1.3 KB woff2.
 *
 * Used-glyph inventory (verified via `grep -rohE "ph-bold ph-[a-z0-9-]+" src/`):
 *   ph-caret-down, ph-instagram-logo, ph-magnifying-glass, ph-spotify-logo,
 *   ph-x-logo, ph-youtube-logo
 *
 * TO ADD A NEW ICON: this file no longer contains the full icon set, so a new
 * `ph-bold ph-*` class needs a re-subset. Steps:
 *   1. bun add @phosphor-icons/web@2.1.1 (or current pinned version) so the
 *      full source (incl. src/bold/Phosphor-Bold.ttf + style.css with every
 *      codepoint) is available locally to pull the new icon's codepoint from.
 *   2. Re-run pyftsubset against src/bold/Phosphor-Bold.ttf with the UPDATED
 *      unicode list (existing 6 codepoints below + the new one), flavor=woff2
 *      and flavor=woff, --no-hinting --desubroutinize --glyph-names
 *      --layout-features=''. (Omit --no-notdef-glyph — it drops unrelated
 *      glyphs from this font's cmap in some pyftsubset builds.)
 *   3. Copy the two subset outputs over Phosphor-Bold.woff2/.woff here.
 *   4. Add the new `.ph-bold.ph-<name>:before { content: "\eXXX"; }` rule
 *      below (codepoint from the full vendor style.css) and update the
 *      inventory comment above.
 */
@font-face {
  font-family: "Phosphor-Bold";
  src:
    url("./Phosphor-Bold.woff2") format("woff2"),
    url("./Phosphor-Bold.woff") format("woff");
  font-weight: normal;
  font-style: normal;
  font-display: block;
}

.ph-bold {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: "Phosphor-Bold" !important;
  speak: never;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Enable Ligatures ================ */
  letter-spacing: 0;
  -webkit-font-feature-settings: "liga";
  -moz-font-feature-settings: "liga=1";
  -moz-font-feature-settings: "liga";
  -ms-font-feature-settings: "liga" 1;
  font-feature-settings: "liga";
  -webkit-font-variant-ligatures: discretionary-ligatures;
  font-variant-ligatures: discretionary-ligatures;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.ph-bold.ph-caret-down:before {
  content: "\e136";
}
.ph-bold.ph-instagram-logo:before {
  content: "\e2d0";
}
.ph-bold.ph-magnifying-glass:before {
  content: "\e30c";
}
.ph-bold.ph-spotify-logo:before {
  content: "\e66e";
}
.ph-bold.ph-x-logo:before {
  content: "\e4bc";
}
.ph-bold.ph-youtube-logo:before {
  content: "\e4fc";
}
