/* BizOn Bật Nghiệp – phông tự host
 * ---------------------------------------------------------------------------
 * Trước đây trang nạp phông từ fonts.googleapis.com. Khi wifi lớp học chập chờn
 * hoặc mạng trường chặn tên miền đó, chữ rơi về phông hệ thống – và ở phiên bản
 * cũ hơn nữa còn giữ trang trắng hơn 12 giây.
 *
 * Nay hai bộ phông nằm trong assets/fonts/ nên:
 *   – không phụ thuộc bên thứ ba, không thêm DNS/TLS tới hai tên miền lạ;
 *   – service worker nạp sẵn được, nên dùng offline vẫn đúng kiểu chữ;
 *   – không còn gửi thông tin người học sang máy chủ Google khi tải phông.
 *
 * Dùng bản BIẾN THIÊN: một tệp phủ cả dải 400–800 thay vì bảy tệp rời.
 * Tự host 103KB cho ba tập ký tự, so với 358KB nếu dùng bản tĩnh.
 * Trang tiếng Việt chỉ tải tập "vietnamese" + "latin" (~67KB); "latin-ext" chỉ
 * tải khi trang thật sự có ký tự Đông Âu – trình duyệt tự quyết theo unicode-range.
 *
 * font-display:swap – chữ hiện ngay bằng phông hệ thống rồi đổi khi phông về.
 *
 * Nguồn: Google Fonts, giấy phép SIL Open Font License 1.1 (xem assets/fonts/OFL.txt).
 * Manrope © Mikhail Sharanda · Plus Jakarta Sans © Tokotype.
 * --------------------------------------------------------------------------- */

/* vietnamese */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../assets/fonts/Manrope-var-vietnamese.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;
}
/* latin-ext */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../assets/fonts/Manrope-var-latin-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 */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(../assets/fonts/Manrope-var-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;
}
/* vietnamese */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url(../assets/fonts/PlusJakartaSans-var-vietnamese.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;
}
/* latin-ext */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url(../assets/fonts/PlusJakartaSans-var-latin-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 */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 600 800;
  font-display: swap;
  src: url(../assets/fonts/PlusJakartaSans-var-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;
}

/* Chi cac trang phong cach Academia 3D (trang chu index.html, academia3d-v2.html
   va cac trang brand-passport-learning) dung ho phong DM Serif Display duoi day.
   Trinh duyet chi tai khi trang thuc su dung ho phong do, nen cac trang dat set
   con lai khong ton them byte nao. */
/* latin-ext */
@font-face {
  font-family: 'DM Serif Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/DMSerifDisplay-400-italic-latin-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 */
@font-face {
  font-family: 'DM Serif Display';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/DMSerifDisplay-400-italic-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;
}
/* latin-ext */
@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/DMSerifDisplay-400-latin-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 */
@font-face {
  font-family: 'DM Serif Display';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/DMSerifDisplay-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;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/IBMPlexMono-400-vietnamese.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;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/IBMPlexMono-400-latin-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 */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(../assets/fonts/IBMPlexMono-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;
}
/* vietnamese */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/IBMPlexMono-600-vietnamese.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;
}
/* latin-ext */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/IBMPlexMono-600-latin-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 */
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(../assets/fonts/IBMPlexMono-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;
}

/* ---------------------------------------------------------------------------
 * PHONG DU PHONG KHOP SO DO – chong xo lech bo cuc (CLS)
 *
 * font-display:swap cho chu hien ngay bang phong he thong roi doi sang phong
 * thuong hieu khi tai xong. Doi lai, hai phong co so do khac nhau nen luc doi
 * van ban nhay chan – Core Web Vitals tinh la CLS. Do that tren trang chu
 * Academia 3D la 0,278, gap gan ba lan nguong 0,1.
 *
 * Bon ho phong duoi day khong tai them byte nao: chung tro ve phong CO SAN
 * trong may (local()), nhung ep chieu cao dong va be ngang chu ve dung bang
 * phong thuong hieu. Nho vay khung van ban giu nguyen kich thuoc truoc va sau
 * khi phong ve, chu chi doi net chu.
 *
 * So do lay tu chinh tep .woff2 bang fontTools (asc/desc theo OS/2 sTypo),
 * size-adjust do bang canvas.measureText tren chinh trinh duyet.
 * Theo quy uoc cua cong cu (next/font), ascent/descent chia cho ty le
 * size-adjust vi size-adjust nhan len toan bo so do.
 * ------------------------------------------------------------------------- */
@font-face {
  font-family: 'Manrope Fallback';
  src: local('Arial'), local('Helvetica'), local('Roboto'), local('Liberation Sans');
  size-adjust: 100.2%; ascent-override: 106.4%; descent-override: 29.9%; line-gap-override: 0%;
}
@font-face {
  font-family: 'Plus Jakarta Sans Fallback';
  src: local('Arial'), local('Helvetica'), local('Roboto'), local('Liberation Sans');
  size-adjust: 108.5%; ascent-override: 95.7%; descent-override: 20.5%; line-gap-override: 0%;
}
@font-face {
  font-family: 'DM Serif Display Fallback';
  src: local('Georgia'), local('Times New Roman'), local('Liberation Serif'), local('Noto Serif');
  size-adjust: 105.0%; ascent-override: 98.7%; descent-override: 31.9%; line-gap-override: 0%;
}
@font-face {
  font-family: 'IBM Plex Mono Fallback';
  src: local('Menlo'), local('Consolas'), local('DejaVu Sans Mono'), local('Liberation Mono');
  size-adjust: 99.1%; ascent-override: 103.4%; descent-override: 27.7%; line-gap-override: 0%;
}
