



@font-face {
  font-family: 'LXGW WenKai Web';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/lxgw-wenkai/lxgwwenkai-c1.woff2') format('woff2');
  unicode-range: U+A,U+D,U+20-22,U+25,U+28-3F,U+41-4E,U+50-58,U+5A-5B,U+5D,U+5F,U+61-7A,U+7C,U+7E,U+B7,U+D7,U+E0-E1,U+E8-E9,U+EC-ED,U+F2-F3,U+F9-FA,U+101,U+113,U+11B,U+12B,U+14D,U+16B,U+1CE,U+1D0,U+1D2,U+1D4,U+2014-2015,U+2018-2019,U+201C-201D,U+2026,U+2192,U+2194,U+2264-2265,U+2460-2473,U+2500,U+25CB,U+25CF,U+274C,U+2764,U+2795,U+3000-3002,U+3007-300D,U+3010-3011,U+30FB,U+4E00,U+4E03,U+4E07,U+4E09-4E0B,U+4E0D-4E0E,U+4E14,U+4E16,U+4E1A,U+4E1C,U+4E24-4E25,U+4E2A,U+4E2D,U+4E34,U+4E3A-4E3B,U+4E3D-4E3E,U+4E43,U+4E45,U+4E48-4E49,U+4E4B,U+4E4D-4E4E,U+4E50,U+4E58,U+4E5D-4E61,U+4E66,U+4E71,U+4E86,U+4E89,U+4E8B-4E8C,U+4E8E,U+4E91,U+4E94,U+4E9A-4E9B,U+4EA1,U+4EA4,U+4EA6-4EA7,U+4EBA,U+4EC0-4EC1,U+4EC5,U+4ECA,U+4ECD-4ECE,U+4ED3,U+4ED6,U+4EE3-4EE5,U+4EEC,U+4EF0,U+4EF2,U+4EF6-4EF7,U+4EFB,U+4F01,U+4F0F,U+4F11,U+4F17,U+4F1A,U+4F20,U+4F24,U+4F2F,U+4F3C,U+4F46,U+4F4F,U+4F53,U+4F55,U+4F59,U+4F5B-4F5C,U+4F60,U+4F73,U+4F7F,U+4F8D,U+4F9D,U+4FAF,U+4FBF,U+4FD7,U+4FDD-4FDE,U+4FE1,U+4FEE,U+4FF1,U+5019,U+501F,U+503C,U+5048,U+505A,U+505C,U+50CF,U+510B,U+513F,U+5141,U+5148-5149,U+514B,U+5162,U+5165,U+516B-516D,U+5170-5171,U+5173-5179,U+517C,U+5185,U+518D,U+5199,U+51A0,U+51AC,U+51AF-51B0,U+51B7,U+51C6,U+51C9,U+51CC,U+51DD,U+51E1,U+51E4,U+51EF,U+51FA,U+51FF,U+5206-5207,U+520D,U+5219-521B,U+5229,U+522B,U+5230,U+523A-523B,U+524D,U+5267,U+529B,U+529F-52A0,U+52A8,U+52AA,U+52B3,U+52E4,U+52FF,U+5316-5317,U+5341,U+5343,U+534E,U+5351,U+5357,U+535A,U+535C,U+5361,U+5367,U+536B,U+5371,U+5373-5374,U+5386,U+53A5,U+53BB,U+53C2,U+53C8,U+53CB,U+53CD,U+53D1,U+53D4,U+53D7-53D8,U+53E3-53E6,U+53EA,U+53EF-53F0,U+53F2,U+53F6,U+53F9,U+5408,U+540C-540E,U+5411,U+5415,U+541B,U+5426,U+542B-542C,U+543E,U+5458,U+5468,U+547D,U+548C,U+548F,U+54A6,U+54AB,U+54CD,U+54F2,U+5510,U+552F,U+5584,U+559C,U+559F,U+55BB,U+5609,U+5668,U+56DB,U+56DE,U+56E0,U+56E2,U+56F0,U+56FA,U+56FD-56FE,U+5706,U+5723,U+5728,U+5730,U+5750,U+575A,U+57C3,U+57CE,U+57DF,U+5802,U+5854,U+5858,U+5883,U+58A8,U+58E4,U+58EB,U+58F0,U+5904,U+5907,U+590F,U+5916,U+591A,U+591C,U+591F,U+5927,U+5929-592B,U+592E,U+5931,U+5934,U+5947,U+5973,U+597D,U+5982,U+59A9,U+59CB,U+59EC,U+5A01,U+5A18,U+5A31,U+5A9A,U+5ACC,U+5B50,U+5B54,U+5B57-5B59,U+5B5D,U+5B5F,U+5B64,U+5B66,U+5B81,U+5B83,U+5B89,U+5B8B,U+5B97-5B98,U+5B9A,U+5B9E,U+5BA1-5BA2,U+5BA4,U+5BB6,U+5BB9,U+5BC2,U+5BC5,U+5BCC,U+5BD3,U+5BF8-5BF9,U+5BFB-5BFC,U+5C06,U+5C0F,U+5C11,U+5C14,U+5C18,U+5C1A,U+5C27,U+5C31,U+5C3A,U+5C3C-5C3D,U+5C45,U+5C48,U+5C4B,U+5C55,U+5C65,U+5C71,U+5C81,U+5CAD,U+5CB3,U+5D07,U+5DDD-5DDE,U+5DE7,U+5DEE,U+5DF1-5DF2,U+5DF4,U+5E02-5E03,U+5E08,U+5E0C,U+5E15,U+5E1D,U+5E26,U+5E38,U+5E45,U+5E73-5E74,U+5E76,U+5E78,U+5E7B,U+5E84,U+5E8A,U+5E93-5E95,U+5EA6,U+5EB5,U+5EB7-5EB8,U+5EC9,U+5ED3,U+5EFA,U+5F00,U+5F03,U+5F15,U+5F17-5F18,U+5F20,U+5F31,U+5F39-5F3A,U+5F52-5F53,U+5F57,U+5F62,U+5F71,U+5F80,U+5F85,U+5F88,U+5F8B,U+5F97,U+5FAE,U+5FB7,U+5FC3,U+5FC5-5FC6,U+5FD7-5FD8,U+5FE7,U+5FEB,U+5FF5,U+5FFD,U+6000-6001,U+6015,U+601D,U+6028,U+6050,U+6052,U+606A,U+606F,U+60A3,U+60B2,U+60C5,U+60DF-60E0,U+60E7,U+60E9,U+60EF,U+60F3,U+60F9,U+6108,U+610F,U+611A,U+611F-6120,U+6155,U+6167,U+6208,U+6210-6211,U+6216,U+6218,U+6234,U+6237,U+623F-6240,U+624B,U+624D-624E,U+6252,U+6267,U+626E-626F,U+6280,U+628A,U+62B1,U+62C2,U+62C9,U+62D4,U+62E5,U+62ED,U+6302,U+6307,U+633A,U+634D,U+6350,U+636E,U+63A8,U+63AA,U+63D0,U+63E1,U+63ED,U+6444,U+6469,U+6539,U+653E,U+6545,U+6551,U+6559,U+6563,U+6570,U+6574,U+6587,U+6599,U+65AD,U+65AF-65B0,U+65B9,U+65C5,U+65CF,U+65E0,U+65E2,U+65E5,U+65F6,U+6602,U+660C,U+660E,U+6613,U+661F,U+6625,U+662F,U+663C,U+6668,U+666E-666F,U+667A,U+6696,U+66AE,U+66F0,U+66F2,U+66F4,U+66F9,U+66FC,U+66FE,U+6700,U+6708-6709,U+670B,U+670D,U+671B,U+6728,U+672A,U+672C,U+6735,U+6740,U+6743,U+674E,U+6750-6751,U+6756,U+6761,U+6765,U+6768,U+6770,U+677E,U+6795,U+6797,U+679C-679D,U+67AF,U+67C4,U+67CF,U+67D4,U+67E5,U+6811,U+6816,U+6837,U+683C,U+6843,U+6851,U+6874,U+68A6,U+68AD,U+68B5,U+68C0,U+68E0,U+68EE,U+68F5,U+693D,U+697C,U+69C1,U+6A2A,U+6B21-6B23,U+6B32,U+6B49,U+6B4C,U+6B63-6B64,U+6B7B,U+6BB5,U+6BC1,U+6BCF,U+6BD4,U+6C11,U+6C34,U+6C38,U+6C42,U+6C5D,U+6C5F,U+6C82,U+6C9F,U+6CA1,U+6CB3,U+6CBB,U+6CCA,U+6CD5,U+6CE1-6CE2,U+6CEA,U+6CF0,U+6D1B,U+6D1E,U+6D3B,U+6D41,U+6D4A,U+6D4E,U+6D6A,U+6D6E,U+6D74,U+6D77,U+6DAF,U+6DE1,U+6DF1,U+6DF9,U+6E05,U+6E0A,U+6E20,U+6E90,U+6EDE,U+6EE1,U+6EE5,U+6F02,U+6F14,U+6F2B,U+6F6E,U+706B,U+7070,U+7075-7076,U+707F,U+70AB,U+70B9,U+70C2,U+70DF,U+70E6,U+70ED,U+7136,U+7167,U+71C3,U+7231,U+7247,U+7256,U+725B,U+7269,U+7279,U+72C2,U+72D7,U+72EC,U+72F1,U+7389,U+738B,U+73B0,U+73CA,U+73ED,U+7406,U+7422,U+7434,U+74E6,U+7518,U+751F,U+7528,U+7530-7531,U+7535,U+7537,U+753B,U+754C,U+7559,U+758F,U+7591,U+75AF,U+75C5,U+75D5,U+75DB,U+766B,U+767D-767E,U+7684,U+7686-7687,U+76AE,U+76C8,U+76D2,U+76EE,U+76F2,U+76F4,U+76F8,U+770B,U+771F-7720,U+7736,U+773C,U+7740,U+77E3,U+77E5,U+77F3,U+7834,U+788D-788E,U+7891,U+78B0,U+78CB,U+78E8,U+793C,U+793E,U+7940,U+795E,U+7985,U+798F,U+79BB,U+79C0,U+79CB,U+79CD,U+79F0,U+7A0B,U+7A3C,U+7A74,U+7A77,U+7A7A,U+7A7F,U+7AA5,U+7ACB,U+7AE5,U+7AEF,U+7B11,U+7B14,U+7B2C,U+7B49,U+7B4B,U+7B54,U+7C7B,U+7C89,U+7CA5,U+7CAE,U+7CBE,U+7CFB,U+7D20,U+7D27,U+7D80,U+7EA6,U+7EAA,U+7EB3,U+7EC6,U+7EC8,U+7ECF,U+7ED3,U+7EDD,U+7EE7,U+7EF3-7EF4,U+7F04,U+7F16,U+7F2A,U+7F55,U+7F57,U+7F5A,U+7F8E,U+7FA4,U+7FF0,U+8001,U+8005,U+800C,U+8033,U+8042,U+804A-804B,U+8083,U+80B1-80B2,U+80DC,U+80E1,U+80E5,U+80FD,U+8106,U+8138,U+814A,U+8179,U+81EA,U+81F3,U+820D,U+821E-821F,U+8272,U+8282,U+82A6,U+82B1,U+82B9,U+82C7,U+82CF,U+82E5-82E6,U+82F1,U+8303,U+8305,U+8328,U+8336,U+8349,U+8363,U+836F,U+8377,U+83AB,U+83B1-83B2,U+83DC,U+83E9,U+8427-8428,U+8457,U+8482,U+84EC,U+852C,U+8584,U+85CF,U+864E,U+865A,U+867D,U+8681,U+8776,U+884C,U+8863,U+8868,U+88AB,U+88F4,U+897F,U+8981,U+89C1-89C2,U+89C6,U+89E3,U+8A00,U+8A93,U+8BA4,U+8BA9,U+8BB0,U+8BB2,U+8BBA,U+8BC4,U+8BCD,U+8BD5,U+8BD7,U+8BDD,U+8BE5,U+8BED,U+8BF4,U+8BFB,U+8C01,U+8C0B,U+8C1F,U+8C61,U+8D1D,U+8D1F,U+8D24,U+8D2F,U+8D35,U+8D3A,U+8D4A,U+8D4E,U+8D60,U+8D64,U+8D6B,U+8D70,U+8D77,U+8D81,U+8D85,U+8D8A,U+8D9F,U+8DEF,U+8E0C,U+8E0F,U+8E87,U+8EAB,U+8F69,U+8F7B-8F7D,U+8F88,U+8F9B-8F9C,U+8FBE,U+8FC5,U+8FC7,U+8FD1,U+8FD8-8FD9,U+8FDB-8FDC,U+8FF9,U+8FFD,U+9002-9003,U+9006,U+9010,U+901A,U+901D,U+9020,U+9050,U+9053,U+907F,U+90A3,U+90E8,U+90FD,U+9152,U+9189,U+9192,U+91C7,U+91CC-91CD,U+91CF,U+91D1,U+949F,U+94A2,U+94B1,U+9501,U+9505,U+952E,U+955C,U+957F,U+95E8,U+95EA,U+95EE,U+95F2,U+95F4,U+9633-9634,U+963F,U+9648,U+964C,U+9650,U+9662,U+9664,U+966A,U+9676,U+9690,U+9699,U+969C,U+96BE,U+96C4,U+96C6,U+96E8-96EA,U+96F6,U+9707,U+9732,U+9738,U+9752,U+9759,U+975E,U+9762,U+97E7,U+97F3,U+9876,U+987E-987F,U+9886,U+9897-9898,U+98CE,U+98DE-98DF,U+996D-996E,U+9A6C,U+9A79,U+9AA8,U+9AD8,U+9B42,U+9B54,U+9C81,U+9E1F,U+9E23,U+9EBB,U+9EC4,U+9ECE,U+9ED1,U+9ED8,U+9F50,U+9F99,U+FF01,U+FF08-FF09,U+FF0B-FF0C,U+FF0E-FF0F,U+FF1A-FF1B,U+FF1D-FF1F,U+FF5C,U+1F4A9;
}

@font-face {
  font-family: 'LXGW WenKai Web';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/lxgw-wenkai/lxgwwenkai-c2.woff2') format('woff2');
  unicode-range: U+4E01,U+4E08,U+4E13,U+4E18,U+4E1B,U+4E1D-4E1E,U+4E27,U+4E30,U+4E39,U+4E4F,U+4E54,U+4E70,U+4E88,U+4E92,U+4E95,U+4E9F,U+4EA5,U+4EAB-4EAE,U+4EB2,U+4EC6-4EC7,U+4ECB,U+4ED4,U+4ED8-4ED9,U+4EFF,U+4F0A,U+4F10,U+4F18,U+4F1F,U+4F36,U+4F38,U+4F4D-4F4E,U+4F50,U+4F5D,U+4F63,U+4F84,U+4F88,U+4F8B,U+4F9B,U+4FA7-4FA8,U+4FB5,U+4FC3-4FC4,U+4FCE,U+4FDF,U+4FED,U+4FF8,U+4FFE,U+500D,U+5012,U+5021,U+5026,U+503A,U+5047,U+504F,U+5055,U+5076-5077,U+507B,U+507F,U+5085,U+508D,U+50B2,U+50D6,U+50E7,U+50EE,U+5112,U+5143-5146,U+514D,U+5154-5155,U+515A,U+5168,U+516E,U+517B,U+517D,U+5180,U+518C,U+519B-519C,U+51A4-51A5,U+51B2-51B3,U+51B5,U+51C0,U+51C4,U+51CF,U+51D1,U+51E0,U+51ED,U+51F0,U+51FB,U+51FD,U+5200,U+5203,U+5211-5212,U+5217-5218,U+521D,U+5224,U+5236-5237,U+524A,U+5251,U+5272,U+529D-529E,U+52A1,U+52A9,U+52AB,U+52B1,U+52BF,U+52C7,U+52C9,U+52D2,U+52FE,U+5300,U+5305,U+5315,U+5320,U+5323,U+532A,U+5339-533B,U+533F,U+5347,U+534A,U+5352-5353,U+5355-5356,U+5360,U+5362,U+536E-536F,U+5377,U+537F,U+5389,U+538C,U+5395,U+539A,U+539F,U+53BF,U+53CA,U+53CC,U+53D6,U+53DB,U+53DF-53E0,U+53E9,U+53EB-53EC,U+53F1,U+53F3,U+53F7-53F8,U+5403-5404,U+540F,U+5417,U+541D,U+541F,U+5427,U+542F,U+5434,U+543C,U+5440,U+544A,U+545C,U+5462,U+5475,U+547C,U+5490,U+54B8,U+54C0-54C1,U+54C9,U+54EA,U+54ED,U+54FA,U+5531,U+553E,U+5544,U+5546,U+554A,U+5567,U+556C,U+5582,U+558A,U+55DC,U+55E3,U+5631,U+56ED,U+56F4,U+56F7,U+5708,U+571F,U+572C-572D,U+573A,U+5740,U+574A,U+574F,U+5757,U+575F,U+5766,U+578B,U+5792,U+579B,U+57CB,U+57F9-57FA,U+581E,U+582A,U+5851,U+585E,U+586B,U+587E,U+5893,U+5899,U+589E,U+58C1,U+58D5,U+58EE,U+58F6,U+590D,U+5915,U+5919,U+5937,U+593A,U+5948-5949,U+594F,U+5954,U+5956-5957,U+595A,U+5960,U+5962,U+5965,U+5979,U+5987,U+5992,U+59AA,U+59BB,U+59BE,U+59D1,U+59D3-59D4,U+59DA,U+59FB,U+5A25,U+5A36,U+5A49,U+5A5A,U+5AAA,U+5AC1,U+5AE6,U+5B09,U+5B34,U+5B55,U+5B63,U+5B69,U+5B70,U+5B85,U+5B88,U+5B8C,U+5B9B-5B9C,U+5BA0,U+5BA3,U+5BA5,U+5BAA-5BAB,U+5BB0,U+5BB3-5BB4,U+5BBD-5BBF,U+5BC4,U+5BC6-5BC7,U+5BD0,U+5BD2,U+5BDD,U+5BDF,U+5BE1,U+5BE8,U+5BFF,U+5C01,U+5C04,U+5C09-5C0A,U+5C16,U+5C1D,U+5C24,U+5C38-5C39,U+5C3E,U+5C40,U+5C4F,U+5C5E,U+5C60,U+5C6F,U+5C82,U+5CB8,U+5CFB,U+5D29,U+5DE1,U+5DE5-5DE6,U+5DE8,U+5DF7,U+5E2D-5E2E,U+5E55,U+5E62,U+5E72,U+5E7C,U+5E7F,U+5E86,U+5E8F,U+5E96-5E97,U+5E99,U+5E9C,U+5E9E-5E9F,U+5EAD,U+5EB6,U+5EF6-5EF7,U+5F02,U+5F0F,U+5F13,U+5F25,U+5F2D,U+5F2F,U+5F3C,U+5F55,U+5F64,U+5F79,U+5F7C,U+5F81,U+5F84,U+5F90,U+5F92,U+5FA1,U+5FAA,U+5FAD,U+5FBD,U+5FCC-5FCD,U+5FD6,U+5FD9,U+5FE0,U+5FE4,U+600E,U+6012,U+6020,U+6025,U+6027,U+602A,U+602F,U+603B,U+6043,U+6055,U+6062,U+6064,U+6068-6069,U+606D,U+6070,U+6076,U+6084,U+6089,U+6094,U+60A0,U+60A6,U+60CA,U+60D1,U+60DC,U+6101,U+6106,U+6124,U+6127,U+613F,U+6162,U+618E,U+61A9,U+61BE,U+61C2,U+61FF,U+620A,U+620E-620F,U+621A,U+6243,U+6251,U+6253,U+6258,U+6263,U+626B-626C,U+6270,U+6276,U+627E-627F,U+6291,U+6295-6298,U+629A,U+62A2,U+62A4-62A5,U+62AB,U+62B5,U+62C5,U+62D0,U+62D2,U+62D6,U+62DC,U+62DF,U+62E6,U+62E9,U+62EC,U+62EF,U+62F1,U+62FE-62FF,U+6301,U+6309,U+6311,U+6321,U+6325,U+6328,U+632A,U+6349,U+6355,U+635F,U+6362,U+6367,U+6377,U+6387-6389,U+638C,U+6392,U+63A0,U+63A2,U+63A5,U+63E3,U+63FD,U+6405,U+643A,U+6447,U+649E,U+64AD,U+64B0,U+64C5,U+64CD,U+6500,U+6518,U+652F,U+6536,U+653B,U+653F,U+6548,U+654C,U+654F,U+6555,U+655B,U+655D,U+6562,U+656C,U+6577,U+658B,U+6597,U+65A4,U+65A7,U+65A9,U+65AB,U+65BC-65BD,U+65C1,U+65CC,U+65D7,U+65E6-65E9,U+65EC,U+6607,U+660F,U+6614,U+6620,U+662D,U+6635,U+663E,U+6641,U+664B,U+6652,U+665A,U+6674,U+6682,U+6691,U+6697,U+66B4,U+66DC,U+66F3,U+66F7,U+66FF,U+6714-6715,U+671D-671F,U+672B,U+672F,U+6731,U+673A,U+673D,U+6742,U+675C,U+675F,U+677F,U+6781,U+6789,U+678B,U+67AB,U+67D0-67D1,U+67D3,U+67D9,U+67E9,U+67EF,U+67F1,U+67F3,U+6807,U+680B,U+6821,U+682A,U+6838-6839,U+6848,U+684C,U+6853,U+6863,U+6865,U+6876,U+6881,U+6885,U+68CB,U+690D-690E,U+6912,U+691F,U+695A,U+696B,U+6982,U+69AB,U+69C3,U+69FD,U+6A50,U+6A90,U+6AA9,U+6B20,U+6B24,U+6B27,U+6B3A,U+6B62,U+6B65-6B66,U+6B6A,U+6B81-6B82,U+6B86,U+6B8B,U+6BAA,U+6BB7,U+6BBD,U+6BBF,U+6BC5,U+6BCB,U+6BCD,U+6BD5,U+6BDB,U+6C0F,U+6C13-6C14,U+6C27,U+6C49,U+6C60-6C61,U+6C64,U+6C7D,U+6C83,U+6C88,U+6C99,U+6C9B,U+6CBE-6CBF,U+6CC9,U+6CDB,U+6CE3,U+6CE8,U+6D01,U+6D0B,U+6D0E,U+6D25,U+6D32,U+6D35,U+6D45,U+6D47,U+6D4B,U+6D59-6D5A,U+6D61,U+6D69,U+6D85,U+6D88-6D89,U+6D93,U+6DA1,U+6DA6,U+6DB2,U+6DB5,U+6DEB,U+6DEE,U+6E10,U+6E14,U+6E21,U+6E24,U+6E29,U+6E2F,U+6E38,U+6E56,U+6EA5,U+6EAA,U+6EBA,U+6ECB,U+6ED5,U+6EDA,U+6F20,U+6F5C,U+6F6D,U+6FB3,U+6FC0,U+6FD2,U+706D,U+707E,U+7080,U+708E,U+70AD,U+70BC,U+70C8,U+70DB,U+70E7,U+7109,U+7115,U+7126,U+714C,U+7156,U+717D,U+719F,U+71D5,U+7228,U+722A,U+7236,U+723D,U+7248,U+724D,U+7259,U+7267,U+7275,U+72AC,U+72AF,U+72B6,U+72B9,U+72C4,U+72CE,U+72E0,U+72ED,U+72FC,U+730E,U+732C,U+732E,U+7384,U+7387,U+73AF,U+73C2,U+73E0,U+7403,U+7435-7436,U+745E,U+74A7,U+74E2,U+74F7,U+751A,U+752B,U+7532-7533,U+7565,U+757F,U+7586,U+75AB,U+75B2,U+75BE,U+7601,U+7617,U+767B,U+76CA,U+76CD,U+76D0-76D1,U+76D6-76D8,U+76DB,U+76EF,U+76FC,U+7701,U+7709,U+7761,U+7763,U+77BB,U+77D7,U+77DC,U+77E2,U+77E9,U+77EB,U+77ED,U+7801,U+7814,U+781A,U+7825,U+783A,U+7840,U+7855,U+786E,U+78EC,U+793A,U+7947-7948,U+7956-7957,U+795A,U+795C,U+7960,U+7965,U+7968,U+796D,U+796F,U+7978,U+7980,U+7984,U+79A7,U+79B9,U+79BD,U+79C1,U+79C9,U+79D1,U+79D8,U+79DF,U+79E6,U+79E9,U+79EF,U+79FB,U+7A0D-7A0E,U+7A17,U+7A1A,U+7A33,U+7A37,U+7A3D,U+7A76,U+7A79,U+7A81,U+7A83,U+7A92,U+7A97,U+7A9C,U+7AA6,U+7AD6,U+7AD9,U+7ADE-7AE0,U+7AED,U+7AF9,U+7AFF,U+7B03,U+7B1E,U+7B26,U+7B51,U+7B56,U+7B80,U+7B97,U+7BA1,U+7BAA,U+7BAD,U+7BC7,U+7BDD,U+7C4D,U+7C73,U+7C9F,U+7CAA,U+7D2F,U+7EA2-7EA4,U+7EA7,U+7EB2,U+7EB7-7EB8,U+7EC4,U+7EC7,U+7ECD,U+7ED5,U+7ED9,U+7EDF,U+7EE2,U+7EED,U+7EF8,U+7EFE,U+7F00,U+7F14,U+7F18,U+7F26,U+7F3A,U+7F45,U+7F51,U+7F54,U+7F62,U+7F6A,U+7F6E,U+7F72,U+7F8A,U+7FBD,U+7FC1,U+7FC5,U+7FCC,U+7FFB,U+8000,U+8003,U+8012,U+8015,U+8036,U+803B,U+804C,U+8054,U+8069,U+8086,U+8089,U+8096,U+80A5,U+80A9,U+80AF,U+80C1,U+80CC,U+80EB,U+810A,U+810D,U+8111,U+8131,U+817E,U+8180,U+818F,U+81E3,U+81E7,U+81F4,U+81FE,U+8205-8206,U+8212,U+822A,U+822C,U+8239,U+826F-8270,U+8273,U+827A,U+828B,U+8292,U+82CD,U+82D4,U+82D7,U+82DB,U+82DF,U+830E,U+8327,U+8340,U+8346,U+8350,U+8352,U+8361,U+836B,U+83B7,U+83BD,U+83CA,U+83E1,U+83F2,U+840F,U+8425,U+843D,U+845B,U+8463,U+846C,U+847A,U+8499,U+84C4,U+84DD,U+84FC,U+8521,U+853A,U+853D,U+85FB,U+864F,U+8651,U+865E,U+8662,U+866B,U+8693,U+86C7,U+86DF,U+8700,U+8702,U+8729,U+8774,U+878D,U+8832,U+8839,U+8840,U+8859,U+8861,U+8865,U+8870,U+887D,U+88AD,U+88C1-88C2,U+88C5,U+88D4,U+88D8,U+8912,U+8944,U+895F,U+8986,U+89C8-89C9,U+89D0,U+89D2,U+89E6,U+8A07,U+8BA1-8BA2,U+8BAB,U+8BAD,U+8BAF,U+8BB3,U+8BB7-8BB8,U+8BBD-8BC1,U+8BC6,U+8BC8-8BC9,U+8BCF,U+8BD1-8BD2,U+8BDA-8BDB,U+8BDF,U+8BE3,U+8BE6,U+8BEB,U+8BEF-8BF1,U+8BF5,U+8BF7-8BF8,U+8BFE,U+8C03-8C04,U+8C08,U+8C0F,U+8C12-8C13,U+8C15,U+8C17,U+8C21-8C22,U+8C24,U+8C26,U+8C2C,U+8C31,U+8C37,U+8C5A,U+8C6B,U+8C73,U+8C8C,U+8D1E,U+8D21,U+8D23,U+8D25,U+8D27-8D28,U+8D2B-8D2C,U+8D2E,U+8D31,U+8D38-8D39,U+8D3B,U+8D3E,U+8D44,U+8D49,U+8D4B,U+8D4D,U+8D4F-8D50,U+8D53-8D54,U+8D56,U+8D5B,U+8D5E,U+8D62,U+8D74-8D76,U+8D8B,U+8DB3,U+8DC3,U+8DD1,U+8DDD,U+8DDF,U+8DEC,U+8DF3,U+8DF5,U+8E29,U+8E66,U+8EAC,U+8EB2,U+8F36,U+8F66,U+8F6C,U+8F6E,U+8F72,U+8F83-8F85,U+8F89,U+8F91,U+8F9E-8F9F,U+8FA8-8FA9,U+8FB1,U+8FB9,U+8FBD,U+8FC4,U+8FCE,U+8FD0,U+8FD4,U+8FDD-8FDE,U+8FE8-8FE9,U+8FEB,U+8FF0,U+8FF7,U+9000-9001,U+9009-900B,U+900D,U+9012,U+9014,U+901F,U+9022,U+902E,U+903C,U+903E,U+9042,U+9047,U+904D,U+904F,U+9051,U+9057,U+9063,U+9065,U+906D-906E,U+9075,U+907D,U+9091,U+90A6,U+90AA,U+90AF,U+90B8-90B9,U+90BB,U+90CE,U+90D1,U+90E1,U+90E6,U+90ED,U+90F8,U+9119,U+914D,U+9178,U+91CA,U+91CE,U+9274,U+949E,U+94A9,U+94BB,U+94C1,U+94F2,U+94F8,U+94FA,U+94FF-9500,U+9519,U+9521,U+9524-9525,U+95ED,U+95F5,U+95FA-95FB,U+9601-9602,U+9609,U+9619,U+9621,U+9635-9636,U+963B,U+9645-9646,U+964B,U+964D,U+9655,U+965F,U+9669,U+9675,U+9677,U+9685-9686,U+968F,U+9694,U+9698,U+96B3,U+96C0,U+96C5,U+96CD-96CE,U+96D5,U+9700,U+970D,U+971E,U+9756,U+9760-9761,U+9769,U+978B,U+978D,U+97A0,U+97AD,U+97E9,U+97EC,U+9877,U+9879-987B,U+9882,U+9884,U+9887,U+9889,U+9891,U+989B-989C,U+98D8,U+9965,U+996C,U+9971,U+9976,U+9991,U+9996,U+9A74,U+9A7B-9A7C,U+9A84,U+9A8C,U+9A91,U+9A96-9A97,U+9A9E,U+9B3C,U+9B4F,U+9C7C,U+9C9C,U+9CB6,U+9CD6,U+9CDE,U+9E21,U+9E26,U+9E3F,U+9EBE,U+9EDC,U+9EEF,U+9F0E,U+9F13,U+9F7F,U+9F84,U+9F9F;
}

@font-face {
  font-family: 'LXGW WenKai Web';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/lxgw-wenkai/lxgwwenkai-c3.woff2') format('woff2');
  unicode-range: U+4E11,U+4E22,U+4E32,U+4E38,U+4E4C,U+4E56,U+4E7E,U+4E98,U+4EBF,U+4EC3-4EC4,U+4ED1,U+4ED5,U+4ED7,U+4EEA,U+4EFD,U+4F0D,U+4F19,U+4F26,U+4F2A,U+4F34,U+4F3D,U+4F5A,U+4F69,U+4F6C,U+4F83,U+4FA0,U+4FAE,U+4FCA,U+4FD0,U+5018,U+501A,U+503E,U+504C,U+5065,U+5080,U+50A8,U+50AC,U+50DA,U+5121,U+5151,U+5188,U+5192,U+51BB,U+51BD,U+51CB,U+51DB,U+51F6,U+51F8,U+5228,U+5242,U+5254,U+526A,U+526F,U+5288,U+52A3,U+52B2,U+52C3,U+52CB,U+5306,U+5308,U+5319,U+532E,U+5345,U+5348,U+534F,U+5370,U+5375,U+5378,U+5382,U+5384,U+538B,U+5398,U+53A6,U+53C9,U+53D9,U+5401,U+5409,U+5410,U+5413,U+541E,U+5428,U+542D,U+5435,U+5438-5439,U+543B,U+5443,U+5446,U+5448,U+5450,U+5466,U+5473,U+54A7-54A8,U+54AC,U+54C8,U+54D7,U+54E5,U+54E8,U+5507,U+5509,U+5514,U+5524,U+5543,U+5565-5566,U+5570,U+5578,U+558B,U+559D,U+55A7,U+55C5,U+55E6,U+561B,U+561F,U+5632,U+5634,U+5639,U+5669,U+566C,U+568E,U+56A3,U+56CA,U+56FF,U+5733,U+573E,U+5747,U+574E,U+575B,U+5760-5761,U+5764,U+5777,U+5782-5784,U+57AB,U+5815,U+5835,U+584C,U+58D1,U+58F3,U+592D,U+5938-5939,U+5944,U+594B,U+5974,U+5976,U+5978,U+5984,U+5988,U+5999,U+59A5,U+59A8,U+59C6,U+59DC,U+59E5,U+59E8,U+59FF,U+5A13,U+5A1F,U+5A34,U+5A74,U+5A92,U+5AB2,U+5AE9,U+5B5C,U+5B65,U+5B71,U+5B7A,U+5B87,U+5B8F,U+5B99,U+5B9D,U+5BDE,U+5BE5,U+5BF0,U+5C2C,U+5C34,U+5C42,U+5C4A,U+5C51,U+5C61,U+5C79,U+5C96-5C97,U+5C9B,U+5CA9,U+5CE1,U+5CE5,U+5CF0,U+5D0E,U+5D14,U+5D16,U+5D1B,U+5D2D,U+5D3D,U+5D4C,U+5D58,U+5DC5,U+5DCD,U+5DE9,U+5E01,U+5E05-5E06,U+5E1C,U+5E37,U+5E44,U+5E7D,U+5E87,U+5E90,U+5E9A,U+5EA7,U+5ED6,U+5F04,U+5F0A,U+5F1F,U+5F26-5F27,U+5F66,U+5F69,U+5F6D,U+5F70,U+5F77,U+5F7B,U+5F89,U+5F99,U+5F9C,U+5FA8,U+5FF1,U+601C,U+6026,U+604B,U+6059,U+6063,U+606C,U+6073,U+607B-607C,U+6092,U+609A,U+609F,U+60A8,U+60AC,U+60AF,U+60B4,U+60CB,U+60D5,U+60D8,U+60E8,U+60EB-60EC,U+60F0,U+6109,U+6148,U+614C,U+614E,U+6168,U+6170,U+6177,U+6194,U+61A7,U+61AC,U+61C8,U+61D2,U+61E6,U+620C-620D,U+6212,U+6215,U+621F,U+622A,U+6254,U+625B,U+6269,U+626D,U+6279,U+627C,U+6284,U+6289,U+6292,U+629B,U+629F,U+62AC,U+62B9,U+62BD,U+62C6,U+62CC-62CD,U+62CF,U+62D3,U+62D7-62D9,U+62DB,U+62E7,U+62F3,U+62F7,U+62FC,U+6316,U+631A-631B,U+631F-6320,U+6323,U+632B,U+632F,U+633D,U+6361,U+6371,U+637A,U+6398,U+63A7,U+63A9,U+63B7,U+63C6,U+63CF,U+63D2,U+63F4,U+6400-6401,U+640F,U+641E,U+642D,U+6446,U+6448,U+6452,U+6454,U+6458,U+6467,U+6478,U+6487,U+6491-6492,U+6495,U+64A4,U+64B8,U+64BC,U+64C2,U+64D2,U+64E6,U+655E,U+6566,U+6572,U+658C,U+6591,U+659C,U+659F,U+65A5,U+65CB,U+65ED-65EF,U+65F7,U+65FA,U+6606,U+660A,U+6627,U+6653,U+6664,U+6666,U+6670,U+6676-6677,U+6687,U+669D,U+66D9,U+6717,U+6734,U+6746,U+674F,U+6760,U+676F,U+677C,U+6784,U+679A,U+67A5,U+67AA,U+67B6-67B7,U+67DC,U+67F4,U+6809,U+680F,U+6842,U+6846,U+684E,U+6850,U+688F,U+68AF-68B0,U+68B3,U+68D2,U+68D8,U+68F1,U+6905,U+6934,U+6977,U+6986,U+699C,U+69BB,U+6A0A,U+6A21,U+6A31,U+6A58-6A59,U+6B3E,U+6B67,U+6B8A,U+6BD2,U+6BD9,U+6BEB,U+6C1B,U+6C22,U+6C41,U+6C47,U+6C55,U+6C57,U+6C68,U+6C6A,U+6C72,U+6C76,U+6C79,U+6C81,U+6C89,U+6C90,U+6CA7,U+6CAE,U+6CB8-6CB9,U+6CC4-6CC5,U+6CE5,U+6CEF,U+6CF1,U+6CFD,U+6D12,U+6D17,U+6D2A,U+6D3E,U+6D51,U+6D53,U+6D78,U+6D82,U+6D8C,U+6D9B,U+6DA4,U+6DC0,U+6DCB-6DCC,U+6DD8,U+6DEC,U+6DF7,U+6DFB,U+6E17,U+6E1D,U+6E1F,U+6E23,U+6E34,U+6E3A,U+6E43-6E44,U+6E4E,U+6E7F,U+6E83,U+6E9F,U+6EA2,U+6EAF,U+6EB6,U+6ED1,U+6EE8-6EE9,U+6EF4,U+6F09,U+6F0F,U+6F13,U+6F31,U+6F3E,U+6F58,U+6F84,U+6F8E,U+6F9C,U+6FE1,U+6FEF,U+701A,U+704C,U+706F,U+7089,U+7099,U+709C,U+70AC,U+70AE,U+70B8,U+70C1,U+70D9,U+70EB,U+70EF,U+710A,U+711A,U+7130,U+714E,U+715C,U+716E,U+7184,U+718A,U+7194,U+7199,U+71A0,U+71CE,U+71E5,U+71E7,U+7206,U+7230,U+7237-7238,U+724C,U+7251,U+7262,U+7272,U+727A,U+7284,U+72D9,U+72EE,U+7316,U+731B-731D,U+732B,U+7357,U+7399,U+73A5,U+73A9,U+73AE,U+73B2,U+73BB,U+73CD,U+7410,U+7425-7426,U+742A,U+745F,U+747E,U+7480,U+7483,U+748B,U+7490,U+749E,U+74A8,U+74F6,U+751C,U+7545,U+754F,U+7554,U+7566,U+756A,U+7574,U+7578,U+7597,U+759F,U+75AE,U+75BC,U+75C7,U+75C9,U+75F0,U+75F4,U+761F,U+762B,U+7693,U+76B1,U+76CF,U+76DF,U+76FE,U+7728,U+7738,U+773A,U+7741,U+7750,U+775B,U+7766,U+7779,U+777F,U+7792,U+77A7,U+77A9,U+77AC-77AD,U+77DB,U+77F6,U+77FF,U+780D,U+7816,U+7838,U+785D,U+786C,U+788C,U+789F,U+78A7,U+78BE,U+78C5,U+78D0,U+7901,U+7934,U+7949,U+795D,U+7977,U+7981,U+79BE,U+79D2,U+79E4,U+7A00,U+7A23,U+7A3B,U+7A3F,U+7A46,U+7AE3,U+7B0B,U+7B28,U+7B3A,U+7B3C,U+7B5A,U+7B77,U+7B79,U+7B7E,U+7BB4,U+7BEE,U+7C0C,U+7C92,U+7C95,U+7C97,U+7CB1,U+7CB9,U+7CCA,U+7CD5-7CD6,U+7CD9,U+7CDC,U+7CDF,U+7D22,U+7E41,U+7E82,U+7EA0,U+7EAF,U+7EB5,U+7EB9,U+7EBD,U+7EBF,U+7EC3,U+7ECE,U+7ED1,U+7ED8,U+7EDA,U+7EDC,U+7EDE,U+7EE3,U+7EE9-7EEA,U+7EEE,U+7EF5,U+7EF7,U+7EFC-7EFD,U+7EFF,U+7F13,U+7F15,U+7F1A,U+7F1D,U+7F20,U+7F24,U+7F29,U+7F2D,U+7F61,U+7F69,U+7F79,U+7F9E,U+7FA1,U+7FD4,U+7FD9,U+7FF1,U+7FFC,U+8004,U+800B,U+8010,U+8018,U+8038,U+8046,U+805A,U+806A,U+8093,U+80A0-80A1,U+80BA,U+80C6,U+80D6,U+80DE,U+80ED,U+80F8,U+8102,U+8109,U+811A,U+813E,U+814B,U+8150-8151,U+8154-8155,U+816E,U+8170,U+8174,U+817B,U+817F,U+819B-819D,U+81C2,U+81C6,U+81ED,U+81FB,U+820C,U+821C,U+8230,U+8235,U+8247,U+8258,U+827E,U+82AC,U+82AF,U+82B3,U+82B8,U+82D3,U+82F9,U+8302,U+832B-832C,U+8335,U+8343,U+8367,U+837C,U+8389,U+8398,U+83B9,U+83C1,U+83CC,U+840C-840E,U+8424,U+8426,U+848B,U+84B8,U+84BF,U+84E6,U+8511,U+8513,U+851A,U+8537,U+8574,U+857E,U+8587,U+85AA,U+85C9,U+85E4,U+85E9,U+8650,U+8679,U+8680,U+868A,U+8695,U+86EE,U+8709,U+8712,U+871C,U+8721,U+873F,U+8763,U+8822,U+8845,U+884D,U+8857,U+886C,U+8877,U+8881,U+888D,U+8896,U+88A4,U+88D5,U+88F3,U+88F9,U+8913,U+892A,U+8936,U+8941,U+89C4-89C5,U+89DE,U+8A79,U+8A89,U+8B66,U+8B6C,U+8BA8,U+8BAE,U+8BB4,U+8BCA-8BCB,U+8BDE,U+8BE0-8BE2,U+8BF2,U+8BFA,U+8C05-8C06,U+8C0E,U+8C10,U+8C19-8C1C,U+8C28-8C2A,U+8C2D,U+8C34,U+8C41,U+8C46,U+8C6A,U+8C82,U+8D22,U+8D29-8D2A,U+8D34,U+8D58,U+8D73,U+8DA3,U+8DB8,U+8DCB-8DCC,U+8DCE,U+8DDA,U+8DE4,U+8DE8,U+8DEA,U+8DFB,U+8E35,U+8E49,U+8E4B,U+8E52,U+8E6D,U+8E74,U+8E81,U+8EAF,U+8EBA,U+8F68,U+8F6F-8F70,U+8F7F,U+8F86,U+8F8D,U+8F93,U+8F95,U+8F97,U+8F99,U+8FA3,U+8FB0,U+8FC1-8FC2,U+8FC8,U+8FDF,U+8FE5,U+8FEA,U+8FED,U+8FF8,U+900F,U+9017,U+901B,U+901E,U+9038,U+9052,U+9093,U+90A2,U+90AE,U+90C1,U+914C,U+9171,U+9177,U+917F,U+9185,U+9187,U+918B,U+946B,U+9488-9489,U+94A5-94A7,U+94AE,U+94C3-94C4,U+94C6,U+94ED,U+94F6,U+9504,U+950B,U+9510,U+9526,U+9535,U+953B,U+9547,U+954C,U+956D,U+9570,U+9576,U+95EF,U+95F7-95F9,U+9605,U+9610-9611,U+9614,U+961F,U+9632,U+9644,U+9668,U+9672,U+968B,U+96B6,U+96BD,U+96CF,U+96F7,U+96FE,U+9701,U+9704,U+9713,U+971C,U+973E,U+9798,U+97F5-97F6,U+9875,U+987D,U+9885,U+9893-9894,U+9896,U+989D,U+98A0,U+9910,U+9970,U+9988,U+9999,U+9A6D,U+9A70-9A71,U+9A73,U+9A76,U+9A7D-9A7E,U+9A82,U+9A87,U+9A9A,U+9AA4,U+9AD3,U+9B41,U+9B44-9B45,U+9B49,U+9B4D,U+9B51,U+9CB2,U+9E2D,U+9E4F,U+9E5C,U+9E70,U+9E92,U+9E9F,U+9EC3,U+9F20,U+9F3B,U+9F51,U+9F61,U+9F8A,U+9F8C,U+9F9A;
}

@font-face {
  font-family: 'LXGW WenKai Web';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('../fonts/lxgw-wenkai/lxgwwenkai-c4.woff2') format('woff2');
  unicode-range: U+4E19,U+4E2B,U+4E52-4E53,U+4E59,U+4E73,U+4E8F,U+4EA2,U+4EA8-4EA9,U+4EB3,U+4EDF,U+4F0E,U+4F1E,U+4F2B,U+4F30,U+4F3A,U+4F43,U+4F51,U+4F5E,U+4F65,U+4F6F-4F70,U+4F97-4F98,U+4FA3,U+4FA5-4FA6,U+4FA9,U+4FCF,U+4FD1,U+4FD8,U+4FE8-4FE9,U+4FEF,U+4FFA,U+500F,U+5014,U+5028,U+502A,U+5043,U+506D,U+5088,U+50A3,U+50A7,U+50BA-50BB,U+50ED,U+50F3,U+50F5,U+50FB,U+5106,U+515C,U+5189,U+5195,U+5197,U+51A2,U+51B6,U+51F3,U+51F9,U+5201,U+520A,U+520E,U+5220,U+522E,U+5238-5239,U+523D,U+5241,U+5243,U+524C,U+5250,U+5256,U+5265,U+5269,U+527F,U+52BE,U+52D8,U+52DF,U+52FA,U+530F,U+531D,U+5321,U+5349,U+535E,U+5364,U+5366,U+5385,U+539D,U+53A2,U+53A8-53A9,U+53AE,U+53C1,U+53E8,U+53ED-53EE,U+53FC,U+540A,U+5420,U+5429,U+542E,U+5431,U+5455,U+545B,U+5478,U+547B,U+5480,U+5486,U+548B,U+548E,U+5492,U+5495-5496,U+5499,U+549B,U+54AA,U+54AF,U+54B1,U+54B3,U+54BD,U+54C4,U+54C6-54C7,U+54CE,U+54D1,U+54D9,U+54DF,U+54E6,U+54E9,U+54EE,U+54FC,U+5501,U+5506,U+552C,U+552E,U+5533,U+5555,U+5561,U+5564,U+556A,U+556E,U+557C,U+5580,U+5587,U+5589,U+5598-5599,U+55B3,U+55B7,U+55D3,U+55DF,U+55E1,U+55EB,U+55FD,U+560E,U+5618,U+5636,U+563B,U+563F,U+564E,U+5664,U+566A,U+5676,U+5685,U+568F,U+56B7,U+56BC,U+56DA,U+56E4,U+56EF,U+56F1,U+56F9,U+5703-5704,U+571C,U+5742,U+574D,U+5751,U+575D-575E,U+576A,U+576F,U+5797,U+57A0,U+57A2-57A3,U+57A6,U+57AE,U+57C2,U+57D4,U+57E0,U+5806,U+5811,U+5821,U+5824,U+5830,U+5885,U+5892,U+589F,U+58A9,U+58EC,U+58F9,U+592F,U+5942,U+594E,U+5951,U+5983,U+5986,U+598A,U+5993,U+5996,U+59A3,U+59AE,U+59B9,U+59CA,U+59D0,U+59F1,U+5A03-5A04,U+5A07-5A08,U+5A1C,U+5A20,U+5A29,U+5A46,U+5A62,U+5A6A,U+5A76,U+5A7F,U+5AB3,U+5AB5,U+5AC2,U+5AC9,U+5AD4,U+5AE0-5AE1,U+5B51,U+5B5A,U+5B6A,U+5B75,U+5B7D,U+5BA6,U+5BB5,U+5BEE,U+5BFA,U+5C3F,U+5C41,U+5C49,U+5C4E,U+5C7F,U+5C8C,U+5C94,U+5CB1,U+5CBF,U+5CD9,U+5CE6,U+5CE8,U+5CEA,U+5CED,U+5D24,U+5DE2,U+5DEB,U+5DF3,U+5DFE,U+5E10,U+5E16,U+5E18-5E1B,U+5E27,U+5E3D,U+5E42,U+5E4C,U+5EA0,U+5ECA,U+5EEA,U+5F06,U+5F11,U+5F1B,U+5F29,U+5F56,U+5F58,U+5F5D,U+5F6A,U+5F6C,U+5F8A,U+5F98,U+5FB5,U+5FBC,U+5FCF,U+5FDD,U+5FF3,U+5FFB,U+5FFF,U+6002,U+600D,U+6014,U+6016,U+6019,U+6021,U+604D,U+606B,U+607F,U+608C-608D,U+6096,U+609B,U+60B8,U+60BC,U+60E6,U+60ED-60EE,U+60F6,U+60FA,U+6123,U+6151,U+618B,U+61A8,U+61CA,U+622E,U+6233,U+6241,U+6247-6249,U+6266,U+6273,U+6293,U+62A0-62A1,U+62A8,U+62BC,U+62BF,U+62C4,U+62C7-62C8,U+62CA,U+62CE,U+62E2-62E3,U+62E8,U+62F4,U+62FD,U+630E,U+631D-631E,U+6324,U+6342,U+6345-6346,U+634C,U+634E-634F,U+635E,U+6363,U+636D,U+6376,U+637B,U+6380,U+6382,U+638F-6390,U+6396,U+63A3,U+63B3,U+63B8,U+63BA,U+63BE,U+63C9,U+63CD,U+63D6,U+63E9-63EA,U+6402,U+6410,U+6413-6414,U+641C,U+642A,U+642C,U+643D,U+644A,U+6479,U+6482,U+6485,U+64A9,U+64AC,U+64AE,U+64B5,U+64B7,U+64CE,U+64DE,U+64E2,U+6512,U+652B,U+6556,U+65A1,U+65C3,U+65CE,U+65D6,U+65F0-65F1,U+6600,U+6603,U+6628,U+6631,U+6643,U+664C,U+664F,U+6654-6655,U+6661,U+667E,U+66DD,U+66E9,U+6726,U+672D,U+6749,U+675E,U+676D,U+6773,U+6790,U+67A2-67A3,U+67D2,U+67DE,U+67E0,U+67EC,U+67FB,U+67FF,U+6805,U+6808,U+6813,U+6817-6818,U+6829,U+683D,U+6845,U+6854,U+6867-6869,U+6886,U+6893,U+6897,U+68A2,U+68A7-68A8,U+68C9,U+68CD,U+68D5,U+68DA,U+68FA,U+692D,U+6930,U+693F,U+6954,U+695E,U+6994,U+69A8,U+69B4,U+69B7,U+69D0,U+69DB,U+6A1F,U+6A35,U+6A3D,U+6A47,U+6A61,U+6A71,U+6A79,U+6A80,U+6A84,U+6AA0,U+6AAC,U+6B47,U+6B79,U+6B7C,U+6B83,U+6B87,U+6B89,U+6B92-6B93,U+6B96,U+6B9A,U+6BB4,U+6BD3,U+6BD6-6BD7,U+6BE1,U+6BEF,U+6C16,U+6C1F,U+6C26,U+6C28,U+6C2E-6C30,U+6C40,U+6C50,U+6C5B-6C5C,U+6C5E,U+6C70,U+6C74,U+6C7E,U+6C86,U+6C8F,U+6CA4-6CA6,U+6CAA-6CAB,U+6CBC-6CBD,U+6CCC,U+6CDE,U+6CF3,U+6CF5,U+6CFB-6CFC,U+6D31,U+6D3C-6D3D,U+6D46,U+6D5E,U+6D66,U+6D8E,U+6D95,U+6D9D,U+6D9F,U+6DA3,U+6DA7-6DAA,U+6DAE,U+6DB8,U+6DC4,U+6DC6,U+6DD1,U+6DD6,U+6DE4,U+6DF3,U+6E0D,U+6E11,U+6E1A,U+6E2D,U+6E32,U+6E4D,U+6E58,U+6E5B,U+6E7E,U+6E85,U+6E89,U+6E98,U+6E9C,U+6EC1,U+6EC7,U+6ED3-6ED4,U+6EE4,U+6EE6,U+6F06,U+6F15,U+6F33,U+6F46,U+6F4D,U+6F5E,U+6F66,U+6F7C,U+6F88,U+6FA1,U+6FB9,U+7011,U+7023,U+7078,U+707C,U+708A,U+7092,U+7094-7095,U+70AF,U+70B3,U+70BD,U+70C3,U+70D8,U+70DC,U+70E4,U+70E8-70E9,U+70EC,U+70F7,U+70F9,U+70FD,U+7119,U+715E,U+7164,U+718F,U+71AC,U+722C,U+7235,U+7239,U+723B,U+725F,U+7261,U+7280-7281,U+728A,U+72C1,U+72C8,U+72D0,U+72DE,U+72E1,U+72F0,U+72F8,U+7303,U+7325,U+7329-732A,U+7334,U+733E-733F,U+736D,U+7396,U+739B,U+73AB,U+73D0-73D1,U+7405,U+7409,U+7430,U+7433,U+743C,U+745A,U+745C,U+7470,U+7476,U+7487,U+74DC,U+74E0,U+74E3-74E4,U+74EE,U+74F4,U+7504,U+7525,U+7529,U+752D,U+7538,U+755C,U+7599-759A,U+75A1,U+75A4-75A5,U+75B5,U+75B9,U+75BD,U+75C8,U+75CA,U+75D2,U+75D4,U+75D8,U+75DE,U+75E2,U+75EA,U+75F9,U+7620,U+7624,U+7626,U+7629-762A,U+7634,U+7638,U+763E,U+764C,U+7663,U+7678,U+767C,U+7682,U+768B,U+7691,U+7696,U+76BF,U+76C2,U+76C5-76C6,U+76CE,U+76D4,U+7704,U+7729,U+772F,U+7737,U+7768,U+776B-776C,U+7784-7785,U+778C,U+778E,U+7791,U+77A5,U+77AA,U+77B3,U+77BE,U+77EE,U+77FD-77FE,U+7802,U+780C,U+7812,U+7827,U+782D,U+7830,U+7837,U+783E,U+7845,U+7852,U+786B,U+7877,U+787C,U+7889,U+7897-7898,U+789C,U+78B1,U+78B3-78B4,U+78C1,U+78CA,U+78D5,U+78F7,U+78FA,U+7941,U+7950,U+795F,U+79C3,U+79C6,U+79E7,U+79F8,U+79FD,U+7A02,U+7A14,U+7A20,U+7A57,U+7A84,U+7A86,U+7A88,U+7A8D,U+7A91,U+7A95-7A96,U+7A98,U+7A9D,U+7A9F-7AA0,U+7ABF,U+7B04,U+7B06,U+7B08,U+7B0F,U+7B1B,U+7B4F-7B50,U+7B52,U+7B5B,U+7B6E,U+7B75,U+7B8D,U+7B94-7B95,U+7BA9,U+7BAB,U+7BB1,U+7BC6,U+7BD1,U+7BD3,U+7BD9,U+7BE1,U+7BEA,U+7BF1,U+7BF7,U+7C07,U+7C27,U+7C2A,U+7C3F,U+7C53,U+7C7C-7C7D,U+7C98,U+7C9D,U+7CA4,U+7CB3,U+7CC5,U+7CE0,U+7CEF,U+7D0A,U+7D2B,U+7D5C,U+7D6E,U+7E47,U+7EA8,U+7EAB-7EAC,U+7EB1,U+7EB6,U+7EBA,U+7EBE,U+7EC5,U+7ECA,U+7ECC,U+7ED2,U+7ED4,U+7ED6,U+7EE0,U+7EE5-7EE6,U+7EF0,U+7F01,U+7F05-7F06,U+7F09,U+7F0E,U+7F11-7F12,U+7F17,U+7F1B-7F1C,U+7F28,U+7F2E,U+7F34,U+7F36,U+7F38,U+7F44,U+7F50,U+7F5F,U+7F81,U+7F8C,U+7F94,U+7F9A,U+7F9D,U+7FB9,U+7FBF,U+7FD8,U+7FDF-7FE0,U+7FE9,U+7FF3,U+800D,U+8017,U+8019,U+8026,U+802A,U+803D,U+803F,U+8058,U+8084,U+8087,U+808B-808C,U+8098,U+809A-809B,U+809D,U+80A2,U+80A4,U+80AA,U+80AE,U+80BE-80C0,U+80C3-80C4,U+80CE,U+80DA,U+80DD,U+80E7,U+80EA,U+80EF-80F0,U+80F3,U+80F6,U+80FA,U+80FC,U+810F-8110,U+8113,U+8116,U+812F,U+8146,U+8165,U+817A,U+818A,U+8198,U+81A8,U+81B3,U+81C0,U+81C3,U+81EC,U+81FC,U+8200,U+8202,U+8214,U+821B,U+8231,U+8236-8237,U+828D,U+8299,U+829C-829D,U+82A5,U+82AD,U+82B0,U+82B7,U+82BD,U+82D1,U+82DE,U+82EB,U+82EF,U+82FB,U+8301,U+8304,U+8315,U+831B,U+8331,U+8338-8339,U+8354,U+835A,U+835C,U+8364,U+8385-8386,U+838E,U+83A0,U+83A9,U+83BC,U+83C7,U+83CF,U+83E0,U+83F1,U+8403-8404,U+841D,U+8438,U+8461,U+846B,U+8471,U+8475,U+849C,U+84B2,U+84C9,U+84CD,U+84D0-84D1,U+84D6,U+84DF,U+8517,U+852B,U+853B-853C,U+8549-854A,U+859B,U+85A8,U+85AF,U+85D0,U+85D5,U+8611,U+8638,U+8671,U+867B,U+867E,U+8682,U+868C,U+869C,U+86A4,U+86C0,U+86C6,U+86CA-86CB,U+86D4,U+86D9,U+86DB,U+86E4,U+86F0,U+86F9,U+86FE,U+8715,U+8717-8718,U+8747,U+8749,U+874E,U+8757,U+879F,U+87BA,U+87F9,U+8815,U+8821,U+8854,U+886B,U+8872,U+8879,U+887F,U+8884,U+888B,U+8892,U+889C,U+88B1,U+88D9,U+88E4,U+88F8,U+8902,U+8910,U+8925,U+89EB,U+89F3,U+8A8A,U+8B07,U+8BA3,U+8BA5,U+8BB6,U+8BB9,U+8BBC,U+8BC3,U+8BC5,U+8BCC,U+8BE4,U+8BE7,U+8BE9,U+8BEC,U+8BEE,U+8BFC-8BFD,U+8C07,U+8C0A,U+8C0D,U+8C11,U+8C23,U+8C25,U+8C30,U+8C4C,U+8C55,U+8C62,U+8C79-8C7A,U+8C89,U+8D26,U+8D2D,U+8D30,U+8D32,U+8D37,U+8D3C,U+8D3F,U+8D41-8D43,U+8D48,U+8D4C,U+8D5A,U+8D61,U+8D63,U+8D66,U+8DB4,U+8DBE,U+8DDB,U+8DEB,U+8DFA,U+8DFD,U+8E0A,U+8E1E,U+8E22,U+8E2A,U+8E44,U+8E47-8E48,U+8E51,U+8E59,U+8E6C,U+8E72,U+8E7F,U+8F67,U+8F74,U+8F76,U+8F87,U+8F8A,U+8F8E,U+8F90,U+8F96,U+8FAB,U+8FE2,U+9005,U+9035,U+903B,U+9041,U+9080,U+9082-9083,U+90B1,U+90B5,U+90CA,U+90DD,U+90E7,U+90EF,U+90F4,U+9102,U+9122,U+9149,U+914B,U+9157,U+915A,U+915D-915E,U+9163,U+9165,U+916A,U+916C,U+916E,U+9175-9176,U+918D,U+9190,U+919A-919B,U+91C9,U+91DC,U+9321,U+948A,U+948E,U+9492-9493,U+9499,U+949D,U+94A0-94A1,U+94A8,U+94B3,U+94B5,U+94BE,U+94C0,U+94C2,U+94C5,U+94CE,U+94D7,U+94DB-94DD,U+94E0-94E4,U+94EC,U+94F0-94F1,U+94FE,U+9508,U+950C,U+9511,U+9517,U+951A,U+9523,U+9527-9528,U+952D,U+952F-9531,U+9539,U+9540-9542,U+954A,U+954D,U+9550-9551,U+955E,U+9563,U+9573,U+95F0-95F1,U+95FD-95FE,U+9600,U+960E-960F,U+9616,U+961C,U+962E,U+9631,U+963C,U+9640,U+9647,U+965B,U+9661,U+968D,U+96A7,U+96C1,U+96C7,U+96CC,U+96F9,U+9709,U+9716,U+9739,U+975B,U+9773-9774,U+9776,U+97A3,U+97BF,U+97E6,U+97ED,U+9881,U+9888,U+988A,U+9890,U+98A4,U+98A7,U+98E8,U+990D,U+993A,U+996F,U+9972,U+9974-9975,U+9977,U+997A,U+997C,U+997F,U+9981,U+9985-9986,U+998B,U+998F-9990,U+9992,U+9A11,U+9A69,U+9A6E-9A6F,U+9A78,U+9A7F,U+9A86,U+9A8A-9A8B,U+9A8F,U+9A98,U+9A9B,U+9AA1,U+9AA5,U+9AB8,U+9AC5,U+9AEB,U+9AFB,U+9B03,U+9C88,U+9C8B,U+9C8D,U+9C90,U+9CA0,U+9CA4,U+9CAB,U+9CB0,U+9CB8,U+9CC3,U+9CDD,U+9E20,U+9E25,U+9E29,U+9E2F,U+9E33,U+9E35,U+9E37,U+9E3D-9E3E,U+9E43,U+9E45,U+9E4A,U+9E64,U+9E7F,U+9E8B,U+9E93,U+9EA6,U+9ECD,U+9ED4,U+9EDD,U+9EE5,U+9EE7,U+9EE9,U+9F8B;
}


@font-face {
  font-family: 'KaiTiLocal';
  src: local('Kaiti SC Regular'),
       local('Kaiti SC'),
       local('STKaitiSC-Regular'),
       local('STKaiti'),
       local('STKaiti-SC'),
       local('Kaiti'),
       local('KaiTi'),
       local('KaiTi_GB2312'),
       local('楷体'),
       local('楷体-简'),
       local('华文楷体');
  
}

@font-face {
  font-family: 'KaiTiLocal';
  font-weight: 700;
  src: local('Kaiti SC Bold'),
       local('STKaitiSC-Bold'),
       local('STKaiti-Bold'),
       local('KaiTi Bold');
}

:root {
  
  --ink: #241E1C;          
  --ink-2: #6E5A52;        
  --ink-3: #78635C;        

  
  --red: #C52129;          
  --red-deep: #D2232D;     
  --red-dark: #A81D24;     
  --red-vivid: #F5232D;    
  --red-soft: #FBE3E2;     
  --red-line: rgba(197, 33, 41, .22);
  --red-glow: rgba(197, 33, 41, .12);

  
  --gold: #F8B308;         
  --gold-soft: #FFD764;    
  --gold-light: #FFE79B;   
  --mark-light: #FFFF00;   
  --mark-ink: #5A3A00;     
  --gold-on-red: #FFE7A8;  

  
  --paper: #FFFCF9;        
  --card: #FFFCF9;         
  --rose: #FBDDD6;         
  --peach: #F6E3D9;        
  --clay-tint: var(--brand-peach);             
  --clay-ink: #66544D;     
  --outline-soft: #F6E3D9; 
  --outline-ink: #7A4A38;  

  
  --line: #F0DCD3;         
  --on-red: #FFFFFF;       
  --media-bg: #241E1C;     
  --scrim: rgba(36, 30, 28, .45);        
  
  --kb: 0px;
  --viewer-bg: rgba(36, 30, 28, .96);    
  --bar: #FCF1EC;          
  --glass-card-solid: rgba(255, 252, 249, .995);   
  --glass-hi: rgba(255, 255, 255, .72);  

  
  --on-red-18: rgba(255, 255, 255, .18);
  --on-red-14: rgba(255, 255, 255, .14);
  --on-red-16: rgba(255, 255, 255, .16);

  --shadow-ink: 78, 50, 40;              

  --shadow: 0 6px 24px rgba(var(--shadow-ink), .08);
  --shadow-sm: 0 2px 10px rgba(var(--shadow-ink), .06);
  --shadow-lg: 0 18px 50px rgba(0, 0, 0, .45);   
  --inset-sm: inset 0 1px 2px rgba(var(--shadow-ink), .04);

  --topbar-h: 56px;
  --tabbar-h: 64px;        
  --composer-h: 65px;      
  --radius: 16px;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }

html, body { margin: 0; padding: 0; height: 100%; }
html {
  scroll-padding-bottom: var(--tabbar-h);
  background: linear-gradient(180deg, var(--paper) 0%, var(--rose) 100%);
  background-attachment: fixed;
  
  overflow: hidden;
}
body {
  background: var(--paper);
  color: var(--ink);
  font: 15px/1.7 -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
        "Microsoft YaHei", "Source Han Sans SC", sans-serif;
  overscroll-behavior-y: none;
  overflow: hidden;
}
button, input, textarea { font: inherit; color: inherit; }

@media (pointer: coarse) {
  
  input, textarea, select { font-size: 16px !important; }
}
button { border: 0; background: none; cursor: pointer; }
h1, h2, h3 { margin: 0; font-weight: 700; line-height: 1.35; }
p { margin: 0 0 .6em; }
:root { color-scheme: light; }


.topbar {
  position: fixed; top: 0; left: 0; right: 0; height: var(--topbar-h); z-index: 30;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 14px calc(0px);
  padding-top: env(safe-area-inset-top);
  height: calc(var(--topbar-h) + env(safe-area-inset-top));
  background: var(--bar);
  -webkit-backdrop-filter: saturate(170%) blur(14px);
  backdrop-filter: saturate(170%) blur(14px);
  
  
}

.topbar { background: var(--brand-peach); }
@supports not ((backdrop-filter: blur(4px)) or (-webkit-backdrop-filter: blur(4px))) {
  .topbar { background: var(--brand-peach); }
}

.topbar.is-hidden { display: none; }
#view-me.no-topbar .scroll {
  top: 0;
  padding-top: calc(14px + env(safe-area-inset-top));
}
.brand { display: flex; align-items: center; gap: 10px; min-width: 0; }

.brand-mark {
  
  width: 38px; height: 38px; border-radius: 11px; flex: none;
  background: linear-gradient(160deg, var(--red-deep), var(--red-dark));
  color: var(--on-red); font-weight: 700;
  display: grid; place-items: center; font-size: 16px; text-indent: -.03em;
  box-shadow: 0 3px 10px var(--red-glow), inset 0 1px 0 var(--on-red-18);
  overflow: hidden;              
}

.brand-mark img { width: 100%; height: 100%; display: block; object-fit: cover; }
.brand-text { display: flex; flex-direction: column; min-width: 0; }

.brand-text strong { font-size: 16px; letter-spacing: .2px; color: var(--red); font-weight: 700; }
.brand-text em {
  font-style: normal; font-size: 10.5px; color: var(--ink-3);
  letter-spacing: .1em; margin-top: 1px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

.ghost-btn {
  width: 40px; height: 40px; border-radius: 50%; flex: none;
  border: 1px solid var(--red-line); color: var(--ink-2);
  display: grid; place-items: center; font-size: 16px; font-weight: 600;
  background: var(--card);
  transition: border-color .15s, color .15s, background-color .15s;
}
.ghost-btn:active { border-color: var(--red); color: var(--red); background: var(--red-soft); }


.view { display: none; }
.view.is-active { display: block; }
.scroll {
  
  
  background: var(--bar);
  position: fixed; top: calc(var(--topbar-h) + env(safe-area-inset-top));
  bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--kb, 0px));
  left: 0; right: 0; overflow-y: auto; -webkit-overflow-scrolling: touch;
  padding: 14px 14px 18px;
  scroll-behavior: smooth;
}

#chatScroll { padding-bottom: calc(18px + var(--composer-h)); }
#view-chat .scroll { bottom: calc(var(--tabbar-h) + var(--composer-h) + env(safe-area-inset-bottom) + var(--kb, 0px)); }



.tabbar {
  position: fixed; left: 0; right: 0; bottom: var(--kb, 0px); z-index: 25;
  display: flex; align-items: stretch;
  height: calc(var(--tabbar-h) + env(safe-area-inset-bottom));
  padding-bottom: env(safe-area-inset-bottom);
  background: var(--bar);   
  -webkit-backdrop-filter: saturate(170%) blur(14px);
  backdrop-filter: saturate(170%) blur(14px);
  border-top: 1px solid var(--line);
  box-shadow: 0 -1px 0 var(--glass-hi), 0 -10px 22px rgba(var(--shadow-ink), .05);
}

@supports not ((backdrop-filter: blur(4px)) or (-webkit-backdrop-filter: blur(4px))) {
  .tabbar { background: var(--bar); }
}
.tab {
  position: relative; flex: 1 1 0; min-width: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 0 4px; color: var(--ink-2); transition: color .16s ease;
}
.tab span {
  font-size: 14px; font-weight: 600; line-height: 1;
  letter-spacing: .14em; text-indent: .14em;   
  white-space: nowrap;                          
}

.tab::before {
  content: ''; position: absolute; z-index: 0;
  top: 50%; left: 50%; width: 68px; height: 34px; border-radius: 9px;
  background: var(--red); box-shadow: 0 3px 9px var(--red-glow);
  transform: translate(-50%, -50%); opacity: 0;
  transition: opacity .18s ease;
}

.tab::after {
  content: ''; position: absolute; z-index: 0;
  top: calc(50% + 12px); left: 50%; width: 12px; height: 2px; border-radius: 999px;
  background: var(--gold);
  transform: translateX(-50%); opacity: 0;
  transition: opacity .18s ease;
}
.tab span { position: relative; z-index: 1; }
.tab.is-active { color: var(--on-red); }
.tab.is-active::before { opacity: 1; }
.tab.is-active::after { opacity: 1; }
.tab:active { color: var(--on-red); }
.tab:active::before { opacity: .72; }
.tab:active::after { opacity: .72; }

@media (max-width: 360px) {
  .tab span { font-size: 13.5px; letter-spacing: .08em; text-indent: .08em; }
}


.hero { padding: 4px 2px 14px; }
.hero h1 { font-size: 20px; letter-spacing: .5px; line-height: 1.3; }
.hero p {
  margin: 7px 0 0; color: var(--ink-2); font-size: 12.5px;
  letter-spacing: .06em;
}

.section-title {
  font-size: 15px; margin: 22px 2px 8px; padding-left: 10px;
  border-left: 3px solid var(--red); letter-spacing: .04em;
}
.section-note { color: var(--ink-3); font-size: 12.5px; margin: 0 2px 12px; line-height: 1.6; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.pad { padding: 14px; }
.dim { color: var(--ink-3); font-size: 12.5px; }


.messages { display: flex; flex-direction: column; gap: 12px; padding-bottom: 8px; }
.msg { display: flex; gap: 8px; max-width: 100%; }
.msg .avatar {
  width: 28px; height: 28px; border-radius: 9px; flex: none; margin-top: 2px;
  display: grid; place-items: center; font-size: 13px; font-weight: 700;
}

.msg.user { flex-direction: row-reverse; }
.msg.user .avatar { background: var(--clay-tint); color: var(--clay-ink); }
.msg.ai .avatar { background: var(--red); color: var(--on-red); }
.bubble {
  background: var(--card); border: 1px solid var(--line); border-radius: 14px;
  padding: 11px 13px; box-shadow: var(--shadow-sm); max-width: calc(100% - 44px);
  word-break: break-word; overflow-wrap: anywhere;
}

.msg.user .bubble { background: var(--rose); border-color: var(--line); color: var(--ink); border-top-right-radius: 5px; }
.msg.ai .bubble { border-top-left-radius: 5px; }
.bubble h4 { margin: 10px 0 4px; font-size: 14.5px; color: var(--red); }
.bubble h4:first-child { margin-top: 0; }
.bubble ol, .bubble ul { margin: 4px 0 8px; padding-left: 20px; }
.bubble li { margin: 3px 0; }
.bubble strong { color: var(--red); }
.msg.user .bubble strong { color: var(--red); }
.bubble code { background: var(--red-soft); padding: 1px 5px; border-radius: 5px; font-size: 13px; }
.bubble .hr { height: 1px; background: var(--line); margin: 10px 0; }
.think {
  font-size: 12.5px; color: var(--ink-3); background: var(--peach); border-radius: 10px;
  padding: 8px 11px; margin-bottom: 8px; max-height: 92px; overflow: hidden;
  border-left: 3px solid var(--gold-soft);
}
.typing { display: inline-flex; gap: 3px; align-items: center; }
.typing i { width: 6px; height: 6px; border-radius: 50%; background: var(--ink-3); animation: blink 1.2s infinite; }
.typing i:nth-child(2) { animation-delay: .2s; }
.typing i:nth-child(3) { animation-delay: .4s; }
@keyframes blink { 0%, 60%, 100% { opacity: .25; } 30% { opacity: 1; } }

.chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 0 6px; }
.chip {
  background: var(--card); border: 1px solid var(--line); border-radius: 999px;
  padding: 8px 14px; font-size: 12.5px; color: var(--ink-2); box-shadow: var(--shadow-sm);
  transition: background .15s, color .15s, border-color .15s;
}
.chip:active { background: var(--red-soft); color: var(--red); border-color: var(--red-line); }


.notes-layer {
  position: fixed; inset: 0; z-index: 25;
  pointer-events: none;            
}

.notes-layer.is-away { display: none; }
.note {
  position: absolute;
  width: min(78vw, 300px);
  
  padding: 18px 16px 34px;
  border-radius: 3px;
  pointer-events: auto;
  color: #3a3128;
  font-size: 14px; line-height: 1.75;
  white-space: pre-wrap; word-break: break-word;
  
  box-shadow: 0 1px 2px rgba(60, 40, 20, .10), 0 8px 22px rgba(60, 40, 20, .16);
  border: 1px solid rgba(120, 90, 40, .12);
  
  transition: transform .52s cubic-bezier(.34, 1.16, .5, 1), opacity .42s ease,
              box-shadow .3s ease;
  will-change: transform;
}

.note.is-out { z-index: 6; }

.note--yellow, .fnote--yellow { --fpaper: linear-gradient(160deg, #FFF7C4 0%, #FCEFA8 100%); background: var(--fpaper); }
.note--pink,   .fnote--pink   { --fpaper: linear-gradient(160deg, #FFE3E6 0%, #FDD3D8 100%); background: var(--fpaper); }
.note--blue,   .fnote--blue   { --fpaper: linear-gradient(160deg, #DDF0FB 0%, #C9E6F7 100%); background: var(--fpaper); }
.note--green,  .fnote--green  { --fpaper: linear-gradient(160deg, #E1F4DC 0%, #CDEAC6 100%); background: var(--fpaper); }

.note--white,  .fnote--white  { --fpaper: linear-gradient(160deg, #F2E9FC 0%, #E3D4F7 100%); background: var(--fpaper); }

.note::before {
  content: ''; position: absolute; inset: 30px 0 0;
  background: repeating-linear-gradient(180deg,
    transparent 0, transparent 25px,
    rgba(120, 90, 40, .055) 25px, rgba(120, 90, 40, .055) 26px);
  border-radius: 3px; pointer-events: none;
}

.note .note-text { position: relative; z-index: 1; margin: 0; padding-top: 2px; }

.note .note-img {
  position: relative; z-index: 1;
  display: block; width: 100%; height: auto;
  max-height: 42vh; object-fit: contain;
  margin: 0 0 8px;
  border-radius: 2px;
  background: rgba(255, 255, 255, .45);
  -webkit-user-drag: none; user-select: none;
}

.note .note-text a {
  color: var(--red); text-decoration: underline;
  text-underline-offset: 2px; word-break: break-all;
  text-decoration-skip-ink: none;
  -webkit-text-decoration-skip: none;
}


.who-video {
  display: block; width: 100%; max-width: 100%; height: auto;
  margin: 0 auto 14px; border-radius: 12px; background: #000;
}
.who-video--vertical { max-width: 260px; }
.who-video-cap { margin: 0 0 6px; font-size: 13px; color: var(--ink-3); }

.who-shots { margin: 4px 0 16px; }
.who-shots img {
  display: block; margin: 0 auto 10px; max-width: 100%; height: auto;
  border-radius: 10px; background: var(--peach);
}
.who-shots img:last-child { margin-bottom: 0; }

.who-photo {
  display: block; width: 100%; height: auto; margin: 2px 0 14px;
  border-radius: 14px; background: var(--peach);
}
.who-list { margin: 0 0 12px; padding-left: 20px; }
.who-list li { margin: 5px 0; line-height: 1.65; }
.who-quote {
  margin: 0 0 16px; padding: 12px 14px; border-left: 3px solid var(--red);
  border-radius: 0 10px 10px 0; background: var(--red-soft); color: var(--ink);
  font-size: 15px; line-height: 1.7;
}
.who-quote--last { margin-top: 14px; margin-bottom: 16px; }
.who-quote cite { display: block; margin-top: 6px; font-style: normal; font-size: 13px; color: var(--ink-2); }
.who-chips { margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 6px; }
.who-chips span {
  padding: 5px 10px; border-radius: 999px; background: var(--rose);
  color: var(--ink); font-size: 13px; line-height: 1.2;
}
.who-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 16px; }
.who-strip img {
  width: 100%; height: 92px; object-fit: cover; border-radius: 10px; background: var(--peach);
}
#whoSheet .sheet-card--doc h4 { margin: 18px 0 8px; }
#whoSheet .sheet-card--doc p { margin: 0 0 10px; line-height: 1.7; }

.video-more {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; margin: 10px 0 4px; padding: 12px 14px;
  border: 1px solid var(--red-line); border-radius: var(--radius);
  background: var(--card); color: var(--red);
  font: inherit; font-size: 14.5px; font-weight: 600; cursor: pointer;
  transition: background .16s, border-color .16s;
}
.video-more-arrow { font-size: 18px; line-height: 1; }
@media (hover: hover) and (pointer: fine) {
  .video-more:hover { background: var(--red-soft); border-color: var(--red); }
}
.video-more:active { background: var(--red-soft); }


.allv-list { margin: 4px 0 12px; }
.allv-row {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 9px 2px; border: 0; border-bottom: 1px solid var(--red-line);
  background: none; font: inherit; text-align: left; cursor: pointer;
}
.allv-row:last-child { border-bottom: 0; }
.allv-thumb {
  flex: 0 0 76px; height: 43px; border-radius: 6px; overflow: hidden;
  background: var(--peach);
}
.allv-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.allv-txt { flex: 1; min-width: 0; }
.allv-txt strong { display: block; font-size: 14px; line-height: 1.35; color: var(--ink); }
.allv-txt em { display: block; margin-top: 2px; font-style: normal; font-size: 12px; color: var(--ink-3); }
.allv-arrow { flex: 0 0 auto; color: var(--ink-3); font-size: 18px; line-height: 1; }
@media (hover: hover) and (pointer: fine) {
  .allv-row:hover { background: var(--red-soft); }
}

.syslearn {
  display: flex; align-items: center; gap: 12px;
  width: 100%; margin: 18px 0 8px; padding: 15px 18px;
  border: 0; border-radius: var(--radius); cursor: pointer;
  background: linear-gradient(135deg, #D8281F 0%, var(--red) 62%);
  color: #fff; text-align: left; font: inherit;
  box-shadow: 0 6px 18px rgba(197, 33, 41, .22);
  transition: filter .16s, box-shadow .16s, transform .16s;
}
.syslearn-t { display: block; font-size: 18px; font-weight: 700; letter-spacing: .04em; }
.syslearn-s { display: block; margin-top: 4px; font-size: 12.5px; line-height: 1.5; opacity: .9; }
.syslearn-arrow { margin-left: auto; font-size: 24px; line-height: 1; opacity: .92; }
@media (hover: hover) and (pointer: fine) {
  .syslearn:hover { filter: brightness(1.05); box-shadow: 0 9px 24px rgba(197, 33, 41, .28); }
}
.syslearn:active { transform: scale(.985); }
.syslearn:focus-visible { outline: 3px solid rgba(197, 33, 41, .35); outline-offset: 2px; }


.learn-head { padding: 10px 0 14px; border-bottom: 1px dashed var(--line); }
.learn-line { font-size: 12px; letter-spacing: .14em; color: var(--ink-3); }
.learn-unit { margin: 4px 0 2px; font-size: 19px; font-weight: 700; letter-spacing: .02em; color: var(--ink); }
.learn-sub { font-size: 12.5px; color: var(--ink-2); line-height: 1.6; }
.learn-count { margin-top: 10px; font-size: 12.5px; color: var(--ink-2); }
.learn-count b { color: var(--red); font-weight: 700; }
.learn-bar { margin-top: 7px; height: 7px; border-radius: 999px; background: var(--red-soft); overflow: hidden; }
.learn-bar > i { display: block; height: 100%; border-radius: 999px; background: var(--red); transition: width .4s ease; }
.learn-continue {
  display: flex; align-items: center; justify-content: center; gap: 6px;
  width: 100%; margin-top: 12px; padding: 12px 16px;
  border: 0; border-radius: 12px; background: linear-gradient(135deg, var(--red-deep), var(--red-dark));
  color: #FFF7F3; font-size: 15px; font-weight: 700; letter-spacing: .02em;
  box-shadow: 0 6px 16px rgba(197, 33, 41, .22);
}
.learn-continue:active { transform: scale(.985); }


.learn-path { position: relative; margin: 18px 0 4px; padding-left: 4px; }
.learn-path::before {
  content: ""; position: absolute; left: 29px; top: 28px; bottom: 28px;
  border-left: 2px dotted var(--red-line);
}
.learn-node {
  position: relative; display: flex; align-items: center; gap: 13px; padding: 9px 0;
  
  cursor: pointer;
}
.learn-node:active .learn-seal { transform: scale(.95); }

@media (hover: hover) {
  .learn-node:hover .learn-seal {
    transform: translateY(-1px);
    box-shadow: 0 0 0 5px var(--bar), 0 4px 12px rgba(197, 33, 41, .20);
  }
  .learn-node:hover .learn-title { color: var(--red); }
}
.learn-seal {
  position: relative; z-index: 1; flex: none;
  display: flex; align-items: center; justify-content: center;
  width: 52px; height: 52px; border-radius: 50%;
  background: var(--card); border: 2px dashed var(--red-line);
  color: var(--ink-3); font-size: 17px; font-weight: 700;
  box-shadow: 0 0 0 5px var(--bar);
  transition: transform .18s ease, background .18s ease, color .18s ease;
}
.learn-node.is-done .learn-seal {
  background: var(--red); border: 2px solid var(--red); color: #FFF7F3;
  box-shadow: 0 0 0 5px var(--bar), 0 3px 10px rgba(197, 33, 41, .28);
}
.learn-node.is-now .learn-seal {
  background: var(--card); border: 3px solid var(--red); color: var(--red);
  box-shadow: 0 0 0 5px var(--bar), 0 0 0 9px var(--red-glow);
  animation: learnPulse 1.8s ease-in-out infinite;
}
@keyframes learnPulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
.learn-node.is-locked { opacity: .6; }
@media (prefers-reduced-motion: reduce) {
  .learn-node.is-now .learn-seal { animation: none; }
  .learn-bar > i { transition: none; }
}
.learn-meta { min-width: 0; }
.learn-title { font-size: 15px; font-weight: 700; color: var(--ink); letter-spacing: .01em; }
.learn-node.is-locked .learn-title { color: var(--ink-2); font-weight: 600; }
.learn-tag { margin-top: 2px; font-size: 12px; color: var(--ink-3); }
.learn-stars { margin-top: 3px; font-size: 12px; color: var(--gold); letter-spacing: .12em; }
.learn-stars .off { color: var(--line); }
.learn-node:active .learn-seal { transform: scale(.96); }
.learn-foot { margin: 16px 0 0; font-size: 12px; color: var(--ink-3); line-height: 1.7; }

.learn-poem { margin: 2px 0 6px; }
.learn-poem-src { margin-bottom: 6px; font-size: 13.5px; line-height: 1.7; color: var(--ink); }
.learn-poem-l { text-align: center; font-size: 14.5px; line-height: 1.9; color: var(--ink-3); }
.learn-poem-from { margin-top: 2px; text-align: right; font-size: 14.5px; line-height: 1.9; color: var(--ink-3); }
.learn-poem-note { margin-top: 8px; text-align: left; font-size: 13px; line-height: 1.75; color: var(--ink-3); }
.learn-seg { margin: 10px 0 0; font-size: 12.5px; color: var(--ink-3); text-align: center; }

.learn-more { margin: 18px 0 26px; font-size: 12.5px; color: var(--ink-3); line-height: 1.7; text-align: center; }


.learn-quiz-head {
  display: flex; align-items: center; justify-content: space-between;
  font-size: 12.5px; color: var(--ink-2);
}
.learn-quiz-head b { color: var(--red); font-weight: 700; }
.learn-quiz-bar { margin-top: 6px; height: 5px; border-radius: 999px; background: var(--red-soft); overflow: hidden; }
.learn-quiz-bar > i { display: block; height: 100%; background: var(--red); border-radius: 999px; transition: width .3s ease; }
@media (prefers-reduced-motion: reduce) { .learn-quiz-bar > i { transition: none; } }
.learn-q { margin: 16px 0 12px; font-size: 16.5px; line-height: 1.65; font-weight: 600; color: var(--ink); }

.learn-blank {
  display: inline-block; min-width: 2.6em; padding: 0 3px;
  border-bottom: 1.5px solid var(--red-line);
  text-align: center; color: var(--red); font-weight: 700;
}
.learn-opts { display: flex; flex-direction: column; gap: 9px; }
.learn-opt {
  width: 100%; text-align: left; padding: 13px 14px;
  border: 1.5px solid var(--line); border-radius: 12px;
  background: var(--card); color: var(--ink);
  font-size: 15px; line-height: 1.5;
}
.learn-opt:active { transform: scale(.995); }
.learn-opt.is-picked { border-color: var(--red); background: var(--red-soft); }
.learn-opt.is-right { border-color: #2E7D4F; background: #E9F6EE; color: #1F5C39; font-weight: 600; }
.learn-opt.is-wrong { border-color: var(--red); background: #FDE7E6; color: var(--red-dark); }
.learn-opt[disabled] { opacity: 1; }
.learn-fb { margin-top: 14px; padding: 12px 14px; border-radius: 12px; font-size: 13.5px; line-height: 1.75; }
.learn-fb.ok { background: #E9F6EE; color: #1F5C39; }
.learn-fb.no { background: var(--red-soft); color: var(--red-dark); }
.learn-fb b { font-weight: 700; }
.learn-fb .basis { display: block; margin-top: 6px; color: var(--ink-3); font-size: 12px; }
.learn-next {
  display: block; width: 100%; margin-top: 12px; padding: 13px 16px;
  border: 0; border-radius: 12px; background: linear-gradient(135deg, var(--red-deep), var(--red-dark));
  color: #FFF7F3; font-size: 15px; font-weight: 700;
  box-shadow: 0 6px 16px rgba(197, 33, 41, .22);
}
.learn-next.ghost {
  background: var(--card); color: var(--ink-2); border: 1.5px solid var(--line); box-shadow: none;
}

.learn-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 10px; }
.learn-chip {
  padding: 9px 13px; border: 1.5px solid var(--line); border-radius: 10px;
  background: var(--card); color: var(--ink); font-size: 14.5px;
}
.learn-chip.is-sel { border-color: var(--red); background: var(--red-soft); color: var(--red-dark); }
.learn-chip.is-right { border-color: #2E7D4F; background: #E9F6EE; color: #1F5C39; }
.learn-chip.is-wrong { border-color: var(--red); background: #FDE7E6; color: var(--red-dark); }
.learn-chip .tag { margin-left: 6px; font-size: 12px; color: var(--red); }
.learn-chip.is-right .tag { color: #1F5C39; }
.learn-groups { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.learn-gbtn {
  padding: 9px 12px; border: 1.5px dashed var(--red-line); border-radius: 10px;
  background: var(--card); color: var(--ink-2); font-size: 13.5px;
}
.learn-gbtn:active { background: var(--red-soft); color: var(--red-dark); border-color: var(--red); }
.learn-hint { margin: 6px 0 0; font-size: 12.5px; color: var(--ink-3); }

.learn-result { padding: 14px 0 4px; text-align: center; }
.learn-result .big { font-size: 42px; line-height: 1.1; letter-spacing: .08em; color: var(--gold); }

.learn-result .big .off { color: var(--line); }
.learn-result h3 { margin: 10px 0 4px; font-size: 19px; color: var(--ink); }
.learn-result p { margin: 0; font-size: 13.5px; color: var(--ink-2); line-height: 1.7; }
.learn-wrongbook { margin: 14px 0 0; padding: 12px 14px; border: 1px dashed var(--line); border-radius: 12px; }
.learn-wrongbook h4 { margin: 0 0 6px; font-size: 13px; color: var(--ink-2); font-weight: 700; }
.learn-wrongbook li { font-size: 13px; color: var(--ink-2); line-height: 1.7; }

.note-pin {
  position: absolute; z-index: 2;
  top: -14px; left: 50%; margin-left: -6.5px;
  width: 34px; height: 34px; padding: 0; line-height: 0;
  background: transparent; border: 0; cursor: pointer;
  transform-origin: 6.5px 29px;
  
  opacity: .95;
  
  filter: drop-shadow(2px 0 1.5px rgba(60, 40, 20, .26));
  transition: opacity .2s ease, filter .2s ease;
  touch-action: manipulation;
}

.note-pin svg {
  transform: rotate(var(--pin-rot, 0deg));
  transform-origin: 6.5px 29px;
  transition: transform .2s ease;
}

.note:not(.is-pinned) .note-pin svg path,
.note:not(.is-pinned) .note-pin svg ellipse { fill: #a49d95; }

.note.is-pinned .note-pin {
  --pin-rot: -15deg;
  opacity: 1;
  filter: drop-shadow(3px 0 2.5px rgba(60, 40, 20, .36));
}

.note-pin::before {
  content: ''; position: absolute;
  left: 2px; top: 27px;
  width: 9px; height: 3.5px; border-radius: 50%;
  background: rgba(90, 70, 40, .3);
  opacity: 0; transition: opacity .2s ease;
}
.note.is-pinned .note-pin::before { opacity: 1; }
.note-pin svg { display: block; width: 100%; height: 100%; }


.note-cmts {
  position: absolute; z-index: 1;
  left: 10px; bottom: 10px;
  display: flex; align-items: center; gap: 4px;
  padding: 3px 7px 3px 5px; border: 0; border-radius: 999px;
  background: transparent; cursor: pointer;
  color: rgba(107, 90, 69, .72);
  opacity: .62;
  transition: opacity .22s ease, background .18s ease, color .18s ease;
  touch-action: manipulation;
}
.note-cmts svg { display: block; width: 17px; height: 17px; }
.note-cmts-n { font-size: 11.5px; line-height: 1; font-variant-numeric: tabular-nums; }
.note-cmts-n[hidden] { display: none; }   
.note-cmts:active { opacity: 1; background: rgba(120, 90, 40, .14); color: #6b5a45; }
.note.has-cmts .note-cmts,
.note:hover .note-cmts { opacity: .9; color: #8a6f4f; }


.note-pin.is-press svg { animation: pin-press .3s ease-out; }
@keyframes pin-press {
  0%   { transform: rotate(var(--pin-rot, 0deg)) scale(1); }
  45%  { transform: rotate(var(--pin-rot, 0deg)) scale(.84); }
  100% { transform: rotate(var(--pin-rot, 0deg)) scale(1); }
}

.note .note-ops {
  position: absolute; z-index: 1;
  right: 10px; bottom: 12px;
  display: flex; gap: 6px;
  opacity: .3; transition: opacity .25s;
}
.note:hover .note-ops, .note.is-drag .note-ops { opacity: .72; }
.note .note-ops button {
  font: inherit; font-size: 11px; line-height: 1; letter-spacing: .04em;
  color: rgba(107, 90, 69, .75);
  background: transparent; border: 1px solid rgba(120, 90, 40, .13);
  border-radius: 999px; padding: 4px 10px; cursor: pointer;
  transition: color .18s, background .18s, border-color .18s;
}
.note .note-ops button:active { background: rgba(255, 255, 255, .8); color: #b3261e; border-color: rgba(179, 38, 30, .35); }

.note { cursor: grab; touch-action: none; }
.note.is-drag {
  cursor: grabbing;
  box-shadow: 0 6px 22px rgba(60, 40, 20, .3), 0 2px 6px rgba(60, 40, 20, .22);
  opacity: .96;
  transition: none;            
}


.note.is-in { opacity: 1; }

@keyframes note-in {
  0%   { transform: translateX(calc(-100% + 26px)) translateY(10px) rotate(-2.4deg) scale(.97);
         opacity: 0; }
  60%  { opacity: 1; }
  100% { transform: translateX(0) translateY(0) rotate(var(--in-rot, -3.2deg)) scale(1);
         opacity: 1; }
}

.note.is-out {
  opacity: .9;
  box-shadow: 0 1px 2px rgba(60, 40, 20, .12);
}
.note.is-out .note-text { opacity: .45; }

.note.is-out .note-ops { opacity: 0; pointer-events: none; }



@keyframes note-tear {
  0%   { transform: translateX(0) rotate(0) scale(1); opacity: 1; }
  28%  { transform: translateX(0) rotate(-6deg) scale(1.03); opacity: 1; }
  100% { transform: translateX(0) translateY(58vh) rotate(19deg) scale(.72);
         opacity: 0; }
}
@keyframes note-rip {          
  0%   { opacity: 0; }
  22%  { opacity: .9; }
  100% { opacity: 0; }
}
.note.is-torn {
  pointer-events: none;
  animation: note-tear .78s cubic-bezier(.5, .05, .9, .5) forwards;
}
.note.is-torn::before {
  content: ''; position: absolute; left: 0; right: 0; top: 42%; height: 3px;
  background: repeating-linear-gradient(90deg, #fff 0 3px, transparent 3px 6px);
  animation: note-rip .5s ease-out forwards; z-index: 4;
}

.note-bit {
  position: fixed; z-index: 26; pointer-events: none;
  width: 7px; height: 5px; border-radius: 1px;
  background: #f5e9b8;
  animation: note-bit-fly .95s ease-out forwards;
}
@keyframes note-bit-fly {
  0%   { opacity: 1; transform: translate(0, 0) rotate(0); }
  100% { opacity: 0;
         transform: translate(var(--bx, 30px), var(--by, 60px)) rotate(var(--br, 200deg)); }
}

.note, .note * { -webkit-user-select: none; user-select: none; }

.note.is-reading, .note.is-reading * { -webkit-user-select: text; user-select: text; }


.composer {
  position: fixed; left: 0; right: 0;
  bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--kb, 0px));
  display: flex; gap: 8px; align-items: flex-end;
  padding: 9px 12px; background: var(--bar);
  -webkit-backdrop-filter: saturate(160%) blur(12px);
  backdrop-filter: saturate(160%) blur(12px);
  border-top: 1px solid var(--line);
  box-shadow: 0 -8px 20px rgba(var(--shadow-ink), .045);
  
  z-index: 26;
}
@supports not ((backdrop-filter: blur(4px)) or (-webkit-backdrop-filter: blur(4px))) {
  .composer { background: var(--bar); }
}

.input-wrap { position: relative; flex: 1; min-width: 0; display: flex; }
.composer textarea {
  flex: 1; resize: none; width: 100%;
  
  font-size: 16px;
  
  max-height: 50vh; min-height: 40px;
  
  padding: 10px 40px 10px 13px; border-radius: 20px; border: 1px solid var(--line);
  background: var(--card); outline: none; line-height: 1.5;
  box-shadow: var(--inset-sm);
  transition: border-color .15s, box-shadow .15s;
  
  scrollbar-width: thin;
  
}

.composer textarea::-webkit-scrollbar { width: 8px; }
.composer textarea::-webkit-scrollbar-track { background: transparent; }
.composer textarea::-webkit-scrollbar-thumb {
  background: rgba(var(--shadow-ink), .18); background-clip: padding-box;
  border: 2px solid transparent; border-radius: 8px;
}

.composer textarea.has-scroll { padding-right: 50px; }
.composer textarea::placeholder { color: var(--ink-3); }
.composer textarea:focus { border-color: var(--red); box-shadow: 0 0 0 3px var(--red-glow); }

.plus-btn {
  position: absolute; right: 8px; top: 50%; transform: translateY(-50%);
  width: 28px; height: 28px; padding: 0; border: 0; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; color: var(--ink-3); opacity: .5;
  cursor: pointer; transition: opacity .18s, color .18s, background .18s;
}
.plus-btn:active { opacity: 1; color: var(--red); background: var(--red-soft); }
@media (hover: hover) { .plus-btn:hover { opacity: .85; } }

.send-btn {
  flex: none; height: 40px; padding: 0 18px; border-radius: 20px;
  background: linear-gradient(150deg, var(--red-deep), var(--red-dark));
  color: var(--on-red); font-weight: 600; font-size: 14px;
  letter-spacing: .04em;
  box-shadow: 0 4px 12px var(--red-glow);
  transition: transform .12s ease, opacity .15s;
}
.send-btn:disabled { opacity: .45; box-shadow: none; }
.send-btn:not(:disabled):active { transform: scale(.97); }



.img-tray {
  position: fixed; left: 0; right: 0; z-index: 21;
  bottom: calc(var(--tabbar-h) + var(--composer-h) + env(safe-area-inset-bottom) + var(--kb, 0px));
  display: flex; gap: 8px; padding: 8px 12px 2px;
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  max-width: 720px; margin: 0 auto;
}
.img-tray[hidden] { display: none; }
.img-tray .it {
  position: relative; flex: none; width: 62px; height: 62px;
  border-radius: 10px; overflow: hidden; background: var(--card);
  border: 1px solid var(--line); box-shadow: var(--shadow-sm);
}
.img-tray .it img { width: 100%; height: 100%; object-fit: cover; display: block; }
.img-tray .it button {
  position: absolute; top: 2px; right: 2px; width: 20px; height: 20px;
  border-radius: 50%; border: 0; cursor: pointer; line-height: 1;
  background: rgba(0, 0, 0, .55); color: #fff; font-size: 13px; padding: 0;
}

.bubble .shot {
  display: block; max-width: 100%; width: auto; max-height: 260px;
  border-radius: 10px; margin: 2px 0 6px; cursor: zoom-in;
  border: 1px solid var(--line);
}

.lightbox {
  position: fixed; inset: 0; z-index: 60;
  background: rgba(20, 12, 10, .92);
  display: flex; align-items: center; justify-content: center;
  padding: 18px; cursor: zoom-out;
}
.lightbox[hidden] { display: none; }
.lightbox img { max-width: 100%; max-height: 100%; border-radius: 8px; display: block; }

.bubble .notice {
  margin: 0 0 8px; padding: 7px 10px; border-radius: 8px;
  background: var(--red-soft); color: var(--red);
  border-left: 3px solid var(--red);
  font-size: 12.5px; line-height: 1.6;
}



.course-tabs {
  
  display: flex; flex-wrap: nowrap; gap: 7px;
  margin: 2px 0 14px; padding: 2px 0 6px;
  overflow-x: auto; overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-width: none;
  
}
.course-tabs::-webkit-scrollbar { display: none; }
.course-tabs > button {
  flex: none;                              
  font: inherit; font-size: 13px; line-height: 1; padding: 7px 13px;
  border-radius: 999px; cursor: pointer; white-space: nowrap;
  background: var(--card); color: var(--ink-2);
  border: 1px solid var(--line);
  transition: background .18s, color .18s, border-color .18s;
}
.course-tabs > button.is-active {
  
  background: var(--brand-peach); color: var(--red); border-color: var(--brand-peach);
  font-weight: 600;
}
.course-tabs > button:active { transform: scale(.97); }

.course-empty {
  grid-column: 1 / -1;
  padding: 22px 4px; text-align: center;
  font-size: 13px; line-height: 1.8; color: var(--ink-3);
}


.video-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.video-list .video-meta { padding: 9px 10px 11px; }
.video-list .video-meta strong {
  font-size: 13.5px; line-height: 1.45;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.video-list .video-meta p {
  margin: 4px 0 0; font-size: 11.5px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.video-list .video-play { gap: 7px; }
.video-list .video-play-icon {
  border-left-width: 13px;
  border-top-width: 8px;
  border-bottom-width: 8px;
}
.video-list .video-play-text { font-size: 11px; letter-spacing: .06em; }
.video-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }

.video-card,
.allv-row,
.vp-more-item { user-select: none; -webkit-user-select: none; }

img { -webkit-user-drag: none; }

.video-card.is-clickable { cursor: pointer; transition: box-shadow .18s ease, border-color .18s ease, transform .12s ease; }
.video-card.is-clickable:hover { border-color: var(--red-line, #f3c9c6); box-shadow: 0 4px 16px rgba(var(--shadow-ink), .14); }
.video-card.is-clickable:active { transform: scale(.995); }

.video-card.is-clickable:focus-visible { outline: 2px solid var(--red-vivid); outline-offset: 2px; }
.video-card video { width: 100%; display: block; background: var(--media-bg); aspect-ratio: 16/9; object-fit: contain; }


.bili-list { display: flex; flex-direction: column; gap: 14px; }
.bili-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); }
.bili-frame { position: relative; width: 100%; padding-top: 56.25%; background: var(--media-bg); }
.bili-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }

.bili-frame.has-poster { cursor: pointer; }
.bili-poster {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.bili-frame.has-poster:active .bili-poster { opacity: .86; }


.bili-play {
  position: absolute; inset: 0; width: 100%; height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  background: linear-gradient(160deg, #3A2E28, #241E1C);
  color: var(--on-red); border: 0;
}
.bili-play-icon {
  width: 0; height: 0;
  border-left: 18px solid currentColor;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
  margin-left: 4px;                 
  opacity: .92;
}
.bili-play-text { font-size: 13px; letter-spacing: .1em; opacity: .85; }
.bili-play:active { background: linear-gradient(160deg, #2E2520, #1C1715); }
.bili-meta { display: flex; align-items: baseline; gap: 10px; padding: 10px 12px 12px; }
.bili-meta strong { flex: 1 1 auto; min-width: 0; font-size: 14px; line-height: 1.45; }
.bili-link { flex: none; font-size: 12.5px; color: var(--red); }
.bili-link:active { color: var(--red-dark); }

.video-link {
  display: flex; align-items: center; gap: 12px; padding: 16px 14px;
  background: linear-gradient(135deg, var(--red-dark), var(--red));
  color: var(--on-red);
  text-decoration: none; font-size: 14.5px; letter-spacing: .02em;
}
.video-link:active { background: linear-gradient(135deg, var(--red-dark), var(--red-deep)); }

.video-link .play {
  position: relative; flex: none; width: 34px; height: 34px; border-radius: 50%;
  background: var(--on-red-18); display: grid; place-items: center;
  font-size: 0; box-shadow: inset 0 0 0 1px var(--on-red-14);
}
.video-link .play::before {
  content: ''; margin-left: 3px;   
  width: 0; height: 0;
  border-style: solid; border-width: 6px 0 6px 10px;
  border-color: transparent transparent transparent var(--on-red);
}
.video-link .vt { flex: 1; min-width: 0; font-weight: 600; }

.video-link .play::after {
  content: '站外'; position: absolute; left: 50%; top: 100%; transform: translate(-50%, 3px);
  padding: 0 5px 1px; border-radius: 999px; font-size: 9px; font-weight: 500;
  letter-spacing: .04em; line-height: 1.5; white-space: nowrap;
  background: var(--red-dark); color: var(--on-red);
}
.video-off {
  padding: 22px 14px; text-align: center; font-size: 13.5px;
  color: var(--ink-3); background: var(--peach);
}
.video-meta { padding: 11px 13px; }
.video-meta strong { font-size: 14.5px; }
.video-meta p { margin: 3px 0 0; font-size: 12.5px; color: var(--ink-3); }

.series-list { display: flex; flex-direction: column; gap: 10px; }
.series { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow-sm); }
.series-head { width: 100%; display: flex; align-items: center; gap: 10px; padding: 13px; text-align: left; }
.series-head .stage {
  flex: none; font-size: 11px; padding: 2px 8px; border-radius: 999px;
  background: var(--red-soft); color: var(--red); font-weight: 600;
}
.series-head .sname { flex: 1; font-weight: 600; font-size: 14.5px; }
.series-head .arrow { color: var(--ink-3); font-size: 17px; line-height: 1; transition: transform .2s, color .2s; }
.series.open .series-head .arrow { transform: rotate(90deg); color: var(--red); }
.series-body { display: none; border-top: 1px solid var(--line); }
.series.open .series-body { display: block; }
.series-note { padding: 9px 13px; font-size: 12.5px; color: var(--ink-3); background: var(--peach); }
.lesson { display: flex; gap: 10px; padding: 11px 13px; border-top: 1px solid var(--line); }
.lesson:first-child { border-top: 0; }

.lesson .no {
  flex: none; width: 26px; height: 26px; border-radius: 8px; background: var(--clay-tint);
  color: var(--outline-ink); font-size: 12px; font-weight: 700; display: grid; place-items: center;
}
.lesson .lt { flex: 1; min-width: 0; }
.lesson .lt strong { font-size: 14px; font-weight: 600; }
.lesson .lt em { display: block; font-style: normal; font-size: 11.5px; color: var(--red); margin-top: 1px; }
.lesson .lt span { display: block; font-size: 12.5px; color: var(--ink-3); margin-top: 2px; }


.search-wrap { margin-bottom: 12px; }
.search-wrap input {
  width: 100%; padding: 11px 15px; border-radius: 999px; border: 1px solid var(--line);
  background: var(--card); outline: none;
  box-shadow: var(--inset-sm);
  transition: border-color .15s, box-shadow .15s;
}
.search-wrap input::placeholder { color: var(--ink-3); }
.search-wrap input:focus { border-color: var(--red); box-shadow: 0 0 0 3px var(--red-glow); }
.grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.mat-card {
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 13px 12px 12px; text-align: left; box-shadow: var(--shadow-sm);
  display: grid; grid-template-rows: auto auto auto 1fr auto; row-gap: 5px;
  min-height: 112px; transition: box-shadow .16s ease, transform .16s ease;
}
.mat-card:active { transform: scale(.985); box-shadow: var(--shadow); }
.mat-card strong { font-size: 14px; line-height: 1.4; }
.mat-card > span { font-size: 11.5px; color: var(--ink-3); line-height: 1.5; }
.mat-card .count { margin-top: auto; padding-top: 4px; font-size: 11px; color: var(--red); font-weight: 600; }



.mat-card .ico {
  display: grid; place-items: center; flex: none;
  width: 22px; height: 22px; border-radius: 7px;
  background: var(--seal-red); color: #FFFFFF; border: 1px solid var(--seal-red);
  
  font-size: 0; font-weight: 700; line-height: 1;
}
.mat-card .ico::before {
  content: '文';
  font-size: 12px;
  text-indent: -.04em;   
}
.mat-card[data-title^="有思想含量的话"] .ico::before { content: '言'; }
.mat-card[data-title^="7+3 作文范文"] .ico::before { content: '范'; }
.mat-card[data-title^="文言文实词"] .ico::before { content: '实'; }
.mat-card[data-title^="18 个虚词记忆口诀"] .ico::before { content: '诀'; }
.mat-card[data-title^="18 个虚词记忆方法"] .ico::before { content: '法'; }
.mat-card[data-title^="成语 520 计划"] .ico::before { content: '成'; }
.mat-card[data-title^="成语专项精练"] .ico::before { content: '练'; }
.mat-card[data-title^="经典人物资料卡"] .ico::before { content: '人'; }
.mat-card[data-title^="中国古代文化常识"] .ico::before { content: '史'; }
.mat-card[data-title^="诗歌常见特殊意象"] .ico::before { content: '诗'; }
.mat-card[data-title^="病句"] .ico::before { content: '病'; }
.mat-card[data-title^="敬辞谦辞汇编"] .ico::before { content: '敬'; }
.mat-card[data-title^="《论语》三十三则"] .ico::before { content: '论'; }
.mat-card[data-title^="时代现象与常识性事实"] .ico::before { content: '时'; }
.mat-card[data-title^="2026 高考作文真题解析"] .ico::before { content: '题'; }
.mat-card[data-title^="推荐给高中生的"] .ico::before { content: '书'; }
.mat-card[data-title^="秘笈怎么用"] .ico::before { content: '用'; }


.book-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.book-card {
  position: relative;
  display: grid; grid-template-rows: auto 1fr; row-gap: 5px;
  min-height: 92px; padding: 13px 12px 12px;
  background: var(--card); border: 1px solid var(--line); border-radius: var(--radius);
  text-align: left; box-shadow: var(--shadow-sm);
  transition: box-shadow .16s ease, transform .16s ease;
}
.book-card:active { transform: scale(.985); box-shadow: var(--shadow); }
.book-card .no {
  position: absolute; top: 11px; right: 11px;
  font-size: 11px; font-weight: 700; line-height: 1;
  color: var(--red); font-variant-numeric: tabular-nums;
}

.book-card strong { font-size: 13.5px; line-height: 1.45; padding-right: 20px; }
.book-card > span { font-size: 11.5px; line-height: 1.5; color: var(--ink-3); }

.book-back {
  display: inline-block; margin-bottom: 12px; padding: 6px 12px;
  font-size: 12.5px; color: var(--red);
  background: var(--red-soft); border: 1px solid var(--red-line); border-radius: 999px;
}
.book-back:active { color: var(--on-red); background: var(--red); }


.list { display: flex; flex-direction: column; gap: 9px; }
.list-item {
  width: 100%; text-align: left; background: var(--card); border: 1px solid var(--line);
  border-radius: 13px; padding: 13px; box-shadow: var(--shadow-sm);
  transition: border-color .15s, background .15s;
}
.list-item:active { background: var(--paper); border-color: var(--red-line); }
.list-item strong { display: block; font-size: 14.5px; }
.list-item span { display: block; font-size: 12.5px; color: var(--ink-3); margin-top: 3px; }
.list-item .tag { display: inline-block; font-style: normal; font-size: 11px; color: var(--red); background: var(--red-soft); padding: 1px 7px; border-radius: 999px; margin-bottom: 5px; letter-spacing: .04em; }


.essay-row { position: relative; }
.essay-row .list-item { padding-right: 46px; }
.essay-row .term-fav {
  position: absolute; top: 8px; right: 8px;
  margin-left: 0;              
}



.drawer {
  
  position: fixed; inset: 0; z-index: 40; background: var(--bar);
  display: flex; flex-direction: column;
  animation: slideIn .18s ease-out;
  
  --paper: var(--card);
  --rose: var(--peach);
  --glass-hi: rgba(255, 255, 255, .9);
}
@keyframes slideIn { from { transform: translateX(6%); opacity: .4; } to { transform: none; opacity: 1; } }
.drawer-head {
  
  position: relative; z-index: 2;
  display: flex; align-items: center; gap: 10px; padding: 8px 14px;
  padding-top: calc(8px + env(safe-area-inset-top));
  border-bottom: 1px solid var(--line); background: var(--bar);
  box-shadow: 0 1px 0 var(--glass-hi);
}
.drawer-head h2 { font-size: 16px; flex: 1; min-width: 0; letter-spacing: .02em; }

#drawerBack {
  color: var(--red);         
  padding: 0;
  position: relative;        
  touch-action: manipulation;
  
  border: 0;
  border-radius: 0;
  background: transparent;
  display: grid;             
  place-items: center;
  font-size: 0;              
}
#drawerBack svg {
  width: 21px; height: 21px;
  display: block;
  fill: none;
  stroke: currentColor;
  
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}




#drawerBack:active { color: var(--red-dark); background: transparent; border-color: transparent; }
.drawer-body {
  flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch;
  
  overflow-x: hidden;
  touch-action: pan-y;
  overscroll-behavior: contain;
  padding: 14px 14px calc(24px + env(safe-area-inset-bottom));
}

@media (pointer: coarse) {
  .drawer-body { scrollbar-width: none; -ms-overflow-style: none; }
  .drawer-body::-webkit-scrollbar { width: 0; height: 0; display: none; }
}

.drawer-body .entry { padding: 11px 14px; border-bottom: 1px dashed var(--line); }


.drawer-body .guide-p { margin: 0 0 9px; line-height: 1.7; color: var(--ink-2); }
.drawer-body .guide-p:last-child { margin-bottom: 0; }


.item-no {
  display: inline-block;
  
  min-width: 1.3em;
  margin-right: 4px;
  font-size: inherit;
  font-weight: 400;
  line-height: 1;
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
  text-align: right;
  vertical-align: baseline;
}

.drawer-body .quote { display: flex; align-items: baseline; }
.drawer-body .quote .item-no { flex: none; }

.drawer-body .quote { display: flex; align-items: baseline; }
.drawer-body .quote .item-no { flex: none; }
.drawer-body .quote .q-main { flex: 1 1 auto; min-width: 0; }

.drawer-body .sec .rawbox { padding-left: calc(var(--sec-no-w) + var(--sec-gap)); }




.drawer-body .entry.has-k { --k-no-w: 10px; --k-gap: 10px; }

.drawer-body .entry.has-k .k { gap: var(--k-gap); }

.drawer-body .entry.has-k .k > .item-no {
  width: var(--k-no-w);
  min-width: 0;
  margin-right: 0;
  
  direction: rtl;
  transform: translateX(3.61px);
}
.drawer-body .entry.has-k .eg { padding-left: calc(var(--k-no-w) + var(--k-gap)); }


.drawer-body .entry.has-no {
  --idiom-no-w: 20.5px;                          
  --idiom-gap: 6px;                              
  padding-left: calc(var(--idiom-no-w) + var(--idiom-gap));   
  text-indent: calc((var(--idiom-no-w) + var(--idiom-gap)) * -1);
}
.drawer-body .entry.has-no .item-no {
  width: var(--idiom-no-w);
  margin-right: var(--idiom-gap);
  
}
.drawer-body .entry:last-child { border-bottom: 0; }
.drawer-body .entry b { color: var(--red); font-weight: 700; }
.drawer-body .entry .k { display: block; font-weight: 600; }
.drawer-body .entry .eg { display: block; color: var(--ink-2); font-size: 13px; margin-top: 2px; }

:is(.drawer-body, .essay-body) {
  
  line-height: 1.95;
}


.drawer-body mark.key, .essay-body mark.key, .bubble mark.key {
  font-weight: 800;
  -webkit-text-stroke: .02em currentColor;  
  text-decoration-line: underline;
  text-decoration-color: var(--red);        
  text-decoration-thickness: max(1.5px, .085em);
  text-underline-offset: max(3px, .19em);
  text-decoration-skip-ink: none;           
  color: inherit;                           
  background-image: linear-gradient(to top,
    rgba(255, 215, 100, .34) 0, rgba(255, 215, 100, .34) 38%, transparent 38%);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
  margin: 0 .05em;   
  padding: 0;
  border-radius: 2px;                       
  word-break: keep-all;                     
  
  overflow-wrap: anywhere;
}


:is(.drawer-body, .essay-body) :is(strong, b) {
  font-weight: 700;
  color: var(--ink);                        
  -webkit-text-stroke: .012em currentColor; 
}


:is(.drawer-body, .essay-body, .bubble) u {
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: #D9A992;
  text-decoration-thickness: max(1px, .07em);
  text-underline-offset: max(2.5px, .16em);
  text-decoration-skip-ink: auto;           
  background-color: rgba(214, 166, 143, .10);  
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
  padding: .04em .08em;
  border-radius: 2px;
}


:is(.drawer-body, .essay-body, .bubble) mark.key strong { font-weight: 800; -webkit-text-stroke: 0; }
:is(.drawer-body, .essay-body, .bubble) :is(mark.key, strong) u,
:is(.drawer-body, .essay-body, .bubble) u :is(mark.key, strong) {
  text-decoration-line: none; background-color: transparent; padding: 0;
}


@media (max-width: 480px) {
  :is(.drawer-body, .essay-body) { line-height: 2; }
  :is(.drawer-body, .essay-body, .bubble) mark.key { text-decoration-thickness: 2px; text-underline-offset: 3px; }
  :is(.drawer-body, .essay-body, .bubble) u {
    text-decoration-thickness: 1.5px; text-underline-offset: 3px; text-decoration-color: #CD9A83;
  }
}

@media (min-width: 721px) {
  :is(.drawer-body, .essay-body, .bubble) mark.key { text-decoration-thickness: 2px; text-underline-offset: 4px; }
  :is(.drawer-body, .essay-body, .bubble) u { text-decoration-thickness: 1px; text-underline-offset: 4px; }
}

@media (prefers-contrast: more) {
  :is(.drawer-body, .essay-body, .bubble) mark.key {
    background-image: none; background-color: var(--gold-light);
    text-decoration-color: var(--red-dark); text-decoration-thickness: 2.5px; color: var(--ink);
  }
  :is(.drawer-body, .essay-body) :is(strong, b) { font-weight: 800; }
  :is(.drawer-body, .essay-body, .bubble) u {
    text-decoration-style: solid; text-decoration-color: var(--ink-2);
    text-decoration-thickness: 1.5px; background-color: transparent;
  }
}

@media (forced-colors: active) {
  :is(.drawer-body, .essay-body, .bubble) mark.key {
    background: Highlight; color: HighlightText;
    -webkit-text-stroke: 0; text-decoration-color: currentColor; text-decoration-thickness: 2px;
  }
  :is(.drawer-body, .essay-body, .bubble) u { text-decoration-style: dotted; text-decoration-color: currentColor; }
}

@media print {
  :is(.drawer-body, .essay-body, .bubble) mark.key {
    background-image: none; background-color: transparent; padding: 0;
    color: var(--ink); text-decoration-color: #8A1418; text-decoration-thickness: 2px;
  }
  :is(.drawer-body, .essay-body, .bubble) u {
    background-color: transparent; text-decoration-color: #7A5244; text-decoration-style: solid;
  }
}
.legend { font-size: 12.5px; color: var(--ink-3); margin-bottom: 10px; }
.drawer-body h3 { font-size: 15px; margin: 18px 0 8px; color: var(--red); }
.drawer-body h3:first-child { margin-top: 0; }
.drawer-body .sec { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 13px; margin-bottom: 12px; box-shadow: var(--shadow-sm); }
.drawer-body .quote { background: var(--card); border-left: 3px solid var(--red); border-radius: 8px; padding: 10px 14px; margin-bottom: 8px; box-shadow: var(--shadow-sm); }

.drawer-body .quote i {
  display: block; font-style: normal;
  color: var(--ink-3);
  font-size: inherit;
  text-align: right;
  margin-top: 4px;
}

.swipe-row.q-row > .q-swipe { position: relative; overflow: hidden; border-radius: 8px; }
.swipe-row.q-row > .q-swipe > .swipe-fav { bottom: 0; }
.q-extra {
  position: relative;
  background: none;
  
  padding: 8px 14px 20px 14px;
}
.q-btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 2px; }
.q-btn {
  
  padding: 4px 12px; font-size: 12.5px; line-height: 1.3;
  
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
               "Microsoft YaHei", "Source Han Sans SC", sans-serif;
  font-weight: 400;
  
  color: rgba(197, 33, 41, .8); background: transparent;
  border: 1px solid var(--red-line); border-radius: 999px; cursor: pointer;
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}

@media (hover: hover) and (pointer: fine) { .q-btn:hover { background: rgba(197, 33, 41, .05); border-color: rgba(197, 33, 41, .4); color: var(--red); } }
.q-btn:active { background: rgba(197, 33, 41, .1); }
.q-btn.is-on { color: #fff; background: var(--red); border-color: var(--red); }
.q-panel {
  margin-top: 9px; padding: 10px 12px;
  background: var(--red-soft); border-radius: 8px;
  font-size: 14px; line-height: 1.9; color: var(--ink-2);
  
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
               "Microsoft YaHei", "Source Han Sans SC", sans-serif;
}

.q-panel b { display: block; margin-bottom: 4px; font-size: 14px; font-weight: 700; color: var(--red); letter-spacing: .04em; }

.q-panel.is-kai {
  font-family: 'LXGW WenKai Web', 'KaiTiLocal', "STKaiti", "Kaiti SC", "KaiTi", "楷体", "华文楷体", serif;
  color: var(--ink); line-height: 2;
}

.drawer-body .essay-q { background: var(--peach); border-radius: 10px; padding: 11px 13px; font-size: 13.5px; color: var(--ink-2); white-space: pre-wrap; margin-bottom: 14px; }
.drawer-body .essay-body p { margin: 0 0 10px; text-indent: 2em; }

.drawer-body .outline { background: var(--outline-soft); border-radius: 12px; padding: 12px 14px; margin-top: 14px; }
.drawer-body .outline h4 { margin: 0 0 6px; font-size: 13.5px; color: var(--outline-ink); }
.drawer-body .outline div { font-size: 12.5px; color: var(--outline-ink); padding: 2px 0; }
.drawer-body .searchbar { margin-bottom: 12px; }
.drawer-body .searchbar input { width: 100%; padding: 10px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); outline: none; }
.empty { text-align: center; color: var(--ink-3); font-size: 13px; padding: 30px 0; }
.rawbox { white-space: pre-wrap; font-size: 13.5px; color: var(--ink-2); }


.sheet { position: fixed; inset: 0; z-index: 50; background: var(--scrim); display: grid; place-items: center; padding: 22px; }
.sheet-card {
  background: var(--card); border-radius: 18px; padding: 20px;
  
  width: 100%; max-width: 420px; box-sizing: border-box;
  box-shadow: var(--shadow);
  
  max-height: calc(100vh - 44px); overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.sheet-card h3 { font-size: 16px; margin-bottom: 10px; }
.sheet-card p { font-size: 13.5px; color: var(--ink-2); margin: 0 0 9px; line-height: 1.75; }
.sheet-card p b { color: var(--red); }          


.av-tip { margin-bottom: 12px !important; }

.av-stage { display: flex; justify-content: center; padding: 4px 0 12px; }
.av-mask {
  background: radial-gradient(circle at 50% 50%,
    rgba(20, 14, 12, 0) 0 120px, rgba(20, 14, 12, .42) 120px);
}
.av-frame {
  position: relative; width: 240px; height: 240px; border-radius: 50%;
  overflow: hidden; background: var(--media-bg); cursor: grab;
  touch-action: none;
}
.av-frame:active { cursor: grabbing; }
.av-frame img {
  position: absolute; left: 0; top: 0; transform-origin: 0 0;
  user-select: none; -webkit-user-drag: none; pointer-events: none;
  max-width: none;                     
}
.av-zoom {
  display: flex; align-items: center; gap: 10px; margin-bottom: 14px;
}

.av-zoom .dim { flex: none; font-size: 12.5px; white-space: nowrap; }
.av-zoom input[type="range"] { flex: 1 1 auto; min-width: 0; accent-color: var(--red-vivid); }
.av-btns { display: flex; gap: 10px; }
.av-btns .auth-later { flex: 1 1 auto; margin: 0; }
.av-btns .primary-btn { flex: 1 1 auto; }
.sheet-card p:last-of-type { margin-bottom: 14px; }
.primary-btn { width: 100%; margin-top: 8px; padding: 12px; border-radius: 12px; background: var(--red); color: var(--on-red); font-weight: 600; }


.passgate {
  
  position: fixed; z-index: 22;
  top: calc(var(--topbar-h) + env(safe-area-inset-top));
  bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom) + var(--kb, 0px));
  left: 0; right: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--paper); padding: 24px;
  overflow-y: auto;                
}
@media (min-width: 720px) {
  
  .passgate { left: calc(50% - var(--sbw, 0px) / 2); right: auto; width: 720px; transform: translateX(-50%); }
}
.passgate-inner { width: 100%; max-width: 300px; text-align: center; }
.passgate-mark {
  width: 54px; height: 54px; margin: 0 auto 14px; border-radius: 16px;
  background: linear-gradient(150deg, var(--red-deep), var(--red-dark));
  color: var(--on-red); font-size: 26px; font-weight: 700;
  display: grid; place-items: center;
  box-shadow: 0 6px 18px var(--red-glow);
}
.passgate-inner h2 { font-size: 17px; margin-bottom: 6px; }
.passgate-inner .dim { margin-bottom: 16px; }
.passgate-inner input {
  width: 100%; padding: 13px 16px; margin-bottom: 12px;
  border: 1px solid var(--line); border-radius: 12px; background: var(--card);
  font-size: 22px; letter-spacing: .45em; text-indent: .45em; text-align: center;
  font-variant-numeric: tabular-nums; outline: none;
}
.passgate-inner input:focus { border-color: var(--red); box-shadow: 0 0 0 3px var(--red-glow); }
.passgate-inner input.is-error { border-color: var(--red); animation: shake .32s ease; }
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-5px); }
  75% { transform: translateX(5px); }
}


.card-tip { font-size: 12.5px; color: var(--ink-3); margin-bottom: 12px; }
.cardwall { display: grid; grid-template-columns: 1fr; gap: 12px; }

.pcard-pair { display: grid; grid-template-columns: 1fr; gap: 10px; }
.pcard {
  position: relative;
  display: block; width: 100%; padding: 0;
  border: 1px solid var(--line); border-radius: 13px; overflow: hidden;
  background: var(--card); box-shadow: var(--shadow-sm);
  cursor: pointer; transition: transform .12s ease;
}
.pcard img { width: 100%; display: block; }
.pcard:active { transform: scale(.995); }

.pcard-tag {
  position: absolute; left: 8px; bottom: 8px;
  font-size: 11px; line-height: 1; letter-spacing: .06em;
  padding: 4px 9px; border-radius: 999px;
  background: rgba(36, 30, 28, .62); color: #FFFFFF;
  -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
}


.viewer {
  position: fixed; inset: 0; z-index: 60;
  background: var(--viewer-bg);
  display: flex; align-items: center; justify-content: center;
  touch-action: none;              
  overscroll-behavior: contain;
  user-select: none; -webkit-user-select: none;
  animation: fadeIn .16s ease-out;
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

.viewer-stage {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  
  touch-action: none;
  padding: calc(14px + env(safe-area-inset-top)) 10px calc(36px + env(safe-area-inset-bottom));
  
  perspective: 1400px;
  perspective-origin: 50% 50%;
}
.viewer-stage img {
  max-width: 100%; max-height: 100%;
  object-fit: contain;
  border-radius: 8px;
  background: var(--on-red);
  box-shadow: var(--shadow-lg);
  will-change: opacity, transform;
  -webkit-user-drag: none;
}

.viewer-stage img.is-in { animation: vfade .26s ease-out; }
@keyframes vfade { from { opacity: .25; transform: scale(.985); } to { opacity: 1; transform: none; } }


.viewer-flip {
  position: relative;
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  transform-style: preserve-3d;
  
  transition: transform 1.2s cubic-bezier(.4, 0, .2, 1);
  will-change: transform;
}
.viewer-flip.is-back { transform: rotateY(180deg); }

.viewer-flip.no-anim { transition: none; }
.viewer-flip img {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.viewer-flip img#viewerImgBack {
  position: absolute; inset: 0; margin: auto;
  transform: rotateY(180deg);
}

.viewer-flip.is-moving img { box-shadow: none; }


.viewer-list {
  position: absolute; z-index: 2;
  top: calc(12px + env(safe-area-inset-top)); left: 14px;
  height: 38px; padding: 0 15px; border-radius: 19px;
  font-size: 13px; letter-spacing: .06em; line-height: 1; color: var(--on-red);
  background: var(--on-red-16); display: grid; place-items: center;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.viewer-close {
  position: absolute; z-index: 2;
  top: calc(12px + env(safe-area-inset-top)); right: 14px;
  width: 38px; height: 38px; border-radius: 50%;
  font-size: 22px; line-height: 1; color: var(--on-red);
  background: var(--on-red-16); display: grid; place-items: center;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}

.viewer-bar {
  position: absolute; z-index: 2; left: 50%; transform: translateX(-50%);
  bottom: calc(10px + env(safe-area-inset-bottom));
  display: flex; align-items: center; gap: 16px;
}
.viewer-nav {
  width: 40px; height: 40px; border-radius: 50%;
  display: grid; place-items: center;
  font-size: 0;                            
  color: var(--on-red);
  background: var(--on-red-16);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  transition: background-color .15s;
}
.viewer-nav::before {
  content: ''; display: block;
  width: 10px; height: 10px;
  border-top: 2px solid currentColor;
  border-radius: 2px 0 0 0;
}
#viewerPrev::before {
  border-left: 2px solid currentColor;     
  transform: rotate(-45deg) translate(1px, 0);
}
#viewerNext::before {
  border-right: 2px solid currentColor;    
  transform: rotate(45deg) translate(-1px, 0);
}
.viewer-nav:active { background: var(--on-red-18); }

.viewer-page {
  font-size: 12.5px; letter-spacing: .08em;
  color: var(--on-red); opacity: .55;
  min-width: 62px; text-align: center;
}

.viewer-hint {
  position: absolute; z-index: 2; left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  padding: 9px 16px; border-radius: 999px;
  background: var(--on-red-16); color: var(--on-red);
  font-size: 13px; letter-spacing: .04em; white-space: nowrap;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  animation: fadeIn .2s ease-out;
  pointer-events: none;
}


:where(.tab, button, a, input, textarea):focus-visible {
  outline: 2px solid var(--red-vivid);
  outline-offset: 2px;
  border-radius: 8px;
}
.tab:focus-visible { outline-offset: -3px; border-radius: 10px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}


@media (min-width: 720px) {
  
  body { background: var(--paper); }
  
  .topbar, .composer, .view .scroll, .tabbar { max-width: 720px; margin: 0 auto; }
  .topbar { left: calc(50% - var(--sbw, 0px) / 2); transform: translateX(-50%); width: 720px; }
  .composer { left: calc(50% - var(--sbw, 0px) / 2); transform: translateX(-50%); width: 720px; }
  .scroll { left: calc(50% - var(--sbw, 0px) / 2); transform: translateX(-50%); width: 720px; }
  .tabbar { left: calc(50% - var(--sbw, 0px) / 2); transform: translateX(-50%); width: 720px; }
  
  .drawer {
    left: 0; right: 0; width: auto;
    background: var(--paper);
    align-items: center;
  }
  .drawer-head, .drawer-body {
    width: 100%; max-width: 720px;
    background: var(--bar);
  }
  .grid { grid-template-columns: repeat(3, 1fr); }
  .book-grid { grid-template-columns: repeat(3, 1fr); }
  
  .tab:not(.is-active):hover { color: var(--red); }
  .tab:hover::before { opacity: .32; }
  .tab:hover::after { opacity: .32; }
  .tab.is-active:hover::before { opacity: 1; }
  .tab.is-active:hover::after { opacity: 1; }
}




.scroll { scrollbar-width: thin; scrollbar-color: rgba(var(--shadow-ink), .22) transparent; }
.scroll::-webkit-scrollbar { width: 8px; height: 8px; }
.scroll::-webkit-scrollbar-track { background: transparent; }
.scroll::-webkit-scrollbar-thumb {
  background: rgba(var(--shadow-ink), .2);
  border-radius: 4px;
  border: 2px solid transparent;
  background-clip: content-box;
}
.scroll::-webkit-scrollbar-thumb:hover { background: rgba(var(--shadow-ink), .34); background-clip: content-box; }
.drawer-body::-webkit-scrollbar { width: 8px; }
.drawer-body::-webkit-scrollbar-thumb {
  background: rgba(var(--shadow-ink), .2); border-radius: 4px;
  border: 2px solid transparent; background-clip: content-box;
}


.drawer-body .blk-meta {
  font-size: 12.5px; line-height: 1.65; color: var(--ink-3);
  background: var(--peach); border-radius: 8px;
  padding: 10px 12px; margin-bottom: 16px;
}
.drawer-body .blk-h1 {
  font-size: 15.5px; color: var(--red);
  margin: 22px 0 10px; padding-top: 14px;
  border-top: 2px solid var(--red-soft);
}
.drawer-body .blk-h1:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.drawer-body .blk-h2 { font-size: 14.5px; color: var(--ink); margin: 16px 0 7px; }
.drawer-body .blk-h3 { font-size: 13.5px; color: var(--ink-2); margin: 13px 0 6px; }
.drawer-body .blk-p { margin: 0 0 10px; line-height: 1.78; }
.drawer-body .blk-ul,
.drawer-body .blk-ol { margin: 0 0 11px; padding-left: 21px; line-height: 1.75; }
.drawer-body .blk-ul li,
.drawer-body .blk-ol li { margin-bottom: 5px; }
.drawer-body .blk-q {
  margin: 0 0 12px; padding: 9px 12px;
  background: var(--peach); border-left: 3px solid var(--red);
  border-radius: 8px; font-size: 13.5px; line-height: 1.75; color: var(--ink-2);
}


.md-table-wrap {
  overflow-x: auto; -webkit-overflow-scrolling: touch;
  margin: 0 0 14px; padding-bottom: 3px;
}
.md-table {
  border-collapse: collapse; font-size: 12.5px; line-height: 1.6;
  
  width: max-content; min-width: 100%;
}
.md-table th,
.md-table td {
  border: 1px solid var(--line); padding: 7px 10px;
  text-align: left; vertical-align: top;
  white-space: nowrap;
}
.md-table th {
  background: var(--red-soft); color: var(--red);
  font-weight: 600; white-space: nowrap;
}


.md-table tbody tr:nth-child(even) { background: rgba(240, 220, 211, .28); }


.book-intro { font-size: 14px; line-height: 1.8; }
.book-intro .book-line { margin: 0 0 9px; }
.book-intro .book-sec {
  font-size: 13.5px; color: var(--red); font-weight: 700;
  margin: 16px 0 8px; padding-left: 9px;
  border-left: 3px solid var(--red);
}
.book-intro .book-sec:first-child { margin-top: 0; }


.mat-groups { display: block; }
.mat-group + .mat-group > .section-title { margin-top: 26px; }


.drill { padding: 13px 0; border-bottom: 1px dashed var(--line); }
.drill:last-child { border-bottom: 0; }

.drill-q { display: flex; align-items: baseline; gap: 9px; font-weight: 600; line-height: 1.7; margin-bottom: 7px; }
.drill-q .item-no {
  
  flex: none; width: 24px; min-width: 0; text-align: right;
  line-height: inherit;   
  font-weight: 700; color: var(--red);
  margin-right: 0;   
}
.drill-q .drill-text { flex: 1 1 auto; min-width: 0; }
.drill .opt {
  display: flex; gap: 6px;
  
  padding-left: 10px;
  font-size: 13.5px; line-height: 1.75; color: var(--ink-2); margin-bottom: 3px;
}

.drill .opt b {
  flex: none; width: 17px; text-align: right;
  color: var(--red); font-weight: 700;
}
.drill .opt span { flex: 1 1 auto; min-width: 0; }
.drill-ans { margin-top: 9px; }
.drill-ans summary {
  display: inline-block; font-size: 12.5px; color: var(--red); cursor: pointer;
  padding: 4px 11px; background: var(--red-soft);
  border: 1px solid var(--red-line); border-radius: 999px;
}
.drill-ans[open] summary { margin-bottom: 8px; }
.drill-ans .ans-line {
  font-size: 13px; line-height: 1.78; color: var(--ink-2);
  background: var(--peach); border-radius: 8px; padding: 9px 11px;
}
.drill-ans .ans-line b { color: var(--red); margin-right: 6px; }


.drawer-body .af { padding: 14px; }
.af-material {
  background: var(--paper); border-radius: 8px; padding: 10px 12px;
  font-size: 13px; line-height: 1.85; color: var(--ink-2); margin-bottom: 9px;
}
.af-q { font-weight: 600; line-height: 1.7; margin-bottom: 9px; }

.af-input {
  display: block; width: 100%; box-sizing: border-box;
  min-height: 88px; resize: vertical; font: inherit;
  font-size: 13.5px; line-height: 1.75; color: var(--ink);
  background: var(--card); border: 1px solid var(--line);
  border-radius: 8px; padding: 10px 12px; margin-bottom: 10px;
}
.af-input::placeholder { color: var(--ink-3); }
.af-input:focus { outline: none; border-color: var(--red-line); box-shadow: 0 0 0 3px var(--red-glow); }

.af-fold { margin-bottom: 8px; font-size: 13px; line-height: 1.85; }
.af-fold > summary {
  display: inline-block; font-size: 12.5px; cursor: pointer;
  padding: 4px 11px; border-radius: 999px;
  background: var(--red-soft); border: 1px solid var(--red-line); color: var(--red);
}
.af-fold[open] > summary { margin-bottom: 8px; }
.af-fold > div { border-radius: 8px; padding: 10px 12px; }
.af-fold > div > div,
.af-fold > div > p { margin: 0 0 5px; }
.af-fold > div > *:last-child { margin-bottom: 0; }
.af-ref > div { background: var(--paper); border-left: 3px solid var(--line); }
.af-mine > div { background: var(--peach); border-left: 3px solid var(--red); }


.blk-toc {
  background: var(--paper); border-radius: 8px; padding: 11px 13px;
  margin-bottom: 16px; font-size: 13px; line-height: 1.9; color: var(--ink-2);
}
.blk-toc h4 { font-size: 12.5px; color: var(--ink-3); margin: 0 0 6px; font-weight: 600; letter-spacing: .04em; }


.ep-material {
  background: var(--paper); border-radius: 8px; padding: 10px 12px;
  font-size: 13px; line-height: 1.85; color: var(--ink-2); margin-bottom: 9px;
}
.ep-rules { margin-bottom: 11px; font-size: 13px; line-height: 1.8; color: var(--ink-2); }
.ep-rules summary {
  display: inline-block; font-size: 12.5px; color: var(--red); cursor: pointer;
  padding: 4px 11px; background: var(--red-soft);
  border: 1px solid var(--red-line); border-radius: 999px;
}
.ep-rules[open] summary { margin-bottom: 8px; }
.ep-rules > div { margin-bottom: 4px; }
.ep-comments {
  background: var(--peach); border-left: 3px solid var(--red);
  border-radius: 8px; padding: 11px 12px; margin-top: 16px;
  font-size: 13px; line-height: 1.85;
}
.ep-comments h4 { font-size: 12.5px; color: var(--red); margin: 0 0 6px; letter-spacing: .04em; }
.ep-comments > div { margin-bottom: 5px; }


.drawer-body .drill-word { padding: 12px 0; border-bottom: 1px dashed var(--line); }
.drill-word:last-child { border-bottom: 0; }
.drill-word .drill-q { margin-bottom: 7px; }
.drill-input {
  display: block; box-sizing: border-box;
  
  width: calc(100% - 66px);
  margin: 0 33px 8px;
  font: inherit; font-size: 14px; color: var(--ink);
  background: var(--card); border: 1px solid var(--line);
  border-radius: 8px; padding: 8px 11px;
}
.drill-input::placeholder { color: var(--ink-3); font-size: 13px; }
.drill-input:focus { outline: none; border-color: var(--red-line); box-shadow: 0 0 0 3px var(--red-glow); }

.drill-word > .drill-ans { padding-left: 33px; }
.drill-word > .drill-ans .ans-line {
  padding-left: 0;
  width: calc(100% - 33px);
  margin-right: 33px;
}


.video-frame { position: relative; width: 100%; padding-top: 56.25%; background: var(--media-bg); }
.video-frame video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  border: 0; display: block; background: var(--media-bg);
}
.video-play {
  position: absolute; inset: 0; width: 100%; height: 100%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
  background: linear-gradient(160deg, #3A2E28, #241E1C);
  color: var(--on-red); border: 0;
}
.video-play-icon {
  width: 0; height: 0;
  border-left: 18px solid currentColor;
  border-top: 11px solid transparent;
  border-bottom: 11px solid transparent;
  margin-left: 4px;                 
  opacity: .92;
}
.video-play-text { font-size: 13px; letter-spacing: .1em; opacity: .85; }
.video-play:active { background: linear-gradient(160deg, #2E2520, #1C1715); }

.video-poster {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block;
}


.video-new,
.video-must,
.video-rec {
  display: inline-block;
  width: 1.15em; height: 1.15em; line-height: 1.15em; text-align: center;
  margin-right: .28em;
  vertical-align: baseline;
  border-radius: .18em;
  background: #D8432E;
  color: #FFF7F3;
  font-size: inherit; font-weight: 400; letter-spacing: 0;
  box-shadow: 0 1px 2px rgba(150, 45, 30, .26);
}



.allv-row .video-new,
.allv-row .video-must,
.allv-row .video-rec { margin-right: .22em; }


.vp-player {
  background: #000; border-radius: 10px; overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.vp-player video {
  display: block; width: 100%; aspect-ratio: 16/9;
  background: #000; object-fit: contain;
}

.vp-player {
  position: relative;
  background: #000; border-radius: 10px; overflow: hidden;
  box-shadow: var(--shadow-sm);
}

@media (pointer: coarse) {
  .vp-player { margin: 0 -14px; border-radius: 0; }
}

.vp-tools { display: flex; justify-content: center; margin: 10px 0 0; }

.vp-wxtip {
  margin: 10px 0 0; padding: 9px 12px;
  border: 1px solid #F0D2CB; border-radius: 8px;
  background: var(--red-soft); color: var(--red-dark);
  font-size: 12.5px; line-height: 1.6;
}
.vp-fs {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px; border: 1px solid var(--line); border-radius: 999px;
  background: var(--card); color: var(--ink-2);
  font-size: 13px; font-weight: 600; line-height: 1;
}
.vp-fs svg { flex: none; }
.vp-fs:active { background: var(--red-soft); color: var(--red-dark); border-color: var(--red-soft); }
.vp-title { margin: 13px 0 5px; font-size: 16.5px; line-height: 1.45; letter-spacing: .01em; }
.vp-desc { margin: 0; font-size: 13px; line-height: 1.75; color: var(--ink-2); }
.vp-more-h {
  margin: 20px 0 9px; font-size: 13px; font-weight: 600; color: var(--ink-3);
  letter-spacing: .04em;
}
.vp-more { display: flex; flex-direction: column; gap: 11px; padding-bottom: 8px; }
.vp-more-item {
  display: flex; align-items: center; gap: 11px; width: 100%;
  padding: 0; border: 0; background: transparent; text-align: left;
  cursor: pointer;                 
}
.vp-more-item:active { opacity: .7; }
.vp-more-img {
  flex: none; width: 104px; aspect-ratio: 16/9; border-radius: 8px;
  object-fit: cover; background: var(--media-bg); display: block;
}
.vp-more-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.vp-more-t { font-size: 13.5px; line-height: 1.4; }
.vp-more-d {
  font-size: 11.5px; color: var(--ink-3);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}


.drawer-body .essay-title {
  text-align: center;
  margin: 2px 0 16px;
  font-size: 17px;
  letter-spacing: .02em;
}
.drawer-body .essay-body.is-kaiti {
  font-family: "STKaiti", "Kaiti SC", "KaiTi", "楷体", "华文楷体", "STSong", serif;
  font-size: 15px;
  line-height: 2;
}


.drawer-body .entry .k.w-red { color: var(--red); }   
.drawer-body .entry .eg.def {
  color: var(--ink);
  font-size: 14.5px;                
  line-height: 1.75;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.drawer-body .entry .eg.sent {
  font-family: "STKaiti", "Kaiti SC", "KaiTi", "楷体", "华文楷体", "STSong", serif;
  font-size: 14px;                  
  line-height: 1.85;
}


.drawer-body .guide-title {
  color: var(--red);
  font-weight: 700;
  font-size: 15.5px;
  margin: 0 0 11px;
}
.drawer-body .guide-p .note { color: var(--red); }


.group-nav {
  display: flex; flex-wrap: wrap; gap: 8px;
  padding: 2px 0 12px;
}
.group-nav button {
  font: inherit; font-size: 13px; line-height: 1;
  padding: 7px 14px; border-radius: 999px; cursor: pointer;
  background: var(--card); color: var(--ink-2);
  border: 1px solid var(--line);
  transition: background .18s, color .18s, border-color .18s;
}
.group-nav button:active { transform: scale(.97); }
.group-nav button.is-active {
  
  background: var(--brand-peach); color: var(--red);
  border-color: var(--brand-peach); font-weight: 600;
}


.drawer-body .quote.analect .q-main {
  font-family: "STKaiti", "Kaiti SC", "KaiTi", "楷体", "华文楷体", "STSong", serif;
  font-size: 15px;
  line-height: 1.9;
}


.drawer-body .ts-h {
  font-size: 15px; color: var(--red);
  margin: 22px 0 10px; padding-left: 10px;
  border-left: 3px solid var(--red); letter-spacing: .04em;
}
.drawer-body .ts-h:first-child { margin-top: 0; }
.drawer-body .ts-term {
  background: var(--paper); border-radius: 8px;
  padding: 10px 12px; margin-bottom: 9px;
}
.drawer-body .ts-term > b { display: block; color: var(--red); font-size: 14.5px; margin-bottom: 4px; }
.drawer-body .ts-term .ts-note { font-size: 13.5px; line-height: 1.8; color: var(--ink-2); }
.drawer-body .ts-entry { font-size: 14px; line-height: 1.8; }
.drawer-body .ts-entry b { color: var(--red); }
.drawer-body .ts-para {
  font-family: "STKaiti", "Kaiti SC", "KaiTi", "楷体", "华文楷体", "STSong", serif;
  font-size: 14px; line-height: 1.9; color: var(--ink-2);
  margin: 0 0 10px; padding: 2px 0 2px 12px;
  border-left: 2px solid var(--line);
}
.drawer-body .ts-item {
  position: relative; font-size: 14px; line-height: 1.8;
  padding: 3px 0 3px 14px;
}
.drawer-body .ts-item::before {
  content: '·'; position: absolute; left: 3px; top: 3px;
  color: var(--red); font-weight: 700;
}


.blk-p .wy-item { display: block; padding: 3px 0 1px; }
.blk-p .wy-item .wy-no {
  font-style: normal; color: var(--ink-3);
  margin-right: 5px; font-variant-numeric: tabular-nums;
}
.blk-p .wy-item b { color: var(--red); }
.blk-p .wy-note {
  display: block; padding-left: 18px;
  color: var(--ink-2); font-size: 13.5px; line-height: 1.7;
}
.blk-p .wy-sub { display: block; padding-left: 18px; }
.blk-p .wy-sub .wy-no { font-style: normal; color: var(--red); margin-right: 4px; }
.blk-p .wy-line { display: block; }


.rawbox .xc-key { display: block; }
.rawbox .xc-sense {
  display: block; color: var(--ink); font-weight: 600;
  padding: 5px 0 2px;
}
.rawbox .xc-eg {
  display: block; padding-left: 16px;
  font-family: "STKaiti", "Kaiti SC", "KaiTi", "楷体", "华文楷体", "STSong", serif;
  font-size: 14px; line-height: 1.85; color: var(--ink-2);
}
.rawbox .xc-term {
  display: block; color: var(--ink); font-weight: 600;
  padding: 6px 0 2px;
}
.rawbox .xc-head {
  display: block; color: var(--ink-3); font-size: 12.5px;
  padding: 8px 0 2px; letter-spacing: .04em;
}
.rawbox .xc-line { display: block; }


.drawer-body .rec-list { display: flex; flex-wrap: wrap; gap: 8px; }
.drawer-body .rec-item {
  font-size: 14px; line-height: 1.6;
  padding: 8px 13px;
  background: var(--paper); border: 1px solid var(--line);
  border-radius: 8px;
}
.drawer-body .rec-item strong { color: var(--red); }


.mat-groups .mat-group { display: none; }
.mat-groups .mat-group.is-active { display: block; }
.group-nav button {
  transition: background .18s, color .18s, border-color .18s;
}


.book-nav { margin-bottom: 16px; }
.book-page { display: none; }
.book-page.is-active { display: block; }


.drill > .drill-ans { padding-left: 33px; }


.fav-btn {
  flex: none; display: inline-flex; align-items: center; gap: 4px;
  font: inherit; font-size: 12.5px; line-height: 1;
  padding: 7px 11px; border-radius: 999px; cursor: pointer;
  background: var(--card); color: var(--ink-2);
  border: 1px solid var(--line);
  transition: background .18s, color .18s, border-color .18s;
}
.fav-btn:active { transform: scale(.97); }

.fav-btn .fav-star { line-height: 1; }
.fav-btn.is-on {
  background: var(--red-soft); color: var(--red);
  border-color: var(--red-line); font-weight: 600;
}


.auth-tabs {
  display: flex; gap: 6px; margin: 0 0 14px;
  background: var(--paper); border-radius: 10px; padding: 4px;
}
.auth-tabs button {
  flex: 1 1 0; font: inherit; font-size: 13px; line-height: 1;
  padding: 9px 8px; border-radius: 8px; cursor: pointer;
  background: transparent; color: var(--ink-2); border: 0;
}
.auth-tabs button.is-active {
  background: var(--card); color: var(--red); font-weight: 600;
  box-shadow: 0 1px 3px rgba(120, 60, 40, .12);
}
.sheet-card input {
  display: block; width: 100%; box-sizing: border-box;
  font: inherit; font-size: 14px; line-height: 1.4;
  padding: 11px 13px; margin-bottom: 10px;
  border: 1px solid var(--line); border-radius: 10px;
  background: var(--card); color: var(--ink);
}
.sheet-card input:focus { outline: none; border-color: var(--red); }

.sheet-card .auth-msg {
  min-height: 17px; margin: 0 0 10px;
  font-size: 12.5px; line-height: 1.5; color: var(--red);
}
.auth-later {
  display: block; width: 100%; margin-top: 10px;
  font: inherit; font-size: 13px; padding: 8px; cursor: pointer;
  background: none; border: 0; color: var(--ink-3);
}
.auth-later:active { color: var(--red); }


.me-card {
  background: var(--paper); border-radius: 14px;
  padding: 16px; margin-bottom: 14px;
}
.me-card h3 { font-size: 15px; margin-bottom: 8px; }
.me-card p { font-size: 13.5px; line-height: 1.75; color: var(--ink-2); margin: 0 0 12px; }
.me-card .primary-btn { width: 100%; }


.me-userentry {
  display: flex; align-items: center; gap: 12px; width: 100%;
  box-sizing: border-box; text-align: left; cursor: pointer;
  background: var(--brand-peach); border: 1px solid var(--line); border-radius: 14px;
  padding: 14px 16px; margin-bottom: 14px;
  transition: border-color .15s, background-color .15s;
}
.me-userentry:active { border-color: var(--red); background: var(--red-soft); }

.avatar {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 50%; overflow: hidden; background: var(--red-soft);
  color: var(--red); font-weight: 600; user-select: none;
  box-shadow: inset 0 0 0 1px rgba(var(--shadow-ink), .06);
}
.avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.avatar-ini { line-height: 1; transform: translateY(.5px); }
.avatar-22 { width: 22px; height: 22px; font-size: 12px; }
.avatar-44 { width: 44px; height: 44px; font-size: 18px; }
.avatar-56 { width: 56px; height: 56px; font-size: 22px; }

.me-userentry-txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.me-userentry-name {
  font-size: 16px; font-weight: 600; color: var(--ink);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.me-userentry-sub {
  font-size: 12.5px; color: var(--ink-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.me-userentry-arrow { flex: none; font-size: 19px; line-height: 1; color: var(--ink-3); }


.me-userentry.is-rich .me-userentry-name { display: flex; align-items: center; gap: 7px; }

.me-lv { font-size: 12.5px; font-weight: 700; letter-spacing: .02em; font-variant-numeric: tabular-nums; }
.me-lv[data-tier="0"] { color: #1F6FB2; }
.me-lv[data-tier="1"] { color: #7A3FA6; }
.me-lv[data-tier="2"] { color: #9A6B05; }

.me-gender { display: inline-flex; width: 14px; height: 14px; color: var(--ink-3); vertical-align: -2px; }
.me-gender svg {
  display: block; width: 100%; height: 100%;
  fill: none; stroke: currentColor; stroke-width: 3.2;
  stroke-linecap: round; stroke-linejoin: round;
}

.me-sex { display: inline-flex; gap: 6px; }
.sex-btn {
  padding: 3px 12px; font: inherit; font-size: 12.5px; cursor: pointer;
  color: var(--ink-2); background: transparent;
  border: 1px solid var(--line); border-radius: 999px;
}
.sex-btn.is-on { color: #fff; background: var(--red); border-color: var(--red); }
.sex-btn:active { background: var(--red-soft); }
.me-level-chip {
  flex: none; font-size: 11.5px; font-weight: 600; color: var(--red);
  background: var(--red-soft); border-radius: 999px; padding: 2px 8px; line-height: 1.3;
}
.me-level-detail { margin-top: 10px; }
.me-level-tip { font-size: 12px; line-height: 1.7; margin: 8px 0 0; color: var(--ink-3); }
.me-level-detail .acc-row .acc-v i { font-style: normal; margin-left: 4px; }


.me-level {
  margin: 0 0 12px; padding: 12px 14px;
  background: var(--card); border: 1px solid var(--line); border-radius: 10px;
  box-shadow: var(--shadow-sm);
}
.me-level-top { display: flex; align-items: center; gap: 8px; }
.me-level-tier { font-size: 15px; font-weight: 700; color: var(--red); letter-spacing: .02em; }
.me-level-lv {
  font-size: 12px; color: var(--red); background: var(--red-soft);
  border-radius: 999px; padding: 2px 8px; line-height: 1.2;
}
.me-level-exp { margin-left: auto; font-size: 12px; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.me-level-bar {
  margin: 9px 0 7px; height: 6px; border-radius: 999px;
  background: var(--red-soft); overflow: hidden;
}
.me-level-bar i {
  display: block; height: 100%; border-radius: 999px;
  background: linear-gradient(90deg, var(--red), var(--red-deep));
  transition: width .35s ease;
}
.me-level-foot { font-size: 12.5px; color: var(--ink-2); display: flex; flex-wrap: wrap; gap: 6px 10px; }
.me-level-foot b { color: var(--red); font-weight: 700; }
.me-level-hint { color: var(--ink-3); }
.me-level-apply {
  margin-top: 10px; width: 100%; padding: 9px 12px;
  font: inherit; font-size: 13.5px; color: #fff;
  background: var(--red); border: 0; border-radius: 8px; cursor: pointer;
}
.me-level-apply:active { background: var(--red-dark); }
.me-level-apply[disabled] { opacity: .6; }


.avatar-btn {
  position: relative; flex: none; padding: 0; border: 0; background: transparent;
  cursor: pointer; line-height: 0;
}
.avatar-btn:active { opacity: .75; }
.avatar-cam {
  position: absolute; right: -3px; bottom: -3px;
  width: 17px; height: 17px; border-radius: 50%;
  background: var(--red-vivid); color: #fff;
  font-size: 12px; line-height: 17px; text-align: center;
  box-shadow: 0 0 0 2px var(--card);
}
.me-avatar-msg { margin: 0 0 6px; }   


.me-account-top {
  display: flex; align-items: center; gap: 12px;
}
.me-account-top .me-who { flex: 1 1 auto; min-width: 0; }
.me-who { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.me-who b { font-size: 16px; color: var(--ink); }
.me-who span { font-size: 12.5px; }


.role-badge {
  flex: none; font-size: 11.5px; line-height: 1; padding: 5px 9px; border-radius: 999px;
  color: var(--ink-2); background: var(--card); border: 1px solid var(--line);
}
.role-badge.is-admin {
  color: var(--red); background: var(--red-soft); border-color: var(--red-line);
}


.acc-row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 14px;
  padding: 7px 0; border-bottom: 1px dashed var(--line);
}
.acc-row:last-child { border-bottom: 0; padding-bottom: 0; }
.acc-k { flex: none; font-size: 13px; color: var(--ink-3); }
.acc-v {
  min-width: 0; text-align: right; font-size: 13.5px; color: var(--ink);
  word-break: break-all;
}


.me-form { padding: 14px; }
.me-form input {
  display: block; width: 100%; box-sizing: border-box;
  font: inherit; font-size: 14px; padding: 11px 13px; margin-bottom: 10px;
  border: 1px solid var(--line); border-radius: 10px;
  background: var(--card); color: var(--ink);
}
.me-form input:focus { outline: none; border-color: var(--red); }
.me-form-tip { margin: 10px 0 0 !important; font-size: 12px !important; line-height: 1.65 !important; color: var(--ink-3) !important; }
.me-perm-note { margin: 10px 0 0 !important; font-size: 12.5px !important; line-height: 1.7 !important; }


.study-nums { display: flex; gap: 10px; text-align: center; }
.study-num {
  flex: 1 1 0; min-width: 0;
  display: flex; flex-direction: column; gap: 5px;
  background: var(--card); border-radius: 10px; padding: 11px 6px;
}
.study-num b { font-size: 14.5px; color: var(--red); font-weight: 700; letter-spacing: .01em; }
.study-num span { font-size: 11.5px; color: var(--ink-3); }
.study-bars {
  display: flex; align-items: flex-end; gap: 6px;
  height: 62px; margin-top: 14px;
}
.study-col {
  flex: 1 1 0; min-width: 0; height: 100%;
  display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 5px;
}
.study-col i {
  display: block; width: 100%; max-width: 26px; border-radius: 4px 4px 2px 2px;
  background: linear-gradient(180deg, var(--red), var(--red-dark));
}
.study-col span { font-size: 10px; color: var(--ink-3); line-height: 1; }

.me-empty h3 { color: var(--ink-2); }



.auth-tabs button { padding: 9px 4px; font-size: 12.5px; }
.auth-pane { margin-bottom: 2px; }
.auth-tip {
  margin: -4px 0 10px; font-size: 12px; line-height: 1.6; color: var(--ink-3);
}
.sheet-card .auth-row { display: flex; gap: 8px; margin-bottom: 10px; }
.sheet-card .auth-row input { margin-bottom: 0; flex: 1 1 auto; min-width: 0; }
.auth-row button {
  flex: none; font: inherit; font-size: 13px; line-height: 1;
  padding: 0 14px; border-radius: 10px; cursor: pointer; white-space: nowrap;
  background: var(--red-soft); color: var(--red); border: 1px solid var(--red-line);
}
.auth-row button:disabled { background: var(--paper); color: var(--ink-3); border-color: var(--line); }



.me-logout {
  display: block; width: 100%; box-sizing: border-box;
  margin-top: 4px; font: inherit; font-size: 13.5px; line-height: 1;
  padding: 13px 12px; border-radius: 10px; cursor: pointer;
  background: var(--card); color: var(--ink-2); border: 1px solid var(--line);
}
.me-logout:active { border-color: var(--red); color: var(--red); }
.me-rename-btns { display: flex; gap: 10px; }
.me-save, .me-cancel {
  flex: 1 1 0; font: inherit; font-size: 13px; line-height: 1;
  padding: 11px 8px; border-radius: 10px; cursor: pointer;
}
.me-save { background: var(--red); color: #fff; border: 1px solid var(--red); font-weight: 600; }
.me-cancel { background: var(--card); color: var(--ink-2); border: 1px solid var(--line); }
.me-msg { margin: 10px 0 0; font-size: 12.5px; line-height: 1.5; color: var(--red); }

.me-msg.is-ok { color: #2E7D4F; }


.swipe-row {
  position: relative; overflow: hidden;
  border-radius: 8px;
}
.swipe-row .quote,
.swipe-row .entry {
  position: relative; z-index: 1;
  transition: transform .22s cubic-bezier(.2, .8, .3, 1);
}
.swipe-row.is-open .quote,
.swipe-row.is-open .entry { transform: translateX(-78px); }
.swipe-fav {
  position: absolute; top: 0; right: 0; bottom: 8px; width: 78px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  font: inherit; font-size: 12px; line-height: 1; cursor: pointer;
  background: var(--red-soft); color: var(--red);
  border: 0; border-radius: 0 8px 8px 0;
}
.swipe-fav.is-on { background: var(--red); color: #fff; }


.swipe-star, .term-star, .sec-star, .viewer-star, .fav-star {
  
  --star-line: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'/%3E%3C/svg%3E");
  
  --star-fill: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'/%3E%3C/svg%3E");
  display: inline-block; flex: none;
  font-size: 0;                     
  line-height: 1;
  background-color: currentColor;   
  -webkit-mask-image: var(--star-line);
  mask-image: var(--star-line);
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
  -webkit-mask-position: center; mask-position: center;
  -webkit-mask-size: contain; mask-size: contain;
}

.is-on > .swipe-star, .is-on > .term-star,
.is-on > .sec-star, .is-on > .viewer-star, .is-on > .fav-star {
  -webkit-mask-image: var(--star-fill);
  mask-image: var(--star-fill);
}

.swipe-fav .swipe-star { width: 17px; height: 17px; }    
.viewer-fav .viewer-star { width: 17px; height: 17px; }  
.term-fav .term-star,
.sec-fav .sec-star { width: 16px; height: 16px; }        
.fav-btn .fav-star { width: 14px; height: 14px; }        


.swipe-row--bare .swipe-fav { visibility: hidden; }
.swipe-row--bare.is-open .swipe-fav { visibility: visible; transition-delay: .2s; }


.drawer-body .entry .k { display: flex; align-items: baseline; gap: 8px; }
.drawer-body .entry .k > .item-no { flex: none; }
.term-fav {
  flex: none; margin-left: auto;
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 22px; padding: 0;
  font: inherit; font-size: 14px; line-height: 1;
  background: none; border: 0; cursor: pointer;
  color: var(--ink-3); opacity: .38;
  transition: opacity .18s, color .18s;
  -webkit-tap-highlight-color: transparent;
}
.term-fav:active, .term-fav:hover { opacity: .8; }
.term-fav.is-on { color: var(--red); opacity: .85; }


.sec-fav-head { display: flex; align-items: baseline; gap: 8px; }
.sec-fav-head .sec-title { flex: 1 1 auto; min-width: 0; }
.sec-fav {
  flex: none; margin-left: auto;
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 22px; padding: 0;
  font: inherit; font-size: 14px; line-height: 1;
  background: none; border: 0; cursor: pointer;
  color: var(--ink-3); opacity: .38;
  transition: opacity .18s, color .18s;
  -webkit-tap-highlight-color: transparent;
}
.sec-fav:active, .sec-fav:hover { opacity: .8; }
.sec-fav.is-on { color: var(--red); opacity: .85; }


.viewer-fav {
  position: absolute; z-index: 2;
  top: calc(12px + env(safe-area-inset-top)); right: 62px;
  width: 38px; height: 38px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font: inherit; font-size: 17px; line-height: 1;
  background: rgba(255, 255, 255, .1); border: 0; cursor: pointer;
  color: #fff; opacity: .45;
  transition: opacity .18s, color .18s, background .18s;
  -webkit-tap-highlight-color: transparent;
}
.viewer-fav:active { opacity: .95; }
.viewer-fav.is-on { opacity: 1; color: #FFD166; background: rgba(255, 209, 102, .16); }


.drawer-body .sec { --sec-no-w: 19.5px; --sec-gap: 8px; }
.drawer-body .sec > h3 { display: flex; align-items: baseline; gap: var(--sec-gap); }
.drawer-body .sec > h3 > .item-no { flex: none; width: var(--sec-no-w); margin-right: 0; }
.drawer-body .sec > h3 > .sec-title { flex: 1 1 auto; min-width: 0; }


.drawer-body .imagery-entry { display: flex; align-items: baseline; gap: 8px; }
.drawer-body .imagery-entry .im-main { flex: 1 1 auto; min-width: 0; }


.drawer-body .drill-q .term-fav { width: 24px; height: 20px; }


.fav-filters { margin: 4px 0 16px; }
.fav-group { margin-bottom: 24px; }
.fav-group[hidden] { display: none; }
.fav-group-title {
  display: flex; align-items: baseline; gap: 8px;
  font-size: 14px; color: var(--ink); margin-bottom: 11px;
  padding-left: 10px; border-left: 3px solid var(--red);
}
.fav-group-n {
  font-size: 12px; font-weight: 400; color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}

.fav-legacy-hint { margin: -3px 0 11px; font-size: 12px; line-height: 1.6; }

.fav-one { margin-bottom: 24px; }

.fav-one .item-no { visibility: hidden; }

.fav-one .drill-input { width: calc(100% - 33px); margin: 0 0 8px 33px; }
.fav-one .drill-word > .drill-ans .ans-line { width: auto; margin-right: 0; }


.fav-one-ops {
  
  position: relative;
  display: flex; justify-content: flex-end; align-items: center; gap: 6px;
}
.fav-one-del {
  
  display: block; margin: 0;
  font: inherit; font-size: 12px; line-height: 1;
  padding: 6px 11px; border-radius: 999px; cursor: pointer;
  background: var(--paper); color: var(--ink-3); border: 1px solid var(--line);
}
.fav-one-del:active { border-color: var(--red); color: var(--red); }

.fav-one-note {
  
  
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; padding: 0; margin: 0;
  border: 0; background: transparent; border-radius: 0;
  font: inherit; line-height: 1; cursor: pointer;
  color: var(--ink-3);
}
.fav-one-note:active { color: var(--red); }   

.fav-one .swipe-row { overflow: visible; }
.fav-one .swipe-row .quote { transform: none !important; }
.fav-one .swipe-fav,
.fav-one .term-fav,

.fav-one .sec-fav { display: none; }


.fav-body.drawer-body {
  flex: none; overflow: visible; padding: 0;
}


.fav-one .legend,
.fav-one > h3:not(.essay-title) { display: none; }


.fav-filters { position: relative; }     

.fav-filters { gap: 8px; }
.gn-scroll {
  display: flex; flex-wrap: nowrap; gap: 8px;
  overflow-x: auto; overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scrollbar-width: none;
  padding: 2px 0;
}
.gn-scroll::-webkit-scrollbar { display: none; }
.gn-scroll > button {
  flex: none;                      
  padding: 7px 14px; white-space: nowrap;
}
.fav-subpanel {
  position: absolute; left: 0; top: calc(100% - 6px); z-index: 20;
  display: flex; flex-direction: column; gap: 5px;
  width: 100%; min-width: 160px; max-width: 300px;
  padding: 8px;
  background: var(--card);
  
  opacity: .94;
  
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
  
  max-height: min(56vh, 420px); overflow-y: auto;
  -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
}
.fav-subpanel[hidden] { display: none; }
.fav-subitem {                       
  display: block; width: 100%; text-align: left;
  font: inherit; font-size: 12.5px; line-height: 1.25;
  padding: 9px 11px; border-radius: 8px; cursor: pointer;
  background: transparent; color: var(--ink-2);
  border: 1px solid transparent;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  transition: background .16s, color .16s;
}
.fav-subitem:active { background: var(--paper); }
.fav-subitem.is-active {
  background: var(--red-soft); color: var(--red);
  border-color: var(--red-line); font-weight: 600;
}

.fav-caret {
  display: inline-block; font-style: normal; font-size: 10px; margin-left: 3px;
  opacity: .65; transition: transform .18s;
}

.fav-filters button[data-open] .fav-caret { transform: rotate(180deg); }


.quota-line {
  flex: none;
  
  position: fixed; z-index: 21;
  top: calc(var(--topbar-h) + env(safe-area-inset-top));
  bottom: calc(var(--tabbar-h) + var(--composer-h) + env(safe-area-inset-bottom) + var(--kb, 0px));
  left: 0; right: 0;
  display: flex; align-items: flex-end; justify-content: center;
  max-width: 720px; margin: 0 auto;
  padding: 0 16px 8px;
  font-size: 12px; line-height: 1.5; color: var(--ink-3);
  text-align: center;
  pointer-events: none;          
}
.quota-line[hidden] { display: none; }
.quota-line .quota-login { pointer-events: auto; }
.quota-line[hidden] { display: none; }
.quota-line b { color: var(--red); font-weight: 600; }
.quota-line.is-out { color: var(--red); }
.quota-login {
  font: inherit; font-size: 12px; line-height: 1;
  margin-left: 6px; padding: 5px 10px; border-radius: 999px; cursor: pointer;
  
  white-space: nowrap; flex: none;
  background: var(--red-soft); color: var(--red);
  border: 1px solid var(--red-line);
}


.msg-tip { margin: 0 0 12px !important; }
.msg-form { margin-bottom: 16px; }
.sheet-card .msg-form textarea {
  display: block; width: 100%; box-sizing: border-box;
  font: inherit; font-size: 14px; line-height: 1.65;
  padding: 11px 13px; margin-bottom: 8px;
  border: 1px solid var(--line); border-radius: 10px;
  background: #fff; color: var(--ink); resize: vertical;
}
.sheet-card .msg-form textarea:focus { outline: none; border-color: var(--red); }
.msg-form-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.msg-form-foot .dim { font-size: 12px; }
.msg-send { flex: none; width: auto !important; padding: 0 18px; }

.msg-list { max-height: 46vh; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.msg-item {
  background: var(--paper); border-radius: 10px;
  padding: 11px 13px; margin-bottom: 9px;
}
.msg-head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 5px; }

.msg-head .avatar { align-self: center; }
.msg-head b { font-size: 13.5px; color: var(--red); }
.msg-head .dim { font-size: 12px; }
.msg-del {
  margin-left: auto; font: inherit; font-size: 11.5px; line-height: 1;
  padding: 5px 9px; border-radius: 999px; cursor: pointer;
  background: #fff; color: var(--ink-3); border: 1px solid var(--line);
}
.msg-del:active { border-color: var(--red); color: var(--red); }
.msg-text {
  margin: 0; font-size: 13.5px; line-height: 1.75; color: var(--ink);
  white-space: pre-wrap; word-break: break-word;
}
.msg-empty { text-align: center; color: var(--ink-3); font-size: 13px; padding: 18px 0; }
.msg-login { margin-top: 6px; }


.cmt-note {
  margin: 0 0 12px !important;
  padding: 9px 12px; border-radius: 9px;
  background: linear-gradient(160deg, #FFF7C4 0%, #FCEFA8 100%);
  color: #3a3128; font-size: 13px; line-height: 1.7;
  border: 1px solid rgba(120, 90, 40, .12);
  white-space: pre-wrap; word-break: break-word;
}
.cmt-mine {
  margin-left: auto; flex: none;
  font-size: 11px; line-height: 1; padding: 3px 7px; border-radius: 999px;
  background: var(--red-soft); color: var(--red);
}


.cmt-head-right { margin-left: auto; flex: none; display: flex; align-items: center; gap: 7px; }
.cmt-mine + .cmt-reply-btn { margin-left: 0; }

.cmt-reply-btn {
  font: inherit; font-size: 11.5px; line-height: 1; padding: 4px 8px;
  border-radius: 999px; cursor: pointer;
  background: transparent; color: var(--ink-3); border: 0;
}
.cmt-reply-btn:active { color: var(--red); background: var(--red-soft); }

.cmt-replies { margin: 9px 0 0 9px; padding-left: 10px; border-left: 2px solid var(--line); }
.cmt-replies .msg-item { background: transparent; padding: 2px 0 6px; margin: 0; border-radius: 0; }
.cmt-replies .msg-head { margin-bottom: 3px; }
.cmt-replies .msg-text { font-size: 13px; }

.cmt-at { color: var(--red); }

.cmt-reply-bar {
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 8px; padding: 6px 10px; border-radius: 8px;
  background: var(--peach); color: var(--ink-2); font-size: 12.5px;
}
.cmt-reply-bar b { color: var(--red); }
.cmt-reply-bar button {
  margin-left: auto; font: inherit; font-size: 15px; line-height: 1;
  padding: 2px 7px; border: 0; border-radius: 6px;
  background: transparent; color: var(--ink-3); cursor: pointer;
}
.cmt-reply-bar button:active { color: var(--red); background: #fff; }

.msg-reply {
  margin-top: 9px; padding: 9px 11px; border-radius: 8px;
  background: var(--peach); border-left: 3px solid var(--red);
}
.msg-reply b { display: block; font-size: 12px; color: var(--red); margin-bottom: 4px; }
.msg-reply p {
  margin: 0; font-size: 13px; line-height: 1.7; color: var(--ink);
  white-space: pre-wrap; word-break: break-word;
}
.msg-reply .dim { display: block; font-size: 11.5px; margin-top: 4px; }


.topbar-actions {
  display: flex; align-items: center; gap: 8px; flex: none;
}
.topbar-actions .ghost-btn { display: grid; place-items: center; }
.topbar-actions svg { display: block; }


.drawer-body .quote .item-no {
  min-width: 0;
  margin-right: 7px;
}



.me-tabs {
  display: flex; gap: 8px;
  
  margin: 14px 0 20px; padding: 0 2px;
  
}
.me-tabs button {
  position: relative;
  flex: 1;
  font: inherit; font-size: 14px; font-weight: 600; line-height: 1;
  padding: 11px 8px; border-radius: 10px; cursor: pointer;
  background: var(--card); color: var(--ink-2);
  border: 1px solid var(--line);
  transition: background .18s, color .18s, border-color .18s;
}
.me-tabs button.is-active {
  background: var(--brand-peach); color: var(--red); border-color: var(--brand-peach);
}
.me-tab-n {
  font-style: normal; font-weight: 400; font-size: 12px;
  margin-left: 5px; opacity: .7;
}


.note-filters { margin-top: 6px; }
.note-filters .fav-caret { font-style: normal; color: var(--ink-3); }


.note-writer {
  background: var(--card); border: 1px solid var(--line); border-radius: 12px;
  padding: 12px 13px; margin: 10px 0 14px; box-shadow: var(--shadow-sm);
}
.note-writer textarea {
  width: 100%; box-sizing: border-box;
  font: inherit; font-size: 14px; line-height: 1.75;
  padding: 10px 12px; border-radius: 10px;
  border: 1px solid var(--line); background: var(--paper); color: var(--ink);
  resize: vertical; outline: none;
}
.note-writer textarea:focus { border-color: var(--red); background: var(--card); }
.nw-foot {
  display: flex; align-items: center; gap: 10px; margin-top: 10px;
}

.nw-private {
  display: inline-flex; align-items: center; gap: 6px;
  flex: none; white-space: nowrap;
  
  font-size: 13px; color: rgba(110, 90, 82, .76); cursor: pointer;
  margin-right: auto;
}

.nw-private input,
.fnote-opt input {
  appearance: none; -webkit-appearance: none;
  position: relative;
  width: 13px; height: 13px; flex: none;
  border: 1px solid rgba(110, 90, 82, .76);   
  border-radius: 3.5px;
  background: transparent;
  cursor: pointer;
}
.nw-private input:checked,
.fnote-opt input:checked { background: var(--red); border-color: var(--red); }

.nw-private input:checked::after,
.fnote-opt input:checked::after {
  content: ''; position: absolute; left: 3.6px; top: .8px;
  width: 3px; height: 6px;
  border: solid #fff; border-width: 0 1.5px 1.5px 0;
  transform: rotate(45deg);
}
.nw-send {
  flex: none; width: auto; margin-top: 0;
  font-size: 13.5px; padding: 8px 20px; border-radius: 999px; line-height: 1.2;
}

.note-card-item {
  background: var(--card); border: 1px solid var(--line); border-radius: 12px;
  padding: 13px 15px; margin-bottom: 12px; box-shadow: var(--shadow-sm);
}
.nc-top {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
  font-size: 12.5px;
}
.nc-who { font-weight: 600; color: var(--red); }
.nc-when { color: var(--ink-3); }

.nc-badge {
  margin-left: auto; flex: none;
  font-size: 11px; line-height: 1; padding: 4px 8px; border-radius: 999px;
  background: var(--paper); color: var(--ink-3); border: 1px solid var(--line);
}

.nc-text {
  margin: 0; font-size: 15px; line-height: 1.9; color: var(--ink);
  white-space: pre-wrap; word-break: break-word;
}

.nc-ref {
  display: flex; align-items: center; gap: 8px;
  margin-top: 10px;
  font-size: 12.5px;
}
.nc-ref-label {
  flex: none; font-size: 11px; padding: 3px 7px; border-radius: 5px;
  background: var(--red-soft); color: var(--red);
}

.nc-ref-src,
.nc-ref-title {
  flex: 1; min-width: 0; color: var(--ink-3);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

.fav-body.drawer-body.nc-ref-item {
  margin-top: 9px; padding: 9px 11px;
  background: var(--paper); border-radius: 9px;
  border: 1px solid var(--line);
}
.nc-ref-item .fav-one,
.nc-ref-item .fav-one > *:last-child,
.nc-ref-item .fav-one > *:last-child > *:last-child { margin-bottom: 0; }
.nc-foot {
  display: flex; align-items: center; gap: 8px; margin-top: 11px;
}

.nc-like {
  display: inline-flex; align-items: center; gap: 5px;
  font: inherit; font-size: 12.5px; line-height: 1; padding: 4px 2px;
  border: 0; background: transparent; cursor: pointer;
  color: var(--ink-3);
}
.nc-like-i { font-size: 22px; line-height: 1; }
.nc-like.is-on { color: var(--red); }
.nc-like:active { opacity: .6; }

.note-card-item .nc-cmts {
  position: static; left: auto; bottom: auto; z-index: auto;
  margin-left: 2px; opacity: .7;
}
.note-card-item.has-cmts .nc-cmts { opacity: .92; }

.nc-more {
  margin-left: auto; flex: none;
  width: 30px; height: 26px; padding: 0; line-height: 1;
  font: inherit; font-size: 17px; cursor: pointer;
  background: transparent; border: 0; border-radius: 8px;
  color: var(--ink-3);
}
.nc-more:active { background: rgba(0, 0, 0, .06); color: var(--ink); }
.me-notes-loading { padding: 24px 0; text-align: center; }

.me-loading { margin: 0; padding: 8px 0; text-align: center; font-size: 13px; }


.nc-edit textarea {
  display: block; width: 100%; box-sizing: border-box;
  font: inherit; font-size: 14px; line-height: 1.75;
  padding: 9px 11px; border-radius: 9px;
  border: 1px solid var(--line); background: var(--paper); color: var(--ink);
  resize: vertical; outline: none;
}
.nc-edit textarea:focus { border-color: var(--red); background: var(--card); }
.nc-edit-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 9px; }
.nc-edit-save {
  font: inherit; font-size: 13px; line-height: 1;
  padding: 8px 18px; border-radius: 999px; border: 0; cursor: pointer;
  background: var(--red); color: #fff;
}
.nc-edit-save[disabled] { opacity: .6; cursor: default; }
.nc-edit-cancel {
  font: inherit; font-size: 12.5px; line-height: 1;
  padding: 8px 13px; border-radius: 999px; cursor: pointer;
  background: var(--paper); color: var(--ink-3); border: 1px solid var(--line);
}


.pop-menu { position: fixed; inset: 0; z-index: 70; background: transparent; }
.pm-card {
  position: absolute;
  min-width: 96px;
  padding: 4px;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 11px;
  box-shadow: 0 6px 22px rgba(0, 0, 0, .16);
}
.pm-item {
  display: block; width: 100%; box-sizing: border-box;
  font: inherit; font-size: 14px; line-height: 1;
  padding: 11px 16px; text-align: center; white-space: nowrap;
  border: 0; border-radius: 8px;
  background: transparent; color: var(--ink); cursor: pointer;
}
.pm-item:active { background: var(--paper); }
.pm-item.is-danger { color: var(--red); }


.mat-card-wrap { display: flex; flex-direction: column; }
.mat-card-wrap .mat-card { width: 100%; }
.mat-card-note {
  align-self: flex-end;
  margin: 7px 2px 0 0;
  font: inherit; font-size: 12px; line-height: 1;
  padding: 6px 11px; border-radius: 999px; cursor: pointer;
  background: var(--paper); color: var(--red); border: 1px solid var(--red-line, #f3c9c6);
}
.mat-card-note:active { background: var(--red-soft); }


.fav-note { margin: 9px 0 0 33px; }
.mat-card-notezone { width: 100%; margin-top: 2px; }
.mat-card-notezone .fav-note { margin-left: 0; }


.fnote-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 9px; }
.fnote {
  position: relative;
  
  width: min(78vw, 300px);
  max-width: 100%;
  padding: 11px 13px 9px;
  border-radius: 3px;
  color: #3a3128;
  
  background: var(--fpaper, #FCEFA8);
  
  box-shadow: 0 1px 2px rgba(60, 40, 20, .10), 0 6px 16px rgba(60, 40, 20, .12);
  border: 1px solid rgba(120, 90, 40, .12);
}

.fnote::before {
  content: ''; position: absolute; inset: 7px 0 0;
  background: repeating-linear-gradient(180deg,
    transparent 0, transparent 25px,
    rgba(120, 90, 40, .055) 25px, rgba(120, 90, 40, .055) 26px);
  border-radius: 3px; pointer-events: none;
}

.fnote > * { position: relative; z-index: 1; }
.fnote-text {
  margin: 0; font-size: 13.5px; line-height: 1.75;
  white-space: pre-wrap; word-break: break-word;
}

.fnote-bar { display: flex; align-items: center; gap: 8px; margin-top: 5px; }
.fnote-when { font-size: 11px; color: rgba(107, 90, 69, .72); }
.fnote-more {
  margin-left: auto; flex: none;
  width: 26px; height: 22px; padding: 0; line-height: 1;
  font: inherit; font-size: 15px; cursor: pointer;
  background: transparent; border: 0; border-radius: 7px;
  color: rgba(107, 90, 69, .55);
}
.fnote-more:active { background: rgba(120, 90, 40, .12); color: #6b5a45; }


.fnote-writer {
  background: var(--card); border: 1px solid var(--line);
  border-radius: 10px; padding: 10px; box-shadow: var(--shadow-sm);
}
.fnote-writer textarea {
  display: block; width: 100%; box-sizing: border-box;
  font: inherit; font-size: 13.5px; line-height: 1.75;
  padding: 9px 11px; border-radius: 9px;
  border: 1px solid var(--line); background: var(--paper); color: var(--ink);
  resize: vertical; outline: none;
}
.fnote-writer textarea:focus { border-color: var(--red); background: var(--card); }
.fnote-foot {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 8px;
}
.fnote-opt {
  display: inline-flex; align-items: center; gap: 6px;
  
  font-size: 12.5px; color: rgba(110, 90, 82, .76); cursor: pointer; white-space: nowrap;
}

.fnote-opt[hidden] { display: none; }

.fnote-save {
  margin-left: auto;
  font: inherit; font-size: 13px; line-height: 1;
  padding: 8px 18px; border-radius: 999px; border: 0; cursor: pointer;
  background: var(--red); color: #fff;
}
.fnote-save[disabled] { opacity: .6; cursor: default; }
.fnote-cancel {
  font: inherit; font-size: 12.5px; line-height: 1;
  padding: 8px 12px; border-radius: 999px; cursor: pointer;
  background: var(--paper); color: var(--ink-3); border: 1px solid var(--line);
}


.me-tabs { z-index: 8; }
.fav-filters {
  
  position: relative;
}


.topbar .ghost-btn {
  
  background: transparent;
  border-color: transparent;
}
.topbar .ghost-btn:active { background: rgba(255, 255, 255, .55); }


.mat-tip-row {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 10px; flex-wrap: wrap;
}
.mat-swipe-tip {
  font-style: normal; font-size: 12px; color: var(--ink-3);
  white-space: nowrap; flex: none;
}


.swipe-row { border-bottom: 1px dashed var(--line); }
.swipe-row .entry { border-bottom: 0; }


.guide-note { color: var(--red); font-style: normal; }


.msg { flex-direction: column; align-items: flex-start; gap: 6px; }
.msg.user { align-items: flex-end; }
.msg-name {
  font-size: 16px; line-height: 1.4; padding: 0 4px;
  color: var(--ink-3);
}
.msg.ai .msg-name { color: var(--red); font-weight: 600; }


.msg-name { font-size: 14px; }
.msg.user { flex-direction: column; align-items: flex-end; }
.msg.ai .bubble {
  background: transparent; border: 0; box-shadow: none;
  padding: 0; border-radius: 0;
}


.bubble .content b,
.bubble .content strong { color: var(--ink); font-weight: 700; }
.bubble h4 {
  margin: 18px 0 8px; padding-left: 9px;
  font-size: 15.5px; color: var(--ink);
  border-left: 3px solid var(--red);   
}
.bubble h4:first-child { margin-top: 4px; }
.bubble p { margin: 0 0 10px; line-height: 1.8; }
.bubble ul, .bubble ol { margin: 6px 0 12px; padding-left: 22px; }
.bubble li { margin: 5px 0; line-height: 1.75; }
.bubble hr { border: 0; border-top: 1px dashed var(--line); margin: 16px 0; }


.bubble h4 { border-left: 0; padding-left: 0; }
.msg-name {
  padding: 0 0 4px; margin: 0 0 7px;
  font-size: 13px;
  border-bottom: 1px dashed var(--line);
}
.msg.user .bubble { background: var(--brand-peach); border-color: var(--brand-peach); }


.msg-name { font-size: 16px; }


.msg-head { display: flex; align-items: center; gap: 8px; padding-bottom: 5px; margin-bottom: 7px; border-bottom: 1px dashed var(--line); }
.msg.user .msg-head { justify-content: flex-end; }
.msg-logo { width: 26px; height: 26px; border-radius: 7px; flex: none; display: block; }
.msg-meta { display: flex; flex-direction: column; min-width: 0; }
.msg-time { font-size: 11px; color: var(--ink-3); margin-top: 1px; }
.msg-name { padding: 0; margin: 0; border-bottom: 0; }



.msg-foot { display: flex; align-items: baseline; justify-content: flex-end; gap: 6px; margin-top: 5px; padding: 0 2px; }
.msg-foot .msg-name { font-size: 14px; color: var(--ink-2); }
.msg-foot .msg-time { font-size: 11px; color: var(--ink-3); }


.msg-head { display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; }
.msg-meta { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.msg-logo { width: 30px; height: 30px; border-radius: 8px; flex: none; display: block; }
.msg-time { margin-top: 0; }


.msg.ai .bubble { padding: 0 1em; }   


.msg.ai .bubble { max-width: 100%; }


.bubble p { margin: 0 0 15px; line-height: 1.85; }
.bubble li { margin: 7px 0; line-height: 1.8; }
.bubble h4 { margin: 24px 0 10px; }


.msg-foot .msg-name { font-size: 13px; }


.bubble .content { line-height: 2; }
.bubble p { line-height: 2; }
.bubble li { line-height: 1.95; }


.topbar .ghost-btn { display: inline-flex; align-items: center; justify-content: center; line-height: 1; padding: 0; }
.topbar .ghost-btn svg { display: block; }


.msg.user .bubble { border-top-right-radius: 14px; border-bottom-right-radius: 5px; }


:root { --seal-red: #D9453C; }


.msg.ai .msg-head {
  
  width: calc(100% - 2em);
  margin-left: 1em;
}


body.writing-note .tabbar {
  
  display: none;
}


body.writing-note .scroll { bottom: var(--kb, 0px) !important; }


.search-wrap { display: none; }


.mat-card {
  box-shadow: 0 1px 2px rgba(120, 80, 60, .06), 0 4px 14px rgba(120, 80, 60, .07);
}
.mat-card:active {
  box-shadow: 0 1px 2px rgba(120, 80, 60, .08), 0 2px 6px rgba(120, 80, 60, .06);
}


.mat-card {
  box-shadow: 0 2px 4px rgba(120, 80, 60, .10), 0 6px 18px rgba(120, 80, 60, .12);
  transition: transform .16s ease, box-shadow .16s ease;
}
@media (hover: hover) and (pointer: fine) {
  .mat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(120, 80, 60, .12), 0 14px 28px rgba(120, 80, 60, .16);
  }
}
.mat-card:active {
  transform: translateY(0);
  box-shadow: 0 1px 2px rgba(120, 80, 60, .12), 0 2px 6px rgba(120, 80, 60, .08);
}


.fav-one-del {
  border-color: transparent;
  background: transparent;
  color: var(--ink-3);
  opacity: .72;
  padding: 6px 8px;
}
.fav-one-del:active {
  opacity: 1;
  color: var(--red);
  border-color: var(--red);
}
@media (hover: hover) and (pointer: fine) {
  .fav-one-del:hover {
    opacity: 1;
    background: var(--paper);
    border-color: var(--line);
  }
}


.note-card-item .nc-like:not(.is-on) {
  color: var(--ink-3);
  opacity: .92;
}
.note-card-item .nc-like.is-on {
  color: var(--red);
  opacity: 1;
}


.note-card-item .nc-like:not(.is-on) {
  color: var(--ink-3);
  opacity: .7;
}
.note-card-item .nc-like.is-on { color: var(--red); opacity: 1; }


.nc-like-i .heart-svg { display: block; width: 19px; height: 19px; }   
.nc-like.is-on .nc-like-i .heart-svg { fill: currentColor; }


.note-card-item .nc-like { display: inline-flex; align-items: center; gap: 4px; }
.note-card-item .nc-like-i { display: inline-flex; align-items: center; }
.note-card-item .nc-like-n { line-height: 1; }
.note-card-item .nc-cmts { display: inline-flex; align-items: center; }


.note-card-item .nc-like-n,
.note-card-item .nc-cmts { transform: translateY(1px); }


.drawer-head {
  background: var(--brand-peach);
  border-bottom-color: var(--brand-peach);
}


:root { --brand-peach: #F5C8B1; }   


.fav-btn {
  background: transparent;
  border-color: transparent;
  color: var(--red);
}
.fav-btn:active {
  background: rgba(255, 255, 255, .5);
  border-color: transparent;
}
@media (hover: hover) and (pointer: fine) {
  .fav-btn:hover {
    background: rgba(255, 255, 255, .42);
    border-color: transparent;
  }
}


.ep-rules > summary,
.tag {
  background: var(--brand-peach);
  border-color: var(--brand-peach);
  color: var(--red);
}


.me-tabs { margin: 14px 0 12px; }


#view-material .group-nav { padding-bottom: 16px; }


#view-course .course-tabs { margin-bottom: 12px; }


.list-item .tag {
  background: var(--brand-peach);
  border-color: var(--brand-peach);
  color: var(--red);
}


.essay-body p { text-indent: 2em; margin: 0 0 6px; }
.essay-body p:first-child { text-indent: 2em; }


.drawer-body .essay-body p.ep-flush { text-indent: 0; }
.drawer-body .essay-body p.ep-sub { text-align: center; text-indent: 0; }
.drawer-body .essay-body p.ep-sign { text-align: right; text-indent: 0; }


.drill-ans > summary {
  background: var(--brand-peach);
  border-color: var(--brand-peach);
  color: var(--red);
}


.drawer-head {
  box-shadow: none;
  border-bottom-color: var(--brand-peach);
}


.book-back:active {
  background: var(--brand-peach);
  border-color: var(--brand-peach);
  color: var(--red);
}


.book-back {
  background: var(--brand-peach);
  border-color: var(--brand-peach);
  color: var(--red);
}




.essay-body mark.key {
  font-weight: inherit;
  -webkit-text-stroke: 0;
  color: inherit;
  text-decoration-line: none;
  text-decoration-color: transparent;
  background-image: none;
  background-color: #FFE79B;                  
  padding: .02em .07em;
  margin: 0;                                  
  border-radius: 3px;
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
  word-break: normal;                         
  overflow-wrap: anywhere;
}

.essay-body mark.key.hl-lightgray  { background-color: #E3DFDA; }   
.essay-body mark.key.hl-red        { background-color: #FFD5D1; }   
.essay-body mark.key.hl-green      { background-color: #D0EBC2; }   
.essay-body mark.key.hl-magenta    { background-color: #F4CDE9; }   
.essay-body mark.key.hl-cyan       { background-color: #C6EAEF; }
.essay-body mark.key.hl-blue       { background-color: #CBD6F4; }
.essay-body mark.key.hl-darkyellow { background-color: #EFD489; }
.essay-body mark.key.hl-darkgray   { background-color: #D2CDC7; }
.essay-body mark.key.hl-darkred    { background-color: #F5C0BA; }
.essay-body mark.key.hl-darkblue   { background-color: #B9C4EA; }
.essay-body mark.key.hl-darkgreen  { background-color: #B2DB9F; }
.essay-body mark.key.hl-darkmagenta{ background-color: #E9B2D8; }
.essay-body mark.key.hl-darkcyan   { background-color: #A5D7DE; }


.essay-body u {
  text-decoration-line: underline;
  text-decoration-style: solid;               
  text-decoration-color: currentColor;        
  text-decoration-thickness: 1.2px;
  text-underline-offset: max(2.5px, .15em);
  text-decoration-skip-ink: auto;
  background-color: rgba(214, 166, 143, .14); 
  padding: .03em .06em;
  margin: 0;
  border-radius: 2px;
  box-decoration-break: clone; -webkit-box-decoration-break: clone;
}
.essay-body u.u-wave   { text-decoration-style: wavy;   text-decoration-thickness: 1.3px; }
.essay-body u.u-double { text-decoration-style: double; text-decoration-thickness: 2px; }
.essay-body u.u-dotted { text-decoration-style: dotted; }
.essay-body u.u-dash   { text-decoration-style: dashed; }


.essay-body mark.key u,
.essay-body u mark.key {
  text-decoration-line: underline;
  background-color: transparent;
  padding: 0;
}




.essay-body .fc-ff0000 { color: var(--red); }        
.essay-body .fc-c00000 { color: var(--red-dark); }   
.essay-body .fc-bf0000 { color: var(--red-dark); }   
.essay-body .fc-0000ff { color: #1B2FBF; }           


@media (prefers-contrast: more) {
  .essay-body mark.key { background-image: none; background-color: var(--gold-light); color: var(--ink); }
  .essay-body u { background-color: transparent; text-decoration-thickness: 2.5px; }
  .essay-body :is(strong, b) { font-weight: 800; }
  .essay-body .fc-ff0000, .essay-body .fc-c00000,
  .essay-body .fc-bf0000 { color: var(--red-dark); }
}
@media (forced-colors: active) {
  .essay-body mark.key { background: Highlight; color: HighlightText; }
  .essay-body u { background-color: transparent; text-decoration-color: currentColor; }
}
@media print {
  
  .essay-body mark.key { background-image: none; background-color: #FFF3C4; }
  .essay-body u { background-color: transparent; text-decoration-color: #7A5244; }
}




.drawer-body .quote i {
  display: inline;
  text-align: inherit;
  margin-top: 0;
}

.drawer-body .quote i::before { content: ' '; }


.drawer-body .swipe-row > .quote:not(.analect) .q-main {
  font-family: "STKaiti", "Kaiti SC", "KaiTi", "楷体", "华文楷体", "STSong", serif;
}


.drawer-body .swipe-row > .quote:not(.analect) {
  margin-bottom: 12px;
}


.drawer-body .swipe-row > .swipe-fav { bottom: 12px; }


.drawer-body .essay-body.is-kaiti,
.drawer-body .entry .eg.sent,
.drawer-body .quote.analect .q-main,
.drawer-body .ts-para,
.rawbox .xc-eg,
.drawer-body .swipe-row > .quote:not(.analect) .q-main {
  font-family: 'LXGW WenKai Web', 'KaiTiLocal', "STKaiti", "Kaiti SC", "KaiTi", "楷体", "华文楷体", "STSong", serif;
}


.guide-note { font-weight: 700; }


.drawer-body h3.xuci-gen-head {
  display: flex;
  align-items: baseline;
  gap: 8px;
}



.fav-body.drawer-body.nc-ref-item.is-bare {
  border: 0;
  background: none;
  margin-top: 9px;
  padding: 0;
}


.topbar .ghost-btn.about-btn {
  width: auto; min-width: 40px; padding: 0 10px; border-radius: 999px;
  font-size: 13.5px; letter-spacing: .5px;
}

.pm-card--about { min-width: 244px; padding: 7px; }
.pm-card--about::before {
  content: ''; position: absolute; top: -5px; right: 20px;
  width: 9px; height: 9px; background: var(--card);
  border-left: 1px solid var(--line); border-top: 1px solid var(--line);
  border-top-left-radius: 2px; transform: rotate(45deg);
}
.pm-card--about.is-up::before {
  top: auto; bottom: -5px;
  border-left: 0; border-top: 0;
  border-right: 1px solid var(--line); border-bottom: 1px solid var(--line);
  border-top-left-radius: 0; border-bottom-right-radius: 2px;
}

.pm-item--rich {
  display: flex; align-items: flex-start; gap: 10px;
  text-align: left; white-space: normal; line-height: 1.35;
  padding: 10px 11px;
}
.pm-ico { flex: none; display: inline-flex; width: 19px; height: 19px; margin-top: 1px; color: var(--ink-3); }
.pm-ico svg { display: block; }
.pm-txt { min-width: 0; }
.pm-txt b { display: block; font-size: 14px; font-weight: 600; color: var(--ink); }
.pm-txt i { display: block; font-style: normal; font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.pm-item--rich:active { background: var(--red-soft); }
.pm-item--rich:active .pm-ico,
.pm-item--rich:active .pm-txt b { color: var(--red); }

.pm-card--about .pm-item--rich { position: relative; }
.pm-card--about .pm-item--rich + .pm-item--rich::before {
  content: ''; position: absolute; left: 9px; right: 9px; top: 0; height: 1px;
  background: var(--line);
}


@media (hover: hover) and (pointer: fine) {
  .pm-item:hover { background: var(--red-soft); }
  .pm-item--rich:hover { background: var(--red-soft); }
  .pm-item--rich:hover .pm-ico,
  .pm-item--rich:hover .pm-txt b { color: var(--red); }
  .topbar .ghost-btn:hover { background: rgba(255, 255, 255, .38); }
}

.pm-item:active { background: var(--red-soft); }


.sheet-card.sheet-card--doc { max-width: 560px; }
.sheet-card--doc h4 { font-size: 14.5px; color: var(--red); margin: 16px 0 8px; }
.sheet-card--doc h4:first-of-type { margin-top: 4px; }
.sheet-card--doc .doc-lead {
  background: var(--paper); border-left: 3px solid var(--red-line); border-radius: 8px;
  padding: 9px 11px; margin-bottom: 4px; color: var(--ink);
}
.sheet-card--doc ul, .sheet-card--doc ol { margin: 0 0 10px; padding-left: 19px; }
.sheet-card--doc li { font-size: 13.5px; color: var(--ink-2); line-height: 1.75; margin-bottom: 5px; }
.sheet-card--doc hr { border: 0; border-top: 1px solid var(--line); margin: 14px 0 0; }
.sheet-card--doc p b, .sheet-card--doc li b { color: var(--ink); }


.msg-acts {
  display: flex; align-items: center; gap: 1px;
  padding-left: 1em;      
  margin-top: -2px;       
}
.msg-acts .ma {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 28px; padding: 0; margin: 0;
  border: 0; background: none; cursor: pointer; border-radius: 8px;
  color: var(--ink-3); opacity: .72;
  transition: color .15s, opacity .15s, background-color .15s, transform .1s;
  -webkit-tap-highlight-color: transparent;
}
.msg-acts .ma svg { display: block; }
.msg-acts .ma:hover { opacity: 1; color: var(--ink-2); background: var(--red-soft); }
.msg-acts .ma:active { transform: scale(.92); }
.msg-acts .ma:focus-visible { opacity: 1; outline: 2px solid var(--red-vivid); outline-offset: 1px; }
.msg-acts .ma[disabled] { opacity: .45; cursor: default; }

.msg-acts .ma.is-on { color: var(--red); opacity: 1; }
.msg-acts .ma.is-on svg { fill: currentColor; }

.msg-acts .ma.is-flash { color: var(--red); opacity: 1; }


.tip {
  position: fixed; left: 50%; z-index: 60; max-width: 78vw;
  bottom: calc(var(--tabbar-h) + env(safe-area-inset-bottom, 0px) + var(--kb, 0px) + 74px);
  transform: translateX(-50%) translateY(6px);
  padding: 7px 14px; border-radius: 999px;
  background: rgba(36, 30, 28, .9); color: #fff;
  font-size: 12.5px; line-height: 1.5; text-align: center;
  opacity: 0; pointer-events: none;
  transition: opacity .22s ease, transform .22s ease;
}
.tip.show { opacity: 1; transform: translateX(-50%) translateY(0); }


.share-row {
  display: flex; align-items: center; gap: 11px; width: 100%;
  padding: 11px 10px; margin-bottom: 2px;
  border: 0; background: none; cursor: pointer; text-align: left; border-radius: 12px;
  color: var(--ink); font: inherit;
  transition: background-color .15s;
}
.share-row:hover, .share-row:focus-visible { background: var(--bar); outline: none; }
.share-row[disabled] { opacity: .55; cursor: default; }
.share-row .share-ico {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 10px;
  background: var(--red-soft); color: var(--red);
}
.share-row .share-txt { min-width: 0; }
.share-row .share-txt b { display: block; font-size: 14.5px; font-weight: 600; }
.share-row .share-txt span { display: block; font-size: 12px; color: var(--ink-3); margin-top: 2px; }
.share-sep { height: 1px; background: var(--line); margin: 7px 0 9px; }

.sl-box { margin: -4px 0 10px; padding: 10px 11px; background: var(--red-soft); border-radius: 10px; }
.sl-url { font-size: 12.5px; color: var(--ink-2); line-height: 1.6; word-break: break-all; }
.sl-acts { display: flex; gap: 8px; margin-top: 9px; }
.sl-btn {
  flex: 1 1 0; min-width: 0; font: inherit; font-size: 13px; line-height: 1.1;
  padding: 9px 10px; border-radius: 999px; cursor: pointer;
  background: var(--card); color: var(--ink); border: 1px solid var(--line);
  transition: background .16s, color .16s, border-color .16s;
}
.sl-btn:active { transform: scale(.98); }
.sl-btn.primary { background: var(--brand-peach); color: var(--red); border-color: var(--brand-peach); font-weight: 600; }

.share-fallback {
  margin: -2px 0 10px; padding: 0 10px;
  font-size: 12px !important; line-height: 1.65;
}

.sheet.is-wechat .share-fallback {
  margin: 0 0 12px; padding: 10px 12px;
  background: var(--red-soft); border-radius: 10px;
  font-size: 13.5px !important; line-height: 1.75; color: var(--ink);
}
.sheet.is-wechat .share-fallback b { color: var(--red); }




.nc-qa { margin-top: 11px; padding-top: 10px; border-top: 1px dashed var(--line); }
.nc-qa.no-line { margin-top: 0; padding-top: 0; border-top: 0; }


.nc-qa-a { font-size: 15px; line-height: 2; color: var(--ink); }
.nc-qa-a p { margin: 0 0 12px; line-height: 2; }
.nc-qa-a p:last-child { margin-bottom: 0; }
.nc-qa-a h4 { margin: 16px 0 8px; font-size: 16px; color: var(--ink); }
.nc-qa-a h4:first-child { margin-top: 0; }
.nc-qa-a ul, .nc-qa-a ol { margin: 6px 0 12px; padding-left: 21px; }
.nc-qa-a li { margin: 5px 0; line-height: 1.95; }
.nc-qa-a strong, .nc-qa-a b { color: var(--ink); font-weight: 700; }
.nc-qa-a code { background: var(--red-soft); padding: 1px 5px; border-radius: 5px; font-size: 14px; }
.nc-qa-a hr { border: 0; border-top: 1px dashed var(--line); margin: 14px 0; }

.nc-qa-q {
  font-size: 15px; font-weight: 600; color: var(--red);
  line-height: 1.8; margin-bottom: 6px;
}

.nc-qa-l {
  font-size: 15px; font-weight: 600; color: var(--ink);
  line-height: 1.8; margin: 0 0 4px;
}

.nc-qa-tag { margin-top: 9px; font-size: 13px; color: var(--ink-3); }
.nc-qa-tag::before { content: '—— '; }


.ns-quote {
  background: var(--bar); border-left: 3px solid var(--red-line); border-radius: 8px;
  padding: 9px 11px; margin: 2px 0 11px;
}
.ns-quote .ns-q {
  font-size: 13.5px; font-weight: 600; color: var(--red); line-height: 1.55;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ns-quote .ns-a {
  font-size: 12.5px; color: var(--ink-2); line-height: 1.7; margin-top: 5px;
  
  white-space: pre-wrap; word-break: break-word; max-height: 5.1em; overflow: hidden;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
}
.ns-quote:empty { display: none; }


.deep-learn {
  position: relative; display: inline-flex; align-items: center;
  padding: 8px 12px 8px 11px; margin-right: -2px;
  border: 0; border-radius: 999px;
  background: linear-gradient(135deg, var(--red-deep), var(--red-dark));
  color: #FFF7F3;
  font-size: 13.5px; font-weight: 700; letter-spacing: .02em;
  box-shadow: 0 2px 8px rgba(197, 33, 41, .26);
}
.deep-learn:active { filter: brightness(1.07); transform: scale(.98); }
.deep-learn-t { line-height: 1; }
.deep-learn-b {
  position: absolute; top: -7px; right: -6px;
  padding: 1px 4px; border-radius: 5px;
  
  background: #FFF7F3; color: var(--ink-2);
  font-size: 9px; font-weight: 700; line-height: 1.5; letter-spacing: 0;
  transform: scale(.96); transform-origin: right top;
  box-shadow: 0 1px 3px rgba(120, 30, 20, .35);
}


.topbar .deep-learn { display: none; }
body[data-view="course"] .deep-learn { display: inline-flex; }   

body[data-view="course"] .topbar #msgBtn,
body[data-view="course"] .topbar #aboutBtn { display: none; }


.learn-head-r { display: inline-flex; align-items: center; gap: 8px; }
.learn-snd {
  display: inline-flex; align-items: center; justify-content: center;
  width: 26px; height: 26px; padding: 0;
  border: 0; border-radius: 50%; background: transparent;
  color: var(--ink-3); cursor: pointer;
}
.learn-snd:active { background: var(--red-soft); color: var(--red); }
.learn-snd svg { display: block; }

.learn-continue.is-hidden { display: none !important; }

.learn-new {
  display: inline-block; margin-left: 7px; padding: 1px 5px;
  border-radius: 5px; background: var(--red); color: #FFF7F3;
  font-size: 10px; font-weight: 700; line-height: 1.6; vertical-align: 2px;
  letter-spacing: 0;
}

.learn-figure {
  margin: 2px 0 10px; border: 1px solid var(--line); border-radius: 12px;
  overflow: hidden; background: var(--card);
}
.learn-figure img { display: block; width: 100%; height: auto; }


.learn-essay {
  border: 1px solid var(--line); border-radius: 12px; background: var(--card);
  padding: 12px 14px; margin: 2px 0 12px;
}
.learn-material {
  margin: 0 0 10px; padding: 0; font-family: inherit; white-space: pre-wrap;
  font-size: 14.5px; line-height: 1.85; color: var(--ink-2); text-align: center;
}
.learn-q-inline { margin: 8px 0 0; font-size: 15.5px; }
.learn-key {
  border: 1px solid var(--red-line); border-radius: 12px; background: var(--red-soft);
  padding: 12px 14px; margin: 2px 0 10px; font-size: 15px; line-height: 1.85; color: var(--ink);
}
.learn-key b { display: block; margin-bottom: 6px; color: var(--red); font-size: 13px; letter-spacing: .04em; }
.learn-key div { white-space: pre-wrap; }



.learn-answer {
  display: block; width: 100%; box-sizing: border-box;
  min-height: 96px; margin: 2px 0 10px; padding: 11px 13px;
  border: 1px solid var(--line); border-radius: 12px; background: var(--card);
  font: inherit; font-size: 15px; line-height: 1.7; color: var(--ink);
  resize: vertical;
}
.learn-answer:focus { outline: none; border-color: var(--red); }
.learn-answer::placeholder { color: var(--ink-3); }
.learn-review {
  margin: 10px 0 12px; padding: 0 14px; border-radius: 12px;
  background: var(--card); border: 1px solid var(--line);
  font-size: 15px; line-height: 1.85; color: var(--ink);
}
.learn-review:empty { display: none; }
.learn-review > :first-child { margin-top: 12px; }
.learn-review > :last-child { margin-bottom: 12px; }
.learn-review .dim { color: var(--ink-3); font-size: 14px; }



.learn-key.learn-ref {
  background: var(--card); border-color: var(--line);
}
.learn-key.learn-ref b { color: var(--ink-2); }
.learn-ref-src { margin-top: 8px; font-size: 12.5px; color: var(--ink-3); }



.learn-unit-card {
  display: block; width: 100%; box-sizing: border-box; text-align: left;
  margin: 0 0 12px; padding: 14px 16px;
  border: 1px solid var(--line); border-radius: 14px; background: var(--card);
  font: inherit; color: var(--ink);
}
.learn-unit-card:active { background: var(--red-soft); border-color: var(--red-line); }
.learn-unit-no { display: block; font-size: 12px; color: var(--red); font-weight: 700; letter-spacing: .06em; }
.learn-unit-t { display: block; margin-top: 4px; font-size: 17px; font-weight: 700; }
.learn-unit-s { display: block; margin-top: 4px; font-size: 13.5px; color: var(--ink-3); line-height: 1.6; }
.learn-unit-p { display: block; margin-top: 8px; font-size: 13px; color: var(--ink-2); }




.learn-unit-head {
  
  position: relative; z-index: 1;
  display: flex; flex-direction: column;
  width: 168px; min-height: 168px; box-sizing: border-box;
  margin: 26px 0 16px; padding: 0;
  border-radius: 14px; overflow: hidden;
  background: var(--card);
  border: 1px solid var(--line);
  box-shadow: 0 1px 2px rgba(60, 40, 20, .08), 0 8px 22px rgba(60, 40, 20, .12);
  color: var(--ink);
}
.learn-unit-head-no {
  display: block; padding: 11px 14px 11px;
  
  background: var(--red);
  font-family: inherit;
  font-size: 16px; font-weight: 700; letter-spacing: .06em; color: #fff;
}
.learn-unit-head-t {
  display: block; padding: 11px 14px 0;
  font-family: inherit;
  font-size: 20px; font-weight: 800; line-height: 1.28; color: var(--red);
}
.learn-unit-head-s {
  display: block; padding: 6.25px 14px 0;
  font-family: inherit;
  
  font-size: 13.5px; line-height: 1.6; color: var(--ink-3);
}
.learn-unit-head-p {
  display: block; padding: 5px 14px 13px;
  font-family: inherit;
  
  font-size: 13.5px; line-height: 1.6; color: var(--ink-2);
}


.ls-wrap { padding: 0 0 4px; }
.ls-hero {
  margin: 6px 0 14px; padding: 18px 16px 16px; border-radius: 18px;
  background: linear-gradient(180deg, #FFF6F6 0%, #FFFFFF 100%);
  border: 1px solid #F2D9D9;
}
.ls-hero-k {
  display: inline-block; padding: 2px 9px; border-radius: 999px;
  background: #FBE7E8; color: var(--red); font-size: 11.5px; font-weight: 700;
}
.ls-hero-t {
  margin: 10px 0 2px; color: var(--red); font-size: 30px; font-weight: 800;
  line-height: 1.28; letter-spacing: 1px;
}
.ls-hero-s { color: var(--ink-3); font-size: 13px; }
.ls-map {
  margin: 0 0 16px; padding: 6px 2px 2px; border-radius: 18px;
  background: #FFFFFF; border: 1px solid #EFEFEF;
  box-shadow: 0 6px 18px rgba(24, 20, 18, 0.05);
}
.ls-svg { display: block; width: 100%; height: auto; }
.ls-cards { display: flex; flex-direction: column; gap: 12px; }
.ls-card {
  border-radius: 16px; background: #fff; border: 1px solid #EFEFEF;
  padding: 12px 14px 4px; box-shadow: 0 4px 14px rgba(24, 20, 18, 0.04);
}
.ls-card-h {
  display: flex; align-items: center; gap: 8px;
  font-size: 14.5px; font-weight: 700; color: var(--ink);
  padding-bottom: 8px; border-bottom: 1px dashed #EDEDED;
}
.ls-tag {
  display: inline-block; min-width: 26px; padding: 2px 8px; border-radius: 999px;
  font-size: 12px; font-weight: 700; color: #fff; background: var(--ink);
}
.ls-c-bi .ls-tag { background: var(--red); }
.ls-c-bi .ls-card-h { color: var(--red); }
.ls-c-wen .ls-tag { background: #E0A020; }
.ls-c-fan .ls-tag { background: #2F8F5B; }
.ls-c-kua .ls-tag { background: #2B3A44; }
.ls-list { list-style: none; margin: 0; padding: 0; }
.ls-list li {
  position: relative; padding: 9px 0 9px 14px; font-size: 13.5px; line-height: 1.7;
  color: var(--ink-2); border-bottom: 1px solid #F6F6F6;
}
.ls-list li:last-child { border-bottom: 0; }
.ls-list li::before {
  content: ''; position: absolute; left: 0; top: 17px; width: 5px; height: 5px;
  border-radius: 50%; background: #D8D8D8;
}
.ls-list li b { color: var(--ink); margin-right: 6px; }
.ls-list li b::after { content: '｜'; color: #E2E2E2; margin-left: 4px; }
.ls-tips {
  margin: 16px 0 4px; padding: 14px 14px 12px; border-radius: 16px;
  background: #FFFBF0; border: 1px solid #F3E6C8;
}
.ls-tips-h { font-size: 13.5px; font-weight: 700; color: #9A6B00; margin-bottom: 6px; }
.ls-tips ol { margin: 0; padding-left: 18px; }
.ls-tips li { font-size: 13px; line-height: 1.75; color: var(--ink-2); margin-bottom: 6px; }


.learn-vicon {
  width: 13px; height: 13px; margin-left: 5px;
  vertical-align: -1.5px; color: var(--red);
  flex: none;
}
.learn-unit .learn-vicon { width: 15px; height: 15px; vertical-align: -2px; margin-left: 7px; }



.learn-mode { font-size: 12.5px; color: var(--ink-3); letter-spacing: .06em; margin-bottom: 5px; }
.learn-branches {
  display: flex; gap: 10px;
  overflow-x: auto; scroll-snap-type: x mandatory;
  
  margin: -14px -14px 0;
  padding: 12px 14px 12px;
  -webkit-overflow-scrolling: touch; scrollbar-width: none;
  
  position: sticky; top: -14px; z-index: 20;
  background: var(--bar);
  box-shadow: 0 6px 12px -8px rgba(36, 30, 28, .18);
  
  touch-action: pan-x;
  overscroll-behavior-x: contain;
}
.learn-branches::-webkit-scrollbar { display: none; }

.learn-branch {
  flex: 0 0 auto; scroll-snap-align: center;
  min-width: 108px; border: 0; border-radius: 14px;
  padding: 9px 12px;
  background: #F7D5D1; color: var(--red-dark);
  font: inherit; text-align: center; cursor: pointer;
  transition: background .18s ease, box-shadow .18s ease, color .18s ease;
}
.learn-branch-t { display: block; font-size: 15px; font-weight: 600; line-height: 1.25; }
.learn-branch-s { display: block; font-size: 11px; opacity: 1; color: #A85A56; margin-top: 3px; }
.learn-branch.is-on { background: var(--red); color: #fff; box-shadow: 0 4px 14px rgba(197, 33, 41, .26); }
.learn-branch.is-on .learn-branch-s { color: rgba(255, 255, 255, .92); }
.learn-panel { padding-bottom: 8px; }

.learn-empty { margin: 18px 16px 26px; padding: 22px 16px; text-align: center;
  font-size: 14px; color: var(--ink-2); background: #fff; border-radius: 14px;
  border: 1px dashed #e0d6d3; }



.learn-head-row {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 10px; padding: 2px 0 0;
}
.learn-head-row .learn-mode { margin: 0; }
.learn-head { margin: 0; padding: 10px 0 12px; }   
.learn-head .learn-bar { margin-top: 8px; }


#backCourse { display: none; }
body[data-view="learn"] #sysLearn { display: none; }
body[data-view="learn"] #backCourse { display: inline-flex; }


#view-learn .scroll { scroll-behavior: auto; }


.learn-match { display: flex; gap: 14px; align-items: flex-start; margin-top: 10px; }
.learn-match .learn-groups { flex: 0 0 auto; display: flex; flex-direction: column; gap: 8px; margin-top: 0; }
.learn-match .learn-chips { flex: 1 1 auto; display: flex; flex-direction: column; gap: 8px; margin-top: 0; }
.learn-match .learn-chip, .learn-match .learn-gbtn { text-align: left; }


.learn-material {
  text-align: left;
  white-space: pre-wrap;
  line-height: 1.9;
  padding-left: 18px;
}


.learn-typed { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; }
.learn-typed-row { display: flex; align-items: center; gap: 10px; }
.learn-typed-l { flex: 0 0 auto; min-width: 34px; font-weight: 600; color: var(--red); text-align: center; }
.learn-typed-n { flex: 0 0 auto; min-width: 18px; color: #9a9a9a; text-align: center; }
.learn-typed-in { flex: 1 1 auto; min-width: 0; height: 42px; padding: 0 12px;
  border: 1px solid #E6D8D5; border-radius: 10px; background: #fff; font-size: 15px; color: inherit; }
.learn-typed-in:focus { outline: none; border-color: var(--red); }
.learn-typed-row.is-right .learn-typed-in { border-color: #2E9E5B; background: #F2FBF5; }
.learn-typed-row.is-wrong .learn-typed-in { border-color: var(--red); background: #FFF6F6; }
.learn-typed-ans { flex: 0 0 auto; font-size: 12px; color: #2E9E5B; max-width: 40%; }


.learn-opts { display: flex; flex-direction: row;      
  flex-wrap: wrap; gap: 10px; align-items: flex-start; }
.learn-opts .learn-opt.learn-pick-big {
  flex: 0 0 auto;
  width: 68px;
  min-width: 68px;
  max-width: 68px;
  height: 68px;
  padding: 0;
  margin: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  font-weight: 700;
  line-height: 1;
  border-radius: 16px;
  background: #fff;
  border: 1.5px solid #E6D8D5;
  color: var(--red-dark, #a8231f);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
  transition: transform .08s ease, background .12s ease, border-color .12s ease;
}
.learn-opts .learn-opt.learn-pick-big:active { transform: scale(.95); }
.learn-opts .learn-opt.learn-pick-big.is-picked { background: var(--red); border-color: var(--red); color: #fff; }
.learn-opts .learn-opt.learn-pick-big.is-right { background: #F2FBF5; border-color: #2E9E5B; color: #2E9E5B; }
.learn-opts .learn-opt.learn-pick-big.is-wrong { background: #FFF6F6; border-color: var(--red); color: var(--red); }


.learn-q { white-space: pre-wrap; }


.learn-q.learn-q-material { font-weight: 400; }


.learn-mat {
  display: grid;
  grid-template-columns: max-content 1fr;
  column-gap: 1.1em;
  row-gap: 6px;
  margin: 2px 0 4px;
  padding-left: 1em;            
}

.learn-mat-head { grid-column: 1 / -1; margin-left: -1em; font-size: 15.5px; line-height: 1.8; color: var(--ink); }
.learn-mat-src { color: var(--ink); }

.learn-mat-y { font-size: 15.5px; line-height: 1.8; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.learn-mat-t { min-width: 0; font-size: 15.5px; line-height: 1.8; color: var(--ink-3); white-space: pre-wrap; }
.learn-mat-dots { color: var(--ink-3); }
.learn-mat-p { grid-column: 1 / -1; margin-top: 2px; font-size: 15.5px; line-height: 1.8; color: var(--ink); white-space: pre-wrap; }

.learn-mat-p.learn-mat-list { color: var(--ink-3); }
.learn-mat-req { grid-column: 1 / -1; margin-top: 2px; font-size: 15.5px; line-height: 1.8; color: var(--ink); white-space: pre-wrap; }

.learn-mat + .learn-q { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--red-line); }


.learn-decoy { position: absolute; left: -9999px; top: 0; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.learn-decoy input { position: absolute; left: -9999px; width: 1px; height: 1px; }


.learn-typed-in:disabled { color: #6b625c; background: #F7F3F1; -webkit-text-fill-color: #6b625c; opacity: 1; }


.learn-continue.is-disabled,
.learn-continue[disabled] {
  background: #D9D3CF;
  color: #fff;
  border-color: #D9D3CF;
  box-shadow: none;
  pointer-events: none;
  opacity: 1;
}


.drawer-body .swipe-row.q-row .quote:not(.analect) { margin-bottom: 0; }


body.review-mode #msgBtn,
body.review-mode .note-cmts,
body.review-mode [data-notetab="feed"],
body.review-mode #backCourse { display: none !important; }


