/* fonts.css */
/* 由 scripts/build-fonts.py 生成，不要手改。
 * 字体：MiSans（小米，免费商用）+ Inter（SIL OFL）。
 * 中文按 unicode-range 分块，浏览器只下载页面实际用到的块。
 */
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.cc66f9eab319ae91.0.woff2") format("woff2");unicode-range:U+20,U+2013-2014,U+2018-2019,U+201c-201d,U+2026,U+3001-3002,U+3008-3011,U+3014-3015,U+4e00,U+4e09-4e0b,U+4e0d-4e0e,U+4e1a,U+4e24,U+4e2a,U+4e2d,U+4e3a-4e3b,U+4e48,U+4e4b,U+4e5f,U+4e86,U+4e8b-4e8c,U+4e8e,U+4e9b,U+4ea7,U+4eba,U+4ec0,U+4ece,U+4ed6,U+4ee5,U+4eec,U+4f1a,U+4f46,U+4f53,U+4f5c,U+4f60,U+4f7f,U+5168,U+516c,U+5173,U+5176,U+519b,U+51fa,U+5206,U+5229,U+5230,U+5236,U+524d,U+529b,U+52a0,U+52a8,U+5341,U+53bb,U+53c8,U+53d1,U+53ea,U+53ef,U+5408,U+540c,U+540e,U+5411,U+548c,U+56e0,U+56fd,U+5728,U+5730,U+5916,U+591a,U+5927,U+5929,U+5934,U+5979,U+597d,U+5982,U+5b50,U+5b66,U+5b83,U+5b9a,U+5b9e,U+5bb6,U+5bf9,U+5c06,U+5c0f,U+5c31,U+5de5,U+5df1-5df2,U+5e74,U+5e76,U+5e94,U+5f00,U+5f53,U+5f88,U+5f97,U+5fc3,U+6027,U+60c5,U+60f3,U+610f,U+6210-6211,U+6216,U+6218,U+6240,U+624b,U+628a,U+653f,U+6587,U+65af-65b0,U+65b9,U+65e0,U+65e5,U+65f6,U+660e,U+662f,U+6700,U+6708-6709,U+672c,U+673a,U+6765,U+679c,U+6837,U+6b63-6b64,U+6c11,U+6ca1,U+6cd5,U+70b9,U+7136,U+7269,U+73b0,U+7406,U+751f,U+7528,U+7531,U+7684,U+76f8,U+770b,U+7740,U+77e5,U+79cd,U+7b2c,U+7b49,U+7ecf,U+7f8e,U+8005,U+800c,U+80fd,U+81ea,U+884c,U+88ab,U+897f,U+8981,U+89c1,U+8bdd,U+8bf4,U+8d77,U+8eab,U+8fc7,U+8fd8-8fd9,U+8fdb,U+9053,U+90a3,U+90e8,U+90fd,U+91cc-91cd,U+957f,U+95ee,U+95f4,U+9762,U+9ad8,U+ff01,U+ff08-ff09,U+ff0c,U+ff0e,U+ff1a-ff1b}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.6f83b29225f4adc7.1.woff2") format("woff2");unicode-range:U+4e07,U+4e14,U+4e16,U+4e1c,U+4e49,U+4e66,U+4e89,U+4e94,U+4ea4,U+4eb2,U+4eca,U+4ee3,U+4ef6,U+4efb,U+4f20,U+4f4d,U+4f4f,U+4f55,U+4fbf,U+4fdd,U+4fe1,U+5019,U+505a,U+50cf,U+513f,U+5143,U+5148-5149,U+514b,U+5165,U+5171,U+5185,U+518d,U+51b3,U+51e0,U+5207,U+5219,U+522b,U+529e,U+52a1,U+5316-5317,U+533a,U+5357,U+5373-5374,U+539f,U+53ca,U+53cd,U+53d6-53d8,U+53e3,U+53f8,U+5404,U+540d,U+542c,U+544a,U+5458,U+547d,U+54c1,U+56db,U+56de,U+573a,U+57fa,U+58f0,U+5904,U+592a,U+5973,U+5b89,U+5b8c,U+5bfc,U+5c11,U+5c14,U+5c55,U+5c71,U+5e02,U+5e08,U+5e26,U+5e38,U+5e72-5e73,U+5ea6,U+5efa,U+5f0f,U+5f20,U+5f3a,U+5f62,U+5f80,U+5fb7,U+5fc5,U+5feb,U+601d,U+603b,U+611f,U+624d,U+6253,U+62a5,U+62c9,U+6301,U+6307,U+636e,U+63a5,U+63d0,U+6536,U+6539,U+653e,U+6559,U+6570,U+66f4,U+670d,U+671b,U+671f,U+672f,U+6743,U+6761,U+6781,U+6797,U+6839,U+683c,U+6b21,U+6b65,U+6b7b,U+6bcf,U+6bd4,U+6c14,U+6c34,U+6c42,U+6cbb,U+6d3b,U+6d4e,U+6d77,U+6e05,U+7279,U+738b,U+7535,U+754c,U+767d,U+76ee,U+76f4,U+771f,U+773c,U+786e,U+793e,U+795e,U+79d1,U+7a0b,U+7a7a,U+7acb,U+7b11,U+7ba1,U+7c7b,U+7cfb,U+7ec4,U+7ed3,U+7ed9,U+7edf,U+8001,U+8054,U+81f3,U+8272,U+82f1,U+8868,U+89c2,U+89c4,U+89c9,U+89e3,U+8a00,U+8ba1,U+8ba4,U+8ba9,U+8bae,U+8bb0,U+8bb8,U+8bba,U+8bbe,U+8bc6,U+8be5,U+8c61,U+8d44,U+8d70,U+8def,U+8f66,U+8fb9,U+8fbe,U+8fd0,U+901a,U+9020,U+91cf,U+91d1,U+95e8,U+961f,U+9662,U+96be,U+975e,U+9886,U+9898,U+98ce,U+98de,U+9a6c}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.641b702ff502efcf.2.woff2") format("woff2");unicode-range:U+4e03,U+4e13,U+4e25,U+4e4e,U+4e5d,U+4e9a,U+4eac,U+4ec5,U+4ee4,U+4ef7,U+4f01,U+4f17,U+4f3c,U+4f8b,U+4f9b,U+4f9d,U+515a,U+516b,U+516d,U+5174-5175,U+5177,U+5199,U+519c,U+51b5,U+51c6,U+51fb,U+5212,U+5217,U+529f,U+52bf,U+5305,U+533b,U+534a,U+534e,U+5355,U+5386,U+53c2,U+53e4,U+53e6,U+53eb,U+53f0,U+53f2,U+53f7,U+5403,U+5417,U+5427,U+5462,U+5468,U+54cd,U+5546,U+5668,U+56e2,U+56fe,U+571f,U+578b,U+57ce,U+589e,U+58eb,U+5907,U+590d,U+591f,U+592b,U+5931,U+5947,U+59cb,U+59d4,U+5b57-5b58,U+5b69,U+5b98,U+5bb9,U+5bdf,U+5c3d,U+5c40,U+5df4,U+5e03,U+5e0c,U+5e7f,U+5e95,U+5e9c,U+5f15,U+5f71,U+5f8b,U+5fd7,U+5ff5,U+6001,U+600e,U+606f,U+623f,U+6279,U+627e,U+6280,U+6295,U+62a4,U+63a8,U+652f,U+6548,U+654c,U+6574,U+6599,U+65ad,U+65bd,U+65cf,U+65e9,U+6613,U+661f,U+663e,U+66fe,U+672a,U+674e,U+6784,U+67d0,U+67e5,U+6807,U+6848,U+6b66,U+6bb5,U+6bcd,U+6ce8,U+6d3e,U+6d41,U+6d88,U+6df1,U+6ee1,U+706b,U+7167,U+7231,U+7247,U+7559,U+75c5,U+767e,U+77f3,U+7814,U+793a,U+79bb,U+79f0,U+7a76,U+7a81,U+7ad9,U+7ae0,U+7b54,U+7b97,U+7cbe,U+7d27,U+7ea2,U+7ea6-7ea7,U+7ebf,U+7ec8,U+7edd,U+7eed,U+7ef4,U+7f57,U+7fa4,U+8003,U+81f4,U+8282,U+82b1,U+8425,U+843d,U+867d,U+88c5,U+89c6,U+8bb2,U+8bc1,U+8bed,U+8bf7,U+8c03,U+8c08,U+8d23,U+8d28,U+8d39,U+8d8a,U+8db3,U+8ddf,U+8f6c,U+8f7b,U+8f83,U+8fd1,U+8fdc,U+8fde,U+9009,U+9632,U+963f,U+9645,U+9648,U+9664,U+968f,U+96c6,U+9700,U+9752,U+9769,U+97f3,U+9879,U+987b,U+9996,U+9a8c,U+9ec4,U+9ed1}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.2f4b1f8c059e6a7e.3.woff2") format("woff2");unicode-range:U+4e3e,U+4e45,U+4e50,U+4e60,U+4e70-4e71,U+4e91,U+4ecd,U+4f0a,U+4f24,U+4f4e,U+4f59,U+4f5b,U+4fee,U+5012,U+503c,U+5047,U+505c,U+5145,U+514d,U+5170,U+517b,U+51b2,U+51b7,U+5218,U+521a-521b,U+521d,U+5224,U+523b,U+526f,U+52a9,U+52b3,U+5343,U+534f,U+5360-5361,U+536b,U+5370,U+538b,U+53cb-53cc,U+53e5,U+5426,U+54c8,U+54ea,U+554a,U+5584,U+559c,U+56f4,U+5750,U+575a,U+5883,U+591c,U+5988,U+5a01,U+5b97,U+5ba1-5ba4,U+5bb3,U+5bc6,U+5bcc,U+5c04,U+5c3c,U+5c42,U+5c45,U+5c5e,U+5dde,U+5dee,U+5e1d,U+5e2e,U+5f02,U+5f39,U+5f81,U+5f85,U+5fae,U+6000,U+6015,U+6025,U+60a8,U+60ca,U+613f,U+6267,U+627f,U+6297,U+62c5,U+62ff,U+6309,U+6325,U+6392,U+653b,U+6545,U+6597,U+65e2,U+665a,U+666e,U+671d,U+6728,U+6740,U+6751,U+6811,U+6821,U+68c0,U+6a21,U+6b22,U+6b62,U+6bdb,U+6c49,U+6c5f,U+6c89,U+6cb3,U+6ce2,U+6d32,U+6e38,U+6e90,U+6f14,U+6fc0,U+7075,U+70ed,U+7236,U+72af,U+72b6,U+72ec,U+7387,U+73af,U+7403,U+751a,U+7537,U+7565,U+7591,U+75db,U+7687,U+76ae,U+76ca,U+7701,U+7834,U+798f,U+79ef,U+7adf,U+7b56,U+7b80,U+7c73,U+7d20,U+7eaa,U+7eb3,U+7ec6-7ec7,U+7ee7,U+7f51,U+7f6a,U+7f6e,U+804c,U+80a1,U+80b2,U+80dc,U+8111,U+8138,U+822c,U+8239,U+82cf,U+82e5-82e6,U+8303,U+836f,U+83b7,U+8840,U+8863,U+89d2,U+8b66,U+8bc9,U+8bd5,U+8bfb,U+8c01,U+8d1f,U+8d22,U+8d85,U+8ff0,U+8ffd,U+9000-9002,U+901f,U+914d,U+91c7,U+94b1,U+94f6,U+9519,U+9633,U+9636,U+9646,U+964d,U+9650,U+9669,U+96f7,U+9759,U+9884,U+98df,U+9f99}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.f6b78976e4e390d7.4.woff2") format("woff2");unicode-range:U+4e34,U+4e3d,U+4e61,U+4e88,U+4e92,U+4ea1,U+4ea6,U+4eae,U+4ecb,U+4ed8,U+4efd,U+4f18,U+4f26,U+4f2f,U+51cf,U+5251,U+5267,U+52d2,U+5347,U+535a,U+5371,U+5382,U+53bf,U+53f3,U+53f6,U+5409,U+542b,U+5438,U+5440,U+5473,U+547c,U+54e5,U+56f0,U+56fa,U+5723,U+5747,U+574f,U+5757,U+57df,U+592e,U+5987,U+59d0,U+5a18,U+5a5a,U+5b88,U+5b9d,U+5bfb,U+5c01,U+5c1a,U+5c4b,U+5c81,U+5c9b,U+5cb8,U+5de6,U+5de8,U+5e2d,U+5e78,U+5e8f,U+5ea7,U+5ead,U+5eb7,U+5f1f,U+5f52,U+5f55,U+5fd9,U+5ffd,U+602a,U+6050,U+6069,U+6076,U+6162,U+6237,U+6258,U+62db,U+62e9,U+62ec,U+635f,U+6362,U+6388-6389,U+638c,U+63a2,U+63a7,U+6447,U+6551,U+6562-6563,U+65c5,U+65e7,U+6625,U+666f,U+667a,U+6697,U+670b,U+6742,U+6750,U+677e-677f,U+67aa,U+67b6,U+6838,U+68a6,U+695a,U+697c,U+6982,U+6b27,U+6b3e,U+6bd2,U+6beb,U+6c38,U+6c99,U+6cb9,U+6cfd,U+6d0b,U+6d4b,U+6e10,U+6e29,U+6e2f,U+6e56,U+6e7e,U+706d,U+70ae,U+70c8,U+70df,U+7248,U+73ed,U+7530,U+753b,U+7597,U+767b,U+76d1,U+775b,U+7761,U+7763,U+77ed,U+793c,U+7968,U+79d8,U+79fb,U+7a0e,U+7a7f,U+7aef,U+7b14,U+7d22,U+7f16,U+7f3a,U+8033,U+80af,U+80cc,U+80e1,U+811a,U+8131,U+822a,U+8230,U+826f,U+827a,U+8349,U+83ab,U+8457,U+85cf,U+8651,U+8865,U+8ba8,U+8bc4,U+8bcd,U+8bd7,U+8bef,U+8bfa,U+8c13,U+8c22,U+8d25,U+8d27,U+8d35,U+8d76,U+8dd1,U+8f93,U+9010,U+9047,U+9057,U+9152,U+91ca,U+91ce,U+949f,U+94c1,U+9500,U+95fb,U+9635,U+9644,U+96e8,U+9732,U+9760,U+987a,U+987e-987f,U+989d,U+996d,U+9999,U+9c7c,U+9c81,U+9c9c}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.dcb9d2ed2e330f96.5.woff2") format("woff2");unicode-range:U+4e01,U+4e1d,U+4e43,U+4ebf,U+4f11,U+4f19,U+4f1f,U+4f38,U+4fb5,U+4fc3-4fc4,U+501f,U+5065,U+5144,U+5178,U+51b0,U+51e1,U+5200,U+5211,U+523a,U+52aa,U+5348,U+5356,U+5377,U+541b,U+5434,U+54f2,U+5510,U+552e-552f,U+559d,U+5634,U+56ed,U+5706,U+5766,U+57c3,U+57f9,U+5802,U+5854,U+585e,U+590f,U+5957,U+5965,U+59bb,U+59c6,U+59d1,U+59d3,U+5b59,U+5b81,U+5b87,U+5b8b,U+5bab,U+5bbd,U+5c0a,U+5c24,U+5ddd,U+5e84,U+5e8a,U+5e93,U+5e97,U+5ef6,U+5f03-5f04,U+5f31,U+5f92,U+5fcd,U+5fd8,U+6012,U+60b2,U+620f,U+6269,U+626c,U+6293,U+6298,U+62b1,U+62b5,U+62cd,U+62e5,U+632f,U+63aa,U+63e1,U+641e,U+6446,U+6469,U+65c1,U+66b4,U+66f2,U+66ff,U+672b,U+6731,U+675f,U+6768,U+6770,U+6790,U+67d3,U+6885,U+68ee,U+690d,U+6b32,U+6b4c,U+6b8b,U+6bc1,U+6bd5,U+6d1b,U+6d1e,U+6df7,U+6f5c,U+706f,U+70b8,U+719f,U+7237-7238,U+7259,U+725b,U+72c2,U+731b,U+7389,U+73a9,U+7532-7533,U+76d6,U+76d8,U+76db,U+76df,U+7840,U+786c,U+7956,U+7981,U+79c0-79c1,U+79cb,U+7a33,U+7a97,U+7ade,U+7b51,U+7bc7,U+7eaf,U+7eb8,U+7ec3,U+7edc,U+7eff,U+7f13,U+7ffb,U+8089,U+81e3,U+821e,U+8363,U+8428,U+8499,U+864e,U+865a,U+8857,U+8bad,U+8bbf,U+8bda,U+8bf8,U+8c0b,U+8c37,U+8d1d,U+8d2d,U+8d38,U+8d5b,U+8d75,U+8da3,U+8df3,U+8f6e-8f6f,U+8f7d,U+8fc5,U+8fce,U+8feb,U+8ff7,U+8ff9,U+9003,U+900f,U+9014,U+904d,U+906d,U+907f,U+90d1,U+9192,U+9488,U+9547,U+95ea,U+9634,U+9690,U+96c4-96c5,U+96ea,U+9707,U+9875-9876,U+9986,U+9aa8,U+9b3c,U+9ea6,U+9ebb,U+9ed8,U+9f13,U+9f50}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.33e04fc845fbb622.6.woff2") format("woff2");unicode-range:U+4e08,U+4e30,U+4e39,U+4e4c,U+4e58,U+4eab,U+4ec1,U+4ed9,U+4eea,U+4ef0,U+4eff,U+4f30,U+4f34,U+4fa0,U+4fa7,U+4fd7,U+503a,U+503e,U+504f,U+5076-5077,U+507f,U+5192,U+520a,U+52b2,U+52c7,U+5385,U+5389,U+539a,U+53ec,U+53f9,U+542f,U+5446,U+54b1,U+54ed,U+5531,U+5566,U+558a,U+5708,U+5806,U+5899,U+593a,U+594b,U+5954,U+5956,U+5976,U+5999,U+59b9,U+5a46,U+5b54,U+5b63-5b64,U+5b9c,U+5bd2,U+5c16,U+5c3e,U+5de7,U+5e01,U+5e55,U+5e86,U+5f17,U+5f69,U+5f79,U+5f7b-5f7c,U+5f84,U+5f90,U+5fc6,U+5fe0,U+6062,U+6068,U+6070,U+60a3,U+60ef,U+6108,U+61c2,U+6234,U+62bd,U+62d2,U+62dc,U+6302,U+6311,U+6355,U+63cf,U+63f4,U+6478,U+64a4,U+64ad,U+64cd,U+656c,U+65e6,U+6620,U+6653,U+6682,U+66fc,U+6717,U+675c,U+684c,U+6865,U+6a2a,U+6b8a,U+6c47,U+6c7d,U+6cbf,U+6cdb,U+6cea,U+6cf0,U+6d17,U+6d25,U+6d2a,U+6d6a,U+6d89,U+6da6,U+6de1,U+6f6e,U+7070,U+707e,U+708e,U+70e6-70e7,U+7206,U+724c,U+72b9,U+72d7,U+732e,U+739b,U+73cd,U+73e0,U+745e,U+74e6,U+75be,U+75c7,U+7801,U+78b0,U+7a77,U+7ae5,U+7b26,U+7b7e,U+7cae,U+7d2f,U+7e41,U+7eb5,U+7eb7,U+7ecd,U+7f18,U+7f29,U+7f5a,U+7f62,U+7f8a,U+7ffc,U+8036,U+805a,U+80c6,U+80de,U+80f8,U+817f,U+820d,U+827e,U+8336,U+8352,U+83b1,U+83dc,U+848b,U+84dd,U+866b,U+878d,U+8861,U+888b,U+88ad,U+88c1-88c2,U+89e6,U+8ba2,U+8baf,U+8bd1,U+8bfe,U+8d2b,U+8d56,U+8d5e,U+8d6b,U+8ddd,U+8f70,U+8f91,U+8fa9,U+8fdd,U+90a6,U+955c,U+95ed,U+95f9,U+963b,U+9677,U+9694,U+969c,U+96f6,U+97e9,U+9a7b,U+9b42,U+9b54,U+9e1f,U+9f3b}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.26a7692835846f71.7.woff2") format("woff2");unicode-range:U+4e27,U+4e4f,U+4e54,U+4e95,U+4ec7,U+4f0d,U+4f0f,U+4f2a,U+4f69,U+4fa6,U+500d,U+50a8,U+5141,U+517c,U+518c,U+51ac,U+51c0,U+51e4,U+51ed,U+51ef,U+51f6,U+5238,U+5242,U+5269,U+529d,U+52b1,U+52c3,U+52e4,U+53d4,U+5413,U+5439,U+5448,U+5761,U+5821,U+58a8,U+58c1,U+58ee,U+5949,U+594f,U+5974,U+5a92,U+5b99,U+5baa,U+5bbe,U+5c38,U+5c3a,U+5c4a,U+5ca9,U+5cf0,U+5d07,U+5de1,U+5e15,U+5e45,U+5e7b,U+5e9f,U+5f6d,U+5fa1,U+5fe7,U+604b,U+6084,U+6089,U+60dc,U+60e0,U+60e8,U+6124,U+6148,U+6167,U+6212,U+622a,U+624e,U+6251,U+626b,U+6270,U+62a2,U+62ac,U+62d4,U+62d6,U+62df,U+633a,U+63a9,U+63d2,U+641c,U+6444,U+6492,U+649e,U+654f,U+65cb,U+65d7,U+660f,U+6628,U+6668,U+66f9,U+6735,U+676f,U+679d,U+67f3,U+6851,U+6881,U+6b23,U+6b96,U+6bbf,U+6c0f,U+6c57,U+6c61,U+6ce5,U+6d01,U+6d6e,U+6db2,U+6e21,U+6ed1,U+6eda,U+6f02,U+6f2b,U+7126,U+71c3,U+722c,U+7518,U+756a,U+75af,U+7686,U+76fe,U+7709,U+77a7,U+77db,U+77ff,U+788d-788e,U+78e8,U+79df,U+79e6,U+7a0d,U+7bad,U+7bb1,U+7c89,U+7c97,U+7cca,U+7ed5,U+7ee9-7eea,U+7efc,U+7f72,U+8010,U+8083,U+80a9,U+80c1,U+814a,U+8170,U+8212,U+8247,U+8258,U+8361,U+8377,U+83f2,U+8482,U+8584,U+86cb,U+8bca,U+8be6,U+8c6a,U+8d21,U+8d2f,U+8d34,U+8d4f,U+8d8b,U+8dc3,U+8e2a,U+8f86,U+8f88,U+8f9b,U+8f9e,U+8fd4,U+8fdf,U+8fea,U+9012,U+903c,U+90aa,U+90ce,U+9178,U+9501,U+952e,U+95f2,U+9605,U+9686,U+970d,U+9887,U+9891,U+9897,U+989c,U+98d8,U+9910,U+996e,U+9a71,U+9a76,U+9a7e,U+9a82,U+9a91,U+9a97,U+9e21,U+9ece,U+9f84}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.25f97b3a95590df4.8.woff2") format("woff2");unicode-range:U+4e1b,U+4e22,U+4e8f,U+4ed4,U+4ed7,U+4ef2,U+4f73,U+4faf,U+4fe9,U+517d,U+51a0,U+51af,U+51c9,U+51cc,U+51dd,U+5272,U+5306,U+5362,U+538c,U+53d9,U+5410,U+5415,U+5428,U+543e,U+54ac,U+54c0,U+55b7,U+561b,U+5782,U+57cb,U+5939,U+5948,U+5a1c,U+5b5f,U+5bbf,U+5bc2,U+5bc4,U+5bff,U+5c18,U+5c1d,U+5c48,U+5c82,U+5ce1,U+5e10,U+5e3d,U+5e7c-5e7d,U+5ef7,U+5f2f,U+5faa,U+601c,U+6028,U+6052,U+606d,U+607c,U+609f,U+60d1,U+60e7,U+614c,U+614e,U+6170,U+6208,U+6241,U+6263,U+6276,U+6291,U+6296,U+629a-629b,U+6324,U+63ed,U+642c,U+64e6,U+6566,U+6572,U+65e8,U+6606,U+660c,U+664b,U+6676,U+6696,U+66f0,U+67cf,U+67d4,U+67f1,U+68af-68b0,U+6905,U+6b3a,U+6c60,U+6c64,U+6c88,U+6c9f,U+6cc9,U+6d45,U+6d53,U+6d82,U+6d8c,U+6e14,U+6e7f,U+6fb3,U+70bc,U+70c2,U+7164,U+718a,U+71d5,U+7262,U+7267,U+7272,U+7275,U+72e0,U+72f1,U+72fc,U+730e,U+731c,U+732a-732b,U+7384,U+73bb,U+7434,U+745f,U+74f6,U+75bc,U+76d7,U+78c1,U+795d,U+7965,U+79e9,U+7a3f,U+7a46,U+7af9,U+7b79,U+7c4d,U+7c92,U+7cb9,U+7cd6,U+7d2b,U+7ea0,U+7eb9,U+7ebd,U+8017,U+806a,U+809d,U+80a5,U+8109,U+810f,U+8150,U+8179,U+817e,U+81c2,U+8270,U+82b3,U+82cd,U+83cc,U+8463,U+86c7,U+8870,U+8881,U+8896,U+8a89,U+8be2,U+8bf1,U+8c8c,U+8d37,U+8d3a,U+8d4b,U+8d54,U+8d64,U+8dcc,U+8df5,U+8e0f,U+8eb2,U+8eba,U+8f89,U+8f96,U+8fc1,U+8fc8,U+900a,U+903b,U+9065,U+9075,U+9093,U+90ae,U+90bb,U+9274,U+94a2,U+94bb,U+94fa,U+950b,U+9601,U+9614,U+966a,U+9676,U+96fe,U+978b,U+97e6,U+9970,U+9b4f,U+9e23,U+9f20}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.4f73c5ce3258b6cc.9.woff2") format("woff2");unicode-range:U+4e11,U+4e18,U+4e32,U+4e59,U+4e73,U+4ec6,U+4ed3,U+4f10,U+4f8d,U+4fca,U+4ff1,U+5085,U+50b2,U+5179,U+51fd,U+5237,U+524a,U+5265,U+52a3,U+52ab,U+5339,U+5353,U+5367,U+53db,U+541e,U+5475,U+54e6,U+54e9,U+54fc,U+5507,U+5524,U+5609,U+5740,U+575b,U+582a,U+586b,U+5893,U+58f3,U+5938,U+5951,U+5996,U+59a5,U+59a8,U+59ff,U+5a03,U+5acc,U+5b85,U+5b8f,U+5bf8,U+5bfa,U+5c3f,U+5c4f,U+5c65,U+5c97,U+5cb3,U+5e05,U+5e99,U+5e9e,U+5ec9,U+5f25,U+5fcc,U+6016,U+6094,U+60ac,U+60df,U+60e9,U+611a,U+6254,U+626d,U+62bc,U+62e8,U+62f3,U+62fc,U+62fe,U+6316,U+6321,U+6323,U+6349,U+6377,U+63a0,U+642d,U+643a,U+659c,U+65a4-65a5,U+6602,U+6643,U+6674,U+679a,U+67ef,U+6842-6843,U+6863,U+68c9,U+6b20,U+6b47,U+6b7c,U+6bc5,U+6c27,U+6c6a,U+6c83,U+6d69,U+6da8,U+6dfb,U+6e83,U+6e9c,U+6ecb,U+6ef4,U+6f20,U+7235,U+727a,U+73b2,U+7483,U+74dc,U+758f,U+75ab,U+75b2,U+75d5,U+7626,U+764c,U+76b1,U+76d0,U+76ef,U+7741,U+7897,U+796d,U+7978,U+7a00,U+7a74,U+7a9d,U+7b3c,U+7cdf,U+7eb2,U+7ed8,U+7f1d,U+7f34,U+7fbd,U+7ff0,U+8000,U+8015,U+804a,U+808c,U+809a,U+80a0,U+80a4,U+80bf,U+80c3,U+80d6,U+8154,U+8180,U+819c,U+820c,U+8231,U+82ac,U+82d7,U+8328,U+832b,U+8389,U+83b2,U+8427,U+845b,U+859b,U+8702,U+8986,U+89c8,U+8bbc,U+8c28,U+8c46,U+8c6b,U+8d24,U+8d2a,U+8d62,U+8d74,U+8de8,U+8f68,U+8fa8,U+8fb1,U+9063,U+9080,U+90c1,U+90ed,U+9177,U+9189,U+94c3,U+94dc,U+9510,U+9526,U+95f7,U+9675,U+96b6,U+96c7,U+96d5,U+9738,U+98a4,U+9972,U+997f,U+9e3f,U+9e4f,U+9e70,U+9f7f}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.83d7587c123e1fcd.10.woff2") format("woff2");unicode-range:U+4e7e,U+4ea8,U+4ead,U+4ed1,U+4f50,U+4fd8,U+5018,U+50ac,U+50bb,U+50e7,U+5112,U+5188,U+51bb,U+52c9,U+52fe,U+5320,U+5351,U+535c,U+5375,U+537f,U+53a8,U+5401,U+540a,U+541f,U+5435,U+543b-543c,U+5490,U+54bd,U+5509,U+5565,U+5582,U+5589,U+5598,U+55ef,U+5631,U+56ca,U+5733,U+5851,U+5915,U+5978,U+5984,U+59ae,U+59fb,U+5a07,U+5a74,U+5ac1-5ac2,U+5b55,U+5b5d,U+5bb0,U+5bb4,U+5c09,U+5c60,U+5eb8,U+5eca,U+5f8c,U+60a0,U+60a6,U+6101,U+6109,U+6155,U+6247,U+626e-626f,U+62ab,U+62b9,U+62c6,U+62d8,U+62e6,U+6328,U+644a,U+6458,U+6467,U+6591,U+65bc,U+6734,U+6746,U+67dc,U+67f4,U+680f,U+6846,U+68cb,U+68f5,U+6b49,U+6b67,U+6c1b,U+6cc4,U+6cca,U+6ce1,U+6d51,U+6d59,U+6d66,U+6d9b,U+6dcb,U+6e34,U+6ee9,U+6f0f,U+6f58,U+704c,U+7089,U+7239,U+72ed,U+7329,U+7391,U+7487,U+751c,U+752b,U+7545,U+754f,U+755c,U+7586,U+7624,U+76c6,U+76c8,U+76d2,U+76f2,U+7720,U+77aa,U+77ac,U+77e3,U+77e9,U+77ee,U+78a7,U+79a7,U+79d2,U+7a83,U+7aed,U+7b52,U+7ea4,U+7ef3,U+7f20,U+7f69,U+7f9e,U+7fc1,U+7fc5,U+8038,U+803b,U+8096,U+80ba,U+80c0,U+80ce,U+80f6,U+8106,U+81ed,U+8273,U+829d,U+838e,U+8461,U+846c,U+84c4,U+853d,U+85aa,U+86ee,U+871c,U+886b,U+8877,U+88d5,U+88e4,U+88f8,U+8a93,U+8bb6,U+8bde,U+8c05,U+8c0a,U+8c2d,U+8d3c,U+8d3e,U+8d4c,U+8d50,U+8d60,U+8d81,U+8dea,U+8f85,U+8f9f,U+8fbd,U+9006,U+901d,U+9042,U+906e,U+916c,U+94a6,U+94ed,U+94fe,U+9505,U+9521,U+95ef,U+9640,U+9655,U+971e,U+987d,U+9888,U+98a0,U+9971,U+9a70,U+9a73,U+9aa4,U+9c8d,U+9e2d,U+9e7f}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.657ba538dd97a393.11.woff2") format("woff2");unicode-range:U+4ea9,U+4f1e,U+4fa8,U+4fef,U+5021,U+5026,U+50da,U+50f5,U+5146,U+5154,U+51c4,U+51d1,U+522e,U+5239,U+526a,U+52cb,U+532a,U+5398,U+53a6,U+53c9,U+53e0,U+540f,U+5429,U+5492,U+54ce,U+54d1,U+5561,U+5578,U+5583,U+55bb,U+5632,U+5662,U+56b7,U+5751,U+575f-5760,U+5784,U+5835,U+5937,U+59ca,U+59da,U+59e8,U+5a9a,U+5bd3,U+5be1,U+5be8,U+5c41,U+5cad,U+5d16,U+5d29,U+5de2,U+5deb,U+5dfe,U+5f0a,U+5f13,U+5f26,U+5fbd,U+6014,U+6055,U+6073,U+60f6,U+60f9,U+6123,U+6127,U+6168,U+61be,U+61d2,U+621a,U+6284,U+62d0,U+62d3,U+632a,U+633d,U+6350,U+6367,U+638f,U+6398,U+6454,U+6491,U+6495,U+64b0,U+65ec,U+65fa,U+662d,U+6655,U+6670,U+676d,U+67af,U+67c4,U+68cd,U+68d2,U+6b6a,U+6bb7,U+6cfc,U+6d12,U+6d74,U+6d78,U+6d85,U+6db5,U+6deb,U+6dee,U+6e0a,U+6e20,U+6e58,U+6eaa,U+6eb6,U+6ede,U+6ee5,U+6f06,U+70ad,U+7130,U+714c,U+715e,U+722a,U+72c4,U+72d0,U+72ee,U+7334,U+733f,U+73ab,U+743c,U+74f7,U+75f4,U+76fc,U+7728,U+780d,U+7816,U+7855,U+7891,U+7985,U+7a23,U+7a84,U+7a91,U+7b28,U+7b4b,U+7bee,U+7c98,U+7ef5,U+7f55,U+7fd4,U+7fe0,U+800d,U+8058,U+80a2,U+80be,U+8102,U+810a,U+8116,U+813e,U+817a,U+819d,U+8206,U+821f,U+8236,U+8292,U+8302,U+8305,U+8350,U+83e9,U+8404,U+840d,U+84b2,U+84b8,U+8521,U+85e4,U+8679,U+8776,U+8822,U+8854,U+888d,U+8bbd,U+8c0e,U+8c26,U+8c31,U+8d1e,U+8d26,U+8d5a,U+8eaf,U+8fb0,U+9022,U+902e,U+9038,U+90ca,U+90e1,U+9489,U+9493,U+94a9,U+9610,U+964c,U+9661,U+96c0,U+97ad,U+9881,U+9965,U+9976,U+997c,U+9a84,U+9a9a,U+9e45,U+9f0e}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.73b3f63d00b137c3.12.woff2") format("woff2");unicode-range:U+4e38,U+4e56,U+4e5e,U+4f3d,U+4f63,U+508d,U+5151,U+515c,U+5180,U+51a4,U+51f0,U+5256,U+5288,U+52ff,U+5308,U+5319,U+5378,U+5384,U+53a2,U+5495-5496,U+54a8,U+54b3,U+54b8,U+54c4,U+54c7,U+54d7,U+54df,U+54e8,U+5580,U+55d3,U+563b,U+563f,U+574a,U+574e,U+5792,U+5824,U+584c,U+5858,U+58e4,U+58f6,U+59dc,U+5a1f,U+5a31,U+5a36,U+5ab3,U+5ae9,U+5b9b,U+5ba0,U+5bc7,U+5c51,U+5c61,U+5cfb,U+5d14,U+5de9,U+5df7,U+5e06,U+5e18,U+5e62,U+5f66,U+5f6a,U+6021,U+602f,U+604d,U+62e2,U+632b,U+634f,U+635e,U+6380,U+6401,U+640f,U+64c5,U+6500,U+658b-658c,U+65a9,U+65f1,U+6614,U+6627,U+673d,U+6756,U+6816,U+682a,U+683d,U+6853,U+6869,U+6876,U+68da,U+68e0,U+690e,U+699c,U+6bd9,U+6c41,U+6c5d,U+6cab,U+6cbc,U+6cbe,U+6ce3,U+6dd8,U+6e17,U+6ea2,U+6ee8,U+70db,U+7109,U+711a,U+7199,U+723d,U+73ca,U+7433,U+7470,U+7779,U+7784,U+778e,U+7792,U+7838,U+788c,U+7948,U+7977,U+7984,U+79bd,U+79c3,U+7a3b,U+7a3d,U+7a9c,U+7ad6,U+7b1b,U+7cd5,U+7eb1,U+7eba,U+7ec5,U+7ed1,U+7ee2-7ee3,U+7f50,U+8086,U+80f3,U+818a,U+81a8,U+8205,U+82a6,U+82af,U+82f9,U+8346,U+83ca,U+84ec,U+864f,U+8681,U+87ba,U+884d,U+886c,U+88d9,U+88f9,U+8a79,U+8b6c,U+8bc8,U+8bf5,U+8c0d,U+8c10,U+8c1c,U+8c2c,U+8c34,U+8c79,U+8d29,U+8d2c,U+8d3f,U+8d9f,U+8e22,U+8e29,U+8e72,U+8e81,U+8f69,U+8f74,U+8f7f,U+8f90,U+8fa3,U+8fc4,U+8fe6,U+90b1,U+9119,U+9187,U+94a5,U+94a7,U+94f8,U+953b,U+9551,U+960e,U+9699,U+96c1,U+96cc,U+9706,U+9709,U+9756,U+97f5,U+9882,U+9896,U+9a74,U+9a87,U+9b44,U+9e26,U+9f9f}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.a78e74b757b9e147.13.woff2") format("woff2");unicode-range:U+4e10,U+4e19,U+4e2b,U+4f84,U+4fa3,U+4fae,U+4ffa,U+501a,U+5029,U+51a5,U+51f3,U+51ff,U+5203,U+527f,U+52d8,U+52df,U+5300,U+5352,U+53a5,U+53ed-53ee,U+545c,U+54a7,U+54af,U+54c9,U+5587,U+55c5,U+55e3,U+56bc,U+56da,U+573e,U+576a,U+5783,U+57ab,U+57ae,U+5815,U+594e,U+5960,U+5962,U+5983,U+5986,U+5992,U+59ec,U+5ac9,U+5bde,U+5c2c,U+5c34,U+5c7f,U+5c9a,U+5d0e,U+5f18,U+5f6c,U+60d5,U+6115,U+618e,U+61c8,U+62c2,U+62d9,U+62ef,U+62f1,U+6346,U+6361,U+6363,U+63b7,U+6405,U+655e,U+65a7,U+65f7,U+663c,U+6652,U+6664,U+6687,U+6691,U+66ae,U+6749,U+6795,U+67a2,U+680b,U+6817,U+6850,U+68ad,U+68b3,U+68fa,U+69b4,U+6bef,U+6c22,U+6c79,U+6ca6,U+6caa,U+6cb8,U+6ccc,U+6cf3,U+6cfb,U+6d46,U+6da1,U+6daf,U+6dd1,U+6df9,U+6eaf,U+6ed4,U+6f6d,U+6f84,U+6fa1,U+7076,U+707f,U+7092,U+70c1,U+70e4,U+716e,U+71ac,U+71e5,U+72ac,U+72e1,U+72f8,U+7529,U+7538,U+7574,U+75d2,U+7785,U+77a5,U+7802,U+786b,U+78b3,U+7a1a,U+7aa5,U+7bf7,U+7eac,U+7ed2,U+7ede,U+7ef8,U+7f05,U+7f14,U+7f1a,U+7fa1,U+803d,U+803f,U+8155,U+8165,U+818f,U+8299,U+82bd,U+830e,U+8335,U+836b,U+83b9,U+83bd,U+840e,U+841d,U+8511,U+852c,U+8574,U+85c9,U+85e9,U+85fb,U+8650,U+8680,U+86db,U+8700,U+8721,U+8747,U+8859,U+8910,U+8bcf,U+8be1,U+8be7,U+8beb,U+8c15,U+8c23,U+8d31,U+8e44,U+8e48,U+8eac,U+8f9c,U+9017,U+901b,U+903e,U+904f,U+917f,U+949e,U+94ae,U+94c5,U+9556,U+9600,U+964b,U+965b,U+971c,U+9877,U+988a,U+99a8,U+9a7c,U+9ab8,U+9b41,U+9b45,U+9cb8,U+9cde,U+9e3d,U+9e64,U+9e9f,U+9ebd,U+9edb}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.2f46e95e7a0f6e47.14.woff2") format("woff2");unicode-range:U+4e4d,U+4f36,U+4f3a,U+4f51,U+4fcf,U+4fed,U+500f,U+50fb,U+5140,U+516e,U+51a2,U+51b6,U+51f8-51f9,U+5220,U+533f,U+5395,U+53e8-53e9,U+5431,U+5450,U+5455,U+547b,U+548b,U+549a,U+54ee,U+54fa,U+5564,U+556a,U+557c,U+5594,U+55a7,U+55e1,U+55fd,U+560e,U+561f,U+5636,U+566a,U+575d,U+5764,U+57a3,U+5885,U+589f,U+5993,U+59e5,U+5a05,U+5a25,U+5a49,U+5a76,U+5b7d,U+5bdd,U+5c39,U+5c6f,U+5d4c,U+5e16,U+5e1c,U+5e87,U+5e90,U+5ed3,U+5ed6,U+5f70,U+60af,U+60bc,U+60ed,U+6151,U+6177,U+61ff,U+6233,U+627c,U+62e3,U+631f-6320,U+63c9,U+63fd,U+6402,U+6487,U+64d2,U+655b,U+6577,U+65ed,U+664c,U+6726,U+674f,U+6789,U+67a3,U+6813,U+6868,U+6897,U+68a2,U+68d5,U+68d8,U+68f1,U+6a31,U+6a61,U+6b79,U+6bcb,U+6c70,U+6cae,U+6d47,U+6d4f,U+6da9,U+6e3a,U+6e85,U+6f9c,U+707c,U+70af,U+70eb,U+7115,U+714e,U+7184,U+725f,U+7409,U+7410,U+7422,U+745c,U+7476,U+74e3,U+7554,U+762b,U+766b,U+76cf,U+7729,U+772f,U+7737,U+77bb,U+77e2,U+77eb,U+7830,U+789f,U+78b1,U+78c5,U+78f7,U+7901,U+7980,U+79b9,U+79c9,U+7a3c,U+7a9f,U+7aa6,U+7aff,U+7c07,U+7c3f,U+7c9f,U+7caa,U+7ee5,U+7ef0,U+7f06,U+7f15,U+7f38,U+8042,U+804b,U+80da,U+80e7,U+817b,U+819b,U+82d1,U+82df,U+83ba,U+83f1,U+840c,U+8471,U+84c9,U+8513,U+8654,U+865e,U+867e,U+8682,U+868a,U+8695,U+86d9,U+8774,U+88d4,U+88d8,U+88f3,U+895f,U+89c5,U+8ba5,U+8bb3,U+8bc0,U+8c41,U+8d2e,U+8d4e,U+8dcb,U+8e66,U+8f7c,U+8fc2,U+90b5,U+9102,U+91c9,U+9499,U+9524,U+968b,U+96ef,U+9885,U+9988,U+9a6f,U+9a86,U+9ad3,U+9ccd,U+9eef}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.702f1dc6b9d51343.15.woff2") format("woff2");unicode-range:U+4ed5,U+4f88,U+5162,U+5189,U+51db,U+5254,U+5323,U+5366,U+53ae,U+542d,U+5499,U+54a6,U+552c,U+553e,U+55dc,U+55e6,U+5618,U+565c,U+56a3,U+575e,U+57a6,U+57d4,U+58d5,U+592d,U+5955,U+5a62,U+5a6a,U+5a7f,U+5ae6,U+5b5c,U+5ba6,U+5bb5,U+5be5,U+5c49,U+5c94,U+5cd9,U+5ce8,U+5ced,U+5d1b,U+5d2d,U+5e9a,U+5eb5-5eb6,U+5f27,U+5f8a,U+5f98,U+5fd2,U+5fd6,U+5fff,U+6020,U+608d,U+6096,U+60eb,U+618b,U+6252,U+625b,U+6273,U+6292,U+62c7,U+62da,U+62f4,U+631a,U+6342,U+63e3,U+63ea,U+6413,U+6479,U+64bc,U+64ce,U+6590,U+659f,U+6666,U+6714-6715,U+6760,U+67ec,U+6805,U+68a8,U+69bb,U+69d0,U+69fd,U+6a71,U+6a90,U+6b86,U+6bd3,U+6c13,U+6c28,U+6c2f,U+6c40,U+6c81,U+6c9b,U+6ca7,U+6d3d,U+6d4a,U+6d95,U+6dc0,U+6dcc,U+6df3,U+6fd2,U+7095,U+717d,U+718f,U+7194,U+7261,U+72c8,U+733e,U+73c0,U+742a,U+745a-745b,U+7578,U+75a4,U+75ae,U+75ea,U+75f0,U+7682,U+7693,U+76d4,U+7766,U+77d7,U+785d,U+78d5,U+7940,U+79ba,U+79fd,U+7a8d,U+7a98,U+7b77,U+7bf1,U+7ca4-7ca5,U+7cd9,U+7d0a,U+7d6e,U+7ece,U+7ef7,U+7efd,U+7f00,U+7f09,U+7f0e,U+7fd8,U+8098,U+80aa,U+812f,U+8235,U+8237,U+82ad,U+82b8,U+82d4,U+82db,U+8304,U+831c,U+84e6,U+8549,U+8718,U+8749,U+87f9,U+8845,U+889c,U+88f4,U+8944,U+8bc5,U+8bec,U+8c0f,U+8d41,U+8d66,U+8db4,U+8dbe,U+8e31,U+8fed,U+9091,U+90b9,U+90dd,U+914c,U+9171,U+9176,U+918b,U+949d,U+94c0,U+94ee,U+94f2,U+9523,U+9525,U+952f,U+9576,U+9698,U+9704,U+9716,U+9761,U+9774,U+978d,U+9798,U+97a0,U+97e7,U+9890,U+9893,U+9975,U+9977,U+9ae6,U+9e43}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.5cb0ec7fc9523b73.19.woff2") format("woff2");unicode-range:U+4e98,U+4f5a,U+4ff8,U+5080,U+50a3,U+50a9,U+50ed,U+523d,U+536f,U+53df,U+5457,U+5478,U+5537,U+556c,U+55df,U+55f3,U+564e,U+568f,U+576f,U+5777,U+587e,U+58d1,U+5942,U+59d7,U+5a75,U+5ab2,U+5bd0,U+5bf0,U+5c79,U+5c90,U+5ce6,U+5d4b,U+5dc5,U+605a,U+6063,U+607b,U+607f,U+61f5,U+620c,U+6248,U+62a1,U+637a,U+6396,U+6452,U+6482,U+64b5,U+64b8,U+64de,U+6525,U+660a,U+664f,U+667e,U+6684,U+66a7,U+675e,U+67ad,U+6866,U+6930,U+6954,U+6988,U+6aac,U+6b24,U+6ba1,U+6c55,U+6c5e,U+6c82,U+6c93,U+6cde,U+6cf5,U+6d52,U+6d9f,U+6da3,U+6da7,U+6db8,U+6dd6,U+6e0d,U+6e43,U+6e4d,U+6ea5,U+6ed5,U+6f33,U+701b,U+7096,U+7119,U+715c,U+71b9,U+728a,U+7313,U+7357,U+73d1,U+73e5,U+740f,U+7455,U+747e,U+7490,U+749e,U+74ee,U+7504,U+7525,U+75a3,U+762a,U+7638,U+7691,U+7750-7751,U+777d,U+77b0,U+796f,U+79f8,U+7a37,U+7abf,U+7b19,U+7b4f,U+7b75,U+7b93,U+7c0c,U+7eef,U+7f04,U+7f24,U+7f30,U+7f9a,U+7fb2,U+7fb9,U+7fdf,U+8006,U+80f1,U+8110,U+81ba,U+82de,U+832c,U+8354,U+837c,U+8426,U+84d3,U+8517,U+8537,U+85d5,U+8638,U+868c,U+86ca,U+8708,U+873f,U+874e,U+8759,U+8783,U+87c0,U+87c6,U+87cb,U+87fe,U+891a,U+8bb7,U+8bb9,U+8be9,U+8bf0,U+8c00,U+8c19,U+8c29,U+8d30,U+8d53,U+8d61,U+8dda-8ddb,U+8e0a,U+8e1d,U+8e42,U+8e4a,U+8e7f,U+8e8f,U+8f72,U+8f95,U+8f98,U+8fe2,U+9035,U+9050,U+907d,U+9083,U+90af,U+9149,U+916e,U+91dc,U+92c6,U+946b,U+94a1,U+94be,U+9522,U+9535,U+9540,U+956f-9570,U+9609,U+988d,U+998b,U+9aa5,U+9cc3-9cc4,U+9cd6,U+9e33,U+9e3e,U+9e73,U+9f3e}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.e8729a0fa0b57921.23.woff2") format("woff2");unicode-range:U+4e69,U+4ee8,U+4f58,U+4f5e,U+4fea,U+507b,U+50d6,U+5208,U+525c,U+5476,U+54a4,U+54a9,U+54bf,U+54c2,U+5550,U+55d1,U+55dd,U+55ea,U+55f2,U+55f5,U+5639,U+5654,U+5658-5659,U+56e1,U+56ff,U+57a9,U+57fd,U+58f9,U+5925,U+592f,U+598d,U+59e3,U+5a23,U+5a40,U+5b51,U+5ba5,U+5cab,U+5cb7,U+5cd2,U+5d02,U+5d34,U+5d58,U+5f11,U+5fdd,U+6029,U+6035,U+603c,U+607d,U+610e,U+61d4,U+629f,U+63c4,U+63c6,U+6421,U+6441,U+64b7,U+65ab,U+6615,U+6631,U+6657,U+66b9,U+67b8,U+6809,U+680e,U+684e,U+688f,U+6942,U+6979,U+6989,U+699b,U+6a3d,U+6a84,U+6b92,U+6cc5,U+6cf8,U+6d39,U+6d94,U+6dc5,U+6de6,U+6dfc,U+6ee2,U+6fa7,U+6fef,U+723b,U+7284,U+7292,U+729f,U+72b7,U+72fb,U+7315,U+7360,U+73de,U+742c,U+7441,U+7480,U+74a8,U+75ff,U+7619,U+76e5,U+77fe,U+783a,U+787c,U+7a95,U+7ad1,U+7ae6,U+7b1e,U+7b25,U+7b60,U+7bd9,U+7c91,U+7c95,U+7ec9,U+7efb,U+7f45,U+7fe6,U+80db,U+80ea,U+814e,U+8191,U+81fe,U+821b,U+827f,U+82a9,U+82c1,U+82e3,U+82eb,U+830f,U+832f,U+852b,U+858f,U+867b,U+8707,U+871a,U+8734,U+87a8,U+8839,U+883c,U+8869,U+8872,U+8996,U+89ca,U+8a48,U+8ba3,U+8bb4,U+8be8,U+8bee,U+8c16,U+8c36,U+8d32,U+8d5d,U+8dba,U+8e2e,U+8f71,U+8f94,U+8fe4,U+9082,U+9095,U+909d,U+90e2,U+9162,U+936a,U+948d,U+949c,U+94c2,U+94e4,U+94e8-94e9,U+94f0,U+951f,U+9528,U+9532,U+9537,U+95f1,U+95ff,U+9608,U+9701,U+970f,U+9730,U+9753,U+98a7,U+98e8,U+996f,U+9984,U+998a,U+998f,U+9997,U+99a5,U+9a9b,U+9ae1,U+9c7f,U+9c9f,U+9cdd,U+9e2c,U+9e4c,U+9e57,U+9e82,U+9e8b,U+9e92,U+9f85}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.09f3e1fcd6ddf013.50.woff2") format("woff2");unicode-range:U+21-7e,U+a0-108}
@font-face{font-family:"MiSans";font-style:normal;font-weight:500;font-display:swap;src:url("/assets/fonts/misans/MiSans-Medium.58d822d08cd8354e.54.woff2") format("woff2");unicode-range:U+2075-207b,U+207f-2089,U+20a3-20a4,U+20a8-20a9,U+20ab-20ac,U+20ae,U+20b1,U+20b8-20ba,U+20bd,U+20bf,U+2103,U+2105,U+2109,U+2113-2114,U+2116-2117,U+211e,U+2120-2122,U+2126,U+212e,U+2153-2154,U+215b-215e,U+2160-2179,U+2180-2182,U+2190-2193,U+2196-2199,U+21c4,U+2202,U+2206,U+2208,U+220f,U+2211-2212,U+2215,U+221a,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+2260-2261,U+2264-2267,U+226e-226f,U+2295,U+2299,U+22a5,U+22bf,U+2312,U+2460-2469,U+2474-249b,U+2500-2513}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/inter/inter-latin-400-normal.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:500;font-display:swap;src:url("/assets/fonts/inter/inter-latin-500-normal.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}

/* tokens.css */
/* ==========================================================================
   一维云创 · 设计 token
   暗底 + 洋红。深色是本项目的主场，浅色只用于打印。
   ========================================================================== */

:root {
  color-scheme: dark;

  /* 底色层级 */
  --bg-0: #070406;
  --bg-1: #0c0709;
  --bg-2: #130b10;
  --bg-3: #1a1017;
  --bg-glass: rgba(19, 11, 16, 0.72);

  /* 文字 */
  --ink: #efe7ec;
  --ink-2: #c2b4bb;
  --ink-3: #8b7681;
  --ink-4: #6b5763;

  /* 品牌 */
  --brand: #ff2d6f;
  --brand-2: #ff5c8d;
  --brand-3: #ff8ab0;
  --brand-dim: rgba(255, 45, 111, 0.14);
  --brand-glow: rgba(255, 45, 111, 0.28);
  --violet: #a21caf;
  --plum: #d8a6f7;

  /* 语义色 */
  --ok: #48c98e;
  --ok-dim: rgba(72, 201, 142, 0.14);
  --warn: #f5b544;
  --warn-dim: rgba(245, 181, 68, 0.14);
  --danger: #ff5470;
  --danger-dim: rgba(255, 84, 112, 0.14);

  /* 线 */
  --line: rgba(255, 255, 255, 0.075);
  --line-2: rgba(255, 255, 255, 0.13);
  --line-3: rgba(255, 255, 255, 0.2);
  --line-brand: rgba(255, 45, 111, 0.32);
  /* 克制的分隔线：表格行、清单行用它，避免满屏可见边框 */
  --line-soft: rgba(255, 255, 255, 0.055);
  --line-strong: rgba(255, 255, 255, 0.12);

  /* 排版 */
  --font-sans: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB",
    "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono",
    "DejaVu Sans Mono", Menlo, Consolas, monospace;
  /* 小标签（eyebrow / 核心判断）：拉丁用 Inter，中文落 MiSans 子集 */
  --font-label: "Inter", "MiSans", "PingFang SC", "Microsoft YaHei",
    "Hiragino Sans GB", sans-serif;

  --fs-xs: 12px;
  --fs-sm: 13.5px;
  --fs-base: 16px;
  --fs-md: 17px;
  --fs-lg: 20px;
  --fs-xl: 26px;
  --fs-2xl: 34px;
  --fs-3xl: 44px;
  --fs-hero: clamp(40px, 5.6vw, 74px);

  /* 间距 */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;
  --sp-8: 64px;
  --sp-9: 96px;
  --sp-10: 128px;

  /* 容器 */
  --maxw: 1200px;
  --maxw-narrow: 820px;
  --gutter: 24px;

  /* 圆角 */
  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 14px;
  --r-xl: 20px;
  --r-pill: 999px;

  /* 阴影 */
  --shadow-card: 0 24px 60px -32px rgba(0, 0, 0, 0.9);
  --shadow-pop: 0 30px 80px -40px rgba(0, 0, 0, 1);
  --shadow-brand: 0 12px 40px -14px rgba(255, 45, 111, 0.5);

  /* 动效 */
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --dur: 0.32s;

  --z-nav: 60;
  --z-drawer: 80;
  --z-toast: 100;
}

/* base.css */
/* ==========================================================================
   基础重置与小件
   ========================================================================== */

*,
*::before,
*::after {
  box-sizing: border-box;
}

/* 浏览器默认的 [hidden] 会被组件里的 display 覆盖，这里统一兜住 */
[hidden] {
  display: none !important;
}

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: 90px;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: 1.75;
  color: var(--ink);
  background: var(--bg-0);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-weight: 650;
  line-height: 1.22;
  letter-spacing: -0.015em;
  color: var(--ink);
  text-wrap: balance;
}

p { margin: 0; }

a {
  color: inherit;
  text-decoration: none;
}

img, svg, video { display: block; max-width: 100%; }
img { height: auto; }

button, input, select, textarea {
  font: inherit;
  color: inherit;
}

button { cursor: pointer; }

ul, ol { margin: 0; padding: 0; list-style: none; }

::selection {
  background: var(--brand);
  color: #fff;
}

:focus-visible {
  outline: 2px solid var(--brand-2);
  outline-offset: 3px;
  border-radius: 6px;
}

/* 滚动条 */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-0); }
::-webkit-scrollbar-thumb {
  background: #2a1c24;
  border-radius: 999px;
  border: 2px solid var(--bg-0);
}
::-webkit-scrollbar-thumb:hover { background: #3a2833; }

.container {
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.container-narrow {
  max-width: var(--maxw-narrow);
}

/* 跳到正文（键盘用户） */
.skip-link {
  position: absolute;
  left: 16px;
  top: -60px;
  z-index: 200;
  padding: 10px 16px;
  border-radius: 8px;
  background: var(--brand);
  color: #fff;
  font-size: 13px;
  transition: top 0.2s var(--ease);
}
.skip-link:focus { top: 12px; }

/* 视觉隐藏 */
.sr-only {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* 滚动渐入：隐藏态由 JS 在「元素在首屏之外」时才添加，
   所以脚本失败或首屏元素不会被藏住。 */
.js .reveal.js-anim {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.js .reveal.js-anim.is-in {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  .reveal { opacity: 1; transform: none; }
  .js .reveal.js-anim,
  .js .reveal.js-anim.is-in { opacity: 1; transform: none; transition: none; }
}

/* site.css */
/* ==========================================================================
   官网样式
   ========================================================================== */

/* ------------------------------ 页头 ------------------------------ */

.site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-nav);
  border-bottom: 1px solid transparent;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease),
    backdrop-filter 0.3s var(--ease);
}

.site-header.is-scrolled {
  background: rgba(7, 4, 6, 0.78);
  backdrop-filter: saturate(180%) blur(16px);
  border-bottom-color: var(--line);
}

.nav {
  display: flex;
  align-items: center;
  gap: 20px;
  height: 74px;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  margin-right: auto;
  min-width: 0;
}

.brand-logo {
  width: 34px;
  height: 34px;
  object-fit: contain;
  flex: none;
}

.brand-text { display: flex; flex-direction: column; line-height: 1.18; }
.brand-cn {
  font-size: 15.5px;
  font-weight: 650;
  letter-spacing: 0.02em;
  color: var(--ink);
  white-space: nowrap;
}
.brand-en {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.14em;
  color: var(--ink-4);
  text-transform: uppercase;
  white-space: nowrap;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 4px;
}

.nav-links a {
  position: relative;
  padding: 8px 13px;
  font-size: 14.5px;
  color: var(--ink-2);
  border-radius: 8px;
  transition: color 0.2s, background 0.2s;
  white-space: nowrap;
}
.nav-links a:hover { color: var(--ink); background: rgba(255, 255, 255, 0.04); }
.nav-links a.is-active { color: var(--ink); }
.nav-links a.is-active::after {
  content: "";
  position: absolute;
  left: 13px;
  right: 13px;
  bottom: 2px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--brand), transparent);
}

.nav-actions { display: flex; align-items: center; gap: 10px; }

.nav-toggle {
  display: none;
  width: 40px;
  height: 40px;
  border: 1px solid var(--line-2);
  border-radius: 10px;
  background: transparent;
  padding: 0;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 4px;
}
.nav-toggle span {
  display: block;
  width: 16px;
  height: 1.5px;
  background: var(--ink);
  border-radius: 2px;
  transition: transform 0.25s var(--ease), opacity 0.2s;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(5.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-5.5px) rotate(-45deg); }

/* ------------------------------ 按钮 ------------------------------ */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 22px;
  border-radius: var(--r-pill);
  border: 1px solid transparent;
  font-size: 14.5px;
  font-weight: 550;
  letter-spacing: 0.01em;
  white-space: nowrap;
  transition: transform 0.22s var(--ease), background 0.22s, border-color 0.22s,
    box-shadow 0.22s, color 0.22s;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn-primary {
  background: linear-gradient(135deg, #ff3d7c, #e0155c);
  color: #fff;
  box-shadow: 0 10px 30px -14px rgba(255, 45, 111, 0.85);
}
.btn-primary:hover {
  box-shadow: 0 14px 38px -14px rgba(255, 45, 111, 0.95);
  filter: brightness(1.06);
}

.btn-ghost {
  background: rgba(255, 255, 255, 0.035);
  border-color: var(--line-2);
  color: var(--ink);
}
.btn-ghost:hover {
  background: rgba(255, 255, 255, 0.07);
  border-color: var(--line-3);
}

.btn-link {
  height: auto;
  padding: 0;
  border: 0;
  background: none;
  color: var(--brand-2);
  font-weight: 550;
}
.btn-link:hover { color: var(--brand-3); }

.btn-sm { height: 38px; padding: 0 17px; font-size: 13.5px; }

.btn .arrow { transition: transform 0.22s var(--ease); }
.btn:hover .arrow { transform: translateX(3px); }

/* ------------------------------ 首页首屏 ------------------------------ */

.hero {
  position: relative;
  overflow: hidden;
  padding: clamp(64px, 9vw, 120px) 0 clamp(56px, 7vw, 96px);
  border-bottom: 1px solid var(--line);
}

.hero::before {
  content: "";
  position: absolute;
  inset: -20% -10% auto;
  height: 120%;
  background:
    radial-gradient(46% 46% at 76% 8%, rgba(255, 45, 111, 0.18), transparent 72%),
    radial-gradient(40% 40% at 12% 22%, rgba(162, 28, 175, 0.13), transparent 70%),
    radial-gradient(60% 50% at 50% 110%, rgba(255, 92, 141, 0.08), transparent 70%);
  pointer-events: none;
}

.hero-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 72px 72px;
  -webkit-mask-image: radial-gradient(68% 62% at 50% 26%, #000 20%, transparent 78%);
  mask-image: radial-gradient(68% 62% at 50% 26%, #000 20%, transparent 78%);
  opacity: 0.55;
  pointer-events: none;
}

.hero-inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
  gap: clamp(32px, 4.5vw, 64px);
  align-items: center;
}

.hero-copy { max-width: 660px; }

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-label);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand-2);
}
.eyebrow::before {
  content: "";
  width: 22px;
  height: 1px;
  background: currentColor;
  opacity: 0.6;
}

.hero h1 {
  margin: 20px 0 0;
  font-size: clamp(34px, 4.4vw, 56px);
  font-weight: 700;
  line-height: 1.16;
  letter-spacing: -0.025em;
}

.hero .accent,
.page-hero .accent {
  display: block;
  margin-top: 16px;
  font-size: 0.5em;
  font-weight: 550;
  line-height: 1.4;
  letter-spacing: -0.01em;
  background: linear-gradient(96deg, #ff2d6f 0%, #ff7ea6 46%, #d8a6f7 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero .lead {
  margin-top: 22px;
  max-width: 560px;
  font-size: clamp(15.5px, 1.35vw, 17.5px);
  line-height: 1.85;
  color: var(--ink-2);
}

.hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 34px;
}

.hero-note {
  margin-top: 18px;
  font-size: 12.5px;
  color: var(--ink-4);
  letter-spacing: 0.01em;
}

.hero-art { position: relative; }

/* 光晕底 */
.hero-art::before {
  content: "";
  position: absolute;
  inset: 12% -8% -6% 4%;
  background: radial-gradient(closest-side, rgba(255, 45, 111, 0.22), transparent 72%);
  filter: blur(24px);
  pointer-events: none;
}

/* ------------------------------ 轨迹面板 ------------------------------ */

.trace {
  position: relative;
  border: 0;
  border-radius: var(--r-xl);
  background: linear-gradient(180deg, #170d13 0%, #10080c 100%);
  box-shadow: var(--shadow-pop);
  padding: 18px 18px 14px;
  overflow: hidden;
}
.trace::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(120deg, rgba(255, 255, 255, 0.06), transparent 40%);
  pointer-events: none;
}

.trace-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 14px;
  /* 卡片标题栏下保留一根细线，内容区内部不再画线 */
  border-bottom: 1px solid var(--line-2);
}

.trace-dots { display: flex; gap: 6px; }
.trace-dots i {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.16);
}
.trace-dots i:first-child { background: var(--brand); }

.trace-title {
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: 0.08em;
  color: var(--ink-3);
  text-transform: uppercase;
}

.trace-id {
  margin-left: auto;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--ink-4);
}

.trace-body { border-top: 0; }

.trace-lead {
  padding: 12px 0 4px;
  font-size: 13px;
  color: var(--ink-3);
  line-height: 1.7;
}

.trace-row {
  display: grid;
  grid-template-columns: 12px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  /* 卡片内部不画虚线，改用行距区分 */
  padding: 13px 0;
  border-bottom: 0;
  font-size: 13.5px;
}

.trace-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--ink-4);
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.03);
}
.trace-dot.ok { background: var(--ok); box-shadow: 0 0 0 4px var(--ok-dim); }
.trace-dot.warn { background: var(--warn); box-shadow: 0 0 0 4px var(--warn-dim); }
.trace-dot.fail { background: var(--danger); box-shadow: 0 0 0 4px var(--danger-dim); }

.trace-name { color: var(--ink); }
.trace-name small {
  display: block;
  margin-top: 2px;
  color: var(--ink-4);
  font-size: 11.5px;
}

.trace-ms {
  font-family: var(--font-mono);
  font-size: 11.5px;
  color: var(--ink-3);
  letter-spacing: 0.02em;
}

.trace-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding-top: 12px;
  border-top: 0;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--ink-4);
  letter-spacing: 0.03em;
}

.trace-total { color: var(--brand-2); }

/* ------------------------------ 区块 ------------------------------ */

.section {
  position: relative;
  padding: clamp(56px, 6.5vw, 88px) 0;
}
/* 深色页面上少画横线：区块之间靠留白分组，而不是一条条分割线 */
.section + .section { border-top: 0; }
.section-alt { background: var(--bg-1); }
/* 首页数据条紧跟在 hero 后面：上下留一样的空间，让它落在两条分隔线中间，而不是贴在 hero 的底线上 */
.section-flush-top { padding-block: clamp(28px, 3.4vw, 44px); }

.section-head {
  max-width: 720px;
  margin-bottom: clamp(32px, 4vw, 52px);
}
.section-head.center { margin-inline: auto; text-align: center; }
.section-head .eyebrow { margin-bottom: 14px; }
.section-head h2 {
  font-size: clamp(27px, 3.3vw, 38px);
  letter-spacing: -0.025em;
}
.section-head .lead {
  margin-top: 14px;
  font-size: 15.5px;
  line-height: 1.85;
  color: var(--ink-2);
}

.section-foot {
  margin-top: 36px;
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

/*
 * 同一区块里连续出现的多个内容块（标题 + 卡片 + 图表 + 分栏 + 表格…）
 * 需要统一的纵向节奏，否则后台一加区块就会贴在一起。
 */
.section > .container > * + * {
  margin-top: clamp(28px, 3.4vw, 46px);
}
.section > .container > .section-head {
  margin-bottom: 0;
}
.section > .container > .section-head + * {
  margin-top: clamp(32px, 4vw, 52px);
}
.section > .container > .section-foot {
  margin-top: clamp(24px, 2.8vw, 36px);
}

/* ------------------------------ 数据条 ------------------------------ */

.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0;
  /* 不画外框：只在相邻指标之间留一条淡淡的竖线 */
  background: transparent;
  border: 0;
  border-radius: 0;
}

.stat {
  /* 用内边距把数据条的高度撑起来（视觉上和原来 166px 一致），内容再垂直居中 */
  padding: clamp(30px, 3vw, 38px) 24px;
  background: transparent;
  /* 格子高度由最高的那个决定，矮的也要居中 */
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.stat:first-child { padding-left: 0; }
.stat:last-child { padding-right: 0; }
.stat + .stat { border-left: 1px solid var(--line); }
.stat-value {
  /* 指标里既有数字也有中文（2 / 4 / 全量 / 可追溯），统一用无衬线，气质才一致；
     数字用 tabular-nums 保持等宽对齐 */
  font-family: var(--font-sans);
  font-variant-numeric: tabular-nums;
  font-size: clamp(26px, 3vw, 34px);
  /* 大字号如果继承正文行高（1.6+），行框会上下各多出十几像素，看起来就没居中 */
  line-height: 1.05;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
  background: linear-gradient(120deg, #fff, #ff9ab8);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.stat-label {
  margin-top: 10px;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ink-2);
}
.stat-note {
  margin-top: 4px;
  font-size: 11.5px;
  line-height: 1.5;
  color: var(--ink-4);
}

/* ------------------------------ 卡片 ------------------------------ */

.cards {
  display: grid;
  gap: 16px;
}
.cards.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cards.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cards.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 26px 24px 24px;
  /* 深色底上少用可见描边：默认只用极淡的填充区分卡片，hover 才浮出边框 */
  border: 1px solid transparent;
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, 0.022);
  transition: border-color 0.28s var(--ease), transform 0.28s var(--ease),
    background 0.28s, box-shadow 0.28s;
  overflow: hidden;
}
.card:hover {
  border-color: var(--line-strong);
  background: rgba(255, 255, 255, 0.032);
  transform: translateY(-2px);
  box-shadow: 0 18px 44px -30px rgba(0, 0, 0, 0.55);
}

.card-icon {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  margin-bottom: 18px;
  border-radius: 11px;
  border: 0;
  background: rgba(255, 45, 111, 0.12);
  color: var(--brand-2);
}
.card-icon svg { width: 19px; height: 19px; }

.card h3 {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
}
.card p {
  margin-top: 9px;
  font-size: 14px;
  line-height: 1.75;
  color: var(--ink-2);
}

.card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}
.tag {
  padding: 3px 9px;
  border-radius: var(--r-pill);
  border: 0;
  font-size: 11.5px;
  color: var(--ink-3);
  background: rgba(255, 255, 255, 0.045);
}

.card-num {
  position: absolute;
  top: 20px;
  right: 22px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--ink-4);
}

.card-link {
  margin-top: auto;
  padding-top: 16px;
  font-size: 13px;
  color: var(--brand-2);
}

/* ------------------------------ 步骤 ------------------------------ */

.steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0;
  border-top: 1px solid var(--line);
}
.step {
  position: relative;
  padding: 28px 26px 28px 0;
  border-right: 1px solid var(--line);
}
/* 竖线右侧还要留出和左侧一样的 26px，否则第二列起文字会贴线 */
.step + .step { padding-left: 26px; }
.step:last-child { border-right: 0; padding-right: 0; }
.step-no {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  color: var(--brand-2);
}
.step h3 {
  margin-top: 12px;
  font-size: 16px;
  font-weight: 600;
}
.step p {
  margin-top: 8px;
  font-size: 13.5px;
  line-height: 1.75;
  color: var(--ink-2);
}

/* ------------------------------ 左文右板 ------------------------------ */

.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}
.split-copy h2 { font-size: clamp(25px, 3vw, 34px); margin-top: 14px; }
.split-copy .lead {
  margin-top: 14px;
  font-size: 15px;
  line-height: 1.85;
  color: var(--ink-2);
}

.bullet-list { margin-top: 26px; display: grid; gap: 14px; }
.bullet {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 12px;
  font-size: 14px;
  color: var(--ink-2);
  line-height: 1.7;
}
.bullet::before {
  content: "";
  width: 6px; height: 6px;
  margin-top: 8px;
  border-radius: 50%;
  background: var(--brand);
  box-shadow: 0 0 0 4px var(--brand-dim);
}
.bullet strong {
  display: block;
  margin-bottom: 2px;
  color: var(--ink);
  font-weight: 550;
}

/* 能力分层图 */
.layers {
  border: 0;
  border-radius: var(--r-xl);
  padding: 16px;
  background: linear-gradient(180deg, #150c12, #0d070a);
  box-shadow: var(--shadow-pop);
}
.layer {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 15px 16px;
  border: 0;
  border-radius: 11px;
  background: rgba(255, 255, 255, 0.022);
  margin-bottom: 8px;
}
.layer:last-child { margin-bottom: 0; }
.layer-idx {
  font-family: var(--font-mono);
  font-size: 10.5px;
  color: var(--brand-2);
  letter-spacing: 0.1em;
}
.layer-name { font-size: 14px; font-weight: 550; }
.layer-desc { margin-left: auto; font-size: 11.5px; color: var(--ink-4); text-align: right; }

/* ------------------------------ 表格 ------------------------------ */

.table-wrap {
  /* 不再给每张表套一个方框：一条细顶线 + 行分隔线就够，页面干净很多 */
  border-top: 1px solid var(--line-strong);
}
.table-scroll { overflow-x: auto; }

.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13.5px;
  line-height: 1.65;
}
.table caption {
  caption-side: top;
  text-align: left;
  padding: 12px 0 10px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
}
.table th {
  padding: 12px 16px 10px;
  text-align: left;
  font-weight: 500;
  font-size: 11.5px;
  letter-spacing: 0.08em;
  color: var(--ink-4);
  background: none;
  border-bottom: 0;
  white-space: nowrap;
}
.table th:first-child,
.table td:first-child { padding-left: 0; }
.table th:last-child,
.table td:last-child { padding-right: 0; }
.table td {
  padding: 14px 16px;
  /* 表格内部不画任何横线：靠行距和对齐区分行，整页更干净 */
  border-bottom: 0;
  color: var(--ink-2);
  vertical-align: top;
}
.table tbody tr:hover td { background: rgba(255, 255, 255, 0.012); }
.table .row-head {
  color: var(--ink);
  font-weight: 550;
  white-space: nowrap;
}
.table .cell-brand { color: var(--brand-2); font-weight: 550; }

/* ------------------------------ 金句 ------------------------------ */

.quote-band {
  position: relative;
  padding: clamp(56px, 7vw, 88px) 0;
  background:
    radial-gradient(60% 120% at 50% 0%, rgba(255, 45, 111, 0.1), transparent 70%),
    var(--bg-1);
  overflow: hidden;
}
.quote-inner {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}
.quote-mark {
  font-family: var(--font-label);
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.14em;
  color: var(--brand-2);
  text-transform: uppercase;
}
.quote-text {
  margin-top: 22px;
  font-size: clamp(21px, 2.9vw, 32px);
  font-weight: 600;
  line-height: 1.5;
  letter-spacing: -0.02em;
  color: var(--ink);
  text-wrap: pretty;
}
.quote-text em {
  font-style: normal;
  white-space: nowrap;
  background: linear-gradient(96deg, #ff2d6f, #ff8ab0 60%, #d8a6f7);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
@media (max-width: 620px) {
  .quote-text em { white-space: normal; }
}
.quote-source {
  margin-top: 18px;
  font-size: 12.5px;
  color: var(--ink-4);
}

/* ------------------------------ 交付清单 ------------------------------ */

.checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 34px;
}
.check-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 13px 0;
  border: 0;
  border-bottom: 1px solid var(--line-soft);
  border-radius: 0;
  background: transparent;
}
.check-item:nth-last-child(-n + 2) { border-bottom: 0; }
.check-label { font-size: 13.5px; color: var(--ink); }
.check-desc { display: block; margin-top: 2px; font-size: 11.5px; color: var(--ink-4); }

.pill {
  flex: none;
  padding: 3px 10px;
  border-radius: var(--r-pill);
  font-size: 11px;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
}
.pill.ready { color: var(--ok); background: var(--ok-dim); border-color: rgba(72, 201, 142, 0.28); }
.pill.building { color: var(--warn); background: var(--warn-dim); border-color: rgba(245, 181, 68, 0.28); }
.pill.planned { color: var(--ink-3); background: rgba(255, 255, 255, 0.04); border-color: var(--line-2); }

/* ------------------------------ CTA ------------------------------ */

.cta-band {
  position: relative;
  padding: clamp(56px, 7vw, 88px) 0;
  overflow: hidden;
  background: var(--bg-1);
}
.cta-band::before {
  content: "";
  position: absolute;
  inset: auto -10% -60% -10%;
  height: 420px;
  background: radial-gradient(closest-side, rgba(255, 45, 111, 0.18), transparent 70%);
  pointer-events: none;
}
.cta-inner {
  position: relative;
  text-align: center;
  max-width: 720px;
  margin: 0 auto;
}
.cta-inner h2 {
  font-size: clamp(26px, 3.4vw, 38px);
  letter-spacing: -0.025em;
}
.cta-inner .lead {
  margin-top: 14px;
  font-size: 15.5px;
  line-height: 1.8;
  color: var(--ink-2);
}
.cta-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

/* ------------------------------ 内页头 ------------------------------ */

.page-hero {
  position: relative;
  padding: clamp(72px, 9vw, 128px) 0 clamp(40px, 5vw, 64px);
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}
.page-hero::before {
  content: "";
  position: absolute;
  inset: -40% -10% auto;
  height: 110%;
  background:
    radial-gradient(40% 60% at 74% 0%, rgba(255, 45, 111, 0.14), transparent 70%),
    radial-gradient(40% 50% at 10% 30%, rgba(162, 28, 175, 0.1), transparent 70%);
  pointer-events: none;
}
.page-hero .container { position: relative; z-index: 1; }
.page-hero h1 {
  margin-top: 16px;
  font-size: clamp(30px, 4.2vw, 52px);
  letter-spacing: -0.03em;
  line-height: 1.14;
  max-width: 18ch;
}
.page-hero .lead {
  margin-top: 18px;
  max-width: 640px;
  font-size: 16px;
  line-height: 1.85;
  color: var(--ink-2);
}

.crumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--ink-4);
}
.crumbs a { color: var(--ink-3); }
.crumbs a:hover { color: var(--brand-2); }
.crumbs span { opacity: 0.5; }

/* ------------------------------ 富文本 ------------------------------ */

.prose {
  font-size: 15px;
  line-height: 1.9;
  color: var(--ink-2);
}
.prose > * + * { margin-top: 18px; }
.prose h2 {
  margin-top: 44px;
  font-size: 22px;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.prose h3 {
  margin-top: 32px;
  font-size: 17.5px;
  color: var(--ink);
}
.prose ul, .prose ol { padding-left: 1.3em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li { margin-top: 8px; }
.prose li::marker { color: var(--brand); }
.prose a { color: var(--brand-2); text-decoration: underline; text-underline-offset: 3px; }
.prose strong { color: var(--ink); font-weight: 600; }
.prose blockquote {
  margin: 28px 0;
  padding: 16px 22px;
  border-left: 2px solid var(--brand);
  background: rgba(255, 45, 111, 0.05);
  border-radius: 0 10px 10px 0;
  color: var(--ink-2);
}
.prose code {
  font-family: var(--font-mono);
  font-size: 0.9em;
  padding: 2px 6px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.06);
  color: var(--plum);
}
.prose hr { border: 0; border-top: 1px solid var(--line); margin: 36px 0; }
.prose table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.prose th, .prose td { padding: 10px 14px; border: 1px solid var(--line); text-align: left; }

/* ------------------------------ 场景卡片 ------------------------------ */

.solution-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.solution-card {
  display: flex;
  flex-direction: column;
  padding: 24px;
  border: 1px solid transparent;
  border-radius: var(--r-lg);
  background: rgba(255, 255, 255, 0.022);
  transition: border-color 0.28s var(--ease), transform 0.28s var(--ease), background 0.28s;
}
.solution-card:hover {
  border-color: var(--line-strong);
  background: rgba(255, 255, 255, 0.032);
  transform: translateY(-2px);
  background: linear-gradient(180deg, rgba(255, 45, 111, 0.05), transparent 62%);
}
.solution-card h3 { margin-top: 16px; font-size: 16.5px; }
.solution-card p { margin-top: 8px; font-size: 13.5px; color: var(--ink-2); line-height: 1.7; }
.solution-card .card-tags { margin-top: 16px; }

/* ------------------------------ 表单 ------------------------------ */

.contact-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.72fr);
  gap: clamp(28px, 5vw, 64px);
  align-items: start;
}

.form-card {
  padding: clamp(22px, 3vw, 32px);
  border: 0;
  border-radius: var(--r-xl);
  background: linear-gradient(180deg, #150c12, #0e070a);
  box-shadow: var(--shadow-card);
}

.field { margin-bottom: 16px; }
.field label {
  display: block;
  margin-bottom: 7px;
  font-size: 12.5px;
  color: var(--ink-3);
  letter-spacing: 0.01em;
}
.field label .req { color: var(--brand); margin-left: 3px; }

.input, .textarea, .select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--line-2);
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.32);
  color: var(--ink);
  font-size: 14px;
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}
.textarea { min-height: 120px; resize: vertical; line-height: 1.7; }
.input::placeholder, .textarea::placeholder { color: var(--ink-4); }
.input:hover, .textarea:hover { border-color: var(--line-3); }
.input:focus, .textarea:focus, .select:focus {
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(255, 45, 111, 0.16);
  background: rgba(0, 0, 0, 0.42);
}
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field-error { margin-top: 6px; font-size: 12px; color: var(--danger); }

.form-actions { margin-top: 22px; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.form-hint { font-size: 11.5px; color: var(--ink-4); }

.form-success {
  padding: 16px 18px;
  border: 1px solid rgba(72, 201, 142, 0.3);
  background: var(--ok-dim);
  border-radius: 10px;
  color: var(--ok);
  font-size: 13.5px;
  margin-bottom: 18px;
}

/* 蜜罐字段：真人看不见 */
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  width: 1px; height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* ------------------------------ 联系信息 ------------------------------ */

.contact-info { display: grid; gap: 2px; }
.info-item {
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}
.info-item:first-child { padding-top: 0; }
.info-item:last-child { border-bottom: 0; }
.info-label {
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-4);
}
.info-value {
  margin-top: 7px;
  font-size: 15.5px;
  color: var(--ink);
}
.info-value a:hover { color: var(--brand-2); }
.info-note { margin-top: 4px; font-size: 12.5px; color: var(--ink-3); }

/* ------------------------------ 页脚 ------------------------------ */

.site-footer {
  border-top: 1px solid var(--line);
  background: var(--bg-1);
  padding: 64px 0 0;
}

.footer-top {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(2, minmax(0, 0.8fr)) minmax(0, 1fr);
  gap: 32px;
  padding-bottom: 48px;
}
.footer-brand .brand { margin: 0 0 16px; }
.footer-desc {
  max-width: 300px;
  font-size: 13px;
  line-height: 1.8;
  color: var(--ink-3);
}
.footer-title {
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--ink-2);
  margin-bottom: 16px;
}
.footer-links { display: grid; gap: 10px; }
.footer-links a {
  font-size: 13px;
  color: var(--ink-3);
  transition: color 0.2s;
}
.footer-links a:hover { color: var(--ink); }

.footer-sister {
  padding: 16px;
  border: 1px solid transparent;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.025);
  transition: border-color 0.25s;
}
.footer-sister:hover { border-color: var(--line-strong); }
.footer-sister .fs-label {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--brand-2);
  text-transform: uppercase;
}
.footer-sister .fs-name {
  margin-top: 8px;
  font-size: 14.5px;
  color: var(--ink);
}
.footer-sister .fs-desc { margin-top: 4px; font-size: 12px; color: var(--ink-3); }
.footer-sister .fs-go { margin-top: 10px; font-size: 12px; color: var(--ink-2); }

.footer-bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 24px;
  padding: 22px 0 28px;
  border-top: 1px solid var(--line);
  font-size: 12px;
  color: var(--ink-4);
}
.footer-bottom a:hover { color: var(--ink-2); }
.footer-bottom .spacer { margin-left: auto; }

/* ------------------------------ 图片 ------------------------------ */

.figure {
  margin: 0;
}
.figure + .card,
.figure img {
  width: 100%;
  height: auto;
  border-radius: var(--r-lg);
  border: 1px solid var(--line);
  background: var(--bg-2);
  transition: border-color 0.25s;
}
.figure a:hover img { border-color: var(--line-brand); }
.figure-narrow {
  max-width: 760px;
  margin-inline: auto;
}
.figure figcaption {
  margin-top: 12px;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--ink-4);
  text-align: center;
}

/* ------------------------------ 图集 ------------------------------ */

.gallery {
  display: grid;
  gap: 12px;
}
.gallery.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gallery.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gallery.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.gallery-item { margin: 0; min-width: 0; }

.gallery-open {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  cursor: zoom-in;
  border-radius: var(--r-lg);
  overflow: hidden;
}
.gallery-open img {
  display: block;
  width: 100%;
  border-radius: var(--r-lg);
  border: 1px solid var(--line);
  background: var(--bg-2);
  transition: transform 0.35s var(--ease), border-color 0.25s;
}
.gallery-open:hover img {
  border-color: var(--line-brand);
  transform: scale(1.012);
}
.gallery.ratio-1-1 .gallery-open img { aspect-ratio: 1 / 1; object-fit: cover; }
.gallery.ratio-4-3 .gallery-open img { aspect-ratio: 4 / 3; object-fit: cover; }
.gallery.ratio-16-9 .gallery-open img { aspect-ratio: 16 / 9; object-fit: cover; }

.gallery-item figcaption {
  margin-top: 8px;
  font-size: 12px;
  line-height: 1.6;
  color: var(--ink-4);
}

/* ------------------------------ 视频 ------------------------------ */

.video-block { margin: 0; }
.video-block.is-narrow { max-width: 760px; margin-inline: auto; }

.video-frame {
  position: relative;
  overflow: hidden;
  border-radius: var(--r-lg);
  border: 1px solid var(--line);
  background: #000;
}
.video-frame iframe,
.video-frame video {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #000;
}
.video-block.ratio-16-9 .video-frame { aspect-ratio: 16 / 9; }
.video-block.ratio-4-3 .video-frame { aspect-ratio: 4 / 3; }
.video-block.ratio-1-1 .video-frame { aspect-ratio: 1 / 1; }
.video-block.ratio-9-16 .video-frame { aspect-ratio: 9 / 16; max-width: 460px; margin-inline: auto; }

.video-block figcaption {
  margin-top: 12px;
  font-size: 12.5px;
  line-height: 1.7;
  color: var(--ink-4);
  text-align: center;
}

/* 大图浏览 */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(4, 2, 4, 0.94);
  backdrop-filter: blur(6px);
}
.lightbox img {
  max-width: 92vw;
  max-height: 84vh;
  border-radius: 10px;
  box-shadow: 0 40px 100px -40px rgba(0, 0, 0, 0.9);
}
.lightbox-btn {
  position: absolute;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid var(--line-2);
  background: rgba(20, 12, 17, 0.8);
  color: var(--ink);
  font-size: 18px;
  cursor: pointer;
  transition: background 0.2s, border-color 0.2s;
}
.lightbox-btn:hover { background: rgba(30, 18, 25, 0.95); border-color: var(--line-3); }
.lightbox-close { top: 20px; right: 20px; }
.lightbox-prev { left: 20px; top: 50%; transform: translateY(-50%); }
.lightbox-next { right: 20px; top: 50%; transform: translateY(-50%); }
.lightbox-count {
  position: absolute;
  bottom: 22px;
  left: 50%;
  transform: translateX(-50%);
  font-family: var(--font-mono);
  font-size: 11.5px;
  letter-spacing: 0.08em;
  color: var(--ink-3);
}
body.lightbox-open { overflow: hidden; }

@media (max-width: 880px) {
  .gallery.cols-3, .gallery.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
  .gallery.cols-2, .gallery.cols-3, .gallery.cols-4 { grid-template-columns: 1fr; }
  .lightbox-prev, .lightbox-next { width: 38px; height: 38px; }
}

/* ------------------------------ 响应式 ------------------------------ */

@media (max-width: 1080px) {
  .hero-inner { grid-template-columns: 1fr; gap: 40px; }
  .hero-art { max-width: 520px; }
  .cards.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .solution-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 880px) {
  .nav-links, .nav-actions .btn-ghost { display: none; }
  .nav-toggle { display: inline-flex; }
  .nav { height: 66px; }

  .site-header.is-open {
    background: rgba(7, 4, 6, 0.97);
    backdrop-filter: blur(18px);
  }
  .site-header.is-open .nav-links {
    position: absolute;
    top: 66px;
    left: 0;
    right: 0;
    display: grid;
    gap: 2px;
    padding: 12px var(--gutter) 18px;
    background: rgba(7, 4, 6, 0.98);
    border-bottom: 1px solid var(--line);
  }
  .site-header.is-open .nav-links a {
    padding: 12px 14px;
    font-size: 15px;
  }

  .cards.cols-3, .cards.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; }
  .checklist { grid-template-columns: 1fr; }
  .step { border-right: 0; border-bottom: 1px solid var(--line); padding: 24px 0; }
  .step + .step { padding-left: 0; }
  .step:last-child { border-bottom: 0; }
}

@media (max-width: 620px) {
  :root { --gutter: 18px; }
  .hero h1 { font-size: clamp(26px, 7.4vw, 34px); }
  .hero .accent { font-size: 0.58em; }
  .cards.cols-2, .cards.cols-3, .cards.cols-4,
  .solution-grid { grid-template-columns: 1fr; }
  .field-row { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr; gap: 28px; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stat { padding: 24px 18px; }
  .stat:first-child, .stat:nth-child(odd) { padding-left: 0; }
  .stat:nth-child(even) { border-left: 1px solid var(--line); }
  .stat:nth-child(n + 3) { border-top: 1px solid var(--line); }
  .footer-bottom { font-size: 11.5px; }
  .hero-actions .btn { flex: 1 1 auto; }
}

/* theme-apps.css */
/* ==========================================================================
   忆创 · 智能应用中心主题（浅色 + 蓝）
   只在 <html data-theme="apps"> 下生效，不影响 uni-dct 的深色官网。
   参考旧站：白底、#165dff 主色、灰底数据条、白卡片、深蓝 CTA。
   ========================================================================== */

[data-theme="apps"] {
  color-scheme: light;

  --bg-0: #ffffff;
  --bg-1: #f7f8fa;
  --bg-2: #ffffff;
  --bg-3: #f2f3f5;
  --bg-glass: rgba(255, 255, 255, 0.86);

  --ink: #1d2129;
  --ink-2: #4e5969;
  --ink-3: #86909c;
  --ink-4: #a9aeb8;

  --brand: #165dff;
  --brand-2: #165dff;
  --brand-3: #4080ff;
  --brand-dim: rgba(22, 93, 255, 0.08);
  --brand-glow: rgba(22, 93, 255, 0.22);
  --violet: #722ed1;
  --plum: #4080ff;

  --line: #e5e6eb;
  --line-2: #d6d9e0;
  --line-3: #c9cdd4;
  --line-brand: rgba(22, 93, 255, 0.26);
  --line-soft: #eef0f4;
  --line-strong: #e0e3e8;

  --shadow-card: 0 6px 20px -14px rgba(29, 33, 41, 0.2);
  --shadow-pop: 0 18px 40px -26px rgba(29, 33, 41, 0.28);
}

[data-theme="apps"] body { background: var(--bg-0); color: var(--ink); }

/* 顶栏：白底、细分割线；滚动后轻微毛玻璃 */
[data-theme="apps"] .site-header { background: rgba(255, 255, 255, 0.86); }
[data-theme="apps"] .site-header.is-scrolled {
  background: rgba(255, 255, 255, 0.94);
  border-bottom-color: var(--line);
  box-shadow: 0 1px 0 rgba(29, 33, 41, 0.04);
}
[data-theme="apps"] .brand-cn { color: #1d2129; }
[data-theme="apps"] .brand-en { color: #a9aeb8; }
[data-theme="apps"] .nav-links a { color: #4e5969; border-radius: 10px; }
[data-theme="apps"] .nav-links a:hover { color: #1d2129; background: #f2f3f5; }
[data-theme="apps"] .nav-links a.is-active { color: #1d2129; font-weight: 600; }
[data-theme="apps"] .nav-links a.is-active::after {
  left: 13px; right: 13px; bottom: 1px; height: 2px; border-radius: 2px;
  background: var(--brand);
}

/* 按钮：蓝色药丸 + 白底描边 */
[data-theme="apps"] .btn { border-radius: 999px; }
[data-theme="apps"] .btn-primary {
  background: var(--brand);
  color: #fff;
  box-shadow: 0 8px 18px -10px rgba(22, 93, 255, 0.55);
}
[data-theme="apps"] .btn-primary:hover {
  background: #4080ff;
  filter: none;
  box-shadow: 0 10px 24px -10px rgba(22, 93, 255, 0.65);
}
[data-theme="apps"] .btn-ghost {
  background: #fff;
  border-color: #e5e6eb;
  color: #1d2129;
}
[data-theme="apps"] .btn-ghost:hover { background: #f7f8fa; border-color: #c9cdd4; }

/* 首屏：淡蓝渐变 + 极浅网格 */
[data-theme="apps"] .hero {
  background: linear-gradient(180deg, #f4f7ff 0%, #ffffff 76%);
  border-bottom-color: var(--line);
}
[data-theme="apps"] .hero::before {
  background:
    radial-gradient(56% 56% at 84% 2%, rgba(22, 93, 255, 0.14), transparent 70%),
    radial-gradient(44% 48% at 6% 24%, rgba(22, 93, 255, 0.07), transparent 72%);
}
[data-theme="apps"] .hero-grid-bg {
  background-image:
    linear-gradient(rgba(22, 93, 255, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(22, 93, 255, 0.09) 1px, transparent 1px);
  opacity: 0.32;
}
[data-theme="apps"] .hero h1 { color: #1d2129; letter-spacing: -0.03em; }
[data-theme="apps"] .hero .accent {
  display: inline;
  /* 标题里的「·」在标题尾部，右边没有空格；补一个和左侧空格等宽的距离 */
  margin: 0 0 0 0.26em;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: var(--brand);
}
[data-theme="apps"] .hero .lead { color: #4e5969; }
[data-theme="apps"] .hero-note { color: #86909c; }
[data-theme="apps"] .eyebrow { color: #86909c; letter-spacing: 0.16em; }
[data-theme="apps"] .eyebrow::before { opacity: 0.5; }

/* 数据条：灰底 + 细分割 */
[data-theme="apps"] .stats { background: #e5e6eb; border-color: #e5e6eb; }
[data-theme="apps"] .stat { background: #f7f8fa; }
[data-theme="apps"] .stat-value {
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: -0.01em;
  background: none;
  -webkit-background-clip: initial;
  background-clip: initial;
  color: #1d2129;
}
[data-theme="apps"] .stat-label { color: #4e5969; font-weight: 600; }
[data-theme="apps"] .stat-note { color: #86909c; }

/* 章节标题 */
[data-theme="apps"] .section-head h2 { color: #1d2129; }
[data-theme="apps"] .section-head .lead { color: #4e5969; }

/* 卡片：白底描边，悬浮轻投影 */
[data-theme="apps"] .card {
  background: #fff;
  border-color: #e5e6eb;
  box-shadow: var(--shadow-card);
}
[data-theme="apps"] .card:hover {
  background: #fff;
  border-color: #c9cdd4;
  box-shadow: 0 16px 34px -22px rgba(29, 33, 41, 0.32);
}
[data-theme="apps"] .card h3 { color: #1d2129; }
[data-theme="apps"] .card p { color: #4e5969; }
[data-theme="apps"] .card-icon {
  border-color: rgba(22, 93, 255, 0.16);
  background: rgba(22, 93, 255, 0.08);
  color: var(--brand);
  border-radius: 12px;
}
[data-theme="apps"] .card-tags { border-top-color: #f2f3f5; }
[data-theme="apps"] .tag {
  background: #f2f3f5;
  border-color: transparent;
  color: #4e5969;
}
[data-theme="apps"] .card-link { color: var(--brand); }

/* 步骤 / 清单 */
[data-theme="apps"] .step-no { color: var(--brand); }
[data-theme="apps"] .steps .step { border-top-color: #f2f3f5; }
[data-theme="apps"] .checklist li { border-bottom-color: #f2f3f5; }

/* 收口：深蓝整条（对应旧站深色 contact 卡片） */
[data-theme="apps"] .cta-band { background: #0a1f44; border-top: 0; }
[data-theme="apps"] .cta-band::before {
  background:
    radial-gradient(closest-side, rgba(22, 93, 255, 0.55), transparent 72%),
    radial-gradient(60% 60% at 82% 10%, rgba(64, 128, 255, 0.28), transparent 70%);
}
[data-theme="apps"] .cta-inner h2 { color: #fff; }
[data-theme="apps"] .cta-inner .lead { color: rgba(255, 255, 255, 0.72); }
[data-theme="apps"] .cta-inner .btn-ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.32);
  color: #fff;
}
[data-theme="apps"] .cta-inner .btn-ghost:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.5);
}

/* 页脚：浅灰 */
[data-theme="apps"] .site-footer { background: #f7f8fa; border-top: 1px solid #e5e6eb; }
[data-theme="apps"] .footer-desc { color: #86909c; }
[data-theme="apps"] .footer-title { color: #86909c; }
[data-theme="apps"] .footer-links a { color: #4e5969; }
[data-theme="apps"] .footer-links a:hover { color: var(--brand); }
[data-theme="apps"] .footer-bottom { border-top-color: #e5e6eb; color: #86909c; }
[data-theme="apps"] .footer-sister { background: #fff; border-color: #e5e6eb; }

/* 表单 / 联系页 */
[data-theme="apps"] .form-card {
  background: #fff;
  border: 1px solid #e5e6eb;
  box-shadow: var(--shadow-card);
}
[data-theme="apps"] .field label { color: #4e5969; }
[data-theme="apps"] .input,
[data-theme="apps"] textarea,
[data-theme="apps"] select {
  background: #fff;
  border-color: #e5e6eb;
  color: #1d2129;
}
[data-theme="apps"] .input:focus,
[data-theme="apps"] textarea:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(22, 93, 255, 0.12);
}
[data-theme="apps"] .contact-info .info-row { border-bottom-color: #f2f3f5; }

/* 富文本 / 法务页 */
[data-theme="apps"] .rich-text { color: #4e5969; }
[data-theme="apps"] .rich-text h2,
[data-theme="apps"] .rich-text h3 { color: #1d2129; }
[data-theme="apps"] .rich-text a { color: var(--brand); }
