/* ============================================================================
   乐财 · 全球优秀企业研究 — 站点样式
   设计基线：Ardot 画布 730576248379757（1440 断点）
   规范来源：《前端交接说明》§5 设计 token · §7.1 响应式规范
   目录：1 字体 / 2 token / 3 基础 / 4 容器 / 5 区块 / 6 组件 / 7 页面 / 8 响应式
   ========================================================================== */

/* ---------------------------------------------------------------- 1. 字体 */
/* 自托管字体 —— 由 site/tools/build_fonts.py 生成，勿手工编辑
   64 个 woff2 分片 / 938.5 KB（已按本站字符集子集化）
   P1-1（2026-10-05）：同一 unicode 分片的各权重副本实测字节全同，
   故每个分片只保留 1 份变量字体，font-weight 声明为 fvar 的 wght 轴范围，
   由浏览器做轴插值 —— 123 → 49 个文件，省 61% 字体体积。
   声明从产物读出（不是抄请求参数），L7-7 会守「声明 ⊆ 载荷」。 */

@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-00.woff2') format('woff2');
  unicode-range: U+fee3, U+fef3, U+ff03-ff04, U+ff07, U+ff0a, U+ff17-ff19, U+ff1c-ff1d, U+ff20-ff3a, U+ff3c, U+ff3e-ff5b, U+ff5d, U+ff61-ff65, U+ff67-ff6a, U+ff6c, U+ff6f-ff78, U+ff7a-ff7d, U+ff80-ff84, U+ff86, U+ff89-ff8e, U+ff92, U+ff97-ff9b, U+ff9d-ff9f, U+ffe0-ffe4, U+ffe6, U+ffe9, U+ffeb, U+ffed, U+fffc, U+1f004, U+1f170-1f171, U+1f192-1f195, U+1f198-1f19a, U+1f1e6-1f1e8;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-01.woff2') format('woff2');
  unicode-range: U+95c4-95ca, U+95cc-95cd, U+95d4-95d6, U+95d8, U+95e1-95e2, U+95e9, U+95f0-95f1, U+95f3, U+95f6, U+95fc, U+95fe-95ff, U+9602-9604, U+9606-960d, U+960f, U+9611-9613, U+9615-9617, U+9619-961b, U+961d, U+9621, U+9628, U+962f, U+963c-963e, U+9641-9642, U+9649, U+9654, U+965b-965f, U+9661, U+9663, U+9665, U+9667-9668, U+966c, U+9670, U+9672-9674, U+9678, U+967a, U+967d, U+9682, U+9685, U+9688, U+968a, U+968d-968e, U+9695, U+9697-9698, U+969e, U+96a0, U+96a3-96a4, U+96a8, U+96aa, U+96b0-96b1, U+96b3-96b4, U+96b7-96b9, U+96bb-96bd, U+96c9, U+96cb, U+96ce, U+96d1-96d2, U+96d6, U+96d9, U+96db-96dc, U+96de, U+96e0, U+96e3, U+96e9, U+96eb, U+96f0-96f2, U+96f9, U+96ff, U+9701-9702, U+9705, U+9708, U+970a, U+970e-970f, U+9711, U+9719, U+9727, U+972a, U+972d, U+9730, U+973d, U+9742, U+9744, U+9748-9749, U+9750-9751, U+975a;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-02.woff2') format('woff2');
  unicode-range: U+94f5, U+94f7, U+94f9, U+94fb-94fd, U+94ff, U+9503-9504, U+9506-9507, U+9509-950a, U+950d-950f, U+9511-9518, U+951a-9520, U+9522, U+9528-952d, U+9530-953a, U+953c-953f, U+9543-9546, U+9548-9550, U+9552-9555, U+9557-955b, U+955d-9568, U+956a-956d, U+9570-9574, U+9583, U+9586, U+9589, U+958e-958f, U+9591-9592, U+9594, U+9598-9599, U+959e-95a0, U+95a2-95a6, U+95a8-95b2, U+95b4, U+95b8-95c3;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-03.woff2') format('woff2');
  unicode-range: U+73f0, U+73f2, U+73f4-73f5, U+73f7, U+73f9-73fa, U+73fc-73fd, U+73ff-7402, U+7404, U+7407-7408, U+740a-740f, U+7418, U+741a-741c, U+741e, U+7424-7425, U+7428-7429, U+742c-7430, U+7432, U+7435-7436, U+7438-743b, U+743e-7441, U+7443-7446, U+7448, U+744a-744b, U+7452, U+7457, U+745b, U+745d, U+7460, U+7462-7465, U+7467-746a, U+746d, U+746f, U+7471, U+7473-7474, U+7477, U+747a, U+747e, U+7481-7482, U+7484, U+7486, U+7488-748b, U+748e-748f, U+7493, U+7498, U+749a, U+749c-74a0, U+74a3, U+74a6, U+74a9-74aa, U+74ae, U+74b0-74b2, U+74b6, U+74b8-74ba, U+74bd, U+74bf, U+74c1, U+74c3, U+74c5, U+74c8, U+74ca, U+74cc, U+74cf, U+74d1-74d2, U+74d4-74d5, U+74d8-74db, U+74de-74e0, U+74e2, U+74e4-74e5, U+74e7-74e9, U+74ee-74ef, U+74f4, U+74ff, U+7501, U+7503, U+7505, U+7508;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-04.woff2') format('woff2');
  unicode-range: U+6dc3, U+6dc5-6dc6, U+6dc9, U+6dcc, U+6dcf, U+6dd2-6dd3, U+6dd6, U+6dd9-6dde, U+6de0, U+6de4, U+6de6, U+6de8-6dea, U+6dec, U+6def-6df0, U+6df5-6df6, U+6df8, U+6dfa, U+6dfc, U+6e03-6e04, U+6e07-6e09, U+6e0b-6e0c, U+6e0e, U+6e11, U+6e13, U+6e15-6e16, U+6e19-6e1b, U+6e1e-6e1f, U+6e22, U+6e25-6e27, U+6e2b-6e2c, U+6e36-6e37, U+6e39-6e3a, U+6e3c-6e41, U+6e44-6e45, U+6e47, U+6e49-6e4b, U+6e4d-6e4e, U+6e51, U+6e53-6e55, U+6e5c-6e5f, U+6e61-6e63, U+6e65-6e67, U+6e6a-6e6b, U+6e6d-6e70, U+6e72-6e74, U+6e76-6e78, U+6e7c, U+6e80-6e82, U+6e86-6e87, U+6e89, U+6e8d, U+6e8f, U+6e96, U+6e98, U+6e9d-6e9f, U+6ea1, U+6ea5-6ea7, U+6eab, U+6eb1-6eb2, U+6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec6, U+6ec8-6ec9, U+6ecc, U+6ecf-6ed0, U+6ed3-6ed4, U+6ed7-6ed8;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-05.woff2') format('woff2');
  unicode-range: U+2651-2655, U+2658, U+265a-265b, U+265d-265e, U+2660-266d, U+266f, U+267b, U+2688, U+2693-2696, U+2698-2699, U+269c, U+26a0-26a1, U+26a4, U+26aa-26ab, U+26bd-26be, U+26c4-26c5, U+26d4, U+26e9, U+26f0-26f1, U+26f3, U+26f5, U+26fd, U+2702, U+2704-2706, U+2708-270f, U+2712-2718, U+271a-271b, U+271d, U+271f, U+2721, U+2724-2730, U+2732-2734, U+273a, U+273d-2744, U+2747-2749, U+274c, U+274e-274f, U+2753-2757, U+275b, U+275d-275e, U+2763, U+2765-2767, U+276e-276f, U+2776-277e, U+2780-2782, U+278a-278c, U+278e, U+2794-2796, U+279c;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-06.woff2') format('woff2');
  unicode-range: U+2550-2551, U+2554, U+2557, U+255a-255b, U+255d, U+255f-2560, U+2562-2563, U+2565-2567, U+2569-256a, U+256c-2572, U+2579, U+2580-2595, U+25a1, U+25a3, U+25a9-25ad, U+25b0, U+25b3-25bb, U+25bd-25c2, U+25c4, U+25c8-25cb, U+25cd, U+25d0-25d1, U+25d4-25d5, U+25d8, U+25dc-25e6, U+25ea-25eb, U+25ef, U+25fe, U+2600-2604, U+2609, U+260e-260f, U+2611, U+2614-2615, U+2618, U+261a-2620, U+2622-2623, U+262a, U+262d-2630, U+2639-2640, U+2642, U+2648-2650;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-07.woff2') format('woff2');
  unicode-range: U+23f0, U+23f3, U+2445, U+2449, U+2465-2471, U+2474-249b, U+24b8, U+24c2, U+24c7, U+24c9, U+24d0, U+24d2, U+24d4, U+24d8, U+24dd-24de, U+24e3, U+24e6, U+24e8, U+2500-2509, U+250b-2526, U+2528-2534, U+2536-2537, U+253b-2548, U+254a-254b;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-08.woff2') format('woff2');
  unicode-range: U+207c-2083, U+208c-208e, U+2092, U+20a6, U+20a8-20ad, U+20af, U+20b1, U+20b4-20b5, U+20b8-20ba, U+20bd, U+20db, U+20dd, U+20e0, U+20e3, U+2105, U+2109, U+2113, U+2116-2117, U+2120-2121, U+2126, U+212b, U+2133, U+2139, U+2194, U+2196-2199, U+21a0, U+21a9-21aa, U+21af, U+21b3, U+21b5, U+21ba-21bb, U+21c4, U+21ca, U+21cc, U+21d0-21d4, U+21e1, U+21e6-21e9, U+2200, U+2202, U+2205-2208, U+220f, U+2211-2212, U+2215, U+2217-2219, U+221d-2220, U+2223, U+2225, U+2227-222b, U+222e, U+2234-2237, U+223c-223d, U+2248, U+224c, U+2252, U+2256, U+2260-2261, U+2266-2267, U+226a-226b, U+226e-226f, U+2282-2283, U+2295, U+2297, U+2299, U+22a5, U+22b0-22b1, U+22b9, U+22bf, U+22c5-22c6, U+22ef, U+2304, U+2307, U+230b, U+2312-2314, U+2318, U+231a-231b, U+2323, U+239b, U+239d-239e, U+23a0, U+23e9;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-09.woff2') format('woff2');
  unicode-range: U+a1-a4, U+a6-a8, U+aa, U+ac, U+af, U+b1, U+b3-b6, U+b8-ba, U+bc-d6, U+d8-de, U+e6, U+eb, U+ee-f0, U+f5, U+f7-f8, U+fb, U+fd-100, U+102, U+104-107, U+10d, U+10f-112, U+115, U+117, U+119, U+11b, U+11e-11f, U+121, U+123, U+125-127, U+129-12a, U+12d, U+12f-13f, U+141-142, U+144, U+146, U+14b-14c, U+14f-153, U+158-15b, U+15e-160, U+163-165, U+168-16a, U+16d-175;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-10.woff2') format('woff2');
  unicode-range: U+221a, U+2264, U+2464, U+25a0, U+3008, U+4e10, U+512a, U+5152, U+5201, U+5241, U+5340, U+5352, U+549a, U+54b2, U+54c6, U+54d7, U+54e1, U+5509, U+55c5, U+5618, U+5716, U+576f, U+5784, U+57a2, U+589f, U+5a20, U+5a25, U+5a29, U+5a34, U+5a7f, U+5ad6, U+5b09, U+5b5c, U+5bc7, U+5be6, U+5c27, U+5d2d, U+5dcd, U+5f1b, U+5f37, U+604d, U+6055, U+6073, U+60eb, U+61ff, U+62ce, U+62ed, U+6345, U+6390, U+63b0, U+63b7, U+64ae, U+64c2, U+64d2, U+6556, U+663c, U+667e, U+66d9, U+66f8, U+6756, U+6789, U+689d, U+68f1, U+695e, U+6975, U+6a1f, U+6b0a, U+6b61, U+6b87, U+6c5d, U+6c7e, U+6c92, U+6d31, U+6df9, U+6e0d, U+6e2d, U+6f31, U+6f3e, U+70b3, U+70bd, U+70ca, U+70e8, U+725f, U+733f, U+7396, U+739f, U+7459, U+74a7, U+75a1, U+75f0, U+76cf, U+76d4, U+7729, U+77aa, U+77b0, U+77e3, U+780c, U+78d5, U+7941, U+7977, U+797a, U+79c3, U+7a20, U+7a92, U+7b71, U+7bf1, U+7c9f, U+7eb6, U+7eca, U+7ef7, U+7f07, U+7f09, U+7f15, U+7f81, U+7fb9, U+8038, U+8098, U+80b4, U+8110, U+814b-814c, U+816e, U+818a, U+8205, U+8235, U+828b, U+82a5, U+82b7, U+82d4, U+82db, U+82df, U+8317, U+8338, U+8385-8386, U+83c1, U+83cf, U+8537, U+853b, U+854a, U+8715, U+8783, U+892a, U+8a71, U+8bb3, U+8d2e, U+8d58, U+8dbe, U+8f67, U+8fab, U+8fc4, U+8fe6, U+9023, U+9084, U+9091, U+916a, U+91c9, U+91dc, U+94b3, U+9502, U+9523, U+9551, U+956f, U+960e, U+962a, U+962e, U+9647, U+96f3, U+9739, U+97a0, U+97ed, U+983b, U+985e, U+988a, U+99ac, U+9a6f, U+9a87, U+9a8b, U+9ab7, U+9abc, U+9ac5, U+9e25, U+e608, U+e621, U+ff06, U+ff14-ff16;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-11.woff2') format('woff2');
  unicode-range: U+161, U+926, U+928, U+939, U+93f-940, U+94d, U+e17, U+e22, U+e44, U+25c7, U+25ce, U+2764, U+3009, U+3016-3017, U+4e4d, U+4e53, U+4f5a, U+4f70, U+4fae, U+4fd8, U+4ffa, U+5011, U+501a, U+51c4, U+5225, U+547b, U+5495, U+54e8, U+54ee, U+5594, U+55d3, U+55dc, U+55fd, U+560e, U+565c, U+5662, U+5669, U+566c, U+56bc, U+5742, U+5824, U+5834, U+598a, U+5992, U+59a9, U+5a04, U+5ac9, U+5b75, U+5b7d, U+5bc5, U+5c49, U+5c90, U+5e1c, U+5e27, U+5e2b, U+5e37, U+5e90, U+618b, U+61f5, U+620a, U+620c, U+6273, U+62c7, U+62f7, U+6320, U+6342, U+6401-6402, U+6413, U+6512, U+655b, U+65a7, U+65f1, U+65f7, U+665f, U+6687, U+66a7, U+673d, U+67b8, U+6854, U+68d8, U+68fa, U+696d, U+6a02, U+6a0a, U+6a80, U+6b7c, U+6bd9, U+6c2e, U+6c76, U+6cf8, U+6d4a, U+6d85, U+6e24, U+6e32, U+6ec7, U+6f88, U+700f, U+701a, U+7078, U+707c, U+70ac, U+70c1, U+72e9, U+7409, U+7422, U+745a, U+7480, U+74a8, U+752b, U+7574, U+7656, U+7699, U+7737, U+785d, U+78be, U+79b9, U+7a3d, U+7a91, U+7a9f, U+7ae3, U+7b77, U+7c3f, U+7d1a, U+7d50, U+7d93, U+8042, U+808b, U+8236, U+82b8-82b9, U+82ef, U+8309, U+836b, U+83ef, U+8431, U+85c9, U+865e, U+868c, U+8759, U+8760, U+8845, U+89ba, U+8a2a, U+8aaa, U+8c41, U+8d2c, U+8d4e, U+8e66, U+8e6d, U+8eaf, U+902e, U+914b, U+916e, U+919b, U+949b, U+94a0, U+94b0, U+9541-9542, U+9556, U+95eb, U+95f5, U+964b, U+968b, U+96cc-96cd, U+96cf, U+9713, U+9890, U+98a8, U+9985, U+9992, U+9a6d, U+9a81, U+9a86, U+9ab8, U+9ca4, U+e606-e607, U+e60a, U+e60c, U+e60e, U+fe0f, U+ff02, U+ff1e;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-12.woff2') format('woff2');
  unicode-range: U+10c, U+627-629, U+639, U+644, U+64a, U+203b, U+2265, U+2463, U+2573, U+25b2, U+3448-3449, U+4e1e, U+4e5e, U+4f3a, U+4f5f, U+4fea, U+5026, U+508d, U+516e, U+5189, U+5254, U+5288, U+52d8, U+52fa, U+5306, U+5308, U+5364, U+5384, U+53ed, U+543c, U+5450, U+5455, U+5466, U+54c4, U+5578, U+55a7, U+561f, U+5631, U+572d, U+575f, U+57ae, U+57e0, U+5830, U+594e, U+5984, U+5993, U+5bdd, U+5c0d, U+5c7f, U+5c82, U+5e62, U+5ed3, U+5f08, U+607a, U+60bc, U+625b, U+6292, U+62e2, U+6363, U+6467, U+6714, U+675e, U+6771, U+67a2, U+67ff, U+6805, U+68a7, U+68e0, U+6930, U+6986, U+69a8, U+69df, U+6a44, U+6a5f, U+6c13, U+6c1f, U+6c22, U+6c2f, U+6c40, U+6c81, U+6c9b, U+6ca5, U+6da4, U+6df3, U+6e85, U+6eba, U+6ed5, U+6f13, U+6f33, U+6f62, U+715e, U+72c4, U+73d1, U+7405, U+7487, U+7578, U+75a4, U+75eb, U+7693, U+7738, U+7741, U+776b, U+7792, U+77a7, U+77a9, U+77b3, U+788c, U+7984, U+79a7, U+79e4, U+7a1a, U+7a57, U+7aa6, U+7b0b, U+7b5d, U+7c27, U+7c7d, U+7caa, U+7cd9, U+7cef, U+7eda, U+7ede, U+7f24, U+803f, U+8046, U+80fa, U+81fb, U+8207, U+8258, U+8335, U+8339, U+8354, U+840e, U+85b0, U+85fb, U+8695, U+86aa, U+8717, U+8749, U+874c, U+8996, U+89bd, U+89c5, U+8bdb, U+8bf5, U+8c5a, U+8cec, U+8d3f, U+8d9f, U+8e44, U+8fed, U+9005, U+9019, U+9082, U+90af, U+90dd, U+90e1, U+90f8, U+916f, U+9176, U+949e, U+94a7, U+94c2, U+9525, U+9580, U+95dc, U+96e2, U+96fb, U+9704, U+9a7c, U+9a7f, U+9b41, U+9ca8, U+9cc4, U+9cde, U+9e92, U+9ede, U+9f9a, U+e60b, U+e610, U+ff10, U+ff13, U+ff3b, U+ff3d, U+f012b;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-13.woff2') format('woff2');
  unicode-range: U+60, U+631, U+2606, U+3014-3015, U+309c, U+33a1, U+4e52, U+4ec6, U+4f86, U+4f8d, U+4fde, U+4fef, U+500b, U+502a, U+515c, U+518a, U+51a5, U+51f3, U+5243, U+52c9, U+52d5, U+53a2, U+53ee, U+54ce, U+54fa, U+54fc, U+5580, U+5587, U+563f, U+56da, U+5792, U+5815, U+5960, U+59d7, U+5b78, U+5b9b, U+5be1, U+5c4e, U+5c51, U+5c6f, U+5c9a, U+5cfb, U+5d16, U+5ed6, U+5f27, U+5f6a, U+609a, U+60df, U+6168, U+61c8, U+6236, U+62f1, U+62fd, U+631a, U+6328, U+632b, U+6346, U+638f, U+63a0, U+63c9, U+655e, U+6590, U+6615, U+6627, U+66ae, U+66e6, U+66f0, U+67da, U+67ec, U+6813, U+6816, U+6869, U+6893, U+68ad, U+68f5, U+6977, U+6984, U+69db, U+6b72, U+6bb7, U+6ce3, U+6cfb, U+6d47, U+6da1, U+6dc4, U+6e43, U+6eaf, U+6eff, U+6f8e, U+7011, U+7063, U+7076, U+7096, U+70ba, U+70db, U+70ef, U+7119-711a, U+7172, U+718f, U+7194, U+727a, U+72d9, U+72ed, U+7325, U+73ae, U+73ba, U+73c0, U+73fe, U+7410, U+7426, U+7455, U+7554, U+7576, U+75ae, U+75b9, U+762b, U+766b, U+7682, U+7750, U+7779, U+7784, U+77eb, U+77ee, U+78f7, U+79e9, U+7a79, U+7b1b, U+7b28, U+7bf7, U+7db2, U+7ec5, U+7eee, U+7f14, U+7f1a, U+7fe1, U+8087, U+809b, U+81b3, U+8231, U+830e, U+835f, U+83e9, U+849c, U+851a, U+868a, U+8718, U+874e, U+8822, U+8910, U+8944, U+8a3b, U+8bb6, U+8bbc, U+8e72, U+8f9c, U+900d, U+904b, U+904e, U+9063, U+90a2, U+90b9, U+9119, U+94f2, U+952f, U+9576-9577, U+9593, U+95f8, U+961c, U+969b, U+96a7, U+96c1, U+9716, U+9761, U+97ad, U+97e7, U+98a4, U+997a, U+9a73, U+9b44, U+9e3d, U+9ecf, U+9ed4, U+ff11-ff12, U+fffd;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-14.woff2') format('woff2');
  unicode-range: U+2003, U+2193, U+2462, U+4e19, U+4e2b, U+4e36, U+4ea8, U+4ed1, U+4ed7, U+4f51, U+4f63, U+4f83, U+50e7, U+5112, U+5167, U+51a4, U+51b6, U+5239, U+5265, U+532a, U+5351, U+537f, U+5401, U+548f, U+5492, U+54af, U+54b3, U+54bd, U+54d1, U+54df, U+554f, U+5564, U+5598, U+5632, U+56a3, U+56e7, U+574e, U+575d-575e, U+57d4, U+584c, U+58e4, U+5937, U+5955, U+5a05, U+5a1f, U+5a49, U+5ac2, U+5c39, U+5c61, U+5d0e, U+5de9, U+5e9a, U+5eb8, U+5f0a, U+5f13, U+5f6c, U+5f8c, U+603c, U+608d, U+611b, U+6127, U+62a0, U+62d0, U+634f, U+635e, U+63fd, U+6577, U+658b, U+65bc, U+660a, U+6643, U+6656, U+6703, U+6760, U+67af, U+67c4, U+67e0, U+6817, U+68cd, U+690e, U+6960, U+69b4, U+6a71, U+6aac, U+6b67, U+6bb4, U+6c55, U+6c70, U+6c82, U+6ca6, U+6cb8, U+6cbe, U+6ede, U+6ee5, U+6f4d, U+6f84, U+6f9c, U+7115, U+7121, U+722a, U+7261, U+7272, U+7280, U+72f8, U+7504, U+754f, U+75d8, U+767c, U+76ef, U+778e, U+77bb, U+77f6, U+786b, U+78b1, U+7948, U+7985, U+79be, U+7a83, U+7a8d, U+7eac, U+7eef, U+7ef8, U+7efd, U+7f00, U+803d, U+8086, U+810a, U+8165, U+819d, U+81a8, U+8214, U+829c, U+831c, U+832b, U+8367, U+83e0, U+83f1, U+8403, U+846b, U+8475, U+84b2, U+8513, U+8574, U+85af, U+86d9, U+86db, U+8acb, U+8bbd, U+8be0-8be1, U+8c0e, U+8d29, U+8d50, U+8d63, U+8f7f, U+9032, U+9042, U+90b1, U+90b5, U+9165, U+9175, U+94a6, U+94c5, U+950c, U+9610, U+9631, U+9699, U+973e, U+978d, U+97ec, U+97f6, U+984c, U+987d, U+9882, U+9965, U+996a, U+9972, U+9a8f, U+9ad3, U+9ae6, U+9cb8, U+9edb, U+e600, U+e60f, U+e611, U+ff05, U+ff0b;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-15.woff2') format('woff2');
  unicode-range: U+5e, U+2190, U+250a, U+25bc, U+25cf, U+4e56, U+4ea9, U+4f3d, U+4f6c, U+4f88, U+4fa8, U+4fcf, U+5029, U+5188, U+51f9, U+5203, U+524a, U+5256, U+529d, U+5375, U+53db, U+541f, U+5435, U+5457, U+548b, U+54c7, U+54d4, U+54e9, U+556a, U+5589, U+55bb, U+55e8, U+55ef, U+563b, U+566a, U+576a, U+58f9, U+598d, U+599e, U+59a8, U+5a9b, U+5ae3, U+5bb0, U+5bde, U+5c4c, U+5c60, U+5d1b, U+5deb, U+5df7, U+5e18, U+5f26, U+5f64, U+601c, U+6084, U+60e9, U+614c, U+6208, U+621a, U+6233, U+6254, U+62d8, U+62e6, U+62ef, U+6323, U+632a, U+633d, U+6361, U+6405, U+640f, U+6614, U+6642, U+6657, U+67a3, U+6808, U+683d, U+6850, U+6897, U+68b3, U+68b5, U+68d5, U+6a58, U+6b47, U+6b6a, U+6c28, U+6c90, U+6ca7, U+6cf5, U+6d51, U+6da9, U+6dc7, U+6dd1, U+6e0a, U+6e5b, U+6e9c, U+6f47, U+6f6d, U+70ad, U+70f9, U+710a, U+7130, U+71ac, U+745f, U+7476, U+7490, U+7529, U+7538, U+75d2, U+7696, U+76b1, U+76fc, U+777f, U+77dc, U+789f, U+795b, U+79bd, U+79c9, U+7a3b, U+7a46, U+7aa5, U+7ad6, U+7ca5, U+7cb9, U+7cdf, U+7d6e, U+7f06, U+7f38, U+7fa1, U+7fc1, U+8015, U+803b, U+80a2, U+80aa, U+8116, U+813e, U+82bd, U+8305, U+8328, U+8346, U+846c, U+8549, U+859b, U+8611, U+8680, U+87f9, U+884d, U+8877, U+888d, U+88d4, U+898b, U+8a79, U+8a93, U+8c05, U+8c0d, U+8c26, U+8d1e, U+8d31, U+8d81, U+8e22, U+8e81, U+8f90, U+8f96, U+90ca, U+916c, U+917f, U+9187, U+918b, U+9499, U+94a9, U+9524, U+9540, U+958b, U+9600, U+9640, U+96b6, U+96c7, U+96ef, U+98d9, U+9976, U+997f, U+9a74, U+9a84, U+9c8d, U+9e26, U+9e9f, U+ad6d, U+c5b4, U+d55c, U+ff0f;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-16.woff2') format('woff2');
  unicode-range: U+b0, U+2191, U+2460-2461, U+25c6, U+300e-300f, U+4e1b, U+4e7e, U+4ed5, U+4ef2, U+4f10, U+4f1e, U+4f50, U+4fa6, U+4faf, U+5021, U+50f5, U+5179, U+5180, U+51d1, U+522e, U+52a3, U+52c3, U+52cb, U+5300, U+5319, U+5320, U+5349, U+5395, U+53d9, U+541e, U+5428, U+543e, U+54b1, U+54c0, U+54d2, U+570b, U+5858, U+58f6, U+5974, U+59a5, U+59e8, U+59ec, U+5a36, U+5a9a, U+5ab3, U+5b99, U+5baa, U+5ce1, U+5d14, U+5d4c, U+5dc5, U+5de2, U+5e99, U+5e9e, U+5f18, U+5f66, U+5f70, U+6070, U+60d5, U+60e7, U+6101, U+611a, U+61be, U+6241, U+6252, U+626f, U+6296, U+62bc, U+62cc, U+6380, U+63a9, U+644a, U+6454, U+64a9, U+64b8, U+6500, U+6572, U+65a5, U+65a9, U+65ec, U+660f, U+6749, U+6795, U+67ab, U+68da, U+6912, U+6bbf, U+6bef, U+6cab, U+6cca, U+6ccc, U+6cfc, U+6d3d, U+6d78, U+6dee, U+6e17, U+6e34, U+6e83, U+6ea2, U+6eb6, U+6f20, U+6fa1, U+707f, U+70d8, U+70eb, U+714c, U+714e, U+7235, U+7239, U+73ca, U+743c, U+745c, U+7624, U+763e, U+76f2, U+77db, U+77e9, U+780d, U+7838, U+7845, U+78ca, U+796d, U+7a84, U+7aed, U+7b3c, U+7eb2, U+7f05, U+7f20, U+7f34, U+7f62, U+7fc5, U+7fd8, U+7ff0, U+800d, U+8036, U+80ba, U+80be, U+80c0-80c1, U+8155, U+817a, U+8180, U+81e3, U+8206, U+8247, U+8270, U+8299, U+82ad, U+8304, U+8393, U+83b9, U+840d, U+8427, U+8469, U+8471, U+84c4, U+84ec, U+853d, U+8681-8682, U+8721, U+8854, U+88d5, U+88f9, U+8bc0, U+8c0a, U+8c29, U+8c2d, U+8d41, U+8dea, U+8eb2, U+8f9f, U+903b, U+903e, U+9102, U+9493, U+94a5, U+94f8, U+95f7, U+9706, U+9709, U+9774, U+98a0, U+9e64, U+9f9f, U+e603;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-17.woff2') format('woff2');
  unicode-range: U+200b, U+2103, U+4e18, U+4e27-4e28, U+4e38, U+4e59, U+4e8f, U+4ead, U+4ec7, U+4fe9, U+503a, U+5085, U+5146, U+51af, U+51f8, U+52ab, U+5339, U+535c, U+5378, U+538c, U+5398, U+53f9, U+5415, U+5475, U+54aa, U+54ac, U+54b8, U+5582, U+5760, U+5764, U+57cb, U+5835, U+5885, U+5951, U+5983, U+59da, U+5a77, U+5b5d, U+5b5f, U+5bb5, U+5bc2, U+5be8, U+5bfa, U+5c2c, U+5c34, U+5c41, U+5c48, U+5c65, U+5cad, U+5e06, U+5e42, U+5ef7, U+5f17, U+5f25, U+5f6d, U+5f79, U+6028, U+6064, U+6068, U+606d, U+607c, U+6094, U+6109, U+6124, U+6247, U+626d, U+6291, U+629a, U+62ac, U+62b9, U+62fe, U+6324, U+6349, U+6367, U+6398, U+6495, U+64a4, U+64b0, U+64bc, U+64ce, U+658c, U+65ed, U+6602, U+6674, U+6691, U+66a8, U+674f, U+679a, U+67ef, U+67f4, U+680b, U+6876, U+68a8, U+6a59, U+6a61, U+6b20, U+6bc5, U+6d12, U+6d46, U+6d8c, U+6dc0, U+6e14, U+6e23, U+6f06, U+7164, U+716e, U+7199, U+71e5, U+72ac, U+742a, U+755c, U+75ab, U+75b2, U+75f4, U+7897, U+78b3, U+78c5, U+7978, U+79fd, U+7a74, U+7b4b, U+7b5b, U+7ece, U+7ed2, U+7ee3, U+7ef3, U+7f50, U+7f55, U+7f9e, U+7fe0, U+809d, U+8106, U+814a, U+8154, U+817b, U+818f, U+81c2, U+81ed, U+821f, U+82a6, U+82d1, U+8302, U+83c7, U+83ca, U+845b, U+848b, U+84c9, U+85e4, U+86ee, U+8700, U+8774, U+8881, U+8c1c, U+8c79, U+8d2a, U+8d3c, U+8eba, U+8f70, U+8fa9, U+8fb1, U+900a, U+9017, U+901d, U+9022, U+906e, U+946b, U+94dd, U+94ed, U+953b, U+95ef, U+95fa, U+95fd, U+96c0, U+971e, U+9753, U+9756, U+97e6, U+9881, U+9887, U+9b4f, U+9e2d, U+9f0e, U+e601-e602, U+e604-e605, U+ff5c;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-18.woff2') format('woff2');
  unicode-range: U+24, U+4e08, U+4e43, U+4e4f, U+4ef0, U+4f2a, U+507f, U+50ac, U+50bb, U+5151, U+51bb, U+51f6, U+51fd, U+5272, U+52fe, U+5362, U+53c9, U+53d4, U+53e0, U+543b, U+54f2, U+5507, U+5524, U+558a, U+55b5, U+561b, U+56ca, U+5782, U+57c3, U+5893, U+5915, U+5949, U+5962, U+59ae, U+59dc, U+59fb, U+5bd3, U+5c38, U+5cb3, U+5d07, U+5d29, U+5de1, U+5dfe, U+5e15, U+5eca, U+5f2f, U+5f7c, U+5fcc, U+6021, U+609f, U+60f9, U+6108, U+6148, U+6155, U+6170, U+61d2, U+6251, U+629b, U+62ab, U+62e8, U+62f3, U+6321, U+6350, U+6566, U+659c, U+65e8, U+6635, U+6655, U+6670, U+66f9, U+6734, U+679d, U+6851, U+6905, U+6b49, U+6b96, U+6c1b, U+6c41, U+6c6a, U+6c83, U+6cf3, U+6d9b, U+6dcb, U+6e1d, U+6e20-6e21, U+6eaa, U+6ee4, U+6ee9, U+6f58, U+70e4, U+722c, U+7262, U+7267, U+72b9, U+72e0, U+72ee, U+72f1, U+7334, U+73ab, U+7433, U+7470, U+758f, U+75d5, U+764c, U+7686, U+76c6, U+76fe, U+7720, U+77e2, U+7802, U+7816, U+788d, U+7891, U+7a00, U+7a9d, U+7b52, U+7bad, U+7c98, U+7cca, U+7eba, U+7eea, U+7ef5, U+7f1d, U+7f69, U+806a, U+809a, U+80bf, U+80c3, U+81c0, U+820c, U+82ac, U+82af, U+82cd, U+82d7, U+838e, U+839e, U+8404, U+84b8, U+852c, U+8587, U+8650, U+8679, U+86c7, U+8702, U+87ba, U+886b-886c, U+8870, U+8c10, U+8c23, U+8c6b, U+8d3e, U+8d4b-8d4c, U+8d64, U+8d6b, U+8d74, U+8e29, U+8f69, U+8f74, U+8fb0, U+8fdf, U+901b, U+9038, U+9093, U+9171, U+9489, U+94ae, U+94c3, U+9508, U+9510, U+9601, U+9614, U+964c, U+9675, U+971c, U+97f5, U+9888, U+98d8, U+9971, U+9aa4, U+9e3f, U+9e45, U+9e4f, U+9e70, U+9f7f, U+e715;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-19.woff2') format('woff2');
  unicode-range: U+a5, U+2192, U+2605, U+4e11, U+4e22, U+4e32, U+4f0d, U+4f0f, U+4f69, U+4ff1, U+50b2, U+5154, U+51dd, U+51f0, U+5211, U+5269, U+533f, U+5366-5367, U+5389, U+5413, U+5440, U+5446, U+5561, U+574a, U+5751, U+57ab, U+5806, U+5821, U+582a, U+58f3, U+5938, U+5948, U+5978, U+59d1, U+5a03, U+5a07, U+5ac1, U+5acc, U+5ae9, U+5bb4, U+5bc4, U+5c3f, U+5e3d, U+5e7d, U+5f92, U+5faa, U+5fe0, U+5ffd, U+6016, U+60a0, U+60dc, U+60e8, U+614e, U+6212, U+6284, U+62c6, U+62d3-62d4, U+63f4, U+642c, U+6478, U+6491-6492, U+64e6, U+6591, U+65a4, U+664b, U+6735, U+6746, U+67f1, U+67f3, U+6842, U+68af, U+68c9, U+68cb, U+6a31, U+6b3a, U+6bc1, U+6c0f, U+6c27, U+6c57, U+6cc4, U+6ce5, U+6d2a, U+6d66, U+6d69, U+6daf, U+6e58, U+6ecb, U+6ef4, U+707e, U+7092, U+70ab, U+71d5, U+7275, U+7384, U+73b2, U+7434, U+74e6, U+74f7, U+75bc, U+76c8, U+76d0, U+7709, U+77ac, U+7855, U+78a7, U+78c1, U+7a77, U+7b79, U+7c92, U+7cae, U+7cd5, U+7ea4, U+7eb5, U+7ebd, U+7f5a, U+7fd4, U+7ffc, U+8083, U+8096, U+80a0, U+80d6, U+80de, U+8102, U+8109, U+810f, U+8179, U+8292, U+82b3, U+8352, U+8361, U+83cc, U+841d, U+8461, U+8482, U+8521, U+857e, U+85aa, U+866b, U+8776, U+8896, U+889c, U+88f8, U+8a9e, U+8bc8, U+8bf8, U+8c0b, U+8c28, U+8d2b, U+8d2f, U+8d37, U+8d3a, U+8d54, U+8dc3, U+8dcc, U+8df5, U+8e0f, U+8e48, U+8f86, U+8f88, U+8f9e, U+8fc1, U+8fc8, U+8feb, U+9065, U+90a6, U+90aa, U+90bb, U+90c1, U+94dc, U+9521, U+9676, U+96d5, U+970d, U+9897, U+997c, U+9a70, U+9a76, U+9a9a, U+9ad4, U+9e23, U+9e7f, U+9f3b, U+e675, U+e6b9, U+ffe5;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-20.woff2') format('woff2');
  unicode-range: U+300c-300d, U+4e54, U+4e58, U+4e95, U+4ec1, U+4f2f, U+4f38, U+4fa3, U+4fca, U+503e, U+5141, U+5144, U+517c, U+51cc, U+51ed, U+5242, U+52b2, U+52d2, U+52e4, U+540a, U+5439, U+5448, U+5496, U+54ed, U+5565, U+5761, U+5766, U+58ee, U+593a, U+594b, U+594f, U+5954, U+5996, U+59c6, U+59ff, U+5b64, U+5bff, U+5c18, U+5c1d, U+5c97, U+5ca9, U+5cb8, U+5e9f, U+5ec9, U+5f04, U+5f7b, U+5fa1, U+5fcd, U+6012, U+60a6, U+60ac, U+60b2, U+60ef, U+626e, U+6270, U+6276, U+62d6, U+62dc, U+6316, U+632f, U+633a, U+6355, U+63aa, U+6447, U+649e, U+64c5, U+654c, U+65c1, U+65cb, U+65e6, U+6606, U+6731, U+675c, U+67cf, U+67dc, U+6846, U+6b8b, U+6beb, U+6c61, U+6c88, U+6cbf, U+6cdb, U+6cea, U+6d45, U+6d53, U+6d74, U+6d82, U+6da8, U+6db5, U+6deb, U+6eda, U+6ee8, U+6f0f, U+706d, U+708e, U+70ae, U+70bc, U+70c2, U+70e6, U+7237-7238, U+72fc, U+730e, U+731b, U+739b, U+73bb, U+7483, U+74dc, U+74f6, U+7586, U+7626, U+775b, U+77ff, U+788e, U+78b0, U+7956, U+7965, U+79e6, U+7af9, U+7bee, U+7c97, U+7eb1, U+7eb7, U+7ed1, U+7ed5, U+7f6a, U+7f72, U+7fbd, U+8017, U+808c, U+80a9, U+80c6, U+80ce, U+8150, U+8170, U+819c, U+820d, U+8230, U+8239, U+827e, U+8377, U+8389, U+83b2, U+8428, U+8463, U+867e, U+88c2, U+88d9, U+8986, U+8bca, U+8bde, U+8c13, U+8c8c, U+8d21, U+8d24, U+8d56, U+8d60, U+8d8b, U+8db4, U+8e2a, U+8f68, U+8f89, U+8f9b, U+8fa8, U+8fbd, U+9003, U+90ce, U+90ed, U+9189, U+94bb, U+9505, U+95f9, U+963b, U+9655, U+966a, U+9677, U+96fe, U+9896, U+99a8, U+9a71, U+9a82, U+9a91, U+9b45, U+9ece, U+9f20, U+feff, U+ff0d;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-21.woff2') format('woff2');
  unicode-range: U+4e4c, U+4e88, U+4ea1, U+4ea6, U+4ed3-4ed4, U+4eff, U+4f30, U+4fa7, U+4fc4, U+4fd7, U+500d, U+504f, U+5076-5077, U+517d, U+5192, U+51c9, U+51ef, U+5238, U+5251, U+526a, U+52c7, U+52df, U+52ff, U+53a6, U+53a8, U+53ec, U+5410, U+559d, U+55b7, U+5634, U+573e, U+5783, U+585e, U+586b, U+58a8, U+5999, U+59d3, U+5a1c, U+5a46, U+5b54-5b55, U+5b85, U+5b8b, U+5b8f, U+5bbf, U+5bd2, U+5c16, U+5c24, U+5e05, U+5e45, U+5e7c, U+5e84, U+5f03, U+5f1f, U+5f31, U+5f84, U+5f90, U+5fbd, U+5fc6, U+5fd9, U+5fe7, U+6052, U+6062, U+6089, U+60a3, U+60d1, U+6167, U+622a, U+6234, U+624e, U+6269, U+626c, U+62b5, U+62d2, U+6325, U+63e1, U+643a, U+6446, U+6562, U+656c, U+65e2, U+65fa, U+660c, U+6628, U+6652, U+6668, U+6676, U+66fc, U+66ff, U+6717, U+676d, U+67aa, U+67d4, U+6843, U+6881, U+68d2, U+695a, U+69fd, U+6a2a, U+6b8a, U+6c60, U+6c64, U+6c9f, U+6caa, U+6cc9, U+6ce1, U+6cfd, U+6d1b, U+6d1e, U+6d6e, U+6de1, U+6e10, U+6e7f, U+6f5c, U+704c, U+7070, U+7089, U+70b8, U+718a, U+71c3, U+723d, U+732a, U+73cd, U+7518, U+756a, U+75af, U+75be, U+75c7, U+76d2, U+76d7, U+7763, U+78e8, U+795d, U+79df, U+7c4d, U+7d2f, U+7ee9, U+7f13, U+7f8a, U+8000, U+8010, U+80af, U+80f6, U+80f8, U+8212, U+8273, U+82f9, U+83ab, U+83b1, U+83f2, U+8584, U+871c, U+8861, U+888b, U+88c1, U+88e4, U+8bd1, U+8bf1, U+8c31, U+8d5a, U+8d75-8d76, U+8de8, U+8f85, U+8fa3, U+8fc5, U+9006, U+903c, U+904d, U+9075, U+9178, U+9274, U+950b, U+9526, U+95ea, U+9636, U+9686, U+978b, U+987f, U+9a7e, U+9b42, U+9e1f, U+9ea6, U+9f13, U+9f84, U+ff5e;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-22.woff2') format('woff2');
  unicode-range: U+23, U+3d, U+4e01, U+4e39, U+4e73, U+4ecd, U+4ed9, U+4eea, U+4f0a, U+4f1f, U+4f5b, U+4fa0, U+4fc3, U+501f, U+50a8, U+515a, U+5175, U+51a0, U+51c0, U+51e1, U+51e4, U+5200, U+520a, U+5224, U+523a, U+52aa, U+52b1, U+52b3, U+5348, U+5353, U+5360, U+5371, U+5377, U+539a, U+541b, U+5434, U+547c, U+54e6, U+5510, U+5531, U+5609, U+56f0, U+56fa, U+5733, U+574f, U+5851, U+5854, U+5899, U+58c1, U+592e, U+5939, U+5976, U+5986, U+59bb, U+5a18, U+5a74, U+5b59, U+5b87, U+5b97, U+5ba0, U+5bab, U+5bbd-5bbe, U+5bf8, U+5c0a, U+5c3a, U+5c4a, U+5e16, U+5e1d, U+5e2d, U+5e8a, U+6015, U+602a, U+6050, U+6069, U+6162, U+61c2, U+6293, U+6297, U+62b1, U+62bd, U+62df, U+62fc, U+6302, U+635f, U+638c, U+63ed, U+6458, U+6469, U+6563, U+6620, U+6653, U+6696-6697, U+66dd, U+675f, U+676f-6770, U+67d0, U+67d3, U+684c, U+6865, U+6885, U+68b0, U+68ee, U+690d, U+6b23, U+6b32, U+6bd5, U+6c89, U+6d01, U+6d25, U+6d89, U+6da6, U+6db2, U+6df7, U+6ed1, U+6f02, U+70c8, U+70df, U+70e7, U+7126, U+7236, U+7259, U+731c, U+745e, U+74e3, U+751a, U+751c, U+7532, U+7545, U+75db, U+7761, U+7a0d, U+7b51, U+7ca4, U+7cd6, U+7d2b, U+7ea0, U+7eb9, U+7ed8, U+7f18, U+7f29, U+8033, U+804a, U+80a4-80a5, U+80e1, U+817f, U+829d, U+82e6, U+8336, U+840c, U+8499, U+864e, U+8651, U+865a, U+88ad, U+89e6, U+8bd7, U+8bfa, U+8c37, U+8d25, U+8d38, U+8ddd, U+8fea, U+9010, U+9012, U+906d, U+907f-9080, U+90d1, U+9177, U+91ca, U+94fa, U+9501, U+9634-9635, U+9694, U+9707, U+9738, U+9769, U+9a7b, U+9a97, U+9aa8, U+9b3c, U+9c81, U+9ed8;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-23.woff2') format('woff2');
  unicode-range: U+26, U+3c, U+d7, U+4e4e, U+4e61, U+4e71, U+4ebf, U+4f26, U+5012, U+51ac, U+51b0, U+51b2, U+51b7, U+5218, U+521a, U+5220, U+5237, U+523b, U+526f, U+5385, U+53bf, U+53e5, U+53eb, U+53f3, U+53f6, U+5409, U+5438, U+54c8, U+54e5, U+552f, U+5584, U+5706, U+5723, U+5750, U+575a, U+5987-5988, U+59b9, U+59d0, U+59d4, U+5b88, U+5b9c, U+5bdf, U+5bfb, U+5c01, U+5c04, U+5c3e, U+5c4b, U+5c4f, U+5c9b, U+5cf0, U+5ddd, U+5de6, U+5de8, U+5e01, U+5e78, U+5e7b, U+5e9c, U+5ead, U+5ef6, U+5f39, U+5fd8, U+6000, U+6025, U+604b, U+6076, U+613f, U+6258, U+6263, U+6267, U+6298, U+62a2, U+62e5, U+62ec, U+6311, U+6377, U+6388-6389, U+63a2, U+63d2, U+641e, U+642d, U+654f, U+6551, U+6597, U+65cf, U+65d7, U+65e7, U+6682, U+66f2, U+671d, U+672b, U+6740, U+6751, U+6768, U+6811, U+6863, U+6982, U+6bd2, U+6cf0, U+6d0b, U+6d17, U+6d59, U+6dd8, U+6dfb, U+6e7e, U+6f6e, U+6fb3, U+706f, U+719f, U+72af, U+72d0, U+72d7, U+732b, U+732e, U+7389, U+73e0, U+7530, U+7687, U+76d6, U+76db, U+7840, U+786c, U+79cb, U+79d2, U+7a0e, U+7a33, U+7a3f, U+7a97, U+7ade-7adf, U+7b26, U+7e41, U+7ec3, U+7f3a, U+8089, U+80dc, U+811a, U+8131, U+8138, U+821e, U+8349, U+83dc, U+8457, U+867d, U+86cb, U+8a89, U+8ba8, U+8bad, U+8bef, U+8bfe, U+8c6a, U+8d1d, U+8d4f, U+8d62, U+8dd1, U+8df3, U+8f6e, U+8ff9, U+900f, U+9014, U+9057, U+9192, U+91ce, U+9488, U+94a2, U+9547, U+955c, U+95f2, U+9644, U+964d, U+96c4-96c5, U+96e8, U+96f6-96f7, U+9732, U+9759, U+9760, U+987a, U+989c, U+9910, U+996d-996e, U+9b54, U+9e21, U+9ebb, U+9f50;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-24.woff2') format('woff2');
  unicode-range: U+7e, U+2026, U+4e03, U+4e25, U+4e30, U+4e34, U+4e45, U+4e5d, U+4e89, U+4eae, U+4ed8, U+4f11, U+4f19, U+4f24, U+4f34, U+4f59, U+4f73, U+4f9d, U+4fb5, U+5047, U+505c, U+5170, U+519c, U+51cf, U+5267, U+5356, U+5374, U+5382, U+538b, U+53e6, U+5426, U+542b, U+542f, U+5462, U+5473, U+554a, U+5566, U+5708, U+571f, U+5757, U+57df, U+57f9, U+5802, U+590f, U+591c, U+591f, U+592b, U+5965, U+5979, U+5a01, U+5a5a, U+5b63, U+5b69, U+5b81, U+5ba1, U+5ba3, U+5c3c, U+5c42, U+5c81, U+5de7, U+5dee, U+5e0c, U+5e10, U+5e55, U+5e86, U+5e8f, U+5ea7, U+5f02, U+5f52, U+5f81, U+5ff5, U+60ca, U+60e0, U+6279, U+62c5, U+62ff, U+63cf, U+6444, U+64cd, U+653b, U+65bd, U+65e9, U+665a, U+66b4, U+66fe, U+6728, U+6742, U+677e, U+67b6, U+680f, U+68a6, U+68c0, U+699c, U+6b4c, U+6b66, U+6b7b, U+6bcd, U+6bdb, U+6c38, U+6c47, U+6c49, U+6cb3, U+6cb9, U+6ce2, U+6d32, U+6d3e, U+6d4f, U+6e56, U+6fc0, U+7075, U+7206, U+725b, U+72c2, U+73ed, U+7565, U+7591, U+7597, U+75c5, U+76ae, U+76d1, U+76df, U+7834, U+7968, U+7981, U+79c0, U+7a7f, U+7a81, U+7ae5, U+7b14, U+7c89, U+7d27, U+7eaf, U+7eb3, U+7eb8, U+7ec7, U+7ee7, U+7eff, U+7f57, U+7ffb, U+805a, U+80a1, U+822c, U+82cf, U+82e5, U+8363, U+836f, U+84dd, U+878d, U+8840, U+8857, U+8863, U+8865, U+8b66, U+8bb2, U+8bda, U+8c01, U+8c08, U+8c46, U+8d1f, U+8d35, U+8d5b, U+8d5e, U+8da3, U+8ddf, U+8f93, U+8fdd, U+8ff0, U+8ff7, U+8ffd, U+9000, U+9047, U+9152, U+949f, U+94c1, U+94f6, U+9646, U+9648, U+9669, U+969c, U+96ea, U+97e9, U+987b, U+987e, U+989d, U+9970, U+9986, U+9c7c, U+9c9c;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-25.woff2') format('woff2');
  unicode-range: U+25, U+4e14, U+4e1d, U+4e3d, U+4e49, U+4e60, U+4e9a, U+4eb2, U+4ec5, U+4efd, U+4f3c, U+4f4f, U+4f8b, U+4fbf, U+5019, U+5145, U+514b, U+516b, U+516d, U+5174, U+5178, U+517b, U+5199, U+519b, U+51b3, U+51b5, U+5207, U+5212, U+5219, U+521d, U+52bf, U+533b, U+5343, U+5347, U+534a, U+536b, U+5370, U+53e4, U+53f2, U+5403, U+542c, U+547d, U+54a8, U+54cd, U+54ea, U+552e, U+56f4, U+5747, U+575b, U+5883, U+589e, U+5931, U+5947, U+5956-5957, U+5a92, U+5b83, U+5ba4, U+5bb3, U+5bcc, U+5c14, U+5c1a, U+5c3d, U+5c40, U+5c45, U+5c5e, U+5df4, U+5e72, U+5e95, U+5f80, U+5f85, U+5fb7, U+5fd7, U+601d, U+626b, U+627f, U+62c9, U+62cd, U+6309, U+63a7, U+6545, U+65ad, U+65af, U+65c5, U+666e, U+667a, U+670b, U+671b, U+674e, U+677f, U+6781, U+6790, U+6797, U+6821, U+6838-6839, U+697c, U+6b27, U+6b62, U+6bb5, U+6c7d, U+6c99, U+6d4b, U+6d4e, U+6d6a, U+6e29, U+6e2f, U+6ee1, U+6f14, U+6f2b, U+72b6, U+72ec, U+7387, U+7533, U+753b, U+76ca, U+76d8, U+7701, U+773c, U+77ed, U+77f3, U+7814, U+793c, U+79bb, U+79c1, U+79d8, U+79ef, U+79fb, U+7a76, U+7b11, U+7b54, U+7b56, U+7b97, U+7bc7, U+7c73, U+7d20, U+7eaa, U+7ec8, U+7edd, U+7eed, U+7efc, U+7fa4, U+804c, U+8058, U+80cc, U+8111, U+817e, U+826f, U+8303, U+843d, U+89c9, U+89d2, U+8ba2, U+8bbf, U+8bc9, U+8bcd, U+8be6, U+8c22, U+8c61, U+8d22, U+8d26-8d27, U+8d8a, U+8f6f, U+8f7b, U+8f83, U+8f91, U+8fb9, U+8fd4, U+8fdc, U+9002, U+94b1, U+9519, U+95ed, U+961f, U+9632-9633, U+963f, U+968f-9690, U+96be, U+9876, U+9884, U+98de, U+9988, U+9999, U+9ec4, U+ff1b;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-26.woff2') format('woff2');
  unicode-range: U+2b, U+40, U+3000, U+300a-300b, U+4e16, U+4e66, U+4e70, U+4e91-4e92, U+4e94, U+4e9b, U+4ec0, U+4eca, U+4f01, U+4f17-4f18, U+4f46, U+4f4e, U+4f9b, U+4fee, U+503c, U+5065, U+50cf, U+513f, U+5148, U+518d, U+51c6, U+51e0, U+5217, U+529e-529f, U+5341, U+534f, U+5361, U+5386, U+53c2, U+53c8, U+53cc, U+53d7-53d8, U+53ea, U+5404, U+5411, U+5417, U+5427, U+5468, U+559c, U+5668, U+56e0, U+56e2, U+56ed, U+5740, U+57fa, U+58eb, U+5904, U+592a, U+59cb, U+5a31, U+5b58, U+5b9d, U+5bc6, U+5c71, U+5dde, U+5df1, U+5e08, U+5e26, U+5e2e, U+5e93, U+5e97, U+5eb7, U+5f15, U+5f20, U+5f3a, U+5f62, U+5f69, U+5f88, U+5f8b, U+5fc5, U+600e, U+620f, U+6218, U+623f, U+627e, U+628a, U+62a4, U+62db, U+62e9, U+6307, U+6362, U+636e, U+64ad, U+6539, U+653f, U+6548, U+6574, U+6613, U+6625, U+663e, U+666f, U+672a, U+6750, U+6784, U+6a21, U+6b3e, U+6b65, U+6bcf, U+6c11, U+6c5f, U+6df1, U+706b, U+7167, U+724c, U+738b, U+73a9, U+73af, U+7403, U+7537, U+754c, U+7559, U+767d, U+7740, U+786e, U+795e, U+798f, U+79f0, U+7aef, U+7b7e, U+7bb1, U+7ea2, U+7ea6, U+7ec4, U+7ec6, U+7ecd, U+7edc, U+7ef4, U+8003, U+80b2, U+81f3-81f4, U+822a, U+827a, U+82f1, U+83b7, U+8425, U+89c2, U+89c8, U+8ba9, U+8bb8, U+8bc6, U+8bd5, U+8be2, U+8be5, U+8bed, U+8c03, U+8d23, U+8d2d, U+8d34, U+8d70, U+8db3, U+8fbe, U+8fce, U+8fd1, U+8fde, U+9001, U+901f-9020, U+90a3, U+914d, U+91c7, U+94fe, U+9500, U+952e, U+9605, U+9645, U+9662, U+9664, U+9700, U+9752, U+975e, U+97f3, U+9879, U+9886, U+98df, U+9a6c, U+9a8c, U+9ed1, U+9f99;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-27.woff2') format('woff2');
  unicode-range: U+4e, U+201c-201d, U+3010-3011, U+4e07, U+4e1c, U+4e24, U+4e3e, U+4e48, U+4e50, U+4e5f, U+4e8b-4e8c, U+4ea4, U+4eab-4eac, U+4ecb, U+4ece, U+4ed6, U+4ee3, U+4ef6-4ef7, U+4efb, U+4f20, U+4f55, U+4f7f, U+4fdd, U+505a, U+5143, U+5149, U+514d, U+5171, U+5177, U+518c, U+51fb, U+521b, U+5229, U+522b, U+52a9, U+5305, U+5317, U+534e, U+5355, U+5357, U+535a, U+5373, U+539f, U+53bb, U+53ca, U+53cd, U+53d6, U+53e3, U+53f0, U+5458, U+5546, U+56db, U+573a, U+578b, U+57ce, U+58f0, U+590d, U+5934, U+5973, U+5b57, U+5b8c, U+5b98, U+5bb9, U+5bfc, U+5c06, U+5c11, U+5c31, U+5c55, U+5df2, U+5e03, U+5e38, U+5e76, U+5e94, U+5efa, U+5f71, U+5f97, U+5feb, U+6001, U+603b, U+60f3, U+611f, U+6216, U+624d, U+6253, U+6295, U+6301, U+6392, U+641c, U+652f, U+653e, U+6559, U+6599, U+661f, U+671f, U+672f, U+6761, U+67e5, U+6807, U+6837, U+683c, U+6848, U+6b22, U+6b64, U+6bd4, U+6c14, U+6c34, U+6c42, U+6ca1, U+6d41, U+6d77, U+6d88, U+6e05, U+6e38, U+6e90, U+7136, U+7231, U+7531, U+767e, U+76ee, U+76f4, U+771f, U+7801, U+793a, U+79cd, U+7a0b, U+7a7a, U+7acb, U+7ae0, U+7b2c, U+7b80, U+7ba1, U+7cbe, U+7d22, U+7ea7, U+7ed3, U+7ed9, U+7edf, U+7f16, U+7f6e, U+8001, U+800c, U+8272, U+8282, U+82b1, U+8350, U+88ab, U+88c5, U+897f, U+89c1, U+89c4, U+89e3, U+8a00, U+8ba1, U+8ba4, U+8bae-8bb0, U+8bbe, U+8bc1, U+8bc4, U+8bfb, U+8d28, U+8d39, U+8d77, U+8d85, U+8def, U+8eab, U+8f66, U+8f6c, U+8f7d, U+8fd0, U+9009, U+90ae, U+90fd, U+91cc-91cd, U+91cf, U+95fb, U+9650, U+96c6, U+9891, U+98ce, U+ff1f;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-28.woff2') format('woff2');
  unicode-range: U+d, U+3e, U+5f, U+7c, U+a0, U+a9, U+4e09-4e0b, U+4e0d-4e0e, U+4e13, U+4e1a, U+4e2a, U+4e3a-4e3b, U+4e4b, U+4e86, U+4e8e, U+4ea7, U+4eba, U+4ee4-4ee5, U+4eec, U+4f1a, U+4f4d, U+4f53, U+4f5c, U+4f60, U+4fe1, U+5165, U+5168, U+516c, U+5173, U+5176, U+5185, U+51fa, U+5206, U+5230, U+5236, U+524d, U+529b, U+52a0-52a1, U+52a8, U+5316, U+533a, U+53cb, U+53d1, U+53ef, U+53f7-53f8, U+5408, U+540c-540e, U+544a, U+548c, U+54c1, U+56de, U+56fd-56fe, U+5728, U+5730, U+5907, U+5916, U+591a, U+5927, U+5929, U+597d, U+5982, U+5b50, U+5b66, U+5b89, U+5b9a, U+5b9e, U+5ba2, U+5bb6, U+5bf9, U+5c0f, U+5de5, U+5e02, U+5e73-5e74, U+5e7f, U+5ea6, U+5f00, U+5f0f, U+5f53, U+5f55, U+5fae, U+5fc3, U+6027, U+606f, U+60a8, U+60c5, U+610f, U+6210-6211, U+6237, U+6240, U+624b, U+6280, U+62a5, U+63a5, U+63a8, U+63d0, U+6536, U+6570, U+6587, U+65b9, U+65e0, U+65f6, U+660e, U+662d, U+662f, U+66f4, U+6700, U+670d, U+672c, U+673a, U+6743, U+6765, U+679c, U+682a, U+6b21, U+6b63, U+6cbb, U+6cd5, U+6ce8, U+6d3b, U+70ed, U+7247-7248, U+7269, U+7279, U+73b0, U+7406, U+751f, U+7528, U+7535, U+767b, U+76f8, U+770b, U+77e5, U+793e, U+79d1, U+7ad9, U+7b49, U+7c7b, U+7cfb, U+7ebf, U+7ecf, U+7f8e, U+8005, U+8054, U+80fd, U+81ea, U+85cf, U+884c, U+8868, U+8981, U+89c6, U+8bba, U+8bdd, U+8bf4, U+8bf7, U+8d44, U+8fc7, U+8fd8-8fd9, U+8fdb, U+901a, U+9053, U+90e8, U+91d1, U+957f, U+95e8, U+95ee, U+95f4, U+9762, U+9875, U+9898, U+9996, U+9ad8, U+ff01, U+ff08-ff09;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-29.woff2') format('woff2');
  unicode-range: U+20-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2, U+b7, U+bb, U+df-e5, U+e7-ea, U+ec-ed, U+f1-f4, U+f6, U+f9-fa, U+fc, U+101, U+103, U+113, U+12b, U+148, U+14d, U+16b, U+1ce, U+1d0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+2022, U+2027, U+2039-203a, U+2122, U+3001-3002, U+3042, U+3044, U+3046, U+3048, U+304a-3055, U+3057, U+3059-305b, U+305d, U+305f-3061, U+3063-306b, U+306d-3073, U+3075-3076, U+3078-3079, U+307b, U+307e-307f, U+3081-308d, U+308f, U+3092-3093, U+30a1-30a4, U+30a6-30bb, U+30bd, U+30bf-30c1, U+30c3-30c4, U+30c6-30cb, U+30cd-30d7, U+30d9-30e1, U+30e3-30e7, U+30e9-30ed, U+30ef, U+30f3, U+30fb-30fc, U+3127, U+4e00, U+4e2d, U+65b0, U+65e5, U+6708-6709, U+70b9, U+7684, U+7f51, U+ff0c, U+ff0e, U+ff1a;
}
@font-face {
  font-family: 'Noto Serif SC';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('../fonts/serif-30.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-00.woff2') format('woff2');
  unicode-range: U+fee3, U+fef3, U+ff03-ff04, U+ff07, U+ff0a, U+ff17-ff19, U+ff1c-ff1d, U+ff20-ff3a, U+ff3c, U+ff3e-ff5b, U+ff5d, U+ff61-ff65, U+ff67-ff6a, U+ff6c, U+ff6f-ff78, U+ff7a-ff7d, U+ff80-ff84, U+ff86, U+ff89-ff8e, U+ff92, U+ff97-ff9b, U+ff9d-ff9f, U+ffe0-ffe4, U+ffe6, U+ffe9, U+ffeb, U+ffed, U+fffc, U+1f004, U+1f170-1f171, U+1f192-1f195, U+1f198-1f19a, U+1f1e6-1f1e8;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-01.woff2') format('woff2');
  unicode-range: U+95c4-95ca, U+95cc-95cd, U+95d4-95d6, U+95d8, U+95e1-95e2, U+95e9, U+95f0-95f1, U+95f3, U+95f6, U+95fc, U+95fe-95ff, U+9602-9604, U+9606-960d, U+960f, U+9611-9613, U+9615-9617, U+9619-961b, U+961d, U+9621, U+9628, U+962f, U+963c-963e, U+9641-9642, U+9649, U+9654, U+965b-965f, U+9661, U+9663, U+9665, U+9667-9668, U+966c, U+9670, U+9672-9674, U+9678, U+967a, U+967d, U+9682, U+9685, U+9688, U+968a, U+968d-968e, U+9695, U+9697-9698, U+969e, U+96a0, U+96a3-96a4, U+96a8, U+96aa, U+96b0-96b1, U+96b3-96b4, U+96b7-96b9, U+96bb-96bd, U+96c9, U+96cb, U+96ce, U+96d1-96d2, U+96d6, U+96d9, U+96db-96dc, U+96de, U+96e0, U+96e3, U+96e9, U+96eb, U+96f0-96f2, U+96f9, U+96ff, U+9701-9702, U+9705, U+9708, U+970a, U+970e-970f, U+9711, U+9719, U+9727, U+972a, U+972d, U+9730, U+973d, U+9742, U+9744, U+9748-9749, U+9750-9751, U+975a;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-02.woff2') format('woff2');
  unicode-range: U+94f5, U+94f7, U+94f9, U+94fb-94fd, U+94ff, U+9503-9504, U+9506-9507, U+9509-950a, U+950d-950f, U+9511-9518, U+951a-9520, U+9522, U+9528-952d, U+9530-953a, U+953c-953f, U+9543-9546, U+9548-9550, U+9552-9555, U+9557-955b, U+955d-9568, U+956a-956d, U+9570-9574, U+9583, U+9586, U+9589, U+958e-958f, U+9591-9592, U+9594, U+9598-9599, U+959e-95a0, U+95a2-95a6, U+95a8-95b2, U+95b4, U+95b8-95c3;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-03.woff2') format('woff2');
  unicode-range: U+73f0, U+73f2, U+73f4-73f5, U+73f7, U+73f9-73fa, U+73fc-73fd, U+73ff-7402, U+7404, U+7407-7408, U+740a-740f, U+7418, U+741a-741c, U+741e, U+7424-7425, U+7428-7429, U+742c-7430, U+7432, U+7435-7436, U+7438-743b, U+743e-7441, U+7443-7446, U+7448, U+744a-744b, U+7452, U+7457, U+745b, U+745d, U+7460, U+7462-7465, U+7467-746a, U+746d, U+746f, U+7471, U+7473-7474, U+7477, U+747a, U+747e, U+7481-7482, U+7484, U+7486, U+7488-748b, U+748e-748f, U+7493, U+7498, U+749a, U+749c-74a0, U+74a3, U+74a6, U+74a9-74aa, U+74ae, U+74b0-74b2, U+74b6, U+74b8-74ba, U+74bd, U+74bf, U+74c1, U+74c3, U+74c5, U+74c8, U+74ca, U+74cc, U+74cf, U+74d1-74d2, U+74d4-74d5, U+74d8-74db, U+74de-74e0, U+74e2, U+74e4-74e5, U+74e7-74e9, U+74ee-74ef, U+74f4, U+74ff, U+7501, U+7503, U+7505, U+7508;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-04.woff2') format('woff2');
  unicode-range: U+6dc3, U+6dc5-6dc6, U+6dc9, U+6dcc, U+6dcf, U+6dd2-6dd3, U+6dd6, U+6dd9-6dde, U+6de0, U+6de4, U+6de6, U+6de8-6dea, U+6dec, U+6def-6df0, U+6df5-6df6, U+6df8, U+6dfa, U+6dfc, U+6e03-6e04, U+6e07-6e09, U+6e0b-6e0c, U+6e0e, U+6e11, U+6e13, U+6e15-6e16, U+6e19-6e1b, U+6e1e-6e1f, U+6e22, U+6e25-6e27, U+6e2b-6e2c, U+6e36-6e37, U+6e39-6e3a, U+6e3c-6e41, U+6e44-6e45, U+6e47, U+6e49-6e4b, U+6e4d-6e4e, U+6e51, U+6e53-6e55, U+6e5c-6e5f, U+6e61-6e63, U+6e65-6e67, U+6e6a-6e6b, U+6e6d-6e70, U+6e72-6e74, U+6e76-6e78, U+6e7c, U+6e80-6e82, U+6e86-6e87, U+6e89, U+6e8d, U+6e8f, U+6e96, U+6e98, U+6e9d-6e9f, U+6ea1, U+6ea5-6ea7, U+6eab, U+6eb1-6eb2, U+6eb4, U+6eb7, U+6ebb-6ebd, U+6ebf-6ec6, U+6ec8-6ec9, U+6ecc, U+6ecf-6ed0, U+6ed3-6ed4, U+6ed7-6ed8;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-05.woff2') format('woff2');
  unicode-range: U+2651-2655, U+2658, U+265a-265b, U+265d-265e, U+2660-266d, U+266f, U+267b, U+2688, U+2693-2696, U+2698-2699, U+269c, U+26a0-26a1, U+26a4, U+26aa-26ab, U+26bd-26be, U+26c4-26c5, U+26d4, U+26e9, U+26f0-26f1, U+26f3, U+26f5, U+26fd, U+2702, U+2704-2706, U+2708-270f, U+2712-2718, U+271a-271b, U+271d, U+271f, U+2721, U+2724-2730, U+2732-2734, U+273a, U+273d-2744, U+2747-2749, U+274c, U+274e-274f, U+2753-2757, U+275b, U+275d-275e, U+2763, U+2765-2767, U+276e-276f, U+2776-277e, U+2780-2782, U+278a-278c, U+278e, U+2794-2796, U+279c;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-06.woff2') format('woff2');
  unicode-range: U+2550-2551, U+2554, U+2557, U+255a-255b, U+255d, U+255f-2560, U+2562-2563, U+2565-2567, U+2569-256a, U+256c-2572, U+2579, U+2580-2595, U+25a1, U+25a3, U+25a9-25ad, U+25b0, U+25b3-25bb, U+25bd-25c2, U+25c4, U+25c8-25cb, U+25cd, U+25d0-25d1, U+25d4-25d5, U+25d8, U+25dc-25e6, U+25ea-25eb, U+25ef, U+25fe, U+2600-2604, U+2609, U+260e-260f, U+2611, U+2614-2615, U+2618, U+261a-2620, U+2622-2623, U+262a, U+262d-2630, U+2639-2640, U+2642, U+2648-2650;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-07.woff2') format('woff2');
  unicode-range: U+23f0, U+23f3, U+2445, U+2449, U+2465-2471, U+2474-249b, U+24b8, U+24c2, U+24c7, U+24c9, U+24d0, U+24d2, U+24d4, U+24d8, U+24dd-24de, U+24e3, U+24e6, U+24e8, U+2500-2509, U+250b-2526, U+2528-2534, U+2536-2537, U+253b-2548, U+254a-254b;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-08.woff2') format('woff2');
  unicode-range: U+207c-2083, U+208c-208e, U+2092, U+20a6, U+20a8-20ad, U+20af, U+20b1, U+20b4-20b5, U+20b8-20ba, U+20bd, U+20db, U+20dd, U+20e0, U+20e3, U+2105, U+2109, U+2113, U+2116-2117, U+2120-2121, U+2126, U+212b, U+2133, U+2139, U+2194, U+2196-2199, U+21a0, U+21a9-21aa, U+21af, U+21b3, U+21b5, U+21ba-21bb, U+21c4, U+21ca, U+21cc, U+21d0-21d4, U+21e1, U+21e6-21e9, U+2200, U+2202, U+2205-2208, U+220f, U+2211-2212, U+2215, U+2217-2219, U+221d-2220, U+2223, U+2225, U+2227-222b, U+222e, U+2234-2237, U+223c-223d, U+2248, U+224c, U+2252, U+2256, U+2260-2261, U+2266-2267, U+226a-226b, U+226e-226f, U+2282-2283, U+2295, U+2297, U+2299, U+22a5, U+22b0-22b1, U+22b9, U+22bf, U+22c5-22c6, U+22ef, U+2304, U+2307, U+230b, U+2312-2314, U+2318, U+231a-231b, U+2323, U+239b, U+239d-239e, U+23a0, U+23e9;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-09.woff2') format('woff2');
  unicode-range: U+a1-a4, U+a6-a8, U+aa, U+ac, U+af, U+b1, U+b3-b6, U+b8-ba, U+bc-d6, U+d8-de, U+e6, U+eb, U+ee-f0, U+f5, U+f7-f8, U+fb, U+fd-100, U+102, U+104-107, U+10d, U+10f-112, U+115, U+117, U+119, U+11b, U+11e-11f, U+121, U+123, U+125-127, U+129-12a, U+12d, U+12f-13f, U+141-142, U+144, U+146, U+14b-14c, U+14f-153, U+158-15b, U+15e-160, U+163-165, U+168-16a, U+16d-175;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-10.woff2') format('woff2');
  unicode-range: U+221a, U+2264, U+2464, U+25a0, U+3008, U+4e10, U+512a, U+5152, U+5201, U+5241, U+5340, U+5352, U+549a, U+54b2, U+54c6, U+54d7, U+54e1, U+5509, U+55c5, U+5618, U+5716, U+576f, U+5784, U+57a2, U+589f, U+5a20, U+5a25, U+5a29, U+5a34, U+5a7f, U+5ad6, U+5b09, U+5b5c, U+5bc7, U+5be6, U+5c27, U+5d2d, U+5dcd, U+5f1b, U+5f37, U+604d, U+6055, U+6073, U+60eb, U+61ff, U+62ce, U+62ed, U+6345, U+6390, U+63b0, U+63b7, U+64ae, U+64c2, U+64d2, U+6556, U+663c, U+667e, U+66d9, U+66f8, U+6756, U+6789, U+689d, U+68f1, U+695e, U+6975, U+6a1f, U+6b0a, U+6b61, U+6b87, U+6c5d, U+6c7e, U+6c92, U+6d31, U+6df9, U+6e0d, U+6e2d, U+6f31, U+6f3e, U+70b3, U+70bd, U+70ca, U+70e8, U+725f, U+733f, U+7396, U+739f, U+7459, U+74a7, U+75a1, U+75f0, U+76cf, U+76d4, U+7729, U+77aa, U+77b0, U+77e3, U+780c, U+78d5, U+7941, U+7977, U+797a, U+79c3, U+7a20, U+7a92, U+7b71, U+7bf1, U+7c9f, U+7eb6, U+7eca, U+7ef7, U+7f07, U+7f09, U+7f15, U+7f81, U+7fb9, U+8038, U+8098, U+80b4, U+8110, U+814b-814c, U+816e, U+818a, U+8205, U+8235, U+828b, U+82a5, U+82b7, U+82d4, U+82db, U+82df, U+8317, U+8338, U+8385-8386, U+83c1, U+83cf, U+8537, U+853b, U+854a, U+8715, U+8783, U+892a, U+8a71, U+8bb3, U+8d2e, U+8d58, U+8dbe, U+8f67, U+8fab, U+8fc4, U+8fe6, U+9023, U+9084, U+9091, U+916a, U+91c9, U+91dc, U+94b3, U+9502, U+9523, U+9551, U+956f, U+960e, U+962a, U+962e, U+9647, U+96f3, U+9739, U+97a0, U+97ed, U+983b, U+985e, U+988a, U+99ac, U+9a6f, U+9a87, U+9a8b, U+9ab7, U+9abc, U+9ac5, U+9e25, U+e608, U+e621, U+ff06, U+ff14-ff16;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-11.woff2') format('woff2');
  unicode-range: U+161, U+926, U+928, U+939, U+93f-940, U+94d, U+e17, U+e22, U+e44, U+25c7, U+25ce, U+2764, U+3009, U+3016-3017, U+4e4d, U+4e53, U+4f5a, U+4f70, U+4fae, U+4fd8, U+4ffa, U+5011, U+501a, U+51c4, U+5225, U+547b, U+5495, U+54e8, U+54ee, U+5594, U+55d3, U+55dc, U+55fd, U+560e, U+565c, U+5662, U+5669, U+566c, U+56bc, U+5742, U+5824, U+5834, U+598a, U+5992, U+59a9, U+5a04, U+5ac9, U+5b75, U+5b7d, U+5bc5, U+5c49, U+5c90, U+5e1c, U+5e27, U+5e2b, U+5e37, U+5e90, U+618b, U+61f5, U+620a, U+620c, U+6273, U+62c7, U+62f7, U+6320, U+6342, U+6401-6402, U+6413, U+6512, U+655b, U+65a7, U+65f1, U+65f7, U+665f, U+6687, U+66a7, U+673d, U+67b8, U+6854, U+68d8, U+68fa, U+696d, U+6a02, U+6a0a, U+6a80, U+6b7c, U+6bd9, U+6c2e, U+6c76, U+6cf8, U+6d4a, U+6d85, U+6e24, U+6e32, U+6ec7, U+6f88, U+700f, U+701a, U+7078, U+707c, U+70ac, U+70c1, U+72e9, U+7409, U+7422, U+745a, U+7480, U+74a8, U+752b, U+7574, U+7656, U+7699, U+7737, U+785d, U+78be, U+79b9, U+7a3d, U+7a91, U+7a9f, U+7ae3, U+7b77, U+7c3f, U+7d1a, U+7d50, U+7d93, U+8042, U+808b, U+8236, U+82b8-82b9, U+82ef, U+8309, U+836b, U+83ef, U+8431, U+85c9, U+865e, U+868c, U+8759, U+8760, U+8845, U+89ba, U+8a2a, U+8aaa, U+8c41, U+8d2c, U+8d4e, U+8e66, U+8e6d, U+8eaf, U+902e, U+914b, U+916e, U+919b, U+949b, U+94a0, U+94b0, U+9541-9542, U+9556, U+95eb, U+95f5, U+964b, U+968b, U+96cc-96cd, U+96cf, U+9713, U+9890, U+98a8, U+9985, U+9992, U+9a6d, U+9a81, U+9a86, U+9ab8, U+9ca4, U+e606-e607, U+e60a, U+e60c, U+e60e, U+fe0f, U+ff02, U+ff1e;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-12.woff2') format('woff2');
  unicode-range: U+10c, U+627-629, U+639, U+644, U+64a, U+203b, U+2265, U+2463, U+2573, U+25b2, U+3448-3449, U+4e1e, U+4e5e, U+4f3a, U+4f5f, U+4fea, U+5026, U+508d, U+516e, U+5189, U+5254, U+5288, U+52d8, U+52fa, U+5306, U+5308, U+5364, U+5384, U+53ed, U+543c, U+5450, U+5455, U+5466, U+54c4, U+5578, U+55a7, U+561f, U+5631, U+572d, U+575f, U+57ae, U+57e0, U+5830, U+594e, U+5984, U+5993, U+5bdd, U+5c0d, U+5c7f, U+5c82, U+5e62, U+5ed3, U+5f08, U+607a, U+60bc, U+625b, U+6292, U+62e2, U+6363, U+6467, U+6714, U+675e, U+6771, U+67a2, U+67ff, U+6805, U+68a7, U+68e0, U+6930, U+6986, U+69a8, U+69df, U+6a44, U+6a5f, U+6c13, U+6c1f, U+6c22, U+6c2f, U+6c40, U+6c81, U+6c9b, U+6ca5, U+6da4, U+6df3, U+6e85, U+6eba, U+6ed5, U+6f13, U+6f33, U+6f62, U+715e, U+72c4, U+73d1, U+7405, U+7487, U+7578, U+75a4, U+75eb, U+7693, U+7738, U+7741, U+776b, U+7792, U+77a7, U+77a9, U+77b3, U+788c, U+7984, U+79a7, U+79e4, U+7a1a, U+7a57, U+7aa6, U+7b0b, U+7b5d, U+7c27, U+7c7d, U+7caa, U+7cd9, U+7cef, U+7eda, U+7ede, U+7f24, U+803f, U+8046, U+80fa, U+81fb, U+8207, U+8258, U+8335, U+8339, U+8354, U+840e, U+85b0, U+85fb, U+8695, U+86aa, U+8717, U+8749, U+874c, U+8996, U+89bd, U+89c5, U+8bdb, U+8bf5, U+8c5a, U+8cec, U+8d3f, U+8d9f, U+8e44, U+8fed, U+9005, U+9019, U+9082, U+90af, U+90dd, U+90e1, U+90f8, U+916f, U+9176, U+949e, U+94a7, U+94c2, U+9525, U+9580, U+95dc, U+96e2, U+96fb, U+9704, U+9a7c, U+9a7f, U+9b41, U+9ca8, U+9cc4, U+9cde, U+9e92, U+9ede, U+9f9a, U+e60b, U+e610, U+ff10, U+ff13, U+ff3b, U+ff3d, U+f012b;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-13.woff2') format('woff2');
  unicode-range: U+60, U+631, U+2606, U+3014-3015, U+309c, U+33a1, U+4e52, U+4ec6, U+4f86, U+4f8d, U+4fde, U+4fef, U+500b, U+502a, U+515c, U+518a, U+51a5, U+51f3, U+5243, U+52c9, U+52d5, U+53a2, U+53ee, U+54ce, U+54fa, U+54fc, U+5580, U+5587, U+563f, U+56da, U+5792, U+5815, U+5960, U+59d7, U+5b78, U+5b9b, U+5be1, U+5c4e, U+5c51, U+5c6f, U+5c9a, U+5cfb, U+5d16, U+5ed6, U+5f27, U+5f6a, U+609a, U+60df, U+6168, U+61c8, U+6236, U+62f1, U+62fd, U+631a, U+6328, U+632b, U+6346, U+638f, U+63a0, U+63c9, U+655e, U+6590, U+6615, U+6627, U+66ae, U+66e6, U+66f0, U+67da, U+67ec, U+6813, U+6816, U+6869, U+6893, U+68ad, U+68f5, U+6977, U+6984, U+69db, U+6b72, U+6bb7, U+6ce3, U+6cfb, U+6d47, U+6da1, U+6dc4, U+6e43, U+6eaf, U+6eff, U+6f8e, U+7011, U+7063, U+7076, U+7096, U+70ba, U+70db, U+70ef, U+7119-711a, U+7172, U+718f, U+7194, U+727a, U+72d9, U+72ed, U+7325, U+73ae, U+73ba, U+73c0, U+73fe, U+7410, U+7426, U+7455, U+7554, U+7576, U+75ae, U+75b9, U+762b, U+766b, U+7682, U+7750, U+7779, U+7784, U+77eb, U+77ee, U+78f7, U+79e9, U+7a79, U+7b1b, U+7b28, U+7bf7, U+7db2, U+7ec5, U+7eee, U+7f14, U+7f1a, U+7fe1, U+8087, U+809b, U+81b3, U+8231, U+830e, U+835f, U+83e9, U+849c, U+851a, U+868a, U+8718, U+874e, U+8822, U+8910, U+8944, U+8a3b, U+8bb6, U+8bbc, U+8e72, U+8f9c, U+900d, U+904b, U+904e, U+9063, U+90a2, U+90b9, U+9119, U+94f2, U+952f, U+9576-9577, U+9593, U+95f8, U+961c, U+969b, U+96a7, U+96c1, U+9716, U+9761, U+97ad, U+97e7, U+98a4, U+997a, U+9a73, U+9b44, U+9e3d, U+9ecf, U+9ed4, U+ff11-ff12, U+fffd;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-14.woff2') format('woff2');
  unicode-range: U+2003, U+2193, U+2462, U+4e19, U+4e2b, U+4e36, U+4ea8, U+4ed1, U+4ed7, U+4f51, U+4f63, U+4f83, U+50e7, U+5112, U+5167, U+51a4, U+51b6, U+5239, U+5265, U+532a, U+5351, U+537f, U+5401, U+548f, U+5492, U+54af, U+54b3, U+54bd, U+54d1, U+54df, U+554f, U+5564, U+5598, U+5632, U+56a3, U+56e7, U+574e, U+575d-575e, U+57d4, U+584c, U+58e4, U+5937, U+5955, U+5a05, U+5a1f, U+5a49, U+5ac2, U+5c39, U+5c61, U+5d0e, U+5de9, U+5e9a, U+5eb8, U+5f0a, U+5f13, U+5f6c, U+5f8c, U+603c, U+608d, U+611b, U+6127, U+62a0, U+62d0, U+634f, U+635e, U+63fd, U+6577, U+658b, U+65bc, U+660a, U+6643, U+6656, U+6703, U+6760, U+67af, U+67c4, U+67e0, U+6817, U+68cd, U+690e, U+6960, U+69b4, U+6a71, U+6aac, U+6b67, U+6bb4, U+6c55, U+6c70, U+6c82, U+6ca6, U+6cb8, U+6cbe, U+6ede, U+6ee5, U+6f4d, U+6f84, U+6f9c, U+7115, U+7121, U+722a, U+7261, U+7272, U+7280, U+72f8, U+7504, U+754f, U+75d8, U+767c, U+76ef, U+778e, U+77bb, U+77f6, U+786b, U+78b1, U+7948, U+7985, U+79be, U+7a83, U+7a8d, U+7eac, U+7eef, U+7ef8, U+7efd, U+7f00, U+803d, U+8086, U+810a, U+8165, U+819d, U+81a8, U+8214, U+829c, U+831c, U+832b, U+8367, U+83e0, U+83f1, U+8403, U+846b, U+8475, U+84b2, U+8513, U+8574, U+85af, U+86d9, U+86db, U+8acb, U+8bbd, U+8be0-8be1, U+8c0e, U+8d29, U+8d50, U+8d63, U+8f7f, U+9032, U+9042, U+90b1, U+90b5, U+9165, U+9175, U+94a6, U+94c5, U+950c, U+9610, U+9631, U+9699, U+973e, U+978d, U+97ec, U+97f6, U+984c, U+987d, U+9882, U+9965, U+996a, U+9972, U+9a8f, U+9ad3, U+9ae6, U+9cb8, U+9edb, U+e600, U+e60f, U+e611, U+ff05, U+ff0b;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-15.woff2') format('woff2');
  unicode-range: U+5e, U+2190, U+250a, U+25bc, U+25cf, U+4e56, U+4ea9, U+4f3d, U+4f6c, U+4f88, U+4fa8, U+4fcf, U+5029, U+5188, U+51f9, U+5203, U+524a, U+5256, U+529d, U+5375, U+53db, U+541f, U+5435, U+5457, U+548b, U+54c7, U+54d4, U+54e9, U+556a, U+5589, U+55bb, U+55e8, U+55ef, U+563b, U+566a, U+576a, U+58f9, U+598d, U+599e, U+59a8, U+5a9b, U+5ae3, U+5bb0, U+5bde, U+5c4c, U+5c60, U+5d1b, U+5deb, U+5df7, U+5e18, U+5f26, U+5f64, U+601c, U+6084, U+60e9, U+614c, U+6208, U+621a, U+6233, U+6254, U+62d8, U+62e6, U+62ef, U+6323, U+632a, U+633d, U+6361, U+6405, U+640f, U+6614, U+6642, U+6657, U+67a3, U+6808, U+683d, U+6850, U+6897, U+68b3, U+68b5, U+68d5, U+6a58, U+6b47, U+6b6a, U+6c28, U+6c90, U+6ca7, U+6cf5, U+6d51, U+6da9, U+6dc7, U+6dd1, U+6e0a, U+6e5b, U+6e9c, U+6f47, U+6f6d, U+70ad, U+70f9, U+710a, U+7130, U+71ac, U+745f, U+7476, U+7490, U+7529, U+7538, U+75d2, U+7696, U+76b1, U+76fc, U+777f, U+77dc, U+789f, U+795b, U+79bd, U+79c9, U+7a3b, U+7a46, U+7aa5, U+7ad6, U+7ca5, U+7cb9, U+7cdf, U+7d6e, U+7f06, U+7f38, U+7fa1, U+7fc1, U+8015, U+803b, U+80a2, U+80aa, U+8116, U+813e, U+82bd, U+8305, U+8328, U+8346, U+846c, U+8549, U+859b, U+8611, U+8680, U+87f9, U+884d, U+8877, U+888d, U+88d4, U+898b, U+8a79, U+8a93, U+8c05, U+8c0d, U+8c26, U+8d1e, U+8d31, U+8d81, U+8e22, U+8e81, U+8f90, U+8f96, U+90ca, U+916c, U+917f, U+9187, U+918b, U+9499, U+94a9, U+9524, U+9540, U+958b, U+9600, U+9640, U+96b6, U+96c7, U+96ef, U+98d9, U+9976, U+997f, U+9a74, U+9a84, U+9c8d, U+9e26, U+9e9f, U+ad6d, U+c5b4, U+d55c, U+ff0f;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-16.woff2') format('woff2');
  unicode-range: U+b0, U+2191, U+2460-2461, U+25c6, U+300e-300f, U+4e1b, U+4e7e, U+4ed5, U+4ef2, U+4f10, U+4f1e, U+4f50, U+4fa6, U+4faf, U+5021, U+50f5, U+5179, U+5180, U+51d1, U+522e, U+52a3, U+52c3, U+52cb, U+5300, U+5319, U+5320, U+5349, U+5395, U+53d9, U+541e, U+5428, U+543e, U+54b1, U+54c0, U+54d2, U+570b, U+5858, U+58f6, U+5974, U+59a5, U+59e8, U+59ec, U+5a36, U+5a9a, U+5ab3, U+5b99, U+5baa, U+5ce1, U+5d14, U+5d4c, U+5dc5, U+5de2, U+5e99, U+5e9e, U+5f18, U+5f66, U+5f70, U+6070, U+60d5, U+60e7, U+6101, U+611a, U+61be, U+6241, U+6252, U+626f, U+6296, U+62bc, U+62cc, U+6380, U+63a9, U+644a, U+6454, U+64a9, U+64b8, U+6500, U+6572, U+65a5, U+65a9, U+65ec, U+660f, U+6749, U+6795, U+67ab, U+68da, U+6912, U+6bbf, U+6bef, U+6cab, U+6cca, U+6ccc, U+6cfc, U+6d3d, U+6d78, U+6dee, U+6e17, U+6e34, U+6e83, U+6ea2, U+6eb6, U+6f20, U+6fa1, U+707f, U+70d8, U+70eb, U+714c, U+714e, U+7235, U+7239, U+73ca, U+743c, U+745c, U+7624, U+763e, U+76f2, U+77db, U+77e9, U+780d, U+7838, U+7845, U+78ca, U+796d, U+7a84, U+7aed, U+7b3c, U+7eb2, U+7f05, U+7f20, U+7f34, U+7f62, U+7fc5, U+7fd8, U+7ff0, U+800d, U+8036, U+80ba, U+80be, U+80c0-80c1, U+8155, U+817a, U+8180, U+81e3, U+8206, U+8247, U+8270, U+8299, U+82ad, U+8304, U+8393, U+83b9, U+840d, U+8427, U+8469, U+8471, U+84c4, U+84ec, U+853d, U+8681-8682, U+8721, U+8854, U+88d5, U+88f9, U+8bc0, U+8c0a, U+8c29, U+8c2d, U+8d41, U+8dea, U+8eb2, U+8f9f, U+903b, U+903e, U+9102, U+9493, U+94a5, U+94f8, U+95f7, U+9706, U+9709, U+9774, U+98a0, U+9e64, U+9f9f, U+e603;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-17.woff2') format('woff2');
  unicode-range: U+200b, U+2103, U+4e18, U+4e27-4e28, U+4e38, U+4e59, U+4e8f, U+4ead, U+4ec7, U+4fe9, U+503a, U+5085, U+5146, U+51af, U+51f8, U+52ab, U+5339, U+535c, U+5378, U+538c, U+5398, U+53f9, U+5415, U+5475, U+54aa, U+54ac, U+54b8, U+5582, U+5760, U+5764, U+57cb, U+5835, U+5885, U+5951, U+5983, U+59da, U+5a77, U+5b5d, U+5b5f, U+5bb5, U+5bc2, U+5be8, U+5bfa, U+5c2c, U+5c34, U+5c41, U+5c48, U+5c65, U+5cad, U+5e06, U+5e42, U+5ef7, U+5f17, U+5f25, U+5f6d, U+5f79, U+6028, U+6064, U+6068, U+606d, U+607c, U+6094, U+6109, U+6124, U+6247, U+626d, U+6291, U+629a, U+62ac, U+62b9, U+62fe, U+6324, U+6349, U+6367, U+6398, U+6495, U+64a4, U+64b0, U+64bc, U+64ce, U+658c, U+65ed, U+6602, U+6674, U+6691, U+66a8, U+674f, U+679a, U+67ef, U+67f4, U+680b, U+6876, U+68a8, U+6a59, U+6a61, U+6b20, U+6bc5, U+6d12, U+6d46, U+6d8c, U+6dc0, U+6e14, U+6e23, U+6f06, U+7164, U+716e, U+7199, U+71e5, U+72ac, U+742a, U+755c, U+75ab, U+75b2, U+75f4, U+7897, U+78b3, U+78c5, U+7978, U+79fd, U+7a74, U+7b4b, U+7b5b, U+7ece, U+7ed2, U+7ee3, U+7ef3, U+7f50, U+7f55, U+7f9e, U+7fe0, U+809d, U+8106, U+814a, U+8154, U+817b, U+818f, U+81c2, U+81ed, U+821f, U+82a6, U+82d1, U+8302, U+83c7, U+83ca, U+845b, U+848b, U+84c9, U+85e4, U+86ee, U+8700, U+8774, U+8881, U+8c1c, U+8c79, U+8d2a, U+8d3c, U+8eba, U+8f70, U+8fa9, U+8fb1, U+900a, U+9017, U+901d, U+9022, U+906e, U+946b, U+94dd, U+94ed, U+953b, U+95ef, U+95fa, U+95fd, U+96c0, U+971e, U+9753, U+9756, U+97e6, U+9881, U+9887, U+9b4f, U+9e2d, U+9f0e, U+e601-e602, U+e604-e605, U+ff5c;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-18.woff2') format('woff2');
  unicode-range: U+24, U+4e08, U+4e43, U+4e4f, U+4ef0, U+4f2a, U+507f, U+50ac, U+50bb, U+5151, U+51bb, U+51f6, U+51fd, U+5272, U+52fe, U+5362, U+53c9, U+53d4, U+53e0, U+543b, U+54f2, U+5507, U+5524, U+558a, U+55b5, U+561b, U+56ca, U+5782, U+57c3, U+5893, U+5915, U+5949, U+5962, U+59ae, U+59dc, U+59fb, U+5bd3, U+5c38, U+5cb3, U+5d07, U+5d29, U+5de1, U+5dfe, U+5e15, U+5eca, U+5f2f, U+5f7c, U+5fcc, U+6021, U+609f, U+60f9, U+6108, U+6148, U+6155, U+6170, U+61d2, U+6251, U+629b, U+62ab, U+62e8, U+62f3, U+6321, U+6350, U+6566, U+659c, U+65e8, U+6635, U+6655, U+6670, U+66f9, U+6734, U+679d, U+6851, U+6905, U+6b49, U+6b96, U+6c1b, U+6c41, U+6c6a, U+6c83, U+6cf3, U+6d9b, U+6dcb, U+6e1d, U+6e20-6e21, U+6eaa, U+6ee4, U+6ee9, U+6f58, U+70e4, U+722c, U+7262, U+7267, U+72b9, U+72e0, U+72ee, U+72f1, U+7334, U+73ab, U+7433, U+7470, U+758f, U+75d5, U+764c, U+7686, U+76c6, U+76fe, U+7720, U+77e2, U+7802, U+7816, U+788d, U+7891, U+7a00, U+7a9d, U+7b52, U+7bad, U+7c98, U+7cca, U+7eba, U+7eea, U+7ef5, U+7f1d, U+7f69, U+806a, U+809a, U+80bf, U+80c3, U+81c0, U+820c, U+82ac, U+82af, U+82cd, U+82d7, U+838e, U+839e, U+8404, U+84b8, U+852c, U+8587, U+8650, U+8679, U+86c7, U+8702, U+87ba, U+886b-886c, U+8870, U+8c10, U+8c23, U+8c6b, U+8d3e, U+8d4b-8d4c, U+8d64, U+8d6b, U+8d74, U+8e29, U+8f69, U+8f74, U+8fb0, U+8fdf, U+901b, U+9038, U+9093, U+9171, U+9489, U+94ae, U+94c3, U+9508, U+9510, U+9601, U+9614, U+964c, U+9675, U+971c, U+97f5, U+9888, U+98d8, U+9971, U+9aa4, U+9e3f, U+9e45, U+9e4f, U+9e70, U+9f7f, U+e715;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-19.woff2') format('woff2');
  unicode-range: U+a5, U+2192, U+2605, U+4e11, U+4e22, U+4e32, U+4f0d, U+4f0f, U+4f69, U+4ff1, U+50b2, U+5154, U+51dd, U+51f0, U+5211, U+5269, U+533f, U+5366-5367, U+5389, U+5413, U+5440, U+5446, U+5561, U+574a, U+5751, U+57ab, U+5806, U+5821, U+582a, U+58f3, U+5938, U+5948, U+5978, U+59d1, U+5a03, U+5a07, U+5ac1, U+5acc, U+5ae9, U+5bb4, U+5bc4, U+5c3f, U+5e3d, U+5e7d, U+5f92, U+5faa, U+5fe0, U+5ffd, U+6016, U+60a0, U+60dc, U+60e8, U+614e, U+6212, U+6284, U+62c6, U+62d3-62d4, U+63f4, U+642c, U+6478, U+6491-6492, U+64e6, U+6591, U+65a4, U+664b, U+6735, U+6746, U+67f1, U+67f3, U+6842, U+68af, U+68c9, U+68cb, U+6a31, U+6b3a, U+6bc1, U+6c0f, U+6c27, U+6c57, U+6cc4, U+6ce5, U+6d2a, U+6d66, U+6d69, U+6daf, U+6e58, U+6ecb, U+6ef4, U+707e, U+7092, U+70ab, U+71d5, U+7275, U+7384, U+73b2, U+7434, U+74e6, U+74f7, U+75bc, U+76c8, U+76d0, U+7709, U+77ac, U+7855, U+78a7, U+78c1, U+7a77, U+7b79, U+7c92, U+7cae, U+7cd5, U+7ea4, U+7eb5, U+7ebd, U+7f5a, U+7fd4, U+7ffc, U+8083, U+8096, U+80a0, U+80d6, U+80de, U+8102, U+8109, U+810f, U+8179, U+8292, U+82b3, U+8352, U+8361, U+83cc, U+841d, U+8461, U+8482, U+8521, U+857e, U+85aa, U+866b, U+8776, U+8896, U+889c, U+88f8, U+8a9e, U+8bc8, U+8bf8, U+8c0b, U+8c28, U+8d2b, U+8d2f, U+8d37, U+8d3a, U+8d54, U+8dc3, U+8dcc, U+8df5, U+8e0f, U+8e48, U+8f86, U+8f88, U+8f9e, U+8fc1, U+8fc8, U+8feb, U+9065, U+90a6, U+90aa, U+90bb, U+90c1, U+94dc, U+9521, U+9676, U+96d5, U+970d, U+9897, U+997c, U+9a70, U+9a76, U+9a9a, U+9ad4, U+9e23, U+9e7f, U+9f3b, U+e675, U+e6b9, U+ffe5;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-20.woff2') format('woff2');
  unicode-range: U+300c-300d, U+4e54, U+4e58, U+4e95, U+4ec1, U+4f2f, U+4f38, U+4fa3, U+4fca, U+503e, U+5141, U+5144, U+517c, U+51cc, U+51ed, U+5242, U+52b2, U+52d2, U+52e4, U+540a, U+5439, U+5448, U+5496, U+54ed, U+5565, U+5761, U+5766, U+58ee, U+593a, U+594b, U+594f, U+5954, U+5996, U+59c6, U+59ff, U+5b64, U+5bff, U+5c18, U+5c1d, U+5c97, U+5ca9, U+5cb8, U+5e9f, U+5ec9, U+5f04, U+5f7b, U+5fa1, U+5fcd, U+6012, U+60a6, U+60ac, U+60b2, U+60ef, U+626e, U+6270, U+6276, U+62d6, U+62dc, U+6316, U+632f, U+633a, U+6355, U+63aa, U+6447, U+649e, U+64c5, U+654c, U+65c1, U+65cb, U+65e6, U+6606, U+6731, U+675c, U+67cf, U+67dc, U+6846, U+6b8b, U+6beb, U+6c61, U+6c88, U+6cbf, U+6cdb, U+6cea, U+6d45, U+6d53, U+6d74, U+6d82, U+6da8, U+6db5, U+6deb, U+6eda, U+6ee8, U+6f0f, U+706d, U+708e, U+70ae, U+70bc, U+70c2, U+70e6, U+7237-7238, U+72fc, U+730e, U+731b, U+739b, U+73bb, U+7483, U+74dc, U+74f6, U+7586, U+7626, U+775b, U+77ff, U+788e, U+78b0, U+7956, U+7965, U+79e6, U+7af9, U+7bee, U+7c97, U+7eb1, U+7eb7, U+7ed1, U+7ed5, U+7f6a, U+7f72, U+7fbd, U+8017, U+808c, U+80a9, U+80c6, U+80ce, U+8150, U+8170, U+819c, U+820d, U+8230, U+8239, U+827e, U+8377, U+8389, U+83b2, U+8428, U+8463, U+867e, U+88c2, U+88d9, U+8986, U+8bca, U+8bde, U+8c13, U+8c8c, U+8d21, U+8d24, U+8d56, U+8d60, U+8d8b, U+8db4, U+8e2a, U+8f68, U+8f89, U+8f9b, U+8fa8, U+8fbd, U+9003, U+90ce, U+90ed, U+9189, U+94bb, U+9505, U+95f9, U+963b, U+9655, U+966a, U+9677, U+96fe, U+9896, U+99a8, U+9a71, U+9a82, U+9a91, U+9b45, U+9ece, U+9f20, U+feff, U+ff0d;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-21.woff2') format('woff2');
  unicode-range: U+4e4c, U+4e88, U+4ea1, U+4ea6, U+4ed3-4ed4, U+4eff, U+4f30, U+4fa7, U+4fc4, U+4fd7, U+500d, U+504f, U+5076-5077, U+517d, U+5192, U+51c9, U+51ef, U+5238, U+5251, U+526a, U+52c7, U+52df, U+52ff, U+53a6, U+53a8, U+53ec, U+5410, U+559d, U+55b7, U+5634, U+573e, U+5783, U+585e, U+586b, U+58a8, U+5999, U+59d3, U+5a1c, U+5a46, U+5b54-5b55, U+5b85, U+5b8b, U+5b8f, U+5bbf, U+5bd2, U+5c16, U+5c24, U+5e05, U+5e45, U+5e7c, U+5e84, U+5f03, U+5f1f, U+5f31, U+5f84, U+5f90, U+5fbd, U+5fc6, U+5fd9, U+5fe7, U+6052, U+6062, U+6089, U+60a3, U+60d1, U+6167, U+622a, U+6234, U+624e, U+6269, U+626c, U+62b5, U+62d2, U+6325, U+63e1, U+643a, U+6446, U+6562, U+656c, U+65e2, U+65fa, U+660c, U+6628, U+6652, U+6668, U+6676, U+66fc, U+66ff, U+6717, U+676d, U+67aa, U+67d4, U+6843, U+6881, U+68d2, U+695a, U+69fd, U+6a2a, U+6b8a, U+6c60, U+6c64, U+6c9f, U+6caa, U+6cc9, U+6ce1, U+6cfd, U+6d1b, U+6d1e, U+6d6e, U+6de1, U+6e10, U+6e7f, U+6f5c, U+704c, U+7070, U+7089, U+70b8, U+718a, U+71c3, U+723d, U+732a, U+73cd, U+7518, U+756a, U+75af, U+75be, U+75c7, U+76d2, U+76d7, U+7763, U+78e8, U+795d, U+79df, U+7c4d, U+7d2f, U+7ee9, U+7f13, U+7f8a, U+8000, U+8010, U+80af, U+80f6, U+80f8, U+8212, U+8273, U+82f9, U+83ab, U+83b1, U+83f2, U+8584, U+871c, U+8861, U+888b, U+88c1, U+88e4, U+8bd1, U+8bf1, U+8c31, U+8d5a, U+8d75-8d76, U+8de8, U+8f85, U+8fa3, U+8fc5, U+9006, U+903c, U+904d, U+9075, U+9178, U+9274, U+950b, U+9526, U+95ea, U+9636, U+9686, U+978b, U+987f, U+9a7e, U+9b42, U+9e1f, U+9ea6, U+9f13, U+9f84, U+ff5e;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-22.woff2') format('woff2');
  unicode-range: U+23, U+3d, U+4e01, U+4e39, U+4e73, U+4ecd, U+4ed9, U+4eea, U+4f0a, U+4f1f, U+4f5b, U+4fa0, U+4fc3, U+501f, U+50a8, U+515a, U+5175, U+51a0, U+51c0, U+51e1, U+51e4, U+5200, U+520a, U+5224, U+523a, U+52aa, U+52b1, U+52b3, U+5348, U+5353, U+5360, U+5371, U+5377, U+539a, U+541b, U+5434, U+547c, U+54e6, U+5510, U+5531, U+5609, U+56f0, U+56fa, U+5733, U+574f, U+5851, U+5854, U+5899, U+58c1, U+592e, U+5939, U+5976, U+5986, U+59bb, U+5a18, U+5a74, U+5b59, U+5b87, U+5b97, U+5ba0, U+5bab, U+5bbd-5bbe, U+5bf8, U+5c0a, U+5c3a, U+5c4a, U+5e16, U+5e1d, U+5e2d, U+5e8a, U+6015, U+602a, U+6050, U+6069, U+6162, U+61c2, U+6293, U+6297, U+62b1, U+62bd, U+62df, U+62fc, U+6302, U+635f, U+638c, U+63ed, U+6458, U+6469, U+6563, U+6620, U+6653, U+6696-6697, U+66dd, U+675f, U+676f-6770, U+67d0, U+67d3, U+684c, U+6865, U+6885, U+68b0, U+68ee, U+690d, U+6b23, U+6b32, U+6bd5, U+6c89, U+6d01, U+6d25, U+6d89, U+6da6, U+6db2, U+6df7, U+6ed1, U+6f02, U+70c8, U+70df, U+70e7, U+7126, U+7236, U+7259, U+731c, U+745e, U+74e3, U+751a, U+751c, U+7532, U+7545, U+75db, U+7761, U+7a0d, U+7b51, U+7ca4, U+7cd6, U+7d2b, U+7ea0, U+7eb9, U+7ed8, U+7f18, U+7f29, U+8033, U+804a, U+80a4-80a5, U+80e1, U+817f, U+829d, U+82e6, U+8336, U+840c, U+8499, U+864e, U+8651, U+865a, U+88ad, U+89e6, U+8bd7, U+8bfa, U+8c37, U+8d25, U+8d38, U+8ddd, U+8fea, U+9010, U+9012, U+906d, U+907f-9080, U+90d1, U+9177, U+91ca, U+94fa, U+9501, U+9634-9635, U+9694, U+9707, U+9738, U+9769, U+9a7b, U+9a97, U+9aa8, U+9b3c, U+9c81, U+9ed8;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-23.woff2') format('woff2');
  unicode-range: U+26, U+3c, U+d7, U+4e4e, U+4e61, U+4e71, U+4ebf, U+4f26, U+5012, U+51ac, U+51b0, U+51b2, U+51b7, U+5218, U+521a, U+5220, U+5237, U+523b, U+526f, U+5385, U+53bf, U+53e5, U+53eb, U+53f3, U+53f6, U+5409, U+5438, U+54c8, U+54e5, U+552f, U+5584, U+5706, U+5723, U+5750, U+575a, U+5987-5988, U+59b9, U+59d0, U+59d4, U+5b88, U+5b9c, U+5bdf, U+5bfb, U+5c01, U+5c04, U+5c3e, U+5c4b, U+5c4f, U+5c9b, U+5cf0, U+5ddd, U+5de6, U+5de8, U+5e01, U+5e78, U+5e7b, U+5e9c, U+5ead, U+5ef6, U+5f39, U+5fd8, U+6000, U+6025, U+604b, U+6076, U+613f, U+6258, U+6263, U+6267, U+6298, U+62a2, U+62e5, U+62ec, U+6311, U+6377, U+6388-6389, U+63a2, U+63d2, U+641e, U+642d, U+654f, U+6551, U+6597, U+65cf, U+65d7, U+65e7, U+6682, U+66f2, U+671d, U+672b, U+6740, U+6751, U+6768, U+6811, U+6863, U+6982, U+6bd2, U+6cf0, U+6d0b, U+6d17, U+6d59, U+6dd8, U+6dfb, U+6e7e, U+6f6e, U+6fb3, U+706f, U+719f, U+72af, U+72d0, U+72d7, U+732b, U+732e, U+7389, U+73e0, U+7530, U+7687, U+76d6, U+76db, U+7840, U+786c, U+79cb, U+79d2, U+7a0e, U+7a33, U+7a3f, U+7a97, U+7ade-7adf, U+7b26, U+7e41, U+7ec3, U+7f3a, U+8089, U+80dc, U+811a, U+8131, U+8138, U+821e, U+8349, U+83dc, U+8457, U+867d, U+86cb, U+8a89, U+8ba8, U+8bad, U+8bef, U+8bfe, U+8c6a, U+8d1d, U+8d4f, U+8d62, U+8dd1, U+8df3, U+8f6e, U+8ff9, U+900f, U+9014, U+9057, U+9192, U+91ce, U+9488, U+94a2, U+9547, U+955c, U+95f2, U+9644, U+964d, U+96c4-96c5, U+96e8, U+96f6-96f7, U+9732, U+9759, U+9760, U+987a, U+989c, U+9910, U+996d-996e, U+9b54, U+9e21, U+9ebb, U+9f50;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-24.woff2') format('woff2');
  unicode-range: U+7e, U+2026, U+4e03, U+4e25, U+4e30, U+4e34, U+4e45, U+4e5d, U+4e89, U+4eae, U+4ed8, U+4f11, U+4f19, U+4f24, U+4f34, U+4f59, U+4f73, U+4f9d, U+4fb5, U+5047, U+505c, U+5170, U+519c, U+51cf, U+5267, U+5356, U+5374, U+5382, U+538b, U+53e6, U+5426, U+542b, U+542f, U+5462, U+5473, U+554a, U+5566, U+5708, U+571f, U+5757, U+57df, U+57f9, U+5802, U+590f, U+591c, U+591f, U+592b, U+5965, U+5979, U+5a01, U+5a5a, U+5b63, U+5b69, U+5b81, U+5ba1, U+5ba3, U+5c3c, U+5c42, U+5c81, U+5de7, U+5dee, U+5e0c, U+5e10, U+5e55, U+5e86, U+5e8f, U+5ea7, U+5f02, U+5f52, U+5f81, U+5ff5, U+60ca, U+60e0, U+6279, U+62c5, U+62ff, U+63cf, U+6444, U+64cd, U+653b, U+65bd, U+65e9, U+665a, U+66b4, U+66fe, U+6728, U+6742, U+677e, U+67b6, U+680f, U+68a6, U+68c0, U+699c, U+6b4c, U+6b66, U+6b7b, U+6bcd, U+6bdb, U+6c38, U+6c47, U+6c49, U+6cb3, U+6cb9, U+6ce2, U+6d32, U+6d3e, U+6d4f, U+6e56, U+6fc0, U+7075, U+7206, U+725b, U+72c2, U+73ed, U+7565, U+7591, U+7597, U+75c5, U+76ae, U+76d1, U+76df, U+7834, U+7968, U+7981, U+79c0, U+7a7f, U+7a81, U+7ae5, U+7b14, U+7c89, U+7d27, U+7eaf, U+7eb3, U+7eb8, U+7ec7, U+7ee7, U+7eff, U+7f57, U+7ffb, U+805a, U+80a1, U+822c, U+82cf, U+82e5, U+8363, U+836f, U+84dd, U+878d, U+8840, U+8857, U+8863, U+8865, U+8b66, U+8bb2, U+8bda, U+8c01, U+8c08, U+8c46, U+8d1f, U+8d35, U+8d5b, U+8d5e, U+8da3, U+8ddf, U+8f93, U+8fdd, U+8ff0, U+8ff7, U+8ffd, U+9000, U+9047, U+9152, U+949f, U+94c1, U+94f6, U+9646, U+9648, U+9669, U+969c, U+96ea, U+97e9, U+987b, U+987e, U+989d, U+9970, U+9986, U+9c7c, U+9c9c;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-25.woff2') format('woff2');
  unicode-range: U+25, U+4e14, U+4e1d, U+4e3d, U+4e49, U+4e60, U+4e9a, U+4eb2, U+4ec5, U+4efd, U+4f3c, U+4f4f, U+4f8b, U+4fbf, U+5019, U+5145, U+514b, U+516b, U+516d, U+5174, U+5178, U+517b, U+5199, U+519b, U+51b3, U+51b5, U+5207, U+5212, U+5219, U+521d, U+52bf, U+533b, U+5343, U+5347, U+534a, U+536b, U+5370, U+53e4, U+53f2, U+5403, U+542c, U+547d, U+54a8, U+54cd, U+54ea, U+552e, U+56f4, U+5747, U+575b, U+5883, U+589e, U+5931, U+5947, U+5956-5957, U+5a92, U+5b83, U+5ba4, U+5bb3, U+5bcc, U+5c14, U+5c1a, U+5c3d, U+5c40, U+5c45, U+5c5e, U+5df4, U+5e72, U+5e95, U+5f80, U+5f85, U+5fb7, U+5fd7, U+601d, U+626b, U+627f, U+62c9, U+62cd, U+6309, U+63a7, U+6545, U+65ad, U+65af, U+65c5, U+666e, U+667a, U+670b, U+671b, U+674e, U+677f, U+6781, U+6790, U+6797, U+6821, U+6838-6839, U+697c, U+6b27, U+6b62, U+6bb5, U+6c7d, U+6c99, U+6d4b, U+6d4e, U+6d6a, U+6e29, U+6e2f, U+6ee1, U+6f14, U+6f2b, U+72b6, U+72ec, U+7387, U+7533, U+753b, U+76ca, U+76d8, U+7701, U+773c, U+77ed, U+77f3, U+7814, U+793c, U+79bb, U+79c1, U+79d8, U+79ef, U+79fb, U+7a76, U+7b11, U+7b54, U+7b56, U+7b97, U+7bc7, U+7c73, U+7d20, U+7eaa, U+7ec8, U+7edd, U+7eed, U+7efc, U+7fa4, U+804c, U+8058, U+80cc, U+8111, U+817e, U+826f, U+8303, U+843d, U+89c9, U+89d2, U+8ba2, U+8bbf, U+8bc9, U+8bcd, U+8be6, U+8c22, U+8c61, U+8d22, U+8d26-8d27, U+8d8a, U+8f6f, U+8f7b, U+8f83, U+8f91, U+8fb9, U+8fd4, U+8fdc, U+9002, U+94b1, U+9519, U+95ed, U+961f, U+9632-9633, U+963f, U+968f-9690, U+96be, U+9876, U+9884, U+98de, U+9988, U+9999, U+9ec4, U+ff1b;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-26.woff2') format('woff2');
  unicode-range: U+2b, U+40, U+3000, U+300a-300b, U+4e16, U+4e66, U+4e70, U+4e91-4e92, U+4e94, U+4e9b, U+4ec0, U+4eca, U+4f01, U+4f17-4f18, U+4f46, U+4f4e, U+4f9b, U+4fee, U+503c, U+5065, U+50cf, U+513f, U+5148, U+518d, U+51c6, U+51e0, U+5217, U+529e-529f, U+5341, U+534f, U+5361, U+5386, U+53c2, U+53c8, U+53cc, U+53d7-53d8, U+53ea, U+5404, U+5411, U+5417, U+5427, U+5468, U+559c, U+5668, U+56e0, U+56e2, U+56ed, U+5740, U+57fa, U+58eb, U+5904, U+592a, U+59cb, U+5a31, U+5b58, U+5b9d, U+5bc6, U+5c71, U+5dde, U+5df1, U+5e08, U+5e26, U+5e2e, U+5e93, U+5e97, U+5eb7, U+5f15, U+5f20, U+5f3a, U+5f62, U+5f69, U+5f88, U+5f8b, U+5fc5, U+600e, U+620f, U+6218, U+623f, U+627e, U+628a, U+62a4, U+62db, U+62e9, U+6307, U+6362, U+636e, U+64ad, U+6539, U+653f, U+6548, U+6574, U+6613, U+6625, U+663e, U+666f, U+672a, U+6750, U+6784, U+6a21, U+6b3e, U+6b65, U+6bcf, U+6c11, U+6c5f, U+6df1, U+706b, U+7167, U+724c, U+738b, U+73a9, U+73af, U+7403, U+7537, U+754c, U+7559, U+767d, U+7740, U+786e, U+795e, U+798f, U+79f0, U+7aef, U+7b7e, U+7bb1, U+7ea2, U+7ea6, U+7ec4, U+7ec6, U+7ecd, U+7edc, U+7ef4, U+8003, U+80b2, U+81f3-81f4, U+822a, U+827a, U+82f1, U+83b7, U+8425, U+89c2, U+89c8, U+8ba9, U+8bb8, U+8bc6, U+8bd5, U+8be2, U+8be5, U+8bed, U+8c03, U+8d23, U+8d2d, U+8d34, U+8d70, U+8db3, U+8fbe, U+8fce, U+8fd1, U+8fde, U+9001, U+901f-9020, U+90a3, U+914d, U+91c7, U+94fe, U+9500, U+952e, U+9605, U+9645, U+9662, U+9664, U+9700, U+9752, U+975e, U+97f3, U+9879, U+9886, U+98df, U+9a6c, U+9a8c, U+9ed1, U+9f99;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-27.woff2') format('woff2');
  unicode-range: U+4e, U+201c-201d, U+3010-3011, U+4e07, U+4e1c, U+4e24, U+4e3e, U+4e48, U+4e50, U+4e5f, U+4e8b-4e8c, U+4ea4, U+4eab-4eac, U+4ecb, U+4ece, U+4ed6, U+4ee3, U+4ef6-4ef7, U+4efb, U+4f20, U+4f55, U+4f7f, U+4fdd, U+505a, U+5143, U+5149, U+514d, U+5171, U+5177, U+518c, U+51fb, U+521b, U+5229, U+522b, U+52a9, U+5305, U+5317, U+534e, U+5355, U+5357, U+535a, U+5373, U+539f, U+53bb, U+53ca, U+53cd, U+53d6, U+53e3, U+53f0, U+5458, U+5546, U+56db, U+573a, U+578b, U+57ce, U+58f0, U+590d, U+5934, U+5973, U+5b57, U+5b8c, U+5b98, U+5bb9, U+5bfc, U+5c06, U+5c11, U+5c31, U+5c55, U+5df2, U+5e03, U+5e38, U+5e76, U+5e94, U+5efa, U+5f71, U+5f97, U+5feb, U+6001, U+603b, U+60f3, U+611f, U+6216, U+624d, U+6253, U+6295, U+6301, U+6392, U+641c, U+652f, U+653e, U+6559, U+6599, U+661f, U+671f, U+672f, U+6761, U+67e5, U+6807, U+6837, U+683c, U+6848, U+6b22, U+6b64, U+6bd4, U+6c14, U+6c34, U+6c42, U+6ca1, U+6d41, U+6d77, U+6d88, U+6e05, U+6e38, U+6e90, U+7136, U+7231, U+7531, U+767e, U+76ee, U+76f4, U+771f, U+7801, U+793a, U+79cd, U+7a0b, U+7a7a, U+7acb, U+7ae0, U+7b2c, U+7b80, U+7ba1, U+7cbe, U+7d22, U+7ea7, U+7ed3, U+7ed9, U+7edf, U+7f16, U+7f6e, U+8001, U+800c, U+8272, U+8282, U+82b1, U+8350, U+88ab, U+88c5, U+897f, U+89c1, U+89c4, U+89e3, U+8a00, U+8ba1, U+8ba4, U+8bae-8bb0, U+8bbe, U+8bc1, U+8bc4, U+8bfb, U+8d28, U+8d39, U+8d77, U+8d85, U+8def, U+8eab, U+8f66, U+8f6c, U+8f7d, U+8fd0, U+9009, U+90ae, U+90fd, U+91cc-91cd, U+91cf, U+95fb, U+9650, U+96c6, U+9891, U+98ce, U+ff1f;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-28.woff2') format('woff2');
  unicode-range: U+d, U+3e, U+5f, U+7c, U+a0, U+a9, U+4e09-4e0b, U+4e0d-4e0e, U+4e13, U+4e1a, U+4e2a, U+4e3a-4e3b, U+4e4b, U+4e86, U+4e8e, U+4ea7, U+4eba, U+4ee4-4ee5, U+4eec, U+4f1a, U+4f4d, U+4f53, U+4f5c, U+4f60, U+4fe1, U+5165, U+5168, U+516c, U+5173, U+5176, U+5185, U+51fa, U+5206, U+5230, U+5236, U+524d, U+529b, U+52a0-52a1, U+52a8, U+5316, U+533a, U+53cb, U+53d1, U+53ef, U+53f7-53f8, U+5408, U+540c-540e, U+544a, U+548c, U+54c1, U+56de, U+56fd-56fe, U+5728, U+5730, U+5907, U+5916, U+591a, U+5927, U+5929, U+597d, U+5982, U+5b50, U+5b66, U+5b89, U+5b9a, U+5b9e, U+5ba2, U+5bb6, U+5bf9, U+5c0f, U+5de5, U+5e02, U+5e73-5e74, U+5e7f, U+5ea6, U+5f00, U+5f0f, U+5f53, U+5f55, U+5fae, U+5fc3, U+6027, U+606f, U+60a8, U+60c5, U+610f, U+6210-6211, U+6237, U+6240, U+624b, U+6280, U+62a5, U+63a5, U+63a8, U+63d0, U+6536, U+6570, U+6587, U+65b9, U+65e0, U+65f6, U+660e, U+662d, U+662f, U+66f4, U+6700, U+670d, U+672c, U+673a, U+6743, U+6765, U+679c, U+682a, U+6b21, U+6b63, U+6cbb, U+6cd5, U+6ce8, U+6d3b, U+70ed, U+7247-7248, U+7269, U+7279, U+73b0, U+7406, U+751f, U+7528, U+7535, U+767b, U+76f8, U+770b, U+77e5, U+793e, U+79d1, U+7ad9, U+7b49, U+7c7b, U+7cfb, U+7ebf, U+7ecf, U+7f8e, U+8005, U+8054, U+80fd, U+81ea, U+85cf, U+884c, U+8868, U+8981, U+89c6, U+8bba, U+8bdd, U+8bf4, U+8bf7, U+8d44, U+8fc7, U+8fd8-8fd9, U+8fdb, U+901a, U+9053, U+90e8, U+91d1, U+957f, U+95e8, U+95ee, U+95f4, U+9762, U+9875, U+9898, U+9996, U+9ad8, U+ff01, U+ff08-ff09;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-29.woff2') format('woff2');
  unicode-range: U+20-22, U+27-2a, U+2c-3b, U+3f, U+41-4d, U+4f-5d, U+61-7b, U+7d, U+ab, U+ae, U+b2, U+b7, U+bb, U+df-e5, U+e7-ea, U+ec-ed, U+f1-f4, U+f6, U+f9-fa, U+fc, U+101, U+103, U+113, U+12b, U+148, U+14d, U+16b, U+1ce, U+1d0, U+300-301, U+1ebf, U+1ec7, U+2013-2014, U+2022, U+2027, U+2039-203a, U+2122, U+3001-3002, U+3042, U+3044, U+3046, U+3048, U+304a-3055, U+3057, U+3059-305b, U+305d, U+305f-3061, U+3063-306b, U+306d-3073, U+3075-3076, U+3078-3079, U+307b, U+307e-307f, U+3081-308d, U+308f, U+3092-3093, U+30a1-30a4, U+30a6-30bb, U+30bd, U+30bf-30c1, U+30c3-30c4, U+30c6-30cb, U+30cd-30d7, U+30d9-30e1, U+30e3-30e7, U+30e9-30ed, U+30ef, U+30f3, U+30fb-30fc, U+3127, U+4e00, U+4e2d, U+65b0, U+65e5, U+6708-6709, U+70b9, U+7684, U+7f51, U+ff0c, U+ff0e, U+ff1a;
}
@font-face {
  font-family: 'Noto Sans SC';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/sans-30.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/num-00.woff2') format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../fonts/num-01.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}/* ------------------------------------------------------------- 2. token */
:root {
  /* 色板 —— 浅色区 */
  --green:       #2D6A4F;
  --green-deep:  #1B4332;
  --ink:         #15241C;
  --ink-2:       #3E5449;
  --ink-3:       #65776F;   /* ⚠️ 2026-10-07 客户批准校正：原 #6C7F76 在白底 4.26:1、
                               浅底 #F7FAF8 上 4.05:1，均低于 AA 4.5:1（audit.py 长期登记为
                               P3「画布既定」）。压暗 6%（同色相）后：白底 4.70:1、浅底 4.50:1 ✓
                               ⇒ 画布需同步更新该色（交接说明 §7 已记） */
  --gold:        #8D6927;   /* 浅底编号金：2026-10-07 校正（原 #A67C2E 在 #EFF5F1 上仅 3.43:1）。
                               现：EFF5F1 4.50 ✓ ｜ F7FAF8 4.73 ✓ ｜ FFFFFF 4.97 ✓ */
  --gold-d:      #B59250;   /* 深底编号金：同日校正（原 #A67C2E 在深底卡 #1D3527 上 3.49:1）。
                               现：1D3527 4.50 ✓ ｜ 14261D 5.40 ✓。
                               ⚠️ 一个色值不可能同时满足浅底与深底（一个要更暗、一个要更亮）
                               ⇒ 沿用本项目既有的「深底/浅底分档」范式（如 --on-dark-2/3）。 */
  --gold-on-args: #7F5E23;  /* 论证底专用金：`--bg-args #DFEBE5` 上 4.86:1（--gold 在此底上仅 4.10:1，不达 AA）。
                              为什么加第三档而不是压暗 --gold：--gold 铺在 4 个选择器 / 6 处页面实例上
                              （.arg__no / .manual__no / .limit--light .limit__no / .quad__no），
                              改它会连带把 method、china、global、principles **白底上本已达标（5.02）**的序号
                              一起压到 5.95 —— 为了 1 个页面去动 4 个页面。
                              这套「金色按底分档」项目里早就有（--gold 浅底 / --gold-d 深底），
                              论证底只是漏了这一档，属同一原则的第三次应用，不是引入新原则。 */
  --pill:        #DEEDE3;
  --bg-soft:     #F7FAF8;
  --bg-soft-2:   #EFF5F1;
  /* 论证段专用（内页「三个理由 / 样本清单」这类最长的纯文字区）。
     2026-10-21 与画布 01 页 3:386 对齐。
     ⚠️ 值经两次修正，两次的原因值得记住：
        · 初版 #F7FAF8（--bg-soft）与白差 8 级 → 完全无感
        · 二版 #E8F0EB 差 23/15/20 → 在**左右并排放大的对比图**里看得出，
          但铺满 1440 整屏看仍是一片白。并置对比 ≠ 整屏浏览，前者放大了差异感知。
        · 现版 #DFEBE5 差 32/20/26 → 整屏可辨，同时仍读作"纸"而不是"另一个模块"。
     判这类淡色差，必须看**整屏实拍**，不能看并排对比图。 */
  --bg-args:     #DFEBE5;
  --ftr-logo-plate: #E8F0EB;  /* 页脚 logo 的 40px 圆托底（**不是**论证卡内托底，那是 --bg-args）。
                                 作用：让 logo 的绿叶环不融进页脚深底 #14261D —— 不托底时整圈绿环消失，
                                 只剩橙币和橙箭“漂”在深底上（见 .ftr__logo 上面的长注释）。
                                 这个位置没有任何文字，所以它不参与对比度计算。
                                 2026-10-24 从 .ftr__logo 里的硬编码提成 token：同时消掉
                                 [L3-3] 设计系统外色值 与 [L3-2] token 层外硬编码 两条。 */
  --line:        #DCE6E0;
  --white:       #FFFFFF;   /* 卡/面板白底 —— 收敛原先 20 处硬编码白色简写。
                              ⚠️ 不能用 --on-dark 替代：那个 token 的语义是
                              「深色区文字色」，拿它当白底会污染语义。 */

  /* 色板 —— 深色区 */
  --dark:        #14261D;
  --dark-card:   #1D3527;
  --on-dark:     #FFFFFF;
  --on-dark-2:   #B8D4C5;   /* 正文辅助：引言 / 说明 */
  --on-dark-3:   #7DBA9B;   /* 标签层：面包屑 / 编号 / 小标 / 企业名 / 证据句 */

  /* CTA —— 说明色与 --on-dark-2 同值：画布 3:183 / 8:239 / 8:247 / 8:255 / 8:263 / 8:271
     六处实测均为 #B8D4C5；原 #C5DCCF 已停用（保留角色名，便于日后分化） */
  --cta-a:       #1C4233;
  --cta-b:       #2E6B4F;
  --cta-desc:    #CADFD4;   /* ⚠️ 2026-10-07 客户批准校正：原 #B8D4C5 压在 CTA 渐变**亮端**
                               #2E6B4F 上只有 3.98:1（低于 AA）。提亮 25% ⇒ 4.50:1 ✓
                               注：--on-dark-2 仍是 #B8D4C5（深底上 10.01:1 ✓ 不动） */
  /* ⚠️ 2026-10-15：原 --cta-ghost (#9EC2AE) 只被 .btn--ghost 使用，随该类删除。 */

  /* 装饰 / 表单 */
  --hero-a:      #F5FAF5;   /* Hero 渐变起点（上） */
  --hero-b:      #FFFFFF;   /* Hero 渐变终点（下） */
  /* ⚠️ 2026-10-19：--ph 随 /login/ 页**复站**而恢复（客户要求页脚重新提供会员登录入口）。
     2026-10-15 曾因"全站已无 input"删除；恢复时保留同一取值，避免输入框占位符回退到
     浏览器默认灰（各浏览器不一致，且对比度不可控）。 */
  --ph:          #9AA8A1;   /* 输入框占位符 */

  /* 声明条 */
  --note:        #4A6157;

  /* Footer 专属色档（独立子系统） */
  --ft-title:    #7E9488;   /* 列标题 / 版权 / 域名 / 备案号 */
  --ft-note:     #8FA79A;   /* 品牌说明 */

  /* 字体 */
  --f-serif: "Noto Serif SC", "Source Han Serif SC", "Noto Serif CJK SC", "Songti SC", "SimSun", serif;
  --f-sans:  "Noto Sans SC", "Source Han Sans SC", "Noto Sans CJK SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  --f-num:   "Inter", "Helvetica Neue", Arial, sans-serif;

  /* 尺寸 —— Header 内容 1312 与正文 1200 是两套，不可混用 */
  --page-max: 1440px;
  --px-sec:   120px;   /* 正文内容侧边距 → 1200 */
  --px-hdr:    64px;   /* Header 侧边距 → 1312 */
  --r-card:    14px;
  --r-ctl:      8px;
  --g-grid:    24px;
}

/* ----------------------------------------------------------- 3. 基础层 */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--white);
  color: var(--ink);
  font-family: var(--f-sans);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1, h2, h3, p, figure { margin: 0; }
ul { margin: 0; padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
svg { display: block; }
button, input { font: inherit; color: inherit; }
button { background: none; border: 0; cursor: pointer; }
:focus-visible { outline: 2px solid var(--green); outline-offset: 2px; border-radius: 2px; }

/* ⚠️ 曾有一个 `.sr-only` 视觉隐藏工具类，7 页全部落地后仍无人引用 ——
   站点现有可访问性名称均已由 aria-label / 可见 label / 可见按钮文字覆盖
   （logo 链接、汉堡按钮、主导航、登录表单三处），故 2026-10-05 收口时删除。

   下面这个 `.skip` 与它不同：**有具体职责**（跳过导航，WCAG 2.4.1），
   不是「通用视觉隐藏」——它必须在聚焦时真正显示出来，是交互件而非工具类。 */
.skip {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.skip:focus {
  position: fixed;
  left: 16px;
  top: 16px;
  width: auto;
  height: auto;
  z-index: 300;                 /* 高于移动端抽屉的 100 */
  padding: 10px 16px;
  border-radius: var(--r-ctl);
  background: var(--green);
  color: var(--white);
  font-size: 14px;
  line-height: 1.2;
}

/* --------------------------------------------------------- 4. 页面容器 */
.page { max-width: var(--page-max); margin: 0 auto; background: var(--white); }

/* ----------------------------------------------------------- 5. 区块 */
.sec { padding: 96px var(--px-sec); display: flex; flex-direction: column; gap: 44px; }
.sec--hero    { padding: 104px var(--px-sec) 88px; gap: 26px; background: linear-gradient(180deg, var(--hero-a) 0%, var(--hero-b) 100%); position: relative; }
.sec--method  { background: var(--dark); gap: 48px; }
.sec--soft    { background: var(--bg-soft); }
.sec--maxim   { background: var(--bg-soft-2); gap: 48px; }
.sec--cta     { background: linear-gradient(90deg, var(--cta-a) 0%, var(--cta-b) 100%); gap: 28px; }
.sec--note    { flex-direction: row; align-items: center; gap: 12px; padding: 26px var(--px-sec); background: var(--bg-soft); }
.sec--head    { padding: 64px var(--px-sec) 80px; gap: 0; }
.sec--args    { padding: 84px var(--px-sec) 88px; gap: 0; background: var(--bg-args); }
.sec--limits  { padding: 84px var(--px-sec) 88px; gap: 0; background: var(--dark); }
/* 落点区（画布 01 页 3:429）：画布上标题与正文都是**居中**（标题中点 719.5 = 版心中心 720）。
   ⚠️ 2026-10-06 实测：本行原只有 padding/gap/background，且全站没有一处给它对齐声明，
   而 .sec 是 flex-column、子项撑满 ⇒ 文字**贴左** —— 与画布不符，也与同页居中的 CTA 不一致。
   判据：site/tools/align_audit.py（逐区块 ink 左边界对账，已进统一验收包 A6）。 */
.sec--closing { padding: 72px var(--px-sec); gap: 16px; background: var(--bg-soft); text-align: center; }
.sec--pager   { padding: 28px var(--px-sec); flex-direction: row; gap: 24px; }

/* 内页正文区（画布统一 padding 84/88、gap 0 —— 标题组自带下留白，见 §7.9） */
.sec--lens    { padding: 84px var(--px-sec) 88px; gap: 0; }
.sec--manual  { padding: 84px var(--px-sec) 88px; gap: 0; background: var(--bg-soft); }
.sec--rubric  { padding: 84px var(--px-sec) 88px; gap: 0; }
.sec--bounds  { padding: 84px var(--px-sec) 88px; gap: 0; background: var(--bg-soft-2); }

/* 404 错误页主区 —— **画布外**的部署件（画布 730576248379757 没有这一页）。
   故不复用任何区块骨架，只按同一套 token 与排版比例新写。
   ⚠️ 本页是全站唯一使用站点根绝对路径的页面（见 404.html 头注）：
      `error_page` 是内部重定向，地址栏仍停在原 URL（可能是 /method/xyz），
      相对路径会被解析到 /method/ 下而全丢。
   ⚠️ 本段**不进 L5 复用件比对** —— 它的 Header/声明条/Footer 走绝对路径，
      与 7 个正常页面的相对路径天然不同源。audit.py 有 NOT_REUSED 表。 */
.sec--oops     { padding: 132px var(--px-sec) 148px; gap: 0; align-items: flex-start; }
.oops__code    { font-family: var(--f-num); font-weight: 600; font-size: 96px; line-height: 1; color: var(--green); letter-spacing: -.02em; }
.oops__body    { display: flex; flex-direction: column; gap: 18px; padding-top: 34px; width: 100%; max-width: 620px; }
.oops__title   { font-family: var(--f-serif); font-weight: 700; font-size: 40px; line-height: 58px; color: var(--ink); }
.oops__text    { font-size: 15px; line-height: 22px; color: var(--ink-2); }
.oops__acts    { padding-top: 10px; }

/* 编号行（全站 13px 主绿 Medium；深色区转标签层色）
   行高 19 = round(13 × 1.437)，即画布 AUTO 值 —— 写 1.4 会得 18.2，累积到区标题组
   上就是每个区少 1px（首页曾因此整页 −6px） */
.tag {
  font-size: 13px; font-weight: 500; line-height: 19px; color: var(--green);
}
.sec--method .tag { color: var(--on-dark-3); }

.sec__head { display: flex; flex-direction: column; gap: 16px; }
.sec__title {
  font-family: var(--f-serif); font-weight: 700; font-size: 40px; line-height: 1.4;
  color: var(--ink); letter-spacing: .01em;
}
.sec--method .sec__title, .sec--limits .sec__title { color: var(--on-dark); }
.sec__lead {
  font-size: 17px; line-height: 32px; color: var(--ink-2); max-width: 860px;
}
.sec--method .sec__lead, .sec--limits .sec__lead { color: var(--on-dark-2); }

/* --------------------------------------------------------- 6. 组件层 */

/* 6.1 Logo（矢量三柱） */
/* ⚠️ 2026-10-20：品牌标识由「深绿方块 + 三白柱」的 SVG 换成独立 logo 图
   （乐财科技叶片环 + 金币 + 箭头，透明底 PNG）。原 34×34 方形放不下 1.26:1 的横向标，
   Header 提到 40 高（= 51 宽），Footer 仍是 30 高（= 38 宽）。
   尺寸用固定宽高而非 max-width：flex 容器里能保证与「乐财」的词间距离稳定。 */
.logo { flex: none; display: block; }
.logo--40 { width: 51px; height: 40px; }
/* ⚠️ 2026-10-24 删除 .logo--30：全站 0 引用（唯一引用在 member/_legacy-20261019/，该目录同日清理）。 */
.logo--22 { width: 28px; height: 22px; }

/* 深底上的 logo 必须带浅托底。
   这张图是**四色结构**：绿叶环（#16944）+ 橙币 + 橙箭 + 白像素点。
   绿环与页脚深绿 #14261D 明度太近，不做托底时整圈绿叶环直接消失，
   只剩橙币和橙箭"漂"在深底上 —— 形状是不完整的，不是"小一点"的问题。
   logo-mark-dark.png 是把绿环压暗到 #0A5323 的版本，只会让它更彻底地融进背景，已弃用。

   几何：图 28×22 对角线 35.6，圆 40 → 四周各留 2.2px，叶尖和箭尖不会顶到圆边。
   （画布那版是 44 圆配 38×30，对角线 48.4 > 44，实际是顶边的，这次一并修正。） */
.ftr__logo {
  flex: none; width: 40px; height: 40px; border-radius: 50%;
  background: var(--ftr-logo-plate);   /* 画布 3:452 托底色，比 --bg-args 亮一档以衬出绿环 */
  display: flex; align-items: center; justify-content: center;
}

/* 6.2 Header 导航 */
.hdr {
  position: sticky; top: 0; z-index: 50;
  height: 76px; padding: 0 var(--px-hdr);
  display: flex; align-items: center; justify-content: space-between;
  background: var(--white);
}
/* gap 12 → 9：logo 右缘是箭头的透明留白，等距 12 时 logo↔乐财 的**视觉**间距
   会比 乐财↔副标 大 4–5px。收到 9 后两段看起来才等距。 */
.hdr__brand { display: flex; align-items: center; gap: 9px; min-width: 0; }
.hdr__name {
  font-family: var(--f-serif); font-weight: 600; font-size: 21px; line-height: 1.4; color: var(--ink);
}
.hdr__sub { font-size: 12px; line-height: 1.4; color: var(--ink-3); }
.hdr__nav { display: flex; align-items: center; gap: 36px; }
.hdr__nav a { font-size: 14px; line-height: 1.4; color: var(--ink-2); transition: color .15s ease; }
.hdr__nav a:hover { color: var(--green); }
.hdr__nav a[aria-current="page"] { color: var(--green); font-weight: 500; }
.hdr__burger { display: none; width: 24px; height: 24px; }
.hdr__burger svg { width: 24px; height: 24px; }
.hdr-line { height: 1px; background: var(--line); }

/* 6.3 移动端抽屉 */
.mnav { position: fixed; inset: 0; z-index: 100; background: var(--white); display: none; flex-direction: column; }
.mnav[data-open="true"] { display: flex; }
.mnav__top { height: 56px; padding: 0 20px; display: flex; align-items: center; justify-content: space-between; flex: none; }
.mnav__line { height: 1px; background: var(--line); flex: none; }
.mnav__list { flex: 1; overflow-y: auto; }
.mnav__list a {
  display: flex; align-items: center; height: 52px; padding: 0 20px;
  font-size: 15px; color: var(--ink-2);
}
.mnav__list a[aria-current="page"] { color: var(--green); font-weight: 500; }

/* 6.4 Hero */
.hero__eyebrow { display: flex; align-items: center; gap: 10px; }
.hero__dot { width: 6px; height: 6px; border-radius: 3px; background: var(--green); flex: none; }
.hero__eyebrow span { font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--green); }
.hero__title {
  font-family: var(--f-serif); font-weight: 700; font-size: 58px; line-height: 80px;
  color: var(--ink); letter-spacing: .01em;
}
.hero__sub { font-family: var(--f-serif); font-weight: 400; font-size: 24px; line-height: 38px; color: var(--green); }
.hero__lead { font-size: 16px; line-height: 30px; color: var(--ink-2); max-width: 680px; }
.hero__deco { position: absolute; top: 150px; right: var(--px-sec); width: 440px; height: 280px; pointer-events: none; }
.hero__entries { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }

.entry {
  display: flex; flex-direction: column; gap: 12px;
  padding: 30px 32px; border-radius: var(--r-card);
  background: var(--white);
  /* ⚠️ 画布 stroke 不占布局 —— 用 border 会让每张卡多 2px（上下各 1），
     与 .case / .quad / .limit / .sample / .evi 的既定做法不一致。
     悬停改色同样落到 box-shadow。 */
  box-shadow: inset 0 0 0 1px var(--line);
  transition: box-shadow .18s ease, transform .18s ease;
}
.entry:hover { box-shadow: inset 0 0 0 1px var(--green); transform: translateY(-2px); }
.entry__tag { font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--green); }
.entry__title { font-family: var(--f-serif); font-weight: 600; font-size: 23px; line-height: 1.4; color: var(--ink); }
.entry__desc { font-size: 14px; line-height: 25px; color: var(--ink-2); }
/* ⚠️ 此处曾有 margin-top:2px —— 画布 3:28 的间距就是 gap 12，没有额外 2px。
   行高另见 §7.13（桌面 19px）。 */
.entry__more { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--green); }
.entry__more svg { width: 16px; height: 16px; transition: transform .18s ease; }
.entry:hover .entry__more svg { transform: translateX(3px); }

/* 6.5 要点（首页缘起） */
.points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 44px; }
.point { display: flex; flex-direction: column; gap: 12px; }
.point__no { font-family: var(--f-num); font-weight: 600; font-size: 15px; line-height: 1.4; color: var(--green); }
.point__title { font-family: var(--f-serif); font-weight: 600; font-size: 18px; line-height: 1.4; color: var(--ink); }
.point__desc { font-size: 14px; line-height: 26px; color: var(--ink-2); }

/* 6.6 双透镜 */
.lens { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px; }
.lens__card {
  display: flex; flex-direction: column; gap: 14px;
  padding: 34px 32px; border-radius: var(--r-card); background: var(--dark-card);
}
.lens__tag { font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--on-dark-3); }
.lens__title { font-family: var(--f-serif); font-weight: 600; font-size: 26px; line-height: 1.4; color: var(--on-dark); }
.lens__desc { font-size: 14px; line-height: 26px; color: var(--on-dark-2); }
.lens__list { font-size: 15px; font-weight: 500; line-height: 30px; color: var(--on-dark-2); }

/* 6.7 样本卡 / 证据卡 / 成果卡 */
.samples { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--g-grid); }
.sample {
  display: flex; flex-direction: column; gap: 8px;
  padding: 26px 24px; border-radius: var(--r-card);
  background: var(--white);
  /* ⚠️ 画布 stroke 不占布局 —— 用 border 会让每张卡多 2px（上下各 1），
     与 .case / .quad / .limit / .pick__card 的既定做法不一致。 */
  box-shadow: inset 0 0 0 1px var(--line);
}
.sec--soft .sample { background: var(--white); }
.sec--plain .sample { background: var(--bg-soft); }
.sample__name { font-family: var(--f-serif); font-weight: 600; font-size: 17px; line-height: 1.4; color: var(--ink); }
.sample__give { font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--green); }

/* 6.8 主法则 */
.maxim { display: flex; flex-direction: column; gap: 20px; }
.maxim__bar { width: 56px; height: 3px; border-radius: 2px; background: var(--green); }
.maxim__text {
  font-family: var(--f-serif); font-weight: 600; font-size: 28px; line-height: 44px;
  color: var(--ink); max-width: 1160px;
}
/* 05 页首区内的主法则块（8:199）比首页多一段上留白：画布 padding-top 12。
   标题组 8:44 = 322 = 28 + (19 + 20 + 69 + 20 + 23 + 20) + 123，其中 123 = 12 + 3 + 20 + 88 */
.sec--head .maxim { padding-top: 12px; }

/* 6.9 证据墙 */
.evidence { display: flex; flex-direction: column; gap: 16px; }
.evidence__row { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--g-grid); }
.evi {
  display: flex; flex-direction: column; gap: 6px;
  padding: 20px; border-radius: var(--r-card);
  background: var(--bg-soft);
  box-shadow: inset 0 0 0 1px var(--line);   /* 同上：描边不占布局 */
}
.evi__name { font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--ink); }
.evi__give { font-size: 13px; line-height: 1.4; color: var(--green); }

/* 6.10 成果卡 */
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--g-grid); }
.card {
  display: flex; flex-direction: column; gap: 10px;
  padding: 26px 28px; border-radius: var(--r-card); background: var(--bg-soft);
}
.card__status { font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--green); }
.card__status--muted { color: var(--ink-3); }
.card__title { font-family: var(--f-serif); font-weight: 600; font-size: 18px; line-height: 1.4; color: var(--ink); }
.card__desc { font-size: 14px; line-height: 26px; color: var(--ink-2); }

/* 6.11 CTA —— 统一规格，6 页同源（画布 3:181 / 8:237 / 8:245 / 8:253 / 8:261 / 8:269）
   标题 38 Serif Bold #FFFFFF｜说明 16 Regular #B8D4C5
   ⚠️ 说明字号必须显式声明：.sec__lead 基准是 17px（首页区引言），漏写会静默偏大 1px */
.sec--cta .sec__title { color: var(--on-dark); font-size: 38px; text-align: center; }
.sec--cta .sec__lead {
  color: var(--cta-desc); font-size: 16px; line-height: 30px;
  text-align: center; max-width: none;
}
.cta__btns { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 500; line-height: 1.4; border-radius: var(--r-ctl);
  transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.btn--primary { padding: 14px 32px; background: var(--white); color: var(--green-deep); }
.btn--primary:hover { background: var(--pill); }
/* ⚠️ 2026-10-15：原 .btn--ghost / .sec--cta .btn--ghost / :hover 与 token --cta-ghost 已删除
   —— 客户裁定 CTA 里现存的唯一按钮升级为 .btn--primary（白底主按钮），全站再无幽灵按钮。
   沿革：它原是「乐财会员登录 + 与我们交流」双按钮里的次要项；2026-10-07 曾因文字压在
   CTA 渐变亮端只有 3.98:1（<AA）而改用 --cta-desc 校正 —— 该问题随本类删除一并消失。 */
/* 实心主绿按钮 —— 用在**浅底**上（CTA 里的 .btn--primary 是白底，专供深色渐变底）。
   目前只有 404 页使用；与 Footer 深底按钮同色系，但尺寸走 .btn 的 15px/14·32。 */
.btn--solid { padding: 14px 32px; background: var(--green); color: var(--on-dark); }
.btn--solid:hover { background: var(--green-deep); }

/* 6.12 声明条 */
.note__icon { flex: none; width: 18px; height: 18px; }
.note__text { font-size: 14px; line-height: 1.4; color: var(--note); }

/* 6.13 Footer */
.ftr {
  padding: 64px var(--px-sec) 36px;
  display: flex; flex-direction: column; gap: 44px;
  background: var(--dark);
}
.ftr__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 40px; }
.ftr__brand { display: flex; flex-direction: column; gap: 12px; }
/* gap 10 → 6：logo 右缘是箭头尖的透明留白，10 会让「乐财」看起来被推远 */
.ftr__brandrow { display: flex; align-items: center; gap: 6px; }
.ftr__name { font-family: var(--f-serif); font-weight: 600; font-size: 19px; line-height: 1.4; color: var(--on-dark); }
.ftr__sub { font-size: 13px; line-height: 1.4; color: var(--ft-note); }
/* 域名（2026-10-19 从合规组上移到品牌列，接在「全球优秀企业研究」下方）
   ⚠️ 字体必须是 Inter 数字体：它不是中文，走 --f-num 才与版权行的西文同构。 */
.ftr__domain { font-family: var(--f-num); font-size: 13px; line-height: 1.4; color: var(--ft-title); }
.ftr__links { display: flex; gap: 76px; flex-wrap: wrap; }
.ftr__col { display: flex; flex-direction: column; gap: 12px; }
.ftr__coltitle { font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--ft-title); }
.ftr__link { font-size: 14px; line-height: 1.4; color: var(--on-dark-2); transition: color .15s ease; }

/* ── 触达尺寸（WCAG 2.5.8 目标尺寸 ≥24×24）—— 2026-10-07 加 ──────────────
   实测（computed）：页脚链接 .ftr__link 84×20、页尾流转 .pager a 132×20、
   备案号链接 .ftr__beian 119×18 —— **高度都不足 24**。
   这三类都处在 flex 容器里（不是行内文本），**直接加 padding 会改变盒子高度**
   ⇒ 会与「整页总高 = 画布」（measure.py delta=0）打架 ✗。
   故用**不占布局的扩热区**：绝对定位的 ::after 把可点区域上下各撑 5px
   （.ftr__col 的行间距是 12px ⇒ ±5px 不会与相邻链接的可点区重叠 ✓），
   ::after 属于 <a> 本身 ⇒ 点击落点仍是该链接 ✓，元素盒子尺寸**零变化** ✓。 */
.ftr__link, .pager a, .ftr__beian, .crumbs a, .hdr__nav a, .mnav__list a {
  position: relative;
}
.ftr__link::after, .pager a::after, .ftr__beian::after,
.crumbs a::after, .hdr__nav a::after, .mnav__list a::after {
  content: ""; position: absolute; left: 0; right: 0; top: -5px; bottom: -5px;
}
/* ⚠️ 段内行链接**故意不加**：它们适用 WCAG 2.5.8 的 inline 例外，
   而且撑开热区会覆盖相邻行文字、影响选词 ✗。 */

.ftr__link:hover { color: var(--on-dark); }
.ftr__bottom { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.ftr__copy { font-size: 13px; line-height: 1.4; color: var(--ft-title); }
/* 2026-10-19：域名从合规组**上移**到品牌列（见 .ftr__domain），合规组只剩 ICP + 公安两段。
   为什么改：域名是品牌/访问信息、不是备案信息，夹在版权与 ICP 之间会被读成「第四串编号」；
   且左右重量 277 : 491 失衡。改后 277 : 349。
   ⚠️ 间距统一 16。旧写法是 gap 12 + `.num{margin-right:12}` 凑出「24 / 12」的不对称，
      而画布写的是 24 / 24 —— 两侧实际已漂 12px（rects.py 实测 ICP→公安 12.0）。
      别再引入单侧补偿：一个容器只能有一档间距。 */
.ftr__legal { display: flex; align-items: center; gap: 16px; }
.ftr__legal span, .ftr__beian { font-size: 13px; line-height: 1.4; color: var(--ft-title); }
/* 备案号必须是可点击链接（工信部要求，指向 https://beian.miit.gov.cn/）。
   ⚠️ 排版必须与 `.ftr__legal span` **完全同源**，否则 `<a>`（它会被 flex 化
      成块级，自带一个 strut 行盒）按继承来的 14px/normal 撑高，整页 +3px。
      故上面那条规则与 ≥1200 媒体查询里那条都把 `.ftr__beian` 并列写上。 */
/* 公安备案号：图标在左、编号在右（与 ICP 号同款链接角色）。
   ⚠️ img 必须 display:block —— inline 参与基线排布会把 .ftr__bottom 从 19px
      撑到 20~21px，页脚 310 立刻破（_measure.html 的 footer 探针，7 页全测）。
      17px < 行高（桌面 19 / 窄屏 18.19）⇒ 行盒高度不变，实测 Δ=0。
   ⚠️ 不新增类名：audit.py 的 L3-4（HTML 用了 CSS 未定义）与 L3-5（CSS 死代码）
      都按类名集合比对。 */
.ftr__beian { display: inline-flex; align-items: center; text-decoration: none; }
.ftr__beian img { display: block; height: 17px; width: auto; margin-right: 6px; }
.ftr__beian:hover { text-decoration: underline; text-underline-offset: 2px; }

/* ------------------------------------------------------- 7. 内页专属 */

/* 7.1 面包屑 */
.crumbs { font-size: 12px; line-height: 1.4; color: var(--ink-3); }
.crumbs a:hover { color: var(--green); }
.crumbs .sep { padding: 0 6px; }
.sec--method .crumbs, .sec--limits .crumbs { color: var(--on-dark-3); }
/* 7.2 深色页首区（02 / 04 用）—— 对照画布 3:263 / 3:265 / 3:266 / 3:267（04 为 3:610 / 3:612 / 3:613 / 3:614）
   深底 #14261D 上：面包屑与编号行 #7DBA9B｜页面标题 #FFFFFF｜引言 #B8D4C5。
   这四条缺任一条，文字都会退回浅色档 —— 对比度跌到 2:1 以下，等于看不见。 */
.sec--head-dark { background: var(--dark); }
.sec--head-dark .crumbs     { color: var(--on-dark-3); }
.sec--head-dark .crumbs a:hover { color: var(--on-dark); }
.sec--head-dark .tag        { color: var(--on-dark-3); }
.sec--head-dark .page-title { color: var(--on-dark); }
.sec--head-dark .page-lead  { color: var(--on-dark-2); }

/* 7.3 论点列表（01 三个理由） */
.args { display: flex; flex-direction: column; }
/* ⚠️ 画布 3:391 / 3:396 / 3:401 实测 strokes = [] —— 三条论点行之间
   **没有分隔线**。此处原写 border-top:1px，既多出画布外元素、又每行多占 1px 布局
   （3 行共 +2px，把 01 页顶高 2px）。行间距由 padding 32/32 独立承担，视觉足够。 */
.arg {
  display: flex; gap: 32px; padding: 32px 0;
}
/* 序号与标题首行的**垂直居中**：标题 22/1.4 = 30.8 行盒、序号 12/1.4 = 16.8，
   居中需 (30.8-16.8)/2 = 7。原为顶对齐，12px 的「01」视觉上飘在 22px 标题的上方像失重。 */
.arg__no { flex: none; width: 48px; padding-top: 7px; font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--gold-on-args); }
.arg__body { display: flex; flex-direction: column; gap: 14px; flex: 1; min-width: 0; }
.arg__title { font-family: var(--f-serif); font-weight: 600; font-size: 22px; line-height: 1.4; color: var(--ink); }
.arg__text { font-size: 15px; line-height: 1.5; color: var(--ink-2); }

/* 7.4 边界网格（01，深色） */
.limits { display: flex; flex-direction: column; gap: 24px; }
.limits__row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.limit {
  display: flex; flex-direction: column; gap: 10px;
  padding: 28px 32px; border-radius: var(--r-card); background: var(--dark-card);
}
.limit__no { font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--gold-d); }
.limit__title { font-size: 16px; font-weight: 500; line-height: 1.4; color: var(--on-dark); }
.limit__text { font-size: 14px; line-height: 1.5; color: var(--on-dark-2); max-width: 524px; }

/* 7.5 落点 */
.closing__title { font-family: var(--f-serif); font-weight: 600; font-size: 26px; line-height: 1.4; color: var(--ink); }
.closing__text { font-size: 15px; line-height: 1.6; color: var(--ink-2); }

/* 7.6 内页页面标题（48 Bold，全站仅 01–05 使用） */
.page-title {
  font-family: var(--f-serif); font-weight: 700; font-size: 48px; line-height: 1.4;
  color: var(--ink); letter-spacing: .01em;
}
.page-lead { font-size: 16px; line-height: 1.6; color: var(--ink-2); max-width: 860px; }
.sec--head .sec__head { padding-top: 28px; gap: 20px; }
/* 内页区块标题组：gap 14 + 下留 40（与首页区标题组 gap 16 不同，以画布为准） */
.sec--args .sec__head, .sec--limits .sec__head { gap: 14px; padding-bottom: 40px; }
/* 内页区块标题组规格（对照画布节点 3:387 / 3:407）：标题 32 SemiBold、引言 15/22。
   首页规格为 40 Bold / 17-32。两套不可混用 —— 01 页曾因漏配此条，每区多出 20px。
   作用域限定在 .sec__head 内：CTA 的标题是 .sec--cta 的直接子元素（38 Bold 白），不受影响。 */
.page--inner .sec__head .sec__title { font-size: 32px; font-weight: 600; }
.page--inner .sec__head .sec__lead  { font-size: 15px; line-height: 22px; }

/* 7.7 页尾流转 */
.pager { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.pager a { font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--green); transition: color .15s ease; }
.pager a:hover { color: var(--green-deep); }
/* 单个链接的页尾流转 —— 按**画布**定位（两页的意图不同，必须分开处理）：
      · 01 页（3:432）只有「下一篇：研究方法 →」，画布上**靠右** ⇒ 沿用上面的 .pager__next{margin-left:auto}；
      · 05 页（8:37）只有「← 上一篇：国外优秀企业」，画布上**居中**（x=640–799，中点 719.5 = 版心中心）
        ⇒ 下面这条用 `:only-child:not(.pager__next)` 精确命中它。
   ⚠️ 别图省事写成无条件的 `:only-child { margin: 0 auto }` —— 那会把 01 页那个也变居中（画布是靠右）。
   本条曾作为「已知未决」登记在 align_audit.py；2026-10-06 客户裁定「居中（跟画布）」后实施，登记条目已删。 */
.pager > a:only-child:not(.pager__next) { margin-left: auto; margin-right: auto; }
/* 01 页单个「下一篇」靠右（画布 3:432 x=1187–1318）。⚠️ 这条**本来就在**，2026-10-06 我加上面那条时
   用"替换"而不是"追加"，把它误删了 —— 被 A6 当场抓到（01 页 y≈1948 从 x=1188 变成 x=120）。
   教训：改 CSS 时"替换某行"与"在某行后追加"必须分清；判据比眼睛可靠。 */
.pager__next { margin-left: auto; }

/* 7.8 登录表单（06）
   ⚠️ 2026-10-19：随 /login/ 复站恢复（2026-10-15 曾整段删除）。
   画布基准：字段标签 10:87 / 10:92 为**三级灰**（不是 --ink-2），与 .case__meta /
   .hdr__sub / .rubric__foot 同档；--ink-3 已于 2026-10-07 按客户批准改为 #65776F（AA ✓）。 */
.field { display: flex; flex-direction: column; gap: 8px; }
.field__label { font-size: 13px; line-height: 1.4; color: var(--ink-3); }
.field__row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
/* ⚠️ 热区：「忘记密码」是**行内小字链接**（52×19 / 500 档 52×18），低于 24×24 触控下限。
   用**绝对定位 ::after** 上下各扩 4px（→27 / 26）。必须 absolute：`.field__row` 是 flex，
   任何实体 padding/margin 都会把表单推高、破登录页 1019 基线。审判据读的是 ::after 的
   computed top/bottom（visual_audit.py effHit），不是探针。 */
.field__hint { position: relative; font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--green); }
.field__hint::after { content: ""; position: absolute; top: -4px; bottom: -4px; left: -4px; right: -4px; }
.input {
  width: 100%; height: 48px; padding: 0 16px;
  border: 1px solid var(--line); border-radius: var(--r-ctl); background: var(--white);
  font-size: 15px; color: var(--ink);
}
.input::placeholder { color: var(--ph); }
.input:focus { border-color: var(--green); outline: none; box-shadow: 0 0 0 3px rgba(45, 106, 79, .12); }
/* 7.9 内页区标题组下留白（画布逐区实测，勿统一）
   透镜定义 36 ｜ 指标手册 44 ｜ 评价口径 40 ｜ 方法边界 40 */
.sec--lens .sec__head, .sec--manual .sec__head,
.sec--rubric .sec__head, .sec--bounds .sec__head { gap: 14px; }
.sec--lens   .sec__head { padding-bottom: 36px; }
.sec--manual .sec__head { padding-bottom: 44px; }
.sec--rubric .sec__head { padding-bottom: 40px; }
.sec--bounds .sec__head { padding-bottom: 40px; }

/* 浅底透镜卡（02 页）—— 与首页深底 .lens__card 同一结构，底色与字号随区底翻转
   画布 3:273 / 3:278：底 #F7FAF8 ＋ 1px #DCE6E0｜标签 #2D6A4F｜标题 22 Serif SemiBold */
.sec--lens .lens { gap: 24px; }
/* 内页透镜卡内距与首页深色版不同：画布 3:273 = 269 = 32 + (17+16+32+16+20+16+88) + 32
   描边用 inset box-shadow，理由见 §7.11 */
.sec--lens .lens__card { padding: 32px; gap: 16px; background: var(--bg-soft); box-shadow: inset 0 0 0 1px var(--line); }
.sec--lens .lens__tag  { color: var(--green); }
.sec--lens .lens__title { font-size: 22px; color: var(--ink); }
.sec--lens .lens__desc { color: var(--ink-2); }
.sec--lens .lens__list { color: var(--ink); }

/* 7.10 指标手册（02）—— 桌面 8 行全展开（画布 3:287，高 1118）；
   移动端转手风琴，初始态 B1 = 8 行全部收起（画布 10:195，688）。 */
.manual {
  display: flex; flex-direction: column;
  padding: 10px 0; border-radius: var(--r-card); background: var(--white);
}
.manual__row { display: flex; gap: 40px; padding: 24px 32px; position: relative; }
/* 8 行之间的分隔线 —— 画布原本没有，导致 900px 宽的白卡里 8 条定义横向无法追踪行首。
   ⚠️ 用绝对定位的 ::before 而不是 border-top：border 会让每行 +1px，8 行就是 +8px，
      直接打破「整页总高 = 画布」（3:287 = 1118）。::before 零布局占用 ✓
   ⚠️ 左右各让 32px，与行内文字的左右边界对齐；移动端已有 border-top，这里要关掉。 */
.manual__row + .manual__row::before {
  content: ""; position: absolute; left: 32px; right: 32px; top: 0; height: 1px;
  background: var(--line);
}
.manual__head {
  flex: none; width: 220px; display: flex; flex-direction: column; gap: 12px;
  padding: 0; text-align: left; cursor: default;
}
.manual__name { display: flex; flex-direction: column; gap: 12px; }
.manual__no { font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--gold); }
.manual__label { font-size: 16px; font-weight: 500; line-height: 1.4; color: var(--ink); }
.manual__def { flex: 1; min-width: 0; font-size: 14px; line-height: 1.6; color: var(--ink-2); }
.manual__chev { display: none; }

/* 7.11 口径对照（02 区-评价口径）—— 卡 588、padding 32、间距 14、1px #DCE6E0
   ⚠️ 描边一律用 inset box-shadow：画布 stroke 不占布局（3:317 = 144 = 32+80+32），
      CSS border 会把卡与外框各撑大 1px，两列卡即多出 2px。全站浅底描边卡同此。 */
.rubric { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; padding-bottom: 20px; }
.rubric__card {
  display: flex; flex-direction: column; gap: 14px; padding: 32px;
  border-radius: var(--r-card); background: var(--bg-soft);
  box-shadow: inset 0 0 0 1px var(--line);
}
.rubric__name { font-size: 18px; font-weight: 500; line-height: 1.4; color: var(--ink); }
.rubric__desc { font-size: 14px; line-height: 1.6; color: var(--ink-2); max-width: 524px; }
.rubric__foot { font-size: 13px; line-height: 1.4; color: var(--ink-3); }

/* 7.12 浅底四宫格卡（02 方法边界专用；无描边，坐在 --bg-soft-2 上）
   ⚠️ 04 阅读提醒 / 05 归纳边界的四宫格用的是 §7.15 的 .quad——它们 padding 24 / gap 12
      且画布带描边，与 .limit 的 28/32 · gap 10 不是同一件东西，不可混用 */
.limit--light { background: var(--white); }
.limit--light .limit__title { color: var(--ink); }
.limit--light .limit__text  { color: var(--ink-2); }
/* 白底变体的编号回到浅底金（原写「切不可给 .limit--light 单开一套」是针对**字号行高**——
   那一条仍然成立；这里单开的是**颜色**，因为同一个金在两种底上不可能都达标）。 */
.limit--light .limit__no    { color: var(--gold); }

/* ══════════════════════════════════════════════════════════════════════════
   7.14–7.18 内页新区块（03 / 04 / 05 / 06）
   ══════════════════════════════════════════════════════════════════════════ */

/* 7.14 内页案例卡（03 / 04「区-样本清单」）
   画布 3:518 = 209 = 28 + (24 + 30 + 19 + 20 + 20 + 4×10) + 28
   五段式：编号胶囊 · 企业名 · 行业地域 · 商业模式 · 企业文化。严禁出现股票代码。
   底色随区底翻转：03 浅底（.sec--soft）→ 白卡｜04 白底 → 浅卡（.case--soft） */
.sec--cases { padding: 84px var(--px-sec) 88px; gap: 0; }
.cases { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.case {
  display: flex; flex-direction: column; gap: 10px;
  padding: 28px 32px; border-radius: var(--r-card); background: var(--white);
  box-shadow: inset 0 0 0 1px var(--line);
}
.case--soft { background: var(--bg-soft); }          /* 04：白底 → 浅卡 */
.case__no {
  align-self: flex-start; padding: 4px 10px; border-radius: 99px;
  background: var(--pill); font-size: 11px; font-weight: 500; line-height: 16px; color: var(--green);
}
.case__name { font-family: var(--f-serif); font-weight: 600; font-size: 21px; line-height: 1.4; color: var(--ink); }
.case__meta { font-size: 13px; line-height: 1.4; color: var(--ink-3); }
/* 案例卡「标签 / 内容」两栏（03 / 04）
   原写法把「商业模式 / …」塞进一段文本、用斜杠当分隔符：内容起点随标签字数漂移，
   四张卡横向没法逐行对照 —— 恰好背离本页「用同一套尺度摊开看」的立意。
   现改为定宽 gutter：标签 56px（4 字 × 14px）+ gap 12。
   ⚠️ 标签列必须定宽，不能 flex:auto —— 一自适应，四张卡的内容起点又会错位。
   ⚠️ 标签与内容同为 20px 行高 ⇒ 卡高不变（画布 3:518 = 209）。 */
.case__kv { display: flex; gap: 16px; }
.case__k  { flex: none; width: 56px; font-size: 14px; line-height: 20px; color: var(--ink-3); }
.case__v  { flex: 1; min-width: 0; font-size: 14px; line-height: 20px; color: var(--ink-2); }

/* 7.15 四宫格说明卡（03 选择说明 / 04 阅读提醒 / 05 归纳边界）
   画布 3:556 = 150 = 24 + (17 + 23 + 38 + 2×12) + 24；卡高由最长文本决定，栅格自动等高 */
.quads { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.quad {
  display: flex; flex-direction: column; gap: 12px;
  padding: 24px; border-radius: var(--r-card); background: var(--bg-soft);
  box-shadow: inset 0 0 0 1px var(--line);
}
.quad--white { background: var(--white); }
.quad__no { font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--gold); }
.quad__name { font-size: 16px; font-weight: 500; line-height: 1.4; color: var(--ink); }
.quad__text { font-size: 13px; line-height: 1.4; color: var(--ink-2); }

/* 7.16 深区边界区（03「区-这四家的边界」）
   复用 .limits / .limit —— 默认 .limit 就是深区卡（#1D3527 无描边），
   标题白、说明走深底正文第二档 #B8D4C5（画布 8:332/336/341/345 实测，
   ⚠️ 不是标签层 #7DBA9B）。
   卡 8:329 = 156 = 28 + (17 + 10 + 23 + 10 + 40) + 28；
   行 8:328 高固定 158，比卡内容多 2px，是设计师留的松量，勿并掉。 */
.sec--bounds-dark { padding: 84px var(--px-sec) 88px; gap: 0; background: var(--dark); }
.sec--bounds-dark .sec__title { color: var(--on-dark); }
.sec--bounds-dark .sec__lead  { color: var(--on-dark-2); }
.sec--bounds-dark .limits__row { min-height: 158px; align-items: start; }

/* 7.17 取舍证据链（05「区-取舍证据」，深绿）
   组 = 组标签 19 + 16 + 行 163 = 198；链 = 198×3 + 44×2 = 682
   卡 8:153 = 163 = 28 + (23 + 17 + 20 + 17 + 3×10) + 28；四段式
   深底文字分三档（画布实测）：作用面名 #FFFFFF｜放弃句 #B8D4C5｜
   企业名 · 组标签 · 取舍说明 #7DBA9B */
.sec--pick { padding: 84px var(--px-sec) 88px; gap: 0; background: var(--dark); }
.sec--pick .sec__title { color: var(--on-dark); }
.sec--pick .sec__lead  { color: var(--on-dark-2); }
.pick { display: flex; flex-direction: column; gap: 44px; }
.pick__group { display: flex; flex-direction: column; gap: 16px; }
.pick__label { font-size: 13px; font-weight: 500; line-height: 1.4; color: var(--on-dark-3); }
.pick__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.pick__card {
  display: flex; flex-direction: column; gap: 10px;
  padding: 28px 32px; border-radius: var(--r-card); background: var(--dark-card);
}
.pick__face { font-family: var(--f-serif); font-weight: 600; font-size: 16px; line-height: 1.4; color: var(--on-dark); }
.pick__co   { font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--on-dark-3); }
.pick__give { font-size: 14px; font-weight: 500; line-height: 1.4; color: var(--on-dark-2); }
.pick__note { font-size: 12px; line-height: 1.4; color: var(--on-dark-3); }
/* 注卡 9:1 —— 「对资本的取舍」只有两家企业（一面两向），第三格没有数据点。
   2026-10-19：原先裸文字直接落在深底上，同一行两卡一注，栅格看上去是「破了个洞」。
   现补成**明示为注记**的第三格：虚线描边 + 极淡底色 + 小标签，占位与两卡等宽，
   读者一眼能分辨「这是注解，不是第三家企业」。
   ⚠️ 描边用 outline（不占布局），不用 border（会让本格 +2px 并可能顶高整行）；
      虚线而非实线，是因为它不是卡片而是注解。
   ⚠️ 注文 9:2 = #B8D4C5（第二档），勿降为标签层色。 */
.pick__aside {
  display: flex; flex-direction: column; gap: 8px; padding: 28px 32px;
  background: rgba(255, 255, 255, .02);
  outline: 1px dashed rgba(125, 186, 155, .38); outline-offset: -1px;
  border-radius: var(--r-card);
}
.pick__aside-tag { font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--on-dark-3); }
.pick__aside p { font-size: 14px; line-height: 1.4; color: var(--on-dark-2); }

/* 7.18 观察边界正文段（05）—— 画布显式行高 30，非 AUTO */
.observe { display: flex; flex-direction: column; gap: 18px; }
.observe p { font-size: 15px; line-height: 30px; color: var(--ink-2); max-width: 1000px; }

/* 7.19 登录区（06）—— 左品牌栏 560 深色 + 右表单栏 880 白，整块固定 560
   ⚠️ 2026-10-19：整段随 /login/ 复站恢复（2026-10-15 曾随页面下架删除）。
   本次复站**不恢复** Header 右侧的「会员登录」按钮 —— 客户 2026-10-19 的口径是
   「入口只放在页脚『联系我们』列表里、位于『与我们交流』上方」，故登录页自身的
   页头与其余 6 页一致（无按钮），会员登录只以页脚一处出现。 */
.login { display: flex; min-height: 560px; }
.login__brand {
  flex: none; width: 560px; padding: 72px 64px;
  display: flex; flex-direction: column; justify-content: space-between; gap: 24px;
  background: var(--dark);
}
.login__pitch { display: flex; flex-direction: column; gap: 28px; width: 432px; max-width: 100%; }
.login__tag { font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--on-dark-3); }
.login__claim { font-family: var(--f-serif); font-weight: 700; font-size: 38px; line-height: 1.4; color: var(--on-dark); }
.login__desc { font-size: 15px; line-height: 26px; color: var(--on-dark-2); }
.login__perks { display: flex; flex-direction: column; gap: 16px; }
.login__perk { display: flex; gap: 14px; }
.login__perk-no { flex: none; font-size: 12px; font-weight: 500; line-height: 1.4; color: var(--on-dark-3); }
.login__perk-text { font-size: 14px; line-height: 1.4; color: var(--on-dark-2); }
/* 2026-10-21：底部「logo + 乐财」署名行已整块取消，改为一行欢迎语（画布 19:9）。
   原样式的理由链：
   · .login__foot 是「logo + wordmark」的署名块，但它在这个深绿栏里是唯一彩色元素，
     比标题还抢；画布上已换成欢迎语，代码这次同步删除。
   · 字号行高沿用 .login__desc（15/26），颜色比 desc 的 --on-dark-2 亮一档：
     底部只剩这一行，按原色会显得"散"。 */
.login__greet { font-size: 15px; line-height: 26px; color: var(--cta-desc); }
/* ⚠️ 2026-10-24：原为硬编码 #CBDED3，与 --cta-desc #CADFD4 **逐通道差 1/1/1**（1/255，任何屏幕都分辨不出），
   而语义同为「深底上的浅色辅助说明文字」⇒ 合并进 token，白名单少一个例外。
   原注释写的「比 --on-dark-2 亮一档」这个意图仍然成立：--cta-desc #CADFD4 也确实比 #B8D4C5 亮。 */
.login__panel { flex: 1; min-width: 0; display: flex; align-items: center; justify-content: center; background: var(--white); }
/* 表单 = 440 = 74 + 28 + 170 + 28 + 48 + 28 + 19 + 28 + 17（画布 10:81） */
.login__form { display: flex; flex-direction: column; gap: 28px; width: 400px; max-width: 100%; }
.login__fields { display: flex; flex-direction: column; gap: 20px; }
.login__head { display: flex; flex-direction: column; gap: 10px; }
.login__title { font-family: var(--f-serif); font-weight: 600; font-size: 28px; line-height: 1.4; color: var(--ink); }
.login__sub { font-size: 14px; line-height: 24px; color: var(--ink-2); }
.login__submit {
  display: flex; align-items: center; justify-content: center;
  width: 400px; height: 48px; border-radius: var(--r-ctl);
  background: var(--green); color: var(--on-dark); font-size: 15px; font-weight: 500; line-height: 1.4;
  transition: background .15s ease;
}
.login__submit:hover { background: var(--green-deep); }
.login__aux { display: flex; align-items: center; gap: 6px; font-size: 13px; line-height: 1.4; color: var(--ink-3); }
.login__aux a { font-weight: 500; color: var(--green); }
/* 合规小字：画布 10:101 原用 #8FA79A（Footer 深底专属档，落白底仅 2.57:1）——
   按「同一语义档在浅底上的对应色」用三级灰 --ink-3（4.50–4.70:1 ✓）。 */
.login__fine { font-size: 12px; line-height: 1.4; color: var(--ink-3); }
/* 提交反馈 —— 默认 hidden，**不占任何布局高度**。
   ⚠️ hidden 是硬要求，不是风格选择：`.login__form` 是
   `display:flex; flex-direction:column; gap:28px`，任何常驻子级都会额外贡献
   一个 28px 的 gap —— 登录页总高与 form 高度是画布基准，一改就破 0.00%。
   文案写在 login/index.html 里，JS 只切 hidden（原因见该处注释）。 */
.login__msg {
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: var(--r-ctl);
  background: var(--bg-soft-2);
  color: var(--ink-2);
  font-size: 13px;
  line-height: 1.5;
}
.login__msg[hidden] { display: none; }
/* ══════════════════════════════════════════════════════════════════════════
   7.20 内页区块外壳（03 / 04 / 05）
   ──────────────────────────────────────────────────────────────────────────
   画布逐区实测（capture_layout）：正文区一律 padding 84/88、gap 0；
   标题组 gap 14 + 下留 40（首页区是 16，两者不可混）。
   底色用「通用修饰类」表达，与 .sec--soft 同一套路：
     .sec--soft → #F7FAF8    .sec--tint → #EFF5F1    缺省 → #FFFFFF
   ══════════════════════════════════════════════════════════════════════════ */
.sec--tint { background: var(--bg-soft-2); }

/* 03 / 04 样本清单（案例卡）｜03 选择说明 · 04 阅读提醒 · 05 归纳边界（四宫格）
   05 观察边界（正文段）。区标题组一律 gap 14 + 下留 40。 */
.sec--cases, .sec--quads, .sec--observe {
  padding: 84px var(--px-sec) 88px; gap: 0;
}
.sec--cases .sec__head, .sec--quads .sec__head, .sec--observe .sec__head,
.sec--bounds-dark .sec__head, .sec--pick .sec__head { gap: 14px; padding-bottom: 40px; }

/* ══════════════════════════════════════════════════════════════════════════
   7.13 画布行高精修（仅桌面 ≥1200，移动端不受影响）
   ──────────────────────────────────────────────────────────────────────────
   画布 AUTO 行高 = round(字号 × 1.4375)。依据：Noto Serif SC / Noto Sans SC
   的 hhea 度量 (ascender 1151 + descender 286) / upem 1000 = 1.437。
   画布逐节点实测（capture_layout）：
     48→69   3:266 页面标题      38→55   8:246 CTA 标题
     32→46   3:270 区标题        28→44   §主法则（画布显式值，非 AUTO）
     22→32   3:275 透镜标题      18→26   3:318 口径名
     16→23   3:267 页首引言      15→22   3:271 区引言
     14→20   3:276 透镜说明      13→19   3:265 编号行
     12→17   3:274 透镜标签
   凡本区未列的既有取值一律不动（首页 40 Bold / 17-32 已验收，勿混）。
   ══════════════════════════════════════════════════════════════════════════ */
@media (min-width: 1200px) {
  /* 页首区 3:262 = 363 = 64/80 + 面包屑17 + (28 + 19 + 20 + 69 + 20 + 46) */
  .sec--head .tag                     { line-height: 19px; }
  .page-title                         { line-height: 69px; }
  .page-lead                          { line-height: 23px; }

  /* ── 首页区块行高精修（2026-10-05 全站收口）────────────────────────────
     首页原差 −6px，逐块下钻后只有三类来源，全部按画布 AUTO 落值：
       ① 区标题组 = 编号行 19 + 16 + 标题 57（40px 的 AUTO 值）
       ② .sample / .evi 的 border 占布局 → 已改 inset box-shadow
       ③ 下列文字行高未按 AUTO 值写
     ⚠️ 必须排在内页规则之前：同优先级下后者优先，而内页标题组是 46。 */
  .sec__title { line-height: 57px; }              /* 40 × 1.437 = 57.48 → 57 */

  /* 缘起要点 3:65 = 120 = 18 + 12 + 26 + 12 + 52
     ⚠️ 编号是 Inter —— Inter 的 AUTO 比是 1.21（hhea (1984+494)/2048），
        不是 Noto 的 1.437。15 × 1.21 = 18.15 → 18，写 1.4 会得 21，多 3px。 */
  .point__no    { line-height: 18px; }
  .point__title { line-height: 26px; }

  /* 样本卡 3:100 = 103 = 26 + 24 + 8 + 19 + 26 */
  .sample__name { line-height: 24px; }
  .sample__give { line-height: 19px; }

  /* 证据卡 8:6 = 85 = 20 + 20 + 6 + 19 + 20；两行 + 16 = 186 */
  .evi__name    { line-height: 20px; }
  .evi__give    { line-height: 19px; }

  /* 成果卡 3:169 = 167 = 26 + 17 + 10 + 26 + 10 + 52 + 26 */
  .card__status { line-height: 17px; }
  .card__title  { line-height: 26px; }

  /* 首页双透镜卡 3:84 = 310 = 34 + 17 + 14 + 37 + 14 + 26 + 14 + 120 + 34
     （02 页的 .sec--lens 另有一套 22px 标题，见上） */
  .sec--method .lens__tag   { line-height: 17px; }
  .sec--method .lens__title { line-height: 37px; }

  /* 内页区标题组 32 SemiBold → 46（01 页 3:387 / 3:407 同为 122） */
  .page--inner .sec__head .sec__title { line-height: 46px; }

  /* 02 页 透镜卡 3:273 = 269 */
  .sec--lens .lens__title { line-height: 32px; }
  .sec--lens .lens__desc  { line-height: 20px; }
  .sec--lens .lens__list  { line-height: 22px; }

  /* ── 2026-10-05 收口：小数尾差（整数取整掩盖的真差）────────────────────
     以下 5 条修的都是「整数总差 0 或 ±1，但小数上确有偏差」的项。它们单看
     每项都不到 1px，取整后互相抵消，所以必须用 h(exact) 才能看见。 */
  /* 首页眉标 3:20 = 19（13 × 1.4375 = 18.69 → 19；写 1.4 只有 18.2） */
  .hero__eyebrow span { line-height: 19px; }

  /* 首页入口卡 3:28 = 190 = 30 + 17 + 12 + 33 + 12 + 25 + 12 + 19 + 30
     ⚠️ 编号 12px 是 Noto Sans（AUTO 17.25→17）；标题 23px Serif（33.06→33） */
  .entry__tag   { line-height: 17px; }
  .entry__title { line-height: 33px; }
  .entry__more  { line-height: 19px; }

  /* 声明条（全站 7 处）3:189 = 72 = 26 + 20 + 26
     ⚠️ 14px 的 AUTO 是 20.125→20；写 1.4 得 19.6，全站每页固定少 0.41px —— 
        这正是内页「探针全 0 但总高 −1」的真身。 */
  .note__text { line-height: 20px; }

  /* 02 页 透镜卡标签 3:273 = 269 = 32 + (17+16+32+16+20+16+88) + 32 */
  .sec--lens .lens__tag { line-height: 17px; }

  /* 01 页 论点行 3:391 = 132 = 32/32 + (32 + 14 + 22)
     22px Serif（31.625→32）｜ 15px Sans（21.5625→22） */
  .arg__title { line-height: 32px; }
  .arg__text  { line-height: 22px; }

  /* 01 页 落点区 3:429 = 219 = 72/72 + (37 + 16 + 22)
     26px Serif（37.375→37）｜ 15px Sans（21.5625→22）—— 原写 1.4/1.6 共多 1.4px */
  .closing__title { line-height: 37px; }
  .closing__text  { line-height: 22px; }

  /* 02 页 指标行 3:288 = 100 = 24 + (17 + 12 + 23) + 24 */
  .manual__no    { line-height: 17px; }
  .manual__label { line-height: 23px; }
  .manual__def   { line-height: 20px; }

  /* 02 页 口径卡 3:317 = 144 = 32 + (26 + 14 + 40) + 32 ｜ 注脚 3:323 = 19 */
  .rubric__name { line-height: 26px; }
  .rubric__desc { line-height: 20px; }
  .rubric__foot { line-height: 19px; }

  /* CTA 8:245 = 383 = 96 + 55 + 28 + 30 + 28 + 50 + 96（说明 30 为画布显式值） */
  .sec--cta .sec__title { line-height: 55px; }
  .btn                  { line-height: 22px; }

  /* Footer 3:351 = 310 = 64 + 147 + 44 + 19 + 36（列高 = 19 + 12 + 4×20 + 3×12） */
  .ftr__sub, .ftr__domain, .ftr__coltitle, .ftr__copy, .ftr__legal span, .ftr__beian { line-height: 19px; }
  .ftr__link { line-height: 20px; }

  /* 面包屑 17 ｜ 页尾流转行 20（画布 3:572 = 76 = 28 + 20 + 28） */
  .crumbs  { line-height: 17px; }
  .pager a { line-height: 20px; }

  /* 01 / 02 / 03 边界卡 —— 画布实测：
       02 3:330 = 136，说明单行 20   03 8:329 = 156，说明两行 40
     两个数只差一行，说明字号行高完全相同，切不可给 .limit--light 单开一套。 */
  .limit__no    { line-height: 17px; }
  .limit__title { line-height: 23px; }
  .limit__text  { line-height: 20px; }   /* 14 × 1.4375 = 20.125 → 20 */

  /* 03 / 04 案例卡 3:518 = 209 = 28 + (24+30+19+20+20 + 4×10) + 28
     ⚠️ 两栏后每行仍是「标签 20 + 内容 20」同高，故上面的算式不变 */
  .case__name { line-height: 30px; }     /* 21 × 1.4375 = 30.19 → 30 */
  .case__meta { line-height: 19px; }
  .case__k, .case__v { line-height: 20px; }

  /* 03 / 04 / 05 四宫格 3:556 = 150（13px 说明两行 = 38）；05 最长卡三行 = 57 → 169 */
  .quad__no   { line-height: 17px; }
  .quad__name { line-height: 23px; }
  .quad__text { line-height: 19px; }

  /* 05 取舍卡 8:153 = 163 = 28 + (23+17+20+17 + 3×10) + 28 */
  .pick__label   { line-height: 19px; }
  .pick__face    { line-height: 23px; }
  .pick__co      { line-height: 17px; }
  .pick__give    { line-height: 20px; }
  .pick__note    { line-height: 17px; }
  /* 注卡标签与两卡 .pick__face 同为 23px 行盒 ⇒ 三格首行齐平（卡片 3:153 也走 23px） */
  .pick__aside-tag { line-height: 23px; }
  .pick__aside p { line-height: 20px; }

  /* 06 登录区 —— 品牌栏上组 = 17+28+55+28+52+28+92｜表单 = 440（画布逐节点实测） */
  .login__tag       { line-height: 17px; }
  .login__claim     { line-height: 55px; }   /* 38 × 1.4375 = 54.6 → 55 */
  /* ⚠️ 2026-10-24 删除 .login__brandname：全 CSS 只剩这一条媒体查询补丁，基类早已不存在（孤儿）。 */
  .login__perk-text { line-height: 20px; }
  .login__title     { line-height: 40px; }   /* 28 × 1.4375 = 40.25 → 40 */
  .login__aux       { line-height: 19px; }
  .login__fine      { line-height: 17px; }
  .field__label, .field__hint { line-height: 19px; }
}

/* -------------------------------------------------------- 8. 响应式 */
/* md 平板 768–1199：栅格降级、间距压缩 */
@media (max-width: 1199px) {
  :root { --px-sec: 48px; --px-hdr: 48px; }

  .hdr__nav { gap: 20px; }
  .hdr__nav a { font-size: 13px; }

  .hero__deco { width: 320px; height: 204px; top: 170px; }
  .hero__title { font-size: 46px; line-height: 1.3; }
  .hero__sub { font-size: 22px; line-height: 1.5; }

  .points { gap: 28px; }
  .samples { grid-template-columns: repeat(2, 1fr); }
  .evidence__row { grid-template-columns: repeat(2, 1fr); }
  .cards { grid-template-columns: repeat(2, 1fr); }

  .sec__title { font-size: 34px; }
  /* 内页区块标题保持比首页小一号，避免断点切换时字号倒挂（内页 32 → md 应为 28） */
  .page--inner .sec__head .sec__title { font-size: 28px; }
  .maxim__text { font-size: 24px; line-height: 1.6; }

  /* 内页新组件：标题组下留白略收，透镜卡仍两列 */
  .sec--lens .sec__head, .sec--bounds .sec__head { padding-bottom: 32px; }
  .sec--manual .sec__head, .sec--rubric .sec__head { padding-bottom: 36px; }
  .sec--cases .sec__head, .sec--quads .sec__head, .sec--observe .sec__head,
  .sec--bounds-dark .sec__head, .sec--pick .sec__head { padding-bottom: 32px; }
  .sec--lens .lens__title { font-size: 21px; }

  /* 03 / 04 / 05：四宫格降两列，案例卡仍两列（卡内两段文字仍需并排可读） */
  .quads { grid-template-columns: repeat(2, 1fr); }

  .ftr__links { gap: 48px; }
}

@media (max-width: 900px) {
  :root { --px-sec: 32px; --px-hdr: 32px; }

  /* 06 登录区：880 的表单栏已装不下 400 宽的表单，提前改上下堆叠 */
  .login { flex-direction: column; min-height: 0; }
  .login__brand { width: auto; padding: 56px var(--px-sec); gap: 40px; }
  .login__pitch { width: auto; }
  .login__panel { padding: 56px var(--px-sec); }
}

/* sm 手机 <768：单列堆叠、字号上浮、导航转抽屉 */
@media (max-width: 767px) {
  :root { --px-sec: 20px; --px-hdr: 20px; }

  /* 字号档上浮 —— 移动端正文字号要升，不是照搬 14px */
  body { font-size: 16px; }

  /* 导航收进抽屉 */
  .hdr__nav { display: none; }
  .hdr__burger { display: block; }
  .hdr { height: 56px; }

  /* 区块 */
  .sec { padding: 56px var(--px-sec); gap: 32px; }
  .sec--hero { padding: 56px var(--px-sec) 48px; gap: 20px; }
  .sec--head { padding: 36px var(--px-sec) 44px; }
  .sec--args, .sec--limits { padding: 48px var(--px-sec) 52px; }
  .sec--closing { padding: 40px var(--px-sec); }
  .sec--note { padding: 20px var(--px-sec); align-items: flex-start; }
  .sec--pager { padding: 20px var(--px-sec); }

  .sec__title { font-size: 30px; }
  .sec__lead { font-size: 17px; line-height: 29px; }
  /* 内页区块标题组在移动端同样保持小一档，并与内页正文一起上浮 */
  .page--inner .sec__head .sec__title { font-size: 26px; }
  .page--inner .sec__head .sec__lead { font-size: 16px; line-height: 28px; }
  .tag { font-size: 13px; }
  .page-title { font-size: 30px; }
  .page-lead { font-size: 17px; line-height: 29px; }

  /* Hero：装饰隐藏，文字全宽，行高改相对值 */
  .hero__deco { display: none; }
  .hero__title { font-size: 34px; line-height: 1.4; }
  .hero__sub { font-size: 20px; line-height: 1.5; }
  .hero__lead { font-size: 17px; line-height: 29px; }
  .hero__entries { grid-template-columns: 1fr; gap: 16px; }
  .entry { padding: 24px 22px; }
  .entry__title { font-size: 21px; }
  .entry__desc { font-size: 16px; line-height: 27px; }

  /* 全部栅格转单列 */
  .points, .lens, .samples, .cards, .limits__row { grid-template-columns: 1fr; gap: 20px; }
  .evidence__row { grid-template-columns: 1fr; gap: 12px; }
  .points { gap: 28px; }
  .lens { gap: 16px; }

  .point__desc, .card__desc, .lens__desc, .sec--cta .sec__lead { font-size: 16px; line-height: 27px; }
  .point__title { font-size: 20px; }
  .lens__title { font-size: 24px; }
  .lens__card { padding: 26px 22px; }
  .lens__list { font-size: 16px; line-height: 30px; }
  .sample { padding: 22px 20px; }
  .sample__name { font-size: 19px; }
  .sample__give { font-size: 15px; }
  .card { padding: 24px 22px; }
  .evi { padding: 18px; }
  .evi__name { font-size: 16px; }
  .evi__give { font-size: 15px; }

  .maxim__text { font-size: 22px; line-height: 1.6; }

  /* 内页 */
  .arg { flex-direction: column; gap: 12px; padding: 24px 0; }
  .arg__no { width: auto; }
  .arg__title { font-size: 20px; }
  .arg__text { font-size: 16px; line-height: 1.7; }
  .limit { padding: 24px 22px; }
  .limit__title { font-size: 17px; }
  .limit__text { font-size: 16px; line-height: 1.7; }
  .closing__title { font-size: 24px; }
  .closing__text { font-size: 16px; line-height: 1.7; }

  /* 内页新组件（02 / 03 / 04 / 05） */
  .sec--lens .sec__head, .sec--manual .sec__head,
  .sec--rubric .sec__head, .sec--bounds .sec__head { padding-bottom: 28px; }
  .sec--lens .lens__title { font-size: 20px; }

  /* 指标手册 → 手风琴（初始态 B1 = 8 行全部收起，画布 10:195） */
  .manual { padding: 8px 0; }
  .manual__row { flex-direction: column; gap: 8px; padding: 16px; }
  .manual__row + .manual__row { border-top: 1px solid var(--bg-soft-2); }
  /* 移动端用 border-top 就让分隔线贴满卡片，绝不能再叠一条 ::before */
  .manual__row + .manual__row::before { display: none; }
  .manual__head {
    width: 100%; flex-direction: row; align-items: center;
    justify-content: space-between; gap: 10px; cursor: pointer;
  }
  .manual__name { flex-direction: row; align-items: center; gap: 10px; }
  .manual__label { font-size: 17px; }
  .manual__chev { display: block; width: 16px; height: 16px; flex: none; transition: transform .18s ease; }
  .manual__def { display: none; }
  .manual__row[data-open="true"] .manual__def { display: block; font-size: 16px; line-height: 27px; }
  .manual__row[data-open="true"] .manual__chev { transform: rotate(180deg); }

  /* 口径对照 → 单列 */
  .rubric { grid-template-columns: 1fr; gap: 16px; padding-bottom: 16px; }
  .rubric__card { padding: 24px 22px; }
  .rubric__name { font-size: 17px; }
  .rubric__desc { font-size: 16px; line-height: 27px; }

  /* CTA */
  .sec--cta .sec__title { font-size: 28px; }
  .cta__btns { flex-direction: column; align-items: stretch; }
  .btn--primary { width: 100%; }

  /* Footer 单列堆叠 */
  .ftr { padding: 40px var(--px-sec) 28px; gap: 32px; }
  .ftr__top { flex-direction: column; gap: 32px; }
  .ftr__links { flex-direction: column; gap: 28px; }
  .ftr__bottom { flex-direction: column; align-items: flex-start; gap: 12px; }
  .ftr__legal { gap: 16px; flex-wrap: wrap; }

  /* 03 / 04 / 05 内页新区块 → 全部单列 */
  .sec--cases, .sec--quads, .sec--observe,
  .sec--bounds-dark, .sec--pick { padding: 56px var(--px-sec) 60px; }
  .sec--cases .sec__head, .sec--quads .sec__head, .sec--observe .sec__head,
  .sec--bounds-dark .sec__head, .sec--pick .sec__head { padding-bottom: 28px; }
  .cases, .quads, .pick__row { grid-template-columns: 1fr; gap: 16px; }
  .sec--bounds-dark .limits__row { min-height: 0; }

  .case { padding: 24px 22px; }
  .case__name { font-size: 19px; }
  /* 375 宽下标签也放大到 15px ⇒ 4 字需 60px，gutter 跟着从 56 → 60 */
  .case__k { width: 60px; font-size: 15px; line-height: 27px; }
  .case__v { font-size: 15px; line-height: 27px; }

  .quad { padding: 22px 20px; }
  .quad__name { font-size: 17px; }
  .quad__text { font-size: 15px; line-height: 27px; }

  .pick { gap: 32px; }
  .pick__card { padding: 24px 22px; }
  .pick__face { font-size: 18px; }
  .pick__give { font-size: 16px; }
  .pick__note { font-size: 13px; line-height: 27px; }
  .pick__aside { padding: 0 22px; }
  .pick__aside p { font-size: 16px; line-height: 27px; }

  .observe p { font-size: 16px; line-height: 30px; max-width: none; }

  /* 06 登录区 */
  .login__brand { padding: 48px var(--px-sec); gap: 32px; }
  .login__claim { font-size: 30px; line-height: 1.4; }
  .login__perk-text { font-size: 15px; line-height: 27px; }
  .login__panel { padding: 48px var(--px-sec); }
  .login__form, .login__submit { width: 100%; }
  .login__title { font-size: 26px; }
}

/* 减少动效偏好 */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}
