/* Luxforge landing page: self-hosted fonts, metric-matched fallbacks and one family stack per role.
   Sources, versions, SHA-256s, the subset and the exact commands are in README.md. All OFL-1.1.

   Use a role's stack, never the bare family, so text set in a fallback takes the same space as the
   web font and the swap barely moves anything (font-display:swap everywhere).

   Role                  Stack                     Settings the role expects
   Display               var(--lf-display)         weight 300-380 roman, 300 italic; font-variation-settings:'opsz' 60
   Text                  var(--lf-text)            weight 400-600 roman, 400 italic; font-optical-sizing:auto
   Small-caps labels     var(--lf-sc)              font-variant-caps:all-small-caps; weight 400 or 600;
                                                   set font-synthesis-small-caps:none on the page
   Condensed labels      var(--lf-cond)            weight 400 or 600
   Mono                  var(--lf-mono)            weight 400 or 500
   App notice            var(--lf-app)             weight 400-600; the subset holds the notice's text only

   Served: Source Serif 4 roman (wght 300-600, opsz 8-60, real smcp and c2sc), Source Serif 4 italic
   (wght 300-400, opsz 8-60), IBM Plex Sans Condensed 400 and 600, IBM Plex Mono 400 and 500, Inter
   (wght 400-600, opsz pinned at 14). Text faces: ASCII, Latin-1, ‘ ’ “ ” – — … † − ← ↑ → ↗ and thin
   and narrow no-break spaces. No face has ⌘ (U+2318) and Source Serif 4 has no U+2011.

   Fallbacks: size-adjust is the width of this page's own text in the web font divided by its width in
   the fallback, measured in Chrome; the overrides are the web font's own metrics divided by
   size-adjust. Source Serif 4 runs wider at small sizes (opsz), so one text fallback cannot match
   every size: it is set from the hero's own 15-19 px prose, and kept the hero's line counts at 120 of
   128 viewports tested between 320 and 1920 px wide (at the rest a line only just fits). Liberation
   Serif, Sans and Mono have the metrics of Times New Roman, Arial and Courier New, and DejaVu Sans
   Mono has Menlo's; Tinos, Arimo and Cousine are listed for their published compatibility. */

/* ---------------------------------------------------------------- web fonts */
@font-face{font-family:'Source Serif 4';src:url(source-serif-4-roman.woff2) format('woff2');font-style:normal;font-weight:300 600;font-display:swap}
@font-face{font-family:'Source Serif 4';src:url(source-serif-4-italic.woff2) format('woff2');font-style:italic;font-weight:300 400;font-display:swap}
@font-face{font-family:'IBM Plex Sans Condensed';src:url(ibm-plex-sans-condensed-400.woff2) format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Sans Condensed';src:url(ibm-plex-sans-condensed-600.woff2) format('woff2');font-style:normal;font-weight:600;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url(ibm-plex-mono-400.woff2) format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url(ibm-plex-mono-500.woff2) format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:'Inter';src:url(inter-notice.woff2) format('woff2');font-style:normal;font-weight:400 600;font-display:swap}

/* ------------------------------------------------- metric-matched fallbacks */
/* Display: Source Serif 4 at opsz 60, weight 380 roman and 300 italic */
@font-face{font-family:'Source Serif 4 Display Fallback';src:local('Georgia');font-style:normal;font-weight:300 500;size-adjust:91.52%;ascent-override:113.20%;descent-override:36.60%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 Display Fallback';src:local('Georgia Italic'),local('Georgia-Italic');font-style:italic;font-weight:300 500;size-adjust:85.26%;ascent-override:121.51%;descent-override:39.29%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 Display Fallback Times';src:local('Times New Roman'),local('TimesNewRomanPSMT'),local('Liberation Serif'),local('LiberationSerif'),local('Tinos'),local('Tinos-Regular');font-style:normal;font-weight:300 500;size-adjust:100.43%;ascent-override:103.16%;descent-override:33.36%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 Display Fallback Times';src:local('Times New Roman Italic'),local('TimesNewRomanPS-ItalicMT'),local('Liberation Serif Italic'),local('LiberationSerif-Italic'),local('Tinos Italic'),local('Tinos-Italic');font-style:italic;font-weight:300 500;size-adjust:95.59%;ascent-override:108.38%;descent-override:35.05%;line-gap-override:0.00%}
/* Text: Source Serif 4 at text sizes, 400 and 500 roman, 600 roman, 400 italic */
@font-face{font-family:'Source Serif 4 Fallback';src:local('Georgia');font-style:normal;font-weight:300 500;size-adjust:104.20%;ascent-override:99.42%;descent-override:32.15%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 Fallback';src:local('Georgia Bold'),local('Georgia-Bold');font-style:normal;font-weight:600 700;size-adjust:91.88%;ascent-override:112.76%;descent-override:36.46%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 Fallback';src:local('Georgia Italic'),local('Georgia-Italic');font-style:italic;font-weight:300 500;size-adjust:94.88%;ascent-override:109.19%;descent-override:35.31%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 Fallback Times';src:local('Times New Roman'),local('TimesNewRomanPSMT'),local('Liberation Serif'),local('LiberationSerif'),local('Tinos'),local('Tinos-Regular');font-style:normal;font-weight:300 500;size-adjust:114.20%;ascent-override:90.72%;descent-override:29.33%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 Fallback Times';src:local('Times New Roman Bold'),local('TimesNewRomanPS-BoldMT'),local('Liberation Serif Bold'),local('LiberationSerif-Bold'),local('Tinos Bold'),local('Tinos-Bold');font-style:normal;font-weight:600 700;size-adjust:110.08%;ascent-override:94.11%;descent-override:30.43%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 Fallback Times';src:local('Times New Roman Italic'),local('TimesNewRomanPS-ItalicMT'),local('Liberation Serif Italic'),local('LiberationSerif-Italic'),local('Tinos Italic'),local('Tinos-Italic');font-style:italic;font-weight:300 500;size-adjust:107.45%;ascent-override:96.42%;descent-override:31.18%;line-gap-override:0.00%}
/* Small-caps labels: Source Serif 4 all-small-caps at 15 px against the fallback's mixed case */
@font-face{font-family:'Source Serif 4 SC Fallback';src:local('Georgia');font-style:normal;font-weight:300 500;size-adjust:119.37%;ascent-override:86.79%;descent-override:28.06%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 SC Fallback';src:local('Georgia Bold'),local('Georgia-Bold');font-style:normal;font-weight:600 700;size-adjust:101.51%;ascent-override:102.06%;descent-override:33.00%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 SC Fallback Times';src:local('Times New Roman'),local('TimesNewRomanPSMT'),local('Liberation Serif'),local('LiberationSerif'),local('Tinos'),local('Tinos-Regular');font-style:normal;font-weight:300 500;size-adjust:130.20%;ascent-override:79.57%;descent-override:25.73%;line-gap-override:0.00%}
@font-face{font-family:'Source Serif 4 SC Fallback Times';src:local('Times New Roman Bold'),local('TimesNewRomanPS-BoldMT'),local('Liberation Serif Bold'),local('LiberationSerif-Bold'),local('Tinos Bold'),local('Tinos-Bold');font-style:normal;font-weight:600 700;size-adjust:120.94%;ascent-override:85.66%;descent-override:27.70%;line-gap-override:0.00%}
/* Condensed labels: IBM Plex Sans Condensed 400 and 600 (600 is set in capitals) */
@font-face{font-family:'IBM Plex Sans Condensed Fallback';src:local('Arial Narrow'),local('ArialNarrow'),local('Liberation Sans Narrow'),local('LiberationSansNarrow');font-style:normal;font-weight:300 500;size-adjust:110.79%;ascent-override:92.52%;descent-override:24.82%;line-gap-override:0.00%}
@font-face{font-family:'IBM Plex Sans Condensed Fallback';src:local('Arial Narrow Bold'),local('ArialNarrow-Bold'),local('Liberation Sans Narrow Bold'),local('LiberationSansNarrow-Bold');font-style:normal;font-weight:600 900;size-adjust:105.23%;ascent-override:97.41%;descent-override:26.13%;line-gap-override:0.00%}
@font-face{font-family:'IBM Plex Sans Condensed Fallback Arial';src:local('Arial'),local('ArialMT'),local('Liberation Sans'),local('LiberationSans'),local('Arimo'),local('Arimo-Regular');font-style:normal;font-weight:300 500;size-adjust:90.86%;ascent-override:112.81%;descent-override:30.27%;line-gap-override:0.00%}
@font-face{font-family:'IBM Plex Sans Condensed Fallback Arial';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('LiberationSans-Bold'),local('Arimo Bold'),local('Arimo-Bold');font-style:normal;font-weight:600 900;size-adjust:86.29%;ascent-override:118.79%;descent-override:31.87%;line-gap-override:0.00%}
/* Mono: IBM Plex Mono advances are 0.6 em; Menlo's 0.60205, Courier New's 0.60010 */
@font-face{font-family:'IBM Plex Mono Fallback';src:local('Menlo Regular'),local('Menlo-Regular'),local('Menlo'),local('DejaVu Sans Mono'),local('DejaVuSansMono');font-style:normal;font-weight:300 700;size-adjust:99.66%;ascent-override:102.85%;descent-override:27.59%;line-gap-override:0.00%}
@font-face{font-family:'IBM Plex Mono Fallback Courier';src:local('Courier New'),local('CourierNewPSMT'),local('Liberation Mono'),local('LiberationMono'),local('Cousine'),local('Cousine-Regular');font-style:normal;font-weight:300 700;size-adjust:99.98%;ascent-override:102.52%;descent-override:27.51%;line-gap-override:0.00%}
/* App notice: Inter at opsz 14 */
@font-face{font-family:'Inter Fallback';src:local('Arial'),local('ArialMT'),local('Liberation Sans'),local('LiberationSans'),local('Arimo'),local('Arimo-Regular');font-style:normal;font-weight:300 500;size-adjust:107.60%;ascent-override:90.03%;descent-override:22.42%;line-gap-override:0.00%}
@font-face{font-family:'Inter Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('LiberationSans-Bold'),local('Arimo Bold'),local('Arimo-Bold');font-style:normal;font-weight:600 700;size-adjust:102.38%;ascent-override:94.62%;descent-override:23.56%;line-gap-override:0.00%}

/* ------------------------------------------------------------ role stacks */
:root{
  --lf-display:'Source Serif 4','Source Serif 4 Display Fallback','Source Serif 4 Display Fallback Times',serif;
  --lf-text:'Source Serif 4','Source Serif 4 Fallback','Source Serif 4 Fallback Times',serif;
  --lf-sc:'Source Serif 4','Source Serif 4 SC Fallback','Source Serif 4 SC Fallback Times',serif;
  --lf-cond:'IBM Plex Sans Condensed','IBM Plex Sans Condensed Fallback','IBM Plex Sans Condensed Fallback Arial',sans-serif;
  --lf-mono:'IBM Plex Mono','IBM Plex Mono Fallback','IBM Plex Mono Fallback Courier',monospace;
  --lf-app:'Inter','Inter Fallback',sans-serif;
}
