/* 工作室 / 在建 / 手记三个轻页面共用的样子（2026-10-19）：跟山门同一套墨夜色调和思源宋体，不放 3D、不带开场，点开就是内容 */
/*FONT*/
@font-face {
  font-family: "V6Serif";
  src: url("../assets/font/serif.woff2") format("woff2");
  font-weight: 200 900;
  font-display: swap;
  unicode-range:
    U+20-7E, U+B7, U+2014, U+2018-2019, U+201C-201D, U+2026, U+2190-2193, U+3000-3002, U+3008-300D, U+3010-3011, U+4E00, U+4E07-4E0B,
    U+4E0D-4E0E, U+4E14, U+4E16, U+4E1A, U+4E1C-4E1D, U+4E24, U+4E2A, U+4E2D, U+4E39-4E3B, U+4E48-4E49, U+4E4B, U+4E4E,
    U+4E5D, U+4E5F-4E60, U+4E66, U+4E71, U+4E86, U+4E8B-4E8C, U+4E8E, U+4E91-4E92, U+4E94, U+4EAB, U+4EAE, U+4EB2,
    U+4EBA, U+4EC0, U+4ECB, U+4ECE, U+4ED1, U+4ED6, U+4ED9, U+4EE3-4EE5, U+4EF6, U+4EFB, U+4EFD, U+4F0F,
    U+4F18, U+4F1A, U+4F20, U+4F4D-4F4F, U+4F53, U+4F55, U+4F59, U+4F5C, U+4F60, U+4F73, U+4F7F, U+4F9D,
    U+4FA0, U+4FBF, U+4FDD, U+4FE1, U+4FEE-4FEF, U+5012, U+5019, U+501F, U+503C, U+505A, U+505C, U+5077,
    U+50CF, U+513F, U+5143, U+5148-5149, U+514D, U+5165, U+5168, U+516B-516D, U+5171, U+5173, U+5176-5177, U+5185,
    U+518D, U+5192, U+5199, U+51A0, U+51A2, U+51A5, U+51B2, U+51CC, U+51E0-51E1, U+51FA-51FB, U+5206-5207, U+5212,
    U+5217, U+5219-521B, U+521D, U+522B, U+5230, U+5236, U+523B, U+524D, U+5251, U+5267, U+526A, U+526F,
    U+529B, U+52A0, U+52A8, U+5305, U+5316-5317, U+533A, U+5341, U+5343, U+5347, U+534A, U+534F, U+5355,
    U+535A, U+5361, U+5377, U+5382, U+538B, U+539A, U+539F, U+53BB, U+53C2, U+53CC-53CD, U+53D1, U+53D6-53D8,
    U+53E4, U+53EA, U+53EC, U+53EF, U+53F3, U+53F6-53F8, U+5408, U+540C-540E, U+5411, U+542C, U+544A, U+5468,
    U+547D, U+548C, U+54C1, U+54EA, U+54ED, U+5546, U+5668, U+566A, U+56DB, U+56DE, U+56E2, U+56F4,
    U+56FE, U+5706, U+5708, U+571F, U+5723, U+5728, U+5730, U+573A, U+5740, U+5747, U+5750, U+5757,
    U+5761, U+578B, U+57AB, U+57CE, U+57FA, U+5806, U+5815, U+5835, U+5899, U+58A8, U+58F0, U+58F6,
    U+5904, U+5907, U+590D, U+5916, U+591A, U+591C, U+591F, U+5927, U+5929-592A, U+5934, U+5956, U+5979,
    U+597D, U+5982, U+5988, U+59CB, U+59D0, U+5A92, U+5B50, U+5B57, U+5B66, U+5B69, U+5B8B-5B8C, U+5B97,
    U+5B9A, U+5B9E, U+5BA1, U+5BA3-5BA4, U+5BB8-5BB9, U+5BBD, U+5BC4, U+5BC6, U+5BD2, U+5BF9, U+5BFC, U+5C01,
    U+5C0F, U+5C11, U+5C18, U+5C31, U+5C3D-5C3E, U+5C42, U+5C4F, U+5C55, U+5C71, U+5C9B, U+5CB8, U+5CF0,
    U+5DC5, U+5DDE, U+5DE5-5DE6, U+5DE8, U+5DF1-5DF2, U+5DF4, U+5E02-5E03, U+5E08, U+5E26, U+5E2D, U+5E55, U+5E73-5E74,
    U+5E7D, U+5E7F, U+5E87, U+5E8F, U+5E95, U+5E9C, U+5EA6-5EA7, U+5EF6, U+5EFA, U+5F00, U+5F0F, U+5F15,
    U+5F20, U+5F52-5F53, U+5F55, U+5F62, U+5F71, U+5F80, U+5F88, U+5F97, U+5FA1, U+5FAE, U+5FC3, U+5FD7,
    U+5FEB, U+5FF5, U+600E, U+6027, U+60AC, U+60C5, U+60F3, U+610F, U+6162, U+620F-6210, U+6216, U+622A,
    U+624B, U+624D, U+6251, U+6253, U+6267, U+626B, U+6279, U+627F, U+628A, U+6296, U+62A4-62A5, U+62B1,
    U+62C9, U+62D6, U+62EC, U+62FF, U+6301, U+6307, U+6309, U+6324, U+632A, U+6362, U+6389, U+638C,
    U+6392, U+63A5, U+63A7, U+63D0, U+642D, U+64AD, U+64CD-64CE, U+64E6, U+6536, U+6539, U+653E, U+6545,
    U+6548, U+6559, U+6563, U+6570, U+6574, U+6587, U+6599, U+65B0, U+65B9, U+65C1, U+65C5, U+65CB,
    U+65D7, U+65E0, U+65E5, U+65E7, U+65E9, U+65F6, U+6606, U+660E, U+661F, U+6625, U+662F, U+6653,
    U+665A, U+666F, U+6682, U+6697, U+66AE, U+66F2, U+66F4, U+6700, U+6709, U+671F, U+6728, U+672A,
    U+672C, U+672F, U+673A, U+675F, U+6765, U+677F, U+679C, U+67D4, U+67E5, U+6807, U+680F, U+6811,
    U+6816, U+6837, U+683C, U+6848, U+684C, U+6A21, U+6A2A, U+6B21, U+6B47, U+6B63-6B65, U+6B7B, U+6B8B,
    U+6BB5, U+6BCF, U+6BD4, U+6C34, U+6C38, U+6C41, U+6C47, U+6C5F, U+6C89, U+6C8C, U+6C99, U+6CA1,
    U+6CA7, U+6CAA, U+6CBF, U+6CD5, U+6CE2, U+6D07, U+6D32, U+6D3E, U+6D41, U+6D45, U+6D4F, U+6D6E,
    U+6D77-6D78, U+6DE1, U+6DF1, U+6DF7, U+6DFB, U+6E05, U+6E10, U+6E38, U+6E56, U+6E7E-6E7F, U+6EDA, U+6EE1,
    U+6F3E, U+6F9C, U+7011, U+701B, U+706B, U+706F-7070, U+7075, U+70B9, U+70DF, U+70ED, U+715E, U+7167,
    U+71D5, U+7247-7248, U+724C, U+7269, U+72B6, U+73B0, U+751F, U+7528, U+7531, U+7535, U+753B, U+754C,
    U+7559, U+7565, U+767B, U+767D-767E, U+7684, U+7686, U+76D6, U+76D8, U+76DB, U+76EE, U+76F4, U+770B,
    U+7720, U+773C, U+7740, U+77ED, U+77F3, U+7801, U+7834, U+788E, U+78E8, U+793A, U+795E, U+7981,
    U+79BB, U+79C0-79C1, U+79D2, U+7A0B, U+7A76, U+7A7A, U+7A7F, U+7A84, U+7ACB, U+7AD6, U+7AD9, U+7AE0,
    U+7B14, U+7B2C, U+7B49, U+7B56, U+7B80, U+7B97, U+7BC7, U+7C89, U+7C92, U+7C97, U+7CFB, U+7D20,
    U+7D2B, U+7D2F, U+7EA2, U+7EA6-7EA7, U+7EAF, U+7EBF, U+7EC3, U+7EC6, U+7EC8, U+7ECD, U+7ECF, U+7ED3,
    U+7ED8-7ED9, U+7EDD, U+7EDF, U+7EED, U+7EF4, U+7F09, U+7F16, U+7F1D, U+7F29, U+7F51, U+7F8E, U+7FFB,
    U+8005, U+800C, U+8015, U+804A, U+80F6, U+80FD, U+810A, U+8111, U+811A, U+8138, U+8179, U+81EA,
    U+8206, U+821F, U+8272, U+8282, U+8292, U+82CD, U+8336, U+8363, U+836F, U+83B1, U+8425, U+843D,
    U+8457, U+846C, U+8499, U+84DD, U+84EC, U+85AF, U+865A, U+884C, U+8868, U+88AB, U+88C2, U+8910,
    U+897F, U+8981, U+89C1-89C2, U+89C6, U+89C8-89C9, U+89D2, U+89E3, U+8A00, U+8A89, U+8BA1, U+8BA4, U+8BA9,
    U+8BAE, U+8BB0, U+8BB2, U+8BBE, U+8BC1, U+8BC9, U+8BDD, U+8BF4, U+8BFA-8BFB, U+8BFE, U+8C03, U+8C2A,
    U+8C37, U+8C61, U+8D25-8D26, U+8D28, U+8D44, U+8D70, U+8D76-8D77, U+8D85, U+8D8A, U+8DDF, U+8DEF, U+8DF3,
    U+8EAB, U+8F6C, U+8F6E-8F6F, U+8F7B, U+8F7D, U+8F9F, U+8FB9, U+8FC7, U+8FD0-8FD1, U+8FD8-8FD9, U+8FDB-8FDC, U+8FDE-8FDF,
    U+9006, U+9009, U+900F, U+9014, U+901A, U+9020, U+9053, U+906E, U+90A3, U+90FD, U+91CC-91CD, U+91CF,
    U+9489, U+94BB, U+94ED, U+94F6, U+94FA, U+952E, U+955C, U+957F, U+95E8, U+95EE-95EF, U+95F4, U+9632-9634,
    U+9644, U+9646, U+964D, U+9664, U+9694, U+96C6, U+96D5, U+96E8, U+96EA, U+96FE, U+9700, U+9704,
    U+971C, U+971E, U+9752, U+9759, U+9760, U+9762, U+97F3, U+9875-9876, U+9879-987A, U+9884, U+9891, U+9897-9898,
    U+989C, U+98CE, U+98D8, U+98DE, U+9910, U+9986, U+9996, U+9A97, U+9AD8, U+9B42, U+9B54, U+9ED1,
    U+9F20, U+FF01, U+FF08-FF09, U+FF0C, U+FF1A-FF1B, U+FF1F, U+FF5E;
}
@font-face {
  font-family: "V6Serif";
  src: url("../assets/font/serif-du.woff2") format("woff2");
  font-weight: 200 900;
  font-display: swap;
  unicode-range:
    U+4E01, U+4E22, U+4E2B, U+4E32, U+4E34, U+4E3E, U+4E43, U+4E45, U+4E70, U+4E9B, U+4EA4, U+4EC1,
    U+4EC5, U+4ECA, U+4ECD, U+4EEA, U+4EEC, U+4EF0, U+4EFF, U+4F11, U+4F17, U+4F24, U+4F2F, U+4F34,
    U+4F38, U+4F3C, U+4F46, U+4F5B, U+4F69, U+4FA7, U+4FCA, U+4FCF, U+4FFA, U+504F, U+5076, U+50BB,
    U+50F5, U+5154, U+516E, U+517D, U+51B3, U+51B5, U+51B7, U+51CF, U+51F6, U+5200, U+5229, U+523A,
    U+52A9-52AA, U+52B3, U+52BF, U+52FE, U+533B, U+533E, U+534E, U+5356, U+5373-5374, U+5378, U+53C8, U+53CA-53CB,
    U+53E3, U+53E5-53E6, U+53EB, U+53EE, U+53F0, U+53F9, U+5403-5404, U+5406, U+5410, U+5417, U+541E-541F, U+5426-5427,
    U+542B, U+542F, U+543C, U+543E, U+5440, U+5446, U+5448, U+5462, U+547C, U+5490, U+54AC, U+54AF,
    U+54B8, U+54C4, U+54CD, U+54E5, U+5507, U+552F, U+5533, U+554A, U+5566, U+556A, U+5578, U+5583-5584,
    U+558A, U+559C-559D, U+55A7, U+55D2, U+55EF, U+5631-5632, U+5634, U+5636, U+5659, U+56E0, U+5751, U+5760,
    U+5766, U+5782, U+5792, U+57CB, U+5824, U+582A, U+586B, U+5883, U+58C1, U+58EE, U+5915, U+592B,
    U+592E, U+5931, U+5938, U+593A, U+5947-5949, U+5951, U+5954, U+5973, U+5987, U+5996, U+5999, U+59D1,
    U+5A01, U+5A11, U+5A18, U+5A46, U+5AB3, U+5B58, U+5B64, U+5B7D, U+5B83, U+5B87, U+5B89, U+5B8F,
    U+5B9B, U+5B9D, U+5BA2, U+5BAB, U+5BB6, U+5BC2, U+5BFB, U+5C06, U+5C0A, U+5C16, U+5C24, U+5C45,
    U+5C4A, U+5C81, U+5CA9, U+5CAB, U+5CB3, U+5CCB, U+5CE6, U+5CE8, U+5CED, U+5D99, U+5DCD, U+5DEE,
    U+5E05, U+5E15, U+5E18, U+5E2E, U+5E38, U+5E72, U+5E76, U+5E78, U+5E7C, U+5E84, U+5E86, U+5E94,
    U+5E9F, U+5F02-5F03, U+5F1F, U+5F26, U+5F2F, U+5F31, U+5F3A, U+5F69, U+5F79, U+5F7B-5F7C, U+5F81, U+5F85,
    U+5F90, U+5F92, U+5FB7, U+5FC5-5FC6, U+5FD8-5FD9, U+5FE7, U+5FFD, U+6000-6001, U+6012, U+6014-6015, U+601D, U+602A,
    U+602F, U+604D, U+6050, U+6062, U+6069, U+606F, U+6076, U+6089, U+6096, U+60A0, U+60A8, U+60CA,
    U+60D1, U+60EF, U+611F, U+6127, U+613F, U+614C, U+6155, U+6170, U+61A8, U+61C2, U+6211, U+6218,
    U+623E, U+6240-6241, U+6249, U+624E, U+6258, U+626D, U+6276, U+627E, U+6293, U+6295, U+62AC, U+62BD,
    U+62BF, U+62C2, U+62C5, U+62CD, U+62D2, U+62DB, U+62DF, U+62E2, U+62E5, U+62E9, U+62ED, U+62FD-62FE,
    U+6302, U+6311, U+6325, U+632F, U+6332, U+634F, U+6361, U+6367, U+636E, U+6380, U+638F-6390, U+63A0,
    U+63D2, U+63E1, U+6458, U+6469, U+6492, U+649E, U+64BC, U+6500, U+6518, U+6525, U+6551, U+655B,
    U+6562, U+656C, U+65A9, U+65AD, U+65F7, U+660F, U+6620, U+663C, U+663E, U+6643, U+6655, U+667A,
    U+6696, U+66B4, U+66F0, U+66FE, U+6708, U+670D, U+671B, U+6731, U+6734, U+6742, U+677E, U+6781,
    U+6797, U+679A, U+67C4, U+67D3, U+67DC, U+67F1, U+6817, U+6839, U+683D, U+68A2, U+68A6, U+68F5,
    U+690D, U+6912, U+695A, U+697C, U+6982, U+6A3D, U+6A90, U+6B22-6B23, U+6B32, U+6B3A, U+6B4C, U+6B66,
    U+6B92, U+6BBF, U+6BCD, U+6BDB, U+6BEB, U+6C14, U+6C42, U+6C49, U+6C57, U+6C81, U+6CB3, U+6CB9,
    U+6CBE, U+6CDB, U+6CE3, U+6CE8, U+6CEA, U+6CFC, U+6D01, U+6D12, U+6D1B, U+6D1E, U+6D3B, U+6D4B,
    U+6D51, U+6D53, U+6D8C, U+6D95, U+6D9B, U+6DA6, U+6E0A, U+6E21, U+6E29, U+6E90, U+6E9C, U+6E9F,
    U+6EA2, U+6ED1, U+6EF4, U+6F14, U+6F20, U+6F2B, U+706D, U+707F, U+7092, U+70AE, U+70BC-70BD, U+70C2,
    U+70C8, U+70E7, U+70EB, U+7109, U+7115, U+7126, U+7130, U+7136, U+7199, U+719F, U+7231, U+7236,
    U+725B, U+7275, U+7279, U+72C2, U+72EC, U+731C, U+7384, U+7389, U+738B, U+73A9, U+73CD, U+73E0,
    U+7403, U+7406, U+7409, U+7434, U+743C, U+7480, U+7483, U+74A7-74A8, U+74E6, U+751A, U+751C, U+7532,
    U+7591, U+7597, U+759A, U+75C5, U+75D5, U+75DB, U+7626, U+7656, U+76AE, U+76CF, U+76D2, U+76EF,
    U+76F8, U+7709, U+771F, U+7736-7738, U+7741, U+775B, U+7761, U+776B, U+7784, U+7792, U+779F, U+77A5,
    U+77AC, U+77D7, U+77E5, U+7825, U+78B0, U+793C, U+7948, U+7980, U+798F, U+79CD, U+79D8, U+79EF-79F0,
    U+7A00, U+7A79, U+7A81, U+7A83, U+7A92, U+7A97, U+7ADF, U+7AEF, U+7AF9, U+7B11, U+7B3C, U+7B51,
    U+7B54, U+7C7B, U+7CBE, U+7CD6, U+7CEF, U+7D27, U+7E41, U+7EB1, U+7EB5, U+7EB7, U+7EC7, U+7ED5,
    U+7EDC, U+7EDE, U+7EE1, U+7EE3, U+7EEA, U+7EF8, U+7EFD, U+7F0E, U+7F13, U+7F15, U+7F18, U+7F1A,
    U+7F2D, U+7F3A, U+7F61, U+7F69, U+7F8A, U+7F9E, U+7FA4, U+7FC5, U+8001, U+8010, U+8033, U+8038,
    U+8086, U+808C, U+80A1, U+80A4, U+80A9, U+80AF, U+80DC, U+80ED, U+80F3, U+8102, U+8106, U+8109,
    U+810F, U+8131, U+8155, U+8170, U+818A, U+81C2, U+81F3, U+820C, U+8210, U+8212, U+8214, U+821E,
    U+822C, U+826F, U+828B, U+828D, U+829D, U+82A6, U+82AC, U+82B1, U+82B3, U+82B7, U+82DB, U+82E5-82E6,
    U+832B, U+8349, U+83AB, U+83B7, U+8426, U+846B, U+8471, U+8537, U+853D, U+8587, U+85CF, U+86A9,
    U+8774, U+8776, U+8840, U+8857, U+8861-8863, U+8865, U+886C, U+8877, U+888D, U+8896, U+88AD, U+88F9,
    U+892A, U+89E6, U+8A93, U+8BB8, U+8BBA, U+8BC0, U+8BC6, U+8BE2, U+8BE5-8BE6, U+8BED, U+8BEF, U+8C01,
    U+8C08, U+8C0E, U+8C13, U+8C22, U+8C46, U+8D1F, U+8D29, U+8D2F, U+8D35, U+8D5E, U+8D9F, U+8DC3,
    U+8DDD, U+8E0F, U+8E1E, U+8E29, U+8E2E, U+8E6D, U+8F89, U+8F9B, U+8FA3, U+8FA9, U+8FAB, U+8FB0,
    U+8FCE, U+8FF9, U+8FFD, U+9001-9002, U+9010, U+9012, U+903E, U+9047, U+904D, U+9065, U+906D, U+907F-9080,
    U+90C1, U+90E8, U+914D, U+9152, U+9165, U+9177, U+9192, U+91D1, U+94B1, U+94C1, U+94C3, U+94DB-94DC,
    U+950B, U+9510, U+9519, U+95EA, U+95F9, U+95FB, U+9601, U+9614, U+9635, U+9645, U+9661, U+9668-966A,
    U+9677, U+968F-9690, U+9699, U+969C, U+96BE, U+96C4, U+9707, U+970E, U+9732, U+975E, U+978B, U+9798,
    U+987E-987F, U+9886-9887, U+989D, U+98A4, U+98DF, U+996D, U+9971, U+997C, U+9992, U+9999, U+9A6C, U+9AA8,
    U+9B13, U+9B3C, U+9B44, U+9C9B, U+9E1F, U+9E21, U+9E23, U+9E64, U+9EBB, U+9EC4, U+9EEF, U+9F3B;
}
/*/FONT*/
:root {
  --serif: "V6Serif", "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;
  --latin: "Segoe UI", "SF Pro Display", "Helvetica Neue", Arial, sans-serif;
  --bg: #04060c; --bg2: #080d18; --card: rgba(14, 21, 36, .72);
  --fg: #e9eef7; --dim: rgba(222, 230, 246, .7); --faint: rgba(222, 230, 246, .4);
  --accent: #bcd6ff; --line: rgba(190, 210, 255, .16); --line2: rgba(190, 210, 255, .3);
  --wrap: 1080px;
}
* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { background: var(--bg); scroll-behavior: smooth; }
body { min-height: 100vh; background: var(--bg); color: var(--fg); font-family: var(--serif); font-size: 16px; line-height: 1.9;
  -webkit-font-smoothing: antialiased; overflow-x: hidden; }
/* 天上一点点光：顶上淡淡的墨蓝，跟山门的夜色接上 */
body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(ellipse 90% 60% at 70% -10%, rgba(60, 90, 150, .22), transparent 70%),
              radial-gradient(ellipse 60% 40% at 0% 0%, rgba(40, 60, 110, .16), transparent 70%); }
a { color: inherit; }
img { display: block; max-width: 100%; }
.wrap { width: min(var(--wrap), 100% - 32px); margin: 0 auto; }

/* 顶栏 */
.bar { position: sticky; top: 0; z-index: 10; background: rgba(4, 6, 12, .78); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line); }
.bar .wrap { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 64px; }
.brand { text-decoration: none; line-height: 1.2; }
.brand b { display: block; font-size: 15px; font-weight: 600; letter-spacing: .42em; }
.brand i { display: block; margin-top: 5px; font-style: normal; font-family: var(--latin); font-size: 9.5px; letter-spacing: .32em; color: var(--faint); }
.nav { display: flex; gap: 6px; }
.nav a { text-decoration: none; font-size: 14px; letter-spacing: .3em; padding: 6px 4px 6px 12px; color: var(--dim); border-bottom: 1px solid transparent; transition: color .3s; }
.nav a:hover { color: var(--fg); }
.nav a[aria-current] { color: var(--accent); border-bottom-color: var(--accent); }

/* 页头 */
.head { padding: 88px 0 56px; }
.kicker { font-size: 12px; letter-spacing: .4em; color: var(--accent); }
.head h1 { margin-top: 14px; font-size: clamp(34px, 5vw, 56px); font-weight: 900; letter-spacing: .08em; line-height: 1.3; }
.head h1.latin { font-family: var(--latin); font-weight: 300; letter-spacing: .04em; }
.head .lead { margin-top: 20px; max-width: 640px; color: var(--dim); font-size: 16.5px; line-height: 2.1; }
.head .lead + .lead { margin-top: 10px; }

/* 段落 */
.sec { padding: 40px 0 64px; border-top: 1px solid var(--line); }
.sec-title { display: flex; align-items: baseline; gap: 16px; margin-bottom: 30px; }
.sec-title h2 { font-size: 22px; font-weight: 600; letter-spacing: .3em; }
.sec-title span { font-size: 12px; letter-spacing: .3em; color: var(--faint); }

/* 数字 */
.stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); margin-top: 44px; }
.stat { background: var(--bg); padding: 22px 24px; }
.stat b { display: block; font-family: var(--latin); font-size: clamp(28px, 4vw, 40px); font-weight: 300; letter-spacing: .02em; color: var(--fg); line-height: 1.2; }
.stat b small { font-family: var(--serif); font-size: .45em; margin-left: 4px; color: var(--dim); }
.stat span { display: block; margin-top: 8px; font-size: 13px; letter-spacing: .14em; color: var(--dim); }

/* 卡片 */
.grid { display: grid; gap: 22px; }
.grid.two { grid-template-columns: repeat(2, 1fr); }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 4px; overflow: hidden; display: flex; flex-direction: column; }
.card .pic { position: relative; background: #000; overflow: hidden; }
.card .pic img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .7, .2, 1); }
.card:hover .pic img { transform: scale(1.03); }
.card .pic.land { aspect-ratio: 4 / 3; }
.card .pic.port { aspect-ratio: 4 / 3; }
.card .pic.port img { object-position: center 22%; }
.card .pic.wide { aspect-ratio: 16 / 9; background: #f4f7f5; }
.card .pic.wide img { object-fit: contain; }
.card .body { padding: 22px 24px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.badge { align-self: flex-start; font-size: 11.5px; letter-spacing: .2em; color: var(--accent); border: 1px solid var(--line2); border-radius: 2px; padding: 3px 10px; }
.card h3 { font-size: 20px; font-weight: 600; letter-spacing: .12em; margin-top: 4px; }
.card p { font-size: 14.5px; color: var(--dim); line-height: 1.95; }
.card .acts { margin-top: auto; padding-top: 12px; display: flex; flex-wrap: wrap; gap: 10px; }
.btn { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 16px; border: 1px solid var(--line2); border-radius: 18px;
  font-size: 13px; letter-spacing: .2em; text-decoration: none; background: rgba(8, 12, 22, .6); cursor: pointer; color: var(--fg); font-family: inherit;
  transition: border-color .3s, color .3s; }
.btn:hover { border-color: var(--accent); color: var(--accent); }
.btn.solid { background: var(--accent); color: #06101f; border-color: var(--accent); font-weight: 600; }
.btn.solid:hover { background: #d6e6ff; color: #06101f; }
.btn i { font-style: normal; font-family: var(--latin); }

/* 一行的作品（图在左、字在右） */
.row { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 0; background: var(--card); border: 1px solid var(--line); border-radius: 4px; overflow: hidden; }
.row + .row { margin-top: 22px; }
/* 图铺满左半边、不撑高这一行（竖海报原样放会把一行拉到七百多像素高） */
.row .pic { position: relative; background: #000; min-height: 340px; }
.row .pic img, .row .pic video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.row .body { padding: 34px 36px; display: flex; flex-direction: column; gap: 10px; }
.row h3 { font-size: 24px; font-weight: 600; letter-spacing: .12em; }
.row p { font-size: 15px; color: var(--dim); line-height: 2; }
.row ul { list-style: none; display: grid; gap: 6px; margin-top: 4px; }
.row li { font-size: 14px; color: var(--dim); padding-left: 18px; position: relative; }
.row li::before { content: ""; position: absolute; left: 2px; top: .9em; width: 6px; height: 1px; background: var(--accent); }
.row.text { grid-template-columns: 1fr; }
.row .note { font-size: 12.5px; color: var(--faint); letter-spacing: .08em; }

/* 合作 */
.contact { display: grid; grid-template-columns: auto 1fr; gap: 40px; align-items: center; background: var(--card); border: 1px solid var(--line); border-radius: 4px; padding: 32px; }
.qr { width: 200px; border-radius: 6px; overflow: hidden; background: #fff; }
.contact h3 { font-size: 22px; font-weight: 600; letter-spacing: .2em; }
.contact p { margin-top: 10px; color: var(--dim); font-size: 15px; }
.wx { margin-top: 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.wx code { font-family: var(--latin); font-size: 20px; letter-spacing: .06em; color: var(--fg); }
.socials { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 10px; }

/* 手记 */
.posts { list-style: none; }
.posts li { border-bottom: 1px solid var(--line); }
.posts a { display: grid; grid-template-columns: 120px 1fr; gap: 24px; padding: 26px 0; text-decoration: none; }
.posts time { font-family: var(--latin); font-size: 13px; color: var(--faint); letter-spacing: .08em; padding-top: 4px; }
.posts h3 { font-size: 19px; font-weight: 600; letter-spacing: .1em; transition: color .3s; }
.posts a:hover h3 { color: var(--accent); }
.posts p { margin-top: 6px; font-size: 14.5px; color: var(--dim); }
.empty { padding: 70px 0 90px; text-align: center; color: var(--faint); letter-spacing: .3em; font-size: 14px; }
.empty b { display: block; font-size: 22px; font-weight: 400; color: var(--dim); letter-spacing: .5em; margin-bottom: 12px; }

/* 一篇手记 */
.post { max-width: 720px; margin: 0 auto; padding: 72px 0 40px; }
.post .meta { font-family: var(--latin); font-size: 13px; color: var(--faint); letter-spacing: .08em; }
.post h1 { margin-top: 12px; font-size: clamp(28px, 4vw, 40px); font-weight: 900; letter-spacing: .06em; line-height: 1.4; }
.post .content { margin-top: 36px; font-size: 17px; line-height: 2.1; color: rgba(233, 238, 247, .9); }
.post .content > * + * { margin-top: 1.1em; }
.post .content h2 { margin-top: 2em; font-size: 21px; letter-spacing: .12em; }
.post .content h3 { margin-top: 1.6em; font-size: 18px; letter-spacing: .1em; }
.post .content img { border-radius: 3px; margin: 1.6em auto; }
.post .content blockquote { border-left: 2px solid var(--accent); padding-left: 18px; color: var(--dim); }
.post .content code { font-family: Consolas, "SF Mono", monospace; font-size: .88em; background: rgba(190, 210, 255, .1); padding: 1px 6px; border-radius: 3px; }
.post .content ul, .post .content ol { padding-left: 1.4em; }
.post .content a { color: var(--accent); }
.post .back { margin-top: 56px; }

/* 页脚 */
.foot { margin-top: 40px; border-top: 1px solid var(--line); padding: 30px 0 calc(34px + env(safe-area-inset-bottom)); font-size: 12.5px; color: var(--faint); letter-spacing: .1em; }
.foot .wrap { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; }
.foot a { text-decoration: none; }
.foot a:hover { color: var(--fg); }
.foot .icp:empty { display: none; }

#toast { position: fixed; left: 50%; bottom: 40px; transform: translate(-50%, 8px); z-index: 40; pointer-events: none; padding: 9px 18px;
  border-radius: 18px; border: 1px solid var(--line2); background: rgba(8, 12, 22, .9); font-size: 13px; letter-spacing: .2em; opacity: 0;
  transition: opacity .3s, transform .3s; }
#toast.on { opacity: 1; transform: translate(-50%, 0); }

@media (max-width: 820px) {
  body { font-size: 15px; }
  .bar .wrap { min-height: 58px; }
  .brand b { font-size: 13px; letter-spacing: .32em; }
  .brand i { display: none; }
  .nav { gap: 0; }
  .nav a { font-size: 13px; letter-spacing: .18em; padding: 6px 2px 6px 10px; }
  .head { padding: 52px 0 36px; }
  .head .lead { font-size: 15.5px; }
  .stats { grid-template-columns: 1fr; }
  .grid.two { grid-template-columns: 1fr; }
  .row { grid-template-columns: 1fr; }
  .row .pic { min-height: 0; aspect-ratio: 4 / 3; }
  .row .body { padding: 24px 22px 26px; }
  .contact { grid-template-columns: 1fr; justify-items: center; text-align: center; padding: 28px 20px; gap: 22px; }
  .wx, .socials { justify-content: center; }
  .posts a { grid-template-columns: 1fr; gap: 6px; }
  .post { padding-top: 48px; }
  .post .content { font-size: 16px; }
}

/* 作品 15 秒片段（10-19）：16:9 一块，右上角标「片段 · 15 秒」；完整版走按钮去社媒 */
.card .pic.clipbox { aspect-ratio: 16 / 9; }
.pic.clipbox { position: relative; background: #000; }
.pic.clipbox video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; background: #000; }
.row .pic.clipbox { min-height: 0; aspect-ratio: 16 / 9; align-self: center; }
.pic.clipbox .len { position: absolute; top: 12px; right: 12px; z-index: 1; pointer-events: none; font-size: 11px; letter-spacing: .2em;
  padding: 4px 10px; border-radius: 12px; background: rgba(4, 6, 12, .6); color: rgba(233, 238, 247, .85); transition: opacity .3s; }
.pic.clipbox.playing .len { opacity: 0; }
.badge.now { color: #06101f; background: var(--accent); border-color: var(--accent); }
.row .acts { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 10px; }
.row.row .note { margin-top: -2px; }
/* 商业项目：保密不放图，垫一层淡淡的舆图纹理当装饰 */
.row.deco { position: relative; overflow: hidden; }
.row.deco::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .16;
  background: url("../assets/map/world-2048.jpg") center 40% / cover no-repeat; filter: grayscale(1) contrast(1.2);
  -webkit-mask-image: linear-gradient(to left, #000 0%, transparent 75%); mask-image: linear-gradient(to left, #000 0%, transparent 75%); }
.row.deco .body { position: relative; padding: 40px 36px; }

/* 数字区（10-19 第三轮）：两块并排（手机上也并排），粉丝那块底下挂抖音、小红书主页 */
.stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; background: none; border: 0; margin-top: 40px; max-width: 720px; }
.stat { position: relative; padding: 24px 26px 22px; border: 1px solid var(--line); border-radius: 4px;
  background: linear-gradient(160deg, rgba(60, 90, 150, .16), rgba(14, 21, 36, .5) 60%); overflow: hidden; }
.stat::after { content: ""; position: absolute; left: 26px; right: 26px; bottom: 0; height: 1px; background: linear-gradient(90deg, var(--accent), transparent); opacity: .5; }
.stat .k { display: block; font-size: 12.5px; letter-spacing: .3em; color: var(--accent); }
.stat b { margin-top: 10px; font-size: clamp(36px, 5vw, 52px); }
.stat .d { display: block; margin-top: 8px; font-size: 13px; letter-spacing: .1em; color: var(--dim); }
.stat .links { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 6px 16px; }
.stat .links a { font-size: 13px; letter-spacing: .1em; color: var(--dim); text-decoration: none; border-bottom: 1px solid var(--line2); padding-bottom: 1px; transition: color .3s, border-color .3s; }
.stat .links a:hover { color: var(--accent); border-color: var(--accent); }
.stat .links i { font-style: normal; font-family: var(--latin); }

/* 承接项目：四块 */
.services { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 22px; }
.svc { padding: 22px 22px 24px; border: 1px solid var(--line); border-radius: 4px; background: var(--card); }
.svc b { display: block; font-size: 17px; font-weight: 600; letter-spacing: .14em; padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid var(--line); }
.svc p { font-size: 14px; line-height: 1.95; color: var(--dim); }

@media (max-width: 820px) {
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .stat { padding: 18px 16px 16px; }
  .stat .k { font-size: 11.5px; letter-spacing: .2em; }
  .stat .links { flex-direction: column; gap: 6px; }
  .services { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .svc { padding: 16px 16px 18px; }
  .svc b { font-size: 15px; letter-spacing: .08em; }
  .svc p { font-size: 13px; }
}
