/* Vazirmatn — self-hosted (بدون وابستگی به Google Fonts)
 *
 * font-display: optional, not swap.
 *
 * With `swap`, the browser paints a fallback first and then reflows when
 * Vazirmatn arrives. Persian makes that expensive: the fallback sets text
 * NARROWER, so a lede reflowed from three lines to four and pushed the rest of
 * the hero up by ~35px. Measured CLS was 0.03 on every page.
 *
 * A metric-matched fallback (@font-face with size-adjust + ascent-override) was
 * tried and rejected: it only matched inside an 80–98% size-adjust window, with
 * a cliff at 99–100%. That is too tight to survive a different OS font.
 *
 * `optional` never swaps mid-page, so there is nothing to reflow. Combined with
 * the preload of the 400 and 700 weights in functions.php, Vazirmatn is still
 * applied on every measured load: `node _preview/measure-cls.js` reports CLS 0
 * across 10 pages x 2 widths, with document.fonts.check('16px Vazirmatn') true.
 *
 * Trade-off: on a genuinely slow first visit the visitor gets the system font
 * for that page view rather than a reflow.
 */

@font-face {
  font-family: "Vazirmatn";
  src: url("webfonts/Vazirmatn-Regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: optional;
}

@font-face {
  font-family: "Vazirmatn";
  src: url("webfonts/Vazirmatn-Medium.woff2") format("woff2");
  font-weight: 500;
  font-style: normal;
  font-display: optional;
}

@font-face {
  font-family: "Vazirmatn";
  src: url("webfonts/Vazirmatn-Bold.woff2") format("woff2");
  font-weight: 700;
  font-style: normal;
  font-display: optional;
}

@font-face {
  font-family: "Vazirmatn";
  src: url("webfonts/Vazirmatn-ExtraBold.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: optional;
}
