/* FONT:START 生成物。手で書きかえない */
/* DotGothic16 / SIL Open Font License 1.1。作り直しかたは開発リファレンス */
@font-face {
  font-family: 'DotGothic16';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/dotgothic16/dotgothic16-site.woff2?v=2) format('woff2');
  unicode-range: U+0020-005D, U+005F-007D, U+00B1, U+00D7, U+2014-2015, U+2026, U+203B, U+2190, U+2192, U+25BC, U+25EF, U+266A, U+2715, U+3000-3002, U+3005, U+300C-300F, U+301C, U+3042, U+3044, U+3046, U+3048, U+304A-3061, U+3063-308D, U+308F, U+3092-3093, U+30A1-30A4, U+30A6-30BD, U+30BF-30C1, U+30C3-30ED, U+30EF, U+30F3, U+30FB-30FC, U+4E00, U+4E09-4E0B, U+4E0D-4E0E, U+4E16, U+4E21, U+4E26, U+4E2D, U+4E38, U+4E3B, U+4E45, U+4E57, U+4E71, U+4E73, U+4E7E, U+4E86, U+4E8B-4E8C, U+4E94, U+4EA4, U+4EBA, U+4ECA, U+4ED5-4ED6, U+4ED8, U+4EE3, U+4EE5, U+4EEE, U+4EF6, U+4EFB, U+4F01, U+4F0F, U+4F11, U+4F1A, U+4F38, U+4F3C, U+4F4D-4F4F, U+4F53, U+4F55, U+4F59, U+4F5C, U+4F7F, U+4F8B, U+4FA1, U+4FBF, U+4FC2, U+4FDD, U+4FE1, U+4FEE, U+4FFA, U+500B, U+500D, U+5012, U+501F, U+5024, U+505C, U+5074, U+507D, U+5098-5099, U+50B7, U+50BE, U+50CF, U+5100, U+512A, U+5143, U+5145, U+5148-5149, U+5165, U+5168, U+516B-516C, U+5171, U+5177, U+5185-5186, U+518D, U+5199, U+51B7, U+51E6, U+51FA, U+5206-5207, U+5217, U+521D, U+5224-5225, U+5229, U+5230, U+5236, U+523A-523B, U+524A, U+524D, U+5272, U+529B, U+529F-52A0, U+52B9, U+52D5, U+52DD, U+52E2, U+5302, U+5305, U+5316-5317, U+533A, U+5341, U+5343, U+534A, U+5358, U+5370, U+5373-5374, U+539F, U+53C2, U+53CD-53CE, U+53D6-53D7, U+53E3-53E4, U+53EB, U+53EF-53F0, U+53F3, U+53F7, U+5404, U+5408, U+540C-540D, U+5410-5411, U+542B, U+5438-5439, U+544A, U+5468, U+5473, U+547C, U+54AC, U+54B2, U+54C1, U+54E1, U+5546, U+554F, U+5668, U+5674, U+56DB, U+56DE, U+56F0, U+56F2-56F3, U+56FA, U+5727-5728, U+5730, U+5742, U+5747, U+57CB, U+57FA, U+5824, U+5831, U+5834, U+5854, U+5857, U+585E, U+5883, U+5897, U+58CA, U+58EB, U+58F0, U+58F2, U+5909, U+590F, U+5915-5916, U+591A, U+591C, U+5922, U+5927, U+5929-592A, U+592E, U+5931, U+5965, U+5973, U+597D, U+5999, U+59CB, U+59D3, U+59FF, U+5A01, U+5B50, U+5B57-5B58, U+5B63, U+5B66, U+5B88-5B89, U+5B8C, U+5B9A, U+5B9D, U+5B9F, U+5BA2-5BA4, U+5BB6, U+5BBF, U+5BC4, U+5BC6, U+5BFE, U+5C01-5C02, U+5C04, U+5C0E-5C0F, U+5C11, U+5C3E, U+5C45, U+5C48, U+5C4A-5C4B, U+5C51, U+5C55, U+5C64-5C65, U+5C71, U+5C90, U+5CAC, U+5CE0, U+5D29, U+5DDD, U+5DE5-5DE6, U+5DEE, U+5DF1, U+5DFB, U+5E02-5E03, U+5E2D, U+5E2F-5E30, U+5E38, U+5E3D, U+5E45, U+5E55, U+5E72-5E74, U+5E7C, U+5E83, U+5E8A, U+5E8F, U+5E95, U+5E97, U+5EA6-5EA7, U+5ECA, U+5EF6, U+5EFA, U+5F01, U+5F0F, U+5F15, U+5F31, U+5F35, U+5F37, U+5F3E, U+5F53, U+5F62, U+5F71, U+5F79, U+5F7C, U+5F85, U+5F8B-5F8C, U+5F93, U+5F97, U+5FA9, U+5FC3, U+5FC5, U+5FD8, U+5FDC, U+5FEB, U+601D, U+6025, U+6027, U+606F, U+60AA, U+60C5, U+610F, U+611F, U+614B, U+6162-6163, U+61B6, U+61D0, U+6210, U+6226, U+623B, U+6240, U+624B, U+6253, U+6271, U+6280, U+6295, U+6298, U+629C, U+629E, U+62B1, U+62BC-62BD, U+62CD, U+62FE, U+6301, U+6307, U+6311, U+631F, U+632F, U+6355, U+6357, U+6368, U+636E, U+6398, U+63A2, U+63A5, U+63A7-63A8, U+63B2, U+63C3, U+63CF-63D0, U+63DA-63DB, U+63F4, U+63FA, U+6458, U+6483, U+64CD, U+6539, U+653B, U+653E, U+6545, U+6557, U+6559, U+6563, U+6570, U+6574-6575, U+6577, U+6587, U+6589, U+6599, U+65AC-65AD, U+65B0, U+65B9, U+65E2, U+65E5, U+65E7, U+65E9, U+6607, U+660E, U+661F-6620, U+663C, U+6642, U+6669, U+666F, U+6674, U+6697, U+66AE, U+66DC, U+66F2, U+66F4, U+66F8, U+66FF-6700, U+6708-6709, U+671B, U+671D, U+671F, U+6728, U+672A-672D, U+675F, U+6761, U+6765, U+677F, U+679A, U+679C, U+67A0, U+67F1, U+67FB, U+6821, U+6838-6839, U+683C, U+6848, U+685F, U+68C4, U+68DF, U+696D, U+697D, U+69CB, U+69D8, U+6A19, U+6A2A, U+6A4B, U+6A5F, U+6B04, U+6B21, U+6B4C, U+6B62-6B63, U+6B69, U+6B6F, U+6B7B, U+6B8B, U+6BB5, U+6BBB, U+6BCE, U+6BD4, U+6C17, U+6C34, U+6C38, U+6C42, U+6C4E, U+6C7A, U+6C88, U+6CA1, U+6CC1, U+6CE1-6CE3, U+6CE8, U+6D3B, U+6D41, U+6D5C, U+6D6E, U+6D77, U+6D88, U+6DE1, U+6DF1, U+6DF7, U+6E08, U+6E1B, U+6E21, U+6E26, U+6E2C, U+6E2F, U+6E4A, U+6E67, U+6E6F, U+6E7F-6E80, U+6E90, U+6E96, U+6E9C, U+6EB6, U+6EC5, U+6EF4, U+6F14, U+6F5C, U+6F6E, U+6F70, U+6FB1, U+6FC1, U+6FE1, U+706B, U+706F-7070, U+7089, U+70B9, U+7121, U+7126, U+7136, U+713C, U+714C, U+7159, U+7167, U+719F, U+71BE, U+71C3, U+7206, U+7247-7248, U+7259, U+725B, U+7269, U+7279, U+72B6, U+72EC-72ED, U+732B, U+7372, U+7387, U+7389, U+738B, U+73CD, U+73E0, U+73FE, U+7406, U+74B0, U+74F6, U+751F, U+7523, U+7528, U+7531, U+753A-753B, U+754C, U+7559, U+756A, U+7591, U+767A, U+767D-767E, U+76E4, U+76EE, U+76F4, U+76F8, U+7701, U+770B, U+771F, U+7740, U+77AC, U+77E2, U+77E5, U+77ED, U+77F3, U+7802, U+7815, U+7834, U+78BA, U+793A, U+793E, U+7948, U+795E, U+7981, U+79D2, U+79D8, U+79F0, U+79FB, U+7A0B, U+7A2E, U+7A3F, U+7A4D, U+7A74, U+7A7A, U+7A81, U+7A93, U+7ACB, U+7AE0, U+7AEF, U+7AF6, U+7B11, U+7B26, U+7B2C, U+7B46, U+7B49, U+7B4B, U+7B54, U+7B87, U+7BA1, U+7BB1, U+7BC0, U+7BC4, U+7BE0, U+7C89, U+7C92, U+7C98, U+7CBE, U+7CF8, U+7CFB, U+7D04, U+7D0B, U+7D0D, U+7D19, U+7D20, U+7D22, U+7D2B, U+7D30, U+7D42, U+7D44, U+7D4C, U+7D50, U+7D5E, U+7D61, U+7D66, U+7D71, U+7D75, U+7D99-7D9A, U+7DB2, U+7DCF, U+7DD1, U+7DDA, U+7DE0, U+7DE8, U+7E1E, U+7E26, U+7E2E, U+7E4B, U+7E70, U+7F36, U+7F6E, U+7FCC, U+7FD2, U+8003, U+8005, U+8033, U+805E, U+8077, U+80A9, U+80B2, U+80CC, U+80F8, U+80FD, U+81D3, U+81EA, U+820E, U+8217, U+821E, U+822A, U+8272, U+82B1, U+831C, U+8336, U+8349, U+83D3, U+843D, U+8449, U+8584, U+85C1, U+866B, U+8679, U+884C, U+8857, U+8868, U+888B, U+8896, U+88AB, U+88C5, U+88CF, U+88D5, U+88DC, U+88FD, U+8907, U+8981, U+898B, U+898F, U+8996, U+899A, U+89A7, U+89D2, U+89E3, U+89E6, U+8A00, U+8A08, U+8A18, U+8A2A, U+8A2D, U+8A3A, U+8A3C, U+8A70-8A73, U+8A8C-8A8D, U+8A9E, U+8AA4, U+8AAC-8AAD, U+8AB0, U+8AB2, U+8ABF, U+8AC7, U+8B58, U+8B66, U+8C37, U+8C61, U+8C9D, U+8CA0-8CA1, U+8CA9, U+8CAB, U+8CB7-8CB8, U+8CBB-8CBC, U+8CFC, U+8D64, U+8D70, U+8D77, U+8D85, U+8D8A, U+8DB3, U+8DE1, U+8DEF, U+8DF3, U+8E0A, U+8E0F, U+8EAB, U+8ECA, U+8EE2, U+8EF8, U+8EFD, U+8F09, U+8F1D, U+8F2A, U+8F44, U+8F9E, U+8FBA, U+8FBC, U+8FC2, U+8FCE, U+8FD1, U+8FD4, U+8FFD, U+9001, U+9003, U+9006, U+900F, U+9014, U+901A, U+901F, U+9023, U+9031-9032, U+9045, U+9047, U+904A, U+9053-9055, U+9060, U+906D, U+9077-9078, U+907F, U+90E8, U+914D, U+916C, U+9192, U+91CD-91CF, U+91D1, U+91DD, U+91E3, U+9244, U+925B, U+9280, U+92CF, U+9306, U+9320, U+9328, U+9332, U+9375, U+93E1, U+9418, U+9451, U+9577, U+9583, U+9589, U+958B, U+9593, U+95A2, U+95D8, U+9632, U+964D, U+9650, U+9664, U+9670, U+967A, U+968E, U+969B-969C, U+96A0, U+96A3, U+96C6, U+96E2-96E3, U+96E8, U+96EA, U+96F2, U+96FB, U+971E, U+9727, U+9744, U+9752, U+9759, U+975E, U+9762, U+97F3, U+97FF, U+9802, U+9806, U+982D, U+984C, U+9854, U+9858, U+985E, U+98A8, U+98DB, U+98DF, U+98F2, U+98FC, U+9928, U+9996, U+9999, U+99AC, U+99C5-99C6, U+9A13, U+9A5A, U+9AA8, U+9AD8, U+9AEA, U+9B5A, U+9CF4, U+9ED2, U+9ED9, U+FF01, U+FF05, U+FF08-FF09, U+FF0B, U+FF0F, U+FF1D, U+FF1F, U+FF5C;
}
@font-face {
  font-family: 'DotGothic16';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/dotgothic16/dotgothic16-rest.woff2?v=2) format('woff2');
  unicode-range: U+000D, U+005E, U+007E, U+00A0-00B0, U+00B2-00D6, U+00D8-00FF, U+0131, U+0141-0142, U+0152-0153, U+0160-0161, U+0178, U+017D-017E, U+0192, U+02BB-02BC, U+02C6, U+02C9-02CB, U+02DA, U+02DC, U+0300-0301, U+0303-0304, U+0307-0308, U+030C, U+0401, U+0410-044F, U+0451, U+2002-2003, U+2010-2013, U+2016, U+2018-201A, U+201C-201E, U+2020-2022, U+2025, U+2030, U+2032-2033, U+2039-203A, U+2044, U+2074, U+20AC, U+2103, U+2109-210A, U+2113, U+2116, U+2121-2122, U+212B, U+213B, U+2191, U+2193, U+21C4-21C6, U+21D2, U+21D4, U+21E6-21E9, U+21F5, U+2200, U+2202-2203, U+2207-2208, U+220B, U+2211-2212, U+2215, U+221A, U+221D-2220, U+2227-222E, U+2234-2235, U+223C-223D, U+2260-2261, U+2266-2267, U+226A-226B, U+2282-2283, U+2286-2287, U+22A5, U+22BF, U+2312, U+2329-232A, U+2460-2490, U+249C-24B5, U+24EA, U+2500-254B, U+2550, U+255E, U+2561, U+256A, U+256D-2573, U+2581-258F, U+2594-2595, U+25A0-25A2, U+25B2-25B3, U+25B7, U+25BD, U+25C1, U+25C6-25C7, U+25C9, U+25CB, U+25CE-25CF, U+25E2-25E5, U+2600-2603, U+2605-2606, U+260E, U+261C-261F, U+2640, U+2642, U+2660-2667, U+266D, U+266F, U+2776-277E, U+27A1, U+2B05-2B07, U+2B95, U+2E8E, U+2E90, U+2E92-2E94, U+2E99, U+2E9B, U+2E9F-2EA0, U+2EC1, U+2EC4, U+2ED1, U+2ED8, U+2EE4, U+2EE8-2EE9, U+2EEB, U+2EED, U+2EEF, U+2EF2, U+2F00-2F38, U+2F3A-2F66, U+2F68-2F70, U+2F72-2FA0, U+2FA2-2FC7, U+2FC9-2FD5, U+3003-3004, U+3006-300B, U+3010-3015, U+301D, U+301F-3020, U+3036, U+3041, U+3043, U+3045, U+3047, U+3049, U+3062, U+308E, U+3090-3091, U+3094-3096, U+309B-309E, U+30A5, U+30BE, U+30C2, U+30EE, U+30F0-30F2, U+30F4-30FA, U+30FD-30FE, U+322A-3243, U+3251-325B, U+3291-3294, U+3296, U+3298-3299, U+329D-329E, U+32A4-32B0, U+3300, U+3303, U+3305, U+330D, U+3314-3316, U+3318, U+331E, U+3322-3323, U+3326-3327, U+332A-332B, U+3331, U+3333, U+3336, U+3339, U+333B, U+3342, U+3347, U+3349-334A, U+334D-334E, U+3351, U+3357, U+337B-337F, U+3385-3389, U+338E-3390, U+3396-3398, U+339C-33A6, U+33B0-33B3, U+33C4, U+33C8, U+33CB-33CD, U+33D4, U+3D4E, U+4E01, U+4E03, U+4E07-4E08, U+4E10-4E11, U+4E14-4E15, U+4E17-4E19, U+4E1E, U+4E28, U+4E2A, U+4E31-4E32, U+4E36, U+4E39, U+4E3C, U+4E3F, U+4E42-4E43, U+4E4B, U+4E4D-4E4F, U+4E55-4E56, U+4E58-4E59, U+4E5D-4E5F, U+4E62, U+4E80, U+4E82, U+4E85, U+4E88-4E8A, U+4E8E, U+4E91-4E92, U+4E95, U+4E98-4E99, U+4E9B-4E9C, U+4E9E-4EA2, U+4EA5-4EA6, U+4EA8, U+4EAB-4EAE, U+4EB0, U+4EB3, U+4EB6, U+4EC0-4EC2, U+4EC4, U+4EC6-4EC7, U+4ECB, U+4ECD-4ECF, U+4ED4, U+4ED7, U+4ED9, U+4EDD-4EDF, U+4EE1, U+4EE4, U+4EED, U+4EF0, U+4EF2, U+4EF7, U+4EFC, U+4F00, U+4F03, U+4F09-4F0A, U+4F0D-4F0E, U+4F10, U+4F1C-4F1D, U+4F2F-4F30, U+4F34, U+4F36, U+4F39-4F3A, U+4F3D, U+4F43, U+4F46-4F47, U+4F50-4F51, U+4F56-4F57, U+4F5A-4F5B, U+4F5D-4F5E, U+4F69, U+4F6F-4F70, U+4F73, U+4F75-4F76, U+4F7B-4F7C, U+4F83, U+4F86, U+4F88, U+4F8A, U+4F8D, U+4F8F, U+4F91-4F92, U+4F94, U+4F96, U+4F98, U+4F9A-4F9B, U+4F9D, U+4FA0, U+4FAB, U+4FAD-4FAF, U+4FB5-4FB6, U+4FC3-4FC4, U+4FC9-4FCA, U+4FCD-4FCE, U+4FD0-4FD1, U+4FD4, U+4FD7-4FD8, U+4FDA-4FDB, U+4FDF-4FE0, U+4FE3-4FE5, U+4FEF, U+4FF3, U+4FF5-4FF6, U+4FF8, U+4FFE-4FFF, U+5005-5006, U+5009, U+500F, U+5011, U+5014, U+5016, U+5019-501A, U+501E, U+5021-5023, U+5025-5026, U+5028-502D, U+5036, U+5039, U+5040, U+5042-5043, U+5046-5049, U+504F-5050, U+5055-5056, U+505A, U+5065, U+506C, U+5070, U+5072, U+5075-5076, U+5078, U+5080, U+5085, U+508D, U+5091, U+5094, U+509A, U+50AC-50AD, U+50B2-50B5, U+50C2, U+50C5, U+50C9-50CA, U+50CD, U+50D1, U+50D5-50D6, U+50D8, U+50DA, U+50DE, U+50E3, U+50E5, U+50E7, U+50ED-50EE, U+50F4-50F5, U+50F9, U+50FB, U+5101-5102, U+5104, U+5109, U+5112, U+5114-5116, U+5118, U+511A, U+511F, U+5121, U+5132, U+5137, U+513A-513C, U+513F-5141, U+5144, U+5146-5147, U+514A-514E, U+5150, U+5152, U+5154, U+515A, U+515C, U+5162, U+5164, U+5169-516A, U+516D-516E, U+5175-5176, U+5178, U+517C, U+5180, U+5182, U+5189-518A, U+518C, U+518F-5193, U+5195-5197, U+519D, U+51A0, U+51A2, U+51A4-51A6, U+51A8-51AC, U+51B0-51B6, U+51BD-51BE, U+51C4-51C6, U+51C9, U+51CB-51CD, U+51D6, U+51DB-51DD, U+51E0-51E1, U+51E7, U+51E9-51EA, U+51EC-51ED, U+51F0-51F1, U+51F5-51F6, U+51F8-51F9, U+51FD-51FE, U+5200, U+5203-5204, U+5208, U+520A-520B, U+520E, U+5211, U+5214-5215, U+5227, U+522A, U+522E, U+5233, U+5237-5239, U+5243-5244, U+5247, U+524B-524C, U+524F, U+5254, U+5256, U+525B, U+525D-525E, U+5263-5265, U+5269-526A, U+526F-5271, U+5273-5275, U+527D, U+527F, U+5283, U+5287-5289, U+528D, U+5291-5292, U+5294, U+529C, U+52A3, U+52A6, U+52A9-52AD, U+52AF, U+52B1, U+52B4-52B5, U+52BC, U+52BE, U+52C0-52C1, U+52C3, U+52C5, U+52C7, U+52C9, U+52CD, U+52D2, U+52D7-52D9, U+52DB, U+52DE-52E0, U+52E3-52E4, U+52E6-52E7, U+52F2-52F3, U+52F5, U+52F8-52FA, U+52FE-5301, U+5306, U+5308, U+530D, U+530F-5310, U+5315, U+5319-531A, U+531D, U+5320-5321, U+5323-5324, U+532A, U+532F, U+5331, U+5333, U+5338-5339, U+533B, U+533F-5340, U+5345-5349, U+534D, U+5351-5354, U+5357, U+535A, U+535C, U+535E, U+5360, U+5366, U+5369, U+536E-536F, U+5371-5372, U+5375, U+5377-5378, U+537B, U+537F, U+5382, U+5384, U+5393, U+5396, U+5398, U+539A, U+53A0, U+53A5-53A6, U+53A8-53A9, U+53AD-53AE, U+53B0, U+53B2-53B3, U+53B6, U+53BB, U+53C3, U+53C8-53CC, U+53D4, U+53D9, U+53DB, U+53DD, U+53DF, U+53E1-53E2, U+53E5, U+53E8-53EA, U+53EC-53EE, U+53F1-53F2, U+53F6, U+53F8, U+53FA, U+5401, U+5403, U+5409-540B, U+540E-540F, U+541B, U+541D, U+541F-5420, U+5426, U+5429, U+542C-542E, U+5436, U+543B-543E, U+5440, U+5442, U+5446, U+5448-5449, U+544E, U+5451, U+545F, U+546A, U+5470-5471, U+5475-5477, U+547B, U+547D, U+5480, U+5484, U+5486, U+548A-548C, U+548E-5490, U+5492, U+549C, U+54A2, U+54A4-54A5, U+54A8-54A9, U+54AB, U+54AF, U+54B3, U+54B8, U+54BC-54BE, U+54C0, U+54C2, U+54C4, U+54C7-54C9, U+54D8, U+54E2, U+54E5-54E6, U+54E8-54E9, U+54ED-54EE, U+54F2, U+54FA, U+54FD, U+54FF, U+5504, U+5506-5507, U+550F-5510, U+5514, U+5516, U+552E-552F, U+5531, U+5533, U+5538-5539, U+553E, U+5540, U+5544-5545, U+554C, U+5553, U+5556-5557, U+555C-555E, U+5563, U+557B-557C, U+557E, U+5580, U+5583-5584, U+5586-5587, U+5589-558B, U+5598-559A, U+559C-559F, U+55A7-55AC, U+55AE, U+55B0, U+55B6, U+55C4-55C5, U+55C7, U+55D4, U+55DA, U+55DC, U+55DF, U+55E3-55E4, U+55F7, U+55F9, U+55FD-55FE, U+5606, U+5609, U+5614, U+5616-5618, U+561B, U+5629, U+562F, U+5631-5632, U+5634, U+5636, U+5638, U+5642, U+564C, U+564E, U+5650, U+5653, U+565B, U+5664, U+566A-566C, U+5678, U+567A, U+5680, U+5686-5687, U+568A, U+568F, U+5694, U+5699, U+56A0, U+56A2, U+56A5, U+56AE, U+56B4, U+56B6, U+56BC, U+56C0-56C3, U+56C8, U+56CA, U+56CE, U+56D1, U+56D3, U+56D7-56D8, U+56DA, U+56E0, U+56E3, U+56EE, U+56F9, U+56FD, U+56FF-5700, U+5703-5704, U+5708-5709, U+570B, U+570D, U+570F, U+5712-5713, U+5716, U+5718, U+571C, U+571F, U+5726, U+572D, U+5737-5738, U+573B, U+5740, U+574A, U+574E-5751, U+5759, U+5761, U+5764-5766, U+5769-576A, U+577F, U+5782, U+5788-5789, U+578B, U+5793, U+57A0, U+57A2-57A4, U+57AA, U+57AC, U+57B0, U+57B3, U+57C0, U+57C3, U+57C6-57C8, U+57CE, U+57D2-57D4, U+57D6, U+57DC, U+57DF-57E0, U+57E3, U+57F4, U+57F7, U+57F9, U+57FC, U+5800, U+5802, U+5805-5806, U+580A-580B, U+5815, U+5819, U+581D, U+5821, U+582A, U+582F-5830, U+5835, U+583A, U+583D, U+5840-5841, U+584A-584B, U+5851-5852, U+5858-585A, U+5861-5862, U+5869, U+586B, U+5870, U+5872, U+5875, U+5879, U+587E, U+5885, U+5893, U+589C, U+589E-589F, U+58A8, U+58AB, U+58AE, U+58B2-58B3, U+58B8-58BB, U+58BE, U+58C1, U+58C5, U+58C7, U+58CC, U+58D1, U+58D3, U+58D5, U+58D7-58D9, U+58DC, U+58DE-58DF, U+58E4-58E5, U+58EC, U+58EE-58EF, U+58F1, U+58F7, U+58F9-58FD, U+5902, U+590A-590B, U+5910, U+5918-5919, U+591B, U+5925, U+592B-592D, U+5932, U+5937-5938, U+593E, U+5944, U+5947-5949, U+594E-5951, U+5953-5955, U+5957-5958, U+595A-595B, U+595D, U+5960, U+5962-5963, U+5967-596A, U+596C, U+596E, U+5974, U+5978, U+5981-5984, U+598A, U+598D, U+5993, U+5996, U+599B, U+599D, U+59A3-59A5, U+59A8, U+59AC, U+59B2, U+59B9-59BB, U+59BE, U+59C6, U+59C9, U+59D0-59D1, U+59D4, U+59D9-59DA, U+59DC, U+59E5-59E6, U+59E8, U+59EA-59EB, U+59F6, U+59FB, U+5A03, U+5A09, U+5A11, U+5A18, U+5A1A, U+5A1C, U+5A1F-5A20, U+5A25, U+5A29, U+5A2F, U+5A35-5A36, U+5A3C, U+5A40-5A41, U+5A46, U+5A49, U+5A5A, U+5A62, U+5A66, U+5A6A, U+5A6C, U+5A7F, U+5A92, U+5A9A-5A9B, U+5ABC-5ABE, U+5AC1-5AC2, U+5AC9, U+5ACB-5ACC, U+5AD0, U+5AD6-5AD7, U+5AE1, U+5AE3, U+5AE6, U+5AE9, U+5AFA-5AFB, U+5B09, U+5B0B-5B0C, U+5B16, U+5B22, U+5B2A, U+5B2C, U+5B30, U+5B32, U+5B36, U+5B3E, U+5B40, U+5B43, U+5B45, U+5B51, U+5B54-5B56, U+5B5A-5B5D, U+5B5F, U+5B64-5B65, U+5B69, U+5B6B, U+5B70-5B71, U+5B73, U+5B75, U+5B78, U+5B7A, U+5B80, U+5B83, U+5B85, U+5B87, U+5B8B, U+5B8D, U+5B8F, U+5B95, U+5B97-5B99, U+5B9B-5B9C, U+5BA5-5BA6, U+5BAE, U+5BB0, U+5BB3-5BB5, U+5BB8-5BB9, U+5BC0, U+5BC2-5BC3, U+5BC5, U+5BC7, U+5BC9, U+5BCC, U+5BD0, U+5BD2-5BD4, U+5BD8, U+5BDB, U+5BDD-5BDF, U+5BE1-5BE2, U+5BE4-5BE9, U+5BEB, U+5BEE, U+5BF0, U+5BF3, U+5BF5-5BF6, U+5BF8, U+5BFA, U+5BFF, U+5C05-5C0B, U+5C0D, U+5C13, U+5C16, U+5C1A, U+5C1E, U+5C20, U+5C22, U+5C24, U+5C28, U+5C2D, U+5C31, U+5C38-5C3D, U+5C3F-5C41, U+5C46, U+5C4D-5C50, U+5C53, U+5C5B, U+5C5E, U+5C60-5C62, U+5C6C, U+5C6E-5C6F, U+5C76, U+5C79, U+5C8C, U+5C91, U+5C94, U+5CA1, U+5CA6, U+5CA8-5CA9, U+5CAB, U+5CB1, U+5CB3, U+5CB6-5CB8, U+5CBA-5CBC, U+5CBE, U+5CC5, U+5CC7, U+5CD9, U+5CE1, U+5CE8-5CEA, U+5CED, U+5CEF-5CF0, U+5CF5-5CF6, U+5CFA-5CFB, U+5CFD, U+5D07, U+5D0B, U+5D0E, U+5D11, U+5D14-5D1B, U+5D1F, U+5D22, U+5D27, U+5D42, U+5D4B-5D4C, U+5D4E, U+5D50, U+5D52-5D53, U+5D5C, U+5D69, U+5D6C-5D6D, U+5D6F, U+5D73, U+5D76, U+5D82, U+5D84, U+5D87, U+5D8B-5D8C, U+5D90, U+5D9D, U+5DA2, U+5DAC, U+5DAE, U+5DB7-5DBA, U+5DBC-5DBD, U+5DC9, U+5DCC-5DCD, U+5DD0, U+5DD2-5DD3, U+5DD6, U+5DDB, U+5DDE, U+5DE1, U+5DE3, U+5DE7-5DE8, U+5DEB, U+5DF2-5DF5, U+5DF7, U+5DFD-5DFE, U+5E06, U+5E0B-5E0C, U+5E11, U+5E16, U+5E19-5E1B, U+5E1D, U+5E25, U+5E2B, U+5E33, U+5E36-5E37, U+5E40, U+5E43-5E44, U+5E47, U+5E4C, U+5E4E, U+5E54, U+5E57, U+5E5F, U+5E61-5E64, U+5E75-5E76, U+5E78-5E7B, U+5E7D-5E7F, U+5E81, U+5E84, U+5E87, U+5E96, U+5E9A, U+5E9C, U+5EA0, U+5EAB, U+5EAD, U+5EB5-5EB8, U+5EC1-5EC3, U+5EC8-5EC9, U+5ECF-5ED0, U+5ED3, U+5ED6, U+5EDA-5EDB, U+5EDD, U+5EDF-5EE3, U+5EE8-5EE9, U+5EEC, U+5EF0-5EF1, U+5EF3-5EF4, U+5EF7-5EF8, U+5EFB-5EFC, U+5EFE-5EFF, U+5F03-5F04, U+5F09-5F0D, U+5F10-5F11, U+5F13-5F14, U+5F16-5F18, U+5F1B, U+5F1F, U+5F21, U+5F25-5F27, U+5F29, U+5F2D, U+5F2F, U+5F34, U+5F38, U+5F3C, U+5F41, U+5F45, U+5F48, U+5F4A, U+5F4C, U+5F4E, U+5F51, U+5F56-5F57, U+5F59, U+5F5C-5F5D, U+5F61, U+5F66-5F67, U+5F69-5F6D, U+5F70, U+5F73, U+5F77, U+5F7F-5F84, U+5F87-5F88, U+5F8A, U+5F90-5F92, U+5F98-5F99, U+5F9E, U+5FA0-5FA1, U+5FA8, U+5FAA, U+5FAD-5FAE, U+5FB3-5FB4, U+5FB7, U+5FB9, U+5FBC-5FBD, U+5FCC-5FCD, U+5FD6-5FD7, U+5FD9, U+5FDD-5FDE, U+5FE0, U+5FE4, U+5FF0-5FF1, U+5FF5, U+5FF8, U+5FFB, U+5FFD, U+5FFF, U+600E-6010, U+6012, U+6015-6016, U+6019, U+601B-601C, U+6020-6021, U+6026, U+6028-602B, U+602F, U+6031, U+603A, U+6041-6043, U+6046, U+604A-604B, U+604D, U+6050, U+6052, U+6055, U+6059-605A, U+605D, U+605F-6060, U+6062-6065, U+6068-606D, U+6070, U+6075, U+6077, U+6081, U+6083-6085, U+6089-608D, U+6092, U+6094, U+6096-6097, U+609A-609B, U+609F-60A0, U+60A3, U+60A6-60A7, U+60A9, U+60B2-60B6, U+60B8, U+60BC-60BD, U+60C6-60C7, U+60D1, U+60D3, U+60D5, U+60D8, U+60DA, U+60DC, U+60DE-60E1, U+60E3, U+60E7-60E8, U+60F0-60F4, U+60F6-60F7, U+60F9-60FB, U+6100-6101, U+6103, U+6106, U+6108-6109, U+610D-610E, U+6111, U+6115, U+611A-611B, U+6120-6121, U+6127-6128, U+612C, U+6130, U+6134, U+6137, U+613C-613F, U+6142, U+6144, U+6147-6148, U+614A, U+614C-614E, U+6153, U+6155, U+6158-615A, U+615D, U+615F, U+6165, U+6167-6168, U+616B, U+616E-6171, U+6173-6177, U+617E, U+6182, U+6187, U+618A, U+618E, U+6190-6191, U+6194, U+6196, U+6198-619A, U+61A4, U+61A7, U+61A9, U+61AB-61AC, U+61AE, U+61B2, U+61BA, U+61BE, U+61C3, U+61C6-61CD, U+61E3, U+61E6, U+61F2, U+61F4, U+61F6-61F8, U+61FA, U+61FC-6200, U+6208-620A, U+620C-620E, U+6211-6214, U+6216, U+621A-621B, U+621D-621F, U+6221, U+622A, U+622E-6230, U+6232-6234, U+6238, U+623F, U+6241, U+6247-6249, U+624D-624E, U+6255, U+6258, U+625B, U+625E, U+6260, U+6263, U+6268, U+626E, U+6276, U+6279, U+627C, U+627E-627F, U+6282-6284, U+6289-628A, U+6291-6294, U+6296-6297, U+629B, U+62A6, U+62AB-62AC, U+62B5, U+62B9, U+62BB, U+62C2, U+62C5-62CA, U+62CC, U+62CF-62D4, U+62D7-62D9, U+62DB-62DD, U+62E0-62E1, U+62EC-62EF, U+62F1, U+62F3, U+62F5-62F7, U+62FF, U+6302, U+6308-6309, U+630C, U+6319, U+6327-6328, U+632B, U+633A, U+633D-633F, U+6349, U+634C-634D, U+634F-6350, U+635C, U+6367, U+6369, U+636B, U+6372, U+6376-6377, U+637A-637B, U+6380, U+6383, U+6388-6389, U+638C, U+638E-638F, U+6392, U+6396, U+639B, U+639F-63A1, U+63A3, U+63A9-63AC, U+63B4-63B5, U+63BB, U+63BE, U+63C0, U+63C4, U+63C6, U+63C9, U+63D2, U+63D6, U+63E1, U+63E3, U+63E9, U+63EE, U+63F5-63F6, U+6406, U+640D, U+640F, U+6413-6414, U+6416-6417, U+641C, U+6426, U+6428, U+642C-642D, U+6434, U+6436, U+643A, U+643E, U+6442, U+644E, U+6451, U+6460, U+6467, U+6469, U+646F, U+6476, U+6478, U+647A, U+6488, U+6492-6493, U+6495, U+649A, U+649D-649E, U+64A4-64A5, U+64A9, U+64AB, U+64AD-64AE, U+64B0, U+64B2, U+64B9, U+64BB-64BC, U+64C1-64C2, U+64C5, U+64C7, U+64CE, U+64D2, U+64D4, U+64D8, U+64DA, U+64E0-64E3, U+64E6-64E7, U+64EC, U+64EF, U+64F1-64F2, U+64F4, U+64F6, U+64FA, U+64FD-64FE, U+6500, U+6505, U+6518, U+651C-651D, U+6522-6524, U+652A-652C, U+652F, U+6534-6538, U+653F, U+6548, U+654D-654F, U+6551, U+6555-6556, U+6558, U+655D-655E, U+6562, U+6566, U+656C, U+6572, U+6578, U+6582-6583, U+6588, U+658C, U+658E, U+6590-6591, U+6597, U+659B-659C, U+659F, U+65A1, U+65A4-65A5, U+65A7, U+65AB, U+65AF, U+65B7, U+65BC-65BD, U+65C1, U+65C3-65C6, U+65CB-65CC, U+65CF, U+65D2, U+65D7, U+65D9, U+65DB, U+65E0-65E1, U+65E6, U+65E8, U+65EC-65ED, U+65F1, U+65FA-65FB, U+6600, U+6602-6603, U+6606, U+6609-660A, U+660C, U+660F, U+6613-6615, U+661C, U+6624-6625, U+6627-6628, U+662D-662F, U+6631, U+6634-6636, U+663B, U+663F, U+6641, U+6643-6644, U+6649, U+664B, U+664F, U+6652, U+6657, U+6659, U+665D-665F, U+6662, U+6664-6668, U+666E, U+6670, U+6673, U+6676, U+667A, U+6681, U+6683-6684, U+6687-6689, U+668E, U+6691, U+6696, U+6698-6699, U+669D, U+66A0, U+66A2, U+66A6, U+66AB, U+66B2, U+66B4, U+66B8-66B9, U+66BC, U+66BE-66BF, U+66C1, U+66C4, U+66C7, U+66C9, U+66D6, U+66D9-66DA, U+66DD, U+66E0, U+66E6, U+66E9, U+66F0, U+66F3, U+66F5, U+66F7, U+66F9-66FE, U+6703, U+670B, U+670D-670F, U+6714-6717, U+671E, U+6726-6727, U+672E, U+6731, U+6734, U+6736-6738, U+673A, U+673D, U+673F, U+6741, U+6746, U+6749, U+674E-6751, U+6753, U+6756, U+6759, U+675C, U+675E, U+6760, U+6762-6764, U+6766, U+676A, U+676D, U+676F-6773, U+6775, U+6777, U+677C, U+677E, U+6785, U+6787, U+6789, U+678B-678C, U+6790, U+6795, U+6797, U+679D, U+67A1-67A2, U+67A6, U+67A9, U+67AF, U+67B3-67B4, U+67B6-67B9, U+67BB, U+67C0-67C1, U+67C4, U+67C6, U+67CA, U+67CE-67D1, U+67D3-67D4, U+67D8, U+67DA, U+67DD-67DE, U+67E2, U+67E4, U+67E7, U+67E9, U+67EC, U+67EE-67EF, U+67F3-67F5, U+67FA, U+67FE-67FF, U+6802-6805, U+6813, U+6816-6817, U+681E, U+6822, U+6829-682B, U+6832, U+6834, U+683D, U+6840-6844, U+6846, U+684D-684E, U+6850-6854, U+6859, U+685C-685D, U+6863, U+6867, U+6874, U+6876-6877, U+687E-687F, U+6881, U+6883, U+6885, U+688D-688F, U+6893-6894, U+6897, U+689B, U+689D, U+689F-68A0, U+68A2, U+68A6-68A8, U+68AD, U+68AF-68B1, U+68B3, U+68B5-68B6, U+68B9-68BA, U+68BC, U+68C6, U+68C8-68CB, U+68CD, U+68CF, U+68D2, U+68D4-68D5, U+68D7-68D8, U+68DA, U+68E0-68E1, U+68E3, U+68E7, U+68EE-68EF, U+68F2, U+68F9-68FA, U+6900-6901, U+6904-6905, U+6908, U+690B-690F, U+6912, U+6919-691C, U+6921-6923, U+6925-6926, U+6928, U+692A, U+6930, U+6934, U+6936, U+6939, U+693D, U+693F, U+694A, U+6953-6955, U+6959-695A, U+695C-695E, U+6960-6962, U+6968, U+696A-696B, U+696E-696F, U+6973-6975, U+6977-6979, U+697C, U+697E, U+6981-6982, U+698A, U+698E, U+6991, U+6994-6995, U+6998, U+699B-699C, U+69A0, U+69A7, U+69AE, U+69B1-69B2, U+69B4, U+69BB, U+69BE-69BF, U+69C1, U+69C3, U+69C7, U+69CA, U+69CC-69CE, U+69D0, U+69D3, U+69D9, U+69DD-69DE, U+69E2, U+69E7-69E8, U+69EB, U+69ED, U+69F2, U+69F9, U+69FB, U+69FD, U+69FF, U+6A02, U+6A05, U+6A0A-6A0C, U+6A12-6A14, U+6A17, U+6A1B, U+6A1E-6A1F, U+6A21-6A23, U+6A29, U+6A2B, U+6A2E, U+6A30, U+6A35-6A36, U+6A38-6A3A, U+6A3D, U+6A44, U+6A46-6A48, U+6A58-6A59, U+6A61-6A62, U+6A66, U+6A6B, U+6A72-6A73, U+6A78, U+6A7E-6A80, U+6A84, U+6A8D-6A8E, U+6A90, U+6A97, U+6A9C, U+6AA0, U+6AA2-6AA3, U+6AAA, U+6AAC, U+6AAE, U+6AB3, U+6AB8, U+6ABB, U+6AC1-6AC3, U+6AD1, U+6AD3, U+6ADA-6ADB, U+6ADE-6ADF, U+6AE2, U+6AE4, U+6AE8, U+6AEA, U+6AFA-6AFB, U+6B05, U+6B0A, U+6B12, U+6B16, U+6B1D, U+6B1F-6B20, U+6B23, U+6B27, U+6B32, U+6B37-6B3A, U+6B3D-6B3E, U+6B43, U+6B47, U+6B49, U+6B4E, U+6B50, U+6B53-6B54, U+6B59, U+6B5B, U+6B5F, U+6B61, U+6B64, U+6B66, U+6B6A, U+6B73-6B74, U+6B78-6B79, U+6B7F-6B80, U+6B83-6B84, U+6B86, U+6B89-6B8A, U+6B8D, U+6B95-6B96, U+6B98, U+6B9E, U+6BA4, U+6BAA-6BAB, U+6BAF, U+6BB1-6BB4, U+6BB7, U+6BBA, U+6BBC, U+6BBF-6BC0, U+6BC5-6BC6, U+6BCB, U+6BCD, U+6BD2-6BD3, U+6BD6, U+6BD8, U+6BDB, U+6BDF, U+6BEB-6BEC, U+6BEF, U+6BF3, U+6C08, U+6C0F, U+6C11, U+6C13-6C14, U+6C1B, U+6C23-6C24, U+6C37, U+6C3E-6C41, U+6C50, U+6C55, U+6C57, U+6C5A, U+6C5C-6C60, U+6C62, U+6C68, U+6C6A, U+6C6F-6C70, U+6C72-6C73, U+6C7D-6C7E, U+6C81-6C83, U+6C86, U+6C8C-6C8D, U+6C90, U+6C92-6C93, U+6C96, U+6C99-6C9B, U+6CA2, U+6CAB, U+6CAE, U+6CB1, U+6CB3, U+6CB8-6CBF, U+6CC4-6CC5, U+6CC9-6CCA, U+6CCC, U+6CD3, U+6CD5, U+6CD7, U+6CD9-6CDB, U+6CDD, U+6CE5, U+6CEA, U+6CEF-6CF1, U+6CF3, U+6D04, U+6D0B-6D0C, U+6D12, U+6D17, U+6D19, U+6D1B, U+6D1E-6D1F, U+6D25, U+6D29-6D2B, U+6D32-6D33, U+6D35-6D36, U+6D38, U+6D3D-6D3E, U+6D44-6D45, U+6D59-6D5A, U+6D63-6D64, U+6D66, U+6D69-6D6A, U+6D6C, U+6D6F, U+6D74, U+6D78-6D79, U+6D85, U+6D87, U+6D8C, U+6D8E, U+6D93, U+6D95-6D96, U+6D99, U+6D9B-6D9C, U+6DAC, U+6DAF, U+6DB2, U+6DB5, U+6DB8, U+6DBC, U+6DC0, U+6DC5-6DC7, U+6DCB-6DCC, U+6DCF, U+6DD1-6DD2, U+6DD5, U+6DD8-6DD9, U+6DDE, U+6DE4, U+6DE6, U+6DE8, U+6DEA-6DEC, U+6DEE, U+6DF2-6DF3, U+6DF5, U+6DF8-6DFC, U+6E05, U+6E07, U+6E09-6E0B, U+6E13, U+6E15, U+6E19-6E1A, U+6E1D, U+6E1F-6E20, U+6E23-6E25, U+6E27, U+6E29, U+6E2B, U+6E2D-6E2E, U+6E38-6E3A, U+6E3C, U+6E3E, U+6E43, U+6E4D-6E4E, U+6E56, U+6E58, U+6E5B-6E5C, U+6E5F, U+6E6B, U+6E6E, U+6E72, U+6E76, U+6E7E, U+6E82, U+6E8C, U+6E8F, U+6E98, U+6E9D, U+6E9F, U+6EA2, U+6EA5, U+6EAA, U+6EAF, U+6EB2, U+6EB7, U+6EBA, U+6EBD, U+6EBF, U+6EC2, U+6EC4, U+6EC9, U+6ECB-6ECC, U+6ED1, U+6ED3-6ED5, U+6EDD-6EDE, U+6EEC, U+6EEF, U+6EF2, U+6EF7-6EF8, U+6EFE-6EFF, U+6F01-6F02, U+6F06, U+6F09, U+6F0F, U+6F11, U+6F13, U+6F15, U+6F20, U+6F22-6F23, U+6F2B-6F2C, U+6F31-6F32, U+6F38, U+6F3E-6F3F, U+6F41, U+6F45, U+6F51, U+6F54, U+6F58, U+6F5B, U+6F5F, U+6F64, U+6F66, U+6F6D, U+6F6F, U+6F74, U+6F78, U+6F7A, U+6F7C, U+6F80-6F82, U+6F84, U+6F86, U+6F88, U+6F8E, U+6F91, U+6F97, U+6FA1, U+6FA3-6FA4, U+6FAA, U+6FB3, U+6FB5, U+6FB9, U+6FC0, U+6FC2-6FC3, U+6FC6, U+6FD4-6FD5, U+6FD8, U+6FDB, U+6FDF-6FE0, U+6FE4, U+6FEB-6FEC, U+6FEE-6FEF, U+6FF1, U+6FF3, U+6FF5-6FF6, U+6FFA, U+6FFE, U+7001, U+7005-7007, U+7009, U+700B, U+700F, U+7011, U+7015, U+7018, U+701A-701B, U+701D-701F, U+7026-7028, U+702C, U+7030, U+7032, U+703E, U+704C, U+7051, U+7058, U+7063, U+7078, U+707C-707D, U+7085, U+708A, U+708E, U+7092, U+7099, U+70AB-70AF, U+70B3, U+70B8, U+70BA-70BB, U+70C8, U+70CB, U+70CF, U+70D9, U+70DD, U+70DF, U+70F1, U+70F9, U+70FD, U+7104, U+7109, U+710F, U+7114, U+7119-711A, U+711C, U+7130, U+7146-7147, U+7149, U+714E, U+7155-7156, U+715C, U+7162, U+7164-7166, U+7169, U+716C, U+716E, U+717D, U+7184, U+7188, U+718A, U+718F, U+7194-7195, U+7199, U+71A8, U+71AC, U+71B1, U+71B9, U+71C1, U+71C8-71C9, U+71CE, U+71D0, U+71D2, U+71D4-71D5, U+71D7, U+71DF-71E0, U+71E5-71E7, U+71EC-71EE, U+71F5, U+71F9, U+71FB-71FC, U+71FE-71FF, U+720D, U+7210, U+721B, U+7228, U+722A, U+722C-722D, U+7230, U+7232, U+7235-7236, U+723A-7240, U+7246, U+724B-724C, U+7252, U+7258, U+725D, U+725F, U+7261-7262, U+7267, U+7272, U+7274, U+727D-727E, U+7280-7282, U+7287, U+7292, U+7296, U+72A0, U+72A2, U+72A7, U+72AC, U+72AF, U+72B1-72B2, U+72B9, U+72BE, U+72C2-72C4, U+72C6, U+72CE, U+72D0, U+72D2, U+72D7, U+72D9, U+72DB, U+72E0-72E2, U+72E9, U+72F7-72F9, U+72FC-72FD, U+730A, U+7316-7317, U+731B-731D, U+731F, U+7324-7325, U+7329-732A, U+732E-732F, U+7334, U+7336-7337, U+733E-733F, U+7344-7345, U+734E-734F, U+7357, U+7363, U+7368, U+736A, U+7370, U+7375, U+7377-7378, U+737A-737B, U+7384, U+7396, U+73A9, U+73B2-73B3, U+73BB, U+73BD, U+73C0, U+73C2, U+73C8-73CA, U+73CE, U+73D2, U+73D6, U+73DE, U+73E3, U+73E5, U+73EA, U+73ED-73EE, U+73F1, U+73F5, U+73F8, U+7403, U+7405, U+7407, U+7409, U+7422, U+7425-7426, U+7429-742A, U+742E, U+7432-7436, U+743A, U+743F, U+7441, U+7455, U+7459-745C, U+745E-7460, U+7463-7464, U+7469-746A, U+746F-7470, U+7473, U+7476, U+747E, U+7483, U+7489, U+748B, U+749E-749F, U+74A2, U+74A7, U+74BD, U+74CA, U+74CF, U+74D4, U+74DC, U+74E0, U+74E2-74E3, U+74E6-74E7, U+74E9, U+74EE, U+74F0-74F2, U+74F7-74F8, U+7501, U+7503-7505, U+750C-750E, U+7511, U+7513, U+7515, U+7518, U+751A, U+751C, U+751E, U+7525-7526, U+752B-752C, U+752F-7530, U+7532-7533, U+7537-7538, U+753C, U+7544, U+7546, U+7549-754B, U+754D, U+754F, U+7551, U+7554, U+755A-755D, U+7560, U+7562, U+7564-7567, U+7569, U+756B, U+756D, U+756F-7570, U+7573-7574, U+7576-7578, U+757F, U+7582, U+7586-7587, U+7589-758B, U+758E-758F, U+7594, U+759A, U+759D, U+75A3, U+75A5, U+75AB, U+75B1-75B3, U+75B5, U+75B8-75B9, U+75BC-75BE, U+75C2-75C3, U+75C5, U+75C7, U+75CA, U+75CD, U+75D2, U+75D4-75D5, U+75D8-75D9, U+75DB, U+75DE, U+75E2-75E3, U+75E9, U+75F0, U+75F2-75F4, U+75FA, U+75FC, U+75FE-75FF, U+7601, U+7609, U+760B, U+760D, U+761F-7622, U+7624, U+7627, U+7630, U+7634, U+763B, U+7642, U+7646-7648, U+764C, U+7652, U+7656, U+7658, U+765C, U+7661-7662, U+7667-766A, U+766C, U+7670, U+7672, U+7676, U+7678, U+767B-767C, U+7680, U+7682-7684, U+7686-7688, U+768B, U+768E, U+7690, U+7693, U+7696, U+7699-769C, U+769E, U+76A6, U+76AE, U+76B0, U+76B4, U+76B7-76BA, U+76BF, U+76C2-76C3, U+76C6, U+76C8, U+76CA, U+76CD, U+76D2, U+76D6-76D7, U+76DB-76DC, U+76DE-76DF, U+76E1, U+76E3, U+76E5, U+76E7, U+76EA, U+76F2, U+76FB, U+76FE, U+7704, U+7707-7709, U+770C, U+771B, U+771E, U+7720, U+7724-7726, U+7729, U+7737-7738, U+773A, U+773C, U+7746-7747, U+775A-775B, U+7761-7763, U+7765-7766, U+7768, U+776B, U+7779, U+777E-777F, U+778B, U+778E, U+7791, U+779E, U+77A0, U+77A5, U+77AD, U+77B0, U+77B3, U+77B6, U+77B9, U+77BB-77BD, U+77BF, U+77C7, U+77CD, U+77D7, U+77DA-77DC, U+77E3, U+77E7, U+77E9, U+77EE-77EF, U+77FC, U+780C, U+7812, U+7814, U+7820-7821, U+7825-7827, U+7832, U+783A, U+783F, U+7845, U+784E, U+785D, U+7864, U+786B-786C, U+786F, U+7872, U+7874, U+787A, U+787C, U+7881, U+7886-7887, U+788C-788E, U+7891, U+7893, U+7895, U+7897, U+789A, U+78A3, U+78A7, U+78A9-78AA, U+78AF, U+78B5, U+78BC, U+78BE, U+78C1, U+78C5-78C6, U+78CA-78CB, U+78D0-78D1, U+78D4, U+78DA, U+78E7-78E8, U+78EC, U+78EF, U+78F4, U+78FD, U+7901, U+7907, U+790E, U+7911-7912, U+7919, U+7926, U+792A-792C, U+7930, U+793C, U+7940-7941, U+7947, U+7949, U+7950, U+7953, U+7955-7957, U+795A, U+795D, U+795F-7960, U+7962, U+7965, U+7968, U+796D, U+7977, U+797A, U+797F-7980, U+7984-7985, U+798A, U+798D-798F, U+7994, U+799B, U+799D, U+79A6-79A7, U+79AA, U+79AE, U+79B0-79B1, U+79B3, U+79B9-79BA, U+79BD-79C1, U+79C9, U+79CB, U+79D1, U+79D5, U+79DF, U+79E1, U+79E3-79E4, U+79E6-79E7, U+79E9, U+79EC, U+7A00, U+7A08, U+7A0D-7A0E, U+7A14, U+7A17-7A1A, U+7A1C, U+7A1F-7A20, U+7A31-7A32, U+7A37, U+7A3B-7A3E, U+7A40, U+7A42-7A43, U+7A46, U+7A49, U+7A4E-7A50, U+7A57, U+7A61-7A63, U+7A69, U+7A6B, U+7A70, U+7A76, U+7A79, U+7A7D, U+7A7F, U+7A83-7A84, U+7A88, U+7A92, U+7A95-7A98, U+7A9F, U+7AA9-7AAA, U+7AAE-7AB0, U+7AB6, U+7ABA, U+7ABF, U+7AC3-7AC5, U+7AC7-7AC8, U+7ACA, U+7ACD, U+7ACF, U+7AD1-7AD3, U+7AD5, U+7AD9-7ADA, U+7ADC-7ADD, U+7ADF, U+7AE1-7AE3, U+7AE5-7AE7, U+7AEA-7AEB, U+7AED, U+7AF0, U+7AF8-7AFA, U+7AFF, U+7B02, U+7B04, U+7B06, U+7B08, U+7B0A-7B0B, U+7B0F, U+7B18-7B19, U+7B1B, U+7B1E, U+7B20, U+7B25, U+7B28, U+7B33, U+7B35-7B36, U+7B39, U+7B45, U+7B48, U+7B4C-7B4D, U+7B4F-7B52, U+7B56, U+7B5D, U+7B65, U+7B67, U+7B6C, U+7B6E, U+7B70-7B71, U+7B74-7B75, U+7B7A, U+7B86, U+7B8B, U+7B8D, U+7B8F, U+7B92, U+7B94-7B95, U+7B97-7B9A, U+7B9C-7B9F, U+7BAA, U+7BAD, U+7BB4, U+7BB8, U+7BC1, U+7BC6-7BC7, U+7BC9, U+7BCB-7BCC, U+7BCF, U+7BDD, U+7BE4-7BE6, U+7BE9, U+7BED, U+7BF3, U+7BF6-7BF7, U+7C00, U+7C07, U+7C0D, U+7C11-7C14, U+7C17, U+7C1E-7C1F, U+7C21, U+7C23, U+7C27, U+7C2A-7C2B, U+7C37-7C38, U+7C3D-7C40, U+7C43, U+7C4C-7C4D, U+7C4F-7C50, U+7C54, U+7C56, U+7C58, U+7C5F-7C60, U+7C64-7C65, U+7C6C, U+7C73, U+7C75, U+7C7E, U+7C81-7C83, U+7C8B, U+7C8D, U+7C90, U+7C95, U+7C97, U+7C9B, U+7C9F, U+7CA1-7CA2, U+7CA4-7CA5, U+7CA7-7CA8, U+7CAB, U+7CAD-7CAE, U+7CB1-7CB3, U+7CB9, U+7CBD, U+7CC0, U+7CC2, U+7CC5, U+7CCA, U+7CCE, U+7CD2, U+7CD6, U+7CD8, U+7CDC, U+7CDE-7CE0, U+7CE2, U+7CE7, U+7CEF, U+7CF2, U+7CF4, U+7CF6, U+7CFA, U+7CFE, U+7D00, U+7D02, U+7D05-7D06, U+7D0A, U+7D10, U+7D14-7D15, U+7D17-7D18, U+7D1A-7D1C, U+7D21, U+7D2C, U+7D2E-7D2F, U+7D32-7D33, U+7D35, U+7D39-7D3A, U+7D3F, U+7D43, U+7D45-7D46, U+7D48, U+7D4B, U+7D4E-7D4F, U+7D56, U+7D5B, U+7D62-7D63, U+7D68, U+7D6E, U+7D72-7D73, U+7D76, U+7D79, U+7D7D, U+7D89, U+7D8F, U+7D93, U+7D9B-7D9C, U+7D9F-7DA0, U+7DA2-7DA3, U+7DAB-7DB1, U+7DB4-7DB5, U+7DB7-7DB8, U+7DBA-7DBB, U+7DBD-7DBF, U+7DC7, U+7DCA-7DCB, U+7DD2, U+7DD5-7DD6, U+7DD8, U+7DDC-7DDE, U+7DE1, U+7DE4, U+7DE9, U+7DEC, U+7DEF, U+7DF2, U+7DF4, U+7DFB, U+7E01, U+7E04-7E05, U+7E09-7E0B, U+7E12, U+7E1B, U+7E1F, U+7E21-7E23, U+7E2B, U+7E31-7E32, U+7E35, U+7E37, U+7E39-7E3B, U+7E3D-7E3E, U+7E41, U+7E43, U+7E46, U+7E4A, U+7E4D, U+7E52, U+7E54-7E56, U+7E59-7E5A, U+7E5D-7E5E, U+7E61, U+7E66-7E67, U+7E69-7E6B, U+7E6D, U+7E79, U+7E7B-7E7D, U+7E7F, U+7E82-7E83, U+7E88-7E8A, U+7E8C, U+7E8E-7E90, U+7E92-7E94, U+7E96, U+7E9B-7E9C, U+7F38, U+7F3A, U+7F45, U+7F47, U+7F4C-7F4E, U+7F50-7F51, U+7F54-7F55, U+7F58, U+7F5F-7F60, U+7F67-7F6B, U+7F70, U+7F72, U+7F75, U+7F77-7F79, U+7F82-7F83, U+7F85-7F88, U+7F8A, U+7F8C, U+7F8E, U+7F94, U+7F9A, U+7F9D-7F9E, U+7FA1, U+7FA3-7FA4, U+7FA8-7FA9, U+7FAE-7FAF, U+7FB2, U+7FB6, U+7FB8-7FB9, U+7FBD, U+7FC1, U+7FC5-7FC6, U+7FCA, U+7FD4-7FD5, U+7FE0-7FE1, U+7FE6, U+7FE9, U+7FEB, U+7FF0, U+7FF3, U+7FF9, U+7FFB-7FFC, U+8000-8001, U+8004, U+8006, U+800B-800C, U+8010, U+8012, U+8015, U+8017-8019, U+801C, U+8021, U+8028, U+8036, U+803B, U+803D, U+803F, U+8046, U+804A, U+8052, U+8056, U+8058, U+805A, U+805F, U+8061-8062, U+8068, U+806F-8070, U+8072-8074, U+8076, U+8079, U+807D-807F, U+8084-8087, U+8089, U+808B-808C, U+8093, U+8096, U+8098, U+809A-809B, U+809D, U+80A1-80A2, U+80A5, U+80AA, U+80AC-80AD, U+80AF, U+80B1, U+80B4, U+80BA, U+80C3-80C4, U+80C6, U+80CE, U+80D6, U+80D9-80DB, U+80DD-80DE, U+80E1, U+80E4-80E5, U+80EF, U+80F1, U+80F4, U+80FC, U+8102, U+8105-810A, U+811A-811B, U+8123, U+8129, U+812F, U+8131, U+8133, U+8139, U+813E, U+8146, U+814B, U+814E, U+8150-8151, U+8153-8155, U+815F, U+8165-8166, U+816B, U+816E, U+8170-8171, U+8174, U+8178-817A, U+817F-8180, U+8182-8183, U+8188, U+818A, U+818F, U+8193, U+8195, U+819A, U+819C-819D, U+81A0, U+81A3-81A4, U+81A8-81A9, U+81B0, U+81B3, U+81B5, U+81B8, U+81BA, U+81BD-81C0, U+81C2, U+81C6, U+81C8-81C9, U+81CD, U+81D1, U+81D8-81DA, U+81DF-81E0, U+81E3, U+81E5, U+81E7-81E8, U+81ED, U+81F3-81F4, U+81FA-81FC, U+81FE, U+8201-8202, U+8205, U+8207-820A, U+820C-820D, U+8210, U+8212, U+8216, U+8218, U+821B-821C, U+821F, U+8229, U+822B-822C, U+822E, U+8233, U+8235-8239, U+8240, U+8247, U+8258-825A, U+825D, U+825F, U+8262, U+8264, U+8266, U+8268, U+826A-826B, U+826E-826F, U+8271, U+8276-8278, U+827E, U+828B, U+828D, U+8292, U+8299, U+829D, U+829F, U+82A5-82A6, U+82AB-82AD, U+82AF, U+82B3, U+82B8-82B9, U+82BB, U+82BD, U+82C5, U+82D1-82D4, U+82D7, U+82D9, U+82DB-82DC, U+82DE-82DF, U+82E1, U+82E3, U+82E5-82E7, U+82EB, U+82F1, U+82F3-82F4, U+82F9-82FB, U+8301-8306, U+8309, U+830E, U+8316-8318, U+8323, U+8328, U+832B, U+832F, U+8331-8332, U+8334-8335, U+8338-8339, U+8340, U+8345-8346, U+834A, U+834F-8350, U+8352, U+8358, U+8362, U+8373, U+8375, U+8377, U+837B-837C, U+837F, U+8385, U+8387, U+8389-838A, U+838E, U+8393, U+8396, U+839A, U+839E-83A0, U+83A2, U+83A8, U+83AA-83AB, U+83B1, U+83B5, U+83BD, U+83C1, U+83C5, U+83C7, U+83CA, U+83CC, U+83CE, U+83D6, U+83D8, U+83DC, U+83DF-83E0, U+83E9, U+83EB, U+83EF-83F2, U+83F4, U+83F6-83F7, U+83FB, U+83FD, U+8403-8404, U+8407, U+840A-840E, U+8413, U+8420, U+8422, U+8429-842A, U+842C, U+8431, U+8435, U+8438, U+843C, U+8446, U+8448, U+844E, U+8457, U+845B, U+8461-8463, U+8466, U+8469, U+846B-846F, U+8471, U+8475, U+8477, U+8479-847A, U+8482, U+8484, U+848B, U+8490, U+8494, U+8499, U+849C, U+849F, U+84A1, U+84AD, U+84B2, U+84B4, U+84B8-84B9, U+84BB-84BC, U+84BF, U+84C1, U+84C4, U+84C6, U+84C9-84CB, U+84CD, U+84D0-84D1, U+84D6, U+84D9-84DA, U+84DC, U+84EC, U+84EE, U+84F4, U+84FC, U+84FF-8500, U+8506, U+8511, U+8513-8515, U+8517-8518, U+851A, U+851F, U+8521, U+8523, U+8526, U+852C-852D, U+8535, U+853D-853E, U+8540-8541, U+8543, U+8548-854B, U+854E, U+8553, U+8555, U+8557-855A, U+8563, U+8568-856B, U+856D, U+8577, U+857E, U+8580, U+8587-8588, U+858A, U+8590-8591, U+8594, U+8597, U+8599, U+859B-859C, U+85A4, U+85A6, U+85A8-85AC, U+85AE-85B0, U+85B9-85BA, U+85C9, U+85CD, U+85CF-85D0, U+85D5, U+85DC-85DD, U+85E4-85E5, U+85E9-85EA, U+85F7, U+85F9-85FB, U+85FE, U+8602, U+8606-8607, U+860A-860B, U+8613, U+8616-8617, U+861A, U+8622, U+862D, U+862F-8630, U+863F, U+864D-864E, U+8650, U+8654-8655, U+865A, U+865C, U+865E-865F, U+8667, U+8671, U+867B, U+868A-868C, U+8693, U+8695, U+86A3-86A4, U+86A9-86AB, U+86AF-86B0, U+86B6, U+86C4, U+86C6-86C7, U+86C9, U+86CB, U+86CD-86CE, U+86D4, U+86D9, U+86DB, U+86DE-86DF, U+86E4, U+86E9, U+86EC-86EF, U+86F8-86F9, U+86FB, U+86FE, U+8700, U+8702-8703, U+8706, U+8708-870A, U+870D, U+8711-8712, U+8718, U+871A, U+871C, U+8725, U+8729, U+8734, U+8737, U+873B, U+873F, U+8749, U+874B-874C, U+874E, U+8753, U+8755, U+8757, U+8759, U+875F-8760, U+8763, U+8766, U+8768, U+876A, U+876E, U+8774, U+8776, U+8778, U+877F, U+8782, U+878D, U+879F, U+87A2, U+87AB, U+87AF, U+87B3, U+87BA-87BB, U+87BD, U+87C0, U+87C4, U+87C6-87C7, U+87CB, U+87D0, U+87D2, U+87E0, U+87EC, U+87EF, U+87F2, U+87F6-87F7, U+87F9, U+87FB, U+87FE, U+8805, U+8807, U+880D-880F, U+8811, U+8815-8816, U+881F, U+8821-8823, U+8827, U+8831, U+8836, U+8839, U+883B, U+8840, U+8842, U+8844, U+8846, U+884D, U+8852-8853, U+8859, U+885B, U+885D-885E, U+8861-8863, U+886B, U+8870, U+8872, U+8875, U+8877, U+887D-887F, U+8881-8882, U+8888, U+888D, U+8892, U+8897, U+8899, U+889E, U+88A2, U+88A4, U+88AE, U+88B0-88B1, U+88B4-88B5, U+88B7, U+88BF, U+88C1-88C4, U+88D4, U+88D8-88D9, U+88DD, U+88DF, U+88E1, U+88E8, U+88F2-88F5, U+88F8-88F9, U+88FC, U+88FE, U+8902, U+8904, U+890A, U+890C, U+8910, U+8912-8913, U+891C-891E, U+8925, U+892A-892B, U+8936, U+8938, U+893B, U+8941, U+8943-8944, U+894C-894D, U+8956, U+895E-8960, U+8964, U+8966, U+896A, U+896D, U+896F, U+8972, U+8974, U+8977, U+897E-897F, U+8983, U+8986-8988, U+898A, U+8993, U+8997-8998, U+89A1, U+89A6, U+89A9-89AA, U+89AC, U+89AF, U+89B2-89B3, U+89BA, U+89BD, U+89BF-89C0, U+89DA, U+89DC-89DD, U+89E7, U+89F4, U+89F8, U+8A02-8A03, U+8A0A, U+8A0C, U+8A0E, U+8A10, U+8A12-8A13, U+8A16-8A17, U+8A1B, U+8A1D, U+8A1F, U+8A23, U+8A25, U+8A31, U+8A33-8A34, U+8A36-8A37, U+8A3B, U+8A41, U+8A46, U+8A48, U+8A50-8A52, U+8A54-8A55, U+8A5B, U+8A5E, U+8A60, U+8A62-8A63, U+8A66, U+8A69, U+8A6B-8A6E, U+8A79, U+8A7C, U+8A82, U+8A84-8A85, U+8A87, U+8A89, U+8A91, U+8A93, U+8A95, U+8A98, U+8A9A, U+8AA0-8AA1, U+8AA3, U+8AA5-8AA8, U+8AB9, U+8ABC, U+8ABE, U+8AC2, U+8AC4, U+8ACB-8ACD, U+8ACF, U+8AD2, U+8AD6, U+8ADA-8ADC, U+8ADE-8AE2, U+8AE4, U+8AE6-8AE7, U+8AEB, U+8AED-8AEE, U+8AF1, U+8AF3, U+8AF6-8AF8, U+8AFA, U+8AFE, U+8B00-8B02, U+8B04, U+8B07, U+8B0C, U+8B0E, U+8B10, U+8B14, U+8B16-8B17, U+8B19-8B1B, U+8B1D, U+8B20-8B21, U+8B26, U+8B28, U+8B2B-8B2C, U+8B33, U+8B39, U+8B3E, U+8B41, U+8B49, U+8B4C, U+8B4E-8B4F, U+8B53, U+8B56, U+8B5A-8B5C, U+8B5F, U+8B6B-8B6C, U+8B6F-8B72, U+8B74, U+8B77, U+8B7D, U+8B7F-8B80, U+8B83, U+8B8A, U+8B8C, U+8B8E, U+8B90, U+8B92-8B93, U+8B96, U+8B99-8B9A, U+8C3A, U+8C3F, U+8C41, U+8C46, U+8C48, U+8C4A, U+8C4C, U+8C4E, U+8C50, U+8C55, U+8C5A, U+8C62, U+8C6A-8C6C, U+8C78-8C7A, U+8C7C, U+8C82, U+8C85, U+8C89-8C8A, U+8C8C-8C8E, U+8C94, U+8C98, U+8C9E, U+8CA2, U+8CA7-8CA8, U+8CAA, U+8CAC-8CB0, U+8CB2-8CB4, U+8CB6, U+8CBD, U+8CBF-8CC4, U+8CC7-8CC8, U+8CCA, U+8CCD-8CCE, U+8CD1, U+8CD3, U+8CDA-8CDC, U+8CDE, U+8CE0, U+8CE2-8CE4, U+8CE6, U+8CEA, U+8CED, U+8CF0, U+8CF4, U+8CFA-8CFB, U+8CFD, U+8D04-8D05, U+8D07-8D08, U+8D0A-8D0B, U+8D0D, U+8D0F-8D10, U+8D12-8D14, U+8D16, U+8D66-8D67, U+8D6B, U+8D6D, U+8D71, U+8D73-8D74, U+8D76, U+8D81, U+8D99, U+8DA3, U+8DA8, U+8DBA, U+8DBE, U+8DC2, U+8DCB-8DCC, U+8DCF, U+8DD6, U+8DDA-8DDB, U+8DDD, U+8DDF, U+8DE3, U+8DE8, U+8DEA-8DEB, U+8DF5, U+8DFC, U+8DFF, U+8E08-8E09, U+8E10, U+8E1D-8E1F, U+8E2A, U+8E30, U+8E34-8E35, U+8E42, U+8E44, U+8E47-8E4A, U+8E4C, U+8E50, U+8E55, U+8E59, U+8E5F-8E60, U+8E63-8E64, U+8E72, U+8E74, U+8E76, U+8E7C, U+8E81, U+8E84-8E85, U+8E87, U+8E8A-8E8B, U+8E8D, U+8E91, U+8E93-8E94, U+8E99, U+8EA1, U+8EAA, U+8EAC, U+8EAF-8EB1, U+8EBE, U+8EC0, U+8EC5-8EC6, U+8EC8, U+8ECB-8ECD, U+8ECF, U+8ED2, U+8EDB, U+8EDF, U+8EE3, U+8EEB, U+8EFB-8EFC, U+8EFE, U+8F03, U+8F05, U+8F0A, U+8F0C, U+8F12-8F15, U+8F19, U+8F1B-8F1C, U+8F1F, U+8F26, U+8F29, U+8F2F, U+8F33, U+8F38-8F39, U+8F3B, U+8F3E-8F3F, U+8F42, U+8F45-8F46, U+8F49, U+8F4C-8F4E, U+8F57, U+8F5C, U+8F5F, U+8F61-8F64, U+8F9B-8F9C, U+8F9F, U+8FA3, U+8FA7-8FA8, U+8FAD-8FB2, U+8FB7, U+8FBB, U+8FBF, U+8FC4-8FC5, U+8FDA, U+8FE2, U+8FE5-8FE6, U+8FE9-8FEB, U+8FED, U+8FEF-8FF0, U+8FF4, U+8FF7-8FFA, U+9000, U+9005, U+900B, U+900D-900E, U+9010-9011, U+9013, U+9015-9017, U+9019, U+901D-901E, U+9020-9022, U+9027, U+902E, U+9035-9036, U+9038-9039, U+903C, U+903E, U+9041-9042, U+9049, U+904B, U+904D-9052, U+9056, U+9058-9059, U+905C, U+905E, U+9061, U+9063, U+9065, U+9067-9069, U+906E-906F, U+9072, U+9075-9076, U+907A, U+907C-907D, U+9080-9084, U+9087, U+9089-908A, U+908F, U+9091, U+90A3, U+90A6, U+90A8, U+90AA, U+90AF, U+90B1, U+90B5, U+90B8, U+90C1, U+90CA, U+90CE, U+90DB, U+90DE, U+90E1-90E2, U+90E4, U+90ED, U+90F5, U+90F7, U+90FD, U+9102, U+9112, U+9115, U+9119, U+9127, U+912D, U+9130, U+9132, U+9149-914C, U+914E, U+9152, U+9154, U+9156, U+9158, U+9162-9163, U+9165, U+9169-916A, U+9172-9173, U+9175, U+9177-9178, U+9182, U+9187, U+9189, U+918B, U+918D, U+9190, U+9197, U+919C, U+91A2, U+91A4, U+91AA-91AC, U+91AF, U+91B1, U+91B4-91B5, U+91B8, U+91BA, U+91C0-91C1, U+91C6-91C9, U+91CB-91CC, U+91D0, U+91D6-91D8, U+91DA-91DC, U+91DE-91DF, U+91E1, U+91E4-91E7, U+91ED-91EE, U+91F5-91F6, U+91FC, U+91FF, U+9206, U+920A, U+920D-920E, U+9210-9211, U+9214-9215, U+921E, U+9229, U+922C, U+9234, U+9237, U+9239-923A, U+923C, U+923F-9240, U+9245, U+9248-9249, U+924B, U+924E, U+9250-9251, U+9257, U+9259-925A, U+925E, U+9262, U+9264, U+9266-9267, U+9271, U+9277-9278, U+927E, U+9283, U+9285, U+9288, U+9291, U+9293, U+9295-9296, U+9298, U+929A-929C, U+92A7, U+92AD, U+92B7, U+92B9, U+92D0, U+92D2-92D3, U+92D5, U+92D7, U+92D9, U+92E0, U+92E4, U+92E7, U+92E9-92EA, U+92ED, U+92F2-92F3, U+92F8-92FC, U+92FF, U+9302, U+930F-9310, U+9318-931A, U+931D-931E, U+9321-9323, U+9325-9326, U+932B-932C, U+932E-932F, U+9335, U+933A-933B, U+9344, U+9348, U+934B, U+934D, U+9354, U+9356-9357, U+935B-935C, U+9360, U+936C, U+936E, U+9370, U+937C, U+937E, U+938C, U+9394, U+9396-9397, U+939A, U+93A4, U+93A7, U+93AC-93AE, U+93B0, U+93B9, U+93C3, U+93C6, U+93C8, U+93D0-93D1, U+93D6-93D8, U+93DD-93DE, U+93E4-93E5, U+93E8, U+93F8, U+9403, U+9407, U+9410, U+9413-9414, U+9419-941A, U+9421, U+942B, U+9431, U+9435-9436, U+9438, U+943A, U+9441, U+9444-9445, U+9448, U+9452-9453, U+945A-945B, U+945E, U+9460, U+9462, U+946A, U+9470, U+9475, U+9477, U+947C-947F, U+9481, U+9580, U+9582, U+9587, U+958A, U+958F, U+9591-9592, U+9594, U+9596, U+9598-9599, U+95A0, U+95A3-95A5, U+95A7-95A8, U+95AD, U+95B2, U+95B9, U+95BB-95BC, U+95BE, U+95C3, U+95C7, U+95CA, U+95CC-95CD, U+95D4-95D6, U+95DC, U+95E1-95E2, U+95E5, U+961C, U+9621, U+9628, U+962A, U+962E-962F, U+963B, U+963F-9640, U+9642, U+9644, U+964B-964C, U+964F, U+965B-965F, U+9662-9663, U+9665-9666, U+966A, U+966C, U+9672-9673, U+9675-9678, U+967D, U+9685-9686, U+9688, U+968A-968B, U+968D, U+968F, U+9694-9695, U+9697-9699, U+969D, U+96A7-96A8, U+96AA, U+96AF-96B2, U+96B4, U+96B6-96B9, U+96BB-96BC, U+96C0-96C1, U+96C4-96C5, U+96C7, U+96C9, U+96CB-96CE, U+96D1, U+96D5-96D6, U+96D9, U+96DB-96DC, U+96EB, U+96F0, U+96F6-96F7, U+96F9, U+9700, U+9704, U+9706-9708, U+970A, U+970D-970F, U+9711, U+9713, U+9716, U+9719, U+971C, U+9724, U+972A, U+9730, U+9732-9733, U+9738-9739, U+973B, U+973D-973E, U+9742-9743, U+9746, U+9748-9749, U+974D, U+974F, U+9751, U+9756, U+975C, U+9760-9761, U+9764, U+9766, U+9768-9769, U+976B, U+976D, U+9771, U+9774, U+9779-977A, U+977C, U+9781, U+9784-9786, U+978B, U+978D, U+978F-9790, U+9798, U+979C, U+97A0, U+97A3, U+97A6, U+97A8, U+97AB, U+97AD, U+97B3-97B4, U+97C3, U+97C6, U+97C8, U+97CB, U+97D3, U+97DC, U+97ED-97EE, U+97F2, U+97F5-97F6, U+97FB, U+9801, U+9803, U+9805, U+9808, U+980C, U+980F-9813, U+9817-9818, U+981A, U+9821, U+9824, U+982C, U+9830, U+9834, U+9837-9838, U+983B-983D, U+9846, U+984B, U+984D-984F, U+9855, U+9857, U+985A-985B, U+9865, U+9867, U+986B, U+986F-9871, U+9873-9874, U+98AA, U+98AF, U+98B1, U+98B6, U+98C3-98C4, U+98C6, U+98DC, U+98E2, U+98E9, U+98EB, U+98ED-98EF, U+98F4, U+98FD-98FE, U+9903, U+9905, U+9909-990A, U+990C, U+9910, U+9912-9914, U+9918, U+991D-991E, U+9920-9921, U+9924, U+9927, U+992C, U+992E, U+993D-993E, U+9942, U+9945, U+9949, U+994B-994C, U+9950-9952, U+9955, U+9957, U+9997-9998, U+999E, U+99A5, U+99A8, U+99AD-99AE, U+99B3-99B4, U+99BC, U+99C1, U+99C4, U+99C8, U+99D0-99D2, U+99D5, U+99D8, U+99DB, U+99DD, U+99DF, U+99E2, U+99ED-99EE, U+99F1-99F2, U+99F8, U+99FB, U+99FF, U+9A01, U+9A05, U+9A0E-9A0F, U+9A12, U+9A19, U+9A28, U+9A2B, U+9A30, U+9A37, U+9A3E, U+9A40, U+9A42-9A43, U+9A45, U+9A4D-9A4E, U+9A52, U+9A55, U+9A57, U+9A5B, U+9A5F, U+9A62, U+9A64-9A65, U+9A69-9A6B, U+9AAD, U+9AB0, U+9AB8, U+9ABC, U+9AC0, U+9AC4, U+9ACF, U+9AD1, U+9AD3-9AD4, U+9AD9, U+9ADC, U+9ADE-9ADF, U+9AE2-9AE3, U+9AE6, U+9AEB, U+9AED-9AEF, U+9AF1, U+9AF4, U+9AF7, U+9AFB, U+9B06, U+9B18, U+9B1A, U+9B1F, U+9B22-9B23, U+9B25, U+9B27-9B2A, U+9B2E-9B2F, U+9B31-9B32, U+9B3B-9B3C, U+9B41-9B45, U+9B4D-9B4F, U+9B51, U+9B54, U+9B58, U+9B6F, U+9B72, U+9B74-9B75, U+9B83, U+9B8E-9B8F, U+9B91-9B93, U+9B96-9B97, U+9B9F-9BA0, U+9BA8, U+9BAA-9BAB, U+9BAD-9BAE, U+9BB1, U+9BB4, U+9BB9, U+9BBB, U+9BC0, U+9BC6, U+9BC9-9BCA, U+9BCF, U+9BD1-9BD2, U+9BD4, U+9BD6, U+9BDB, U+9BE1-9BE4, U+9BE8, U+9BF0-9BF2, U+9BF5, U+9C00, U+9C04, U+9C06, U+9C08-9C0A, U+9C0C-9C0D, U+9C10, U+9C12-9C15, U+9C1B, U+9C21, U+9C24-9C25, U+9C2D-9C30, U+9C32, U+9C39-9C3B, U+9C3E, U+9C46-9C48, U+9C52, U+9C57, U+9C5A, U+9C60, U+9C67, U+9C76, U+9C78, U+9CE5, U+9CE7, U+9CE9, U+9CEB-9CEC, U+9CF0, U+9CF3, U+9CF6, U+9D03, U+9D06-9D09, U+9D0E, U+9D12, U+9D15, U+9D1B, U+9D1F, U+9D23, U+9D26, U+9D28, U+9D2A-9D2C, U+9D3B, U+9D3E-9D3F, U+9D41, U+9D44, U+9D46, U+9D48, U+9D50-9D51, U+9D59, U+9D5C-9D5E, U+9D60-9D61, U+9D64, U+9D6B-9D6C, U+9D6F-9D70, U+9D72, U+9D7A, U+9D87, U+9D89, U+9D8F, U+9D9A, U+9DA4, U+9DA9, U+9DAB, U+9DAF, U+9DB2, U+9DB4, U+9DB8, U+9DBA-9DBB, U+9DC1-9DC2, U+9DC4, U+9DC6, U+9DCF, U+9DD3, U+9DD7, U+9DD9, U+9DE6, U+9DED, U+9DEF, U+9DF2, U+9DF8-9DFA, U+9DFD, U+9E19-9E1B, U+9E1E, U+9E75, U+9E78-9E79, U+9E7C-9E7D, U+9E7F, U+9E81, U+9E88, U+9E8B-9E8C, U+9E91-9E93, U+9E95, U+9E97, U+9E9D, U+9E9F, U+9EA5-9EA6, U+9EA9-9EAA, U+9EAD, U+9EB4-9EB5, U+9EB8-9EBC, U+9EBE-9EBF, U+9EC4, U+9ECC-9ED1, U+9ED4, U+9ED8, U+9EDB-9EDE, U+9EE0, U+9EE5, U+9EE8, U+9EEF, U+9EF4, U+9EF6-9EF7, U+9EF9, U+9EFB-9EFD, U+9F07-9F08, U+9F0E, U+9F13, U+9F15, U+9F20-9F21, U+9F2C, U+9F3B, U+9F3E, U+9F4A-9F4B, U+9F4E-9F4F, U+9F52, U+9F54, U+9F5F-9F63, U+9F66-9F67, U+9F6A, U+9F6C, U+9F72, U+9F76-9F77, U+9F8D, U+9F95, U+9F9C-9F9D, U+9FA0, U+F992-F993, U+F999, U+F9C3, U+F9EC, U+FA0E-FA10, U+FA12-FA14, U+FA16-FA23, U+FA25-FA2D, U+FA36, U+FA46, U+FA4A, U+FA6A, U+FB01-FB02, U+FE10-FE12, U+FE19, U+FE30-FE33, U+FE35-FE44, U+FE47-FE48, U+FF02-FF04, U+FF06-FF07, U+FF0A, U+FF0C-FF0E, U+FF10-FF1C, U+FF1E, U+FF20-FF5B, U+FF5D-FF5E, U+FF61-FF9F, U+FFE0-FFE5, U+FFE8, U+1F100, U+21A1A, U+243D0, U+25874, U+28CDD, U+28EF6, U+2F80F, U+2F818, U+2F877, U+2F884, U+2F8D3, U+2F8DC, U+2F8ED, U+2F920;
}
/* FONT:END */

/* 四十秒のオリ図鑑 レトロRPG風UI
   キャラも背景もドット絵なので、UIもドット窓に寄せる:
   ピクセルフォント・白枠ウィンドウ・角なし・ハードシャドウ（押すと沈む） */

* { margin: 0; padding: 0; box-sizing: border-box; }

html, body { height: 100%; }

/* 実機ではブラウザのツールバーで縦が削られる。dvh対応ブラウザでは
   「いま見えている高さ」を基準にし、ぶら下がりのはみ出しを防ぐ */
@supports (height: 100dvh) {
  body { height: 100dvh; }
  #app { height: 100dvh; }
}

body { overscroll-behavior: none; }

body {
  background: #141926;
  background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, .022) 0 1px, transparent 1px 4px);
  color: #e8ecf4;
  font-family: "DotGothic16", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;
  font-size: 15px;
  line-height: 1.6;
  display: flex;
  justify-content: center;
}

#app {
  width: 100%;
  max-width: 420px;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
}

.screen[hidden] { display: none; }

.screen {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  animation: scrfade .22s ease;
}

@keyframes scrfade { from { opacity: 0; } }

button { touch-action: manipulation; }

button:not(:disabled):active { transform: translate(2px, 2px); }

/* ---- タイトル ---- */

#scr-title {
  position: fixed;
  inset: 0;
  justify-content: flex-start;
  text-align: center;
  background: url("img/title.webp?v=5") center / cover, linear-gradient(#aebfd6, #9aa8b8);
  image-rendering: pixelated;
  padding: 96px 24px 0;
}

/* マップ画面のTOPへ戻る。ヘルプ・音量ボタンと同じ高さ・同じ見た目にそろえる
   （aタグはbuttonと行box が違うので、line-heightを明示しないと縦位置がずれる） */
#btn-top {
  text-decoration: none;
  line-height: 1.6;
}

#back-home {
  position: absolute;
  top: calc(env(safe-area-inset-top, 0px) + 12px);
  left: 12px;
  z-index: 2;
  font-size: 12px;
  letter-spacing: .04em;
  color: #e8eefb;
  text-decoration: none;
  background: rgba(10, 14, 24, .6);
  border: 1px solid #55688f;
  padding: 6px 12px;
}

#scr-title::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(10, 14, 24, .58), rgba(10, 14, 24, .34) 38%, rgba(10, 14, 24, .08) 62%, rgba(10, 14, 24, .3));
}

.title-wrap { position: relative; }

.title-sub { color: #c6d6ee; font-size: 13px; letter-spacing: .2em; text-shadow: 0 1px 6px rgba(6, 10, 18, .8); }

#scr-title h1 {
  font-size: 28px;
  letter-spacing: .12em;
  margin: 8px 0 12px;
  text-shadow: 0 2px 10px rgba(6, 10, 18, .9), 0 0 24px rgba(6, 10, 18, .6);
}

.title-note { color: #c6d6ee; font-size: 13px; margin-bottom: 28px; text-shadow: 0 1px 6px rgba(6, 10, 18, .8); }

.title-btns { display: flex; flex-direction: column; gap: 10px; max-width: 240px; margin: 0 auto; }

.title-btns button, .starter-card, .dest {
  font: inherit;
  color: inherit;
  border: 2px solid #d5deee;
  border-radius: 0;
  background: rgba(22, 28, 44, .94);
  padding: 12px;
  cursor: pointer;
  box-shadow: 3px 3px 0 rgba(6, 9, 16, .8);
}

.title-btns button:active, .starter-card:active { box-shadow: none; }

.title-dev { color: #a5b1c6; font-size: 11px; margin-top: 28px; letter-spacing: .1em; text-shadow: 0 1px 4px rgba(6, 10, 18, .8); }

/* ---- スターター選択 ---- */

#scr-starter {
  position: fixed;
  inset: 0;
  justify-content: center;
  background: url("img/bg_jinja.webp?v=5") center / cover, linear-gradient(#2c3b33, #263129);
  image-rendering: pixelated;
  padding: 0 20px;
}

#scr-starter::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(rgba(10, 14, 20, .66), rgba(10, 14, 20, .45));
}

.starter-wrap { position: relative; }

.starter-note { text-align: center; color: #e2ead8; font-size: 14px; margin-bottom: 18px; text-shadow: 0 1px 6px rgba(6, 10, 14, .8); }

#starter-list { display: flex; flex-direction: column; gap: 10px; }

.starter-card { display: flex; align-items: center; gap: 12px; text-align: left; }

.starter-card .starter-info { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }

.starter-card img { width: 64px; height: 64px; object-fit: contain; image-rendering: pixelated; }

.starter-card .starter-desc { font-size: 12px; color: #aebdd8; }

/* ---- 町 ---- */

/* 周回ラベルが長いとき（例: 100周目・学校の裏手＋霧の周回）にボタン側が潰れて
   文字が2行に割れていた。ボタンは縮ませず、はみ出すぶんはラベル側で吸収する */
#map-head { display: flex; justify-content: space-between; align-items: center; gap: 6px; padding: 4px 2px; }

#map-loop {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  color: #c0cce0;
  letter-spacing: .08em;
  background: #10141f;
  border: 2px solid #55688f;
  padding: 2px 10px;
}

#map-weather {
  flex-shrink: 0;
  white-space: nowrap;
  font-size: 13px;
  color: #a8cdf2;
  background: #16233a;
  border: 2px solid #4a6b96;
  padding: 2px 10px;
}

#map-weather:empty { display: none; }

.mutebtn {
  font: inherit;
  font-size: 12px;
  flex-shrink: 0;
  white-space: nowrap;
  color: #9fb2d4;
  background: #10141f;
  border: 2px solid #55688f;
  padding: 2px 8px;
  cursor: pointer;
}

#map-slot { font-size: 15px; font-weight: 400; padding: 8px 2px 10px; }

/* ---- 町マップ ---- */

#town {
  flex: 1;
  min-height: 0;
  display: flex;
  justify-content: center;
}

#town-inner {
  position: relative;
  height: 100%;
  max-width: 100%;
  aspect-ratio: 768 / 1152;
  border: 2px solid #55688f;
  overflow: hidden;
}

#town-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: pixelated;
  display: block;
}

/* 町マップは時間帯ごとの4枚組（town_asa/hiru/yu/yoru）。
   切り替えは時間送りカードの暗転中に行うのでクロスフェード不要 */

.node {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  background: none;
  border: none;
  padding: 12px 14px;
  cursor: pointer;
  font: inherit;
  z-index: 2;
}

.node i {
  width: 12px;
  height: 12px;
  background: #fff;
  border: 2px solid #10141f;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, .4);
}

.node span {
  font-size: 12px;
  color: #fff;
  background: rgba(12, 16, 26, .82);
  padding: 2px 6px;
  white-space: nowrap;
}

.node.fresh i { background: #ffd23d; animation: nodepulse 1.4s ease-in-out infinite; }

.node.quiet { opacity: .55; }

.node-boss i { background: #b48ae8; animation: nodepulse 1.4s ease-in-out infinite; }

.node-boss span { background: rgba(44, 26, 64, .85); color: #dcc8f5; }

.node-asuka i { background: #ff9db8; animation: nodepulse 1.4s ease-in-out infinite; }

.node-asuka span { background: rgba(64, 26, 40, .85); color: #ffd0de; }

.node-bus i { background: #6ecbe8; }

.node-bus span { background: rgba(22, 48, 64, .85); color: #c8ecfa; }

@keyframes nodepulse {
  50% { box-shadow: 0 0 0 6px rgba(255, 255, 255, .18); }
}

#walker {
  position: absolute;
  width: 40px;
  height: 40px;
  object-fit: contain;
  image-rendering: pixelated;
  transform: translate(-50%, -85%);
  transition: left .65s ease-in-out, top .65s ease-in-out;
  filter: drop-shadow(0 3px 4px rgba(0, 0, 0, .45));
  pointer-events: none;
  z-index: 2;
}

/* ヒカリ個体は歩き姿も発光（IDセレクタのfilterに負けないよう明示） */
#walker.hikari {
  filter: hue-rotate(145deg) saturate(1.35) brightness(1.12)
          drop-shadow(0 0 8px rgba(150, 255, 225, .6));
}

#walker.moving { animation: walkbob .3s ease-in-out infinite alternate; }

/* 反転種のwalker: scaleプロパティだとtransformの中央寄せごと反転して横にずれるため、
   transform内でscaleXを合成し、歩きアニメも反転版を使う */
#walker.flip {
  scale: none;
  transform: translate(-50%, -85%) scaleX(-1);
}

#walker.flip.moving { animation-name: walkbobflip; }

@keyframes walkbobflip {
  from { transform: translate(-50%, -85%) scaleX(-1); }
  to   { transform: translate(-50%, -100%) scaleX(-1); }
}

@keyframes walkbob {
  from { transform: translate(-50%, -85%); }
  to   { transform: translate(-50%, -100%); }
}

#map-party { display: flex; gap: 8px; overflow-x: auto; padding: 10px 2px 2px; }

.minihp { height: 5px; margin: 3px 6px 2px; border: 1px solid #3a4664; background: #10141f; overflow: hidden; }

.minihp i { display: block; height: 100%; background: #7de8a8; }

#map-btns { display: flex; gap: 8px; padding-top: 10px; }

#map-btns button {
  flex: 1;
  font: inherit;
  color: inherit;
  border: 2px solid #8194ba;
  border-radius: 0;
  background: #1c2334;
  padding: 9px 4px;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 3px 3px 0 #0a0e18;
}

#map-btns button:active { box-shadow: none; }

#btn-time {
  flex: 1.4;
  border-color: #d5deee;
  background: #263450;
}

/* ---- 図鑑・へんせい・もちもの ---- */

#dex-panel[hidden], #edit-panel[hidden], #bag-panel[hidden], #detail-panel[hidden],
#help-panel[hidden] { display: none; }

#dex-panel, #edit-panel, #bag-panel, #detail-panel, #help-panel {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(8, 10, 16, .78);
  padding: 18px;
}

/* .panel の text-align: center があとに来るので、クラスを2つ重ねて勝たせる。
   長い あそびかた が中央ぞろえだと読みにくい */
/* しぼりこみや並べかえで中身の量が変わっても、パネルの大きさと
   ボタンの位置を動かさない。押す場所が毎回ずれると操作しにくい。
   見出し・操作列は固定し、一覧だけをスクロールさせる */
.panel.panel-fixed {
  height: min(82vh, 82svh);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.panel-fixed > .panel-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  margin: 0 -16px -18px;
  padding: 0 16px 18px;
}

.panel.panel-wide { max-width: 380px; max-height: 82vh; max-height: 82svh; overflow-y: auto; overscroll-behavior: contain; text-align: left; }

.panel-head { display: flex; justify-content: space-between; align-items: center; }

/* スクロールする一覧では 見出しと閉じるボタンを上に貼りつける。
   長い あそびかた を読んでいる途中で ✕ が画面の外に出てしまう。
   負のマージンで .panel の内側の余白まで広げ、下の文字が透けないようにする */
.panel-wide > .panel-head {
  position: sticky;
  /* .panel の上padding分だけ持ち上げて、枠の内側にぴったり貼りつける */
  top: -18px;
  z-index: 2;
  margin: -18px -16px 8px;
  padding: 16px 16px 10px;
  background: #1a2132;
  border-bottom: 1px solid #3a4664;
}

.panel-head button {
  font: inherit; color: #9fb2d4; background: none; border: none; cursor: pointer; padding: 4px 8px;
}

.panel-note { font-size: 12px; color: #aebdd8; margin-top: 4px; }

.help-sec {
  font-size: 13px;
  color: #ffd23d;
  margin: 14px 0 6px;
  padding-bottom: 3px;
  border-bottom: 1px solid #3a4664;
}

.help-cycle { font-size: 14px; letter-spacing: .04em; margin: 8px 0 6px; }

.help-cycle .chip { font-size: 13px; padding: 4px 9px; }

.help-note { font-size: 13px; color: #cfd9ea; line-height: 1.8; }

.help-list {
  list-style: none;
  font-size: 13px;
  line-height: 1.8;
  color: #cfd9ea;
}

.help-list li {
  padding-left: 14px;
  position: relative;
  margin-bottom: 4px;
}

.help-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: .65em;
  width: 6px;
  height: 6px;
  background: #55688f;
}

.dex-sec { font-size: 12px; color: #aebdd8; margin: 12px 0 6px; }

#detail-moves {
  margin: 10px 0 4px;
  max-height: 180px;
  overflow-y: auto;
  overflow-x: hidden;
  text-align: left;
}

.mv-row {
  display: grid;
  grid-template-columns: 40px 1fr 62px;
  gap: 2px 8px;
  align-items: center;
  width: 100%;
  padding: 6px 8px;
  margin-bottom: 4px;
  border: 1px solid #3a4664;
  background: #171d30;
  color: inherit;
  font: inherit;
  font-size: 12px;
  text-align: left;
}

button.mv-row { cursor: pointer; }

.mv-row .mv-lv { color: #aebdd8; font-size: 11px; }

.mv-row b { font-size: 13px; }

.mv-row .mv-tag { font-size: 10px; color: #aebdd8; text-align: right; white-space: nowrap; }

.mv-row .mv-desc { grid-column: 1 / -1; color: #8fa0be; font-size: 11px; line-height: 1.5; }

.mv-row.mv-on { border-color: #7de8a8; background: rgba(125, 232, 168, .08); }

.mv-row.mv-on .mv-tag { color: #7de8a8; }

.mv-row.mv-locked { opacity: .45; }

.dex-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }

.dex-cell {
  text-align: center;
  background: #10141f;
  border: 2px solid #2c3854;
  padding: 8px 4px 6px;
  font-size: 11px;
}

.dex-cell img { width: 56px; height: 56px; object-fit: contain; image-rendering: pixelated; }

.dex-cell b { display: block; font-size: 12px; }

.dex-cell span { color: #aebdd8; }

button.dex-cell { font: inherit; color: inherit; cursor: pointer; }

/* ヒカリオリ: 色相シフト＋発光。絵の追加なしで色違いを表現する。
   enemy-img等はIDセレクタのfilterが勝つため、個別に上書きする */
img.hikari, #enemy-img.hikari, #me-img.hikari, #detail-img.hikari {
  filter: hue-rotate(145deg) saturate(1.35) brightness(1.12)
          drop-shadow(0 0 8px rgba(150, 255, 225, .6));
}

/* ヒカリ出現のきらめき */
#enemy-img.hikari-burst { animation: hikariburst .75s ease; }

@keyframes hikariburst {
  0%   { filter: brightness(3) saturate(0) drop-shadow(0 0 26px rgba(190, 255, 230, .95)); }
  100% { filter: hue-rotate(145deg) saturate(1.35) brightness(1.12)
                 drop-shadow(0 0 8px rgba(150, 255, 225, .6)); }
}

/* 図鑑セルでは名前の下にブロックで、名前の横に出すときは .inline を足す */
.hikari-mark.inline {
  display: inline-block;
  width: auto;
  margin: 0 0 0 4px;
  vertical-align: 2px;
}

.hikari-mark {
  display: block;
  width: fit-content;
  white-space: nowrap;
  margin: 3px auto 0;
  font-style: normal;
  font-size: 10px;
  line-height: 1.5;
  color: #8cf5d2;
  border: 1px solid #3f8f74;
  padding: 0 5px;
}

#dex-sub {
  font-size: 13px;
  color: #cfd9ea;
  margin-top: 6px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}

/* 節ごとに折り返す。「つぎまで あと3」が「つぎま／で あと3」に割れるのを防ぐ */
.dsub-text {
  display: flex;
  flex-wrap: wrap;
  gap: 0 2px;
  min-width: 0;
}

.dsub-text span { white-space: nowrap; }

/* 区切りは前の語のうしろに付ける。次の行の先頭に「・」が来ると据わりが悪い */
.dsub-text span:not(:last-child)::after { content: "・"; color: #6c7c9c; }

#dex-share {
  color: #8fc0ef;
  font-size: 12px;
  border: 2px solid #4a6b96;
  padding: 2px 10px;
  text-decoration: none;
  background: #16233a;
  flex-shrink: 0;
  white-space: nowrap;
}

.dex-omake { border-color: #8a7440; background: #201c10; }

.dex-omake b { color: #ffd23d; }

.dex-cell.unknown img { filter: brightness(0) opacity(.55); }

#detail-panel { z-index: 31; }

#detail-img {
  width: 132px;
  height: 132px;
  object-fit: contain;
  image-rendering: pixelated;
}

#detail-motif { font-size: 12px; color: #aebdd8; margin-top: 2px; }

#detail-radar { margin: 6px auto 0; max-width: 240px; }

#detail-radar svg { width: 100%; display: block; font-family: inherit; }

#detail-panel .panel { max-height: 88vh; max-height: 88svh; overflow-y: auto; overscroll-behavior: contain; }

#detail-dex {
  font-size: 14px;
  line-height: 1.8;
  text-align: left;
  margin: 10px 0;
  padding-top: 10px;
  border-top: 1px solid #3a4664;
}

#detail-stats { font-size: 12px; color: #aebdd8; margin-bottom: 4px; }

#detail-growth { font-size: 12px; color: #8fa4c4; margin-bottom: 12px; }

#detail-lead, #detail-close {
  font: inherit;
  color: inherit;
  border: 2px solid #8194ba;
  border-radius: 0;
  background: #232c40;
  padding: 9px 16px;
  margin: 0 4px;
  cursor: pointer;
  box-shadow: 3px 3px 0 #0a0e18;
}

#detail-lead { border-color: #d5deee; background: #263450; }

#detail-lead:active, #detail-close:active { box-shadow: none; }

.dex-cell.unknown b { color: #6b7789; }

#edit-list { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }

/* 一覧の見出し（手持ち／ひかえ、つかえるもの／だいじなもの） */
.list-sec {
  margin: 12px 2px 4px;
  font-size: 12px;
  letter-spacing: .1em;
  color: #8fa4c4;
}

.list-sec:first-child { margin-top: 2px; }

.edit-row {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  font: inherit;
  color: inherit;
  border: 2px solid #55688f;
  border-radius: 0;
  background: #1c2334;
  padding: 8px 10px;
  cursor: pointer;
  text-align: left;
}

/* 手持ちの並び順。ひかえは空欄のまま幅だけ確保して、名前の位置をそろえる */
.edit-row .edit-no {
  flex: none;
  width: 22px;
  height: 22px;
  line-height: 20px;
  text-align: center;
  font-size: 13px;
  color: #0e1220;
  background: #7de8a8;
  border: 2px solid #3f6b52;
}

.edit-row:not(.in) .edit-no { background: transparent; border-color: transparent; }

.edit-row img { width: 40px; height: 40px; flex: none; object-fit: contain; image-rendering: pixelated; }

.edit-row .edit-info { flex: 1; min-width: 0; display: block; }

.edit-row .edit-top { display: flex; align-items: baseline; gap: 6px; }

.edit-row .edit-top b { font-size: 15px; }

/* HPの数字は名前と同じ行の右端に。行を増やさない */
.edit-row .edit-hp {
  margin-left: auto;
  flex: none;
  font-size: 11px;
  color: #8fa4c4;
  font-variant-numeric: tabular-nums;
}

.edit-row .edit-sub { display: block; font-size: 12px; color: #aebdd8; margin-top: 1px; }

/* spanのままだと幅が効かず縦線になるので、必ずblockにする */
.edit-row .hpbar { display: block; margin: 4px 0 0; max-width: none; height: 7px; }

.edit-row.in { border-color: #3f6b52; background: #1b2b26; }

/* 倒れているオリは選ぶ前に分かるように落とす */
.edit-row.down { opacity: .55; }

.edit-row.down .edit-sub { color: #ff9d8f; }

#bag-list { display: flex; flex-direction: column; gap: 8px; margin-top: 10px; }

.bag-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font: inherit;
  color: inherit;
  border: 2px solid #55688f;
  border-radius: 0;
  background: #1c2334;
  padding: 9px 12px;
  text-align: left;
}

button.bag-row { cursor: pointer; }

button.bag-row:active { background: #2e3a56; }

/* 絵のあるものと無いものが混ざるので、枠だけは同じ幅を確保して行頭をそろえる */
.bag-icon {
  flex: none;
  width: 40px;
  height: 40px;
  image-rendering: pixelated;
  object-fit: contain;
}

/* 個数を右端に押しやるため、名前と説明の側が行の残り幅をぜんぶ取る */
.bag-body { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; min-width: 0; }

.bag-row .bag-head { display: flex; align-items: baseline; gap: 8px; }

.bag-row .bag-name { font-size: 14px; font-weight: 600; flex: 1; min-width: 0; }

/* 個数は右端にそろえる。かいがらのように数が意味を持つものが埋もれないように */
.bag-row .bag-num {
  flex: none;
  white-space: nowrap;
  font-size: 13px;
  color: #ffd98a;
  font-variant-numeric: tabular-nums;
}

.bag-row .bag-desc { font-size: 12px; color: #aebdd8; }

/* だいじなものは押せない。押せそうに見せない */
.bag-row.bag-key { border-color: #4a4664; background: #201f30; cursor: default; }

.bag-row.bag-key .bag-name { color: #c9bde8; }

/* ---- ヘッダー（信号＝残り秒数） ---- */

#head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 4px 2px 8px;
}

/* 戦闘中の場所ラベル。ページ見出しではないので h1 をやめた（2026-08-19） */
#head #battle-place { margin: 0; font-size: 14px; font-weight: 400; letter-spacing: .08em; color: #aebdd8; }

#signal {
  font-size: 15px;
  font-variant-numeric: tabular-nums;
  padding: 2px 10px;
  border: 2px solid #55688f;
  border-radius: 0;
  background: #10141f;
}

.sig-go   { color: #7de8a8; }
.sig-warn { color: #ffd23d; animation: sigblink 1.2s step-end infinite; }
.sig-stop { color: #ff7d6b; }

@keyframes sigblink { 50% { opacity: .35; } }

/* ---- 敵エリア ---- */

/* 戦う場所の背景。JSが background-image を差し、時間帯の色みは ::before で重ねる */
#enemy {
  position: relative;
  text-align: center;
  padding: 6px 0 2px;
  background-size: cover;
  background-position: center;
  image-rendering: pixelated;
}

/* オリと数字は幕より前に出す */
#enemy > * { position: relative; z-index: 1; }

#scr-battle[data-slot="0"] #enemy::before,
#scr-battle[data-slot="1"] #enemy::before,
#scr-battle[data-slot="2"] #enemy::before,
#scr-battle[data-slot="3"] #enemy::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

#scr-battle[data-slot="0"] #enemy::before { background: radial-gradient(ellipse 75% 62% at 50% 42%, rgba(130, 170, 230, .16), transparent 72%); }
#scr-battle[data-slot="1"] #enemy::before { background: radial-gradient(ellipse 75% 62% at 50% 42%, rgba(245, 205, 120, .14), transparent 72%); }
#scr-battle[data-slot="2"] #enemy::before { background: radial-gradient(ellipse 75% 62% at 50% 42%, rgba(255, 145, 95, .15), transparent 72%); }
#scr-battle[data-slot="3"] #enemy::before { background: radial-gradient(ellipse 75% 62% at 50% 42%, rgba(150, 125, 255, .15), transparent 72%); }


#enemy-img {
  width: 168px;
  height: 168px;
  object-fit: contain;
  image-rendering: pixelated;
  filter: drop-shadow(0 6px 10px rgba(0, 0, 0, .35));
  transition: opacity .45s, filter .45s;
}

/* 最終戦の明日香だけ。オリと同じ大きさだと 人の絵が小さく見える。
   足もとはHPバーに重ねてよいので、負のマージンで下へはみ出させる */
#enemy-img.big {
  width: 306px;
  height: 306px;
  margin-bottom: -54px;
  position: relative;
  z-index: 0;
  pointer-events: none;
}

/* 大きい立ち絵が下までのびるので、名前とHPは前に出す。
   足もとが帯のうしろに回りこんで、UIの前に立っているように見える */
#enemy-name, #enemy-hp {
  position: relative;
  z-index: 2;
}

#enemy-name { text-shadow: 0 2px 4px rgba(4, 7, 14, .95), 0 0 10px rgba(4, 7, 14, .9); }

#enemy-img.enter { animation: foein .95s ease-out; }

@keyframes foein {
  0%   { opacity: 0; transform: translateY(22px) scale(.72); filter: brightness(0) blur(6px); }
  35%  { opacity: .85; transform: translateY(10px) scale(.9); filter: brightness(0) blur(3px); }
  60%  { opacity: 1; transform: translateY(2px) scale(1); filter: brightness(.35) blur(1px); }
  82%  { filter: brightness(.75) blur(0); }
  100% { opacity: 1; transform: none; filter: none; }
}

#enemy-img.hit { animation: foehit .32s ease; }

@keyframes foehit {
  0%   { transform: translateX(0);    filter: brightness(1); }
  25%  { transform: translateX(-8px); filter: brightness(1.9); }
  55%  { transform: translateX(7px);  filter: brightness(1.2); }
  100% { transform: translateX(0);    filter: brightness(1); }
}

#enemy-img.gone { opacity: .12; filter: grayscale(1); }

#me-img.hit { animation: mehit .3s ease; }

@keyframes mehit {
  0%   { transform: translateX(0);   filter: brightness(1); }
  30%  { transform: translateX(6px); filter: brightness(1.8); }
  60%  { transform: translateX(-5px); }
  100% { transform: translateX(0);   filter: brightness(1); }
}

#enemy-img.hikari.hit, #me-img.hikari.hit { animation: hikarihit .32s ease; }

@keyframes hikarihit {
  0%   { transform: translateX(0);
         filter: hue-rotate(145deg) saturate(1.35) brightness(1.12) drop-shadow(0 0 8px rgba(150, 255, 225, .6)); }
  25%  { transform: translateX(-8px);
         filter: hue-rotate(145deg) saturate(1.35) brightness(2) drop-shadow(0 0 14px rgba(150, 255, 225, .8)); }
  55%  { transform: translateX(7px);
         filter: hue-rotate(145deg) saturate(1.35) brightness(1.4) drop-shadow(0 0 10px rgba(150, 255, 225, .7)); }
  100% { transform: translateX(0);
         filter: hue-rotate(145deg) saturate(1.35) brightness(1.12) drop-shadow(0 0 8px rgba(150, 255, 225, .6)); }
}

.unit-name { font-size: 15px; font-weight: 400; }

.lv { color: #aebdd8; font-weight: 400; font-size: 13px; }

.kasane { color: #ffd23d; font-size: 13px; }

#btn-m2 { position: relative; }

.m2-count {
  position: absolute;
  top: 2px;
  right: 5px;
  font-size: 10px;
  font-style: normal;
  color: #ffd23d;
}

/* 記録済みの野生につくマーク。絵馬の色 */
.caught-mark {
  display: inline-block;
  font-size: 11px;
  line-height: 1;
  padding: 3px 5px;
  border: 1px solid #c9a86a;
  color: #ffd23d;
  background: rgba(84, 62, 26, .55);
  vertical-align: 2px;
}

.chip {
  display: inline-block;
  font-size: 12px;
  line-height: 1;
  padding: 3px 7px;
  border-radius: 0;
  vertical-align: 1px;
}

.chip-asa  { background: #3a4a66; color: #cfe4ff; }
.chip-hiru { background: #5c4a26; color: #ffe2a1; }
.chip-yu   { background: #5c3630; color: #ffc0a8; }
.chip-yoru { background: #3a3060; color: #d0c2ff; }

.hpbar {
  height: 10px;
  margin: 5px auto 2px;
  max-width: 220px;
  border: 2px solid #d5deee;
  border-radius: 0;
  background: #0e1220;
  overflow: hidden;
}

.hpbar i {
  display: block;
  height: 100%;
  background: #7de8a8;
  transition: width .3s steps(6);
}

.hpbar i.mid { background: #ffd23d; }
.hpbar i.low { background: #ff7d6b; }

.hpnum { font-size: 12px; color: #aebdd8; font-variant-numeric: tabular-nums; }

/* ---- 自分エリア ---- */

#me {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 6px;
  border-top: 1px solid #2a3450;
}

#me-img {
  width: 84px;
  height: 84px;
  object-fit: contain;
  image-rendering: pixelated;
  flex: none;
}

#me-info { flex: 1; min-width: 0; }

#me-info .hpbar { margin: 5px 0 2px; max-width: none; }

/* ---- ログ ---- */

#log {
  height: 92px;
  padding: 7px 10px;
  border: 2px solid #d5deee;
  border-radius: 0;
  background: #0e1220;
  box-shadow: 3px 3px 0 rgba(6, 9, 16, .8);
  font-size: 14px;
}

#log { overflow-y: auto; }

#log p { animation: logline .18s ease; }

/* 敵味方の区別: 自分=緑がかった白・相手=茜。地の文はそのまま */
#log p.log-me  { color: #c8ecd2; }

#log p.log-foe { color: #f4c0b0; }

@keyframes logline { from { opacity: 0; transform: translateY(3px); } }

/* ---- コマンド ---- */

#cmds { padding-top: 10px; }

#cmds button, #ov-btns button, #ov-btns a, #switch-menu button, #dev button {
  text-decoration: none;
  font: inherit;
  color: inherit;
  border: 2px solid #8194ba;
  border-radius: 0;
  background: #232c40;
  padding: 10px 8px;
  cursor: pointer;
  box-shadow: 3px 3px 0 #0a0e18;
}

#cmds button:not(:disabled):active, #ov-btns button:active, #ov-btns a:active,
#switch-menu button:active, #dev button:active { box-shadow: none; }

#cmds button:disabled { opacity: .38; box-shadow: none; }

#cmds button {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#btn-m2.used { text-decoration: line-through; }

#cmds button:not(:disabled):active { background: #2e3a56; }

#btn-item, #btn-pass { padding: 9px 8px; font-size: 14px; color: #c2cde0; }

#move-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

#move-grid .mv { position: relative; }

#move-grid .mv.used { opacity: .5; }

#action-row {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 5px;
  margin-top: 8px;
}

#action-row button {
  padding: 9px 2px;
  font-size: 11px;
  letter-spacing: 0;
}

#cmds #btn-rewind {
  color: #f0eaff;
  border-color: #9a86d6;
  background: linear-gradient(180deg, #3d3168, #262050);
  box-shadow: inset 0 0 10px rgba(150, 120, 220, .35), 3px 3px 0 rgba(6, 9, 16, .8);
}

#cmds #btn-rewind:not(:disabled) { animation: rewindpulse 2.2s ease-in-out infinite; }

@keyframes rewindpulse {
  0%, 100% { box-shadow: inset 0 0 10px rgba(150, 120, 220, .35), 3px 3px 0 rgba(6, 9, 16, .8); }
  50%      { box-shadow: inset 0 0 16px rgba(170, 140, 245, .6), 3px 3px 0 rgba(6, 9, 16, .8); }
}

/* ---- 時間送りの演出 ---- */

#time-card[hidden] { display: none; }

#time-card {
  position: fixed;
  inset: 0;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(7, 9, 16, .86);
  animation: timecard 1.15s steps(12);
}

#time-card span {
  font-size: 27px;
  letter-spacing: .34em;
  padding-left: .34em;
  color: #e8ecf4;
  text-shadow: 0 0 18px rgba(140, 170, 255, .35);
}

@keyframes timecard {
  0%   { opacity: 0; }
  20%  { opacity: 1; }
  78%  { opacity: 1; }
  100% { opacity: 0; }
}

/* ---- 切り札のカットイン ---- */

#cutin[hidden] { display: none; }

#cutin {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  pointer-events: none;
  background: rgba(7, 9, 16, .45);
}

#cutin-band {
  width: 100%;
  height: 112px;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 0 20px;
  border-top: 2px solid #fff;
  border-bottom: 2px solid #fff;
  animation: cutband .74s steps(12);
}

.cutin-asa  { background: linear-gradient(90deg, rgba(52, 84, 132, .95), rgba(140, 180, 235, .88)); }
.cutin-hiru { background: linear-gradient(90deg, rgba(140, 100, 30, .95), rgba(240, 200, 110, .88)); }
.cutin-yu   { background: linear-gradient(90deg, rgba(140, 55, 45, .95), rgba(250, 150, 100, .88)); }
.cutin-yoru { background: linear-gradient(90deg, rgba(55, 42, 110, .95), rgba(150, 125, 235, .88)); }

#cutin-img {
  width: 92px;
  height: 92px;
  object-fit: contain;
  image-rendering: pixelated;
  filter: drop-shadow(3px 3px 0 rgba(6, 9, 16, .6));
  animation: cutimg .74s ease;
}

#cutin-name {
  font-size: 21px;
  letter-spacing: .08em;
  color: #fff;
  text-shadow: 2px 2px 0 rgba(6, 9, 16, .75);
  animation: cutname .74s ease;
}

#cutin.cutin-foe #cutin-band { flex-direction: row-reverse; animation-name: cutbandfoe; }

@keyframes cutband {
  0%   { transform: translateX(-104%); }
  16%  { transform: translateX(0); }
  84%  { transform: translateX(0); }
  100% { transform: translateX(104%); }
}

@keyframes cutbandfoe {
  0%   { transform: translateX(104%); }
  16%  { transform: translateX(0); }
  84%  { transform: translateX(0); }
  100% { transform: translateX(-104%); }
}

@keyframes cutimg {
  0%   { transform: scale(.6); }
  22%  { transform: scale(1.12); }
  34%  { transform: scale(1); }
}

@keyframes cutname {
  0%   { opacity: 0; transform: translateX(14px); }
  22%  { opacity: 1; transform: translateX(0); }
}

/* 大威力の着弾で画面が揺れる */
#scr-battle.quake { animation: quake .3s steps(6); }

@keyframes quake {
  0%   { transform: translate(0, 0); }
  25%  { transform: translate(-5px, 3px); }
  50%  { transform: translate(4px, -3px); }
  75%  { transform: translate(-3px, 2px); }
  100% { transform: translate(0, 0); }
}

/* 弱体の紫の靄 */
#enemy-img.fogged, #me-img.fogged { animation: fogged .7s ease; }

@keyframes fogged {
  0%   { filter: hue-rotate(250deg) saturate(.7) brightness(.75); }
  60%  { filter: hue-rotate(250deg) saturate(.7) brightness(.8); }
  100% { filter: none; }
}

/* 左右反転して表示する種（scaleプロパティはtransformアニメと独立に効く） */
.flip { scale: -1 1; }

/* ---- つり ---- */

/* ゲーセン: 暗い店内に 台がならぶ */
#arcade-panel[hidden] { display: none; }

#arcade-panel {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 16px;
  background: radial-gradient(circle at 50% 30%, #241a3e, #0b0a16 70%);
}

#arcade-box {
  width: min(90vw, 360px);
  max-height: 74vh;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #12101f;
  border: 3px solid #6b4fa8;
  box-shadow: 5px 5px 0 rgba(6, 9, 16, .8);
  padding: 12px;
}

#arcade-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  color: #e8eefb;
  font-size: 15px;
  margin-bottom: 10px;
}

#arcade-note {
  flex-shrink: 0;
  white-space: nowrap;
  font-size: 11px;
  color: #9d8fd0;
}

#arcade-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.arcade-item {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 4px 10px;
  width: 100%;
  padding: 10px 12px;
  text-align: left;
  font-family: inherit;
  color: #e8eefb;
  background: #1d1836;
  border: 2px solid #6b4fa8;
  box-shadow: 3px 3px 0 rgba(6, 9, 16, .6);
  cursor: pointer;
}

.arcade-item b { font-size: 14px; }

.arcade-item .arcade-best {
  grid-row: 1 / 3;
  grid-column: 2;
  flex-shrink: 0;
  white-space: nowrap;
  font-size: 12px;
  color: #ffd98a;
}

.arcade-item .arcade-desc {
  grid-column: 1;
  font-size: 11px;
  color: #a9a3c4;
}

#arcade-quit {
  flex-shrink: 0;
  font: inherit;
  color: #e8eefb;
  background: #171d30;
  border: 2px solid #d5deee;
  padding: 10px 34px;
  box-shadow: 3px 3px 0 rgba(6, 9, 16, .8);
}

/* いちば: 桟橋の屋台の台に品物がならぶ。かいがらで交換する */
#shop-panel[hidden] { display: none; }

#shop-panel {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 16px;
  background: linear-gradient(rgba(10, 20, 34, .82), rgba(8, 14, 26, .92)),
    url("img/bg_ichiba.webp?v=5") center / cover;
}

#shop-stall {
  width: min(90vw, 360px);
  max-height: 74vh;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: linear-gradient(#3b2a1c, #2a1e14);
  border: 3px solid #7a5a3a;
  box-shadow: 5px 5px 0 rgba(6, 9, 16, .8);
}

#shop-awning {
  height: 18px;
  background: repeating-linear-gradient(90deg, #d8e6ea 0 16px, #2f7f92 16px 32px);
  border-bottom: 3px solid #7a5a3a;
}

#shop-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 10px 12px 0;
  color: #f2e6d2;
  font-size: 15px;
}

#shop-wallet {
  flex-shrink: 0;
  white-space: nowrap;
  font-size: 12px;
  color: #ffd98a;
}

#shop-talk {
  margin: 6px 12px 10px;
  font-size: 12px;
  color: #c7b49a;
  line-height: 1.6;
}

#shop-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0 10px 12px;
}

.shop-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 4px 10px;
  width: 100%;
  padding: 9px 11px;
  text-align: left;
  background: #f0e2c8;
  border: 2px solid #8a6a45;
  box-shadow: 3px 3px 0 rgba(6, 9, 16, .55);
  cursor: pointer;
  font-family: inherit;
}

.shop-item b {
  grid-row: 1;
  grid-column: 2;
  font-size: 14px;
  color: #2a1e14;
}

.shop-icon {
  grid-row: 1 / 3;
  grid-column: 1;
  width: 40px;
  height: 40px;
  image-rendering: pixelated;
  object-fit: contain;
}

.shop-item .shop-cost {
  grid-row: 1 / 3;
  grid-column: 3;
  flex-shrink: 0;
  white-space: nowrap;
  font-size: 13px;
  color: #7a4a1a;
  border: 2px solid #b08a52;
  background: #ffeec6;
  padding: 3px 8px;
}

.shop-item .shop-desc {
  grid-row: 2;
  grid-column: 2;
  font-size: 11px;
  color: #6b5a44;
  line-height: 1.5;
}

.shop-item[disabled] {
  background: #b9ae9c;
  border-color: #6e604c;
  cursor: default;
  opacity: .7;
}

.shop-item[disabled] .shop-cost { color: #8a3a2a; }

#shop-quit {
  flex-shrink: 0;
  font: inherit;
  color: #e8eefb;
  background: #171d30;
  border: 2px solid #d5deee;
  padding: 10px 34px;
  box-shadow: 3px 3px 0 rgba(6, 9, 16, .8);
}

#fish-panel[hidden] { display: none; }

#fish-panel {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background: linear-gradient(#0d1526 0%, #14304e 45%, #1b4a6b 100%);
}

#fish-water {
  position: relative;
  width: min(86vw, 340px);
  height: 300px;
  border: 2px solid #d5deee;
  background: linear-gradient(#173b58, #1d5a80 70%, #24688f);
  overflow: hidden;
  cursor: pointer;
  touch-action: manipulation;
}

#fish-uki {
  position: absolute;
  left: 50%;
  top: 46%;
  width: 56px;
  height: 56px;
  margin: -28px 0 0 -28px;
  image-rendering: pixelated;
  animation: ukibob 1.6s ease-in-out infinite;
}

#fish-uki.cast { animation: ukicast .62s cubic-bezier(.3, 0, .6, 1) forwards; }

#fish-uki.bite { animation: ukisink .3s ease forwards; }

#fish-uki.nibble { animation: ukinibble .35s ease; }

#fish-uki.fight { animation: ukifight .28s ease-in-out infinite; }

#fish-uki.jolt { animation: ukijolt .18s ease; }

@keyframes ukibob {
  0%, 100% { transform: translateY(0) rotate(-3deg); }
  50%      { transform: translateY(6px) rotate(3deg); }
}

@keyframes ukicast {
  0%   { transform: translate(150px, -220px) rotate(120deg); opacity: 0; }
  20%  { opacity: 1; }
  100% { transform: translate(0, 0) rotate(0deg); }
}

@keyframes ukisink {
  from { transform: translateY(0) rotate(0deg); opacity: 1; }
  to { transform: translateY(26px) rotate(8deg); opacity: .55; }
}

@keyframes ukinibble {
  0%, 100% { transform: translateY(0); }
  35%      { transform: translateY(9px) rotate(6deg); }
  65%      { transform: translateY(2px) rotate(-4deg); }
}

@keyframes ukifight {
  0%, 100% { transform: translate(-7px, 14px) rotate(-14deg); }
  50%      { transform: translate(7px, 20px) rotate(12deg); }
}

@keyframes ukijolt {
  50% { transform: translate(0, 2px) scale(1.18); }
}

#fish-sil {
  position: absolute;
  left: 50%;
  top: 46%;
  width: 92px;
  height: 92px;
  margin: -46px 0 0 -46px;
  image-rendering: pixelated;
  filter: brightness(0) drop-shadow(0 0 6px rgba(150, 220, 255, .6));
}

#fish-sil.jump { animation: siljump .95s cubic-bezier(.25, .9, .6, 1) forwards; }

@keyframes siljump {
  0%   { transform: translateY(56px) scale(.4) rotate(-12deg); opacity: 0; }
  18%  { opacity: 1; }
  55%  { transform: translateY(-88px) scale(1.05) rotate(8deg); }
  100% { transform: translateY(-58px) scale(1) rotate(3deg); opacity: 1; }
}

#fish-alert {
  position: absolute;
  left: 50%;
  top: 16%;
  transform: translateX(-50%);
  font-size: 54px;
  font-weight: 700;
  color: #ffd23d;
  text-shadow: 3px 3px 0 rgba(6, 9, 16, .9);
  animation: alertpop .4s cubic-bezier(.2, 1.6, .5, 1);
}

@keyframes alertpop {
  0% { transform: translateX(-50%) scale(.2); }
  60% { transform: translateX(-50%) scale(1.3); }
  100% { transform: translateX(-50%) scale(1); }
}

#fish-water {
  --fish-tint-a: rgba(10, 22, 42, .38);
  --fish-tint-b: rgba(8, 16, 32, .55);
  background-size: cover;
  background-position: center;
}

#fish-water.fish-rain {
  --fish-tint-a: rgba(26, 36, 58, .5);
  --fish-tint-b: rgba(12, 18, 34, .64);
}

/* 雨: 雨だれを描いた64pxのタイルを2層で降らせる。
   CSSの縞だけだと粒の位相が揃って「横しま」に見えてしまうので、
   位置をばらして描いた画像を敷いている（img/fx/rain_near・rain_far） */
#fish-water.fish-rain::before,
#fish-water.fish-rain::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  image-rendering: pixelated;
}

/* 手前の雨だれ。太くて速い */
#fish-water.fish-rain::after {
  background: url("img/fx/rain_near.webp?v=5") 0 0 / 64px 64px repeat;
  animation: fishrain-near .5s linear infinite;
}

/* 奥の雨。細くてゆっくり・うすい */
#fish-water.fish-rain::before {
  background: url("img/fx/rain_far.webp?v=5") 0 0 / 64px 64px repeat;
  animation: fishrain-far .9s linear infinite;
}

/* 横のずれは雨だれの傾き（dx:dy = 1:4）に合わせる */
@keyframes fishrain-near {
  to { background-position: -16px 64px; }
}

@keyframes fishrain-far {
  to { background-position: -16px 64px; }
}

#fish-water.fish-time--yu {
  --fish-tint-a: rgba(196, 96, 38, .38);
  --fish-tint-b: rgba(74, 28, 56, .58);
}

#fish-water.fish-time--yoru {
  --fish-tint-a: rgba(4, 8, 26, .72);
  --fish-tint-b: rgba(2, 5, 16, .84);
}

#fish-water.shake { animation: watershake .3s ease; }

@keyframes watershake {
  25% { transform: translate(3px, -2px); }
  50% { transform: translate(-3px, 2px); }
  75% { transform: translate(2px, 1px); }
}

.fish-ripple {
  position: absolute;
  width: 18px;
  height: 8px;
  margin: -4px 0 0 -9px;
  border: 2px solid rgba(220, 240, 255, .75);
  border-radius: 50%;
  pointer-events: none;
  animation: rippleout .85s ease-out forwards;
}

@keyframes rippleout {
  0%   { transform: scale(.4); opacity: 1; }
  100% { transform: scale(3.4); opacity: 0; }
}

#fish-gauge {
  width: min(86vw, 340px);
  height: 18px;
  border: 2px solid #d5deee;
  background: #10141f;
  box-shadow: 3px 3px 0 rgba(6, 9, 16, .8);
}

#fish-gauge[hidden] { display: none; }

#fish-gauge i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #46b06e, #7de8a8);
  transition: width .1s linear;
}

#fish-msg {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 10px;
  text-align: center;
  font-size: 14px;
  color: #e8eefb;
  text-shadow: 0 1px 4px rgba(6, 10, 18, .8);
}

#fish-quit {
  font: inherit;
  color: #e8eefb;
  background: #171d30;
  border: 2px solid #d5deee;
  padding: 10px 34px;
  box-shadow: 3px 3px 0 rgba(6, 9, 16, .8);
}

/* ---- 切り札のパーティクル ---- */

.fx-layer {
  position: absolute;
  z-index: 6;
  pointer-events: none;
}

.fx-p {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 48px;
  height: 48px;
  object-fit: contain;
  image-rendering: pixelated;
  margin: -24px 0 0 -24px;
  opacity: 0;
  animation-duration: .9s;
  animation-delay: var(--fx-d);
  animation-timing-function: ease-out;
  animation-fill-mode: forwards;
}

.fx-m-fall  { animation-name: fxfall; animation-timing-function: cubic-bezier(.5, 0, .9, .4); }
.fx-m-stab  { animation-name: fxstab; animation-timing-function: cubic-bezier(.1, .8, .2, 1); }
.fx-m-burst { animation-name: fxburst; }
.fx-m-ring  { animation-name: fxring; width: 96px; height: 96px; margin: -48px 0 0 -48px; animation-duration: 1s; }
.fx-p.fx-m-ring:nth-child(even) { filter: brightness(1.4); }
.fx-m-rise  { animation-name: fxrise; }
.fx-m-dash  { animation-name: fxdash; }
.fx-m-swing { animation-name: fxswing; width: 76px; height: 76px; margin: -38px 0 0 -38px;
  transform-origin: 50% -70px; animation-timing-function: ease-in-out; animation-duration: 1.05s; }
.fx-m-slash { animation-name: fxslash; width: 84px; height: 84px; margin: -42px 0 0 -42px; }
.fx-m-spin  { animation-name: fxspin; width: 96px; height: 96px; margin: -48px 0 0 -48px; animation-duration: 1.15s; }
.fx-p.fx-alt.fx-m-slash { animation-name: fxslash2; }

@keyframes fxfall {
  0%   { opacity: 0; transform: translate(calc(var(--fx-x) - 130px), calc(var(--fx-y) - 190px)) rotate(var(--fx-r)) scale(var(--fx-s)); }
  12%  { opacity: 1; }
  62%  { opacity: 1; transform: translate(calc(var(--fx-x) + 70px), calc(var(--fx-y) + 120px)) rotate(var(--fx-r)) scale(var(--fx-s)); }
  100% { opacity: 0; transform: translate(calc(var(--fx-x) + 70px), calc(var(--fx-y) + 120px)) rotate(var(--fx-r)) scale(calc(var(--fx-s) * .6)); }
}

@keyframes fxstab {
  0%   { opacity: 0; transform: translate(calc(var(--fx-x) + 160px), calc(var(--fx-y) - 160px)) rotate(var(--fx-r)) scale(var(--fx-s)); }
  8%   { opacity: 1; }
  26%  { opacity: 1; transform: translate(var(--fx-x), var(--fx-y)) rotate(var(--fx-r)) scale(var(--fx-s)); }
  31%  { transform: translate(calc(var(--fx-x) - 5px), calc(var(--fx-y) + 5px)) rotate(var(--fx-r)) scale(var(--fx-s)); }
  36%  { transform: translate(var(--fx-x), var(--fx-y)) rotate(var(--fx-r)) scale(var(--fx-s)); }
  76%  { opacity: 1; }
  100% { opacity: 0; transform: translate(var(--fx-x), var(--fx-y)) rotate(var(--fx-r)) scale(var(--fx-s)); }
}

@keyframes fxburst {
  0%   { opacity: 0; transform: translate(calc(var(--fx-x) * 1.6), calc(var(--fx-y) * 1.6)) rotate(var(--fx-r)) scale(.5); }
  24%  { opacity: 1; transform: translate(0, 0) rotate(var(--fx-r)) scale(.4); }
  32%  { transform: translate(0, 0) rotate(var(--fx-r)) scale(.3); }
  100% { opacity: 0; transform: translate(calc(var(--fx-x) * 2.2), calc(var(--fx-y) * 2.2)) rotate(calc(var(--fx-r) + 120deg)) scale(var(--fx-s)); }
}

@keyframes fxring {
  0%   { opacity: 0; transform: scale(.2); }
  18%  { opacity: 1; }
  100% { opacity: 0; transform: scale(3.4); }
}

@keyframes fxrise {
  0%   { opacity: 0; transform: translate(var(--fx-x), calc(var(--fx-y) + 120px)) rotate(var(--fx-r)) scale(calc(var(--fx-s) * .7)); }
  18%  { opacity: 1; }
  45%  { transform: translate(calc(var(--fx-x) + 14px), var(--fx-y)) rotate(var(--fx-r)) scale(var(--fx-s)); }
  55%  { opacity: .55; }
  70%  { opacity: 1; transform: translate(calc(var(--fx-x) - 12px), calc(var(--fx-y) - 70px)) rotate(var(--fx-r)) scale(var(--fx-s)); }
  100% { opacity: 0; transform: translate(calc(var(--fx-x) + 6px), calc(var(--fx-y) - 150px)) rotate(var(--fx-r)) scale(calc(var(--fx-s) * 1.2)); }
}

@keyframes fxdash {
  0%   { opacity: 0; transform: translate(calc(var(--fx-t) * -1), var(--fx-y)) scale(var(--fx-s)); }
  15%  { opacity: 1; }
  50%  { transform: translate(0, var(--fx-y)) scaleX(calc(var(--fx-s) * 1.9)) scaleY(calc(var(--fx-s) * .85)); }
  100% { opacity: 0; transform: translate(var(--fx-t), var(--fx-y)) scale(var(--fx-s)); }
}

@keyframes fxswing {
  0%   { opacity: 0; transform: rotate(-70deg) scale(var(--fx-s)); }
  12%  { opacity: 1; }
  38%  { transform: rotate(55deg) scale(var(--fx-s)); }
  62%  { transform: rotate(-35deg) scale(var(--fx-s)); }
  82%  { transform: rotate(15deg) scale(var(--fx-s)); }
  100% { opacity: 0; transform: rotate(0deg) scale(var(--fx-s)); }
}

@keyframes fxslash {
  0%   { opacity: 0; transform: translate(150px, -130px) rotate(-8deg) scale(var(--fx-s)); }
  18%  { opacity: 1; }
  100% { opacity: 0; transform: translate(-160px, 150px) rotate(6deg) scale(calc(var(--fx-s) + .4)); }
}

@keyframes fxslash2 {
  0%   { opacity: 0; transform: translate(-150px, -130px) rotate(8deg) scale(var(--fx-s)) scaleX(-1); }
  18%  { opacity: 1; }
  100% { opacity: 0; transform: translate(160px, 150px) rotate(-6deg) scale(calc(var(--fx-s) + .4)) scaleX(-1); }
}

@keyframes fxspin {
  0%   { opacity: 0; transform: rotate(0deg) scale(.3); }
  20%  { opacity: 1; }
  70%  { opacity: 1; }
  100% { opacity: 0; transform: rotate(-540deg) scale(2.6); }
}


/* 段構成の部品: 暗転ベール・残像・着弾の閃光・大技の明滅 */

.fx-dim {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 38%, rgba(6, 8, 18, .26), rgba(6, 8, 18, .6));
  animation: fxdim 1.4s ease-out forwards;
}

.fx-dim-deep {
  background: radial-gradient(ellipse at 50% 38%, rgba(6, 8, 18, .38), rgba(6, 8, 18, .78));
}

@keyframes fxdim {
  0%   { opacity: 0; }
  12%  { opacity: 1; }
  76%  { opacity: 1; }
  100% { opacity: 0; }
}

.fx-tr {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.fx-tr1 { opacity: .5; }

.fx-tr2 { opacity: .24; }

.fx-impact {
  position: absolute;
  z-index: 7;
  width: 62px;
  height: 62px;
  margin: -31px 0 0 -31px;
  pointer-events: none;
  background: radial-gradient(circle, #fff 0 22%, #ffd23d 36%, rgba(255, 210, 61, 0) 64%);
  opacity: 0;
  animation: fximpact .36s steps(4) forwards;
}

@keyframes fximpact {
  0%   { opacity: 0; transform: rotate(45deg) scale(.3); }
  20%  { opacity: 1; }
  100% { opacity: 0; transform: rotate(45deg) scale(1.8); }
}

.fx-flash {
  position: absolute;
  inset: 0;
  z-index: 7;
  pointer-events: none;
  background: #eef2ff;
  opacity: 0;
  animation: fxflash 1.3s linear forwards;
}

@keyframes fxflash {
  0%, 54% { opacity: 0; }
  58%  { opacity: .5; }
  63%  { opacity: 0; }
  67%  { opacity: .28; }
  74%, 100% { opacity: 0; }
}

/* ---- 巻き戻し演出: 画面が反転色でぶれ、走査線が逆流する ---- */

#scr-battle { position: relative; }

#scr-battle.rewindfx { animation: rewindjitter .95s steps(11); }

@keyframes rewindjitter {
  0%   { filter: none; transform: none; }
  18%  { filter: invert(.85) hue-rotate(160deg); transform: translateX(-4px); }
  32%  { filter: invert(.85) hue-rotate(160deg); transform: translateX(4px); }
  46%  { filter: hue-rotate(120deg) saturate(1.5) brightness(1.2); transform: translateX(-3px); }
  60%  { filter: invert(.6) hue-rotate(200deg); transform: translateX(2px); }
  78%  { filter: hue-rotate(40deg); transform: translateX(-1px); }
  100% { filter: none; transform: none; }
}

#rewind-veil[hidden] { display: none; }

/* 暗転した舞台の中央で、大時計と歯車が逆回転する */
#rewind-veil {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 50% 46%,
    rgba(26, 16, 48, .58) 0%, rgba(8, 5, 18, .92) 78%);
}

/* 逆流する走査線とフィルムのちらつき */
#rewind-veil::before {
  content: "";
  position: absolute;
  inset: -25% 0;
  background: repeating-linear-gradient(0deg,
    rgba(196, 170, 255, .12) 0 2px, transparent 2px 7px);
}

#rewind-clock {
  width: min(66vw, 250px);
  filter: drop-shadow(0 0 14px rgba(186, 156, 255, .65));
}

.rw-gear  { transform-origin: 100px 100px; }

.rw-hands { transform-origin: 100px 100px; }

/* 動きは .on を付け直したときだけ走らせる。
   hidden の付け外しでアニメーションが巻き直るかはブラウザ任せで、
   iOSでは2回目以降、時計の針が止まったままになっていた。
   画面ゆれ（rewindfx）が同じやり方で確実に動いているので、それに揃える */
#rewind-veil.on          { animation: veilfade 1.05s steps(16); }
#rewind-veil.on::before  { animation: veilsweep 1.05s steps(14); }
#rewind-veil.on #rewind-clock { animation: clockin 1.05s steps(12); }
#rewind-veil.on .rw-gear  { animation: gearspin 1.05s linear; }
#rewind-veil.on .rw-hands { animation: handspin 1.05s cubic-bezier(.25, .6, .3, 1); }

@keyframes veilfade {
  0% { opacity: 0; }
  12% { opacity: 1; }
  55% { opacity: 1; }
  70% { opacity: .82; }
  78% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes veilsweep {
  0%   { transform: translateY(-6%); }
  100% { transform: translateY(6%); }
}

@keyframes clockin {
  0%   { transform: scale(.62); opacity: 0; }
  16%  { transform: scale(1.04); opacity: 1; }
  60%  { transform: scale(1); opacity: 1; }
  100% { transform: scale(1.1); opacity: 0; }
}

/* from を省くと 起点がそのときの transform になり、2回目以降 回らないことがある。
   歯車と針だけ to しか書いていなかったので、明示する */
@keyframes gearspin  { from { transform: rotate(0deg); } to { transform: rotate(-110deg); } }

@keyframes handspin  { from { transform: rotate(0deg); } to { transform: rotate(-700deg); } }

/* ---- 手持ち ---- */

#party {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 10px 2px 2px;
}

.pt {
  flex: none;
  width: 64px;
  text-align: center;
  font: inherit;
  font-size: 11px;
  color: #aebdd8;
  background: none;
  border: 2px solid transparent;
  padding: 4px 2px 2px;
  cursor: pointer;
}

.pt img {
  width: 44px;
  height: 44px;
  object-fit: contain;
  image-rendering: pixelated;
}

.pt.now { border-color: #8194ba; background: #202940; }

.pt.dead img { opacity: .25; filter: grayscale(1); }

/* ---- 入れ替えメニュー / 結果 ---- */

#switch-menu[hidden], #overlay[hidden] { display: none; }

/* パネルの背面はタッチスクロールを受けず、パネル内だけ縦スクロール可 */
#dex-panel, #bag-panel, #help-panel, #edit-panel, #detail-panel, #overlay, #switch-menu {
  touch-action: none;
}

#dex-panel .panel, #bag-panel .panel, #help-panel .panel, #edit-panel .panel,
#detail-panel .panel, #overlay .panel, #switch-menu .panel {
  touch-action: pan-y;
}

#detail-moves, #log { overscroll-behavior: contain; }

#switch-menu, #overlay {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(8, 10, 16, .78);
  padding: 24px;
}

.panel { animation: popin .18s ease; }

@keyframes popin { from { opacity: 0; transform: scale(.96); } }

.panel {
  width: 100%;
  max-width: 340px;
  background: #1a2132;
  border: 2px solid #d5deee;
  border-radius: 0;
  padding: 18px 16px;
  text-align: center;
  box-shadow: 4px 4px 0 rgba(6, 9, 16, .8);
}

#switch-list { display: flex; flex-direction: column; gap: 8px; margin: 12px 0; }

#switch-list button {
  display: flex;
  align-items: center;
  gap: 8px;
  text-align: left;
  font-size: 14px;
}

#switch-list img { flex: none; width: 36px; height: 36px; object-fit: contain; image-rendering: pixelated; }

/* 文字はまとめて1つの箱に。ばらのままだと ヒカリの札が別の列あつかいになり、
   幅を取り合って「ヒカ／リ」と割れる */
#switch-list .sw-body { flex: 1 1 auto; min-width: 0; }

#ov-title { font-size: 17px; font-weight: 700; }

#ov-note { font-size: 13px; color: #aebdd8; margin: 8px 0 14px; }

#ov-btns { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }

/* ---- ストーリー ---- */

#scr-story {
  position: fixed;
  inset: 0;
  cursor: pointer;
  justify-content: flex-end;
}

#story-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  image-rendering: pixelated;
}

/* 画像が未納品でも場面の空気が出るよう、グラデーションを下に敷く */
.story-bg--kousaten_asa {
  background-image: url("img/bg_kousaten_asa.webp?v=5"), linear-gradient(#aebfd6, #dbe4ea 55%, #9aa8b8);
}

.story-bg--jinja {
  background-image: url("img/bg_jinja.webp?v=5"), linear-gradient(#2c3b33, #47604f 60%, #263129);
}

.story-bg--kousaten_yoru {
  background-image: url("img/bg_kousaten_yoru.webp?v=5"), linear-gradient(#0b1020, #1a2340 65%, #0b0f1c);
}

.story-bg--kousaten_yoake {
  background-image: url("img/bg_kousaten_yoake.webp?v=5"), linear-gradient(#31305c, #b4636b 55%, #e8a066);
}

.story-bg--kawabe {
  background-image: url("img/bg_kawabe.webp?v=5"), linear-gradient(#4a3a50, #b4636b 55%, #d89a66);
}

.story-bg--urayama {
  background-image: url("img/bg_urayama.webp?v=5"), linear-gradient(#3a4a3e, #6a8a6e 60%, #445544);
}

.story-bg--okujo {
  background-image: url("img/bg_okujo.webp?v=5"), linear-gradient(#7a9ac0, #a8c4e0 60%, #8a9aa8);
}

.story-bg--shoutengai {
  background-image: url("img/bg_shoutengai.webp?v=5"), linear-gradient(#5a4636, #8a6a4a 55%, #4a3a2e);
}

.story-bg--ekimae {
  background-image: url("img/bg_ekimae.webp?v=5"), linear-gradient(#7a9ac0, #cfd8e4 55%, #9aa8b8);
}

.story-bg--eki_yoru {
  background-image: url("img/bg_eki_yoru.webp?v=5"), linear-gradient(#0b1020, #241a3e 55%, #14101f);
}

.story-bg--gogatsu {
  background-image: url("img/bg_gogatsu.webp?v=5"), linear-gradient(#6a6f96, #8f93b8 55%, #5a5f80);
}

.story-bg--gakkouura {
  background-image: url("img/bg_gakkouura.webp?v=5"), linear-gradient(#5a4a6c, #c47a5a 55%, #6a5a4a);
}

.story-bg--touge {
  background-image: url("img/bg_touge.webp?v=5"), linear-gradient(#4a3a50, #b4636b 55%, #7a6a52);
}

.story-bg--toudai_yoru {
  background-image: url("img/bg_toudai_yoru.webp?v=5"), linear-gradient(#0b1020, #1a2340 65%, #0b0f1c);
}

.story-bg--ichiba {
  background-image: url("img/bg_ichiba.webp?v=5"), linear-gradient(#7ab0d4, #a8cce4 55%, #8a9aa8);
}

.story-bg--sunahama {
  background-image: url("img/bg_sunahama.webp?v=5"), linear-gradient(#5a4a6c, #c47a5a 55%, #8a6a52);
}

.story-bg--umi {
  background-image: url("img/bg_umi.webp?v=5"), linear-gradient(#0b1020, #16214a 60%, #0a0e1a);
}

.story-bg--sanbashi {
  background-image: url("img/bg_sanbashi.webp?v=5"), linear-gradient(#7ab0d4, #a8cce4 55%, #8a9aa8);
}

.story-bg--sanbashi_hiru {
  background-image: url("img/bg_sanbashi_hiru.webp?v=5"), linear-gradient(#8ec0e0, #bcd8ec 55%, #92a2b0);
}

.story-bg--sanbashi_yu {
  background-image: url("img/bg_sanbashi_yu.webp?v=5"), linear-gradient(#5a4a6c, #c47a5a 55%, #7a5a4a);
}

.story-bg--sanbashi_yoru {
  background-image: url("img/bg_sanbashi_yoru.webp?v=5"), linear-gradient(#0b1020, #16214a 60%, #0a0e1a);
}

.story-bg--kawabe_hiru {
  background-image: url("img/bg_kawabe_hiru.webp?v=5"), linear-gradient(#7ab0d4, #a8cce4 55%, #6a8a6e);
}

.story-bg--sunahama_asa {
  background-image: url("img/bg_sunahama_asa.webp?v=5"), linear-gradient(#aebfd6, #dbe4ea 55%, #c8b48e);
}

/* エピソードは いつ流れるか決まっていない。時間帯ちがいの絵が無い場所は、
   絵の上に幕を重ねて色だけ寄せる（釣りの水面と同じ考えかた） */
#story-bg {
  --story-tint-a: transparent;
  --story-tint-b: transparent;
}

#story-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(var(--story-tint-a), var(--story-tint-b));
}

#story-bg.story-rain {
  --story-tint-a: rgba(26, 36, 58, .42);
  --story-tint-b: rgba(12, 18, 34, .56);
}

#story-bg.story-time--yu {
  --story-tint-a: rgba(214, 108, 40, .34);
  --story-tint-b: rgba(96, 44, 52, .38);
}

#story-bg.story-time--yu.story-rain {
  --story-tint-a: rgba(158, 88, 50, .44);
  --story-tint-b: rgba(64, 34, 48, .52);
}

#story-bg.story-time--yoru {
  --story-tint-a: rgba(4, 8, 26, .78);
  --story-tint-b: rgba(2, 5, 16, .88);
}

#story-bg.story-time--yoru.story-rain {
  --story-tint-a: rgba(8, 14, 34, .8);
  --story-tint-b: rgba(2, 5, 16, .9);
}

/* 雨だれは釣りの水面と同じタイルを1層だけ。立ち絵より奥に降る。
   商店街のように屋根のある絵では降らせず、色だけ寄せる */
#story-bg.story-rain--open::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  image-rendering: pixelated;
  background: url("img/fx/rain_near.webp?v=5") 0 0 / 64px 64px repeat;
  animation: fishrain-near .5s linear infinite;
}

#story-sprite {
  position: absolute;
  left: 50%;
  /* 立ち絵の下端は胸元で切れているので、切り口を必ずウィンドウの上辺に8px潜らせる。
     浮かせると直線の切り口が見えてしまう */
  bottom: calc(186px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: min(62vw, 300px);
  image-rendering: pixelated;
  filter: drop-shadow(0 8px 14px rgba(0, 0, 0, .45));
  pointer-events: none;
}

#story-window {
  position: relative;
  margin: 0 12px calc(18px + env(safe-area-inset-bottom));
  padding: 14px 16px 22px;
  border-radius: 0;
  background: rgba(13, 17, 27, .92);
  border: 2px solid #d5deee;
  box-shadow: 3px 3px 0 rgba(6, 9, 16, .8);
  height: 176px;      /* 固定高さ。文量で箱の大きさを変えない。実測最大150px＋狭幅の余裕 */
  overflow: hidden;
}

#story-name {
  display: inline-block;
  font-size: 13px;
  font-weight: 700;
  color: #9fc0ef;
  margin-bottom: 6px;
}

#story-text {
  font-size: 15px;
  line-height: 1.9;
}

#story-hint {
  position: absolute;
  right: 14px;
  bottom: 8px;
  font-size: 12px;
  color: #9fb2d4;
  animation: hintpulse 1.4s ease-in-out infinite;
}

@keyframes hintpulse {
  50% { opacity: .25; transform: translateY(2px); }
}

/* ---- 開発操作 ---- */

#dev {
  display: flex;
  gap: 8px;
  justify-content: center;
  padding-top: 10px;
}

#dev button { font-size: 11px; padding: 6px 10px; color: #7d8aa5; }


/* ---- 背の低い実機向けの圧縮 ---- */

@media (max-height: 760px) {
  #app { padding-top: 6px; }
  #enemy-img { width: 136px; height: 136px; }
  #enemy-img.big { width: 248px; height: 248px; margin-bottom: -42px; }
  #me-img { width: 76px; height: 76px; }
  #log { height: 84px; font-size: 13px; }
  #cmds button { padding-top: 9px; padding-bottom: 9px; }
  #scr-title { padding-top: 56px; }
}

@media (max-height: 680px) {
  #enemy-img { width: 112px; height: 112px; }
  #enemy-img.big { width: 210px; height: 210px; margin-bottom: -34px; }
  #log { height: 76px; }
  #cmds button { padding-top: 7px; padding-bottom: 7px; }
  .pt img { width: 38px; height: 38px; }
}

/* ---- エンドロール（一回目の明日香をしずめたあと・初回だけ） ---- */

#scr-roll {
  position: relative;
  overflow: hidden;
  background: #05070f;
}

#roll-track {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

#roll-inner {
  position: absolute;
  left: 0;
  right: 0;
  top: 100%;
  padding: 0 22px 40vh;
  text-align: center;
  color: #dbe4f4;
  animation: rollup 56s linear forwards;
}

@keyframes rollup {
  from { transform: translateY(0); }
  to   { transform: translateY(-100%); }
}

.roll-title {
  font-size: 20px;
  letter-spacing: .18em;
  color: #f0eaff;
  margin: 0 0 34px;
}

.roll-sec {
  font-size: 11px;
  letter-spacing: .3em;
  color: #7f8db0;
  margin: 40px 0 8px;
}

.roll-name {
  font-size: 15px;
  margin: 0 0 4px;
}

.roll-line {
  font-size: 13px;
  line-height: 2;
  color: #aebdd8;
  margin: 0;
}

.roll-end {
  font-size: 17px;
  letter-spacing: .12em;
  color: #f0eaff;
  margin: 56px 0 0;
}

#roll-skip {
  position: absolute;
  right: 14px;
  bottom: calc(16px + env(safe-area-inset-bottom));
  padding: 9px 18px;
  font: inherit;
  font-size: 13px;
  color: #aebdd8;
  background: rgba(13, 17, 27, .86);
  border: 2px solid #48557a;
  border-radius: 0;
}

#roll-skip:active { background: #2e3a56; }

/* ---- 図鑑・へんせいのしぼりこみと並べかえ ---- */

/* 1行に詰めこむと、狭い画面で「朝昼」と「夕夜」が別の行に割れる。
   もともと軸のちがう2種類なので、行ごと分けて折り返さない形にする */
.filter-bar {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 8px 0;
}

.filter-bar + .filter-bar { margin-top: 6px; }

#dex-filter { margin-bottom: 10px; }

.filter-bar .flabel {
  flex: none;
  width: 3.4em;
  font-size: 11px;
  color: #8a97b4;
}

.fchip {
  flex: 1 1 auto;
  min-width: 0;
  font: inherit;
  font-size: 12px;
  white-space: nowrap;
  color: #aebdd8;
  background: #222b40;
  border: 2px solid #3a4664;
  border-radius: 0;
  padding: 4px 9px;
  cursor: pointer;
}

.fchip.on {
  color: #0d1119;
  background: #ffd23d;
  border-color: #ffd23d;
  font-weight: 700;
}

.fchip:active { transform: translateY(1px); }

.dex-empty { font-size: 13px; color: #8a97b4; padding: 18px 4px; text-align: center; }

/* ---- 絵馬めくり ---- */

#ema-panel[hidden] { display: none; }

#ema-panel {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(8, 10, 16, .78);
  padding: 18px;
}

#ema-stage {
  position: relative;
  height: 210px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 10px 0 4px;
}

#ema-card {
  position: relative;
  width: 168px;
  height: 168px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
}

#ema-card img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: pixelated;
  display: block;
}

/* 報酬は板の面のまんなかに重ねる。屋根とひもの穴にはかからない位置。
   板は上から3割が屋根で、平らな面は縦の36%〜85%。その中心が60.5% */
#ema-prize {
  position: absolute;
  z-index: 2;
  top: 60.5%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 62%;
  display: flex;
  align-items: center;
  justify-content: center;
}

#ema-prize img {
  width: 64px;
  height: 64px;
  image-rendering: pixelated;
}

#ema-prize .ema-num {
  font-size: 26px;
  letter-spacing: 1px;
  color: #3a2b18;
  font-weight: 700;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .6);
}

/* めくる。3Dでは回さない。横につぶして、いちばん細くなった瞬間に絵を入れ替える。
   実機がやっていたのもこれで、鏡文字にもならない。コマを落として動かす */
#ema-card.flip { animation: emaflip .44s steps(5) forwards; }

@keyframes emaflip {
  from { transform: scaleX(1); }
  to   { transform: scaleX(0); }
}

#ema-card.flipback { animation: emaflipback .44s steps(5) forwards; }

@keyframes emaflipback {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}

/* ためる。当たりが重いほど長く揺らす */
#ema-card.hold { animation: emahold .12s steps(2) infinite; }

@keyframes emahold {
  from { transform: translate(0, 0); }
  50%  { transform: translate(-2px, 1px); }
  to   { transform: translate(2px, -1px); }
}

/* 光。レアほど強く出す */
#ema-fx {
  position: absolute;
  inset: -20px;
  pointer-events: none;
  opacity: 0;
}

#ema-fx.on {
  background: radial-gradient(circle at 50% 46%, rgba(255, 245, 190, .9) 0%, rgba(255, 210, 61, 0) 62%);
  animation: emaflash .5s steps(6) forwards;
}

/* レアの光は ふつうより長く、白く強い */
#ema-fx.on.rare {
  background: radial-gradient(circle at 50% 46%, rgba(255, 255, 255, .98) 0%, rgba(255, 255, 255, .45) 34%, rgba(255, 255, 255, 0) 66%);
  animation: emaflash .8s steps(9) forwards;
}

/* 虹は板の上だけに出す。丸い輪も、四角い色板も置きたくないので、
   板の形そのもので切り抜いて 横しまを流す。
   実機がHBlankで色を差し替えていたのと同じ見え方。コマで送る。
   ※ maskの絵はCSSからなので ASSET_VER が自動ではつかない。上げ忘れは
     check-games.py が ASSET_VER と突き合わせて落とす（#374） */
#ema-card.rare::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: repeating-linear-gradient(180deg,
    rgba(255, 90, 90, .34) 0 5px,
    rgba(255, 180, 60, .34) 5px 10px,
    rgba(250, 238, 100, .34) 10px 15px,
    rgba(120, 240, 140, .34) 15px 20px,
    rgba(100, 195, 255, .34) 20px 25px,
    rgba(190, 130, 255, .34) 25px 30px);
  -webkit-mask-image: url("img/ema_front.webp?v=5");
  mask-image: url("img/ema_front.webp?v=5");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  animation: emaband .5s steps(6) infinite;
}

@keyframes emaband {
  from { background-position: 0 0; }
  to   { background-position: 0 -30px; }
}

@keyframes emaflash {
  from { opacity: 0; transform: scale(.7); }
  30%  { opacity: 1; transform: scale(1.06); }
  to   { opacity: 0; transform: scale(1.3); }
}

#ema-result {
  min-height: 5.1em;
  font-size: 13px;
  line-height: 1.7;
  color: #cfd9ea;
  text-align: center;
  margin: 4px 0 10px;
}

#ema-result b { color: #ffd23d; }

/* めくる前と後でパネルの高さが変わると、絵馬そのものが上下に動いて見える。
   文もボタンも、中身が入る前から場所だけ取っておく */
#ema-note { line-height: 1.6; min-height: 3.2em; }

#ema-btns { display: flex; flex-direction: column; gap: 8px; visibility: hidden; }

#ema-btns.on { visibility: visible; }

#ema-btns button {
  font: inherit;
  font-size: 14px;
  color: #e8edf7;
  background: #2b3a56;
  border: 2px solid #55688f;
  padding: 10px;
  cursor: pointer;
}
