/* fonts.css — GENERATED by tools/fetch_fonts.py. Do not edit.

   Self-hosted woff2, per CLAUDE.md §4: no Google Fonts CDN in production. The
   audience is on mobile networks in and around Cumilla, where a second origin
   handshake costs more than the bytes do.

   font-display: swap — Bangla text renders immediately in the fallback and
   swaps when the real face lands. A hospital hotline that is invisible for
   400ms is worse than one that reflows.

   unicode-range is kept per subset so a browser fetches only what a page uses.
*/

@font-face {
  font-family: 'Noto Sans Bengali';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/noto-sans-bengali-400-bengali.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: 'Noto Sans Bengali';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/noto-sans-bengali-500-bengali.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: 'Noto Sans Bengali';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/noto-sans-bengali-600-bengali.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: 'Noto Serif Bengali';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/noto-serif-bengali-600-bengali.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: 'Noto Serif Bengali';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/noto-serif-bengali-600-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: 'Noto Serif Bengali';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/noto-serif-bengali-700-bengali.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: 'Noto Serif Bengali';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/noto-serif-bengali-700-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: 'Instrument Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/assets/fonts/instrument-sans-400-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: 'Instrument Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('/assets/fonts/instrument-sans-500-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: 'Instrument Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('/assets/fonts/instrument-sans-600-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: 'Instrument Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('/assets/fonts/instrument-sans-700-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;
}

/* Bangla headings. Matched to Noto Serif Bengali. */

@font-face {
  font-family: 'DH BN Disp Nirmala';
  font-style: normal;
  font-weight: 400;
  size-adjust: 88.7%;
  src: local('Nirmala UI');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Disp Nirmala';
  font-style: normal;
  font-weight: 700;
  size-adjust: 88.7%;
  src: local('Nirmala UI');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Disp Noto';
  font-style: normal;
  font-weight: 400;
  size-adjust: 97.7%;
  src: local('Noto Sans Bengali'), local('Noto Serif Bengali');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Disp Noto';
  font-style: normal;
  font-weight: 700;
  size-adjust: 97.7%;
  src: local('Noto Sans Bengali'), local('Noto Serif Bengali');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Disp Vrinda';
  font-style: normal;
  font-weight: 400;
  size-adjust: 83.3%;
  src: local('Vrinda'), local('Shonar Bangla');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Disp Vrinda';
  font-style: normal;
  font-weight: 700;
  size-adjust: 83.3%;
  src: local('Vrinda'), local('Shonar Bangla');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Disp Kalpurush';
  font-style: normal;
  font-weight: 400;
  size-adjust: 121.9%;
  src: local('Kalpurush'), local('SolaimanLipi');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Disp Kalpurush';
  font-style: normal;
  font-weight: 700;
  size-adjust: 121.9%;
  src: local('Kalpurush'), local('SolaimanLipi');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

/* Bangla body text. Matched to Noto Sans Bengali. */

@font-face {
  font-family: 'DH BN Body Nirmala';
  font-style: normal;
  font-weight: 400;
  size-adjust: 92.8%;
  src: local('Nirmala UI');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Body Nirmala';
  font-style: normal;
  font-weight: 700;
  size-adjust: 92.8%;
  src: local('Nirmala UI');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Body Noto';
  font-style: normal;
  font-weight: 400;
  size-adjust: 100%;
  src: local('Noto Sans Bengali');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Body Noto';
  font-style: normal;
  font-weight: 700;
  size-adjust: 100%;
  src: local('Noto Sans Bengali');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Body Rupali';
  font-style: normal;
  font-weight: 400;
  size-adjust: 94.3%;
  src: local('Siyam Rupali');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Body Rupali';
  font-style: normal;
  font-weight: 700;
  size-adjust: 94.3%;
  src: local('Siyam Rupali');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Body Kalpurush';
  font-style: normal;
  font-weight: 400;
  size-adjust: 108.6%;
  src: local('Kalpurush'), local('SolaimanLipi');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

@font-face {
  font-family: 'DH BN Body Kalpurush';
  font-style: normal;
  font-weight: 700;
  size-adjust: 108.6%;
  src: local('Kalpurush'), local('SolaimanLipi');
  unicode-range: U+0951-0952, U+0964-0965, U+0980-09FE, U+200C-200D, U+20B9,
                 U+25CC, U+A8F1;
}

/* Latin headings. Matched to Instrument Sans at 700. */

@font-face {
  font-family: 'DH Latin Disp Segoe';
  font-style: normal;
  font-weight: 400;
  size-adjust: 108.3%;
  src: local('Segoe UI');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

@font-face {
  font-family: 'DH Latin Disp Segoe';
  font-style: normal;
  font-weight: 700;
  size-adjust: 108.3%;
  src: local('Segoe UI');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

@font-face {
  font-family: 'DH Latin Disp Arial';
  font-style: normal;
  font-weight: 400;
  size-adjust: 107.2%;
  src: local('Arial'), local('Helvetica');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

@font-face {
  font-family: 'DH Latin Disp Arial';
  font-style: normal;
  font-weight: 700;
  size-adjust: 107.2%;
  src: local('Arial'), local('Helvetica');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

@font-face {
  font-family: 'DH Latin Disp Roboto';
  font-style: normal;
  font-weight: 400;
  size-adjust: 104.9%;
  src: local('Roboto');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

@font-face {
  font-family: 'DH Latin Disp Roboto';
  font-style: normal;
  font-weight: 700;
  size-adjust: 104.9%;
  src: local('Roboto');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

/* Latin body text. Matched to Instrument Sans at 400 — a different figure from the headings, see above. */

@font-face {
  font-family: 'DH Latin Body Segoe';
  font-style: normal;
  font-weight: 400;
  size-adjust: 101.7%;
  src: local('Segoe UI');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

@font-face {
  font-family: 'DH Latin Body Segoe';
  font-style: normal;
  font-weight: 700;
  size-adjust: 101.7%;
  src: local('Segoe UI');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

@font-face {
  font-family: 'DH Latin Body Arial';
  font-style: normal;
  font-weight: 400;
  size-adjust: 100.9%;
  src: local('Arial'), local('Helvetica');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

@font-face {
  font-family: 'DH Latin Body Arial';
  font-style: normal;
  font-weight: 700;
  size-adjust: 100.9%;
  src: local('Arial'), local('Helvetica');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

@font-face {
  font-family: 'DH Latin Body Roboto';
  font-style: normal;
  font-weight: 400;
  size-adjust: 101.6%;
  src: local('Roboto');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}

@font-face {
  font-family: 'DH Latin Body Roboto';
  font-style: normal;
  font-weight: 700;
  size-adjust: 101.6%;
  src: local('Roboto');
  unicode-range: U+0000-00FF, U+2010-2027, U+2030-205E, U+20A0-20BF;
}
