/* ============================================================
   RATEVORO — per-script typography.

   One family name ('RV Sans' / 'RV Display') carries every script we
   serve. Each face declares its own unicode-range, so a browser
   downloads ONLY the subset the page actually contains: an English
   page still fetches Latin alone (48 KB), a Hebrew page adds 9 KB of
   Rubik, an Arabic one 42 KB of IBM Plex Sans Arabic. Nothing is
   loaded for a script the reader is not reading.

   Latin        Inter / Sora        (already self-hosted)
   Latin-ext    Inter               — Polish ł, Czech ř, Turkish ğ, Romanian ș:
                                      without it those letters fall back mid-word
   Greek        Inter
   Cyrillic     Inter
   Vietnamese   Inter
   Hebrew       Rubik
   Arabic/Farsi IBM Plex Sans Arabic
   Urdu         Noto Nastaliq Urdu  (only on :lang(ur) — Urdu readers expect Nastaliq)
   Devanagari   Noto Sans Devanagari
   Bengali      Noto Sans Bengali
   Thai         Noto Sans Thai
   CJK          system faces — a CJK webfont is megabytes and every OS
                already ships an excellent one.

   All faces are OFL/open licensed and self-hosted; no external request.
   Generated subsets, do not hand-edit the @font-face block.
   ============================================================ */

/* the Latin faces this project already carried */
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('fonts/inter-latin.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}
@font-face{font-family:'RV Display';font-style:normal;font-weight:400 800;font-display:swap;
  src:url('fonts/sora-latin.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}

/* ---- generated per-script subsets ---- */
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('fonts/inter-cyrillic-ext-400-800.woff2') format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('fonts/inter-cyrillic-400-800.woff2') format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('fonts/inter-greek-ext-400-800.woff2') format('woff2');unicode-range:U+1F00-1FFF}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('fonts/inter-greek-400-800.woff2') format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('fonts/inter-vietnamese-400-800.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:'RV Sans';font-style:normal;font-weight:400 800;font-display:swap;src:url('fonts/inter-latin-ext-400-800.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}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/rubik-hebrew-400-700.woff2') format('woff2');unicode-range:U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/ibm-plex-sans-arabic-arabic-400.woff2') format('woff2');unicode-range:U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/ibm-plex-sans-arabic-arabic-500.woff2') format('woff2');unicode-range:U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/ibm-plex-sans-arabic-arabic-700.woff2') format('woff2');unicode-range:U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/noto-sans-devanagari-devanagari-400-700.woff2') format('woff2');unicode-range:U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/noto-sans-bengali-bengali-400-700.woff2') format('woff2');unicode-range:U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1}
@font-face{font-family:'RV Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/noto-sans-thai-thai-400-700.woff2') format('woff2');unicode-range:U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC}
@font-face{font-family:'RV Display';font-style:normal;font-weight:400 800;font-display:swap;src:url('fonts/sora-latin-ext-400-800.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}
@font-face{font-family:'RV Display';font-style:normal;font-weight:400 800;font-display:swap;src:url('fonts/sora-latin-400-800.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}
@font-face{font-family:'RV Display';font-style:normal;font-weight:500 700;font-display:swap;src:url('fonts/rubik-hebrew-500-700.woff2') format('woff2');unicode-range:U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F}
@font-face{font-family:'RV Urdu';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/noto-nastaliq-urdu-arabic-400.woff2') format('woff2');unicode-range:U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E, U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F, U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39, U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F, U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F, U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77, U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3, U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1}

/* ---- per-language stacks -------------------------------------------------
   CJK gets the system face of its own market (never a multi-MB webfont), and
   Urdu switches to Nastaliq, which needs far more line height than a Latin
   face to keep its steep baseline from colliding. */
html:lang(ja){--font:'RV Sans','Hiragino Sans','Hiragino Kaku Gothic ProN','Yu Gothic UI','Meiryo','Noto Sans JP',sans-serif;
              --disp:'RV Display','Hiragino Sans','Yu Gothic UI','Noto Sans JP',sans-serif}
html:lang(ko){--font:'RV Sans','Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR',sans-serif;
              --disp:'RV Display','Apple SD Gothic Neo','Malgun Gothic','Noto Sans KR',sans-serif}
html:lang(zh){--font:'RV Sans','PingFang SC','Microsoft YaHei','Noto Sans SC',sans-serif;
              --disp:'RV Display','PingFang SC','Microsoft YaHei','Noto Sans SC',sans-serif}
html:lang(ur){--font:'RV Urdu','Noto Nastaliq Urdu','RV Sans',serif;
              --disp:'RV Urdu','Noto Nastaliq Urdu','RV Sans',serif}
html:lang(ur) body{line-height:2.15}
html:lang(ur) .btn,html:lang(ur) .chip,html:lang(ur) .secnav-item{line-height:1.9;padding-block:10px}
/* Thai and the Indic scripts sit lower and need a little more room to breathe */
html:lang(th) body,html:lang(hi) body,html:lang(bn) body{line-height:1.8}
/* Hebrew and Arabic read better slightly larger at the same nominal size */
html:lang(he) body,html:lang(ar) body,html:lang(fa) body{font-size:1.02rem}

/* Nastaliq is a steeply-sloped calligraphic style: its descenders reach far
   below the baseline, so display line-heights tuned for Latin make consecutive
   lines collide. Headings need roughly double. */
html:lang(ur) h1,html:lang(ur) h2,html:lang(ur) h3,html:lang(ur) .hero h1,
html:lang(ur) .section-title,html:lang(ur) .logo{line-height:1.95}
html:lang(ur) .hero h1{font-size:clamp(1.7rem,3.4vw,2.6rem)}
html:lang(ur) .score,html:lang(ur) .official-val,html:lang(ur) .revfact b{line-height:1.3}
