/* ---------- 字体 · SIL Open Font License 1.1 ----------
   Source Serif 4     (c) 2014 Adobe — Frank Grieshammer, Nicole Dotin, Miguel Sousa
   Noto Serif CJK SC  (c) Google / Adobe — 思源宋体
   LXGW WenKai Lite   (c) LXGW — 霞鹜文楷
   均为 OFL 1.1，允许内嵌与再分发。按本站实际用字子集化。

   为什么外链而不是 base64 内嵌：
     base64 使体积膨胀 33%，且整份样式表因此无法单独缓存；woff2 本身已是压缩格式，
     服务端 gzip 对它无效 —— 592 KB 是压不掉的死重。
     抽离后样式表从 635 KB 降到约 43 KB，字体各自长缓存，重复访问零下载。

   ---- 中文分两级，且全量那级不在首屏下载 ----
   首屏真正出现的汉字只有 661 个（导航、按钮、门卡、装饰字），
   而完整字体覆盖 1300+ 字、243 KB。首屏等这 243 KB 是纯浪费。

     critical  661 字 / 70 KB —— 立即加载，保证首屏中文不闪
     full      全量   / 243 KB —— 由 fonts-loader.js 在首屏之后注入

   为什么用 JS 注入而不是单纯靠 unicode-range：
     实测下，只要页面上存在 critical 覆盖不到的汉字，浏览器就会立刻
     回退到同一字族的下一个 face（即全量字体），把它一并下载 ——
     unicode-range 只能「避免使用」，不能「阻止下载」。
     所以这里彻底不让浏览器在首屏阶段知道全量字体的存在：
     样式表里根本不声明它，改由 JS 在 load 之后用 FontFace API 注入。
     首屏因此只下 70 KB，而不是 243 KB。

   font-display:swap —— 首屏先用系统字体渲染（中文走 --zh 回退链），
   字体就绪后就地替换。用户几乎无感。
   ---------- */

/* 关键子集：首屏用字，必须尽快到位。
   unicode-range 精确逐字列出，确保这些字全部命中本 face。 */
@font-face{font-family:'Noto Serif CJK SC';font-style:normal;font-weight:400;font-display:swap;
  src:url(fonts/noto-serif-cjk-sc-critical.woff2) format('woff2');
  unicode-range:U+3001-3002,U+300C-300D,U+301C,U+3042,U+3044,U+3046,U+3048,U+304A-304D,U+304F,U+3051,U+3053-3055,U+3057-3061,U+3063-3064,U+3066-306B,U+306E-3070,U+3072-3073,U+3075-3076,U+3078-3079,U+307E-3082,U+3084,U+3088-308D,U+308F,U+3092-3093,U+30A3-30A4,U+30AA-30AB,U+30AD,U+30AF-30B0,U+30B8-30B9,U+30BF,U+30C3,U+30C6,U+30C8-30C9,U+30CD,U+30D0,U+30D4-30D5,U+30D7,U+30DA,U+30DE,U+30E1,U+30E9-30EB,U+30ED,U+30EF,U+30F3,U+30FB-30FC,U+4E00,U+4E09-4E0B,U+4E0D-4E0E,U+4E1C,U+4E22,U+4E24,U+4E2A,U+4E2D,U+4E3A-4E3B,U+4E48-4E49,U+4E4B,U+4E50,U+4E5D,U+4E60,U+4E66,U+4E86,U+4E88,U+4E8B-4E8C,U+4E8E,U+4E94,U+4E9B,U+4EA4,U+4EAE,U+4EB2,U+4EBA,U+4EC0,U+4ECA-4ECB,U+4ECE,U+4ED5-4ED6,U+4ED8,U+4EE3,U+4EE5,U+4EEC,U+4EF6-4EF7,U+4EFB,U+4EFD,U+4F1A,U+4F1D,U+4F20,U+4F46,U+4F53,U+4F55,U+4F5C,U+4F60,U+4F73,U+4F7F,U+4F8B,U+4F9D,U+4FA1,U+4FC2,U+4FD7,U+4FDA,U+4FE1,U+5019,U+5024,U+503C,U+504F,U+505A,U+5065,U+50CF,U+50DA,U+5100,U+5143,U+5148,U+514B,U+515C,U+5165,U+5168,U+516C-516D,U+5171,U+5173,U+5178,U+5185,U+518C-518D,U+5199,U+519C,U+51B2-51B3,U+51B7,U+51C0,U+51E6,U+51FA,U+5206-5207,U+5212,U+5217,U+521D,U+5224-5225,U+522B,U+5230,U+524D,U+529B,U+529E,U+52A0,U+52D5,U+5305,U+5316,U+533B,U+5341,U+5360-5361,U+5370,U+5377,U+5386,U+538B,U+539F,U+53BB,U+53CA-53CB,U+53D1,U+53E3-53E5,U+53EA-53EB,U+53EF,U+53F7,U+5403,U+5408,U+540C,U+540E,U+5411,U+5417,U+542B-542C,U+5473,U+547C-547D,U+548C,U+54E1,U+54EA,U+54F2,U+554F,U+559C,U+55A9,U+565B,U+56DB,U+56DE,U+56E0,U+56F2,U+56F4,U+56FD,U+5728,U+5730,U+573A,U+5831,U+5834,U+586B,U+5883,U+58EB,U+58F0,U+5904,U+590D,U+5916,U+591A,U+591C,U+5929,U+5931,U+5957,U+59CB,U+5A31,U+5B50,U+5B57-5B58,U+5B66,U+5B83,U+5B8C,U+5B9A,U+5B9E-5B9F,U+5BA1,U+5BA4,U+5BB5-5BB6,U+5BB9,U+5BC6,U+5BF9,U+5BFE-5BFF,U+5C11,U+5C1A,U+5C31,U+5C40,U+5C5E,U+5DF2,U+5DFB,U+5E26,U+5E2E,U+5E38,U+5E72-5E74,U+5E83,U+5E94-5E95,U+5EA6,U+5EB7,U+5EFA,U+5F00,U+5F15,U+5F20,U+5F53,U+5F55,U+5F59,U+5F62,U+5F80,U+5F8C,U+5F97,U+5FC5,U+5FDC,U+5FEB,U+5FF5,U+600E,U+601D,U+6027,U+6089,U+60C5,U+60F3,U+610F,U+611F,U+61C2,U+6210-6211,U+6216,U+623B,U+6240,U+6249,U+624B,U+624D,U+6253,U+6279,U+628A,U+6293,U+62A5,U+62B1,U+62E0,U+62E9,U+62FC,U+62FF,U+6307,U+6309,U+6311,U+6362,U+636E,U+6388-6389,U+63A5,U+63DB,U+641C,U+642D,U+652F,U+6559,U+6562,U+6570,U+6574,U+6587,U+65B0,U+65B9,U+65C5,U+65CF,U+65E0,U+65E5,U+65E7,U+65E9,U+65EC,U+65F6,U+660E,U+6613,U+661F,U+6625,U+662F,U+663E,U+6642,U+665A,U+666F,U+66A6,U+66F4,U+66F8,U+66FF-6700,U+6708-6709,U+670B,U+671F,U+672A,U+672C,U+672F,U+6761,U+6765,U+6790,U+67E5,U+67F1,U+6807,U+680F,U+6837,U+6839,U+683C,U+6848,U+68C0,U+691C,U+697D,U+6982,U+6A5F,U+6B21,U+6B63-6B64,U+6BCD-6BCF,U+6BD4,U+6C11,U+6C17,U+6C47,U+6C49,U+6CA1,U+6CD5,U+6CE8,U+6D0B,U+6D3B,U+6D41,U+6D4B,U+6D4F,U+6D88,U+6DFB,U+6E05,U+6E08,U+6F14,U+6F22,U+706B,U+70B9,U+70E6,U+7136,U+7167,U+719F,U+7247,U+7269,U+73B0,U+7406,U+751F,U+7528,U+7531,U+753B,U+754C,U+7559,U+767A-767B,U+767D-767E,U+7684,U+76D6,U+76D8,U+76EE,U+76F4,U+76F8,U+770B,U+771F,U+7740,U+77E5,U+77ED,U+7814-7815,U+793A,U+793C,U+793E,U+796D,U+7984,U+798F,U+79BB,U+79C1,U+79D1,U+79F0,U+7A0B,U+7A2E,U+7A76,U+7A7A,U+7ACB,U+7B26,U+7B2C,U+7B49,U+7B54,U+7B5B,U+7B97,U+7BC4,U+7C7B,U+7CBE,U+7CF8,U+7CFB,U+7D22,U+7D39,U+7D44,U+7D5E,U+7D71,U+7EA2,U+7EA6,U+7EAF,U+7EBF,U+7ECE-7ECF,U+7ED9,U+7EDC,U+7EDF,U+7F51,U+7F6E,U+7F8E,U+7FA9,U+7FD2,U+7FFB,U+8003,U+8005,U+800C,U+8033,U+804C,U+805E,U+8077,U+8096,U+80CC,U+80FD,U+8108-8109,U+8154,U+81EA,U+81F4,U+826F,U+827A,U+8282,U+82B8,U+82F1,U+8303,U+8336,U+83DC,U+843D,U+8449,U+8651,U+884C,U+8853,U+8868,U+88C5,U+88DC,U+897F,U+8981,U+8986,U+898B,U+89AA,U+89B3,U+89C1-89C2,U+89C4,U+89C6,U+89C8,U+89D2,U+89E3,U+8A00,U+8A08,U+8A13,U+8A18,U+8A2A,U+8A2D,U+8A33,U+8A66,U+8A71,U+8A73,U+8A95,U+8A98,U+8A9E,U+8AAC-8AAD,U+8ABF,U+8B58,U+8BA4,U+8BA9,U+8BAE,U+8BBF,U+8BC6,U+8BCD,U+8BD1,U+8BD5,U+8BDD,U+8BE6,U+8BED,U+8BF4,U+8BF7,U+8BFB,U+8C01,U+8C03,U+8C13,U+8C46,U+8C61,U+8CEA,U+8D28,U+8D4B,U+8D70,U+8D77,U+8DDF,U+8DEF,U+8DF3,U+8EFD,U+8F7B,U+8F93,U+8F9E,U+8FB9,U+8FBC,U+8FBF,U+8FC7,U+8FD1,U+8FD8-8FD9,U+8FDB,U+8FF0,U+8FFD,U+9001,U+9009,U+901A,U+901F,U+9023,U+904A,U+9053,U+9055,U+9078,U+9080,U+90A3,U+90E8,U+90FD,U+914D,U+91C8,U+91CA,U+91CC,U+91D1,U+93E1,U+9451,U+94A5,U+94B1,U+955C,U+9589,U+958B,U+9593,U+95A2,U+95ED-95EE,U+95F4,U+9645,U+969B,U+96C6,U+9700,U+9762,U+97F3,U+9805,U+985E,U+9875,U+9884,U+9898,U+98CE,U+98DB,U+98DF,U+996D-996E,U+997C,U+9AD8,U+9EBB;}

/* 楷体同理：首屏子集 / 42 KB 立即加载 */
@font-face{font-family:'LXGW WenKai';font-style:normal;font-weight:400;font-display:swap;
  src:url(fonts/lxgw-wenkai-critical.woff2) format('woff2');
  unicode-range:U+3001-3002,U+300C-300D,U+301C,U+3042,U+3044,U+3046,U+3048,U+304A-304D,U+304F,U+3051,U+3053-3055,U+3057-3061,U+3063-3064,U+3066-306B,U+306E-3070,U+3072-3073,U+3075-3076,U+3078-3079,U+307E-3082,U+3084,U+3088-308D,U+308F,U+3092-3093,U+30A3-30A4,U+30AA-30AB,U+30AD,U+30AF-30B0,U+30B8-30B9,U+30BF,U+30C3,U+30C6,U+30C8-30C9,U+30CD,U+30D0,U+30D4-30D5,U+30D7,U+30DA,U+30DE,U+30E1,U+30E9-30EB,U+30ED,U+30EF,U+30F3,U+30FB-30FC,U+4E00,U+4E09-4E0B,U+4E0D-4E0E,U+4E1C,U+4E22,U+4E24,U+4E2A,U+4E2D,U+4E3A-4E3B,U+4E48-4E49,U+4E4B,U+4E50,U+4E5D,U+4E60,U+4E66,U+4E86,U+4E88,U+4E8B-4E8C,U+4E8E,U+4E94,U+4E9B,U+4EA4,U+4EAE,U+4EB2,U+4EBA,U+4EC0,U+4ECA-4ECB,U+4ECE,U+4ED5-4ED6,U+4ED8,U+4EE3,U+4EE5,U+4EEC,U+4EF6-4EF7,U+4EFB,U+4EFD,U+4F1A,U+4F1D,U+4F20,U+4F46,U+4F53,U+4F55,U+4F5C,U+4F60,U+4F73,U+4F7F,U+4F8B,U+4F9D,U+4FA1,U+4FC2,U+4FD7,U+4FDA,U+4FE1,U+5019,U+5024,U+503C,U+504F,U+505A,U+5065,U+50CF,U+50DA,U+5100,U+5143,U+5148,U+514B,U+515C,U+5165,U+5168,U+516C-516D,U+5171,U+5173,U+5178,U+5185,U+518C-518D,U+5199,U+519C,U+51B2-51B3,U+51B7,U+51C0,U+51E6,U+51FA,U+5206-5207,U+5212,U+5217,U+521D,U+5224-5225,U+522B,U+5230,U+524D,U+529B,U+529E,U+52A0,U+52D5,U+5305,U+5316,U+533B,U+5341,U+5360-5361,U+5370,U+5377,U+5386,U+538B,U+539F,U+53BB,U+53CA-53CB,U+53D1,U+53E3-53E5,U+53EA-53EB,U+53EF,U+53F7,U+5403,U+5408,U+540C,U+540E,U+5411,U+5417,U+542B-542C,U+5473,U+547C-547D,U+548C,U+54E1,U+54EA,U+54F2,U+554F,U+559C,U+55A9,U+565B,U+56DB,U+56DE,U+56E0,U+56F2,U+56F4,U+56FD,U+5728,U+5730,U+573A,U+5831,U+5834,U+586B,U+5883,U+58EB,U+58F0,U+5904,U+590D,U+5916,U+591A,U+591C,U+5929,U+5931,U+5957,U+59CB,U+5A31,U+5B50,U+5B57-5B58,U+5B66,U+5B83,U+5B8C,U+5B9A,U+5B9E-5B9F,U+5BA1,U+5BA4,U+5BB5-5BB6,U+5BB9,U+5BC6,U+5BF9,U+5BFE-5BFF,U+5C11,U+5C1A,U+5C31,U+5C40,U+5C5E,U+5DF2,U+5DFB,U+5E26,U+5E2E,U+5E38,U+5E72-5E74,U+5E83,U+5E94-5E95,U+5EA6,U+5EB7,U+5EFA,U+5F00,U+5F15,U+5F20,U+5F53,U+5F55,U+5F59,U+5F62,U+5F80,U+5F8C,U+5F97,U+5FC5,U+5FDC,U+5FEB,U+5FF5,U+600E,U+601D,U+6027,U+6089,U+60C5,U+60F3,U+610F,U+611F,U+61C2,U+6210-6211,U+6216,U+623B,U+6240,U+6249,U+624B,U+624D,U+6253,U+6279,U+628A,U+6293,U+62A5,U+62B1,U+62E0,U+62E9,U+62FC,U+62FF,U+6307,U+6309,U+6311,U+6362,U+636E,U+6388-6389,U+63A5,U+63DB,U+641C,U+642D,U+652F,U+6559,U+6562,U+6570,U+6574,U+6587,U+65B0,U+65B9,U+65C5,U+65CF,U+65E0,U+65E5,U+65E7,U+65E9,U+65EC,U+65F6,U+660E,U+6613,U+661F,U+6625,U+662F,U+663E,U+6642,U+665A,U+666F,U+66A6,U+66F4,U+66F8,U+66FF-6700,U+6708-6709,U+670B,U+671F,U+672A,U+672C,U+672F,U+6761,U+6765,U+6790,U+67E5,U+67F1,U+6807,U+680F,U+6837,U+6839,U+683C,U+6848,U+68C0,U+691C,U+697D,U+6982,U+6A5F,U+6B21,U+6B63-6B64,U+6BCD-6BCF,U+6BD4,U+6C11,U+6C17,U+6C47,U+6C49,U+6CA1,U+6CD5,U+6CE8,U+6D0B,U+6D3B,U+6D41,U+6D4B,U+6D4F,U+6D88,U+6DFB,U+6E05,U+6E08,U+6F14,U+6F22,U+706B,U+70B9,U+70E6,U+7136,U+7167,U+719F,U+7247,U+7269,U+73B0,U+7406,U+751F,U+7528,U+7531,U+753B,U+754C,U+7559,U+767A-767B,U+767D-767E,U+7684,U+76D6,U+76D8,U+76EE,U+76F4,U+76F8,U+770B,U+771F,U+7740,U+77E5,U+77ED,U+7814-7815,U+793A,U+793C,U+793E,U+796D,U+7984,U+798F,U+79BB,U+79C1,U+79D1,U+79F0,U+7A0B,U+7A2E,U+7A76,U+7A7A,U+7ACB,U+7B26,U+7B2C,U+7B49,U+7B54,U+7B5B,U+7B97,U+7BC4,U+7C7B,U+7CBE,U+7CF8,U+7CFB,U+7D22,U+7D39,U+7D44,U+7D5E,U+7D71,U+7EA2,U+7EA6,U+7EAF,U+7EBF,U+7ECE-7ECF,U+7ED9,U+7EDC,U+7EDF,U+7F51,U+7F6E,U+7F8E,U+7FA9,U+7FD2,U+7FFB,U+8003,U+8005,U+800C,U+8033,U+804C,U+805E,U+8077,U+8096,U+80CC,U+80FD,U+8108-8109,U+8154,U+81EA,U+81F4,U+826F,U+827A,U+8282,U+82B8,U+82F1,U+8303,U+8336,U+83DC,U+843D,U+8449,U+8651,U+884C,U+8853,U+8868,U+88C5,U+88DC,U+897F,U+8981,U+8986,U+898B,U+89AA,U+89B3,U+89C1-89C2,U+89C4,U+89C6,U+89C8,U+89D2,U+89E3,U+8A00,U+8A08,U+8A13,U+8A18,U+8A2A,U+8A2D,U+8A33,U+8A66,U+8A71,U+8A73,U+8A95,U+8A98,U+8A9E,U+8AAC-8AAD,U+8ABF,U+8B58,U+8BA4,U+8BA9,U+8BAE,U+8BBF,U+8BC6,U+8BCD,U+8BD1,U+8BD5,U+8BDD,U+8BE6,U+8BED,U+8BF4,U+8BF7,U+8BFB,U+8C01,U+8C03,U+8C13,U+8C46,U+8C61,U+8CEA,U+8D28,U+8D4B,U+8D70,U+8D77,U+8DDF,U+8DEF,U+8DF3,U+8EFD,U+8F7B,U+8F93,U+8F9E,U+8FB9,U+8FBC,U+8FBF,U+8FC7,U+8FD1,U+8FD8-8FD9,U+8FDB,U+8FF0,U+8FFD,U+9001,U+9009,U+901A,U+901F,U+9023,U+904A,U+9053,U+9055,U+9078,U+9080,U+90A3,U+90E8,U+90FD,U+914D,U+91C8,U+91CA,U+91CC,U+91D1,U+93E1,U+9451,U+94A5,U+94B1,U+955C,U+9589,U+958B,U+9593,U+95A2,U+95ED-95EE,U+95F4,U+9645,U+969B,U+96C6,U+9700,U+9762,U+97F3,U+9805,U+985E,U+9875,U+9884,U+9898,U+98CE,U+98DB,U+98DF,U+996D-996E,U+997C,U+9AD8,U+9EBB;}

@font-face{font-family:'Source Serif 4';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/source-serif-4.woff2) format('woff2');}
@font-face{font-family:'Source Serif 4';font-style:italic;font-weight:400 700;font-display:swap;src:url(fonts/source-serif-4-italic.woff2) format('woff2');}
