/* ---- CHỮ HIẾM NGOÀI MẶT PHẲNG CƠ BẢN (2/9/2026, mở rộng phạm vi 7/9/2026) -------------------
   88 chữ hiếm ngoài khối thông dụng U+4E00–U+9FFF (Ext A 㠯 · Radicals Supplement ⺼⺈⺕⻊ · Ext B trở
   lên 𠯑 𡈼 𠂢…) nằm trong câu CHIẾT TỰ của sổ — phần lớn là phần biểu âm GỐC hoặc trích Thuyết Văn nên
   không thay bằng chữ khác được. Font hệ thống của macOS/iOS/Android không phủ các khối này, nên hiện
   ra ô vuông rỗng và trông y như lỗi mã hoá (đã có một phiên chẩn đoán nhầm đúng chỗ này, rồi lặp lại
   lần nữa ở chữ 卷 ngày 7/9/2026 — soát cả sổ ra 258 dòng dính đúng kiểu lỗi này).
   Cách chữa: nạp một font phụ ~12,5 KB CHỈ CHỨA ĐÚNG những chữ hiếm sổ đang dùng (cắt từ Plangothic
   P1, SIL OFL 1.1). ⚠️ Nguồn này KHÔNG phủ hết mọi khối — đo 7/9/2026 còn 54 chữ Ext A (㐬 䜌 㼌…)
   không có glyph trong Plangothic, tạm thời vẫn ra ô vuông; xem log của công cụ để biết danh sách.
   ⚠️ `unicode-range` liệt kê ĐÍCH DANH từng mã, cố ý KHÔNG viết gộp `U+20000-2FFFF`: viết gộp thì chữ
   hiếm chưa có trong font sẽ dính vào font này và ra ô vuông vĩnh viễn, thay vì rơi xuống font hệ
   thống hoặc font dự phòng khác trong chuỗi (Songti TC/SimSun/Noto Serif TC). Sổ có thêm chữ hiếm mới
   thì chạy lại `node tools/cat-font-chu-hiem.mjs --cat` — công cụ tự đọc sổ, tự kiểm chữ nào nguồn có
   glyph, tự cắt font mới và tự in ra dòng unicode-range để thay vào đây.
   ⚠️ Riêng cắt font KHÔNG đủ để hết ô vuông — đoạn văn diễn giải chiết tự (public/kho/kho-ho-so.js
   theTrietTu() và ba chỗ tương tự) phải BỌC chữ Hán nhúng trong câu bằng lớp `.han-nhung` (font
   --khai, xem kho.css) qua `U.vanCoChu()`; thiếu bước này thì cắt font xong đoạn văn vẫn không đổi vì
   font --khai chưa bao giờ được gắn vào đó, chỉ gắn cho các ô mặt-chữ đứng riêng (.han).
   Vì có unicode-range, trình duyệt chỉ tải tệp font khi trang THẬT SỰ có một trong các chữ đó. */
@font-face {
  font-family: "Chu Hiem";
  src: url("/chu-hiem.woff2?v=2") format("woff2");
  font-display: swap;
  unicode-range: U+2E88, U+2E8C, U+2E95, U+2EB6, U+2EB7, U+2EBC, U+2ECA, U+353E, U+382F, U+20065,
                 U+20086, U+20087, U+200A2, U+200A4, U+200B9, U+20114, U+20120, U+202B1, U+202EB,
                 U+20336, U+20486, U+20695, U+20763, U+2096E, U+209AA, U+209AC, U+20A02, U+20A9A,
                 U+20AD3, U+20B1B, U+20B1D, U+20B2A, U+20B36, U+20BD1, U+20C60, U+20DCE, U+211D2,
                 U+2123C, U+21940, U+219CD, U+21C42, U+21FFA, U+2206B, U+221B6, U+221CD, U+2234F,
                 U+22398, U+22674, U+2274A, U+2298F, U+229E4, U+22A48, U+22F38, U+22F60, U+22F73,
                 U+231AA, U+233B3, U+233B5, U+233DF, U+239B5, U+239BC, U+23D92, U+241FE, U+24566,
                 U+24595, U+25055, U+25128, U+253FB, U+25762, U+25AD7, U+263AB, U+26407, U+26427,
                 U+267C0, U+26951, U+26D61, U+27227, U+275D5, U+27751, U+27D2A, U+27DA0, U+27FB7,
                 U+2848C, U+28675, U+286DC, U+28E0F, U+2A505, U+2A6B0;
}
