@font-face{font-family:'GameTitle';src:url('fonts/title-font-core.woff2') format('woff2');font-display:swap;font-weight:normal;font-style:normal;unicode-range:U+20-7E,U+B7,U+D7,U+2014,U+201C-201D,U+2022,U+2026,U+2192,U+2460-2462,U+3001-3002,U+300A-300D,U+4E00,U+4E09-4E0B,U+4E0D-4E0E,U+4E14,U+4E1A,U+4E1C-4E1D,U+4E24-4E25,U+4E2A,U+4E2D,U+4E30,U+4E34,U+4E3A-4E3B,U+4E3D,U+4E48-4E49,U+4E4B,U+4E4E,U+4E5F-4E60,U+4E70-4E71,U+4E86,U+4E8B-4E8C,U+4E8E-4E8F,U+4E91-4E92,U+4E9B,U+4EA4,U+4EA7-4EA8,U+4EAC,U+4EAE,U+4EBA,U+4EC0,U+4EC5,U+4ECA,U+4ECD-4ECE,U+4ED6,U+4ED8,U+4EE3,U+4EE5,U+4EEA,U+4EEC,U+4EF6-4EF7,U+4EFB,U+4F18,U+4F1A,U+4F20,U+4F2A,U+4F30,U+4F38,U+4F3C,U+4F46,U+4F4D-4F4F,U+4F53,U+4F55,U+4F59,U+4F5C,U+4F60,U+4F7F,U+4F8B,U+4F9B,U+4F9D,U+4FA7,U+4FBF,U+4FD7,U+4FDD,U+4FE1,U+4FEE,U+500D,U+501F,U+503C,U+5047,U+504F,U+505A,U+505C,U+507F,U+50CF,U+50FB,U+5141,U+5143,U+5148-5149,U+514B,U+514D,U+515C,U+5165,U+5168,U+516B-516D,U+5171,U+5173,U+5176-5177,U+517C,U+5185,U+518D,U+5192,U+5199,U+51B2-51B3,U+51B5,U+51C0,U+51C6,U+51CF,U+51E0,U+51ED,U+51FA-51FB,U+51FD,U+5206-5207,U+5212,U+5217,U+5219,U+521B,U+521D,U+5224,U+5229,U+522B,U+5230,U+5236-5237,U+523A-523B,U+524D,U+5267,U+5269-526A,U+5288,U+529B,U+529F-52A1,U+52A8-52AB,U+52B1,U+52FE,U+5300,U+5305,U+5316-5317,U+5323,U+532A,U+5339-533A,U+5341,U+5343,U+5347,U+534A,U+534F,U+5355,U+5357,U+5360-5361,U+536B,U+5370,U+5373,U+5377,U+5386,U+538B,U+539A,U+539F,U+53BB,U+53C2,U+53C9-53CB,U+53CD,U+53D1,U+53D6-53D8,U+53E0,U+53E3-53E6,U+53EA,U+53EF,U+53F2-53F3,U+53F7,U+5404,U+5408,U+540C-540E,U+5411,U+5413,U+5417,U+5426-5427,U+542B-542C,U+542F,U+5438,U+5448,U+544A,U+5458,U+5468,U+547C,U+548C,U+54A8,U+54C1,U+54CD,U+5510,U+552E,U+5546,U+559C,U+5668,U+56DB,U+56DE,U+56E0,U+56E2,U+56F0,U+56F4,U+56FA,U+56FD-56FE,U+5706,U+5728,U+5730,U+573A,U+5747,U+574A,U+574F-5750,U+5757,U+5782,U+578B,U+57CE,U+57DF,U+57FA,U+5835,U+585E,U+586B,U+5883,U+589E,U+58A8,U+58F0,U+5904,U+5907,U+590D,U+5916,U+591A,U+591F,U+5927,U+5929,U+592B,U+592E,U+5931,U+5934,U+5956,U+597D,U+5982,U+59CB,U+59FF,U+5A18,U+5B50,U+5B57-5B58,U+5B66,U+5B81,U+5B83,U+5B89,U+5B8C,U+5B98,U+5B9A,U+5B9D-5B9E,U+5BA2,U+5BA4,U+5BB6,U+5BB9,U+5BBD,U+5BBF,U+5BC6,U+5BCC,U+5BF8-5BF9,U+5BFB-5BFC,U+5C01,U+5C06,U+5C0F,U+5C11,U+5C31,U+5C3A,U+5C3E,U+5C40,U+5C42,U+5C45,U+5C4F,U+5C55,U+5C5E,U+5C71,U+5CB8,U+5D4C,U+5DDE,U+5DE5-5DE7,U+5DEE,U+5DF1-5DF2,U+5DFE,U+5E03,U+5E26-5E27,U+5E2E,U+5E38,U+5E45,U+5E55,U+5E72-5E73,U+5E76,U+5E78,U+5E84,U+5E8F,U+5E94-5E95,U+5E97,U+5E9C,U+5EA6,U+5ED3,U+5EF6,U+5EFA,U+5F00,U+5F0F,U+5F15,U+5F20,U+5F39-5F3A,U+5F52-5F53,U+5F55,U+5F62,U+5F69,U+5F71,U+5F80,U+5F84-5F85,U+5F88,U+5F90,U+5F92,U+5F97,U+5FAA,U+5FAE,U+5FC3,U+5FC5,U+5FD9,U+5FEB,U+6001,U+6025,U+6027,U+603B,U+6062,U+606D,U+606F,U+6089,U+60A8,U+60AC,U+60C5,U+60E9,U+60F3,U+610F,U+611F,U+614E,U+6162,U+6167,U+61BE,U+620F-6211,U+6216,U+6218,U+622A,U+6237,U+6240,U+624B,U+624D,U+6253,U+6263,U+6267,U+6269,U+627E-6280,U+6296,U+6298,U+62A2,U+62A4-62A5,U+62AC,U+62C9,U+62D2,U+62D6,U+62E6,U+62E9,U+62FD,U+6301,U+6307,U+6309,U+6311,U+6321,U+635F,U+6362,U+636E,U+6377,U+637B,U+6389,U+6392,U+63A5,U+63A7-63A8,U+63AA,U+63CF-63D0,U+63D2,U+6447,U+6458,U+649E,U+64AD,U+64CD,U+652F,U+6536,U+6539,U+653E,U+6548,U+6551,U+6563,U+6570,U+6574,U+6587,U+6597,U+65AD,U+65B0,U+65B9,U+65BD,U+65C5,U+65E0,U+65E5,U+65E7,U+65F6,U+660E,U+6613,U+661F,U+6625,U+662F,U+663E,U+6643,U+6655,U+665A,U+666F,U+667A,U+6682,U+6697,U+66B4,U+66F4,U+66FF-6700,U+6709,U+670D,U+6728,U+672A-672C,U+672F,U+6735,U+673A,U+6742,U+6750,U+675F,U+6761,U+6765,U+676D,U+676F,U+677F,U+6781,U+6784,U+679C,U+67D3-67D4,U+67E5,U+6807,U+680F,U+6821,U+6837-6839,U+683C,U+6846,U+6848,U+6863,U+6865,U+68C0,U+68D5,U+6982,U+69FD,U+6A21,U+6A2A,U+6B21-6B23,U+6B32,U+6B62-6B65,U+6B8B,U+6BB5,U+6BCF,U+6BD4-6BD5,U+6BDB,U+6BEB,U+6C14,U+6C34,U+6C38,U+6C42,U+6C89,U+6C9F,U+6CA1,U+6CA7,U+6CB3,U+6CBF,U+6CD5,U+6CE1-6CE2,U+6CE5,U+6CE8,U+6D01,U+6D3B,U+6D41,U+6D45,U+6D4B,U+6D4E-6D4F,U+6D59,U+6D6E,U+6D77,U+6D88,U+6DA6,U+6DA8,U+6DE1,U+6DE4,U+6DEE,U+6DF1,U+6DFB,U+6E05,U+6E1A,U+6E21,U+6E29,U+6E2F,U+6E32,U+6E38,U+6E9C,U+6EA2,U+6ED1,U+6EDA,U+6EDE,U+6EE1,U+6EE4,U+6F14-6F15,U+6F6E,U+6FC0,U+706B,U+7070,U+7075,U+70B9,U+70DF,U+7136,U+719F,U+7236,U+7247-7248,U+7269,U+7279,U+72B6,U+72EC-72ED,U+7387,U+73A9,U+73AF-73B0,U+73CD,U+73E0,U+7406,U+751A,U+751F,U+7528,U+7531,U+753B,U+7545,U+754C,U+7559,U+7565,U+7591,U+75C5,U+767B,U+767D-767E,U+7684,U+76C8,U+76CA,U+76D1,U+76D6-76D8,U+76EE,U+76F4,U+76F8,U+770B,U+771F,U+773C,U+7740,U+77AC,U+77E5,U+77E9,U+77ED,U+7801,U+786E,U+78B0,U+793A,U+795D,U+7981,U+79BB,U+79C0,U+79CD,U+79D2,U+79F0,U+79FB,U+7A0B,U+7A0D-7A0E,U+7A33,U+7A3F,U+7A76,U+7A7A,U+7A81,U+7A84,U+7A97,U+7ACB,U+7AD9,U+7AE0,U+7AEF,U+7B26,U+7B2C,U+7B49,U+7B54,U+7B56,U+7B80,U+7B97,U+7BA1,U+7C38,U+7C7B,U+7C7D,U+7C98,U+7CBE,U+7CCA,U+7CFB,U+7D20,U+7D2F,U+7E41,U+7EA2,U+7EA6-7EA7,U+7EAF,U+7EB3,U+7EB9,U+7EBF,U+7EC3-7EC4,U+7EC6,U+7EC8,U+7ECF,U+7ED1,U+7ED3,U+7ED5,U+7ED8-7ED9,U+7EDC,U+7EDF,U+7EE2-7EE3,U+7EE7,U+7EEB,U+7EED,U+7EF4,U+7EF8,U+7EFF,U+7F13,U+7F16,U+7F18,U+7F29,U+7F34,U+7F51,U+7F5A,U+7F69,U+7F6E,U+7F8E,U+8003,U+8005,U+800C,U+8017,U+804A,U+8054,U+805A,U+80A1,U+80CC,U+80DC,U+80FD,U+8109,U+811A,U+817B,U+81EA,U+81F3-81F4,U+821F,U+822A,U+8231,U+8239,U+8258,U+826F,U+8272-8273,U+827A,U+82B1,U+82CF,U+82E5,U+8303,U+83B7,U+8425,U+843D,U+8457,U+84DD,U+85CF,U+8651,U+865A,U+8679,U+867D,U+878D,U+884C,U+8861,U+8865,U+8868,U+886C,U+88AB,U+88AD,U+88C1,U+88C5,U+88F1,U+8981,U+8986,U+89C1,U+89C4,U+89C6,U+89C8-89C9,U+89D2,U+89E3,U+89E6,U+8A89,U+8BA1,U+8BA4,U+8BA9,U+8BAE-8BB0,U+8BB2,U+8BB8,U+8BBE,U+8BC0-8BC1,U+8BC4,U+8BD5,U+8BDD,U+8BE2,U+8BE5,U+8BED,U+8BEF,U+8BF7,U+8BFB,U+8C03,U+8C10,U+8C22,U+8C28,U+8C61,U+8D1F,U+8D22,U+8D25-8D28,U+8D2D,U+8D2F,U+8D34-8D35,U+8D38-8D39,U+8D3F,U+8D42,U+8D44,U+8D4F,U+8D54,U+8D5A,U+8D70,U+8D77,U+8D85,U+8D8A,U+8DB3,U+8DD1,U+8DDD,U+8DDF,U+8DEF,U+8DF3,U+8EAB,U+8EB2,U+8F68,U+8F6E-8F6F,U+8F74,U+8F7B,U+8F7D,U+8F83,U+8F85,U+8F91,U+8F93,U+8FB9,U+8FBE,U+8FC5,U+8FC7,U+8FD0-8FD1,U+8FD4,U+8FD8-8FD9,U+8FDB-8FDC,U+8FDE-8FDF,U+8FEB,U+8FF0,U+8FF9,U+9000-9003,U+9009,U+900F,U+9012,U+9014,U+901A,U+901F-9020,U+9038,U+903B,U+9047,U+904D,U+9053,U+9057,U+906D-906E,U+907F,U+90A3,U+90E8,U+90FD,U+914D,U+9192,U+91C7,U+91CA,U+91CC-91CD,U+91CF,U+91D1,U+9488,U+949F,U+94AE,U+94B1,U+94F6,U+94FA,U+9500-9501,U+9519,U+952E,U+957F,U+95E8,U+95EA,U+95ED-95EE,U+95F4,U+95F8,U+961F,U+9632,U+9634,U+9636,U+963B,U+9644-9645,U+964D,U+9650,U+9664,U+9669,U+9677,U+968B,U+968F-9690,U+9694,U+96BE,U+96C5,U+96E8,U+96F6,U+96FE,U+9700,U+9707,U+9709,U+9732,U+975E,U+9760,U+9762,U+97F3,U+97F5-97F6,U+9875-9876,U+9879-987B,U+987E-987F,U+9884,U+9891,U+9898,U+989C-989D,U+98A0,U+98CE,U+98D8,U+98DE,U+9970,U+9988,U+9996,U+9A8C,U+9AA4,U+9AD8,U+9C9C,U+9E1F,U+9EC4,U+9ED1,U+9ED8,U+9F20,U+9F50,U+FF01,U+FF08-FF09,U+FF0C,U+FF1A-FF1B,U+FF1F,U+FF5E;}
@font-face{font-family:'GameTitle';src:url('fonts/title-font.woff2') format('woff2');font-display:swap;font-weight:normal;font-style:normal;unicode-range:U+0-1F,U+7F-B6,U+B8-D6,U+D8-2013,U+2015-201B,U+201E-2021,U+2023-2025,U+2027-2191,U+2193-245F,U+2463-3000,U+3003-3009,U+300E-4DFF,U+4E01-4E08,U+4E0C,U+4E0F-4E13,U+4E15-4E19,U+4E1B,U+4E1E-4E23,U+4E26-4E29,U+4E2B-4E2C,U+4E2E-4E2F,U+4E31-4E33,U+4E35-4E39,U+4E3C,U+4E3E-4E47,U+4E4A,U+4E4C-4E4D,U+4E4F-4E5E,U+4E61-4E6F,U+4E72-4E85,U+4E87-4E8A,U+4E8D,U+4E90,U+4E93-4E9A,U+4E9C-4EA3,U+4EA5-4EA6,U+4EA9-4EAB,U+4EAD,U+4EAF-4EB9,U+4EBB-4EBF,U+4EC1-4EC4,U+4EC6-4EC9,U+4ECB-4ECC,U+4ECF-4ED5,U+4ED7,U+4ED9-4EE2,U+4EE4,U+4EE6-4EE9,U+4EEB,U+4EED-4EF5,U+4EF8-4EFA,U+4EFC-4F17,U+4F19,U+4F1B-4F1F,U+4F21-4F29,U+4F2B-4F2F,U+4F31-4F37,U+4F39-4F3B,U+4F3D-4F45,U+4F47-4F4C,U+4F50-4F52,U+4F54,U+4F56-4F58,U+4F5A-4F5B,U+4F5D-4F5F,U+4F61-4F7E,U+4F80-4F8A,U+4F8C-4F9A,U+4F9C,U+4F9E-4FA6,U+4FA8-4FBE,U+4FC0-4FD6,U+4FD8-4FDC,U+4FDE-4FE0,U+4FE2-4FED,U+4FEF-500C,U+500E-501E,U+5020-503B,U+503D-5046,U+5048-504E,U+5050-5059,U+505B,U+505D-507E,U+5080-50CE,U+50D0-50FA,U+50FC-5140,U+5142,U+5144-5147,U+514A,U+514C,U+514E-515B,U+515D-5164,U+5166-5167,U+5169-516A,U+516E-5170,U+5172,U+5174-5175,U+5178-517B,U+517D-5184,U+5186-518C,U+518E-5191,U+5193-5198,U+519A-51B1,U+51B4,U+51B6-51BF,U+51C1-51C5,U+51C7-51CE,U+51D0-51DF,U+51E1-51EC,U+51EE-51F9,U+51FC,U+51FE-5205,U+5208-5211,U+5213-5216,U+5218,U+521A,U+521C,U+521E-5223,U+5225-5228,U+522A,U+522C-522F,U+5231-5235,U+5238-5239,U+523C-524C,U+524E-5266,U+5268,U+526B-5287,U+5289-529A,U+529C-529E,U+52A2-52A7,U+52AC-52B0,U+52B2-52FD,U+52FF,U+5301-5304,U+5306-5315,U+5318-5322,U+5324-5329,U+532B-5338,U+533B-5340,U+5342,U+5344-5346,U+5348-5349,U+534B-534E,U+5350-5354,U+5356,U+5358-535F,U+5362-536A,U+536C-536F,U+5371-5372,U+5374-5376,U+5378-5385,U+5387-538A,U+538C-5399,U+539B-539E,U+53A0-53BA,U+53BC-53C1,U+53C3-53C8,U+53CC,U+53CE-53D0,U+53D2-53D5,U+53D9-53DF,U+53E1-53E2,U+53E7-53E9,U+53EB-53EE,U+53F0-53F1,U+53F4-53F6,U+53F8-5403,U+5405-5407,U+5409-540B,U+540F-5410,U+5412,U+5414-5416,U+5418-5425,U+5428-542A,U+542D-542E,U+5430-5437,U+5439-5447,U+5449,U+544B-5457,U+5459-5467,U+5469-547B,U+547D-548B,U+548D-54A7,U+54A9-54C0,U+54C2-54CC,U+54CE-550F,U+5511-552D,U+552F-5545,U+5547-559B,U+559D-5667,U+5669-56DA,U+56DC-56DD,U+56DF,U+56E1,U+56E3-56EF,U+56F1-56F3,U+56F5-56F9,U+56FB-56FC,U+56FF-5705,U+5707-5727,U+5729-572F,U+5731-5739,U+573B-5746,U+5748-5749,U+574B-574E,U+5751-5756,U+5758-5781,U+5783-578A,U+578C-57CD,U+57CF-57DE,U+57E0-57F9,U+57FB-5834,U+5836-585D,U+585F-586A,U+586C-5882,U+5884-589D,U+589F-58A7,U+58A9-58EF,U+58F1-5903,U+5905-5906,U+5908-590C,U+590E-5915,U+5917-5919,U+591B-591E,U+5920-5926,U+5928,U+592A,U+592C-592D,U+592F-5930,U+5932-5933,U+5935-5955,U+5957-597C,U+597E-5981,U+5983-59CA,U+59CC-59FE,U+5A00-5A17,U+5A19-5B4F,U+5B51-5B56,U+5B59-5B65,U+5B67-5B80,U+5B82,U+5B84-5B88,U+5B8A-5B8B,U+5B8D-5B97,U+5B99,U+5B9B-5B9C,U+5B9F-5BA1,U+5BA3,U+5BA5-5BB5,U+5BB7-5BB8,U+5BBA-5BBC,U+5BBE,U+5BC0-5BC5,U+5BC7-5BCB,U+5BCD-5BF7,U+5BFA,U+5BFD-5C00,U+5C02-5C05,U+5C07-5C0E,U+5C10,U+5C12-5C30,U+5C32-5C39,U+5C3B-5C3D,U+5C3F,U+5C41,U+5C43-5C44,U+5C46-5C4E,U+5C50-5C54,U+5C56-5C5D,U+5C5F-5C70,U+5C72-5CB7,U+5CB9-5D4B,U+5D4D-5DDD,U+5DDF-5DE4,U+5DE8-5DED,U+5DEF-5DF0,U+5DF3-5DFD,U+5DFF-5E02,U+5E04-5E25,U+5E28-5E2D,U+5E2F-5E37,U+5E39-5E44,U+5E46-5E54,U+5E56-5E71,U+5E74-5E75,U+5E77,U+5E79-5E83,U+5E85-5E8E,U+5E90-5E93,U+5E96,U+5E98-5E9B,U+5E9D-5EA5,U+5EA7-5ED2,U+5ED4-5EF5,U+5EF7-5EF9,U+5EFB-5EFF,U+5F01-5F0E,U+5F10-5F14,U+5F16-5F1F,U+5F21-5F38,U+5F3B-5F51,U+5F54,U+5F56-5F61,U+5F63-5F68,U+5F6A-5F70,U+5F72-5F7F,U+5F81-5F83,U+5F86-5F87,U+5F89-5F8F,U+5F91,U+5F93-5F96,U+5F98-5FA9,U+5FAB-5FAD,U+5FAF-5FC2,U+5FC4,U+5FC6-5FD8,U+5FDA-5FEA,U+5FEC-6000,U+6002-6024,U+6026,U+6028-603A,U+603C-6061,U+6063-606C,U+606E,U+6070-6088,U+608A-60A7,U+60A9-60AB,U+60AD-60C4,U+60C6-60E8,U+60EA-60F2,U+60F4-610E,U+6110-611E,U+6120-614D,U+614F-6161,U+6163-6166,U+6168-61BD,U+61BF-620E,U+6212-6215,U+6217,U+6219-6229,U+622B-6236,U+6238-623F,U+6241-624A,U+624C,U+624E-6252,U+6254-6262,U+6264-6266,U+6268,U+626A-627D,U+6281-6295,U+6297,U+6299-62A1,U+62A3,U+62A6-62AB,U+62AD-62C8,U+62CA-62D1,U+62D3-62D5,U+62D7-62E5,U+62E7-62E8,U+62EA-62FC,U+62FE-6300,U+6302-6306,U+6308,U+630A-6310,U+6312-6320,U+6322-635E,U+6360-6361,U+6363-636D,U+636F-6376,U+6378-637A,U+637C-6388,U+638A-6391,U+6393-63A4,U+63A6,U+63A9,U+63AB-63CE,U+63D1,U+63D3-6446,U+6448-6457,U+6459-649D,U+649F-64AC,U+64AE-64CC,U+64CE-652E,U+6530-6535,U+6537-6538,U+653A-653D,U+653F-6547,U+6549-6550,U+6552-6562,U+6564-656F,U+6571-6573,U+6575-6586,U+6588-6596,U+6598-65AC,U+65AE-65AF,U+65B1-65B8,U+65BA-65BC,U+65BE-65C4,U+65C6-65DF,U+65E1-65E4,U+65E6,U+65E8-65F5,U+65F7-660D,U+660F-6612,U+6614-661E,U+6620-6624,U+6626-662E,U+6630-663D,U+663F-6642,U+6644-6654,U+6656-6659,U+665B-666E,U+6670-6679,U+667B-6681,U+6683-6696,U+6698-66B3,U+66B5-66F3,U+66F5-66FE,U+6701-6708,U+670A-670C,U+670E-6727,U+6729,U+672D-672E,U+6730-6734,U+6736-6739,U+673B-6741,U+6743-674F,U+6751-675E,U+6760,U+6762-6764,U+6766-676C,U+676E,U+6770-677E,U+6780,U+6782-6783,U+6785-679B,U+679D-67D2,U+67D5-67E4,U+67E6-6806,U+6808-680E,U+6810-6820,U+6822-6836,U+683A-683B,U+683D-6845,U+6847,U+6849-6862,U+6864,U+6866-68BF,U+68C1-68D4,U+68D6-6981,U+6983-69FC,U+69FE-6A20,U+6A22-6A29,U+6A2B-6B20,U+6B24-6B31,U+6B33-6B61,U+6B66-6B8A,U+6B8C-6BB4,U+6BB6-6BCE,U+6BD0-6BD3,U+6BD6-6BDA,U+6BDC-6BEA,U+6BEC-6C13,U+6C15-6C33,U+6C35-6C37,U+6C39-6C41,U+6C43-6C88,U+6C8A-6C9E,U+6CA0,U+6CA2-6CA6,U+6CA8-6CB2,U+6CB4-6CBE,U+6CC0-6CD4,U+6CD6-6CE0,U+6CE3-6CE4,U+6CE6-6CE7,U+6CE9-6D00,U+6D02-6D3A,U+6D3C-6D40,U+6D42-6D44,U+6D46-6D4A,U+6D4C-6D4D,U+6D50-6D58,U+6D5A-6D6D,U+6D6F-6D76,U+6D78-6D87,U+6D89-6DA5,U+6DA7,U+6DA9-6DE0,U+6DE2-6DE3,U+6DE5-6DED,U+6DEF-6DF0,U+6DF2-6DFA,U+6DFC-6E04,U+6E06-6E19,U+6E1B-6E20,U+6E22-6E28,U+6E2A-6E2E,U+6E30-6E31,U+6E33-6E37,U+6E39-6E9B,U+6E9D-6EA1,U+6EA3-6ED0,U+6ED2-6ED9,U+6EDB-6EDD,U+6EDF-6EE0,U+6EE2-6EE3,U+6EE5-6F13,U+6F16-6F6D,U+6F6F-6FBF,U+6FC1-706A,U+706C-706F,U+7071-7074,U+7076-70B8,U+70BA-70DE,U+70E0-7135,U+7137-719E,U+71A0-7235,U+7237-7246,U+7249-7268,U+726A-7278,U+727A-72B5,U+72B7-72EB,U+72EE-7386,U+7388-73A8,U+73AA-73AE,U+73B1-73CC,U+73CE-73DF,U+73E1-7405,U+7407-7519,U+751B-751E,U+7520-7527,U+7529-7530,U+7532-753A,U+753C-7544,U+7546-754B,U+754D-7558,U+755A-7564,U+7566-7590,U+7592-75C4,U+75C6-767A,U+767C,U+767F-7683,U+7685-76C7,U+76C9,U+76CB-76D0,U+76D2-76D5,U+76D9-76ED,U+76EF-76F3,U+76F5-76F7,U+76F9-770A,U+770C-771E,U+7720-773B,U+773D-773F,U+7741-77AB,U+77AD-77E4,U+77E6-77E8,U+77EA-77EC,U+77EE-7800,U+7802-786D,U+786F-78AF,U+78B1-7939,U+793B-795C,U+795E-7980,U+7982-79BA,U+79BC-79BF,U+79C1-79CC,U+79CE-79D1,U+79D3-79EF,U+79F1-79FA,U+79FC-7A0A,U+7A0C,U+7A0F-7A32,U+7A34-7A3E,U+7A40-7A75,U+7A77-7A79,U+7A7B-7A80,U+7A82-7A83,U+7A85-7A96,U+7A98-7ACA,U+7ACC-7AD8,U+7ADA-7ADF,U+7AE1-7AEE,U+7AF0-7B25,U+7B27-7B2B,U+7B2D-7B48,U+7B4A-7B53,U+7B55,U+7B57-7B7F,U+7B81-7B96,U+7B98-7BA0,U+7BA2-7C37,U+7C39-7C7A,U+7C7C,U+7C7E-7C97,U+7C99-7CBD,U+7CBF-7CC9,U+7CCB-7CFA,U+7CFC-7D1F,U+7D21-7D2E,U+7D30-7E40,U+7E42-7EA1,U+7EA3-7EA5,U+7EA8-7EAE,U+7EB0-7EB2,U+7EB4-7EB8,U+7EBA-7EBE,U+7EC0-7EC2,U+7EC5,U+7EC7,U+7EC9-7ECE,U+7ED0,U+7ED2,U+7ED4,U+7ED6-7ED7,U+7EDA-7EDB,U+7EDD-7EDE,U+7EE0-7EE1,U+7EE4-7EE6,U+7EE8-7EEA,U+7EEC,U+7EEE-7EF3,U+7EF5-7EF7,U+7EF9-7EFE,U+7F00-7F12,U+7F14-7F15,U+7F17,U+7F19-7F28,U+7F2A-7F33,U+7F35-7F50,U+7F52-7F59,U+7F5B-7F68,U+7F6A-7F6D,U+7F6F-7F8D,U+7F8F-8002,U+8004,U+8006-800B,U+800D-8016,U+8018-8049,U+804B-8053,U+8055-8059,U+805B-80A0,U+80A2-80CB,U+80CD-80DB,U+80DD-80FC,U+80FE-8108,U+810A-8119,U+811B-817A,U+817C-81E9,U+81EB-81F2,U+81F5-821E,U+8220-8229,U+822B-8230,U+8232-8238,U+823A-8257,U+8259-826E,U+8270-8271,U+8274-8279,U+827B-82B0,U+82B2-82CE,U+82D0-82E4,U+82E6-8302,U+8304-83B6,U+83B8-8424,U+8426-843C,U+843E-8456,U+8458-84DC,U+84DE-85CE,U+85D0-8650,U+8652-8659,U+865B-8678,U+867A-867C,U+867E-878C,U+878E-884B,U+884D-8860,U+8862-8864,U+8866-8867,U+8869-886B,U+886D-88AA,U+88AC,U+88AE-88C0,U+88C2-88C4,U+88C6-88F0,U+88F2-8980,U+8982-8985,U+8987-89C0,U+89C2-89C3,U+89C5,U+89C7,U+89CA-89D1,U+89D3-89E2,U+89E4-89E5,U+89E7-8A88,U+8A8A-8BA0,U+8BA2-8BA3,U+8BA5-8BA8,U+8BAA-8BAD,U+8BB1,U+8BB3-8BB7,U+8BB9-8BBD,U+8BBF,U+8BC2-8BC3,U+8BC5-8BD4,U+8BD6-8BDC,U+8BDE-8BE1,U+8BE3-8BE4,U+8BE6-8BEC,U+8BEE,U+8BF0-8BF6,U+8BF8-8BFA,U+8BFC-8C02,U+8C04-8C0F,U+8C11-8C21,U+8C23-8C27,U+8C29-8C60,U+8C62-8D1E,U+8D20-8D21,U+8D23-8D24,U+8D29-8D2C,U+8D2E,U+8D30-8D33,U+8D36-8D37,U+8D3A-8D3E,U+8D40-8D41,U+8D43,U+8D45-8D4E,U+8D50-8D53,U+8D55-8D59,U+8D5B-8D6F,U+8D71-8D76,U+8D78-8D84,U+8D86-8D89,U+8D8B-8DB2,U+8DB4-8DD0,U+8DD2-8DDC,U+8DDE,U+8DE0-8DEE,U+8DF0-8DF2,U+8DF4-8EAA,U+8EAC-8EB1,U+8EB3-8F67,U+8F69-8F6D,U+8F70-8F73,U+8F75-8F7A,U+8F7C,U+8F7E-8F82,U+8F84,U+8F86-8F90,U+8F92,U+8F94-8FB8,U+8FBA-8FBD,U+8FBF-8FC4,U+8FC6,U+8FC8-8FCF,U+8FD2-8FD3,U+8FD5-8FD7,U+8FDA,U+8FDD,U+8FE0-8FEA,U+8FEC-8FEF,U+8FF1-8FF8,U+8FFA-8FFF,U+9004-9008,U+900A-900E,U+9010-9011,U+9013,U+9015-9019,U+901B-901E,U+9021-9037,U+9039-903A,U+903C-9046,U+9048-904C,U+904E-9052,U+9054-9056,U+9058-906C,U+906F-907E,U+9080-90A2,U+90A4-90E7,U+90E9-90FC,U+90FE-914C,U+914E-9191,U+9193-91C6,U+91C8-91C9,U+91CB,U+91CE,U+91D0,U+91D2-9487,U+9489-949E,U+94A0-94AD,U+94AF-94B0,U+94B2-94F5,U+94F7-94F9,U+94FB-94FF,U+9502-9518,U+951A-952D,U+952F-957E,U+9580-95E7,U+95E9,U+95EB-95EC,U+95EF-95F3,U+95F5-95F7,U+95F9-961E,U+9620-9631,U+9633,U+9635,U+9637-963A,U+963C-9643,U+9646-964C,U+964E-964F,U+9651-9663,U+9665-9668,U+966A-9676,U+9678-968A,U+968C-968E,U+9691-9693,U+9695-96BD,U+96BF-96C4,U+96C6-96E7,U+96E9-96F5,U+96F7-96FD,U+96FF,U+9701-9706,U+9708,U+970A-9731,U+9733-975D,U+975F,U+9761,U+9763-97F2,U+97F4,U+97F7-9874,U+9877-9878,U+987C-987D,U+9880-9883,U+9885-9890,U+9892-9897,U+9899-989B,U+989E-989F,U+98A1-98CD,U+98CF-98D7,U+98D9-98DD,U+98DF-996F,U+9971-9987,U+9989-9995,U+9997-9A8B,U+9A8D-9AA3,U+9AA5-9AD7,U+9AD9-9C9B,U+9C9D-9E1E,U+9E20-9EC3,U+9EC5-9ED0,U+9ED2-9ED7,U+9ED9-9F1F,U+9F21-9F4F,U+9F51-FF00,U+FF02-FF07,U+FF0A-FF0B,U+FF0D-FF19,U+FF1C-FF1E,U+FF20-FF5D,U+FF5F-10FFFF;}
@font-face{font-family:'GameBody';src:url('fonts/body-font-core.woff2') format('woff2');font-display:swap;font-weight:normal;font-style:normal;unicode-range:U+20-7E,U+B7,U+D7,U+2014,U+201C-201D,U+2026,U+2192,U+2460-2462,U+3001-3002,U+300A-300D,U+4E00,U+4E09-4E0B,U+4E0D-4E0E,U+4E14,U+4E1A,U+4E1C-4E1D,U+4E24-4E25,U+4E2A,U+4E2D,U+4E30,U+4E34,U+4E3A-4E3B,U+4E3D,U+4E48-4E49,U+4E4B,U+4E4E,U+4E5F-4E60,U+4E70-4E71,U+4E86,U+4E8B-4E8C,U+4E8E-4E8F,U+4E91-4E92,U+4E9B,U+4EA4,U+4EA7-4EA8,U+4EAC,U+4EAE,U+4EBA,U+4EC0,U+4EC5,U+4ECA,U+4ECD-4ECE,U+4ED6,U+4ED8,U+4EE3,U+4EE5,U+4EEA,U+4EEC,U+4EF6-4EF7,U+4EFB,U+4F18,U+4F1A,U+4F20,U+4F2A,U+4F30,U+4F38,U+4F3C,U+4F46,U+4F4D-4F4F,U+4F53,U+4F55,U+4F59,U+4F5C,U+4F60,U+4F7F,U+4F8B,U+4F9B,U+4F9D,U+4FA7,U+4FBF,U+4FD7,U+4FDD,U+4FE1,U+4FEE,U+500D,U+501F,U+503C,U+5047,U+504F,U+505A,U+505C,U+507F,U+50CF,U+50FB,U+5141,U+5143,U+5148-5149,U+514B,U+514D,U+515C,U+5165,U+5168,U+516B-516D,U+5171,U+5173,U+5176-5177,U+517C,U+5185,U+518D,U+5192,U+5199,U+51B2-51B3,U+51B5,U+51C0,U+51C6,U+51CF,U+51E0,U+51ED,U+51FA-51FB,U+51FD,U+5206-5207,U+5212,U+5217,U+5219,U+521B,U+521D,U+5224,U+5229,U+522B,U+5230,U+5236-5237,U+523A-523B,U+524D,U+5267,U+5269-526A,U+5288,U+529B,U+529F-52A1,U+52A8-52AB,U+52B1,U+52FE,U+5300,U+5305,U+5316-5317,U+5323,U+532A,U+5339-533A,U+5341,U+5343,U+5347,U+534A,U+534F,U+5355,U+5357,U+5360-5361,U+536B,U+5370,U+5373,U+5377,U+5386,U+538B,U+539A,U+539F,U+53BB,U+53C2,U+53C9-53CB,U+53CD,U+53D1,U+53D6-53D8,U+53E0,U+53E3-53E6,U+53EA,U+53EF,U+53F2-53F3,U+53F7,U+5404,U+5408,U+540C-540E,U+5411,U+5413,U+5417,U+5426-5427,U+542B-542C,U+542F,U+5438,U+5448,U+544A,U+5458,U+5468,U+547C,U+548C,U+54A8,U+54C1,U+54CD,U+5510,U+552E,U+5546,U+559C,U+5668,U+56DB,U+56DE,U+56E0,U+56E2,U+56F0,U+56F4,U+56FA,U+56FD-56FE,U+5706,U+5728,U+5730,U+573A,U+5747,U+574A,U+574F-5750,U+5757,U+5782,U+578B,U+57CE,U+57DF,U+57FA,U+5835,U+585E,U+586B,U+5883,U+589E,U+58A8,U+58F0,U+5904,U+5907,U+590D,U+5916,U+591A,U+591F,U+5927,U+5929,U+592B,U+592E,U+5931,U+5934,U+5956,U+597D,U+5982,U+59CB,U+59FF,U+5A18,U+5B50,U+5B57-5B58,U+5B66,U+5B81,U+5B83,U+5B89,U+5B8C,U+5B98,U+5B9A,U+5B9D-5B9E,U+5BA2,U+5BA4,U+5BB6,U+5BB9,U+5BBD,U+5BBF,U+5BC6,U+5BCC,U+5BF8-5BF9,U+5BFB-5BFC,U+5C01,U+5C06,U+5C0F,U+5C11,U+5C31,U+5C3A,U+5C3E,U+5C40,U+5C42,U+5C45,U+5C4F,U+5C55,U+5C5E,U+5C71,U+5CB8,U+5D4C,U+5DDE,U+5DE5-5DE7,U+5DEE,U+5DF1-5DF2,U+5DFE,U+5E03,U+5E26-5E27,U+5E2E,U+5E38,U+5E45,U+5E55,U+5E72-5E73,U+5E76,U+5E78,U+5E84,U+5E8F,U+5E94-5E95,U+5E97,U+5E9C,U+5EA6,U+5ED3,U+5EF6,U+5EFA,U+5F00,U+5F0F,U+5F15,U+5F20,U+5F39-5F3A,U+5F52-5F53,U+5F55,U+5F62,U+5F69,U+5F71,U+5F80,U+5F84-5F85,U+5F88,U+5F90,U+5F92,U+5F97,U+5FAA,U+5FAE,U+5FC3,U+5FC5,U+5FD9,U+5FEB,U+6001,U+6025,U+6027,U+603B,U+6062,U+606D,U+606F,U+6089,U+60A8,U+60AC,U+60C5,U+60E9,U+60F3,U+610F,U+611F,U+614E,U+6162,U+6167,U+61BE,U+620F-6211,U+6216,U+6218,U+622A,U+6237,U+6240,U+624B,U+624D,U+6253,U+6263,U+6267,U+6269,U+627E-6280,U+6296,U+6298,U+62A2,U+62A4-62A5,U+62AC,U+62C9,U+62D2,U+62D6,U+62E6,U+62E9,U+62FD,U+6301,U+6307,U+6309,U+6311,U+6321,U+635F,U+6362,U+636E,U+6377,U+637B,U+6389,U+6392,U+63A5,U+63A7-63A8,U+63AA,U+63CF-63D0,U+63D2,U+6447,U+6458,U+649E,U+64AD,U+64CD,U+652F,U+6536,U+6539,U+653E,U+6548,U+6551,U+6563,U+6570,U+6574,U+6587,U+6597,U+65AD,U+65B0,U+65B9,U+65BD,U+65C5,U+65E0,U+65E5,U+65E7,U+65F6,U+660E,U+6613,U+661F,U+6625,U+662F,U+663E,U+6643,U+6655,U+665A,U+666F,U+667A,U+6682,U+6697,U+66B4,U+66F4,U+66FF-6700,U+6709,U+670D,U+6728,U+672A-672C,U+672F,U+6735,U+673A,U+6742,U+6750,U+675F,U+6761,U+6765,U+676D,U+676F,U+677F,U+6781,U+6784,U+679C,U+67D3-67D4,U+67E5,U+6807,U+680F,U+6821,U+6837-6839,U+683C,U+6846,U+6848,U+6863,U+6865,U+68C0,U+68D5,U+6982,U+69FD,U+6A21,U+6A2A,U+6B21-6B23,U+6B32,U+6B62-6B65,U+6B8B,U+6BB5,U+6BCF,U+6BD4-6BD5,U+6BDB,U+6BEB,U+6C14,U+6C34,U+6C38,U+6C42,U+6C89,U+6C9F,U+6CA1,U+6CA7,U+6CB3,U+6CBF,U+6CD5,U+6CE1-6CE2,U+6CE5,U+6CE8,U+6D01,U+6D3B,U+6D41,U+6D45,U+6D4B,U+6D4E-6D4F,U+6D59,U+6D6E,U+6D77,U+6D88,U+6DA6,U+6DA8,U+6DE1,U+6DE4,U+6DEE,U+6DF1,U+6DFB,U+6E05,U+6E1A,U+6E21,U+6E29,U+6E2F,U+6E32,U+6E38,U+6E9C,U+6EA2,U+6ED1,U+6EDA,U+6EDE,U+6EE1,U+6EE4,U+6F14-6F15,U+6F6E,U+6FC0,U+706B,U+7070,U+7075,U+70B9,U+70DF,U+7136,U+719F,U+7236,U+7247-7248,U+7269,U+7279,U+72B6,U+72EC-72ED,U+7387,U+73A9,U+73AF-73B0,U+73CD,U+73E0,U+7406,U+751A,U+751F,U+7528,U+7531,U+753B,U+7545,U+754C,U+7559,U+7565,U+7591,U+75C5,U+767B,U+767D-767E,U+7684,U+76C8,U+76CA,U+76D1,U+76D6-76D8,U+76EE,U+76F4,U+76F8,U+770B,U+771F,U+773C,U+7740,U+77AC,U+77E5,U+77E9,U+77ED,U+7801,U+786E,U+78B0,U+793A,U+795D,U+7981,U+79BB,U+79C0,U+79CD,U+79D2,U+79F0,U+79FB,U+7A0B,U+7A0D-7A0E,U+7A33,U+7A3F,U+7A76,U+7A7A,U+7A81,U+7A84,U+7A97,U+7ACB,U+7AD9,U+7AE0,U+7AEF,U+7B26,U+7B2C,U+7B49,U+7B54,U+7B56,U+7B80,U+7B97,U+7BA1,U+7C38,U+7C7B,U+7C7D,U+7C98,U+7CBE,U+7CCA,U+7CFB,U+7D20,U+7D2F,U+7E41,U+7EA2,U+7EA6-7EA7,U+7EAF,U+7EB3,U+7EB9,U+7EBF,U+7EC3-7EC4,U+7EC6,U+7EC8,U+7ECF,U+7ED1,U+7ED3,U+7ED5,U+7ED8-7ED9,U+7EDC,U+7EDF,U+7EE2-7EE3,U+7EE7,U+7EEB,U+7EED,U+7EF4,U+7EF8,U+7EFF,U+7F13,U+7F16,U+7F18,U+7F29,U+7F34,U+7F51,U+7F5A,U+7F69,U+7F6E,U+7F8E,U+8003,U+8005,U+800C,U+8017,U+804A,U+8054,U+805A,U+80A1,U+80CC,U+80DC,U+80FD,U+8109,U+811A,U+817B,U+81EA,U+81F3-81F4,U+821F,U+822A,U+8231,U+8239,U+8258,U+826F,U+8272-8273,U+827A,U+82B1,U+82CF,U+82E5,U+8303,U+83B7,U+8425,U+843D,U+8457,U+84DD,U+85CF,U+8651,U+865A,U+8679,U+867D,U+878D,U+884C,U+8861,U+8865,U+8868,U+886C,U+88AB,U+88AD,U+88C1,U+88C5,U+88F1,U+8981,U+8986,U+89C1,U+89C4,U+89C6,U+89C8-89C9,U+89D2,U+89E3,U+89E6,U+8A89,U+8BA1,U+8BA4,U+8BA9,U+8BAE-8BB0,U+8BB2,U+8BB8,U+8BBE,U+8BC0-8BC1,U+8BC4,U+8BD5,U+8BDD,U+8BE2,U+8BE5,U+8BED,U+8BEF,U+8BF7,U+8BFB,U+8C03,U+8C10,U+8C22,U+8C28,U+8C61,U+8D1F,U+8D22,U+8D25-8D28,U+8D2D,U+8D2F,U+8D34-8D35,U+8D38-8D39,U+8D3F,U+8D42,U+8D44,U+8D4F,U+8D54,U+8D5A,U+8D70,U+8D77,U+8D85,U+8D8A,U+8DB3,U+8DD1,U+8DDD,U+8DDF,U+8DEF,U+8DF3,U+8EAB,U+8EB2,U+8F68,U+8F6E-8F6F,U+8F74,U+8F7B,U+8F7D,U+8F83,U+8F85,U+8F91,U+8F93,U+8FB9,U+8FBE,U+8FC5,U+8FC7,U+8FD0-8FD1,U+8FD4,U+8FD8-8FD9,U+8FDB-8FDC,U+8FDE-8FDF,U+8FEB,U+8FF0,U+8FF9,U+9000-9003,U+9009,U+900F,U+9012,U+9014,U+901A,U+901F-9020,U+9038,U+903B,U+9047,U+904D,U+9053,U+9057,U+906D-906E,U+907F,U+90A3,U+90E8,U+90FD,U+914D,U+9192,U+91C7,U+91CA,U+91CC-91CD,U+91CF,U+91D1,U+9488,U+949F,U+94AE,U+94B1,U+94F6,U+94FA,U+9500-9501,U+9519,U+952E,U+957F,U+95E8,U+95EA,U+95ED-95EE,U+95F4,U+95F8,U+961F,U+9632,U+9634,U+9636,U+963B,U+9644-9645,U+964D,U+9650,U+9664,U+9669,U+9677,U+968B,U+968F-9690,U+9694,U+96BE,U+96C5,U+96E8,U+96F6,U+96FE,U+9700,U+9707,U+9709,U+9732,U+975E,U+9760,U+9762,U+97F3,U+97F5-97F6,U+9875-9876,U+9879-987B,U+987E-987F,U+9884,U+9891,U+9898,U+989C-989D,U+98A0,U+98CE,U+98D8,U+98DE,U+9970,U+9988,U+9996,U+9A8C,U+9AA4,U+9AD8,U+9C9C,U+9E1F,U+9EC4,U+9ED1,U+9ED8,U+9F20,U+9F50,U+FF01,U+FF08-FF09,U+FF0C,U+FF1A-FF1B,U+FF1F,U+FF5E;}
@font-face{font-family:'GameBody';src:url('fonts/body-font.woff2') format('woff2');font-display:swap;font-weight:normal;font-style:normal;unicode-range:U+0-1F,U+7F-B6,U+B8-D6,U+D8-2013,U+2015-201B,U+201E-2025,U+2027-2191,U+2193-245F,U+2463-3000,U+3003-3009,U+300E-4DFF,U+4E01-4E08,U+4E0C,U+4E0F-4E13,U+4E15-4E19,U+4E1B,U+4E1E-4E23,U+4E26-4E29,U+4E2B-4E2C,U+4E2E-4E2F,U+4E31-4E33,U+4E35-4E39,U+4E3C,U+4E3E-4E47,U+4E4A,U+4E4C-4E4D,U+4E4F-4E5E,U+4E61-4E6F,U+4E72-4E85,U+4E87-4E8A,U+4E8D,U+4E90,U+4E93-4E9A,U+4E9C-4EA3,U+4EA5-4EA6,U+4EA9-4EAB,U+4EAD,U+4EAF-4EB9,U+4EBB-4EBF,U+4EC1-4EC4,U+4EC6-4EC9,U+4ECB-4ECC,U+4ECF-4ED5,U+4ED7,U+4ED9-4EE2,U+4EE4,U+4EE6-4EE9,U+4EEB,U+4EED-4EF5,U+4EF8-4EFA,U+4EFC-4F17,U+4F19,U+4F1B-4F1F,U+4F21-4F29,U+4F2B-4F2F,U+4F31-4F37,U+4F39-4F3B,U+4F3D-4F45,U+4F47-4F4C,U+4F50-4F52,U+4F54,U+4F56-4F58,U+4F5A-4F5B,U+4F5D-4F5F,U+4F61-4F7E,U+4F80-4F8A,U+4F8C-4F9A,U+4F9C,U+4F9E-4FA6,U+4FA8-4FBE,U+4FC0-4FD6,U+4FD8-4FDC,U+4FDE-4FE0,U+4FE2-4FED,U+4FEF-500C,U+500E-501E,U+5020-503B,U+503D-5046,U+5048-504E,U+5050-5059,U+505B,U+505D-507E,U+5080-50CE,U+50D0-50FA,U+50FC-5140,U+5142,U+5144-5147,U+514A,U+514C,U+514E-515B,U+515D-5164,U+5166-5167,U+5169-516A,U+516E-5170,U+5172,U+5174-5175,U+5178-517B,U+517D-5184,U+5186-518C,U+518E-5191,U+5193-5198,U+519A-51B1,U+51B4,U+51B6-51BF,U+51C1-51C5,U+51C7-51CE,U+51D0-51DF,U+51E1-51EC,U+51EE-51F9,U+51FC,U+51FE-5205,U+5208-5211,U+5213-5216,U+5218,U+521A,U+521C,U+521E-5223,U+5225-5228,U+522A,U+522C-522F,U+5231-5235,U+5238-5239,U+523C-524C,U+524E-5266,U+5268,U+526B-5287,U+5289-529A,U+529C-529E,U+52A2-52A7,U+52AC-52B0,U+52B2-52FD,U+52FF,U+5301-5304,U+5306-5315,U+5318-5322,U+5324-5329,U+532B-5338,U+533B-5340,U+5342,U+5344-5346,U+5348-5349,U+534B-534E,U+5350-5354,U+5356,U+5358-535F,U+5362-536A,U+536C-536F,U+5371-5372,U+5374-5376,U+5378-5385,U+5387-538A,U+538C-5399,U+539B-539E,U+53A0-53BA,U+53BC-53C1,U+53C3-53C8,U+53CC,U+53CE-53D0,U+53D2-53D5,U+53D9-53DF,U+53E1-53E2,U+53E7-53E9,U+53EB-53EE,U+53F0-53F1,U+53F4-53F6,U+53F8-5403,U+5405-5407,U+5409-540B,U+540F-5410,U+5412,U+5414-5416,U+5418-5425,U+5428-542A,U+542D-542E,U+5430-5437,U+5439-5447,U+5449,U+544B-5457,U+5459-5467,U+5469-547B,U+547D-548B,U+548D-54A7,U+54A9-54C0,U+54C2-54CC,U+54CE-550F,U+5511-552D,U+552F-5545,U+5547-559B,U+559D-5667,U+5669-56DA,U+56DC-56DD,U+56DF,U+56E1,U+56E3-56EF,U+56F1-56F3,U+56F5-56F9,U+56FB-56FC,U+56FF-5705,U+5707-5727,U+5729-572F,U+5731-5739,U+573B-5746,U+5748-5749,U+574B-574E,U+5751-5756,U+5758-5781,U+5783-578A,U+578C-57CD,U+57CF-57DE,U+57E0-57F9,U+57FB-5834,U+5836-585D,U+585F-586A,U+586C-5882,U+5884-589D,U+589F-58A7,U+58A9-58EF,U+58F1-5903,U+5905-5906,U+5908-590C,U+590E-5915,U+5917-5919,U+591B-591E,U+5920-5926,U+5928,U+592A,U+592C-592D,U+592F-5930,U+5932-5933,U+5935-5955,U+5957-597C,U+597E-5981,U+5983-59CA,U+59CC-59FE,U+5A00-5A17,U+5A19-5B4F,U+5B51-5B56,U+5B59-5B65,U+5B67-5B80,U+5B82,U+5B84-5B88,U+5B8A-5B8B,U+5B8D-5B97,U+5B99,U+5B9B-5B9C,U+5B9F-5BA1,U+5BA3,U+5BA5-5BB5,U+5BB7-5BB8,U+5BBA-5BBC,U+5BBE,U+5BC0-5BC5,U+5BC7-5BCB,U+5BCD-5BF7,U+5BFA,U+5BFD-5C00,U+5C02-5C05,U+5C07-5C0E,U+5C10,U+5C12-5C30,U+5C32-5C39,U+5C3B-5C3D,U+5C3F,U+5C41,U+5C43-5C44,U+5C46-5C4E,U+5C50-5C54,U+5C56-5C5D,U+5C5F-5C70,U+5C72-5CB7,U+5CB9-5D4B,U+5D4D-5DDD,U+5DDF-5DE4,U+5DE8-5DED,U+5DEF-5DF0,U+5DF3-5DFD,U+5DFF-5E02,U+5E04-5E25,U+5E28-5E2D,U+5E2F-5E37,U+5E39-5E44,U+5E46-5E54,U+5E56-5E71,U+5E74-5E75,U+5E77,U+5E79-5E83,U+5E85-5E8E,U+5E90-5E93,U+5E96,U+5E98-5E9B,U+5E9D-5EA5,U+5EA7-5ED2,U+5ED4-5EF5,U+5EF7-5EF9,U+5EFB-5EFF,U+5F01-5F0E,U+5F10-5F14,U+5F16-5F1F,U+5F21-5F38,U+5F3B-5F51,U+5F54,U+5F56-5F61,U+5F63-5F68,U+5F6A-5F70,U+5F72-5F7F,U+5F81-5F83,U+5F86-5F87,U+5F89-5F8F,U+5F91,U+5F93-5F96,U+5F98-5FA9,U+5FAB-5FAD,U+5FAF-5FC2,U+5FC4,U+5FC6-5FD8,U+5FDA-5FEA,U+5FEC-6000,U+6002-6024,U+6026,U+6028-603A,U+603C-6061,U+6063-606C,U+606E,U+6070-6088,U+608A-60A7,U+60A9-60AB,U+60AD-60C4,U+60C6-60E8,U+60EA-60F2,U+60F4-610E,U+6110-611E,U+6120-614D,U+614F-6161,U+6163-6166,U+6168-61BD,U+61BF-620E,U+6212-6215,U+6217,U+6219-6229,U+622B-6236,U+6238-623F,U+6241-624A,U+624C,U+624E-6252,U+6254-6262,U+6264-6266,U+6268,U+626A-627D,U+6281-6295,U+6297,U+6299-62A1,U+62A3,U+62A6-62AB,U+62AD-62C8,U+62CA-62D1,U+62D3-62D5,U+62D7-62E5,U+62E7-62E8,U+62EA-62FC,U+62FE-6300,U+6302-6306,U+6308,U+630A-6310,U+6312-6320,U+6322-635E,U+6360-6361,U+6363-636D,U+636F-6376,U+6378-637A,U+637C-6388,U+638A-6391,U+6393-63A4,U+63A6,U+63A9,U+63AB-63CE,U+63D1,U+63D3-6446,U+6448-6457,U+6459-649D,U+649F-64AC,U+64AE-64CC,U+64CE-652E,U+6530-6535,U+6537-6538,U+653A-653D,U+653F-6547,U+6549-6550,U+6552-6562,U+6564-656F,U+6571-6573,U+6575-6586,U+6588-6596,U+6598-65AC,U+65AE-65AF,U+65B1-65B8,U+65BA-65BC,U+65BE-65C4,U+65C6-65DF,U+65E1-65E4,U+65E6,U+65E8-65F5,U+65F7-660D,U+660F-6612,U+6614-661E,U+6620-6624,U+6626-662E,U+6630-663D,U+663F-6642,U+6644-6654,U+6656-6659,U+665B-666E,U+6670-6679,U+667B-6681,U+6683-6696,U+6698-66B3,U+66B5-66F3,U+66F5-66FE,U+6701-6708,U+670A-670C,U+670E-6727,U+6729,U+672D-672E,U+6730-6734,U+6736-6739,U+673B-6741,U+6743-674F,U+6751-675E,U+6760,U+6762-6764,U+6766-676C,U+676E,U+6770-677E,U+6780,U+6782-6783,U+6785-679B,U+679D-67D2,U+67D5-67E4,U+67E6-6806,U+6808-680E,U+6810-6820,U+6822-6836,U+683A-683B,U+683D-6845,U+6847,U+6849-6862,U+6864,U+6866-68BF,U+68C1-68D4,U+68D6-6981,U+6983-69FC,U+69FE-6A20,U+6A22-6A29,U+6A2B-6B20,U+6B24-6B31,U+6B33-6B61,U+6B66-6B8A,U+6B8C-6BB4,U+6BB6-6BCE,U+6BD0-6BD3,U+6BD6-6BDA,U+6BDC-6BEA,U+6BEC-6C13,U+6C15-6C33,U+6C35-6C37,U+6C39-6C41,U+6C43-6C88,U+6C8A-6C9E,U+6CA0,U+6CA2-6CA6,U+6CA8-6CB2,U+6CB4-6CBE,U+6CC0-6CD4,U+6CD6-6CE0,U+6CE3-6CE4,U+6CE6-6CE7,U+6CE9-6D00,U+6D02-6D3A,U+6D3C-6D40,U+6D42-6D44,U+6D46-6D4A,U+6D4C-6D4D,U+6D50-6D58,U+6D5A-6D6D,U+6D6F-6D76,U+6D78-6D87,U+6D89-6DA5,U+6DA7,U+6DA9-6DE0,U+6DE2-6DE3,U+6DE5-6DED,U+6DEF-6DF0,U+6DF2-6DFA,U+6DFC-6E04,U+6E06-6E19,U+6E1B-6E20,U+6E22-6E28,U+6E2A-6E2E,U+6E30-6E31,U+6E33-6E37,U+6E39-6E9B,U+6E9D-6EA1,U+6EA3-6ED0,U+6ED2-6ED9,U+6EDB-6EDD,U+6EDF-6EE0,U+6EE2-6EE3,U+6EE5-6F13,U+6F16-6F6D,U+6F6F-6FBF,U+6FC1-706A,U+706C-706F,U+7071-7074,U+7076-70B8,U+70BA-70DE,U+70E0-7135,U+7137-719E,U+71A0-7235,U+7237-7246,U+7249-7268,U+726A-7278,U+727A-72B5,U+72B7-72EB,U+72EE-7386,U+7388-73A8,U+73AA-73AE,U+73B1-73CC,U+73CE-73DF,U+73E1-7405,U+7407-7519,U+751B-751E,U+7520-7527,U+7529-7530,U+7532-753A,U+753C-7544,U+7546-754B,U+754D-7558,U+755A-7564,U+7566-7590,U+7592-75C4,U+75C6-767A,U+767C,U+767F-7683,U+7685-76C7,U+76C9,U+76CB-76D0,U+76D2-76D5,U+76D9-76ED,U+76EF-76F3,U+76F5-76F7,U+76F9-770A,U+770C-771E,U+7720-773B,U+773D-773F,U+7741-77AB,U+77AD-77E4,U+77E6-77E8,U+77EA-77EC,U+77EE-7800,U+7802-786D,U+786F-78AF,U+78B1-7939,U+793B-795C,U+795E-7980,U+7982-79BA,U+79BC-79BF,U+79C1-79CC,U+79CE-79D1,U+79D3-79EF,U+79F1-79FA,U+79FC-7A0A,U+7A0C,U+7A0F-7A32,U+7A34-7A3E,U+7A40-7A75,U+7A77-7A79,U+7A7B-7A80,U+7A82-7A83,U+7A85-7A96,U+7A98-7ACA,U+7ACC-7AD8,U+7ADA-7ADF,U+7AE1-7AEE,U+7AF0-7B25,U+7B27-7B2B,U+7B2D-7B48,U+7B4A-7B53,U+7B55,U+7B57-7B7F,U+7B81-7B96,U+7B98-7BA0,U+7BA2-7C37,U+7C39-7C7A,U+7C7C,U+7C7E-7C97,U+7C99-7CBD,U+7CBF-7CC9,U+7CCB-7CFA,U+7CFC-7D1F,U+7D21-7D2E,U+7D30-7E40,U+7E42-7EA1,U+7EA3-7EA5,U+7EA8-7EAE,U+7EB0-7EB2,U+7EB4-7EB8,U+7EBA-7EBE,U+7EC0-7EC2,U+7EC5,U+7EC7,U+7EC9-7ECE,U+7ED0,U+7ED2,U+7ED4,U+7ED6-7ED7,U+7EDA-7EDB,U+7EDD-7EDE,U+7EE0-7EE1,U+7EE4-7EE6,U+7EE8-7EEA,U+7EEC,U+7EEE-7EF3,U+7EF5-7EF7,U+7EF9-7EFE,U+7F00-7F12,U+7F14-7F15,U+7F17,U+7F19-7F28,U+7F2A-7F33,U+7F35-7F50,U+7F52-7F59,U+7F5B-7F68,U+7F6A-7F6D,U+7F6F-7F8D,U+7F8F-8002,U+8004,U+8006-800B,U+800D-8016,U+8018-8049,U+804B-8053,U+8055-8059,U+805B-80A0,U+80A2-80CB,U+80CD-80DB,U+80DD-80FC,U+80FE-8108,U+810A-8119,U+811B-817A,U+817C-81E9,U+81EB-81F2,U+81F5-821E,U+8220-8229,U+822B-8230,U+8232-8238,U+823A-8257,U+8259-826E,U+8270-8271,U+8274-8279,U+827B-82B0,U+82B2-82CE,U+82D0-82E4,U+82E6-8302,U+8304-83B6,U+83B8-8424,U+8426-843C,U+843E-8456,U+8458-84DC,U+84DE-85CE,U+85D0-8650,U+8652-8659,U+865B-8678,U+867A-867C,U+867E-878C,U+878E-884B,U+884D-8860,U+8862-8864,U+8866-8867,U+8869-886B,U+886D-88AA,U+88AC,U+88AE-88C0,U+88C2-88C4,U+88C6-88F0,U+88F2-8980,U+8982-8985,U+8987-89C0,U+89C2-89C3,U+89C5,U+89C7,U+89CA-89D1,U+89D3-89E2,U+89E4-89E5,U+89E7-8A88,U+8A8A-8BA0,U+8BA2-8BA3,U+8BA5-8BA8,U+8BAA-8BAD,U+8BB1,U+8BB3-8BB7,U+8BB9-8BBD,U+8BBF,U+8BC2-8BC3,U+8BC5-8BD4,U+8BD6-8BDC,U+8BDE-8BE1,U+8BE3-8BE4,U+8BE6-8BEC,U+8BEE,U+8BF0-8BF6,U+8BF8-8BFA,U+8BFC-8C02,U+8C04-8C0F,U+8C11-8C21,U+8C23-8C27,U+8C29-8C60,U+8C62-8D1E,U+8D20-8D21,U+8D23-8D24,U+8D29-8D2C,U+8D2E,U+8D30-8D33,U+8D36-8D37,U+8D3A-8D3E,U+8D40-8D41,U+8D43,U+8D45-8D4E,U+8D50-8D53,U+8D55-8D59,U+8D5B-8D6F,U+8D71-8D76,U+8D78-8D84,U+8D86-8D89,U+8D8B-8DB2,U+8DB4-8DD0,U+8DD2-8DDC,U+8DDE,U+8DE0-8DEE,U+8DF0-8DF2,U+8DF4-8EAA,U+8EAC-8EB1,U+8EB3-8F67,U+8F69-8F6D,U+8F70-8F73,U+8F75-8F7A,U+8F7C,U+8F7E-8F82,U+8F84,U+8F86-8F90,U+8F92,U+8F94-8FB8,U+8FBA-8FBD,U+8FBF-8FC4,U+8FC6,U+8FC8-8FCF,U+8FD2-8FD3,U+8FD5-8FD7,U+8FDA,U+8FDD,U+8FE0-8FEA,U+8FEC-8FEF,U+8FF1-8FF8,U+8FFA-8FFF,U+9004-9008,U+900A-900E,U+9010-9011,U+9013,U+9015-9019,U+901B-901E,U+9021-9037,U+9039-903A,U+903C-9046,U+9048-904C,U+904E-9052,U+9054-9056,U+9058-906C,U+906F-907E,U+9080-90A2,U+90A4-90E7,U+90E9-90FC,U+90FE-914C,U+914E-9191,U+9193-91C6,U+91C8-91C9,U+91CB,U+91CE,U+91D0,U+91D2-9487,U+9489-949E,U+94A0-94AD,U+94AF-94B0,U+94B2-94F5,U+94F7-94F9,U+94FB-94FF,U+9502-9518,U+951A-952D,U+952F-957E,U+9580-95E7,U+95E9,U+95EB-95EC,U+95EF-95F3,U+95F5-95F7,U+95F9-961E,U+9620-9631,U+9633,U+9635,U+9637-963A,U+963C-9643,U+9646-964C,U+964E-964F,U+9651-9663,U+9665-9668,U+966A-9676,U+9678-968A,U+968C-968E,U+9691-9693,U+9695-96BD,U+96BF-96C4,U+96C6-96E7,U+96E9-96F5,U+96F7-96FD,U+96FF,U+9701-9706,U+9708,U+970A-9731,U+9733-975D,U+975F,U+9761,U+9763-97F2,U+97F4,U+97F7-9874,U+9877-9878,U+987C-987D,U+9880-9883,U+9885-9890,U+9892-9897,U+9899-989B,U+989E-989F,U+98A1-98CD,U+98CF-98D7,U+98D9-98DD,U+98DF-996F,U+9971-9987,U+9989-9995,U+9997-9A8B,U+9A8D-9AA3,U+9AA5-9AD7,U+9AD9-9C9B,U+9C9D-9E1E,U+9E20-9EC3,U+9EC5-9ED0,U+9ED2-9ED7,U+9ED9-9F1F,U+9F21-9F4F,U+9F51-FF00,U+FF02-FF07,U+FF0A-FF0B,U+FF0D-FF19,U+FF1C-FF1E,U+FF20-FF5D,U+FF5F-10FFFF;}
.ship-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}

.ship {
    width: 100%;
    max-width: 400px;
}

.ship-hull {
    background: linear-gradient(45deg, rgba(139, 69, 19, 0.15), rgba(160, 82, 45, 0.25));
    border-radius: 20px 20px 5px 5px;
    padding: 20px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
    position: relative;
    min-height: 360px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.cargo-hold {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    background: rgba(255, 255, 255, 0.45);
    border-radius: 12px;
    padding: 12px;
}

.cargo-slot {
    background: rgba(255, 255, 255, 0.55);
    border: 2px dashed rgba(255, 255, 255, 0.4);
    border-radius: 8px;
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.cargo-slot.drag-over {
    background: rgba(46, 204, 113, 0.3);
    border-color: #2ecc71;
}

.cargo-slot.occupied {
    background: rgba(52, 152, 219, 0.25);
    border-color: #3498db;
    border-style: solid;
}

.cargo-slot .cargo-item {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 6px;
    font-size: 0.7em;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.cargo-slot .cargo-image-container {
    width: 100%;
    height: 100%;
}

.cargo-slot .cargo-stats {
    font-size: 0.6em;
    gap: 2px;
}
/* 字体定义 */




/* 装饰性边框样式 */
.decorative-border {
    position: relative;
    border: 3px solid #DAA520; /* 金色边框 */
    border-radius: 15px;
    padding: 15px;
    box-shadow: 
        0 0 0 2px rgba(218, 165, 32, 0.3),
        inset 0 0 0 1px rgba(255, 215, 0, 0.2);
}

.decorative-border::before {
    content: '';
    position: absolute;
    top: -6px;
    left: -6px;
    right: -6px;
    bottom: -6px;
    border: 2px solid rgba(255, 215, 0, 0.4);
    border-radius: 18px;
    pointer-events: none;
}

.decorative-border::after {
    content: '';
    position: absolute;
    top: -9px;
    left: -9px;
    right: -9px;
    bottom: -9px;
    border: 1px solid rgba(218, 165, 32, 0.6);
    border-radius: 21px;
    pointer-events: none;
}

/* 全局样式 */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: 'GameBody', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
    background: url('images/background.webp') center center / cover no-repeat fixed;
    min-height: 100vh;
    color: #333;
    position: relative;
}

/* 关卡二激活时，覆盖全屏背景为苏州码头场景 */
body.level2-active {
    background: url('images/level2-background-docks.webp') center center / cover no-repeat fixed;
}

/* 全局字体应用 */
* {
    font-family: 'GameBody', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
}

/* 标题元素使用标题字体 */
h1, h2, h3, h4, h5, h6, .game-header h1, .cargo-section h3, .ship-section h3, .route-section h3 {
    font-family: 'GameTitle', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif !important;
}

body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.1);
    /* backdrop-filter: blur(1px); 移除模糊效果提升性能 */
    z-index: -1;
}

/* 全局黑屏淡入淡出叠加层（用于页面切换） */
.screen-fade-layer {
    position: fixed;
    inset: 0;
    background: #000;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.5s ease;
    z-index: 2600; /* 高于登录页 / 引导页 / 关卡等所有内容 */
}

.game-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 20px;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* 关卡二背景：苏州码头场景 */
#level2-container {
    background: url('images/level2-background-docks.webp') center center / cover no-repeat;
    max-width: 100%;
    width: 100%;
    margin: 0;
    padding: 0;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

/* 游戏头部 */
.game-header {
    background: #FFFACD;
    border-radius: 15px;
    padding: 15px 20px 15px 20px;
    margin-bottom: 20px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
    /* backdrop-filter: blur(15px); 移除模糊效果提升性能 */
    border: 1px solid rgba(255, 255, 255, 0.3);
    position: relative;
    overflow: visible;
}

/* 关卡二大改布局前：暂时隐藏原有头部 / 主体 / 底部窗口，只保留背景（便于重新设计） */
#level2-container .game-header,
#level2-container .game-main,
#level2-container .game-footer {
    display: none;
}

/* 规则按钮样式在下面定义 */

.game-header.decorative-border {
    border: 3px solid #DAA520;
    box-shadow: 
        0 8px 32px rgba(0, 0, 0, 0.2),
        0 0 0 2px rgba(218, 165, 32, 0.3),
        inset 0 0 0 1px rgba(255, 215, 0, 0.2);
}

.game-header h1 {
    font-family: 'GameTitle', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
    text-align: center;
    color: #1a252f;
    font-size: 2.5em;
    margin: 0;
    margin-bottom: 5px;
    text-shadow: 2px 2px 8px rgba(255, 255, 255, 0.8);
    font-weight: bold;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.game-title-img {
    max-width: 100%;
    height: auto;
    max-height: 100px;
    object-fit: contain;
}

.ship-status {
    text-align: center;
    color: #333;
    font-size: 1em;
    margin-bottom: 3px;
    margin-top: 0;
    padding: 2px 0;
}

.game-stats {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
}

.stat-item {
    background: transparent; /* 完全透明背景 */
    background-image: url('images/gold-bg.webp');
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    color: #333;
    padding: 8px 20px;
    border-radius: 8px;
    font-weight: bold;
    box-shadow: none; /* 移除阴影，让贴图更自然 */
    text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.8);
    min-width: 120px;
    max-width: 200px;
    text-align: center;
    /* 确保贴图的透明部分显示为透明 */
    background-blend-mode: normal;
}

.stat-label {
    margin-right: 5px;
    color: #666;
    font-weight: normal;
}

/* 关卡一启动界面：底图直接覆盖整个浏览器屏幕，不以窗口形式呈现 */
/* 进入关卡一至点击「收起对话，继续绣制」之前：使用 level1-background */
.level1-screen {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    background-image: url('images/level1-background.webp');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 999;
    padding: 0;
}

/* 仅在不提问且点击「开始苏绣操作」后：切换为 level1-game-area-bg；点击「向绣娘提问」时仍保持 level1-background */
.level1-screen.level1-play-mode {
    background-image: url('images/level1-game-area-bg.webp');
}

/* 关卡一（临时）：隐藏选线按钮/进入关卡二/打点玩法相关 UI
   （保留交互对象贴图 .level1-object-stage 作为后续操作基底） */
.level1-thread-toolbar,
.level1-lines-layer,
.level1-points-layer,
.level1-nav-btn {
    display: none !important;
}

/* 关卡一开场：先只显示背景，隐藏游玩区域与聊天室 */
.level1-screen.intro-mode .level1-container {
    display: none !important;
}

/* 处理完丝后打开绣娘聊天室：使用 level1-game-area-bg，仅隐藏游玩区域露出底图 */
.level1-screen.level1-xiuniang-from-tertiary .level1-container {
    display: none !important;
}

.level1-container {
    width: 100%;
    height: 100%;
    max-width: none;
    display: flex;
    gap: 0;
    align-items: stretch;
}

/* 游玩区域：无边框无圆角，全屏铺满，不呈现为窗口 */
.level1-game-area {
    flex: 1;
    background: transparent;
    border-radius: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    box-shadow: none;
    border: none;
    min-width: 0;
}

.level1-game-area.decorative-border {
    border: none;
}

.level1-game-header {
    position: absolute;
    top: 0;
    right: 0;
    left: auto;
    z-index: 10;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin: 0;
    padding: 16px 20px;
    border: none;
    gap: 12px;
}

/* 隐藏标题与对象切换设定，仅保留“进入关卡二”等操作 */
.level1-game-title {
    display: none;
}

.level1-object-switcher {
    display: none !important;
}

.level1-nav-btn {
    padding: 8px 24px;
    font-size: 1em;
}

.level1-game-content {
    flex: 1;
    background: transparent; /* 底图由 level1-screen 全屏覆盖 */
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 0;
    padding: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    position: relative;
}

/* 关卡一：跟随鼠标的图片样式 */
.level1-cursor-follower {
    position: fixed; /* 使用 fixed 定位，相对于视口 */
    width: 300px; /* 再放大手形光标贴图尺寸 */
    height: 300px;
    pointer-events: none; /* 不阻挡鼠标事件 */
    z-index: 10000; /* 确保在最上层 */
    transform: translate(-40%, -40%); /* 调整偏移：左侧 120px，鼠标上方 120px */
    transition: none; /* 禁用过渡，确保跟随流畅 */
    image-rendering: auto; /* 改为 auto 以获得更自然的渲染 */
    object-fit: contain; /* 保持图片比例 */
    /* 添加自然融合效果 */
    filter: drop-shadow(2px 4px 8px rgba(0, 0, 0, 0.3)) drop-shadow(0 0 2px rgba(0, 0, 0, 0.2)); /* 柔和阴影，贴合手部形状 */
    opacity: 0.92; /* 轻微降低透明度，更融入背景 */
    mix-blend-mode: normal; /* 可根据需要调整为 multiply 或 overlay */
}

/* 处理苏绣阶段的“吸附贴图”可单独调大小/偏移（中心对齐鼠标） */
.level1-cursor-follower.is-attachment {
    width: 150px;
    height: 150px;
    transform: translate(-50%, -45%);
    opacity: 0.95;
}

/* 贴图切换时淡入淡出（仅过渡 opacity） */
.level1-cursor-follower.is-swapping {
    transition: opacity 0.22s ease;
}

/* 确保游戏内容区域可以正常交互 */
.level1-game-content {
    cursor: default; /* 恢复默认光标 */
}

.level1-game-placeholder {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
    font-size: 1.2rem;
}

/* 关卡一交互对象切换按钮 */
.level1-object-switcher {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.level1-object-btn {
    border: 2px solid rgba(218, 165, 32, 0.55);
    background: rgba(255, 248, 220, 0.9);
    color: #333;
    border-radius: 10px;
    padding: 6px 10px;
    font-size: 0.9rem;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.level1-object-btn:hover {
    filter: brightness(1.03);
}

.level1-object-btn.is-active {
    background: linear-gradient(135deg, #DAA520, #B8860B);
    color: #fff;
    border-color: rgba(184, 134, 11, 0.9);
}

/* 关卡一交互对象贴图（浮于游玩窗口表面） */
.level1-thread-toolbar {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    gap: 36px;
    z-index: 5;
}

.level1-thread-btn {
    width: 100px;
    height: 100px;
    background: transparent;
    border: none;
    padding: 0;
    cursor: inherit; /* 继承父元素的光标样式 */
    position: relative;
    overflow: visible;
}

/* 使用 ::before 伪元素显示贴图 */
.level1-thread-btn::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.25s ease, filter 0.25s ease;
    pointer-events: none;
}

/* 根据 data-color 属性设置不同的背景图片 */
.level1-thread-btn[data-color="red"]::before {
    background-image: url('images/level1-thread-btn-red.webp');
}

.level1-thread-btn[data-color="blue"]::before {
    background-image: url('images/level1-thread-btn-blue.webp');
}

.level1-thread-btn[data-color="yellow"]::before {
    background-image: url('images/level1-thread-btn-yellow.webp');
}

.level1-thread-btn[data-color="green"]::before {
    background-image: url('images/level1-thread-btn-green.webp');
}

/* 悬停效果 */
.level1-thread-btn:hover::before {
    transform: translateY(-6px) scale(1.03);
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.25));
}

/* 点击效果 */
.level1-thread-btn:active::before {
    transform: translateY(-2px) scale(1.01);
}

/* 激活状态 - 根据颜色设置不同的光效 */
.level1-thread-btn.is-active::before {
    transform: scale(1.1);
}

/* 红色按钮激活时的红色光效 */
.level1-thread-btn[data-color="red"].is-active::before {
    filter: drop-shadow(0 4px 16px rgba(231, 76, 60, 0.7));
}

/* 蓝色按钮激活时的蓝色光效 */
.level1-thread-btn[data-color="blue"].is-active::before {
    filter: drop-shadow(0 4px 16px rgba(52, 152, 219, 0.7));
}

/* 黄色按钮激活时的黄色光效 */
.level1-thread-btn[data-color="yellow"].is-active::before {
    filter: drop-shadow(0 4px 16px rgba(241, 196, 15, 0.7));
}

/* 绿色按钮激活时的绿色光效 */
.level1-thread-btn[data-color="green"].is-active::before {
    filter: drop-shadow(0 4px 16px rgba(46, 204, 113, 0.7));
}

.level1-object-stage {
    position: absolute;
    /* 稍偏屏幕左侧，作为后续交互的基底 */
    left: 32%;
    top: 50%;
    transform: translate(-50%, -50%);
    /* 稍微放大一些，突出绣稿主体 */
    width: min(640px, 80%);
    height: auto;
    z-index: 2;
    /* 默认在游玩阶段前不显示，待选线后再由 JS 显示 */
    display: none;
}

.level1-embroidery-wrap {
    position: relative;
    width: 100%;
    isolation: isolate;
    background: transparent;
}

.level1-embroidery-object,
.level1-embroidery-object-next {
    border: none;
    outline: none;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.level1-embroidery-object {
    width: 100%;
    height: auto;
    display: block;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    filter: drop-shadow(0 10px 20px rgba(0,0,0,0.25));
    transform-origin: center center;
    transition: opacity 0.28s ease-out;
}

.level1-embroidery-object-next {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.28s ease-out;
    pointer-events: none;
    filter: drop-shadow(0 10px 20px rgba(0,0,0,0.25));
}

.level1-embroidery-object-next.is-active {
    visibility: visible;
}

.level1-embroidery-wrap.is-handoff .level1-embroidery-object,
.level1-embroidery-wrap.is-handoff .level1-embroidery-object-next {
    transition: none;
}

/* 与线轴选中离场共用同一 keyframes，保证淡出与滑动完全同步且一致 */
@keyframes packOutBottomLeft {
    0%   { transform: scale(1) translate(0, 0); opacity: 1; }
    100% { transform: scale(0.2) translate(-120vw, 120vh); opacity: 0; }
}

/* 绣成后离场动画：与线轴按钮选中后消失动画一致（同一 keyframes） */
.level1-embroidery-object.pack-into-bag {
    animation: packOutBottomLeft 1.2s ease-in-out forwards;
    pointer-events: none;
}

/* 离场时允许绣品移出父容器绘制到视窗外 */
.level1-object-stage:has(.level1-embroidery-object.pack-into-bag) {
    overflow: visible;
}

/* 丝线贴图离场时与线轴选中一致，允许滑出视窗 */
.level1-object-stage:has(.level1-thread-overlay.pack-into-bag) {
    overflow: visible;
}

.level1-thread-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
    user-select: none;
    -webkit-user-drag: none;
    z-index: 3;
    display: none; /* 选线完成后再由 JS 显示 */
    transform-origin: center center;
    transition: transform 0.75s ease-out, opacity 0.75s ease-out;
}

/* 三次处理丝线贴图消失动画：与线轴选中离场一致（缩小滑入左下角） */
.level1-thread-overlay.pack-into-bag {
    animation: packOutBottomLeft 1.2s ease-in-out forwards;
    pointer-events: none;
}

/* 丝线叠加贴图“换图”时的柔和淡出/淡入（避免瞬切与断句感） */
.level1-thread-overlay.swap-fade {
    transition: opacity 0.28s ease;
}

/* 劈丝阶段：开启拖动交互，贴图可接收鼠标事件 */
.level1-thread-overlay.gesture-enabled {
    pointer-events: auto;
    cursor: crosshair;
}

/* 走针轨迹层：覆盖绣品，引导玩家沿路径拖动 */
.level1-needle-path-wrapper {
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
    display: none;
}
.level1-needle-path-wrapper.is-active {
    display: block;
}
.level1-needle-path-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}
.level1-needle-path-wrapper.is-active .level1-needle-path-overlay {
    pointer-events: auto;
    cursor: crosshair;
}
.level1-needle-path {
    fill: none;
    stroke: rgba(180, 140, 80, 0.6);
    stroke-width: 1.2;
    stroke-dasharray: 6 4;
    stroke-linecap: round;
    transition: stroke 0.2s ease;
}
.level1-needle-path.completed {
    stroke: rgba(100, 180, 100, 0.8);
    stroke-dasharray: none;
}
.level1-needle-path.current {
    stroke: rgba(220, 180, 100, 0.9);
    stroke-width: 1.5;
    stroke-dasharray: 8 6;
    animation: needle-path-guide-flow 1.5s linear infinite, needle-path-pulse 1.2s ease-in-out infinite;
}
.level1-needle-path.current.is-drawing {
    animation: none;
    opacity: 1;
}
@keyframes needle-path-guide-flow {
    from { stroke-dashoffset: 14; }
    to   { stroke-dashoffset: 0; }
}
@keyframes needle-path-pulse {
    0%, 100% { opacity: 0.45; }
    50%      { opacity: 1; }
}
.level1-needle-path.needle-path-just-completed {
    animation: needle-path-complete 0.3s ease-out forwards;
}
@keyframes needle-path-complete {
    0%   { stroke: rgba(255, 215, 0, 1); filter: drop-shadow(0 0 12px rgba(255, 215, 0, 0.8)); }
    100% { stroke: rgba(100, 180, 100, 0.9); filter: none; }
}
.level1-needle-path.hidden {
    display: none;
}
/* 进度提示：沿针路拖动时的文案与百分比 */
.level1-needle-progress-hint {
    position: absolute;
    bottom: 8%;
    left: 50%;
    transform: translateX(-50%);
    padding: 6px 14px;
    font-size: 14px;
    color: rgba(80, 60, 40, 0.95);
    background: rgba(255, 250, 235, 0.9);
    border-radius: 20px;
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.25s ease;
}
.level1-needle-path-wrapper.is-active .level1-needle-progress-hint {
    opacity: 1;
}

/* 关卡一：丝线处理按钮（与「开始苏绣操作」一致：固定尺寸、贴图 contain、悬停/呼吸动画） */
.level1-thread-process-btn {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 420px;
    height: 120px;
    z-index: 4;
    padding: 0;
    font-size: 0;
    color: transparent;
    border: none;
    border-radius: 0;
    outline: none;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
    background: url('images/level1-thread-process-btn.webp') center center / contain no-repeat;
    background-color: transparent;
    cursor: pointer;
    transition: transform 0.15s ease, filter 0.15s ease;
    display: none; /* 由 JS 在适当时机显示 */
}
.level1-thread-process-btn.is-visible {
    display: block;
    animation: level1ThreadProcessBtnBreathe 2.2s ease-in-out infinite;
}
.level1-thread-process-btn.is-disabled {
    pointer-events: none;
    cursor: default;
}
.level1-thread-process-btn:hover {
    animation: level1ThreadProcessBtnShake 0.4s ease-in-out infinite;
    filter: brightness(1.1);
}
.level1-thread-process-btn:active {
    animation: none;
    transform: translate(-50%, -50%) scale(0.98);
    filter: brightness(0.95);
}
@keyframes level1ThreadProcessBtnBreathe {
    0%, 100% { transform: translate(-50%, -50%) scale(0.93); filter: brightness(1); }
    50%      { transform: translate(-50%, -50%) scale(1.08); filter: brightness(1.18); }
}
@keyframes level1ThreadProcessBtnShake {
    0%, 100% { transform: translate(-50%, -50%) scale(1.05) rotate(0deg); }
    25%      { transform: translate(-50%, -50%) scale(1.05) rotate(-2deg); }
    50%      { transform: translate(-50%, -50%) scale(1.05) rotate(2deg); }
    75%      { transform: translate(-50%, -50%) scale(1.05) rotate(-2deg); }
}

/* 关卡二开始航行按钮：略强一点的缩放动效 */
@keyframes level2StartVoyageBreathe {
    0%, 100% { transform: translate(-50%, -50%) scale(0.90); filter: brightness(1); }
    50%      { transform: translate(-50%, -50%) scale(1.15); filter: brightness(1.18); }
}
@keyframes level2StartVoyageShake {
    0%, 100% { transform: translate(-50%, -50%) scale(1.10) rotate(0deg); }
    25%      { transform: translate(-50%, -50%) scale(1.10) rotate(-2.4deg); }
    50%      { transform: translate(-50%, -50%) scale(1.10) rotate(2.4deg); }
    75%      { transform: translate(-50%, -50%) scale(1.10) rotate(-2.4deg); }
}

.level1-lines-layer {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow: visible;
    pointer-events: none;
}

.level1-points-layer {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.level1-point {
    position: absolute;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    border: 2px solid rgba(255,255,255,0.85);
    box-shadow: 0 4px 10px rgba(0,0,0,0.25);
    pointer-events: auto;
    cursor: inherit; /* 继承父元素的光标样式 */
    padding: 0;
    background: #999;
}
.level1-point.is-selected {
    outline: 3px solid rgba(255, 255, 255, 0.9);
    transform: translate(-50%, -50%) scale(1.15);
}
.level1-point.is-connected {
    opacity: 0.6;
    cursor: inherit; /* 继承父元素的光标样式 */
}
.point-red { background: #e74c3c; }
.point-blue { background: #3498db; }
.point-yellow { background: #f1c40f; }

/* 成功弹窗 */
.level1-simple-modal {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5000;
}
.level1-simple-modal-content {
    width: min(520px, 92vw);
    background: #FFF8DC;
    border-radius: 18px;
    padding: 26px 24px 20px;
    text-align: center;
    position: relative;
}
.level1-simple-modal-content::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('images/dialog-texture-overlay.webp');
    background-size: 97% auto;
    background-position: 37% 40%;
    background-repeat: no-repeat;
    opacity: 0.6;
    z-index: 1;
    pointer-events: none;
    border-radius: 18px;
}
/* 关卡一游戏对话框样式 */
.level1-game-dialog {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30%; /* 占浏览器页面高度的30% */
    z-index: 1000; /* 确保显示在所有内容之上 */
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible; /* 允许立绘超出对话框边界显示 */
    transition: transform 0.5s ease;
}

/* 关卡一开场：对话框自下而上进入（与引导页一致） */
.level1-game-dialog.level1-dialog-enter-from-bottom {
    transform: translateY(100%);
}

/* 关卡一：立绘与文本框向下滑动消失 */
.level1-game-dialog.slide-down {
    transform: translateY(140%);
}

.level1-dialog-content {
    position: relative;
    width: 100%;
    height: 100%;
    background: url('images/dialog-textbox-bg.webp') center top / cover no-repeat;
    background-color: rgba(50, 50, 50, 0.85); /* 贴图未加载时的兜底 */
    border-radius: 12px 12px 0 0; /* 顶部圆角，底部直角 */
    padding: 0; /* 移除内边距，由子元素控制 */
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: stretch; /* 拉伸子元素填满高度 */
    justify-content: flex-start;
    gap: 0; /* 移除间距 */
    overflow: visible; /* 允许立绘超出边界显示 */
}

/* 纹理已移动到文字区域，移除全局纹理 */

.level1-dialog-character-wrapper {
    flex: 0 0 35%; /* 与引导页一致 */
    width: 35%;
    position: relative;
    overflow: visible; /* 允许立绘超出边界显示 */
    display: flex;
    align-items: flex-end; /* 底部对齐 */
    justify-content: center; /* 水平居中 */
    z-index: 2;
    margin-top: -10%; /* 向上移动，让立绘可以超出顶部显示 */
}

.level1-dialog-character {
    height: 150%; /* 与引导页一致 */
    width: auto;
    max-height: none;
    object-fit: contain;
    position: relative;
    z-index: 2;
    transform: translateX(-20px) translateY(70px); /* 立绘整体再下移一点 */
}

.level1-dialog-text-wrapper {
    flex: 0 0 65%; /* 与引导页一致 */
    width: 65%;
    position: relative;
    overflow: hidden; /* 文字区域隐藏溢出 */
    display: flex;
    align-items: center; /* 垂直居中 */
    justify-content: flex-start; /* 左对齐 */
    padding: 20px 24px; /* 内边距 */
    z-index: 2;
}

.level1-dialog-text-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('images/dialog-texture-overlay.webp');
    background-size: 97% auto; /* 缩小到97%宽度，保持宽高比 */
    background-position: 37% 40%;
    background-repeat: no-repeat;
    opacity: 0.6; /* 降低透明度，让纹理更细腻 */
    z-index: 1; /* 在背景之上，但在文字之下 */
    pointer-events: none; /* 不阻挡点击事件 */
}

.level1-dialog-text {
    color: #4a3728; /* 与引导页一致：深棕色 */
    font-size: 2.1em; /* 与引导页一致 */
    line-height: 1.8;
    white-space: pre-wrap;
    word-wrap: break-word;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    width: 100%;
    text-align: left;
    position: relative;
    z-index: 2;
}

/* 关卡二开场：立绘+文本框（与关卡一对话框同风格），自下而上划入 */
.level2-intro-dialog {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30%;
    z-index: 1001;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    transition: transform 0.5s ease;
}

.level2-intro-dialog.level2-dialog-enter-from-bottom {
    transform: translateY(100%);
}

.level2-intro-dialog-content {
    position: relative;
    width: 100%;
    height: 100%;
    background: url('images/dialog-textbox-bg.webp') center top / cover no-repeat;
    background-color: rgba(50, 50, 50, 0.85);
    border-radius: 12px 12px 0 0;
    padding: 0;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    overflow: visible;
}

.level2-intro-dialog-character-wrapper {
    flex: 0 0 35%;
    width: 35%;
    position: relative;
    overflow: visible;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    z-index: 2;
    margin-top: -10%;
}

.level2-intro-dialog-character {
    height: 150%;
    width: auto;
    max-height: none;
    object-fit: contain;
    position: relative;
    z-index: 2;
    transform: translateX(-20px) translateY(70px); /* 立绘整体再下移一点 */
}

.level2-intro-dialog-text-wrapper {
    flex: 0 0 65%;
    width: 65%;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 20px 24px;
    z-index: 2;
}

.level2-intro-dialog-text {
    color: #4a3728;
    font-size: 2.1em;
    line-height: 1.8;
    white-space: pre-wrap;
    word-wrap: break-word;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    width: 100%;
    text-align: left;
    position: relative;
    z-index: 2;
}

/* 关卡二“点击任意键继续”与关卡一保持一致（贴图、位置、浮动） */
.level2-intro-continue {
    position: absolute;
    left: 50%;
    top: 72px;
    transform: translateX(-50%);
    width: 420px;
    height: 48px;
    background-image: url('images/continue-hint-2.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 1002;
    animation: loginIntroContinueFloat 2.2s ease-in-out infinite;
}

.level2-intro-continue.is-visible {
    opacity: 1;
}

/* 关卡二两段话结束后：两个选项（向绣娘提问 / 暂时不提问） */
.level2-intro-choice-btns {
    position: fixed;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1003;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 24px;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    padding: 0 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.level2-intro-choice-btns.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.level2-intro-choice-btn {
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.level2-intro-choice-btn-img {
    display: block;
    height: auto;
    max-height: 88px;
    max-width: 320px;
    width: auto;
}

.level2-intro-choice-btn:hover {
    transform: translateY(-2px);
}

/* 关卡二：开始航行按钮（视觉与「开始苏绣操作」按钮保持一致，仅位置不同） */
.level2-start-voyage-btn {
    position: fixed;
    /* 相对屏幕中央更明显地向左、向下偏移 */
    left: 40%;
    top: 80%;
    transform: translate(-50%, -50%);
    z-index: 1003;
    width: 420px;
    height: 120px;
    padding: 0;
    font-size: 0;
    color: transparent;
    border: none;
    border-radius: 0;
    outline: none;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
    background: url('images/level1-thread-process-btn.webp') center center / contain no-repeat;
    background-color: transparent;
    cursor: pointer;
    /* 使用单独的开始航行动效，缩放稍微更明显一些 */
    transition: transform 0.15s ease, filter 0.15s ease;
    animation: level2StartVoyageBreathe 2.2s ease-in-out infinite;
}

.level2-start-voyage-btn:hover {
    animation: level2StartVoyageShake 0.4s ease-in-out infinite;
    filter: brightness(1.1);
}

.level2-start-voyage-btn:active {
    animation: none;
    transform: translate(-50%, -50%) scale(0.98);
    filter: brightness(0.95);
}

.level1-dialog-close {
    display: none; /* 已移除点击关闭功能，改为1.5秒后自动淡出 */
    position: absolute;
    top: 8px;
    right: 8px;
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: #ffffff;
    font-size: 22px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    z-index: 3; /* 确保关闭按钮在覆盖层之上 */
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease;
    z-index: 11;
    line-height: 1;
}

.level1-dialog-close:hover {
    background: rgba(255, 255, 255, 0.3);
}

/* 关卡一开场：“点击任意键继续”提示（与引导页同风格） */
.level1-intro-continue {
    position: absolute;
    left: 50%;
    top: 72px;
    transform: translateX(-50%);
    width: 420px;
    height: 48px;
    background-image: url('images/continue-hint-2.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 1001;
    /* 上下浮动效果，与引导页一致 */
    animation: loginIntroContinueFloat 2.2s ease-in-out infinite;
}

/* 第三段结束后：屏幕中间两个选项按钮（不显示“点击任意键继续”） */
/* 劈丝阶段：请沿轮廓滑动丝线提示（与「点击任意键继续」同格式） */
.level1-thread-slide-hint {
    position: absolute;
    left: 50%;
    top: 72px;
    transform: translateX(-50%);
    width: 420px;
    height: 48px;
    background-image: url('images/level1-thread-slide-hint.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 1001;
    animation: loginIntroContinueFloat 2.2s ease-in-out infinite;
}

.level1-thread-slide-hint.is-visible {
    opacity: 1;
}

/* 第三段结束后：屏幕中间两个选项按钮（不显示"点击任意键继续"） */
.level1-intro-choice-btns {
    position: fixed;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1001;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 24px;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    padding: 0 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.level1-intro-choice-btns.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.level1-intro-choice-btns.is-visible .level1-intro-choice-btn {
    animation: level1IntroChoiceFloat 2.4s ease-in-out infinite;
}

.level1-intro-choice-btn-slide {
    animation-delay: 0s;
}

.level1-intro-choice-btn-xiuniang {
    animation-delay: 0.45s;
}

.level1-intro-choice-btn {
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: transform 0.2s ease, filter 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

.level1-intro-choice-btn-img {
    display: block;
    height: auto;
    max-height: 88px;
    max-width: 380px;
    width: auto;
    object-fit: contain;
}

.level1-intro-choice-btn:hover .level1-intro-choice-btn-img {
    /* 移除 brightness 避免悬停时出现白色虚影 */
    animation: level1IntroChoiceShake 0.38s ease-in-out infinite;
}

.level1-intro-choice-btn:hover {
    /* 悬停时暂停浮动，并轻微上移 */
    animation: none;
    transform: translateY(-3px);
}

.level1-intro-choice-btn:active {
    transform: translateY(0);
}

@keyframes level1IntroChoiceFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}

@keyframes level1IntroChoiceShake {
    0% { transform: translateX(0) rotate(0deg); }
    25% { transform: translateX(-1.5px) rotate(-0.6deg); }
    50% { transform: translateX(1.5px) rotate(0.6deg); }
    75% { transform: translateX(-1px) rotate(-0.4deg); }
    100% { transform: translateX(0) rotate(0deg); }
}

@media (prefers-reduced-motion: reduce) {
    .level1-intro-choice-btns.is-visible .level1-intro-choice-btn,
    .level1-intro-choice-btn:hover .level1-intro-choice-btn-img {
        animation: none !important;
    }
}

/* 关卡一处理丝线第三轮讲解结束：两个选项按钮（继续游戏 / 向绣娘提问），样式与 intro-choice 一致 */
.level1-tertiary-choice-btns {
    position: fixed;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1001;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 24px;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    padding: 0 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.level1-tertiary-choice-btns.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.level1-tertiary-choice-btns.is-visible .level1-tertiary-choice-btn {
    animation: level1IntroChoiceFloat 2.4s ease-in-out infinite;
}

.level1-tertiary-choice-btn-continue {
    animation-delay: 0s;
}

.level1-tertiary-choice-btn-xiuniang {
    animation-delay: 0.45s;
}

.level1-tertiary-choice-btn {
    padding: 0;
    font-size: 1rem;
    border-radius: 12px;
    cursor: pointer;
    transition: transform 0.2s ease, filter 0.2s ease;
    border: none;
    background: transparent;
    outline: none;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    -webkit-tap-highlight-color: transparent;
}

.level1-tertiary-choice-btn-img {
    display: block;
    height: auto;
    max-height: 88px;
    max-width: 380px;
    width: auto;
    object-fit: contain;
}

.level1-tertiary-choice-btn:hover .level1-tertiary-choice-btn-img {
    animation: level1IntroChoiceShake 0.38s ease-in-out infinite;
}

.level1-tertiary-choice-btn:hover {
    animation: none;
    transform: translateY(-3px);
}

.level1-tertiary-choice-btn:active {
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    .level1-tertiary-choice-btns.is-visible .level1-tertiary-choice-btn,
    .level1-tertiary-choice-btn:hover .level1-tertiary-choice-btn-img {
        animation: none !important;
    }
}

/* 关卡一：绣成后上路前两个选项按钮（直接上路 / 关于运绣再问问），布局与 tertiary-choice 类似 */
.level1-after-embroidery-choice-btns {
    position: fixed;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1001;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 20px;
    align-items: center;
    justify-content: center;
    width: 100%;
    box-sizing: border-box;
    padding: 0 20px;
    opacity: 0;
    transition: opacity 0.3s ease;
    pointer-events: none;
}

.level1-after-embroidery-choice-btns.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.level1-after-embroidery-choice-btn {
    padding: 0;
    font-size: 1rem;
    border-radius: 12px;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    border: none;
    background: transparent;
}

.level1-after-embroidery-choice-btn-img {
    display: block;
    height: auto;
    max-height: 88px;
    max-width: 380px;
    width: auto;
}

/* 离开秀坊按钮：尺寸再放大 */
.level1-after-embroidery-choice-btns.is-visible .level1-after-embroidery-choice-btn-go .level1-after-embroidery-choice-btn-img {
    max-height: 168px;
    max-width: 560px;
}

.level1-after-embroidery-choice-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* 离开秀坊（进入关卡二）按钮：与「点击进入秀坊」一致的闪光与呼吸 + 悬停抖动 */
.level1-after-embroidery-choice-btns.is-visible .level1-after-embroidery-choice-btn-go {
    animation: level1GoVoyageBtnBreathe 2.2s ease-in-out infinite;
    box-shadow: none;
    outline: none;
}

.level1-after-embroidery-choice-btns.is-visible .level1-after-embroidery-choice-btn-go:hover {
    animation: level1GoVoyageBtnShake 0.4s ease-in-out infinite;
    box-shadow: none;
    outline: none;
}

@keyframes level1GoVoyageBtnBreathe {
    0%   { transform: scale(0.99); filter: drop-shadow(0 0 10px rgba(255, 200, 200, 0.5)); }
    50%  { transform: scale(1.03); filter: drop-shadow(0 0 18px rgba(255, 180, 180, 0.8)); }
    100% { transform: scale(0.99); filter: drop-shadow(0 0 10px rgba(255, 200, 200, 0.5)); }
}

@keyframes level1GoVoyageBtnShake {
    0%   { transform: scale(1.05) rotate(0deg); }
    25%  { transform: scale(1.05) rotate(-1.5deg); }
    50%  { transform: scale(1.05) rotate(0deg); }
    75%  { transform: scale(1.05) rotate(1.5deg); }
    100% { transform: scale(1.05) rotate(0deg); }
}

/* 关卡一：绣成后系统提示弹窗（仅保留贴图，无底图与文字） */
.level1-system-prompt-popup {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 1100;
    background: transparent;
    border: none;
    padding: 0;
    box-shadow: none;
    text-align: center;
    pointer-events: none;
    overflow: visible;
}

.level1-system-prompt-popup .level1-system-prompt-title-img {
    display: block;
    max-width: min(420px, 64vw);
    width: auto;
    height: auto;
    margin: 0;
    object-fit: contain;
    transform-origin: center center;
}

/* 系统评价贴图：变大入场动画 */
.level1-system-prompt-popup.prompt-enter .level1-system-prompt-title-img {
    animation: systemPromptEnter 0.5s cubic-bezier(0.34, 1.2, 0.64, 1) forwards;
}

@keyframes systemPromptEnter {
    0%   { opacity: 0; transform: scale(0.3); }
    100% { opacity: 1; transform: scale(1); }
}

/* 系统评价贴图：与成品苏绣相同的退场动画 */
.level1-system-prompt-popup.pack-into-bag .level1-system-prompt-title-img {
    animation: packOutBottomLeft 1.2s ease-in-out forwards;
}

.level1-system-prompt-popup.pack-into-bag {
    overflow: visible;
}

/* 关卡一：立绘与文本框下移消失后，屏幕中央「开始苏绣操作」按钮（使用贴图，仅显示贴图有像素部分，无虚影） */
.level1-start-embroidery-btn {
    position: absolute;
    left: 50%;
    top: 68%;
    transform: translate(-50%, -50%);
    z-index: 1001;
    display: none;
    width: 420px;
    height: 120px;
    padding: 0;
    font-size: 0;
    color: transparent;
    background: url('images/btn-start-su-embroidery.webp') center center / contain no-repeat;
    background-color: transparent;
    border: none;
    border-radius: 0;
    outline: none;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
    cursor: pointer;
    transition: transform 0.15s ease, filter 0.15s ease;
}
.level1-start-embroidery-btn.is-visible {
    display: block;
    animation: level1StartEmbroideryBreathe 2.2s ease-in-out infinite;
}
.level1-start-embroidery-btn:hover {
    animation: level1StartEmbroideryShake 0.4s ease-in-out infinite;
    filter: brightness(1.1);
}
.level1-start-embroidery-btn:active {
    animation: none;
    transform: translate(-50%, -50%) scale(0.98);
    filter: brightness(0.95);
}
@keyframes level1StartEmbroideryBreathe {
    0%, 100% { transform: translate(-50%, -50%) scale(0.93); filter: brightness(1); }
    50%      { transform: translate(-50%, -50%) scale(1.08); filter: brightness(1.18); }
}
@keyframes level1StartEmbroideryShake {
    0%, 100% { transform: translate(-50%, -50%) scale(1.05) rotate(0deg); }
    25%      { transform: translate(-50%, -50%) scale(1.05) rotate(-2deg); }
    50%      { transform: translate(-50%, -50%) scale(1.05) rotate(2deg); }
    75%      { transform: translate(-50%, -50%) scale(1.05) rotate(-2deg); }
}

.level1-intro-continue.is-visible {
    opacity: 1;
}

/* 进入游玩后的选线引导：四个颜色按钮居中浮现 */
.level1-thread-choice {
    position: fixed;
    inset: 0;
    z-index: 1002;
    display: none;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.35s ease;
}

.level1-thread-choice.is-visible {
    display: flex;
    opacity: 1;
    pointer-events: auto;
}

.level1-thread-choice-panel {
    display: grid;
    grid-template-columns: repeat(2, 220px);
    grid-auto-rows: 220px;
    gap: 34px 54px;
    align-items: center;
    justify-items: center;
    transform: translateY(8px) scale(0.98);
    transition: transform 0.35s ease;
}

.level1-thread-choice.is-visible .level1-thread-choice-panel {
    transform: translateY(0) scale(1);
}

/* 选线浮层里的按钮：开启指针光标，并增加轻微浮动；尺寸放大便于点击 */
.level1-thread-choice-btn {
    cursor: pointer;
    width: 200px;
    height: 200px;
    /* 让自身轻微上下浮动，方便后续叠加悬停效果 */
    animation: level1ThreadChoiceFloat 2.4s ease-in-out infinite;
    transition:
        transform 0.15s ease-out,
        filter 0.15s ease-out,
        box-shadow 0.15s ease-out;
}

.level1-thread-choice-btn:hover {
    /* 悬停时整体轻微抖动 + 更明显的缩放 */
    animation: level1ThreadChoiceShake 0.32s ease-in-out infinite;
}

.level1-thread-choice-btn[data-color="blue"] { animation-delay: 0s; }
.level1-thread-choice-btn[data-color="green"] { animation-delay: 0.25s; }
.level1-thread-choice-btn[data-color="red"] { animation-delay: 0.5s; }
.level1-thread-choice-btn[data-color="yellow"] { animation-delay: 0.75s; }

/* 选线按钮悬停：放大 + 闪光效果（更明显） */
.level1-thread-choice-btn:hover {
    animation-play-state: paused;
    transform: translateY(-14px) scale(1.18);
}
.level1-thread-choice-btn[data-color="red"]:hover {
    filter: brightness(1.22) drop-shadow(0 10px 28px rgba(231, 76, 60, 0.85));
}
.level1-thread-choice-btn[data-color="blue"]:hover {
    filter: brightness(1.22) drop-shadow(0 10px 28px rgba(52, 152, 219, 0.85));
}
.level1-thread-choice-btn[data-color="green"]:hover {
    filter: brightness(1.22) drop-shadow(0 10px 28px rgba(46, 204, 113, 0.85));
}
.level1-thread-choice-btn[data-color="yellow"]:hover {
    filter: brightness(1.24) drop-shadow(0 10px 30px rgba(241, 196, 15, 0.9));
}

/* 选线确认反馈：被选中的线轴与苏绣离场一致（共用 packOutBottomLeft，淡出与滑动同时进行） */
.level1-thread-choice-btn.is-picked {
    position: relative;
    z-index: 2;
    animation: packOutBottomLeft 1.2s ease-in-out forwards;
    pointer-events: none;
    transform-origin: center center;
}

.level1-thread-choice-btn.is-fading-out {
    opacity: 0;
    transition: opacity 0.3s ease-out;
    pointer-events: none;
}

/* 选线面板在选中离场时允许按钮滑出视窗 */
.level1-thread-choice-panel {
    overflow: visible;
}

@keyframes level1ThreadChoiceFloat {
    0%, 100% { transform: translateY(0) scale(1); filter: brightness(1); }
    50%      { transform: translateY(-8px) scale(1.02); filter: brightness(1.06); }
}

@keyframes level1ThreadChoiceShake {
    0%, 100%   { transform: translateX(0) translateY(-6px) scale(1.14) rotate(0deg); }
    25%        { transform: translateX(-4px) translateY(-7px) scale(1.18) rotate(-3deg); }
    50%        { transform: translateX(4px) translateY(-8px) scale(1.18) rotate(3deg); }
    75%        { transform: translateX(-3px) translateY(-7px) scale(1.16) rotate(-2deg); }
}

/* 关卡一样稿选择：三个大按钮并排，选其一后进入游玩 */
.level1-draft-select {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 48px;
    background: transparent;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
}
/* 样稿选择阶段：背景变暗 + 虚化 */
/* 使用预处理的虚化背景图，避免实时 backdrop-filter 卡顿 */
.level1-draft-select::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    background: url('images/draft-select-bg-blur.webp') center / cover no-repeat;
    z-index: 0;
}
.level1-draft-select-title,
.level1-draft-select-btns {
    position: relative;
    z-index: 1;
}

.level1-draft-select.is-visible {
    pointer-events: auto;
    opacity: 1;
}

/* “选择你的样稿”标题：轻微缩放呼吸动效 */
@keyframes level1-draft-select-title-breathe {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.06); }
}

.level1-draft-select-title {
    display: block;
    margin: 0;
    width: auto;
    max-width: min(90%, 360px);   /* 再大一点 */
    height: auto;
    pointer-events: none;
    animation: level1-draft-select-title-breathe 2.8s ease-in-out infinite;
}

.level1-draft-select-btns {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 40px;
    flex-wrap: wrap;
    background: transparent;   /* 透明，贴图透明区域透出场景 */
}

/* 样稿按钮轻微上下浮动 */
@keyframes level1-draft-btn-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

.level1-draft-btn {
    padding: 0;
    border: none;
    background-color: transparent !important;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 500px auto;
    cursor: pointer;
    border-radius: 12px;
    transition: transform 0.2s ease, filter 0.2s ease;
    animation: level1-draft-btn-float 3.2s ease-in-out infinite;
}
.level1-draft-btn[data-draft="2"] { animation-delay: 0.4s; }
.level1-draft-btn[data-draft="3"] { animation-delay: 0.8s; }
/* 常态：灰色样稿作为按钮背景 */
.level1-draft-btn[data-draft="1"] { background-image: url('images/btn-yanggao-1-gray.webp'); }
.level1-draft-btn[data-draft="2"] { background-image: url('images/btn-yanggao-2-gray.webp'); }
.level1-draft-btn[data-draft="3"] { background-image: url('images/btn-yanggao-3-gray.webp'); }

/* 样稿贴图：彩色图默认透明，悬停时显示 */
.level1-draft-btn .level1-draft-btn-color {
    display: block;
    width: 500px;
    height: auto;
    border-radius: 12px;
    pointer-events: none;
    background: none !important;
    background-color: transparent !important;
    box-shadow: none;
    mix-blend-mode: normal;
    opacity: 0;
    transition: opacity 0.2s ease;
}
.level1-draft-btn:hover .level1-draft-btn-color {
    opacity: 1;
}

.level1-draft-btn:hover {
    animation: none;
    transform: scale(1.06) translateY(0);
    filter: brightness(1.08);
}

.level1-draft-btn:active {
    animation: none;
    transform: scale(0.98) translateY(0);
    filter: brightness(0.95);
}

/* 样稿选择离场动画：被选中的样稿使用与苏绣产品相同的离场动画 */
.level1-draft-btn.pack-into-bag {
    animation: packOutBottomLeft 1.2s ease-in-out forwards !important;
    pointer-events: none;
    transform-origin: center center;
}

/* 样稿选择离场动画：未选中的样稿使用淡出动画 */
@keyframes draftFadeOut {
    0%   { opacity: 1; }
    100% { opacity: 0; }
}

.level1-draft-btn.fade-out {
    animation: draftFadeOut 0.6s ease-out forwards !important;
    pointer-events: none;
}

/* 样稿选择容器在离场时允许按钮移出视窗 */
.level1-draft-select:has(.level1-draft-btn.pack-into-bag),
.level1-draft-select:has(.level1-draft-btn.fade-out) {
    overflow: visible;
}

/* 对话框显示动画 */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(100%);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 对话框隐藏动画 */
@keyframes fadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

@keyframes fadeOutDown {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(100%);
    }
}

.level1-simple-modal-title {
    font-family: 'GameTitle', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
    font-size: 1.6rem;
    margin-bottom: 10px;
}
.level1-simple-modal-body {
    font-size: 1.05rem;
    color: #333;
    margin-bottom: 16px;
}

/* 右侧：聊天窗口（已取消，隐藏；智能助手改为绣娘弹窗等方式使用） */
.level1-chat-area {
    display: none !important;
}

.level1-chat-content-inline {
    flex: 1;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.level1-chat-header {
    background: linear-gradient(135deg, #DAA520, #B8860B);
    color: #fff;
    padding: 12px 16px;
    border-radius: 10px;
    margin-bottom: 15px;
}

.level1-chat-header h3 {
    margin: 0;
    font-size: 1.3em;
    text-align: center;
}

.level1-chat-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* 关卡三界面样式 */
.level3-screen {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: url('images/level3-background.webp') center center / cover no-repeat;
    z-index: 999;
}

/* 关卡三开场：立绘+文本框（与关卡二同风格），自下而上划入 */
.level3-intro-dialog {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30%;
    z-index: 1001;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    transition: transform 0.5s ease;
}

.level3-intro-dialog.level3-dialog-enter-from-bottom {
    transform: translateY(100%);
}

.level3-intro-dialog-content {
    position: relative;
    width: 100%;
    height: 100%;
    background: url('images/dialog-textbox-bg.webp') center top / cover no-repeat;
    background-color: rgba(50, 50, 50, 0.85);
    border-radius: 12px 12px 0 0;
    padding: 0;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    overflow: visible;
}

.level3-intro-dialog-character-wrapper {
    flex: 0 0 35%;
    width: 35%;
    position: relative;
    overflow: visible;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    z-index: 2;
    margin-top: -10%;
}

.level3-intro-dialog-character {
    height: 150%;
    width: auto;
    max-height: none;
    object-fit: contain;
    position: relative;
    z-index: 2;
    transform: translateX(-20px) translateY(70px);
}

.level3-intro-dialog-text-wrapper {
    flex: 0 0 65%;
    width: 65%;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 20px 24px;
    z-index: 2;
}

.level3-intro-dialog-text {
    color: #4a3728;
    font-size: 2.1em;
    line-height: 1.8;
    white-space: pre-wrap;
    word-wrap: break-word;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    width: 100%;
    text-align: left;
    position: relative;
    z-index: 2;
}

/* 关卡三“点击任意键继续”：使用 continue-hint 贴图 */
.level3-intro-continue {
    position: absolute;
    left: 50%;
    top: 72px;
    transform: translateX(-50%);
    width: 420px;
    height: 48px;
    background-image: url('images/continue-hint.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 1002;
    animation: loginIntroContinueFloat 2.2s ease-in-out infinite;
}

.level3-intro-continue.is-visible {
    opacity: 1;
}

/* 关卡三结尾：旅程回顾（10 张艺术字贴图，每次 2 张共 5 轮） */
.level3-recap {
    position: fixed;
    inset: 0;
    z-index: 1003;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.75);
    opacity: 0;
    transition: opacity 0.6s ease;
    pointer-events: none;
}
.level3-recap.is-visible {
    opacity: 1;
}
.level3-recap-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    max-width: 95%;
}
.level3-recap-pair {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    flex-wrap: wrap;
}
.level3-recap-sticker {
    max-width: min(42vw, 380px);
    width: auto;
    height: auto;
    max-height: 28vh;
    object-fit: contain;
    opacity: 0;
    transition: opacity 0.45s ease;
}
.level3-recap-pair.is-visible .level3-recap-sticker {
    opacity: 1;
}

/* 关卡三结尾：收束语 + 查看结局按钮 */
.level3-closing {
    position: fixed;
    inset: 0;
    z-index: 1004;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.7);
    opacity: 0;
    transition: opacity 0.5s ease;
}
.level3-closing.is-visible {
    opacity: 1;
    pointer-events: auto;
}
.level3-closing-text {
    margin: 0 0 28px 0;
    color: #f5f0e8;
    font-size: 2em;
    letter-spacing: 0.05em;
    text-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}
.level3-closing-btn {
    padding: 12px 32px;
    font-size: 1.1em;
    color: #4a3728;
    background: linear-gradient(180deg, #f5e6c8, #e8d4a8);
    border: 2px solid #c4a574;
    border-radius: 8px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.level3-closing-btn:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3);
}

.level3-panel {
    max-width: 720px;
    width: 90%;
    background: transparent;
    border-radius: 18px;
    padding: 40px 32px 32px;
    position: relative;
    text-align: center;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
    min-height: 400px;
}
.level3-panel::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('images/dialog-texture-overlay.webp');
    background-size: 97% auto;
    background-position: 37% 40%;
    background-repeat: no-repeat;
    opacity: 0.6;
    z-index: 1;
    pointer-events: none;
    border-radius: 18px;
}

.level3-buttons {
    display: flex;
    justify-content: center;
    margin-top: 12px;
}

/* 关卡三聊天室样式（与关卡一保持一致） */
.level3-chat-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2100;
}

.level3-chat-content {
    background: linear-gradient(135deg, #FFFACD, #F5F5DC);
    border: 3px solid #DAA520;
    border-radius: 20px;
    width: 900px;
    max-width: 95vw;
    max-height: 85vh;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
}

.level3-chat-header {
    background: linear-gradient(135deg, #DAA520, #B8860B);
    color: #fff;
    padding: 12px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.level3-chat-header h3 { margin: 0; font-size: 1.3em; }
.level3-chat-body { padding: 20px; }
.level3-messages { height: 450px; overflow-y: auto; background: rgba(255,255,255,0.8); border: 1px solid rgba(218,165,32,0.3); border-radius: 10px; padding: 15px; margin-bottom: 12px; }
.level3-input-container { display: flex; gap: 10px; align-items: center; position: relative; }
.level3-input-container input { flex: 1; border: 2px solid #DAA520; border-radius: 8px; padding: 10px 14px; font-size: 1em; }

.level3-msg { display: flex; align-items: flex-start; gap: 8px; margin: 6px 0; }
.level3-msg.user { justify-content: flex-end; }
.level3-msg.bot { justify-content: flex-start; }
.level3-avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; box-shadow: 0 1px 3px rgba(0,0,0,0.2); }
.level3-bubble { display: inline-block; padding: 8px 12px; border-radius: 12px; max-width: 70%; word-break: break-word; box-shadow: 0 1px 2px rgba(0,0,0,0.06); white-space: pre-wrap; line-height: 1.6; }

.level3-image-preview-floating {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 0;
    width: 280px;
    height: 200px;
    max-width: 280px;
    max-height: 200px;
    background: white;
    border: 2px solid #DAA520;
    border-radius: 8px;
    padding: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 10;
    overflow: hidden;
}
.level3-image-preview-floating img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}
.level3-remove-image-btn {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ef476f;
    color: white;
    border: none;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.level3-remove-image-btn:hover { background: #d62828; }

#level3-send-btn { padding: 6px 12px !important; font-size: 0.9em !important; min-width: 50px; height: 36px; }

/* 关卡二聊天室样式（与关卡一/三保持一致） */
.level2-chat-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2100;
}

.level2-chat-content {
    background: linear-gradient(135deg, #FFFACD, #F5F5DC);
    border: 3px solid #DAA520;
    border-radius: 20px;
    width: 900px;
    max-width: 95vw;
    max-height: 85vh;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
}

.level2-chat-header {
    background: linear-gradient(135deg, #DAA520, #B8860B);
    color: #fff;
    padding: 12px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.level2-chat-header h3 { margin: 0; font-size: 1.3em; }
.level2-chat-body { padding: 20px; }
.level2-messages { height: 450px; overflow-y: auto; background: rgba(255,255,255,0.8); border: 1px solid rgba(218,165,32,0.3); border-radius: 10px; padding: 15px; margin-bottom: 12px; }
.level2-input-container { display: flex; gap: 10px; align-items: center; position: relative; }
.level2-input-container input { flex: 1; border: 2px solid #DAA520; border-radius: 8px; padding: 10px 14px; font-size: 1em; }

.level2-msg { display: flex; align-items: flex-start; gap: 8px; margin: 6px 0; }
.level2-msg.user { justify-content: flex-end; }
.level2-msg.bot { justify-content: flex-start; }
.level2-avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; box-shadow: 0 1px 3px rgba(0,0,0,0.2); }
.level2-bubble { display: inline-block; padding: 8px 12px; border-radius: 12px; max-width: 70%; word-break: break-word; box-shadow: 0 1px 2px rgba(0,0,0,0.06); white-space: pre-wrap; line-height: 1.6; }

.level2-image-preview-floating {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 0;
    width: 280px;
    height: 200px;
    max-width: 280px;
    max-height: 200px;
    background: white;
    border: 2px solid #DAA520;
    border-radius: 8px;
    padding: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 10;
    overflow: hidden;
}
.level2-image-preview-floating img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}
.level2-remove-image-btn {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ef476f;
    color: white;
    border: none;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.level2-remove-image-btn:hover { background: #d62828; }

#level2-send-btn { padding: 6px 12px !important; font-size: 0.9em !important; min-width: 50px; height: 36px; }

/* 绣娘聊天室弹窗（关卡一“向绣娘提问”用） */
.level1-xiuniang-chat-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2100;
}

.level1-xiuniang-chat-content {
    background: linear-gradient(135deg, #FFFACD, #F5F5DC);
    border: 3px solid #DAA520;
    border-radius: 20px;
    width: 900px;
    max-width: 95vw;
    max-height: 85vh;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
}

.level1-xiuniang-chat-header {
    background: linear-gradient(135deg, #DAA520, #B8860B);
    color: #fff;
    padding: 12px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.level1-xiuniang-chat-header h3 { margin: 0; font-size: 1.3em; }
.level1-xiuniang-chat-body { padding: 20px; }
.level1-xiuniang-messages { height: 450px; overflow-y: auto; background: rgba(255,255,255,0.8); border: 1px solid rgba(218,165,32,0.3); border-radius: 10px; padding: 15px; margin-bottom: 12px; }
.level1-xiuniang-input-container { display: flex; gap: 10px; align-items: center; position: relative; }
.level1-xiuniang-input-container input { flex: 1; border: 2px solid #DAA520; border-radius: 8px; padding: 10px 14px; font-size: 1em; }

.level1-xiuniang-msg { display: flex; align-items: flex-start; gap: 8px; margin: 6px 0; }
.level1-xiuniang-msg.user { justify-content: flex-end; }
.level1-xiuniang-msg.bot { justify-content: flex-start; }
.level1-xiuniang-avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; box-shadow: 0 1px 3px rgba(0,0,0,0.2); }
.level1-xiuniang-bubble { display: inline-block; padding: 8px 12px; border-radius: 12px; max-width: 70%; word-break: break-word; box-shadow: 0 1px 2px rgba(0,0,0,0.06); white-space: pre-wrap; line-height: 1.6; }

.level1-xiuniang-image-preview-floating {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 0;
    width: 280px;
    height: 200px;
    max-width: 280px;
    max-height: 200px;
    background: white;
    border: 2px solid #DAA520;
    border-radius: 8px;
    padding: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 10;
    overflow: visible;
}
.level1-xiuniang-image-preview-floating img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    border-radius: 4px;
    overflow: hidden;
}
.level1-xiuniang-remove-image-btn {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #c41e3a;
    color: #fff;
    border: 2px solid #fff;
    cursor: pointer;
    font-size: 18px;
    font-weight: bold;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.35);
    z-index: 11;
}
.level1-xiuniang-remove-image-btn:hover { background: #d62828; border-color: #fff; }

#level1-xiuniang-send-btn { padding: 6px 12px !important; font-size: 0.9em !important; min-width: 50px; height: 36px; }

/* 绣娘回复时：浏览器底部立绘+文本框，自下而上+打字机（与预设对话框同风格） */
.level1-xiuniang-reply-dialog {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30%;
    z-index: 2101;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    transition: transform 0.5s ease;
    pointer-events: none;
}
.level1-xiuniang-reply-dialog.below {
    transform: translateY(100%);
}
.level1-xiuniang-reply-dialog.entered {
    transform: translateY(0);
}
.level1-xiuniang-reply-dialog.slide-down {
    transform: translateY(140%);
}
.level1-xiuniang-reply-dialog-content {
    position: relative;
    width: 100%;
    height: 100%;
    background: url('images/dialog-textbox-bg.webp') center top / cover no-repeat;
    background-color: rgba(50, 50, 50, 0.85);
    border-radius: 12px 12px 0 0;
    padding: 0;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    overflow: visible;
}
.level1-xiuniang-reply-character-wrapper {
    flex: 0 0 35%;
    width: 35%;
    position: relative;
    overflow: visible;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    z-index: 2;
    margin-top: -10%;
}
.level1-xiuniang-reply-character {
    height: 150%;
    width: auto;
    max-height: none;
    object-fit: contain;
    position: relative;
    z-index: 2;
    transform: translateX(-45px) translateY(70px); /* 立绘整体再下移一点 */
}
.level1-xiuniang-reply-text-wrapper {
    flex: 0 0 65%;
    width: 65%;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 20px 24px 20px 8px;
    z-index: 2;
}
.level1-xiuniang-reply-text-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('images/dialog-texture-overlay.webp');
    background-size: 97% auto;
    background-position: 37% 40%;
    background-repeat: no-repeat;
    opacity: 0.6;
    z-index: 1;
    pointer-events: none;
}
.level1-xiuniang-reply-text {
    color: #4a3728;
    font-size: 2.1em;
    line-height: 1.8;
    white-space: pre-wrap;
    word-wrap: break-word;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    width: 100%;
    text-align: left;
    position: relative;
    z-index: 2;
    padding-left: 0;
    margin-left: -12px;
}

/* 绣娘回复时“点击任意键继续”提示：与引导页同一位置（top: 72px） */
.level1-xiuniang-reply-continue-hint {
    position: fixed;
    left: 50%;
    top: 72px;
    transform: translateX(-50%);
    width: 420px;
    height: 48px;
    background-image: url('images/continue-hint.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 2200;
    animation: loginIntroContinueFloat 2.2s ease-in-out infinite;
}
.level1-xiuniang-reply-continue-hint.is-visible {
    opacity: 1;
}
.level1-xiuniang-reply-dialog.await-click {
    pointer-events: auto;
}
.level1-xiuniang-chat-modal.await-click {
    cursor: pointer;
}

/* 聊天气泡内长回复“点击继续”提示（共用机制） */
.chat-long-reply-hint {
    display: inline-block;
    margin-top: 8px;
    padding: 4px 10px;
    border-radius: 6px;
    background: rgba(0, 0, 0, 0.08);
    color: #555;
    font-size: 0.85em;
    cursor: pointer;
    user-select: none;
}
.chat-long-reply-hint.is-dismiss {
    background: rgba(0, 0, 0, 0.12);
}

/* 关卡二新智能助手聊天室样式 */
.level2-chat-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2100;
}

.level2-chat-content {
    background: linear-gradient(135deg, #FFFACD, #F5F5DC);
    border: 3px solid #DAA520;
    border-radius: 20px;
    width: 900px;
    max-width: 95vw;
    max-height: 85vh;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
}

.level2-chat-header {
    background: linear-gradient(135deg, #DAA520, #B8860B);
    color: #fff;
    padding: 12px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.level2-chat-header h3 {
    margin: 0;
    font-size: 1.3em;
}

.level2-chat-body {
    padding: 20px;
}

.level2-messages {
    height: 450px;
    overflow-y: auto;
    background: rgba(255,255,255,0.8);
    border: 1px solid rgba(218,165,32,0.3);
    border-radius: 10px;
    padding: 15px;
    margin-bottom: 12px;
}

.level2-input-container {
    display: flex;
    gap: 10px;
    align-items: center;
    position: relative;
}

.level2-input-container input {
    flex: 1;
    border: 2px solid #DAA520;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 1em;
}

/* 关卡二聊天室消息样式 */
.level2-msg {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 6px 0;
}

.level2-msg.user {
    justify-content: flex-end;
}

.level2-msg.bot {
    justify-content: flex-start;
}

.level2-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.level2-bubble {
    display: inline-block;
    padding: 8px 12px;
    border-radius: 12px;
    max-width: 70%;
    word-break: break-word;
    box-shadow: 0 1px 2px rgba(0,0,0,0.06);
    white-space: pre-wrap;
    line-height: 1.6;
}

/* 关卡二图片预览 */
.level2-image-preview-floating {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 0;
    width: 280px;
    height: 200px;
    max-width: 280px;
    max-height: 200px;
    background: white;
    border: 2px solid #DAA520;
    border-radius: 8px;
    padding: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 10;
    overflow: hidden;
}

.level2-image-preview-floating img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

.level2-remove-image-btn {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ef476f;
    color: white;
    border: none;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.level2-remove-image-btn:hover {
    background: #d62828;
}

/* 关卡二发送按钮 */
#level2-send-btn {
    padding: 6px 12px !important;
    font-size: 0.9em !important;
    min-width: 50px;
    height: 36px;
}

.level1-title {
    font-size: 2.4rem;
    margin-bottom: 18px;
}

.level1-subtitle {
    font-size: 1rem;
    color: #555;
    line-height: 1.8;
    margin-bottom: 26px;
}

.level1-buttons {
    display: flex;
    gap: 16px;
    justify-content: center;
    margin-top: 24px;
}

.level1-btn {
    padding: 12px 40px;
    font-size: 1.1rem;
}

#money-display {
    color: #000;
    font-weight: bold;
    font-size: 1.1em;
}

/* 游戏主界面 */
.game-main {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}

.cargo-section, .route-section {
    background: #FFFACD;
    border-radius: 15px;
    padding: 20px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    /* backdrop-filter: blur(15px); 移除模糊效果提升性能 */
    border: 1px solid rgba(255, 255, 255, 0.3);
    position: relative;
    max-height: 600px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.cargo-section.decorative-border, .route-section.decorative-border {
    border: 3px solid #DAA520;
    box-shadow: 
        0 8px 32px rgba(0, 0, 0, 0.15),
        0 0 0 2px rgba(218, 165, 32, 0.3),
        inset 0 0 0 1px rgba(255, 215, 0, 0.2);
}

.ship-section {
    background: #FFFACD;
    background-image: url('images/ship-silhouette.webp');
    background-repeat: no-repeat;
    background-position: center bottom;
    background-size: 90% auto;
    border-radius: 15px;
    padding: 20px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
    /* backdrop-filter: blur(15px); 移除模糊效果提升性能 */
    border: 1px solid rgba(255, 255, 255, 0.3);
    position: relative;
}

.ship-section.decorative-border {
    border: 3px solid #DAA520;
    box-shadow: 
        0 8px 32px rgba(0, 0, 0, 0.15),
        0 0 0 2px rgba(218, 165, 32, 0.3),
        inset 0 0 0 1px rgba(255, 215, 0, 0.2);
}

.cargo-section h3, .ship-section h3, .route-section h3 {
    font-family: 'GameTitle', 'Microsoft YaHei', '微软雅黑', Arial, sans-serif;
    text-align: center;
    margin-bottom: 20px;
    color: #1a252f;
    font-size: 1.3em;
    text-shadow: 1px 1px 4px rgba(255, 255, 255, 0.6);
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.section-title-icon {
    width: 32px;
    height: 32px;
    object-fit: contain;
    vertical-align: middle;
}

/* 物资列表 */
.cargo-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 12px;
    justify-items: center;
    overflow-y: auto;
    max-height: 500px;
    flex: 1;
}

/* 空货物状态提示 */
.empty-cargo-message {
    background: linear-gradient(45deg, #ecf0f1, #bdc3c7);
    color: #7f8c8d;
    padding: 30px 15px;
    border-radius: 15px;
    text-align: center;
    border: 2px dashed #95a5a6;
    transition: all 0.3s ease;
    animation: emptyPulse 2s ease-in-out infinite;
    grid-column: 1 / -1;
    width: 100%;
}

@keyframes emptyPulse {
    0%, 100% { 
        opacity: 0.8;
        transform: scale(1);
    }
    50% { 
        opacity: 1;
        transform: scale(1.02);
    }
}

.empty-icon {
    font-size: 3em;
    margin-bottom: 15px;
    animation: iconFloat 3s ease-in-out infinite;
}

.empty-shop-img {
    width: 80px;
    height: 80px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

@keyframes iconFloat {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-5px); }
}

.empty-text {
    font-size: 1.3em;
    font-weight: bold;
    margin-bottom: 10px;
    color: #2c3e50;
}

.empty-hint {
    font-size: 0.9em;
    opacity: 0.8;
    font-style: italic;
}

.cargo-item {
    background: linear-gradient(45deg, #f39c12, #e67e22);
    color: white;
    padding: 12px;
    border-radius: 16px;
    cursor: grab;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(243, 156, 18, 0.3);
    user-select: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    width: 160px;
    height: 160px;
    position: relative;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.cargo-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(243, 156, 18, 0.4);
}

.cargo-item:active {
    cursor: grabbing;
    transform: scale(0.95);
}

.cargo-item.dragging {
    opacity: 0.7;
    transform: rotate(5deg);
}

.cargo-name {
    font-weight: bold;
    font-size: 1.1em;
    text-align: center;
    line-height: 1.3;
    margin-bottom: 4px;
}

.cargo-details {
    font-size: 0.9em;
    margin-top: 5px;
    opacity: 0.9;
}

/* 货物贴图样式 */
.cargo-image-container {
    width: 100%;               /* 随外层方框自适应 */
    height: 100%;              /* 随外层方框自适应 */
    padding: 6px;              /* 内边距形成透明边框 */
    margin-bottom: 8px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.25);
    border-radius: 14px;
    overflow: hidden;          /* 永不越界 */
    border: 2px solid rgba(255, 255, 255, 0.3);
}

.cargo-image {
    width: 100%;
    height: 100%;
    object-fit: contain;   /* 自适应容器且不超出 */
    border-radius: 10px;
}

.cargo-fallback {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    font-size: 0.8em;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 8px;
}

.cargo-icon {
    font-size: 3.8em;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.cargo-icon-img {
    width: 95px;
    height: 95px;
    object-fit: contain;
}

.cargo-name-small {
    font-size: 0.6em;
    font-weight: bold;
    line-height: 1.1;
}

.cargo-info {
    width: 100%;
    text-align: center;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.cargo-stats {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    font-size: 0.7em;
}

.cargo-stats span {
    background: rgba(255, 255, 255, 0.2);
    padding: 1px 4px;
    border-radius: 8px;
    font-size: 0.65em;
    text-align: center;
    line-height: 1.3;
}

.fragility-低 {
    background: rgba(46, 204, 113, 0.8) !important;
}

.fragility-中 {
    background: rgba(241, 196, 15, 0.8) !important;
}

.fragility-高 {
    background: rgba(231, 76, 60, 0.8) !important;
}

/* 货物风险等级背景边框 */
.cargo-item.risk-low {
    background: url('images/cargo-bg-low.webp') center center / cover no-repeat;
}

.cargo-item.risk-medium {
    background: url('images/cargo-bg-medium.webp') center center / cover no-repeat;
}

.cargo-item.risk-high {
    background: url('images/cargo-bg-high.webp') center center / cover no-repeat;
}

/* 船只样式 */


.ship-info {
    margin-top: 15px;
}

.ship-stats {
    display: flex;
    justify-content: space-around;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 10px;
    padding: 10px;
    font-size: 0.9em;
    color: black;
}

/* 航线列表 */
.route-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.route-item {
    background: linear-gradient(45deg, #27ae60, #2ecc71);
    color: white;
    padding: 15px;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.3s ease;
    /* 改为金色光晕 */
    box-shadow: 0 4px 15px rgba(218, 165, 32, 0.35), 0 0 12px rgba(255, 215, 0, 0.35);
}

.route-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 22px rgba(218, 165, 32, 0.5), 0 0 16px rgba(255, 215, 0, 0.5);
}

.route-item.selected {
    background: linear-gradient(45deg, #2ecc71, #27ae60);
    box-shadow: 0 6px 20px rgba(39, 174, 96, 0.4), 0 0 0 3px rgba(39, 174, 96, 0.8), 0 0 12px rgba(39, 174, 96, 0.8);
    border: 3px solid #27ae60;
}

/* 航线背景图片样式 */
.route-item.route-jinghang {
    background: url('images/route-jinghang-canal.webp') center center / cover no-repeat;
}

.route-item.route-suitang {
    background: url('images/route-suitang-canal.webp') center center / cover no-repeat;
}

.route-item.route-zhedong {
    background: url('images/route-zhedong-canal.webp') center center / cover no-repeat;
}

.route-name {
    font-weight: bold;
    font-size: 1.1em;
}

.route-details {
    font-size: 0.9em;
    margin-top: 5px;
    opacity: 0.9;
}

/* 游戏底部 */
.game-footer {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

.btn {
    padding: 8px 60px;
    border: 2px solid #B8860B;
    border-radius: 15px;
    font-size: 1.1em;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    min-height: 60px;
    min-width: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.btn-primary {
    background: url('images/btn-start-voyage.webp') center center / cover no-repeat;
    color: white;
}

.btn-primary:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(52, 152, 219, 0.4);
}

/* 规则按钮样式 */
.btn-rules {
    background: url('images/btn-rules-closed.webp') center center / contain no-repeat;
    background-color: transparent; /* 透明背景，只显示贴图 */
    color: #333;
    padding: 0;
    border-radius: 6px;
    min-width: 70px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0; /* 隐藏文字 */
    text-shadow: none;
    box-shadow: none; /* 移除阴影，让贴图更自然 */
    transition:
        transform 0.2s ease-out,
        box-shadow 0.2s ease-out,
        filter 0.2s ease-out;
    border: none;
    position: relative;
    /* 确保贴图的透明部分显示为透明 */
    background-blend-mode: normal;
}

.btn-rules[data-state="open"] {
    background-image: url('images/btn-rules-open.webp');
}

/* 规则按钮容器，包含按钮和文字 */
.game-header .rules-container {
    position: absolute;
    top: 15px;
    right: 15px;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.game-header .rules-text {
    font-size: 12px;
    color: #333;
    text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.8);
    font-weight: bold;
}

/* 规则按钮：悬停时轻微浮起（关卡内的规则按钮） */
.btn-rules:hover {
    transform: translateY(-2px) scale(1.03);
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.25));
}

.btn-rules[data-state="open"] {
    background-image: url('images/btn-rules-open.webp');
    background-color: #FFF8DC; /* 稍微不同的备用背景色 */
}

/* =========================
   登录页（覆盖层）
   ========================= */
.login-screen {
    position: fixed;
    inset: 0;
    z-index: 1800; /* 小于 rules-modal (2000)，确保规则弹窗能盖在登录页上 */
    background: url('images/login-bg.webp') center center / cover no-repeat;
}

.login-screen.is-hidden {
    display: none;
}

.login-top-left {
    position: absolute;
    top: 18px;
    left: 18px;
    display: flex;
    gap: 18px;
    align-items: center;
}

.login-icon-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
}

/* 登录页：游戏标题，稍微位于“开始游戏”按钮上方偏右 */
.login-game-title {
    position: absolute;
    left: 19%;
    top: 50%;
    transform: translate(-50%, -50%) scale(0.5); /* 用 scale 放大显示，不靠改 height */
    transform-origin: center center;
    width: auto;
    pointer-events: none;
    text-align: center;
}

.login-game-title .game-title-img {
    max-height: none;
    /* 不设置固定 height，图片按原始尺寸显示，大小完全由容器的 scale(0.5) 控制 */
    width: auto;
    height: auto;
    /* 呼吸/闪光效果：透明度轻微变化 */
    animation: loginTitleBreathe 2.2s ease-in-out infinite;
    will-change: opacity, transform, filter;
}

@keyframes loginTitleBreathe {
    0%   { opacity: 0.62; transform: scale(0.995); filter: drop-shadow(0 0 0 rgba(255,255,255,0)); }
    50%  { opacity: 1.0;  transform: scale(1.015); filter: drop-shadow(0 0 14px rgba(255,255,255,0.35)); }
    100% { opacity: 0.62; transform: scale(0.995); filter: drop-shadow(0 0 0 rgba(255,255,255,0)); }
}

.login-game-title .game-title-img {
    max-height: none;
    /* 不设置固定 height，图片按原始尺寸显示，大小完全由容器的 scale(2.1) 控制 */
    width: auto;
    height: auto;
}

.login-icon-btn {
    width: 70px;
    height: 70px;
    border: none;
    padding: 0;
    background-color: transparent;
    cursor: pointer;
    box-shadow: none;
    position: relative;
    overflow: hidden; /* 让波纹限定在按钮区域内 */
    transform-origin: center center;
    transition:
        transform 0.2s ease-out,
        box-shadow 0.2s ease-out,
        filter 0.2s ease-out;
}

.login-settings-btn {
    background: url('images/btn-settings.webp') center center / contain no-repeat;
}

/* 登录页：游戏答疑助手按钮（使用 ai - assistant - icon 贴图） */
.login-helper-btn {
    background: url('images/ai - assistant - icon.gif') center center / contain no-repeat;
}

/* 登录页顶部三个图标按钮：悬停时轻微晃动与放大 */
.login-icon-btn:hover {
    animation: loginIconWiggle 0.35s ease-out;
    filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.25));
}

/* 按下时产生按压感 */
.login-icon-btn:active {
    transform: translateY(0) scale(0.96);
    filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
}

/* 波纹伪元素 */
.login-icon-btn::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.55);
    transform: translate(-50%, -50%);
    opacity: 0;
    pointer-events: none;
}

.login-icon-btn:active::after {
    animation: loginIconRipple 0.35s ease-out;
}

@keyframes loginIconWiggle {
    0%   { transform: translateY(0) scale(1) rotate(0deg); }
    30%  { transform: translateY(-2px) scale(1.06) rotate(-2deg); }
    60%  { transform: translateY(-1px) scale(1.03) rotate(1.5deg); }
    100% { transform: translateY(0) scale(1) rotate(0deg); }
}

@keyframes loginIconRipple {
    0% {
        width: 0;
        height: 0;
        opacity: 0.6;
    }
    100% {
        width: 180%;
        height: 180%;
        opacity: 0;
    }
}

.login-icon-label {
    font-size: 12px;
    color: #333;
    text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.85);
    font-weight: bold;
}

/* 登录页的规则按钮：复用 .btn-rules，但禁止 open 状态的底色 */
.login-top-left .btn-rules {
    margin: 0;
    overflow: hidden; /* 让波纹限定在按钮区域内 */
    transform-origin: center center;
}
.login-top-left .btn-rules[data-state="open"] {
    background-color: transparent;
}

/* 登录页规则按钮：悬停时和设置按钮一样的抖动效果 */
.login-top-left .btn-rules:hover {
    animation: loginIconWiggle 0.35s ease-out;
    filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.25));
}

/* 登录页规则按钮：按下时的按压感 */
.login-top-left .btn-rules:active {
    transform: translateY(0) scale(0.96);
    filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.2));
}

/* 登录页规则按钮：波纹效果 */
.login-top-left .btn-rules::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.55);
    transform: translate(-50%, -50%);
    opacity: 0;
    pointer-events: none;
}

.login-top-left .btn-rules:active::after {
    animation: loginIconRipple 0.35s ease-out;
}

/* 登录页：“点击开始游戏”提示气泡（指向开始游戏按钮） */
.login-start-game-hint {
    position: absolute;
    left: 40%;
    top: 65%;
    transform: translate(-50%, -50%);
    width: 280px;
    height: 90px;
    background: url('images/start-game-hint.webp') center center / contain no-repeat;
    pointer-events: none;
    z-index: 1;
    animation: loginStartGameHintBreathe 2.2s ease-in-out infinite;
}

@keyframes loginStartGameHintBreathe {
    0%, 100% { transform: translate(-50%, -50%) translateY(0) scale(0.97); filter: brightness(1); }
    50%      { transform: translate(-50%, -50%) translateY(-6px) scale(1.03); filter: brightness(1.05); }
}

.login-start-btn {
    position: absolute;
    left: 58%;
    top: 72%;
    transform: translateX(-50%) translateY(0);
    width: 1080px;
    height: 300px;
    border: none;
    padding: 0;
    cursor: pointer;
    background: url('images/btn-login-start.webp') center center / contain no-repeat;
    background-color: transparent;
    box-shadow: none;
    overflow: hidden; /* 波纹限定在按钮内 */
    /* 轻微上下浮动动画 */
    animation: loginStartFloat 2.2s ease-in-out infinite;
    transition:
        transform 0.12s ease-out,
        box-shadow 0.12s ease-out,
        filter 0.12s ease-out;
}

/* 开始游戏按钮：波纹伪元素（按压时更明显） */
.login-start-btn::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.72);
    transform: translate(-50%, -50%);
    opacity: 0;
    pointer-events: none;
}

.login-start-btn:active::after {
    animation: loginIconRipple 0.35s ease-out;
}

.login-start-btn:hover {
    /* 悬停时上浮并明显放大，同时暂停上下浮动动画，叠加轻微抖动效果 */
    filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.26));
    transform: translateX(-50%) translateY(-4px) scale(1.08);
    animation: loginStartShake 0.4s ease-in-out infinite;
}

.login-start-btn:active {
    /* 按压：下沉位移 + 略缩小 + 变暗，停止浮动/抖动动画 */
    transform: translateX(-50%) translateY(6px) scale(0.95);
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.2)) brightness(0.92);
    animation: none;
}

@keyframes loginStartFloat {
    0%   { transform: translateX(-50%) translateY(0); }
    50%  { transform: translateX(-50%) translateY(-6px); }
    100% { transform: translateX(-50%) translateY(0); }
}

@keyframes loginStartShake {
    0%   { transform: translateX(-50%) translateY(-4px) scale(1.08) rotate(0deg); }
    25%  { transform: translateX(-50%) translateY(-4px) scale(1.08) rotate(-1.5deg); }
    50%  { transform: translateX(-50%) translateY(-4px) scale(1.08) rotate(0deg); }
    75%  { transform: translateX(-50%) translateY(-4px) scale(1.08) rotate(1.5deg); }
    100% { transform: translateX(-50%) translateY(-4px) scale(1.08) rotate(0deg); }
}

@media (max-width: 768px) {
    .login-top-left {
        top: 14px;
        left: 14px;
        gap: 14px;
    }
    .login-icon-btn,
    .login-top-left .btn-rules {
        width: 60px;
        height: 60px;
        min-width: 60px;
    }
    .login-start-btn {
        width: 900px;
        height: 255px;
        top: 72%;
        left: 58%;
    }
    .login-start-game-hint {
        width: 220px;
        height: 70px;
        left: 40%;
        top: 65%;
    }
}

/* =========================
   登录页：设置弹窗（简版）
   ========================= */
.login-settings-modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1900; /* 高于登录页，低于 rules-modal */
}

.login-settings-content {
    width: min(560px, 92vw);
    background: linear-gradient(135deg, #FFFACD, #F5F5DC);
    border-radius: 18px;
    padding: 0;
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}

.login-settings-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background: linear-gradient(135deg, #DAA520, #B8860B);
    color: #fff;
}

.login-settings-title {
    font-size: 1.2em;
    font-weight: bold;
}

.login-settings-close {
    width: 34px;
    height: 34px;
    border: none;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.18);
    color: #fff;
    font-size: 22px;
    line-height: 34px;
    cursor: pointer;
}

.login-settings-close:hover {
    background: rgba(255, 255, 255, 0.28);
}

.login-settings-body {
    padding: 18px 16px;
    color: #333;
}

.login-settings-row {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    line-height: 1.6;
}

.login-settings-label {
    min-width: 64px;
    font-weight: bold;
    color: #5a3d00;
}

.login-settings-value {
    opacity: 0.9;
}

/* =========================
   登录 → 关卡一 水墨过场特效
   ========================= */
.ink-transition-overlay {
    position: fixed;
    inset: 0;
    z-index: 2500; /* 高于登录页和规则弹窗 */
    background: rgba(0, 0, 0, 0.6);
    display: block;
    pointer-events: none; /* 只作为视觉效果，不阻挡交互 */
}

.ink-transition-gif {
    position: absolute;
    width: min(360px, 50vw);      /* 比之前更小、更克制 */
    height: auto;
    max-height: 40vh;
    object-fit: contain;
    pointer-events: none;
    /* 默认以按钮中心为基准：JS 会设置 left/top 为按钮中心 */
    transform: translate(-50%, -50%) scale(0.78); /* 缩小一点，覆盖在按钮上 */
    transform-origin: center center;
}

/* =========================
   登录后剧情引导页
   ========================= */
.login-intro-screen {
    position: fixed;
    inset: 0;
    z-index: 2400; /* 低于水墨特效，高于登录页与关卡 */
    background: url('images/login-intro.webp') center center / cover no-repeat;
    cursor: pointer;
    overflow: hidden; /* 文本框与立绘下移时超出部分不显示 */
}

/* 引导页底部文本框 + 立绘（与关卡一对话框同风格） */
.login-intro-dialog {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 30%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    transition: transform 0.5s ease;
}

/* 入场前：对话框在视口下方（从下往上进入） */
.login-intro-dialog.below {
    transform: translateY(100%);
}

/* 入场后：对话框在最终位置 */
.login-intro-dialog.entered {
    transform: translateY(0);
}

/* 第四段结束后点击：整块对话框（含文本框与立绘）下移消失；下移超过 100% 以覆盖立绘超出顶部的部分 */
.login-intro-dialog.slide-down {
    transform: translateY(140%);
    overflow: hidden; /* 滑动过程中超出部分不显示 */
}

.login-intro-dialog-content {
    position: relative;
    width: 100%;
    height: 100%;
    background: url('images/dialog-textbox-bg.webp') center top / cover no-repeat;
    background-color: rgba(50, 50, 50, 0.85);
    border-radius: 12px 12px 0 0;
    padding: 0;
    box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    overflow: visible;
}

.login-intro-dialog-character-wrapper {
    flex: 0 0 35%;
    width: 35%;
    position: relative;
    overflow: visible;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    z-index: 2;
    margin-top: -10%;
}

.login-intro-dialog-character {
    height: 150%;
    width: auto;
    max-height: none;
    object-fit: contain;
    position: relative;
    z-index: 2;
    transform: translateX(-20px) translateY(70px); /* 立绘整体再下移一点 */
}

.login-intro-dialog-text-wrapper {
    flex: 0 0 65%;
    width: 65%;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 20px 24px;
    z-index: 2;
}

.login-intro-dialog-text-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url('images/dialog-texture-overlay.webp');
    background-size: 97% auto;
    background-position: 37% 40%;
    background-repeat: no-repeat;
    opacity: 0.6;
    z-index: 1;
    pointer-events: none;
}

.login-intro-dialog-text {
    color: #4a3728;
    font-size: 2.1em;
    line-height: 1.8;
    white-space: pre-wrap;
    word-wrap: break-word;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    width: 100%;
    text-align: left;
    position: relative;
    z-index: 2;
}

/* 登录引导页“点击任意键继续”提示 */
.login-intro-continue {
    position: absolute;
    left: 50%;
    top: 72px; /* 贴图上边缘距离视口顶部 72px */
    transform: translateX(-50%);
    width: 420px;          /* 适中的宽度，可根据实际贴图微调 */
    height: 48px;          /* 高度按贴图比例估计 */
    background-image: url('images/continue-hint.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;  /* 不影响整屏点击事件 */
    opacity: 0;            /* 初始不可见，稍后淡入 */
    transition: opacity 0.4s ease;
    /* 轻微上下浮动动画，呼应开始游戏按钮 */
    animation: loginIntroContinueFloat 2.2s ease-in-out infinite;
}

@keyframes loginIntroContinueFloat {
    0%   { transform: translateX(-50%) translateY(0); }
    50%  { transform: translateX(-50%) translateY(-8px); } /* 浮动幅度稍微大一点 */
    100% { transform: translateX(-50%) translateY(0); }
}

/* 提示贴图进入时的可见状态 */
.login-intro-continue.is-visible {
    opacity: 1;
}

/* 第四段结束后点击：提示贴图完全隐藏（不占位、不显示） */
.login-intro-continue.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* 引导页“点击进入秀坊”按钮（第四段结束后出现，居中，使用贴图） */
.login-intro-enter-btn {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 10;
    display: none;
    width: 420px;
    height: 120px;
    padding: 0;
    font-size: 0;
    color: transparent;
    background: url('images/btn-enter-xiufang.webp') center center / contain no-repeat;
    background-color: transparent;
    border: none;
    border-radius: 0;
    cursor: pointer;
    box-shadow: none;
    transition: transform 0.15s ease, filter 0.15s ease;
}

.login-intro-enter-btn.is-visible {
    display: block;
    /* 轻微缩放与脉动 + 闪光与呼吸 */
    animation: xiufangBtnBreathe 2.2s ease-in-out infinite;
}

.login-intro-enter-btn:hover {
    /* 悬停时抖动，覆盖呼吸动画 */
    animation: xiufangBtnShake 0.4s ease-in-out infinite;
}

.login-intro-enter-btn:active {
    /* 按压反馈：停止动画、略缩小、略变暗 */
    animation: none;
    transform: translate(-50%, -50%) scale(0.96);
    filter: brightness(0.92);
}

@keyframes xiufangBtnBreathe {
    0%   { transform: translate(-50%, -50%) scale(0.99); filter: drop-shadow(0 0 10px rgba(255, 200, 200, 0.5)); }
    50%  { transform: translate(-50%, -50%) scale(1.03); filter: drop-shadow(0 0 18px rgba(255, 180, 180, 0.8)); }
    100% { transform: translate(-50%, -50%) scale(0.99); filter: drop-shadow(0 0 10px rgba(255, 200, 200, 0.5)); }
}

@keyframes xiufangBtnShake {
    0%   { transform: translate(-50%, -50%) scale(1.05) rotate(0deg); }
    25%  { transform: translate(-50%, -50%) scale(1.05) rotate(-1.5deg); }
    50%  { transform: translate(-50%, -50%) scale(1.05) rotate(0deg); }
    75%  { transform: translate(-50%, -50%) scale(1.05) rotate(1.5deg); }
    100% { transform: translate(-50%, -50%) scale(1.05) rotate(0deg); }
}

.btn-primary:disabled {
    background: #bdc3c7;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.btn-secondary {
    background: url('images/btn-clear-cargo.webp') center center / cover no-repeat;
    color: white;
}

.btn-secondary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(149, 165, 166, 0.4);
}

/* 弹窗样式 */
.event-modal, .game-over-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

/* 通关弹窗 */
.victory-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.9);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1001;
}

/* 失败结局弹窗 */
.failure-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.85);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1002;
}

.failure-content {
    background: linear-gradient(135deg, #ffe5e5, #ffd6d6);
    padding: 40px;
    border-radius: 18px;
    text-align: center;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.45);
    max-width: 520px;
    width: 90%;
    border: 3px solid #e74c3c;
    animation: failureAppear 0.3s ease-out;
}

.failure-icon { font-size: 54px; margin-bottom: 12px; }
.failure-icon-img { width: 72px; height: 72px; object-fit: contain; display: block; margin: 0 auto 12px auto; }
.failure-stats { color: #2c3e50; font-weight: 700; margin: 8px 0 18px 0; }
.failure-content h3 { color: #c0392b; margin-bottom: 10px; }
.failure-message { color: #7f8c8d; margin-bottom: 18px; font-weight: 600; }
.failure-buttons { display: flex; justify-content: center; }

@keyframes failureAppear {
    from { opacity: 0; transform: scale(0.9) translateY(-20px); }
    to { opacity: 1; transform: scale(1) translateY(0); }
}

.victory-content {
    position: relative;
    max-width: 680px;
    width: 92%;
    text-align: center;
    animation: victoryScaleIn 0.5s ease-out forwards, victoryPulse 2s ease-in-out 0.5s infinite;
}

@keyframes victoryScaleIn {
    0%   { transform: scale(0.25); opacity: 0; }
    100% { transform: scale(1); opacity: 1; }
}

/* 通关弹窗贴图（铺满内容区，文字叠在上方） */
.victory-modal-bg {
    display: block;
    width: 100%;
    height: auto;
    max-height: 90vh;
    object-fit: contain;
    vertical-align: middle;
}

.victory-content-inner {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 50px 40px 44px;
    box-sizing: border-box;
}

@keyframes victoryPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.02); }
}

.victory-icon {
    margin-bottom: 20px;
    animation: bounce 1s ease-in-out infinite;
}

/* 通关奖杯贴图尺寸 */
.victory-trophy-img {
    width: 96px;
    height: 96px;
    display: block;
    margin: 0 auto;
    object-fit: contain;
}

/* 通关时丝线飘落画布（不拦截事件） */
.confetti-canvas {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    pointer-events: none;
    z-index: 9999;
}

@keyframes bounce {
    0%, 20%, 50%, 80%, 100% { transform: translateY(0); }
    40% { transform: translateY(-10px); }
    60% { transform: translateY(-5px); }
}

.victory-content h3 {
    color: #d35400;
    margin-bottom: 15px;
    font-size: 2.2em;
    font-weight: bold;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

.victory-message {
    color: #8b4513;
    margin-bottom: 25px;
    font-size: 1.2em;
    font-weight: 500;
    line-height: 1.4;
}

.victory-stats {
    background: rgba(255, 255, 255, 0.8);
    padding: 20px;
    border-radius: 10px;
    margin-bottom: 30px;
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: 15px;
}

.victory-stats .stat-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.victory-stats .stat-label {
    color: #666;
    font-size: 0.9em;
}

.victory-stats .stat-item span:last-child {
    color: #d35400;
    font-size: 1.3em;
    font-weight: bold;
}

.victory-buttons {
    display: flex;
    gap: 15px;
    justify-content: center;
    flex-wrap: wrap;
}

.victory-buttons .btn {
    padding: 12px 25px;
    font-size: 1.1em;
    min-width: 120px;
}

.victory-buttons .btn:hover:not(:disabled) {
    box-shadow: 0 6px 20px rgba(218, 165, 32, 0.5);
}

.modal-content {
    background: #FFFACD;
    border-radius: 20px;
    padding: 30px;
    max-width: 500px;
    width: 90%;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: modalAppear 0.3s ease-out;
}

@keyframes modalAppear {
    from {
        opacity: 0;
        transform: scale(0.8) translateY(-50px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.modal-content h3 {
    color: #2c3e50;
    margin-bottom: 20px;
    font-size: 1.5em;
}

.modal-content p {
    margin-bottom: 20px;
    line-height: 1.6;
    color: #555;
}

.event-choices {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 20px;
}

.event-choice {
    background: linear-gradient(45deg, #3498db, #2980b9);
    color: white;
    padding: 12px 20px;
    border: none;
    border-radius: 10px;
    cursor: pointer;
    transition: all 0.3s ease;
    font-size: 1em;
}

.event-choice:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(52, 152, 219, 0.4);
}

/* 响应式设计 */
@media (max-width: 1200px) {
    .game-main {
        grid-template-columns: 1fr;
        gap: 15px;
    }
    
    .cargo-section, .route-section {
        order: 2;
    }
    
    .ship-section {
        order: 1;
    }
}

@media (max-width: 768px) {
    .game-container {
        padding: 10px;
    }
    
    .game-header h1 {
        font-size: 2em;
    }
    
    .game-stats {
        gap: 15px;
    }
    
    .stat-item {
        padding: 8px 15px;
        font-size: 0.9em;
    }
    
    .cargo-hold {
        grid-template-columns: repeat(3, 1fr);
        gap: 6px;
    }
    
    .game-footer {
        gap: 10px;
    }
    
    .btn {
        padding: 10px 20px;
        font-size: 1em;
    }
}

/* 航行规则弹窗覆盖层：进入航行时先显示规则贴图，3秒后显示继续提示 */
.journey-rules-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: auto;
    background: rgba(0, 0, 0, 0.55);
}

.journey-rules-popup {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 82%;
    max-width: 560px;
    height: 85%;
    max-height: 85vh;
    background-image: url('images/journey-rules-popup.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    animation: journeyRulesPopupEnter 0.5s ease-out forwards, journeyRulesPopupFloat 2.2s ease-in-out 0.5s infinite;
}

.journey-rules-popup.exiting {
    animation: journeyRulesPopupExit 0.35s ease-in forwards;
}

@keyframes journeyRulesPopupEnter {
    from {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.85);
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

@keyframes journeyRulesPopupExit {
    from {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
    to {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.9);
    }
}

@keyframes journeyRulesPopupFloat {
    0%, 100% { transform: translate(-50%, -50%) translateY(0); }
    50%      { transform: translate(-50%, -50%) translateY(-6px); }
}

/* 航行规则继续提示：与引导页同一位置（top: 72px），使用 continue-hint 贴图 */
.journey-rules-continue-hint {
    position: absolute;
    left: 50%;
    top: 72px;
    transform: translateX(-50%);
    width: 420px;
    height: 48px;
    background-image: url('images/continue-hint.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
    z-index: 11;
    animation: loginIntroContinueFloat 2.2s ease-in-out infinite;
}

.journey-rules-continue-hint.is-visible {
    opacity: 1;
}

/* 航行模态框样式：底图使用 images/journey-background.png，可替换为你的预设图 */
.journey-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.5)), url('images/journey-background.webp') center center / cover no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.journey-content {
    background: #FFFACD;
    border-radius: 20px;
    padding: 30px;
    max-width: 500px;
    width: 90%;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: journeyModalAppear 0.3s ease-out;
}

@keyframes journeyModalAppear {
    from {
        opacity: 0;
        transform: scale(0.8) translateY(-20px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.journey-content h3 {
    color: #2c3e50;
    margin-bottom: 20px;
    font-size: 1.8em;
}

.journey-route {
    font-size: 1.2em;
    font-weight: bold;
    color: #3498db;
    margin-bottom: 10px;
}

.journey-distance {
    font-size: 1em;
    color: #7f8c8d;
    margin-bottom: 20px;
}

.journey-segment {
    font-size: 1em;
    color: #2c3e50;
    margin-top: 6px;
    margin-bottom: 12px;
}

.journey-progress {
    margin: 30px 0;
}

.progress-bar {
    width: 100%;
    height: 20px;
    background: #ecf0f1;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 10px;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}

.progress-fill {
    height: 100%;
    background: linear-gradient(90deg, #3498db, #2980b9);
    width: 0%;
    transition: width 0.5s ease;
    border-radius: 10px;
    position: relative;
}

.progress-fill::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    animation: progressShine 2s infinite;
}

@keyframes progressShine {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

.progress-text {
    font-size: 1.1em;
    font-weight: bold;
    color: #2c3e50;
}

.journey-status {
    font-size: 1.1em;
    color: #e74c3c;
    margin: 15px 0;
    font-weight: bold;
    animation: pulse 2s infinite;
}

/* 航行弹窗：实时银两显示 */
.journey-money {
    margin: 8px auto 6px auto;
    font-weight: 700;
    color: #2c3e50;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: url('images/gold-bg.webp') center center / contain no-repeat;
    padding: 8px 24px;
    min-width: 140px;
    min-height: 40px;
    border-radius: 8px;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

.journey-info {
    background: #f8f9fa;
    padding: 15px;
    border-radius: 10px;
    margin-top: 20px;
}

.journey-info div {
    margin: 5px 0;
    color: #555;
}

/* 航行模态：装载货物独立区块 */
.journey-cargo-summary {
    margin-top: 16px;
    background: rgba(255, 250, 205, 0.85);
    border: 2px solid rgba(243, 156, 18, 0.5);
    border-radius: 12px;
    padding: 12px 16px;
    color: #2c3e50;
    line-height: 1.6;
    font-weight: 600;
    text-align: left;
    word-break: break-word;
}

/* 航行中通知样式 */
.mid-journey-notification {
    position: fixed;
    top: 20px;
    right: 20px;
    z-index: 1100;
    animation: notificationSlide 0.3s ease-out;
}

@keyframes notificationSlide {
    from {
        opacity: 0;
        transform: translateX(100%);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.notification-content {
    background: linear-gradient(135deg, #27ae60, #2ecc71);
    color: white;
    padding: 15px 20px;
    border-radius: 10px;
    box-shadow: 0 8px 25px rgba(39, 174, 96, 0.3);
    min-width: 250px;
}

.notification-content h4 {
    margin: 0 0 8px 0;
    font-size: 1.1em;
}

.notification-content p {
    margin: 0;
    font-size: 0.9em;
    opacity: 0.9;
}

/* 航行事件模态框样式 */
.journey-event-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1300;
    /* backdrop-filter: blur(8px); 移除模糊效果提升性能 */
}

.event-modal-content {
    /* 仅贴图，透明处不显示、无衬底、无白边 */
    background-color: transparent;
    background-image: url('images/event-modal-bg.webp');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    border-radius: 20px;
    padding: 24px;
    max-width: 900px;
    width: min(94vw, 900px);
    min-height: 640px;
    text-align: center;
    box-shadow: none;
    animation: eventModalAppear 0.3s ease-out;
    border: none;
}

/* 贴图“安全区”：将内容限制在画轴内页区域，宽度略收窄使事件/题目/选项框在水平方向更短 */
.event-modal-content .event-safe {
    width: 42%; /* 内容区块宽度收窄，使事件框、题目框、选项框横向更短 */
    margin-left: auto;
    margin-right: auto;
    padding: 72px 0 90px; /* 上下留白，避免顶端/底端卷轴边缘被覆盖 */
}

/* 让标题、题目与选项在安全区内自动换行 */
.event-modal-content .event-safe .event-title-text,
.event-modal-content .event-safe .event-question-block,
.event-modal-content .event-safe .event-choices {
    width: 100%;
}

.event-modal-content .event-safe .event-title-text {
    font-size: clamp(1.0em, 0.9vw + 0.8em, 1.2em);
}

.event-modal-content .event-safe .event-question-block {
    word-break: break-word;
    overflow-wrap: anywhere;
    /* 长题目时进一步降字号 */
    font-size: clamp(0.95em, 1.0vw + 0.75em, 1.15em);
    text-align: center;
}

/* 答题页底部「询问绣娘」与选项之间的虚线分隔 */
.event-modal-content .event-safe .event-ask-xiuniang-sep {
    width: 100%;
    height: 0;
    margin: 16px 0 14px 0;
    border: none;
    border-top: 1px dashed rgba(218, 165, 32, 0.65);
}

.event-modal-content .event-safe .event-ask-xiuniang-btn {
    display: block;
    width: 100%;
    max-width: 320px;
    height: 56px;
    margin: 0 auto 8px auto;
    padding: 0;
    font-size: 0;
    color: transparent;
    text-align: center;
    border: none;
    border-radius: 0;
    outline: none;
    box-shadow: none;
    -webkit-tap-highlight-color: transparent;
    background: url('images/btn-event-ask-xiuniang.webp') center center / contain no-repeat;
    background-color: transparent;
    cursor: pointer;
    transition: transform 0.15s ease, filter 0.15s ease;
    box-sizing: border-box;
}
.event-modal-content .event-safe .event-ask-xiuniang-btn:hover {
    transform: translateY(-2px);
    filter: brightness(1.08);
}
.event-modal-content .event-safe .event-ask-xiuniang-btn:active {
    transform: translateY(0);
    filter: brightness(0.95);
}

.event-modal-content .event-safe .event-choices {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.event-modal-content .event-safe .event-choice-btn {
    width: 100%;
    margin: 0;
    padding: 12px 14px;
    font-size: 0.95em;
    box-sizing: border-box;
    text-align: center;
}

.event-modal-content .event-safe .event-choice-btn .choice-text {
    white-space: normal;
    line-height: 1.5;
    text-align: center;
}

/* 小屏优化，进一步缩放内边界，避免溢出贴图 */
@media (max-width: 600px) {
    .event-modal-content .event-safe {
        width: 52%; /* 小屏下同样略收窄宽度 */
        padding: 56px 0 72px;
    }
}
/* 小屏适配：保持完整展示 */
@media (max-width: 600px) {
    .event-modal-content {
        max-width: 95vw;
        width: 95vw;
        min-height: 70vh;
        background-size: contain;
    }
}

@keyframes eventModalAppear {
    from {
        opacity: 0;
        transform: scale(0.8) translateY(-30px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.event-modal-content h3 {
    color: #e74c3c;
    margin-bottom: 20px;
    font-size: 1.8em;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
}

.event-description {
    /* 为事件描述加一块浅色底，遮住卷轴上的红色横线 */
    color: #2c3e50;
    margin: 12px 0 25px 0;
    padding: 10px 18px 8px;
    line-height: 1.6;
    font-size: 1.1em;
    font-weight: 600;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 10px;
    border: none;
}

/* 更大字号的题目区块 */
/* 事件标题样式 */
.event-title-text {
    margin: 12px 0 16px 0;
    padding: 10px 16px;
    background: linear-gradient(135deg, rgba(231, 76, 60, 0.15), rgba(243, 156, 18, 0.15));
    border: none;
    border-radius: 8px;
    color: #c0392b;
    font-size: 1.15em;
    font-weight: 600;
    text-align: center;
}

.event-question-block {
    margin: 15px 0 20px 0;
    padding: 12px 16px;
    background: rgba(255,255,255,0.6);
    border: 2px solid rgba(243, 156, 18, 0.5);
    border-radius: 12px;
    color: #2c3e50;
    font-size: 1.3em;
    font-weight: 700;
    line-height: 1.7;
    text-align: center;
}

/* 走向弹窗样式 */
.outcome-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1400;
}

.outcome-modal-content {
    background: linear-gradient(135deg, #fff3cd, #ffeaa7);
    border-radius: 20px;
    padding: 0;
    max-width: 600px;
    width: 90%;
    max-height: 80vh;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.4);
    border: 3px solid #f39c12;
    overflow: hidden;
    animation: outcomeModalAppear 0.3s ease-out;
}

@keyframes outcomeModalAppear {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(-20px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.outcome-header {
    padding: 20px;
    text-align: center;
}

.outcome-header.outcome-good {
    background: linear-gradient(135deg, #27ae60, #2ecc71);
    color: white;
}

.outcome-header.outcome-bad {
    background: linear-gradient(135deg, #e74c3c, #c0392b);
    color: white;
}

.outcome-header h3 {
    margin: 0;
    font-size: 1.8em;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}

.outcome-body {
    padding: 25px;
    max-height: 50vh;
    overflow-y: auto;
}

.outcome-text {
    color: #2c3e50;
    font-size: 1.1em;
    line-height: 1.8;
    text-align: justify;
    margin: 0;
}

.outcome-footer {
    padding: 20px;
    text-align: center;
    border-top: 2px solid rgba(243, 156, 18, 0.3);
    display: flex;
    justify-content: center;
    align-items: center;
}

.outcome-footer .btn {
    min-width: 150px;
    padding: 12px 30px;
    font-size: 1.1em;
}

.event-choices {
    display: flex;
    flex-direction: column;
    gap: 12px;
}


.event-choice-btn {
    background: linear-gradient(45deg, #FFF1B8, #FFD666); /* 淡黄色系 */
    color: #5a3d00; /* 深棕以保证可读性 */
    padding: 15px 20px;
    border: none;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(255, 214, 102, 0.35);
    text-align: center;
    font-size: 1em;
}

.event-choice-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(255, 214, 102, 0.5);
    background: linear-gradient(45deg, #FFE28A, #FFC53D);
}

.event-choice-btn:active {
    transform: translateY(0px);
}

.choice-text {
    font-weight: bold;
    font-size: 1.1em;
    margin-bottom: 5px;
}

.choice-description {
    font-size: 0.9em;
    opacity: 0.9;
    font-style: italic;
}

/* 选择结果样式 */
.choice-result {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    padding: 20px 30px;
    border-radius: 15px;
    font-size: 1.2em;
    font-weight: bold;
    text-align: center;
    z-index: 1400;
    animation: resultPopup 0.5s ease-out;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    pointer-events: none;
}

/* 增强反馈样式 */
.enhanced-feedback {
    position: fixed;
    top: 20%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.8);
    padding: 24px 72px;
    border-radius: 0;
    font-size: 1.4em;
    font-weight: bold;
    text-align: center;
    z-index: 1500;
    box-shadow: none;
    pointer-events: none;
    opacity: 0;
    transition: all 0.3s ease;
    border: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    /* 使用统一的奖惩结算窗口贴图作为底图 */
    background-color: transparent;
    background-image: url('images/ui_settlement_window_bg.webp');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    /* backdrop-filter: blur(10px); 移除模糊效果提升性能 */
}

.enhanced-feedback.show {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.enhanced-feedback.hide {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8);
}

.feedback-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 8px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    font-size: 0; /* 隐藏原来的 emoji 文本 */
    animation: iconBounce 0.6s ease-out;
}

.feedback-message {
    font-size: 1.2em;
    margin-bottom: 10px;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
    color: #000000; /* 奖惩结算文字统一为黑色 */
}

.feedback-effect {
    display: none; /* 使用整张贴图做底图，不再需要额外光效层 */
}

/* 奖惩结算图标贴图：好走向 / 坏走向 */
.enhanced-feedback.choice-success .feedback-icon {
    background-image: url('images/ui_settlement_icon_success.webp');
}

.enhanced-feedback.choice-danger .feedback-icon {
    background-image: url('images/ui_settlement_icon_fail.webp');
}

@keyframes iconBounce {
    0% { transform: scale(0.5) rotate(-10deg); }
    50% { transform: scale(1.2) rotate(5deg); }
    100% { transform: scale(1) rotate(0deg); }
}

@keyframes feedbackGlow {
    0%, 100% { box-shadow: inset 0 0 20px rgba(255, 255, 255, 0.2); }
    50% { box-shadow: inset 0 0 30px rgba(255, 255, 255, 0.4); }
}

@keyframes resultPopup {
    from {
        opacity: 0;
        transform: translate(-50%, -50%) scale(0.8);
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

.choice-success {
    color: white;
}

.choice-warning {
    color: white;
}

.choice-danger {
    color: white;
}

.choice-neutral {
    color: white;
}

/* 增强反馈颜色 */
.enhanced-feedback.choice-success {
    border-color: #1e8449;
    color: white;
}

.enhanced-feedback.choice-warning {
    border-color: #d68910;
    color: white;
}

.enhanced-feedback.choice-danger {
    border-color: #a93226;
    color: white;
}

.enhanced-feedback.choice-neutral {
    border-color: #5d6d7e;
    color: white;
}

/* 航行结果模态框样式：参考 event-modal，外层遮罩 + 内层贴图弹窗；底图使用 journey-background */
.journey-result-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.55)), url('images/journey-background.webp') center center / cover no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1200;
}

/* 内层：journey-result-popup 贴图作为弹窗（contain 保持比例） */
.journey-result-popup-content {
    background-color: transparent;
    background-image: url('images/journey-result-popup.webp');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    border-radius: 20px;
    padding: 24px;
    max-width: min(94vw, 520px);
    width: min(94vw, 520px);
    min-height: 480px;
    text-align: center;
    box-shadow: none;
    animation: resultModalAppear 0.4s ease-out;
    border: none;
    display: flex;
    flex-direction: column;
}

.result-content {
    background: transparent;
    border-radius: 20px;
    padding: 36px 32px 32px;
    max-width: 100%;
    width: 100%;
    flex: 1;
    min-height: 0;
    text-align: center;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}

/* 文字区域占弹窗 2/3 */
.result-text-area {
    flex: 2;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
}

@keyframes resultModalAppear {
    from {
        opacity: 0;
        transform: scale(0.9) rotate(-2deg);
    }
    to {
        opacity: 1;
        transform: scale(1) rotate(0deg);
    }
}

.result-content h3 {
    color: #2c3e50;
    margin-bottom: 12px;
    font-size: 1.65em;
}

.result-details {
    margin-bottom: 0;
    width: 100%;
    max-width: 320px;
}

.result-evaluation {
    margin-top: 12px;
    font-size: 1.2em;
    font-weight: bold;
    color: #2c3e50;
}

.result-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0;
    border-bottom: 1px solid #ecf0f1;
}

.result-item:last-child {
    border-bottom: none;
}

.result-label {
    font-weight: bold;
    color: #555;
    font-size: 1.2em;
}

.result-value {
    font-weight: bold;
    color: #2c3e50;
    font-size: 1.2em;
}

.result-value.score-gain {
    color: #e74c3c;
    font-size: 1.25em;
}

.result-value.money-gain {
    color: #f39c12;
    font-size: 1.25em;
}

/* 亏损显示 */
.result-value.money-loss {
    color: #e74c3c;
    font-size: 1.25em;
}

/* 当前纹银显示 */
.result-value.money-current {
    color: #2c3e50;
    font-size: 1.25em;
}

.result-buttons {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding-top: 16px;
    width: 100%;
}

/* 航行结算弹窗内按钮：缩小尺寸以适配贴图 */
.result-buttons .btn {
    min-height: 44px;
    min-width: 160px;
    padding: 6px 36px;
    font-size: 0.9em;
}

/* 航行结算：查看错题弹窗 */
.journey-wrong-questions-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1300;
}

/* 固定高度并裁剪，与卷轴贴图比例一致，内容不超出贴图、列表在内部滚动 */
.wrong-questions-content {
    background-color: transparent;
    background-image: url('images/wrong-questions-modal-bg.webp');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    border-radius: 20px;
    padding: 0;
    max-width: 520px;
    width: min(92vw, 520px);
    height: min(72vh, 640px);
    max-height: 72vh;
    min-height: 360px;
    overflow: hidden;
    box-shadow: none;
    border: none;
    animation: eventModalAppear 0.3s ease-out;
    display: flex;
    flex-direction: column;
}

/* 贴图内部安全区：上留足空位，文字与按钮整体下移，严格限制在卷轴内页 */
.wrong-questions-content .wrong-questions-safe {
    width: 78%;
    margin-left: auto;
    margin-right: auto;
    padding: 180px 8px 52px 8px;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    overflow: hidden;
}

.wrong-questions-content .wrong-questions-safe h3,
.wrong-questions-content .wrong-questions-safe .wrong-questions-list-sep,
.wrong-questions-content .wrong-questions-safe .wrong-questions-close-wrap {
    flex-shrink: 0;
}

.wrong-questions-content .wrong-questions-safe h3,
.wrong-questions-content .wrong-questions-safe .wrong-questions-list,
.wrong-questions-content .wrong-questions-safe .wrong-questions-close-wrap {
    width: 100%;
}

.wrong-questions-content h3 {
    color: #2c3e50;
    margin: 8px 0 8px 0;
    font-size: 1.2em;
    text-align: center;
    flex-shrink: 0;
}

.wrong-questions-list-sep {
    width: 100%;
    height: 0;
    margin: 0 0 8px 0;
    border: none;
    border-top: 1px dashed rgba(218, 165, 32, 0.65);
}

/* 列表按内容高度显示，错题多时在列表内滚动；不占满剩余空间，避免与关闭按钮之间空一大段 */
.wrong-questions-list {
    list-style: none;
    padding: 0;
    margin: 0 0 8px 0;
    margin-left: -8px;
    text-align: left;
    flex: 0 1 auto;
    min-height: 0;
    min-width: 0;
    max-height: 38vh;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
}

.wrong-questions-list li {
    padding: 8px 0;
    border-bottom: 1px solid #ecf0f1;
    color: #2c3e50;
    line-height: 1.45;
    font-size: 0.95em;
}

.wrong-questions-list li:last-child {
    border-bottom: none;
}

.wrong-q-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 16px;
    min-width: 0;
    overflow: hidden;
}

.wrong-q-text {
    flex: 1;
    min-width: 0;
    word-break: break-word;
    overflow-wrap: break-word;
    padding-right: 32px;
}

.wrong-q-sep {
    width: 0;
    height: 24px;
    border-left: 1px dashed rgba(218, 165, 32, 0.65);
    flex-shrink: 0;
    align-self: center;
}

.wrong-q-num {
    color: #e74c3c;
    font-weight: bold;
    margin-right: 2px;
    flex-shrink: 0;
}

.wrong-q-ask-xiuniang {
    flex-shrink: 0;
    margin-left: auto;
    width: 120px;
    height: 38px;
    padding: 0;
    font-size: 0;
    color: transparent;
    border: none;
    border-radius: 0;
    cursor: pointer;
    background: url('images/btn-event-ask-xiuniang.webp') center center / contain no-repeat;
    background-color: transparent;
    transition: transform 0.15s ease, filter 0.15s ease;
}

.wrong-q-ask-xiuniang:hover {
    transform: translateY(-2px);
    filter: brightness(1.08);
}

.wrong-q-ask-xiuniang:active {
    transform: translateY(0);
    filter: brightness(0.95);
}

.wrong-questions-close-wrap {
    text-align: right;
    margin-top: 4px;
    padding-top: 8px;
    padding-bottom: 6px;
    flex-shrink: 0;
}

.wrong-questions-close-wrap .btn {
    padding: 5px 20px;
    font-size: 0.85em;
    min-width: 80px;
}

.wrong-questions-close-wrap .btn:hover:not(:disabled) {
    box-shadow: 0 6px 20px rgba(218, 165, 32, 0.5);
}

/* 动画效果 */
@keyframes cargoLoad {
    0% {
        transform: scale(0.8) rotate(-10deg);
        opacity: 0;
    }
    50% {
        transform: scale(1.1) rotate(5deg);
    }
    100% {
        transform: scale(1) rotate(0deg);
        opacity: 1;
    }
}

.cargo-item.loaded {
    animation: cargoLoad 0.5s ease-out;
}

@keyframes shipShake {
    0%, 100% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
}

.ship.shaking {
    animation: shipShake 0.5s ease-in-out;
}

/* 船只航行动画 */
@keyframes shipSailing {
    0% { transform: translateX(0) rotate(0deg); }
    25% { transform: translateX(2px) rotate(0.5deg); }
    50% { transform: translateX(-1px) rotate(-0.3deg); }
    75% { transform: translateX(1px) rotate(0.2deg); }
    100% { transform: translateX(0) rotate(0deg); }
}

.ship.sailing {
    animation: shipSailing 3s ease-in-out infinite;
}

/* 水波纹效果 */
@keyframes waterRipple {
    0% { transform: scale(1); opacity: 0.7; }
    50% { transform: scale(1.05); opacity: 0.9; }
    100% { transform: scale(1); opacity: 0.7; }
}

.ship-hull.sailing {
    animation: waterRipple 4s ease-in-out infinite;
}

/* 工具提示 */
.tooltip {
    position: relative;
}

.tooltip::after {
    content: attr(data-tooltip);
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    background: rgba(0, 0, 0, 0.8);
    color: white;
    padding: 5px 10px;
    border-radius: 5px;
    font-size: 0.8em;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 1000;
}

.tooltip:hover::after {
    opacity: 1;
}

/* 运河航行场景样式 */
.canal-scene {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    min-height: 200px;
    margin: 20px 0;
    overflow: hidden;
    border-radius: 15px;
    background: linear-gradient(180deg, #87CEEB 0%, #4682B4 50%, #2E8B57 100%);
}

.journey-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}

.canal-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.water-layer {
    position: absolute;
    width: 120%;
    height: 60px;
    background: linear-gradient(90deg, 
        rgba(255, 255, 255, 0.1) 0%, 
        rgba(255, 255, 255, 0.3) 50%, 
        rgba(255, 255, 255, 0.1) 100%);
    animation: waterFlow 3s linear infinite;
}

.water-1 {
    top: 20px;
    animation-delay: 0s;
}

.water-2 {
    top: 50px;
    animation-delay: 1s;
}

.water-3 {
    top: 80px;
    animation-delay: 2s;
}

@keyframes waterFlow {
    0% { transform: translateX(-20%); }
    100% { transform: translateX(20%); }
}

.canal-banks {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.bank-left, .bank-right {
    position: absolute;
    top: 0;
    width: 30px;
    height: 100%;
    background: linear-gradient(180deg, #8B4513 0%, #654321 100%);
}

.bank-left {
    left: 0;
    border-radius: 0 15px 15px 0;
}

.bank-right {
    right: 0;
    border-radius: 15px 0 0 15px;
}

.canal-vegetation {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.tree {
    position: absolute;
    font-size: 2em;
    animation: treeSway 4s ease-in-out infinite;
}

.tree-1 {
    top: 10px;
    left: 10px;
    animation-delay: 0s;
}

.tree-2 {
    top: 20px;
    right: 10px;
    animation-delay: 1s;
}

.tree-3 {
    top: 40px;
    left: 15px;
    animation-delay: 2s;
}

.tree-4 {
    top: 30px;
    right: 15px;
    animation-delay: 3s;
}

@keyframes treeSway {
    0%, 100% { transform: rotate(0deg); }
    50% { transform: rotate(2deg); }
}

/* 航行小船样式 */
.sailing-ship {
    position: absolute;
    top: 50%;
    left: 10%;
    transform: translateY(-50%);
    animation: shipSail 8s linear infinite;
    z-index: 10;
}

.ship-body {
    position: relative;
    width: 60px;
    height: 40px;
}

.ship-hull-animated {
    width: 60px;
    height: 20px;
    background: linear-gradient(45deg, #8B4513, #A0522D);
    border-radius: 0 0 30px 30px;
    position: relative;
    animation: shipBob 2s ease-in-out infinite;
}

.ship-hull-animated::before {
    content: '';
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 12px solid #8B4513;
}

.ship-mast {
    position: absolute;
    top: -25px;
    left: 50%;
    transform: translateX(-50%);
    width: 3px;
    height: 25px;
    background: #654321;
    border-radius: 2px;
}

.ship-sail {
    position: absolute;
    top: -20px;
    left: 50%;
    transform: translateX(-50%);
    width: 20px;
    height: 15px;
    background: linear-gradient(45deg, #F0F8FF, #E6E6FA);
    border-radius: 0 10px 10px 0;
    animation: sailFlap 1.5s ease-in-out infinite;
}

@keyframes shipBob {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-3px) rotate(1deg); }
}

@keyframes sailFlap {
    0%, 100% { transform: translateX(-50%) rotate(0deg); }
    50% { transform: translateX(-50%) rotate(5deg); }
}

.ship-wake {
    position: absolute;
    top: 50%;
    left: -20px;
    transform: translateY(-50%);
    width: 40px;
    height: 20px;
    pointer-events: none;
}

.wake-line {
    position: absolute;
    width: 30px;
    height: 2px;
    background: rgba(255, 255, 255, 0.6);
    border-radius: 2px;
    animation: wakeFlow 1s linear infinite;
}

.wake-1 {
    top: 5px;
    animation-delay: 0s;
}

.wake-2 {
    top: 10px;
    animation-delay: 0.3s;
}

.wake-3 {
    top: 15px;
    animation-delay: 0.6s;
}

@keyframes wakeFlow {
    0% { 
        transform: translateX(0) scaleX(1);
        opacity: 0.8;
    }
    100% { 
        transform: translateX(-30px) scaleX(0.3);
        opacity: 0;
    }
}

/* 增强运河场景效果 */
.canal-scene::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: 
        radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(255, 255, 255, 0.1) 0%, transparent 50%);
    pointer-events: none;
    z-index: 1;
}

/* 云朵效果已移除 - 视频本身已包含云朵动画 */
/* .canal-scene::after {
    content: '☁️ ☁️ ☁️';
    position: absolute;
    top: 10px;
    left: 0;
    width: 100%;
    font-size: 1.5em;
    text-align: center;
    animation: cloudMove 20s linear infinite;
    pointer-events: none;
    z-index: 1;
}

@keyframes cloudMove {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
} */

/* 添加水花效果 */
.sailing-ship::after {
    content: '💦';
    position: absolute;
    top: 50%;
    left: -30px;
    transform: translateY(-50%);
    font-size: 1.2em;
    animation: splashEffect 0.8s ease-out infinite;
    pointer-events: none;
}

@keyframes splashEffect {
    0% { 
        transform: translateY(-50%) scale(0.8);
        opacity: 0.6;
    }
    50% { 
        transform: translateY(-50%) scale(1.2);
        opacity: 1;
    }
    100% { 
        transform: translateY(-50%) scale(0.8);
        opacity: 0.6;
    }
}

/* 小船震动效果 */
.ship-shake {
    animation: shipShakeEffect 0.5s ease-in-out;
}

.shake-gentle {
    animation: shipShakeGentle 0.8s ease-in-out;
}

.shake-moderate {
    animation: shipShakeModerate 1s ease-in-out;
}

.shake-intense {
    animation: shipShakeIntense 1.2s ease-in-out;
}

@keyframes shipShakeEffect {
    0%, 100% { transform: translateY(-50%) translateX(0); }
    25% { transform: translateY(-50%) translateX(-2px) rotate(-1deg); }
    75% { transform: translateY(-50%) translateX(2px) rotate(1deg); }
}

@keyframes shipShakeGentle {
    0%, 100% { transform: translateY(-50%) translateX(0) rotate(0deg); }
    25% { transform: translateY(-50%) translateX(-1px) rotate(-0.5deg); }
    75% { transform: translateY(-50%) translateX(1px) rotate(0.5deg); }
}

@keyframes shipShakeModerate {
    0%, 100% { transform: translateY(-50%) translateX(0) rotate(0deg); }
    20% { transform: translateY(-50%) translateX(-3px) rotate(-2deg); }
    40% { transform: translateY(-50%) translateX(3px) rotate(2deg); }
    60% { transform: translateY(-50%) translateX(-2px) rotate(-1deg); }
    80% { transform: translateY(-50%) translateX(2px) rotate(1deg); }
}

@keyframes shipShakeIntense {
    0%, 100% { transform: translateY(-50%) translateX(0) rotate(0deg); }
    10% { transform: translateY(-50%) translateX(-5px) rotate(-3deg); }
    20% { transform: translateY(-50%) translateX(5px) rotate(3deg); }
    30% { transform: translateY(-50%) translateX(-4px) rotate(-2deg); }
    40% { transform: translateY(-50%) translateX(4px) rotate(2deg); }
    50% { transform: translateY(-50%) translateX(-3px) rotate(-1deg); }
    60% { transform: translateY(-50%) translateX(3px) rotate(1deg); }
    70% { transform: translateY(-50%) translateX(-2px) rotate(-0.5deg); }
    80% { transform: translateY(-50%) translateX(2px) rotate(0.5deg); }
}

.journey-header {
    text-align: center;
    margin-bottom: 20px;
}

.journey-header h3 {
    color: #2c3e50;
    margin-bottom: 10px;
    font-size: 1.8em;
}

.journey-route {
    font-size: 1.2em;
    font-weight: bold;
    color: #3498db;
    margin-bottom: 5px;
}

.journey-distance {
    font-size: 1em;
    color: #7f8c8d;
}


/* 状态样式增强 */
.journey-status.status-success {
    color: #27ae60 !important;
    font-weight: bold;
    text-shadow: 0 0 10px rgba(39, 174, 96, 0.5);
}

.journey-status.status-warning {
    color: #f39c12 !important;
    font-weight: bold;
    text-shadow: 0 0 10px rgba(243, 156, 18, 0.5);
}

.journey-status.status-danger {
    color: #e74c3c !important;
    font-weight: bold;
    text-shadow: 0 0 10px rgba(231, 76, 60, 0.5);
    animation: dangerPulse 1s ease-in-out infinite;
}

.journey-status.status-neutral {
    color: #95a5a6 !important;
    font-weight: bold;
}

@keyframes dangerPulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

/* 商店按钮样式 */
.btn-shop {
    background: url('images/btn-shop.webp') center center / cover no-repeat;
    color: white;
    border-radius: 15px;
    padding: 8px 60px;
    min-height: 60px;
    min-width: 200px;
    border: 2px solid #B8860B;
}

.btn-shop:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(155, 89, 182, 0.4);
}

/* 禁用状态按钮样式 */
.btn:disabled {
    background: url('images/btn-disabled.webp') center center / cover no-repeat !important;
    color: #888 !important;
    cursor: not-allowed !important;
    opacity: 0.7;
    transform: none !important;
    box-shadow: none !important;
}

.btn:disabled:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* 次要按钮禁用状态（清空船舱、重新开始） */
.btn-secondary:disabled {
    background: url('images/btn-disabled.webp') center center / cover no-repeat !important;
    color: #888 !important;
    cursor: not-allowed !important;
    opacity: 0.7;
    transform: none !important;
    box-shadow: none !important;
}

.btn-secondary:disabled:hover {
    transform: none !important;
    box-shadow: none !important;
}

/* 商店模态框样式 */
.shop-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('images/shop-modal-bg.webp') center center / cover no-repeat;
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2000;
    /* backdrop-filter: blur(5px); 移除模糊效果提升性能 */
}

.shop-content {
    background: url('images/shop-content-bg.webp') center center / cover no-repeat;
    border-radius: 20px;
    padding: 0;
    max-width: 1000px;
    width: 95%;
    max-height: 90vh;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
    animation: shopAppear 0.3s ease-out;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

@keyframes shopAppear {
    from {
        opacity: 0;
        transform: scale(0.8) translateY(-50px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.shop-header {
    background: linear-gradient(135deg, #CD853F, #D2B48C);
    color: white;
    padding: 20px 30px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.shop-header h3 {
    margin: 0;
    font-size: 1.8em;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

.close-btn {
    background: none;
    border: none;
    color: white;
    font-size: 2em;
    cursor: pointer;
    padding: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.close-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: scale(1.1);
}

.shop-info {
    padding: 20px 30px;
    background: #f8f9fa;
    border-bottom: 1px solid #e9ecef;
}

.shop-balance {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.balance-label {
    font-weight: bold;
    color: #555;
}

.balance-amount {
    font-size: 1.5em;
    font-weight: bold;
    color: #f39c12;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.1);
}

.shop-description {
    color: #666;
    font-size: 0.9em;
    font-style: italic;
}

.shop-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.shop-items {
    flex: 1;
    padding: 20px 30px;
    overflow-y: auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 15px;
    min-height: 0;
}

.shop-item {
    background: url('images/shop-item-bg.webp') center center / cover no-repeat;
    border: 3px solid #FFD700;
    border-radius: 15px;
    padding: 15px;
    transition: all 0.3s ease;
    position: relative;
    overflow: visible;
    display: flex;
    flex-direction: column;
    height: auto;
    min-height: 350px;
}

/* 风险等级边框样式 */
.shop-item.risk-high-border {
    border: 3px solid #8B0000;
}

.shop-item.risk-medium-border {
    border: 3px solid #000080;
}

.shop-item.risk-low-border {
    border: 3px solid #006400;
}

.shop-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
    border-color: #FFD700 !important;
}

.shop-item-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 15px;
}

.shop-item-icon {
    font-size: 2.5em;
    width: auto;
    height: auto;
    min-width: 100px;
    min-height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border-radius: 0;
    border: none;
    padding: 0;
}

.shop-item-icon-img {
    width: 100%;
    height: auto;
    max-width: 100px;
    max-height: 100px;
    object-fit: contain;
    display: block;
}

.shop-item-info {
    flex: 1;
}

.shop-item-name {
    font-size: 1.3em;
    font-weight: bold;
    color: #2c3e50;
    margin-bottom: 5px;
}

.shop-item-type {
    color: #7f8c8d;
    font-size: 0.9em;
    background: #e9ecef;
    padding: 2px 8px;
    border-radius: 10px;
    display: inline-block;
}

.shop-item-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 15px 0;
    flex: 1;
}

.stat-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 12px;
    background: #f8f9fa;
    border-radius: 8px;
    font-size: 0.9em;
}

.stat-label {
    color: #666;
    font-weight: 500;
}

.stat-value {
    font-weight: bold;
    color: #2c3e50;
}

.stat-value.profit {
    color: #27ae60;
}

.stat-value.cost {
    color: #e74c3c;
}

.shop-item-purchase {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-top: auto !important;
    padding-top: 15px !important;
    border-top: 1px solid #e9ecef !important;
    width: 100% !important;
    flex-shrink: 0 !important;
}

.purchase-price {
    font-size: 1.2em;
    font-weight: bold;
    color: #e74c3c;
}

.purchase-btn {
    background: linear-gradient(45deg, #27ae60, #2ecc71) !important;
    color: white !important;
    border: none !important;
    padding: 12px 24px !important;
    border-radius: 25px !important;
    font-weight: bold !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 15px rgba(39, 174, 96, 0.3) !important;
    display: inline-block !important;
    min-width: 100px !important;
    text-align: center !important;
    font-size: 14px !important;
    z-index: 10 !important;
    position: relative !important;
}

.purchase-btn:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(39, 174, 96, 0.4);
}

.purchase-btn:disabled {
    background: #bdc3c7;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.shop-footer {
    padding: 20px 30px;
    background: #f8f9fa;
    border-top: 1px solid #e9ecef;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    flex-shrink: 0;
    align-items: center;
}

/* 购买成功动画 */
@keyframes purchaseSuccess {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

.shop-item.purchased {
    animation: purchaseSuccess 0.6s ease-out;
    background: linear-gradient(135deg, #d4edda, #c3e6cb);
    border-color: #27ae60;
}

/* 购买反馈样式 */
.purchase-feedback {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.8);
    background: #FFFACD;
    padding: 20px 30px;
    border-radius: 15px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    z-index: 3000;
    display: flex;
    align-items: center;
    gap: 15px;
    opacity: 0;
    transition: all 0.3s ease;
    border: 3px solid;
}

.purchase-feedback.show {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

.purchase-feedback.hide {
    opacity: 0;
    transform: translate(-50%, -50%) scale(0.8);
}

.purchase-feedback.feedback-success {
    border-color: #27ae60;
    background: linear-gradient(135deg, #d4edda, #c3e6cb);
}

.purchase-feedback.feedback-danger {
    border-color: #e74c3c;
    background: linear-gradient(135deg, #f8d7da, #f5c6cb);
}

.purchase-feedback.feedback-warning {
    border-color: #f39c12;
    background: linear-gradient(135deg, #fff3cd, #ffeaa7);
}

.purchase-feedback .feedback-icon {
    font-size: 1.5em;
}

.purchase-feedback .feedback-message {
    font-weight: bold;
    color: #2c3e50;
}

/* 响应式设计 */
@media (max-width: 768px) {
    .shop-content {
        width: 95%;
        max-height: 95vh;
    }
    
    .shop-items {
        grid-template-columns: 1fr;
        padding: 15px 20px;
    }
    
    .shop-item {
        min-height: 300px;
        padding: 12px;
    }
    
    .shop-item-stats {
        grid-template-columns: 1fr;
    }
    
    .shop-footer {
        flex-direction: column;
        padding: 15px 20px;
        gap: 15px;
    }
}

/* 规则弹窗样式 */
.rules-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2000;
    /* backdrop-filter: blur(5px); 移除模糊效果提升性能 */
}

.rules-content {
    background: linear-gradient(135deg, #FFFACD, #F5F5DC);
    border: 3px solid #DAA520;
    border-radius: 20px;
    padding: 0;
    max-width: 700px;
    max-height: 90vh;
    width: 95%;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
    position: relative;
    overflow: hidden;
    animation: rulesAppear 0.3s ease-out;
}

@keyframes rulesAppear {
    from {
        opacity: 0;
        transform: scale(0.8) translateY(-50px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.rules-header {
    background: linear-gradient(45deg, #DAA520, #B8860B);
    color: white;
    padding: 20px;
    text-align: center;
    position: relative;
}

.rules-header h3 {
    margin: 0;
    font-size: 1.5em;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

.rules-body {
    padding: 25px;
    max-height: 70vh;
    overflow-y: auto;
}

.rule-section {
    margin-bottom: 20px;
    padding: 15px;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 10px;
    border-left: 4px solid #DAA520;
}

.rule-section h4 {
    color: #8B4513;
    margin: 0 0 10px 0;
    font-size: 1.1em;
}

.rule-section p {
    margin: 0;
    line-height: 1.6;
    color: #333;
}

.rules-footer {
    padding: 15px 20px 20px 20px;
    text-align: center;
    background: #FFFACD;
    border-top: 1px solid rgba(218, 165, 32, 0.3);
    margin-top: -10px;
    display: flex;
    justify-content: center;
    align-items: center;
}
/* 现有样式保持不变，在文件末尾添加以下样式 */

/* 已移除：AI助手按钮与容器样式 */

/* 关卡二"智能助手"独立按钮 */
.game-header .level2-agent-container {
    position: absolute;
    top: 15px;
    right: 100px; /* 调整位置 */
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.btn-level2-agent {
    background: transparent;
    color: #333;
    padding: 0;
    border-radius: 6px;
    min-width: 70px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0;
    text-shadow: none;
    box-shadow: none;
    border: none;
    cursor: pointer;
    position: relative;
    overflow: visible;
}

.btn-level2-agent::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: url("images/ai - assistant - icon.gif") center center / contain no-repeat;
    transition: transform 0.25s ease, filter 0.25s ease;
    pointer-events: none;
}

.btn-level2-agent:hover::before {
    transform: translateY(-6px) scale(1.03);
    filter: drop-shadow(0 8px 18px rgba(0, 0, 0, 0.25));
}

.btn-level2-agent:active::before {
    transform: translateY(-2px) scale(1.01);
}

.btn-image {
    background: url('images/upload-icon.webp') center center / contain no-repeat;
    background-color: transparent;
    border: none !important;
    border-radius: 0;
    box-shadow: none !important;
    padding: 0;
    cursor: pointer;
    min-width: 36px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: none;
    flex-shrink: 0;
    position: relative;
}
.btn-image::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 100%;
    background: url('images/upload-icon.webp') center center / contain no-repeat;
    transition: transform 0.3s ease, filter 0.3s ease;
}
.btn-image:hover::before {
    transform: scale(1.1);
    filter: brightness(1.1);
}


/* 已移除：AI助手文字样式 */

/* 已移除：AI助手弹窗与消息样式 */

/* 关卡一聊天室样式 */
.level1-chat-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 2100;
}

.level1-chat-content {
    background: linear-gradient(135deg, #FFFACD, #F5F5DC);
    border: 3px solid #DAA520;
    border-radius: 20px;
    width: 900px;
    max-width: 95vw;
    max-height: 85vh;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
}

.level1-chat-header {
    background: linear-gradient(135deg, #DAA520, #B8860B);
    color: #fff;
    padding: 12px 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.level1-chat-header h3 {
    margin: 0;
    font-size: 1.3em;
}

.level1-chat-body {
    padding: 20px;
}

.level1-messages {
    flex: 1;
    overflow-y: auto;
    background: rgba(255,255,255,0.8);
    border: 1px solid rgba(218,165,32,0.3);
    border-radius: 10px;
    padding: 15px;
    margin-bottom: 12px;
    min-height: 0; /* 允许flex收缩 */
}

.level1-input-container {
    display: flex;
    gap: 10px;
    align-items: center;
    position: relative;
}

.level1-input-container input {
    flex: 1;
    border: 2px solid #DAA520;
    border-radius: 8px;
    padding: 10px 14px;
    font-size: 1em;
}

/* 关卡一聊天室消息样式 */
.level1-msg {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 6px 0;
}

.level1-msg.user {
    justify-content: flex-end;
}

.level1-msg.bot {
    justify-content: flex-start;
}

.level1-avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}

.level1-bubble {
    display: inline-block;
    padding: 8px 12px;
    border-radius: 12px;
    max-width: 70%;
    word-break: break-word;
    box-shadow: 0 1px 2px rgba(0,0,0,0.06);
    white-space: pre-wrap;
    line-height: 1.6;
}

/* 关卡一图片预览 */
.level1-image-preview-floating {
    display: none;
    position: absolute;
    bottom: calc(100% + 8px);
    left: 0;
    width: 280px;
    height: 200px;
    max-width: 280px;
    max-height: 200px;
    background: white;
    border: 2px solid #DAA520;
    border-radius: 8px;
    padding: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 10;
    overflow: hidden;
}

.level1-image-preview-floating img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

.level1-remove-image-btn {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #ef476f;
    color: white;
    border: none;
    cursor: pointer;
    font-size: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

.level1-remove-image-btn:hover {
    background: #d62828;
}

/* 关卡一发送按钮 */
#level1-send-btn {
    padding: 6px 12px !important;
    font-size: 0.9em !important;
    min-width: 50px;
    height: 36px;
}

/* 关卡一响应式布局 */
@media (max-width: 1024px) {
    .level1-container {
        flex-direction: column;
        height: auto;
        max-height: 95vh;
    }

    .level1-game-area {
        flex: 1;
        min-height: 50vh;
    }

    .level1-chat-area {
        flex: 1;
        min-height: 40vh;
    }
}

@media (max-width: 768px) {
    .level1-screen {
        padding: 0;
    }

    .level1-container {
        gap: 0;
        width: 100%;
    }

    .level1-game-header {
        flex-direction: row;
        justify-content: flex-end;
        gap: 10px;
    }

    .level1-nav-btn {
        width: auto;
    }
}