/* FONTS-BEGIN（tools/build_fonts.py 產生，請勿手改） */
@font-face{font-family:"Noto Serif TC";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/noto-serif-tc-700-extra.woff2) format("woff2");unicode-range:U+4E01,U+4E10-4E11,U+4E14-4E16,U+4E18-4E19,U+4E1E-4E1F,U+4E2B,U+4E30,U+4E38-4E39,U+4E43,U+4E45,U+4E48,U+4E4B,U+4E4D-4E4F,U+4E52-4E53,U+4E56,U+4E59,U+4E5D-4E5E,U+4E69,U+4E73,U+4E8E,U+4E91-4E92,U+4E95,U+4E99,U+4E9E,U+4EA1-4EA2,U+4EA5-4EA6,U+4EA8,U+4EAB-4EAC,U+4EC0-4EC1,U+4EC3-4EC4,U+4EC6-4EC7,U+4ED4-4ED5,U+4ED7,U+4ED9,U+4EDE-4EDF,U+4EE4,U+4EF0,U+4EF2-4EF3,U+4EFD,U+4EFF,U+4F01,U+4F09-4F0B,U+4F0D,U+4F0F-4F10,U+4F15,U+4F19,U+4F2F-4F30,U+4F34,U+4F36,U+4F3A,U+4F3C-4F3D,U+4F43,U+4F46-4F48,U+4F50-4F51,U+4F57,U+4F59-4F5B,U+4F5D-4F5E,U+4F60,U+4F63,U+4F69,U+4F6C,U+4F6F-4F70,U+4F73,U+4F75,U+4F7A-4F7B,U+4F7E,U+4F83,U+4F88,U+4F8B,U+4F8D,U+4F8F,U+4F91,U+4F96,U+513F-5141,U+5143-5144,U+5146-5147,U+5149,U+514C-514D,U+5154-5155,U+516B,U+516E,U+5175,U+5177-5178,U+5189-518A,U+5197,U+51AC,U+51B0,U+51B6-51B7,U+51BD,U+51E0-51E1,U+51F6,U+51F8-51F9,U+51FD,U+5200-5201,U+5203,U+5208,U+520A,U+520E,U+5211-5212,U+5216,U+5224,U+5228,U+522E,U+5236-5238,U+523A-523B,U+5241,U+52A3,U+52AA-52AC,U+52BB,U+52BE,U+52FA-52FB,U+52FF,U+5305-5306,U+5308,U+5315,U+531D,U+5320-5321,U+5323,U+5339,U+5343,U+5345,U+5347-534A,U+5351-5353,U+535C,U+535E,U+5360-5361,U+5366,U+536E-5371,U+5375,U+5377-5379,U+5384,U+53BB,U+53C8-53C9,U+53CD,U+53D4,U+53E4,U+53E6,U+53E8-53E9,U+53EB-53EE,U+53F1-53F3,U+53F5,U+53F8,U+53FB-53FC,U+5401,U+5403,U+5406,U+540A-540B,U+540E-5410,U+5412,U+541B,U+541D-5420,U+5427,U+5429,U+542C-542E,U+5431,U+5433,U+5435-5436,U+5438-5439,U+543B-543C,U+543E,U+5440,U+5442-5443,U+5446,U+5448,U+544E,U+5462,U+5468,U+5471,U+5475-5478,U+547B,U+547D,U+5480,U+5484,U+5486,U+548B,U+548E,U+5490,U+5492,U+5495-5496,U+549A,U+56DA,U+56DD,U+56E0,U+56E4,U+56EA-56EB,U+56F0,U+5729,U+572C-572D,U+572F,U+5733,U+573B,U+573E,U+5747,U+574A,U+574D-5751,U+5761,U+5764,U+5766,U+5769-576A,U+5777,U+577C,U+5783,U+58EB-58EC,U+58EF,U+5915,U+5919,U+591C,U+592D-592E,U+5937-5938,U+593E,U+5944,U+5947-5949,U+5954,U+5973-5974,U+5976,U+5978-5979,U+5981,U+5983-5984,U+598A,U+598D,U+5992-5993,U+5996,U+5999,U+599D-599E,U+59A3-59A5,U+59A8,U+59AE-59AF,U+59B3,U+59B9,U+59BB,U+59BE,U+59C5-59C6,U+59CA,U+59CD,U+59D0-59D2,U+59D4,U+5B51,U+5B53-5B55,U+5B5A-5B5D,U+5B5F,U+5B63-5B64,U+5B83,U+5B85,U+5B87-5B88,U+5B8B,U+5B8F,U+5B97,U+5B99,U+5B9B-5B9C,U+5BF8,U+5BFA,U+5C16,U+5C1A,U+5C22,U+5C24,U+5C2C,U+5C38-5C3A,U+5C3C,U+5C3E-5C3F,U+5C41,U+5C45-5C46,U+5C48,U+5C6F,U+5C71,U+5C79,U+5C8C,U+5C90-5C91,U+5C94,U+5CA1,U+5CA9,U+5CAB,U+5CB1,U+5CB3,U+5CB7-5CB8,U+5DDD-5DDE,U+5DE1,U+5DE6,U+5DE8,U+5DEB,U+5DF1,U+5DF3-5DF4,U+5DFE,U+5E03,U+5E06,U+5E11,U+5E15-5E16,U+5E18,U+5E1A-5E1B,U+5E72-5E73,U+5E76,U+5E78,U+5E7B,U+5E87,U+5E8A,U+5E96-5E97,U+5E9A,U+5E9C,U+5EF6-5EF7,U+5EFE-5EFF,U+5F01,U+5F0B,U+5F13-5F14,U+5F17-5F18,U+5F1B,U+5F1F,U+5F27,U+5F29,U+5F64,U+5F77,U+5F79,U+5F7C,U+5F7F-5F81,U+5FCC-5FCD,U+5FD6-5FD9,U+5FDD,U+5FE0,U+5FEA,U+5FF1,U+5FF5,U+5FF8,U+5FFD,U+5FFF,U+600F,U+6014-6016,U+601B,U+6021,U+6029-602B,U+602F,U+6035,U+6208,U+620A,U+620C-620E,U+6212,U+6215,U+6236,U+623E-623F,U+624E,U+6251-6252,U+6254,U+6258,U+625B,U+6263,U+626D-626F,U+6273,U+6276,U+627C,U+627F-6280,U+6284,U+6286,U+6289-628A,U+6291-6293,U+6295-6298,U+62A8,U+62AB-62AC,U+62B1,U+62B5,U+62B9,U+62BD,U+62BF,U+62C2,U+62C4,U+62C6-62C8,U+62CB-62CE,U+62D0,U+62D2-62D4,U+62D6-62DA,U+652F,U+6538,U+653B,U+6597,U+65A4-65A5,U+65A7,U+65E6,U+65E8,U+65EC-65ED,U+65F1,U+65FA,U+6600,U+6602,U+6606-6607,U+660A,U+660C,U+660F,U+6613-6615,U+66F0,U+66F3,U+670B,U+672B,U+672D-672E,U+6731,U+6734-6735,U+673D,U+6746,U+6749,U+674E-6751,U+6753,U+6756-6757,U+675C,U+675E-6760,U+676A,U+676D,U+676F-6773,U+6775,U+6777,U+677C,U+677E,U+6787,U+6789,U+678B,U+6790,U+6793,U+6795,U+6797,U+679A,U+679D,U+6B20,U+6B23,U+6B66-6B67,U+6B79,U+6B7B,U+6B7F,U+6BCB,U+6BCD,U+6BD4,U+6BDB,U+6C0F-6C11,U+6C13,U+6C16,U+6C1B,U+6C38,U+6C3E,U+6C40-6C41,U+6C4D-6C4E,U+6C50,U+6C55,U+6C57,U+6C59,U+6C5B,U+6C5D-6C61,U+6C68,U+6C6A,U+6C70,U+6C72,U+6C74,U+6C76,U+6C7D-6C7E,U+6C81-6C83,U+6C85-6C86,U+6C88-6C89,U+6C8C-6C8D,U+6C90,U+6C94,U+6C96,U+6C98-6C99,U+6C9B,U+6CAB-6CAC,U+6CAE,U+6CB1,U+6CB3,U+6CB8-6CB9,U+6CBB-6CBF,U+6CC1,U+6CC4-6CC5,U+6CCA,U+6CCC,U+6CD3,U+6CD6-6CD7,U+6CDB-6CDC,U+6CE0-6CE3,U+6CE5,U+6CE8,U+6CEF,U+6CF1,U+6CF3,U+7070,U+7076,U+7078,U+707C-707D,U+708A,U+708E,U+7092,U+7095,U+7099,U+722A,U+722C-722D,U+7236,U+7238,U+723B,U+7259,U+725B,U+725D,U+725F-7262,U+7267,U+72AC,U+72AF,U+72C0,U+72C2,U+72C4,U+72CE,U+72D0,U+72D7,U+72D9,U+7384,U+7389,U+738B,U+7396,U+739F,U+73A5,U+73A8-73A9,U+73AB,U+74DC,U+74E6,U+7518,U+7529,U+752B-752C,U+7530,U+7532,U+7537-7538,U+753D,U+758B,U+7599-759A,U+759D,U+767E,U+7682,U+76AE,U+76BF,U+76C2,U+76EF,U+76F2,U+77DB,U+77E2-77E3,U+77F3,U+77FD,U+793E,U+7940-7941,U+79BE-79C0,U+79C8-79C9,U+7A74,U+7A76,U+7A79,U+7AF9-7AFA,U+7CF8,U+7CFE,U+7F36,U+7F54-7F55,U+7F8A-7F8C,U+7FBD,U+800C,U+8012,U+8033,U+807F,U+8089,U+808B-808C,U+8093,U+8096,U+8098,U+809A-809B,U+809D,U+80A1-80A2,U+80A5,U+80A9-80AB,U+80AF,U+80B1,U+80B4,U+80BA,U+81E3,U+81E5,U+81FC,U+81FE,U+820C-820D,U+821B,U+821F,U+826E-826F,U+827E,U+828B,U+828D,U+8292,U+8299,U+829D,U+829F,U+82A3,U+82A5,U+82AC,U+82AF-82B1,U+82B3,U+82B7-82B9,U+82BD-82BE,U+864E,U+866B,U+8671,U+8840,U+8863,U+897F,U+89D2,U+8C37,U+8C46,U+8C55,U+8C9D,U+8D64,U+8D70,U+8DB3,U+8ECA-8ECB,U+8F9B,U+8FB0,U+8FC2,U+8FC4-8FC6,U+8FD4,U+9091,U+90A2-90A3,U+90A6,U+90AA,U+90B1,U+90B5-90B6,U+90B8,U+9149,U+91C6-91C7,U+91CC,U+961C,U+9621,U+962A,U+962C,U+962E,U+9631,U+963B,U+963F-9640,U+9644}
@font-face{font-family:"Noto Serif TC";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/noto-serif-tc-700-cjk.woff2) format("woff2");unicode-range:U+A7,U+A9,U+2032-2033,U+203B,U+2103,U+2190-2193,U+25A0-25A1,U+25CB,U+25CE-25CF,U+3001-3002,U+3008-300F,U+301C,U+3042,U+3044,U+3046,U+3048,U+304A-304F,U+3051,U+3053-3055,U+3057-305B,U+305D,U+305F-3061,U+3063-306B,U+306D-3070,U+3073,U+3076,U+3078-3079,U+307B-307C,U+307E-3082,U+3084,U+3087-308D,U+308F,U+3092-3093,U+30A2,U+30A4,U+30A6-30AB,U+30AD-30B1,U+30B3-30BB,U+30BF-30C1,U+30C3-30C4,U+30C6,U+30C8-30CB,U+30CE,U+30D0,U+30D2-30D7,U+30DA-30DE,U+30E0-30E3,U+30E5,U+30E9-30ED,U+30F3,U+30FB-30FC,U+4E00,U+4E03,U+4E08-4E0B,U+4E0D,U+4E26,U+4E2D,U+4E32,U+4E3B,U+4E5F,U+4E86,U+4E88,U+4E8B-4E8C,U+4E94,U+4E9B,U+4EA4,U+4EAE,U+4EBA,U+4ECA-4ECB,U+4ECD,U+4ED6,U+4ED8,U+4EE3,U+4EE5,U+4EEE,U+4EF6,U+4EFB,U+4F11,U+4F1A,U+4F1D,U+4F38,U+4F4D-4F4F,U+4F53-4F55,U+4F5C,U+4F7F,U+4F86,U+4F9B,U+4F9D,U+4FBF,U+4FC2,U+4FDD,U+4FE1,U+4FEE,U+500B,U+5011,U+5019,U+503C,U+505C,U+5099,U+50B3,U+50C5,U+512A,U+5145,U+5148,U+514B,U+5152,U+5165,U+5167-5169,U+516C-516D,U+5171,U+5176,U+518D,U+51FA,U+5206-5207,U+5217,U+521D,U+5225,U+5229-522A,U+5230,U+524A,U+524D,U+5275,U+529B,U+529F-52A0,U+52A9,U+52B9,U+52D5,U+52D9,U+52E2,U+52FE,U+5316-5317,U+532F,U+5340-5341,U+5354,U+5373,U+53C2-53C3,U+53CA-53CB,U+53D6-53D7,U+53E3,U+53E5,U+53EA,U+53EF-53F0,U+53F7,U+5404,U+5408-5409,U+540C-540D,U+5411,U+5426,U+542B,U+544A,U+5473,U+547C,U+548C,U+54C1,U+54E1,U+54EA,U+552E,U+5531,U+554F,U+555F,U+55AE,U+55CE,U+5668,U+56DB,U+56DE,U+56FA,U+56FD,U+570B,U+570D,U+5716,U+5718,U+571F,U+5728,U+5730,U+5740,U+57CE,U+57F7,U+57FA,U+5806,U+5821,U+5831,U+5834,U+586B,U+589E,U+58F2,U+5916,U+591A,U+5927,U+5929-592B,U+5931,U+594F,U+597D,U+5982,U+59CB,U+59D3,U+59FF,U+5A1C,U+5B50,U+5B57-5B58,U+5B66,U+5B69,U+5B78,U+5B89,U+5B8C,U+5B98,U+5B9A,U+5B9F,U+5BA4,U+5BB6,U+5BB9,U+5BC4,U+5BDF,U+5BE6,U+5BEB,U+5C07,U+5C0B,U+5C0D-5C0F,U+5C11,U+5C31,U+5C40,U+5C4A,U+5DE5,U+5DE7,U+5DEE,U+5DF2,U+5DF7,U+5E02,U+5E0C,U+5E2B,U+5E2D,U+5E33,U+5E36,U+5E38,U+5E74,U+5E7C,U+5E7E,U+5E8F,U+5E95,U+5EA6,U+5EFA,U+5F04,U+5F0F,U+5F15,U+5F48,U+5F62,U+5F71,U+5F85,U+5F88,U+5F8B-5F8C,U+5F97,U+5F9E,U+5FC3,U+5FC5,U+5FEB,U+600E,U+601D,U+6027,U+606F,U+60A8,U+60C5,U+60F3,U+610F,U+614B,U+6162-6163,U+6210-6211,U+6216,U+6240,U+624B,U+624D,U+6253,U+6271,U+6279,U+627E,U+62BC,U+62C9,U+62DB,U+6301,U+6309,U+6311,U+632F,U+6389,U+6392,U+639B,U+63A2,U+63A5,U+63A7,U+63D0,U+63DB,U+63EE,U+641C,U+643A,U+6458,U+64A5,U+64C1,U+64C7,U+6536,U+6539,U+653E-653F,U+6545,U+6557,U+6559,U+656C,U+6574,U+6578,U+6587,U+6599,U+65B0,U+65B9,U+65BC,U+65E5,U+65E9,U+660E,U+662F,U+6642,U+667A,U+66AB,U+66C6,U+66DC,U+66F2,U+66F4,U+6700,U+6703,U+6708-6709,U+670D,U+671B,U+671F,U+6728,U+672A,U+672C,U+677F,U+679C,U+67B6,U+67E5,U+6838,U+683C,U+6841,U+6848,U+68CB,U+696D,U+6A02,U+6A13,U+6A19,U+6A29,U+6A4B,U+6A5F,U+6AA2,U+6B04,U+6B0A,U+6B21,U+6B4C,U+6B61-6B65,U+6B72,U+6BB5,U+6BCF,U+6C34,U+6C42,U+6C7A,U+6C92,U+6CD5,U+6D41,U+6D77,U+6D88,U+6E05,U+6E96,U+6EFF,U+6FEB,U+700F,U+7063,U+706B,U+70B9-70BA,U+70CF,U+7121,U+7167,U+719F,U+71DF,U+7247-7248,U+724C,U+7269,U+73ED,U+73FE,U+7406,U+7434,U+751F,U+7528,U+7531,U+7533,U+753B,U+7559,U+7565,U+756A,U+7576,U+767A-767B,U+767D,U+7684,U+76CA,U+76E1,U+76EE,U+76F4,U+76F8,U+770B,U+771F,U+77E5,U+7881,U+78BA,U+78BC,U+790E,U+793A,U+7965,U+79C1,U+79FB,U+7A0B,U+7A0D,U+7A2E,U+7A31,U+7A3F,U+7A4D,U+7A69,U+7A7A,U+7ACB,U+7AD9,U+7AE5,U+7B2C,U+7B49,U+7B54,U+7B56,U+7B97,U+7BA1,U+7BB1,U+7BC0,U+7BC4,U+7C21,U+7C64,U+7C73,U+7C97,U+7CFB,U+7D00,U+7D04,U+7D1A,U+7D2F,U+7D39,U+7D42,U+7D44,U+7D50,U+7D61,U+7D66,U+7D71,U+7D93,U+7DB2,U+7DDA,U+7DE8,U+7DF4,U+7E41,U+7E6B,U+7E8C,U+7F6E,U+7FD2,U+7FFB,U+8001,U+8003,U+8005,U+806F,U+80B2,U+80FD,U+81EA,U+81F3,U+8207-8208,U+821E,U+8272,U+82AD,U+82E5,U+82F1,U+8389,U+8490,U+84CB,U+857E,U+85DD,U+8655,U+865F,U+884C,U+8857,U+8868,U+88AB,U+88CF,U+88DC,U+88E1,U+88FD,U+8907,U+8981,U+8986,U+898B,U+898F,U+8996,U+89A7,U+89AA,U+89BA,U+89BD,U+89C0,U+89F8,U+8A00,U+8A02,U+8A0A,U+8A18,U+8A2D,U+8A34,U+8A3B,U+8A62,U+8A66,U+8A71-8A73,U+8A8D,U+8A9E,U+8AAA,U+8AB2,U+8ABF,U+8AC7,U+8ACB,U+8B1B,U+8B20,U+8B58,U+8B5C,U+8B6F-8B70,U+8B77,U+8B80,U+8B8A,U+8B93,U+8C61,U+8C93,U+8CA9,U+8CC7,U+8CEA,U+8D77,U+8DA3,U+8DEF,U+8DF3,U+8E0A,U+8E48,U+8EAB,U+8EB2,U+8F09,U+8F15,U+8FA6,U+8FA8,U+8FBC,U+8FCE,U+8FD1,U+8FF0,U+8FFD,U+9001,U+9010,U+9019-901A,U+9020,U+9023,U+9031-9032,U+903E,U+904A,U+904E,U+9069,U+9078,U+9084,U+90E8,U+90F5,U+90FD,U+914D,U+9192,U+91CD,U+91D1,U+92FC,U+9577,U+9580,U+958B,U+9593,U+95A2,U+95B1-95B2,U+95DC,U+9632,U+964D,U+9650,U+9664,U+966A,U+9678,U+968E,U+9694,U+969B,U+96B1,U+96C6,U+96FB,U+9700,U+9762,U+97F3,U+9801,U+9805-9806,U+9808,U+9810,U+982D,U+984C-984D,U+985E,U+986F,U+9918,U+9996,U+9A57,U+9A5F,U+9AD4,U+9E97,U+9EBC,U+9EDE,U+9F61-9F62,U+FF01,U+FF03-FF06,U+FF08-FF0D,U+FF0F,U+FF1A-FF1B,U+FF1D,U+FF1F-FF20,U+FF3C,U+FF5C,U+FF5E,U+FFE5}
@font-face{font-family:"Noto Serif TC";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/noto-serif-tc-700-brand.woff2) format("woff2");unicode-range:U+5F26,U+718A,U+97FF}
@font-face{font-family:"Noto Serif TC";font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/noto-serif-tc-700-latin.woff2) format("woff2");unicode-range:U+20-7E,U+B0,U+B7,U+D7,U+2013-2014,U+2018-2019,U+201C-201D,U+2022,U+2026}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:500 600;font-display:swap;src:url(/assets/fonts/cormorant-garamond-latin.woff2) format("woff2");unicode-range:U+0020-007E,U+00A0-00FF,U+2013-2014,U+2018-201D,U+2026,U+00B7}
/* FONTS-END */
:root{
  --paper:#FAF3E3;      /* 與徽章底色一致 */
  --paper-2:#FFFBF2;    /* 卡片：較亮的紙 */
  --paper-3:#F3E9D3;    /* 區塊交替底 */
  --ink:#3E2716;        /* 深咖啡：標題、主按鈕 */
  --brown:#5A3A22;      /* 咖啡棕：內文、線條 */
  --muted:#6B5844;      /* 次要文字 */
  --line:#E2D4B8;       /* 細線 */
  --gold:#C9973F;       /* 唯一點綴：琴身金黃（只用在細線、序號、時間） */
  --gold-ink:#7F5816;   /* 金黃在米白上當文字用的加深版（對比足夠） */
  --wrap:1160px;
  --serif:"Noto Serif TC","Songti TC",serif;
  --sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
  --en:"Cormorant Garamond","Noto Serif TC",serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--brown);font-family:var(--sans);font-size:1rem;line-height:1.8;overflow-x:hidden;
  background-color:var(--paper);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .23 0 0 0 0 .13 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:700;color:var(--ink);line-height:1.35;margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 32px}
.en{font-family:var(--en);font-weight:600;letter-spacing:.04em}
.en,.sec-no,.slot time,.news time,.steps li::before{font-variant-numeric:lining-nums}
.skip{position:absolute;left:-999px}
.skip:focus{left:8px;top:8px;background:var(--ink);color:var(--paper);padding:8px 14px;z-index:50}

/* ---------- 按鈕：小圓角、實色、不浮誇 ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:10px 26px;border-radius:4px;font-weight:500;font-size:1rem;letter-spacing:.06em;text-decoration:none;border:1.5px solid var(--ink);transition:background-color .15s,color .15s;white-space:nowrap}
.btn-main{background:var(--ink);color:var(--paper)}
.btn-main:hover{background:var(--brown)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{background:var(--paper-3)}
.btn-row{display:flex;flex-wrap:wrap;gap:12px}
.btn .arrow{font-family:var(--en);font-size:1.15em;line-height:1}

/* ---------- 頁首 ---------- */
.top{position:sticky;top:0;z-index:20;background:rgba(250,243,227,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.top .wrap{display:flex;align-items:center;gap:24px;min-height:80px}
.logo{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0;min-width:0}
.logo img{width:56px;height:56px}
.logo b{display:block;font-family:var(--serif);font-weight:700;font-size:1.3rem;line-height:1.15;letter-spacing:.12em;color:var(--ink)}
.logo small{display:block;font-family:var(--en);font-weight:600;font-size:.8rem;color:var(--muted);letter-spacing:.08em;line-height:1.2}
.nav{display:flex;gap:2px;margin-left:auto}
.nav a{padding:10px 14px;text-decoration:none;font-size:.95rem;min-height:44px;display:flex;align-items:center;letter-spacing:.06em;border-bottom:1.5px solid transparent}
.nav a:hover{border-bottom-color:var(--gold)}
.top-actions{display:flex;align-items:center;gap:8px}
.top-actions .btn{min-height:44px;padding:8px 18px;font-size:.92rem}
.icon-btn{width:44px;height:44px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;padding:0;flex-shrink:0}
.icon-btn svg{width:22px;height:22px}
.burger{display:none}
.lang{position:relative}
.lang summary{list-style:none}
.lang summary::-webkit-details-marker{display:none}
.lang ul{position:absolute;right:0;top:50px;margin:0;padding:6px;list-style:none;background:var(--paper-2);border:1px solid var(--line);border-radius:6px;min-width:10em;box-shadow:0 14px 30px -18px rgba(62,39,22,.4);z-index:30}
.lang li a{display:flex;align-items:center;min-height:44px;padding:0 12px;text-decoration:none;border-radius:4px;white-space:nowrap}
.lang li a:hover,.lang li a[aria-current]{background:var(--paper-3)}
.drawer{display:none}

/* ---------- Hero ---------- */
.hero{padding:72px 0 64px}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:56px}
.eyebrow{display:flex;align-items:center;gap:14px;font-size:.92rem;letter-spacing:.14em;color:var(--muted);margin-bottom:22px}
.eyebrow::before{content:"";width:36px;height:1px;background:var(--gold)}
.hero h1{font-size:clamp(2.5rem,5vw,4.25rem);letter-spacing:.06em;line-height:1.3}
.hero .lead{margin:26px 0 34px;font-size:1.125rem;max-width:28em;line-height:1.9}
.hero-art{justify-self:center;width:min(100%,440px);position:relative;aspect-ratio:1}
.hero-art::before{content:"";position:absolute;inset:-18px;border:1px solid var(--line);border-radius:50%}
.hero-art img{width:100%;height:100%;object-fit:contain;position:relative;filter:drop-shadow(0 18px 30px rgba(62,39,22,.12))}

/* ---------- 四格重點 ---------- */
.facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,251,242,.6)}
.facts ul{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.facts li{padding:26px 28px;border-left:1px solid var(--line)}
.facts li:first-child{border-left:0;padding-left:0}
.facts .k{display:block;font-size:.82rem;letter-spacing:.14em;color:var(--gold-ink);margin-bottom:6px}
.facts b{display:block;font-family:var(--serif);font-weight:700;font-size:1.1rem;color:var(--ink);line-height:1.5}
.facts span.s{display:block;font-size:.88rem;color:var(--muted);margin-top:2px;line-height:1.6}

/* ---------- 區塊共用 ---------- */
section{padding:96px 0}
.alt{background:rgba(243,233,211,.55)}
.sec-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 56px;align-items:end;margin-bottom:44px}
.sec-no{display:flex;align-items:baseline;gap:12px;margin-bottom:10px;color:var(--gold-ink)}
.sec-no b{font-family:var(--en);font-weight:600;font-size:1.05rem;letter-spacing:.08em}
.sec-no span{font-family:var(--en);font-weight:600;font-size:.95rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.sec-head h2,.about-text h2,.contact h2{font-size:clamp(1.85rem,3vw,2.5rem);letter-spacing:.06em}
.sec-head p{color:var(--brown)}

/* ---------- 課程：表格 ---------- */
.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.cat{background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:30px 32px 14px}
.cat header{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;padding-bottom:14px;border-bottom:1.5px solid var(--ink)}
.cat h3{font-size:1.4rem;letter-spacing:.06em}
.cat .cat-en{font-size:1rem;color:var(--muted)}
.cat .cat-note{margin-left:auto;font-size:.85rem;color:var(--muted)}
.row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);min-height:68px}
.row:last-child{border-bottom:0}
.row .name{font-size:1.06rem;font-weight:700;color:var(--ink);text-decoration:none}
.row a.name:hover{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}
.row .info{font-size:.9rem;line-height:1.5}
.row .info em{font-style:normal;display:block;font-size:.82rem;color:var(--muted)}
.row a.go{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:72px;padding:0 16px;border:1px solid var(--ink);border-radius:4px;color:var(--ink);text-decoration:none;font-size:.9rem;letter-spacing:.06em}
.row a.go:hover{background:var(--ink);color:var(--paper)}
.more-soon{margin-top:26px;font-size:.9rem;color:var(--muted)}

/* ---------- 一週課表 ---------- */
.week{background:var(--paper-2);border:1px solid var(--line);border-radius:6px;overflow:hidden}
.week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.day{border-left:1px solid var(--line);min-height:300px}
.day:first-child{border-left:0}
.day h3{font-family:var(--serif);font-size:1.05rem;text-align:center;padding:14px 6px;border-bottom:1.5px solid var(--ink);letter-spacing:.1em;background:var(--paper)}
.day h3 .en{display:block;font-size:.8rem;color:var(--muted);letter-spacing:.14em;line-height:1.2;font-weight:600}
.slots{padding:14px 12px;display:grid;gap:12px;align-content:start}
.slot{border-top:2px solid var(--gold);padding-top:8px;line-height:1.45}
.slot time{display:block;font-family:var(--en);font-weight:600;font-size:1.1rem;color:var(--gold-ink);letter-spacing:.02em}
.slot b{display:block;font-size:.95rem;color:var(--ink)}
.slot span{display:block;font-size:.8rem;color:var(--muted)}
.slot .cat-tag{font-style:normal;display:inline-block;margin-top:4px;font-size:.74rem;color:var(--brown);border:1px solid var(--line);border-radius:3px;padding:0 6px;letter-spacing:.06em}
.rest{font-size:.85rem;color:var(--muted);text-align:center;padding-top:24px}
.week-foot{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;margin-top:16px;font-size:.88rem;color:var(--muted)}
.verify{font-size:.78rem}

/* ---------- 報名三步 ---------- */
.booking{background:var(--ink);color:var(--paper)}
.booking .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:64px;align-items:start}
.booking h2{font-size:clamp(1.85rem,3vw,2.5rem);color:var(--paper);letter-spacing:.06em}
.booking .sec-no b{color:var(--gold)}
.booking .sec-no span{color:#C9B394}
.booking .intro{margin-top:18px;color:#E9DCC4}
.steps{list-style:none;margin:0;padding:0;counter-reset:s;border-top:1px solid rgba(250,243,227,.25)}
.steps li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;padding:24px 0;border-bottom:1px solid rgba(250,243,227,.25)}
.steps li::before{counter-increment:s;content:"0" counter(s);font-family:var(--en);font-weight:600;font-size:2rem;line-height:1.1;color:var(--gold)}
.steps h3{font-size:1.25rem;color:var(--paper);letter-spacing:.06em}
.steps p{font-size:.95rem;color:#E9DCC4;margin-top:4px}
.notice{margin-top:24px;padding:16px 20px;border-left:3px solid var(--gold);background:rgba(250,243,227,.08);color:var(--paper);font-size:.98rem;font-weight:500}
.booking .btn-row{margin-top:28px}
.booking .btn-main{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.booking .btn-main:hover{background:#fff}
.booking .btn-ghost{color:var(--paper);border-color:rgba(250,243,227,.6)}
.booking .btn-ghost:hover{background:rgba(250,243,227,.1)}

/* ---------- 最新消息 ---------- */
.news{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.news a{display:block;text-decoration:none;border-top:1.5px solid var(--ink);padding:20px 0 8px;min-height:44px}
.news a:hover h3{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}
.news time{font-family:var(--en);font-weight:600;font-size:1rem;color:var(--muted);letter-spacing:.04em}
.news .tag{display:inline-block;font-size:.74rem;padding:0 8px;border:1px solid var(--line);border-radius:3px;margin-left:10px;color:var(--muted);vertical-align:2px}
.news h3{font-size:1.15rem;margin:10px 0 8px;letter-spacing:.04em}
.news p{font-size:.9rem;color:var(--muted)}
.sec-head .news-more{justify-self:end}

/* ---------- 關於 ---------- */
.about .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:72px;align-items:center}
.photo{margin:0}
.photo img{border-radius:6px;aspect-ratio:4/3;object-fit:cover;width:100%;border:1px solid var(--line)}
.photo figcaption{margin-top:12px;font-size:.88rem;color:var(--muted);display:flex;gap:10px;align-items:center}
.photo figcaption::before{content:"";width:24px;height:1px;background:var(--gold)}
.about-text h2{margin-bottom:22px}
.about-text p{font-size:1.04rem}
.about-text p+p{margin-top:14px}
.placeholder-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}
.ph{border:1px dashed #A8967A;background:#EFE6D2;border-radius:6px;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;text-align:center;font-size:.85rem;color:#5F4E3C;padding:10px;line-height:1.6}

/* ---------- 聯絡 ---------- */
.contact .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:48px;align-items:stretch}
.contact h2{margin-bottom:28px}
.contact dl{margin:0;display:grid;gap:0;border-top:1px solid var(--line)}
.contact dl>div{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
.contact dt{font-size:.88rem;color:var(--muted);letter-spacing:.08em;padding-top:2px}
.contact dd{margin:0;font-size:1.06rem;font-weight:500;color:var(--ink);overflow-wrap:anywhere}
.contact dd a{text-decoration:none;border-bottom:1px solid var(--gold)}
.contact .btn-row{margin-top:30px}
.map{border-radius:6px;background:#E2DDD3;border:1px solid #CFC7B9;min-height:360px;overflow:hidden}
.map iframe{width:100%;height:100%;min-height:360px;border:0;display:block}
.map small{font-size:.82rem}
.map-facade{display:flex;align-items:center;justify-content:center;min-height:360px;height:100%;text-align:center;padding:24px;color:var(--ink);text-decoration:none;font-weight:600;background:linear-gradient(135deg,#EDE6D8,#E2DDD3)}
.map-facade span{border-bottom:2px solid var(--gold);padding-bottom:2px}

/* ---------- 頁尾 ---------- */
footer{border-top:1px solid var(--line);padding:56px 0 48px;background:rgba(243,233,211,.55)}
footer .wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,1fr);gap:32px 48px;align-items:start}
footer .logo img{width:64px;height:64px}
footer address{font-style:normal;font-size:.9rem;line-height:2}
footer .links{display:flex;flex-direction:column;gap:0;font-size:.9rem}
footer .links a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none}
footer .links a:hover{text-decoration:underline;text-decoration-color:var(--gold)}
.copy{grid-column:1/-1;font-size:.8rem;color:var(--muted);padding-top:20px;border-top:1px solid var(--line);letter-spacing:.04em}
.copy .credit{margin-left:1.2em;white-space:nowrap}.copy .credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* ---------- 平板 ---------- */
@media (max-width:1120px){
  .nav{display:none}
  .burger{display:inline-flex}
  .top-actions{margin-left:auto}
  .top-actions .line-top{display:none}
  .drawer{display:block;position:fixed;inset:80px 0 auto 0;background:var(--paper);border-bottom:1px solid var(--line);padding:8px 32px 24px;transform:translateY(-130%);transition:transform .25s ease;z-index:15;box-shadow:0 20px 30px -20px rgba(62,39,22,.3)}
  .drawer.open{transform:none}
  .drawer a{display:flex;align-items:center;min-height:52px;border-bottom:1px solid var(--line);text-decoration:none;font-size:1.05rem;letter-spacing:.06em}
  .drawer .btn{margin-top:16px;width:100%;border-bottom:1.5px solid var(--ink)}
  .course-grid{grid-template-columns:minmax(0,1fr)}
  .facts ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts li:nth-child(3){border-left:0;padding-left:0}
  .facts li:nth-child(n+3){border-top:1px solid var(--line)}
}
@media (max-width:900px){
  .hero .wrap,.about .wrap,.contact .wrap,.booking .wrap,.sec-head{grid-template-columns:minmax(0,1fr)}
  .sec-head .news-more{justify-self:start}
  .booking .wrap{gap:36px}
  .news{grid-template-columns:minmax(0,1fr);gap:8px}
  .week-grid{grid-template-columns:minmax(0,1fr)}
  .day{border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:5.5em minmax(0,1fr);min-height:0}
  .day:first-child{border-top:0}
  .day h3{border-bottom:0;border-right:1.5px solid var(--ink);text-align:left;padding:14px 12px;display:flex;flex-direction:column;justify-content:flex-start}
  .slots{grid-template-columns:repeat(auto-fill,minmax(11em,1fr));padding:14px 16px}
  .rest{text-align:left;padding:4px 0}
  footer .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  footer .wrap>div:first-child{grid-column:1/-1}
}

/* ---------- 手機 ---------- */
@media (max-width:600px){
  .wrap{padding:0 16px}
  .top .wrap{min-height:64px;gap:6px}
  .drawer{inset:64px 0 auto 0;padding:8px 16px 20px}
  .logo{gap:6px}
  .logo img{width:38px;height:38px}
  .logo b{font-size:1.08rem;letter-spacing:.08em}
  .logo small{display:none}
  .top-actions{gap:4px}
  .top-actions .book-top{padding:8px 10px;font-size:.88rem;letter-spacing:0}
  .hero{padding:32px 0 44px}
  .hero .wrap{gap:28px}
  .hero-art{order:-1;width:min(62%,240px)}
  .hero-art::before{inset:-10px}
  .eyebrow{font-size:.85rem;letter-spacing:.08em;margin-bottom:14px}
  .hero h1{font-size:clamp(2.1rem,9.5vw,2.6rem)}
  .hero .lead{font-size:1rem;margin:18px 0 26px}
  .hero .btn-row .btn{flex:1 1 9em}
  .facts ul{grid-template-columns:minmax(0,1fr)}
  .facts li,.facts li:first-child,.facts li:nth-child(3){border-left:0;padding:16px 0}
  .facts li+li{border-top:1px solid var(--line)}
  section{padding:64px 0}
  .sec-head{margin-bottom:28px}
  .cat{padding:22px 18px 8px}
  .cat .cat-note{margin-left:0;width:100%}
  .row{grid-template-columns:minmax(0,1fr) auto;gap:2px 12px}
  .row .name{grid-column:1}
  .row .info{grid-column:1;grid-row:2}
  .row a.go{grid-column:2;grid-row:1/3}
  .day{grid-template-columns:minmax(0,1fr)}
  .day h3{border-right:0;border-bottom:1.5px solid var(--ink);flex-direction:row;align-items:baseline;gap:10px;padding:10px 16px}
  .day h3 .en{display:inline}
  .slots{grid-template-columns:minmax(0,1fr)}
  .steps li{grid-template-columns:52px minmax(0,1fr);gap:10px;padding:20px 0}
  .steps li::before{font-size:1.6rem}
  .booking .btn-row .btn,.contact .btn-row .btn{flex:1 1 10em}
  .contact dl>div{grid-template-columns:minmax(0,1fr);gap:2px}
  .map{min-height:220px}
  .map-facade{min-height:220px}
  footer .wrap{grid-template-columns:minmax(0,1fr)}
}

/* ---------- 內頁 ---------- */
.page-head{padding:56px 0 8px}
.page-head .sec-no{margin-bottom:6px}
.page-head h1{font-size:clamp(2rem,4vw,3rem);letter-spacing:.06em}
.page-head .lead{margin-top:18px;max-width:40em;font-size:1.08rem}
.page-head+section{padding-top:40px}
.notfound{padding:96px 0}
.narrow{max-width:760px}
.prose{font-size:1.05rem;line-height:2}
.news-date{color:var(--muted);font-family:var(--en);font-weight:600}
.back{margin-top:36px}
.course-detail{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:56px;align-items:start}
.course-img{width:100%;border-radius:6px;border:1px solid var(--line);margin-bottom:24px}
.facts-dl{margin:0 0 28px;border-top:1px solid var(--line)}
.facts-dl>div{display:grid;grid-template-columns:6em minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.facts-dl dt{font-size:.88rem;color:var(--muted);letter-spacing:.08em}
.facts-dl dd{margin:0;color:var(--ink);font-weight:500}
.slot-line{display:block;line-height:1.7}
.slot-line b{color:var(--gold-ink);font-weight:600;margin-right:6px}
.booking-form-wrap{max-width:760px}
.booking-form fieldset{border:0;margin:0;padding:0;min-width:0}
.booking-form label{display:block;margin:18px 0 6px;font-weight:500;color:var(--ink)}
.booking-form input[type=text],.booking-form input[type=tel],.booking-form select,.booking-form textarea{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:4px;background:var(--paper-2);font:inherit;color:var(--brown)}
.booking-form label.check{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.booking-form button{margin-top:22px}
.booking-form .soon{padding:14px 16px;border-left:3px solid var(--gold);background:var(--paper-3);color:var(--ink);margin-bottom:8px}
.notice-light{margin:24px 0 20px;color:var(--ink);font-weight:500}
@media (max-width:900px){.course-detail{grid-template-columns:minmax(0,1fr);gap:32px}}
@media (max-width:600px){.top .wrap{flex-wrap:nowrap}.top-actions{flex:1 1 auto;justify-content:flex-end;min-width:0}.top-actions .book-top{white-space:normal;line-height:1.2;text-align:center;max-width:8em;min-width:0;padding:6px 8px}.logo span{min-width:0}.logo b{font-size:1rem;letter-spacing:.04em}.page-head{padding:36px 0 4px}.lang ul{right:-48px}.facts-dl>div{grid-template-columns:minmax(0,1fr);gap:2px}}

/* ---------- 日期輸入元件 ---------- */
[hidden]{display:none!important}
.dateinput{display:flex;flex-wrap:wrap;gap:8px;align-items:center;position:relative}
.dateinput .di-text{flex:1 1 11em;min-width:0}
.dateinput .di-pick{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;right:0;bottom:0}
.dateinput .di-btn{width:48px;height:48px;border:1px solid var(--line);border-radius:4px;background:var(--paper-2);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.dateinput .di-err{flex:1 0 100%;color:#b3261e;font-size:.9rem}
.di-bad{border-color:#b3261e!important;background:#fff3f1!important}
/* ---------- 報名表 ---------- */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-err{padding:14px 16px;border-left:3px solid #b3261e;background:#fdecea;color:#7a1b13;margin-bottom:16px}
.form-err ul{margin:6px 0 0;padding-left:1.2em}
.booking-form .req{color:#b3261e}
.booking-form .hint{font-size:.88rem;color:var(--muted);margin:4px 0 0}
.booking-form fieldset{margin:0;padding:0;border:0}
.booking-form .consent a{color:var(--ink);text-decoration-color:var(--gold)}
.done-card{background:var(--paper-2);border:1px solid var(--line);border-radius:6px;padding:28px 28px 24px}
.done-no{font-family:var(--en);font-weight:600;font-size:2rem;color:var(--gold-ink);letter-spacing:.04em;margin:10px 0 6px;overflow-wrap:anywhere}

/* ---------- 一句話答案與常見問答（AEO） ---------- */
.answer{padding:36px 0 0}
.answer-box{margin:0;padding:18px 22px;border-left:3px solid var(--gold);background:var(--paper-2);font-size:1.08rem;line-height:1.9;color:var(--ink)}
.faq{padding:64px 0}
.faq h2{font-size:clamp(1.6rem,2.6vw,2.1rem);letter-spacing:.06em;margin-bottom:22px}
.narrow-wide{max-width:900px}
.faq-list details{border-top:1px solid var(--line);padding:0}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{cursor:pointer;min-height:48px;display:flex;align-items:center;padding:12px 4px;font-weight:700;color:var(--ink);list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";margin-left:auto;font-size:1.4rem;color:var(--gold-ink)}
.faq-list details[open] summary::after{content:"–"}
.faq-list p{margin:0 4px 16px;color:var(--brown)}
@media (max-width:600px){.faq{padding:44px 0}.answer{padding-top:24px}.answer-box{padding:14px 16px}}

/* ---------- 吉祥物（去背圖，只放在少數位置） ---------- */
.mascot{display:block;height:auto;max-width:100%}
.cat header:has(.cat-mascot){align-items:flex-end;flex-wrap:nowrap}
.cat header:has(.cat-mascot) h3{margin-bottom:6px}
.cat header picture{display:block;margin:-6px 0 -2px auto;flex:0 0 auto}
.cat .cat-mascot{width:66px}
.page-head .wrap.has-mascot{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 32px;align-items:end}
.page-head .ph-mascot{justify-self:end}
.page-head .head-mascot{width:min(200px,24vw);margin-bottom:-4px}
.steps-mascot{width:min(190px,70%);margin-top:30px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.25))}
@media (max-width:900px){.steps-mascot{width:min(150px,45%);margin-top:20px}}
@media (max-width:600px){
  .page-head .wrap.has-mascot{grid-template-columns:minmax(0,1fr) 96px;gap:8px 12px}
  .page-head .head-mascot{width:96px}
  .cat .cat-mascot{width:58px}
}
