/* ══════════════════════════════════════════════════════════════════════════
   🀄 한자 = 오직 하나의 글꼴 (2026-08-04 사장님 지시)
       "모든 게임에서 중국어 글자 폰트를 하나로, 반드시 한 개의 폰트로만"

   ── 왜 이 파일이 필요한가 ─────────────────────────────────────────────
   예전에는 각 화면이 제각각 글꼴 목록을 적어 뒀다:
     speaking-quiz     : 'Noto Sans SC','PingFang SC','Microsoft YaHei',…
     language-ace/tank : 'Segoe UI','Microsoft YaHei','微软雅黑',…
     suspect-mystery   : 'Noto Sans SC','Malgun Gothic'(한국어!)
     speak-cycle 모듈  : 'Malgun Gothic'(한국어)만
   그래서 **같은 PC에서도 게임마다 다른 폰트**가 선택됐고, 목록에 있는 폰트가
   하나도 안 깔린 기기에서는 한국어 폰트로 떨어져 한자가 한국식 자형이 됐다.
   게다가 간체자 전용 글자(连·谱·时·顺 등)는 한국 폰트에 아예 없어서
   **한 단어 안에서 글자마다 다른 폰트로 대체**되는 일까지 생겼다.

   ── 어떻게 보장하는가 ────────────────────────────────────────────────
   local() 로 '기기에 깔린 폰트'를 빌려 쓰면 기기마다 달라져 보장이 안 된다.
   그래서 **우리가 폰트 파일을 직접 실어 보낸다**(self-host). 어떤 기기든,
   어떤 게임이든 한자는 이 한 파일로만 그려진다.
     · 파일: /fonts/mangoi-han-sc.woff2  (Noto Sans SC Regular 부분집합, 983KB)
     · 글자: GB2312 한자 6,763 + 병음 성조부호 + 라틴/문장부호 = 7,575자
       → 교재·게임에 나오는 중국어는 사실상 전부 덮는다(폴백이 일어나지 않는다).
     · 라이선스: SIL OFL 1.1 (fonts/mangoi-han-sc.LICENSE.txt)

   ── 무게 걱정 안 해도 되는 이유 ──────────────────────────────────────
   unicode-range 를 걸어 뒀기 때문에 브라우저는 **한자가 실제로 화면에 나올 때만**
   이 파일을 내려받는다. 영어 게임만 하는 학생은 1바이트도 받지 않는다.
   한 번 받으면 1년간 캐시된다(immutable).

   ⚠️ 굵기 파일은 일부러 하나만 둔다(Regular). 굵게는 브라우저가 합성한다.
      굵기별 파일을 더 실으면 "한 개의 폰트" 라는 요구와 용량이 함께 흔들린다.
   ⚠️ 이 파일을 지우거나 화면별 글꼴 목록에 다른 중국어 폰트를 다시 넣지 말 것.
      그 순간 화면마다 글꼴이 갈리는 예전 문제로 돌아간다.
   ══════════════════════════════════════════════════════════════════════════ */
@font-face {
  font-family: 'MangoiHanSC';
  src: url('/fonts/mangoi-han-sc.woff2') format('woff2');
  font-weight: 100 900;      /* 모든 굵기를 이 한 파일이 담당 (굵게는 합성) */
  font-style: normal;
  font-display: swap;        /* 폰트 오기 전에도 글자는 보인다(빈 화면 금지) */
  /* 한자(통합·확장A·호환) + 병음 성조부호 + 전각/CJK 문장부호 */
  unicode-range: U+2E80-2EFF, U+3000-303F, U+3400-4DBF, U+4E00-9FFF,
                 U+F900-FAFF, U+FF00-FFEF, U+0100-017F, U+01CD-01DC;
}
