@font-face {
  font-family: 'Linotte';
  src:
    url('/fonts/Linotte/linotte.woff2') format('woff2'),
    url('/fonts/Linotte/linotte.woff') format('woff');
  font-weight: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Linotte';
  src:
    url('/fonts/Linotte/linotte-semibold.woff2') format('woff2'),
    url('/fonts/Linotte/linotte-semibold.woff') format('woff');
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: 'Linotte';
  src:
    url('/fonts/Linotte/linotte-light.woff2') format('woff2'),
    url('/fonts/Linotte/linotte-light.woff') format('woff');
  font-weight: 300;
  font-display: swap;
}

@font-face {
  font-family: 'Linotte';
  src:
    url('/fonts/Linotte/linotte-bold.woff2') format('woff2'),
    url('/fonts/Linotte/linotte-bold.woff') format('woff');
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: 'Linotte-Heavy';
  src: url('/fonts/Linotte/linotte-heavy.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'Muli';
  src:
    local('Muli'),
    url('/fonts/Muli/Muli.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Muli';
  src:
    local('MuliB'),
    url('/fonts/Muli/MuliB.woff2') format('woff2');
  font-weight: 700;
  font-style: bold;
  font-display: swap;
}

@font-face {
  font-family: 'Muli';
  src:
    local('MuliS'),
    url('/fonts/Muli/MuliS.woff2') format('woff2');
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: 'Muli';
  src:
    local('MuliExtraBold'),
    url('/fonts/Muli/MuliExtraBold.woff2') format('woff2');
  font-weight: 900;
  font-display: swap;
}

@font-face {
  font-family: 'VAGRounded BT';
  src:
    local('VAGRounded BT'),
    url('/fonts/VAGRounded/VAGRounded-BT.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'VAGRounded Lt';
  src:
    local('VAGRounded Lt'),
    url('/fonts/VAGRounded/VAGRounded-Lt.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Grilled Cheese';
  src:
    local('Grilled Cheese'),
    url('/fonts/GrilledCheeseBTN/GrilledCheese_BTN.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Evil Empire';
  src:
    local('Evil Empire'),
    url('/fonts/EvilEmpire/EvilEmpire.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Bree Serif';
  src:
    local('Bree Serif'),
    url('/fonts/BreeSerif/BreeSerif-Regular.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Nunito';
  src:
    local('Nunito-Regular'),
    url('/fonts/Nunito/Nunito-Regular.woff2') format('woff2');
  font-weight: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Nunito';
  src:
    local('Nunito-SemiBold'),
    url('/fonts/Nunito/Nunito-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: 'Nunito';
  src:
    local('Nunito-Bold'),
    url('/fonts/Nunito/Nunito-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: bold;
  font-display: swap;
}

@font-face {
  font-family: 'Lao UIb';
  src:
    local('laouib'),
    url('/fonts/LaoUI/laouib.woff2') format('woff2');
  font-weight: 700;
  font-style: bold;
  font-display: swap;
}

@font-face {
  font-family: 'Baloo Chettan';
  src: url('/fonts/BalooChettan/BalooChettanMalayalam-Regular.woff2')
    format('woff2');
  font-weight: 700;
  font-style: bold;
  font-display: swap;
}

@font-face {
  font-family: 'Rockwell';
  src:
    url('//db.onlinewebfonts.com/t/4aa3e37e571255737e5e6d4e9d9770a5.eot?#iefix')
      format('embedded-opentype'),
    url('//db.onlinewebfonts.com/t/4aa3e37e571255737e5e6d4e9d9770a5.woff2')
      format('woff2'),
    url('//db.onlinewebfonts.com/t/4aa3e37e571255737e5e6d4e9d9770a5.woff')
      format('woff'),
    url('//db.onlinewebfonts.com/t/4aa3e37e571255737e5e6d4e9d9770a5.ttf')
      format('truetype'),
    url('//db.onlinewebfonts.com/t/4aa3e37e571255737e5e6d4e9d9770a5.svg#Rockwell')
      format('svg');
  font-display: swap;
}

@font-face {
  font-family: 'Montserrat-ExtraBold';
  src:
    local('Montserrat-ExtraBold'),
    url('/fonts/Montserrat/Montserrat-ExtraBold.woff2') format('woff2');
  font-weight: 800;
  font-style: bold;
  font-display: swap;
}

@font-face {
  font-family: 'LuckiestGuy';
  src:
    local('Montserrat-ExtraBold'),
    url('/fonts/LuckiestGuy/LuckiestGuy-Regular.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'Comic Sans';
  /* Match the real Windows/macOS font name only; the bare 'Comic Sans' fuzzy-
     matched an unrelated local script font on some devices, so the bundled
     woff2 never loaded and text fell through to the `cursive` fallback. */
  src: local('Comic Sans MS'),
    url('/fonts/ComicSans/comic-sans-bold.woff2') format('woff2');
  font-weight: 800;
  font-style: bold;
  font-display: swap;
}

@font-face {
  font-family: 'KaiTi';
  src: local('KaiTi'),
    url('/fonts/kaiti/simkai.woff2') format('woff2'),
    url('/fonts/kaiti/simkai.ttf') format('truetype');
  font-display: swap;
}

/* Face 01 from Jira EPT-54's FangZhengKaiTiPinYin collection. Each Chinese
   glyph contains its tone-marked Pinyin above the character. */
@font-face {
  font-family: 'FangZhengKaiTiPinyin';
  src: url('/fonts/FangZhengKaiTiPinyin/FZKTPY01.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'SofiaProSoft-BoldItalic';
  src:
    local('SofiaProSoft-BoldItalic'),
    url('/fonts/SofiaProSoft/SofiaProSoft-BoldItalic.woff2') format('woff2');
  font-weight: bold;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'BerlinSansFBDemi-Bold';
  src:
    local('BerlinSansFBDemi-Bold'),
    url('/fonts/BerlinSans/BerlinSans-Bold.woff2') format('woff2');
  font-weight: bold;
  font-display: swap;
}

/* Hanyu Pinyin — used only for pinyin text in question content (see the
   .pinyin rule in GlobalStyle and wrapPinyin in helpers/convertTagsToHtml).
   Subset to pinyin glyphs only (Latin + tone-marked vowels; CJK stripped) and
   compressed to woff2 — ~17KB TTF → ~3.4KB. */
@font-face {
  font-family: 'GB Pinyinok';
  src: url('/fonts/GBPinyinok/GB-Pinyinok-C.woff2') format('woff2');
  font-display: swap;
}

@font-face {
  font-family: 'ComicNeue-Bold';
  src: local('ComicNeue-Bold'),
    url('/fonts/ComicNeue/ComicNeue-Bold.ttf') format('truetype');
  font-weight: bold;
  font-display: swap;
}

@font-face {
  font-family: 'Baloo 2';
  src: local('Baloo 2 Regular'),
    url('/fonts/Baloo2/Baloo2-Regular.ttf') format('truetype');
  font-weight: 400;
  font-display: swap;
}

@font-face {
  font-family: 'Baloo 2';
  src: local('Baloo 2 Medium'),
    url('/fonts/Baloo2/Baloo2-Medium.ttf') format('truetype');
  font-weight: 500;
  font-display: swap;
}

@font-face {
  font-family: 'Baloo 2';
  src: local('Baloo 2 SemiBold'),
    url('/fonts/Baloo2/Baloo2-SemiBold.ttf') format('truetype');
  font-weight: 600;
  font-display: swap;
}

@font-face {
  font-family: 'Baloo 2';
  src: local('Baloo 2 Bold'),
    url('/fonts/Baloo2/Baloo2-Bold.ttf') format('truetype');
  font-weight: 700;
  font-display: swap;
}

@font-face {
  font-family: 'Baloo 2';
  src: local('Baloo 2 ExtraBold'),
    url('/fonts/Baloo2/Baloo2-ExtraBold.ttf') format('truetype');
  font-weight: 800;
  font-display: swap;
}