/* Generated by tools/chrome-sync.mjs from css/dm-sans.css, css/sentient.css, css/font-fallbacks.css.
   Edit the sources and run `npm run chrome`; hand edits here are overwritten. */
/* ── css/dm-sans.css ── */
/* DM Sans — self-hosted from Google Fonts (v17). Self-hosting eliminates the
   third-party request to fonts.googleapis.com / fonts.gstatic.com, removing
   the IP-address disclosure to Google and the external style-src allowlist
   entry that was previously required in the Content Security Policy.

   The font files are variable fonts: a single woff2 file covers the full
   weight axis (400–700) for each script subset and style variant. The
   @font-face declarations therefore use a weight range rather than separate
   fixed-weight rules, which is the correct way to expose a variable font to
   the browser's font-matching algorithm. */

/* latin-ext — italic */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url('../../fonts/dm-sans/dm-sans-italic-400-ext.woff2') 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;
}
/* latin — italic */
@font-face {
  font-family: 'DM Sans';
  font-style: italic;
  font-weight: 400 700;
  font-display: swap;
  src: url('../../fonts/dm-sans/dm-sans-italic-400.woff2') 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;
}
/* latin-ext — normal */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../../fonts/dm-sans/dm-sans-normal-ext.woff2') 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;
}
/* latin — normal */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../../fonts/dm-sans/dm-sans-normal.woff2') 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;
}

/* ── css/sentient.css ── */
/* Official Sentient distribution; licence in /fonts/sentient/FFL.txt.
   The variable face supplies true 600: the hosted CSS API ignores @600. */
@font-face {
  font-family: 'Sentient';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url('../../fonts/sentient/Sentient-Light.woff2') format('woff2');
}
@font-face {
  font-family: 'Sentient';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../../fonts/sentient/Sentient-Regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Sentient';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('../../fonts/sentient/Sentient-Italic.woff2') format('woff2');
}
@font-face {
  font-family: 'Sentient';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('../../fonts/sentient/Sentient-Medium.woff2') format('woff2');
}
@font-face {
  font-family: 'Sentient';
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url('../../fonts/sentient/Sentient-Variable.woff2') format('woff2');
}

/* ── css/font-fallbacks.css ── */
/* Metric-matched local fallbacks for the web fonts, generated by
   tools/font-fallbacks.mjs from the real font files measured in Chromium
   against each local font's metric-compatible clone. While a web font is
   still loading (font-display: swap) text is set in one of these; the
   size-adjust and vertical overrides make the swap keep every line where
   it is. One declaration per local font and weight band, because the web
   fonts widen with weight and a local family has only a regular and a
   bold; the font stacks in main.css list these families before the
   generic ones. Regenerate rather than edit. */
@font-face{font-family:"DM Sans Fallback: Arial";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Arimo");font-weight:100 449;size-adjust:104.60%;ascent-override:94.64%;descent-override:29.64%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Arial";src:local("Arial"),local("ArialMT"),local("Liberation Sans"),local("Arimo");font-weight:450 549;size-adjust:106.53%;ascent-override:92.93%;descent-override:29.10%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Arial";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("Arimo Bold");font-weight:550 649;size-adjust:100.90%;ascent-override:98.12%;descent-override:30.72%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Arial";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("Arimo Bold");font-weight:650 900;size-adjust:102.61%;ascent-override:96.49%;descent-override:30.21%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Segoe UI";src:local("Segoe UI"),local("SegoeUI");font-weight:100 449;size-adjust:104.96%;ascent-override:94.32%;descent-override:29.54%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Segoe UI";src:local("Segoe UI"),local("SegoeUI");font-weight:450 549;size-adjust:106.89%;ascent-override:92.62%;descent-override:29.00%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Segoe UI";src:local("Segoe UI Semibold"),local("SegoeUI-Semibold");font-weight:550 649;size-adjust:104.45%;ascent-override:94.78%;descent-override:29.68%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Segoe UI";src:local("Segoe UI Bold"),local("SegoeUI-Bold");font-weight:650 900;size-adjust:103.93%;ascent-override:95.26%;descent-override:29.83%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Roboto";src:local("Roboto"),local("Roboto-Regular");font-weight:100 449;size-adjust:104.51%;ascent-override:94.73%;descent-override:29.66%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Roboto";src:local("Roboto"),local("Roboto-Regular");font-weight:450 549;size-adjust:106.44%;ascent-override:93.01%;descent-override:29.12%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Roboto";src:local("Roboto Bold"),local("Roboto-Bold");font-weight:550 649;size-adjust:107.02%;ascent-override:92.51%;descent-override:28.97%;line-gap-override:0.00%}
@font-face{font-family:"DM Sans Fallback: Roboto";src:local("Roboto Bold"),local("Roboto-Bold");font-weight:650 900;size-adjust:108.83%;ascent-override:90.97%;descent-override:28.48%;line-gap-override:0.00%}
@font-face{font-family:"Sentient Fallback: Georgia";src:local("Georgia"),local("Gelasio");font-weight:100 349;size-adjust:106.29%;ascent-override:90.32%;descent-override:30.11%;line-gap-override:7.53%}
@font-face{font-family:"Sentient Fallback: Georgia";src:local("Georgia"),local("Gelasio");font-weight:350 449;size-adjust:108.07%;ascent-override:88.83%;descent-override:29.61%;line-gap-override:7.40%}
@font-face{font-family:"Sentient Fallback: Georgia";src:local("Georgia"),local("Gelasio");font-weight:450 549;size-adjust:110.03%;ascent-override:87.25%;descent-override:29.08%;line-gap-override:7.27%}
@font-face{font-family:"Sentient Fallback: Georgia";src:local("Georgia Bold"),local("Georgia-Bold"),local("Gelasio Bold");font-weight:550 649;size-adjust:95.13%;ascent-override:100.92%;descent-override:33.64%;line-gap-override:8.41%}
@font-face{font-family:"Sentient Fallback: Georgia";src:local("Georgia Bold"),local("Georgia-Bold"),local("Gelasio Bold");font-weight:650 900;size-adjust:96.00%;ascent-override:100.00%;descent-override:33.33%;line-gap-override:8.33%}
@font-face{font-family:"Sentient Fallback: Times New Roman";src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Liberation Serif"),local("Tinos");font-weight:100 349;size-adjust:117.25%;ascent-override:81.88%;descent-override:27.29%;line-gap-override:6.82%}
@font-face{font-family:"Sentient Fallback: Times New Roman";src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Liberation Serif"),local("Tinos");font-weight:350 449;size-adjust:119.21%;ascent-override:80.53%;descent-override:26.84%;line-gap-override:6.71%}
@font-face{font-family:"Sentient Fallback: Times New Roman";src:local("Times New Roman"),local("TimesNewRomanPSMT"),local("Liberation Serif"),local("Tinos");font-weight:450 549;size-adjust:121.37%;ascent-override:79.10%;descent-override:26.37%;line-gap-override:6.59%}
@font-face{font-family:"Sentient Fallback: Times New Roman";src:local("Times New Roman Bold"),local("TimesNewRomanPS-BoldMT"),local("Liberation Serif Bold"),local("Tinos Bold");font-weight:550 649;size-adjust:115.15%;ascent-override:83.37%;descent-override:27.79%;line-gap-override:6.95%}
@font-face{font-family:"Sentient Fallback: Times New Roman";src:local("Times New Roman Bold"),local("TimesNewRomanPS-BoldMT"),local("Liberation Serif Bold"),local("Tinos Bold");font-weight:650 900;size-adjust:116.21%;ascent-override:82.61%;descent-override:27.54%;line-gap-override:6.88%}
@font-face{font-family:"Sentient Fallback: Noto Serif";src:local("Noto Serif"),local("NotoSerif"),local("Droid Serif");font-weight:100 349;size-adjust:98.29%;ascent-override:97.67%;descent-override:32.56%;line-gap-override:8.14%}
@font-face{font-family:"Sentient Fallback: Noto Serif";src:local("Noto Serif"),local("NotoSerif"),local("Droid Serif");font-weight:350 449;size-adjust:99.93%;ascent-override:96.07%;descent-override:32.02%;line-gap-override:8.01%}
@font-face{font-family:"Sentient Fallback: Noto Serif";src:local("Noto Serif"),local("NotoSerif"),local("Droid Serif");font-weight:450 549;size-adjust:101.75%;ascent-override:94.35%;descent-override:31.45%;line-gap-override:7.86%}
@font-face{font-family:"Sentient Fallback: Noto Serif";src:local("Noto Serif Bold"),local("NotoSerif-Bold"),local("Droid Serif Bold");font-weight:550 649;size-adjust:96.58%;ascent-override:99.40%;descent-override:33.13%;line-gap-override:8.28%}
@font-face{font-family:"Sentient Fallback: Noto Serif";src:local("Noto Serif Bold"),local("NotoSerif-Bold"),local("Droid Serif Bold");font-weight:650 900;size-adjust:97.47%;ascent-override:98.50%;descent-override:32.83%;line-gap-override:8.21%}
