/* ============================================================
   서체 로딩 — crownyuja.co.kr/ds/v1/
   ============================================================

   ⚠ 왜 별도 파일인가

   tokens.css 는 서체 **이름**만 선언한다. 이름만으로는 아무것도 렌더되지 않는다.
   실측(2026-08-12) 결과 hanja-detail.html 에 ds/v1 을 얹었더니 본문이
   Pretendard 가 아니라 시스템 고딕으로 렌더됐다 — 폰트가 로드된 적이 없었다.

     Pretendard  317px  ==  sans-serif 317px   → 폴백
     NotoSerifKR 334px  ==  serif      334px   → 폴백
     Paperlogy   299px                          → 페이지가 따로 로드해 둔 것뿐

   document.fonts.check() 는 폴백 때문에 true 를 돌려주므로 믿을 수 없다.
   판정은 **렌더 폭 비교**로 한다.

   서체는 규격이 아니라 자산이라 번들과 수명이 다르다(교체·오프라인 사본).
   그래서 yuja.css 에 합치지 않고 이 파일을 따로 <link> 한다.

   ── 오프라인 (앱 WebView) ─────────────────────────────
   CDN 은 오프라인에서 죽는다. dictation-app · eosamun-android 는
   sync_ds.ps1 로 이 파일과 폰트 실물을 로컬 사본으로 유지한다.
   폴백이 시스템 고딕이라 최악의 경우에도 글자는 읽힌다.
   ============================================================ */

/* UI·본문 — Pretendard (동적 서브셋 60KB) */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.css");

/* Display — Paperlogy. 붓의 기억이 남아 한자어 학습의 정서와 맞는다.
   제목·뜻·음에만 쓴다. 한 화면에 1~2회. */
@import url("https://cdn.jsdelivr.net/gh/fonts-archive/Paperlogy/subsets/Paperlogy-dynamic-subset.css");

/* 한자 원문 — Noto Serif KR. 명조 획이 자형을 정확히 전달한다.
   fonts-archive 에는 없어 Google Fonts 를 쓴다. */
@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+KR:wght@400;500;600;700&display=swap");
