/* GENERATED by frontend/scripts/build-icon-font.py — DO NOT EDIT BY HAND.
 * Regenerate:  npm --prefix frontend run build:icons
 * Verify:      npm --prefix frontend run verify:icons
 *
 * Self-hosted Material Symbols subset: 726 icons, the ones this codebase can
 * actually render (frontend/fonts/material-symbols.icons.txt). Replaces the
 * fonts.googleapis.com stylesheet that shipped all 4,275 glyphs
 * (2,339,776 bytes on the variable URL, 356,872 on the pinned one)
 * with 321,624 bytes served same-origin.
 *
 * FALLBACK: the second `src` entry is a deliberate safety net. If the local
 * woff2 is ever missing (bad deploy, wrong path, stripped asset) the browser
 * falls through to Google's copy and icons still render, instead of every icon
 * on every page painting its ligature NAME as raw text. That copy is the full
 * 3,975,112-byte font, so it is an emergency path, not a plan — the
 * deploy gate (scripts/ops/deploy-asset-probes.txt) is what stops a deploy
 * that would rely on it. `font-src` in both helmet CSPs already allows 'self'
 * and https://fonts.gstatic.com, so neither src needs a policy change.
 *
 * font-display: block (not swap) is also deliberate. With `swap` the browser
 * paints the FALLBACK font during the load window — and for a ligature icon
 * font the fallback paints the ligature name, i.e. a visible flash of the word
 * "trending_up" on every page load. `block` renders nothing until the font is
 * ready (~100ms from the immutable cache), so an icon is either an icon or
 * invisible, never a word.
 *
 * Axes: FILL 0..1, opsz 20..48, wght 100..700 (GRAD pinned to its 0 default —
 * nothing in the codebase addresses it).
 */
@font-face {
  font-family: 'Material Symbols Outlined';
  font-style: normal;
  font-weight: 100 700;
  font-display: block;
  src: url('/fonts/material-symbols-outlined.woff2?h=36f2e9f6') format('woff2'),
       url('https://fonts.gstatic.com/s/materialsymbolsoutlined/v368/kJEhBvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oFsLjBuVY.woff2') format('woff2');
}

/* Reproduces the class rule fonts.googleapis.com used to ship in its css2
 * response, byte-for-byte in effect. ~86 pages do not include partials/topnav
 * (which carries the only other copy, and returns early in embed mode), so
 * dropping it would leave those pages with no icon styling at all.
 *
 * -rounded / -sharp are mapped to the same family on purpose: 7 templates use
 * those classes but no Rounded or Sharp font has ever been loaded anywhere in
 * the platform, so they render as raw ligature text today outside embed mode
 * (frontend/public/css/mobile-embed.css already does exactly this mapping).
 * `.material-icons` is deliberately NOT claimed here — one page still loads
 * the legacy Material Icons font and owns that class. */
.material-symbols-outlined,
.material-symbols-rounded,
.material-symbols-sharp {
  font-family: 'Material Symbols Outlined';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
}
