/*
 * coMra fonts — locally hosted @font-face set (replaces MA Custom Fonts generated CSS).
 * Families: Open Sans (variable, per-script subsets) + RLT / RLT-condensed / RLT-extended (brand).
 * woff2 only. font-display: block is DELIBERATE — the brand font must always render as the
 * brand font; no fallback flash (Maxim, 2026-07-02).
 * Font files live in /app/uploads/fonts/ (git-tracked); perfmatters preloads reference those URLs.
 */

/* ===== Open Sans — variable font (wght 300-800), one face per script subset ===== */
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/cyrillic-ext/OpenSans-VariableFont_wght-italic.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/cyrillic/OpenSans-VariableFont_wght-italic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/greek-ext/OpenSans-VariableFont_wght-italic.woff2') format('woff2');
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/greek/OpenSans-VariableFont_wght-italic.woff2') format('woff2');
  unicode-range: U+0370-03FF;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/hebrew/OpenSans-VariableFont_wght-italic.woff2') format('woff2');
  unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/vietnamese/OpenSans-VariableFont_wght-italic.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/latin-ext/OpenSans-VariableFont_wght-italic.woff2') format('woff2');
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/latin/OpenSans-VariableFont_wght-italic.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/cyrillic-ext/OpenSans-VariableFont_wght.woff2') format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/cyrillic/OpenSans-VariableFont_wght.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/greek-ext/OpenSans-VariableFont_wght.woff2') format('woff2');
  unicode-range: U+1F00-1FFF;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/greek/OpenSans-VariableFont_wght.woff2') format('woff2');
  unicode-range: U+0370-03FF;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/hebrew/OpenSans-VariableFont_wght.woff2') format('woff2');
  unicode-range: U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/vietnamese/OpenSans-VariableFont_wght.woff2') format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/latin-ext/OpenSans-VariableFont_wght.woff2') format('woff2');
  unicode-range: U+0100-02AF, U+0304, U+0308, U+0329, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Open Sans';
  font-weight: 300 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/open-sans/latin/OpenSans-VariableFont_wght.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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ===== Open Sans Fallback — metric-matched local faces =====
 * While Open Sans loads, font-display: block lays text out invisibly in the next
 * family of the stack; when Open Sans arrives, wrapped rows (topic chips,
 * italic quotes) re-flow and shift the page (CLS 0.18-0.20 on a first slow
 * visit, external QA 2026-10-07). These faces give a system font Open Sans's
 * width and line box, so the swap moves nothing. Two families because the bold
 * cuts differ by ~6%: Arial metrics (Arial, Liberation Sans: Windows, macOS,
 * iOS, Linux) and Roboto (Android). Weight tiers use the real bold cut, never a
 * synthesized one, each sized to Open Sans at 400 / 600 / 700 / 800. The 600
 * tier is sized on UPPERCASE text: at 600 the site sets its uppercase labels
 * (topic chips, badges), whose capitals run ~6.6% narrower than lowercase
 * against these fallbacks; mixed-case 600 text is ~6% narrow until Open Sans lands.
 * size-adjust = Open Sans width / fallback width over English text, measured
 * from the font files with fontTools (2026-10-08); ascent/descent are Open
 * Sans's (2189/600 of 2048) divided by it. */
@font-face {
  font-family: 'Open Sans Fallback';
  font-style: normal;
  font-weight: 300 549;
  src: local('Arial'), local('ArialMT'), local('Liberation Sans'), local('LiberationSans');
  size-adjust: 104.71%;
  ascent-override: 102.08%;
  descent-override: 27.98%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Open Sans Fallback';
  font-style: normal;
  font-weight: 550 649;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold');
  size-adjust: 94.21%;
  ascent-override: 113.45%;
  descent-override: 31.10%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Open Sans Fallback';
  font-style: normal;
  font-weight: 650 749;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold');
  size-adjust: 104.42%;
  ascent-override: 102.36%;
  descent-override: 28.06%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Open Sans Fallback';
  font-style: normal;
  font-weight: 750 800;
  src: local('Arial Bold'), local('Arial-BoldMT'), local('Liberation Sans Bold'), local('LiberationSans-Bold');
  size-adjust: 108.01%;
  ascent-override: 98.96%;
  descent-override: 27.12%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Open Sans Fallback';
  font-style: italic;
  font-weight: 300 800;
  src: local('Arial Italic'), local('Arial-ItalicMT'), local('Liberation Sans Italic'), local('LiberationSans-Italic');
  size-adjust: 99.25%;
  ascent-override: 107.69%;
  descent-override: 29.52%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Open Sans Fallback Roboto';
  font-style: normal;
  font-weight: 300 549;
  src: local('Roboto'), local('Roboto-Regular'), local('Roboto Regular');
  size-adjust: 105.16%;
  ascent-override: 101.64%;
  descent-override: 27.86%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Open Sans Fallback Roboto';
  font-style: normal;
  font-weight: 550 649;
  src: local('Roboto Bold'), local('Roboto-Bold');
  size-adjust: 101.51%;
  ascent-override: 105.29%;
  descent-override: 28.86%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Open Sans Fallback Roboto';
  font-style: normal;
  font-weight: 650 749;
  src: local('Roboto Bold'), local('Roboto-Bold');
  size-adjust: 110.96%;
  ascent-override: 96.33%;
  descent-override: 26.40%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Open Sans Fallback Roboto';
  font-style: normal;
  font-weight: 750 800;
  src: local('Roboto Bold'), local('Roboto-Bold');
  size-adjust: 114.77%;
  ascent-override: 93.13%;
  descent-override: 25.53%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Open Sans Fallback Roboto';
  font-style: italic;
  font-weight: 300 800;
  src: local('Roboto Italic'), local('Roboto-Italic');
  size-adjust: 102.50%;
  ascent-override: 104.28%;
  descent-override: 28.58%;
  line-gap-override: 0%;
}

/* ===== RLT ===== */
@font-face {
  font-family: 'RLT';
  font-weight: 100;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-thin-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 100;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-thin.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 200;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-ultralight-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 200;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-ultralight.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 300;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-light-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 300;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-light.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 400;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 400;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-normal.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 500;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-medium-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 500;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-medium.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 600;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-semibold-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 600;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-semibold.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 700;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-bold-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 700;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-bold.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-extrabold-italic.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT';
  font-weight: 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-extrabold.woff2') format('woff2');
}

/* ===== RLT-condensed ===== */
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 100;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-thin-condensed-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 100;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-thin-condensed.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 200;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-ultralight-condensed-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 200;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-ultralight-condensed.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 300;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-light-condensed-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 300;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-light-condensed.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 400;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-condensed-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 400;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-condensed.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 500;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-medium-condensed-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 500;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-medium-condensed.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 600;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-semibold-condensed-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 600;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-semibold-condensed.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 700;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-bold-condensed-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 700;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-bold-condensed.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-extrabold-condensed-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-extrabold-condensed.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 900;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-heavy-condensed-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-condensed';
  font-weight: 900;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-heavy-condensed.woff2') format('woff2');
}

/* ===== RLT-extended ===== */
@font-face {
  font-family: 'RLT-extended';
  font-weight: 100;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-thin-extended-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 100;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-thin-extended.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 200;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-ultralight-extended-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 200;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-ultralight-extended.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 300;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-light-extended-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 300;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-light-extended.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 400;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-extended-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 400;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-extended.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 500;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-medium-extended-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 500;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-medium-extended.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 600;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-semibold-extended-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 600;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-semibold-extended.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 700;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-bold-extended-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 700;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-bold-extended.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 800;
  font-style: italic;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-extrabold-extended-oblique.woff2') format('woff2');
}
@font-face {
  font-family: 'RLT-extended';
  font-weight: 800;
  font-style: normal;
  font-display: block;
  src: url('/app/uploads/fonts/RLT-extrabold-extended.woff2') format('woff2');
}
