/* Generated by tools/subset-fonts.py: do not edit. Fusion Pixel Font 12 px proportional (TakWolf), version 2026.09.25, SIL Open Font License 1.1: see OFL.txt and LICENSES/. */
@font-face { font-family: "Studio Pixel zh-Hans"; src: url("../fonts/pixel-zh-Hans.woff2") format("woff2"); font-display: swap; unicode-range: U+0009-000A, U+000D, U+0020-007E, U+00A9, U+00AE, U+00B0, U+00B7, U+00D7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2190-2193, U+2605-2606, U+266A, U+3000-3002, U+300A-3011, U+3014-3015, U+301C, U+304F, U+3065, U+306B, U+30C3, U+30C8, U+30DA, U+30E9, U+30F3, U+30FB, U+30FF, U+3400, U+4E00, U+4E09-4E0B, U+4E0D-4E0E, U+4E16, U+4E2A, U+4E2D, U+4E3A-4E3B, U+4E48, U+4E4B, U+4E5F, U+4E70, U+4E86, U+4E8E, U+4E91, U+4E94, U+4E9B, U+4EA4, U+4EA7, U+4EAB, U+4EAD-4EAE, U+4EBA, U+4EC0, U+4ECE, U+4ED6, U+4ED8, U+4EE3, U+4EE5, U+4EEC, U+4EF7, U+4EFB, U+4EFD, U+4F1A, U+4F3C, U+4F4D, U+4F4F, U+4F53, U+4F55, U+4F5C, U+4F60, U+4F7F, U+4F8B, U+4F9B, U+4FBF, U+4FDD, U+4FE1, U+4FEE, U+505A, U+50CF, U+513F, U+5148-5149, U+514D, U+5165, U+5168, U+5171, U+5173, U+5176-5177, U+5185, U+518C-518D, U+5199, U+51B2-51B3, U+51B5, U+51C6, U+51FA, U+5206-5207, U+5217, U+521D, U+5220, U+5224, U+5229, U+5230, U+5236, U+523A, U+524D, U+529F-52A1, U+52A8, U+5305, U+5316, U+5355, U+535A, U+5361, U+5373, U+53BB, U+53C2, U+53CA, U+53D1, U+53D6, U+53D8, U+53E3, U+53E5, U+53EA, U+53EF-53F0, U+53F7, U+5404, U+5408-5409, U+540C-540E, U+5411, U+5417, U+5426, U+542B, U+542F, U+544A, U+5468, U+548C, U+5495, U+54EA, U+5546, U+55B5, U+5668, U+56DB, U+56DE, U+56E0, U+56F4, U+56FE, U+5708, U+5728, U+5730, U+5740, U+5757, U+578B, U+57FA, U+5854, U+58EB, U+58F0, U+58F3, U+5904, U+5907, U+590D, U+591A, U+591C, U+591F, U+5927, U+597D, U+5982, U+59CB, U+59D3, U+5A46, U+5B50, U+5B57-5B58, U+5B63, U+5B83, U+5B89, U+5B8C, U+5B9A, U+5BA4, U+5BB6, U+5BB9, U+5BF9, U+5BFC, U+5C06, U+5C0F, U+5C11, U+5C31, U+5C3E, U+5C40, U+5C4B, U+5C4F, U+5C9B, U+5CB8, U+5D29, U+5DE1, U+5DE5, U+5DF1-5DF2, U+5E02, U+5E26, U+5E38, U+5E55, U+5E73-5E74, U+5E76, U+5E7F, U+5EA6-5EA7, U+5EFA, U+5F00, U+5F0F, U+5F15, U+5F20, U+5F53, U+5F55, U+5F80, U+5F85, U+5F97, U+5FAE, U+5FD7, U+5FD9, U+6001, U+600E, U+6012, U+601D, U+6027, U+603B, U+6062, U+606F, U+60F3, U+610F, U+620F-6211, U+6216, U+622A, U+6237, U+6240, U+624B, U+624D, U+6253, U+6258, U+627E, U+6280, U+628A, U+62A5, U+62DB, U+62E9, U+6301, U+6309, U+6311, U+6328, U+6362, U+636E, U+63A5, U+63D0, U+642C, U+6446, U+6512, U+652F, U+6536, U+6539, U+653E-653F, U+6548, U+6559, U+656C, U+6570, U+6574, U+6587, U+65AD, U+65B0, U+65B9, U+65CF, U+65E0, U+65E5, U+65E7, U+65F6, U+660E, U+661F, U+662F, U+663E, U+6696, U+66B4, U+66F4, U+66FF-6700, U+6708-6709, U+670D, U+671D, U+671F, U+672C, U+672F, U+6761, U+6765, U+677E, U+6790, U+679C, U+67B6, U+67E5, U+6807, U+6811, U+6817, U+6837, U+683C, U+684C, U+6863, U+6B21-6B22, U+6B3E, U+6B63, U+6B65, U+6BCF, U+6C42, U+6C47, U+6CA1, U+6CB9, U+6CD5, U+6CE8, U+6D41, U+6D6A, U+6D77, U+6D88, U+6D9B, U+6DFB, U+6E29, U+6E2F, U+6E38, U+6E83, U+6F02, U+706B, U+706F, U+70B9, U+7167, U+7184, U+71AC, U+7231, U+7247-7248, U+724C, U+7269, U+7279, U+72B6, U+72EC, U+732C, U+73A9, U+73B0, U+73ED, U+7403, U+7406, U+751F, U+7528, U+7531, U+7533, U+7535, U+753B, U+754C, U+7559, U+7591, U+767B, U+767D, U+7684, U+76CF, U+76EE, U+76F4, U+770B, U+771F, U+7740, U+7801, U+786E, U+793A, U+7965, U+79C1, U+79CD, U+79F0, U+79FB, U+7A0B, U+7ACB, U+7AD9, U+7AE5, U+7B2C, U+7B49, U+7B51, U+7B56, U+7B80, U+7BA1, U+7BB1, U+7C7B, U+7C98, U+7CFB, U+7D20, U+7E41, U+7ECF, U+7ED3, U+7ED8-7ED9, U+7EDC, U+7EDF, U+7EE7, U+7EED, U+7F51, U+7F6E, U+7FFB, U+8005, U+8054, U+805A, U+80CC, U+80FD, U+8111, U+811A, U+81EA, U+822A, U+822C, U+8239, U+8258, U+8282, U+82AF, U+83DC, U+8424-8425, U+866B, U+884C, U+8868, U+88AB, U+8981, U+89C1, U+89E3, U+8A00, U+8A18, U+8A9E, U+8BA1-8BA2, U+8BA4, U+8BA9, U+8BB0, U+8BB8, U+8BBE-8BBF, U+8BC1, U+8BCD, U+8BD5, U+8BDD, U+8BE2, U+8BED, U+8BEF, U+8BF4, U+8BF7, U+8BFB, U+8C01, U+8D1D, U+8D26-8D27, U+8D2D, U+8D34, U+8D39, U+8D70, U+8D77, U+8DDF, U+8DE8, U+8DF3, U+8E2A, U+8F6C, U+8F6E, U+8F7D, U+8FC7, U+8FCE, U+8FD0, U+8FD8-8FD9, U+8FDB, U+8FDE, U+8FFD, U+9000-9002, U+9009, U+901A, U+901F, U+9047, U+90E8, U+90FD, U+91CC, U+91CF, U+94B1, U+94FE, U+9501, U+9519, U+957F, U+95ED-95EE, U+95F4, U+9605, U+963F, U+9646, U+9650, U+9664, U+968F-9690, U+96BE, U+96C6, U+9700, U+9760, U+9762, U+97F3, U+9875, U+9898, U+98CE, U+9996, U+9AD4, U+9C7C, U+9CB8, U+9E2D, U+9E3D, U+9F20, U+9F84, U+F900, U+FF01, U+FF08-FF09, U+FF0C, U+FF0E, U+FF1A-FF1B, U+FF1F, U+FF5E; }
@font-face { font-family: "Studio Pixel zh-Hant"; src: url("../fonts/pixel-zh-Hant.woff2") format("woff2"); font-display: swap; unicode-range: U+0009-000A, U+000D, U+0020-007E, U+00A9, U+00AE, U+00B0, U+00B7, U+00D7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2190-2193, U+2605-2606, U+266A, U+3000-3002, U+300A-3011, U+3014-3015, U+301C, U+304F, U+3065, U+306B, U+30C3, U+30C8, U+30DA, U+30E9, U+30F3, U+30FB, U+30FF, U+3400, U+4E00, U+4E09-4E0B, U+4E0D, U+4E16, U+4E26, U+4E2D, U+4E3B, U+4E4B, U+4E5F, U+4E86, U+4E94, U+4E9B, U+4EA4, U+4EAB, U+4EAE, U+4EBA, U+4EC0, U+4ED6, U+4ED8, U+4EE5, U+4EFB, U+4EFD, U+4F3A, U+4F3C, U+4F4D, U+4F4F, U+4F53, U+4F55, U+4F5C, U+4F60, U+4F7F, U+4F86, U+4F8B, U+4F9B, U+4F9D, U+4FBF, U+4FDD, U+4FE1, U+4FEE, U+500B, U+5011, U+505A, U+5099, U+50B3, U+50CF, U+50F9, U+5148, U+514D, U+5152, U+5165, U+5167-5168, U+5171, U+5176-5177, U+518A, U+518D, U+51FA, U+5206-5207, U+5217, U+521D, U+5224, U+5229-522A, U+5230, U+523A, U+524D, U+529F-52A0, U+52D5, U+52D9, U+5305, U+5316, U+532F, U+535A, U+5361, U+5373, U+53BB, U+53C3, U+53CA, U+53D6, U+53E3, U+53E5, U+53EA, U+53EF-53F0, U+5404, U+5408-5409, U+540C-540D, U+5411, U+5426, U+542B, U+544A, U+548C, U+5495, U+54EA, U+5546, U+554F, U+555F, U+55AE, U+55B5, U+55CE, U+5668, U+56DB, U+56DE, U+56E0, U+56FE, U+5716, U+5728, U+5730, U+5740, U+578B, U+57FA, U+5831, U+584A, U+5854, U+58EB, U+591A, U+591C, U+5920, U+5927, U+597D, U+5982, U+59CB, U+59D3, U+5A46, U+5B50, U+5B57-5B58, U+5B63, U+5B78, U+5B83, U+5B89, U+5B8C, U+5B9A, U+5BA4, U+5BB6, U+5BB9, U+5BEB, U+5C07, U+5C0D-5C0F, U+5C11, U+5C31, U+5C3E, U+5C40, U+5C9B, U+5CB8, U+5CF6, U+5DE1, U+5DE5, U+5DF1-5DF2, U+5E02, U+5E33, U+5E36, U+5E38, U+5E55, U+5E73-5E74, U+5EA6-5EA7, U+5EE3, U+5EFA, U+5F0F, U+5F15, U+5F35, U+5F59, U+5F80, U+5F85, U+5F8C, U+5F97, U+5F9E, U+5FA9, U+5FAE, U+5FD9, U+600E, U+6012, U+601D, U+6027, U+6062, U+606F, U+60F3, U+610F, U+611B, U+6210-6211, U+6216, U+622A, U+6232, U+6236, U+6240, U+624B, U+624D, U+6253, U+627E, U+6280, U+628A, U+62DB, U+6311, U+6328, U+6388, U+63D0, U+63DB, U+63F4, U+642C, U+64C7, U+64FA, U+6522, U+652F, U+6536, U+6539, U+653E-653F, U+6548, U+6559, U+656C, U+6574, U+6578, U+6587, U+6599, U+65B0, U+65B7, U+65B9, U+65BC, U+65CF, U+65E5, U+660E, U+661F, U+662F, U+6642, U+6676, U+6696, U+66B4, U+66F4, U+66FF-6700, U+6703, U+6708-6709, U+670D, U+671F, U+672C, U+677E, U+6790, U+679C, U+67B6, U+67E5, U+6817, U+683C, U+689D, U+6A19, U+6A23, U+6A5F, U+6A94, U+6B0A, U+6B21, U+6B3E, U+6B61, U+6B63, U+6B65, U+6BBC, U+6BCF, U+6C42, U+6C7A, U+6C92, U+6C96, U+6CB9, U+6CC1, U+6CD5, U+6D41, U+6D6A, U+6D77, U+6D88, U+6DFB, U+6E2F, U+6E96, U+6EAB, U+6F02, U+6FE4, U+706B, U+70BA, U+7121, U+7167, U+7184, U+71AC, U+71C8, U+71DF, U+7247-7248, U+724C, U+7269, U+7279, U+7368, U+73A9, U+73ED, U+73FE, U+7403, U+7406, U+751F, U+7522, U+7528, U+7531, U+7533, U+754C, U+7559, U+756B, U+7576, U+7591, U+767B-767D, U+7684, U+76DE, U+76EE, U+76F4, U+770B, U+771F, U+78BA, U+78BC, U+793A, U+7965, U+79C1, U+79FB, U+7A0B, U+7A2E, U+7A31, U+7ACB, U+7AD9, U+7AE5, U+7B2C, U+7B49, U+7B56, U+7B80, U+7BA1, U+7BB1, U+7BC0, U+7BC9, U+7CFB, U+7D00, U+7D20, U+7D50, U+7D61, U+7D66, U+7D71, U+7D93, U+7DB2, U+7DDA, U+7E3D, U+7E41, U+7E6A, U+7E7C, U+7E8C, U+7F6E, U+7FA9, U+8005, U+806F, U+8072, U+80FD, U+8166, U+81EA, U+8207, U+820A, U+822C, U+8239, U+8457, U+8655, U+865F, U+875F, U+87A2, U+87F2, U+884C, U+8853, U+8868, U+88AB, U+88DD, U+88E1, U+88FD, U+8981, U+898B, U+89BD, U+89E3, U+8A00, U+8A02, U+8A08, U+8A0A, U+8A17-8A18, U+8A2D, U+8A3B, U+8A5E, U+8A62, U+8A66, U+8A71, U+8A8C-8A8D, U+8A9E, U+8AA4, U+8AAA, U+8AB0, U+8ACB, U+8B80, U+8B8A, U+8B93, U+8C9D, U+8CA8, U+8CB7, U+8CBB-8CBC, U+8CC7, U+8CFC, U+8D70, U+8D77, U+8DDF, U+8DE8, U+8DEF, U+8DF3, U+8E64, U+8F09, U+8F2A, U+8F49, U+8FCE, U+8FFD, U+9000-9001, U+900F, U+9019-901A, U+901F, U+9023, U+9032, U+9047, U+904A-904B, U+904E, U+9069, U+9078, U+9084, U+90E8, U+90FD, U+91CF, U+9304, U+9322, U+932F, U+9396, U+9577, U+9589, U+958B, U+9593, U+95B1, U+95DC, U+963F, U+9650, U+9664, U+9678, U+96A8, U+96B1, U+96C6, U+96E3, U+96FB, U+9700, U+9760, U+9762, U+97F3, U+9801, U+984C, U+985E, U+986F, U+98A8, U+9996, U+9AD4, U+9B5A, U+9BE8, U+9D28, U+9EBC, U+9EDE, U+9F20, U+9F61, U+F900, U+FF01, U+FF08-FF09, U+FF0C, U+FF0E, U+FF1A-FF1B, U+FF1F, U+FF5E; }
@font-face { font-family: "Studio Pixel Latin"; src: url("../fonts/pixel-en.woff2") format("woff2"); font-display: swap; unicode-range: U+0009-000A, U+000D, U+0020-007E, U+00A9, U+00AE, U+00B0, U+00B7, U+00D7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2190-2193, U+2605-2606, U+266A, U+3000-3002, U+300A-3011, U+3014-3015, U+301C, U+304F, U+3065, U+306B, U+30C3, U+30C8, U+30DA, U+30E9, U+30F3, U+30FB, U+30FF, U+3400, U+4E2D, U+4F53, U+53D6, U+5546, U+56FE, U+57FA, U+5B9A, U+5C9B, U+5E74, U+5F15, U+6587, U+65E5, U+662F, U+6708, U+672C, U+6CD5, U+7279, U+7B80, U+7E41, U+8868, U+8A18, U+8A9E, U+9AD4, U+F900, U+FF01, U+FF08-FF09, U+FF0C, U+FF0E, U+FF1A-FF1B, U+FF1F, U+FF5E; }
@font-face { font-family: "Studio Pixel ja"; src: url("../fonts/pixel-ja.woff2") format("woff2"); font-display: swap; unicode-range: U+0009-000A, U+000D, U+0020-007E, U+00A9, U+00AE, U+00B0, U+00B7, U+00D7, U+2013-2014, U+2018-2019, U+201C-201D, U+2022, U+2026, U+2190-2193, U+2605-2606, U+266A, U+3000-3002, U+3005, U+300A-3011, U+3014-3015, U+301C, U+3042, U+3044, U+3046, U+3048, U+304A-3055, U+3057-3061, U+3063-306B, U+306D-3070, U+3072-3073, U+3075-3076, U+3078-3079, U+307B, U+307E-3082, U+3084, U+3087-308D, U+308F, U+3092-3093, U+30A1-30A4, U+30A6-30AD, U+30AF-30B0, U+30B2-30B3, U+30B5, U+30B7-30BB, U+30BF-30C0, U+30C3-30C4, U+30C6-30C9, U+30CB, U+30CD, U+30CF-30D2, U+30D4-30D7, U+30D9-30DB, U+30DD-30E3, U+30E5, U+30E7, U+30E9-30ED, U+30EF, U+30F3, U+30FB-30FC, U+30FF, U+3400, U+4E00, U+4E08-4E0B, U+4E0D, U+4E16, U+4E2D, U+4E3B, U+4E86, U+4E8B, U+4EA4, U+4EBA, U+4ED6, U+4ED8, U+4EE3, U+4EE5, U+4F1D, U+4F4F, U+4F53, U+4F55, U+4F5C, U+4F7F, U+4F9B, U+4FA1, U+4FDD, U+4FE1, U+4FEE, U+500B, U+5099, U+50CD, U+50CF, U+5143, U+5148, U+5165, U+5168, U+5171, U+5177, U+5185, U+51E6, U+51FA, U+5207, U+5225, U+5229, U+5236, U+524A, U+524D, U+52A0, U+52A9, U+52B9, U+52D5, U+535A, U+53CE, U+53D6-53D7, U+53E4, U+53F0, U+53F7, U+5408, U+540C-540D, U+5411, U+542B, U+544A, U+5473, U+54C1, U+5546, U+554F, U+5584, U+56DB, U+56DE, U+56F0, U+56F3, U+56FE, U+5728, U+5730, U+57FA, U+5831, U+5834, U+5883, U+58EB, U+58F0, U+58F2, U+5909, U+5916, U+591C, U+5927, U+592B, U+59CB, U+5B50, U+5B57-5B58, U+5B63, U+5B89, U+5B8C, U+5B9A, U+5BA2, U+5BFE, U+5C0F, U+5C9B, U+5CB8, U+5CF6, U+5E02, U+5E0C, U+5E38, U+5E74, U+5E83, U+5F15, U+5F8C, U+5F93, U+5FA9, U+5FC5, U+5FDC, U+60C5, U+610F, U+6240, U+624B, U+6255, U+6271, U+627F-6280, U+62C5, U+6301, U+63A5, U+63CF-63D0, U+63DB, U+642D, U+652F, U+6539, U+653E, U+6570, U+6587, U+6599, U+65B0, U+65B9, U+65E5, U+65E7, U+660E, U+662F, U+6642, U+66F4, U+66F8, U+6708-6709, U+671B, U+671F, U+672B-672D, U+6765, U+677F, U+6790, U+679C, U+683C, U+6848, U+696D, U+697D, U+6A19, U+6A5F, U+6B63, U+6B8B, U+6BCE, U+6C0F, U+6C17, U+6C42, U+6C7A, U+6CB9, U+6CD5, U+6CE2, U+6D41, U+6D77, U+6D88, U+6E08, U+6E21, U+6E2F, U+6E96, U+6EDE, U+6F02, U+706F, U+7121, U+7167, U+7248, U+7269, U+7279, U+7406, U+74B0, U+7528, U+7533, U+753B, U+754C, U+756A, U+767A-767B, U+7684, U+76EE, U+770B, U+7740, U+77E5, U+78BA, U+793A, U+79FB, U+7A2E, U+7A7A, U+7ACB, U+7AEF, U+7B2C, U+7B80, U+7BA1, U+7BB1, U+7BC0, U+7D04, U+7D50, U+7D71, U+7D75, U+7D9A, U+7E41, U+7F6E, U+8005, U+80FD, U+81EA, U+8239, U+8352, U+884C, U+8853, U+8868, U+8981, U+898B, U+898F, U+89A7, U+89E3, U+8A00, U+8A08, U+8A18, U+8A2D, U+8A71, U+8A8C-8A8D, U+8A9E, U+8AAC-8AAD, U+8AB2, U+8ACB, U+8B77, U+8C9D, U+8CA0, U+8CA9, U+8CBC, U+8CEA, U+8CFC, U+8D77, U+8DB3, U+8DE1, U+8EAB, U+8EFD, U+8F09, U+8FD1, U+8FD4, U+8FFD, U+9001, U+9014, U+901A, U+901F, U+9032, U+9045, U+904A-904B, U+9078, U+90E8, U+914D, U+91CF, U+91D1, U+9332, U+958B, U+9593, U+964D, U+9650, U+9664, U+96C6, U+96FB, U+9762, U+97F3, U+9805, U+984C, U+985E, U+98A8, U+9A13, U+9AD4, U+9F62, U+F900, U+FF01, U+FF08-FF09, U+FF0C, U+FF0E-FF0F, U+FF1A-FF1B, U+FF1F, U+FF5E; }
:root { --font-pixel: "Studio Pixel zh-Hans", var(--font-fallback); }
:root:lang(zh-Hans) { --font-pixel: "Studio Pixel zh-Hans", var(--font-fallback); }
:root:lang(zh-Hant) { --font-pixel: "Studio Pixel zh-Hant", var(--font-fallback); }
:root:lang(en) { --font-pixel: "Studio Pixel Latin", var(--font-fallback); }
:root:lang(ja) { --font-pixel: "Studio Pixel ja", var(--font-fallback); }
/* language names in the switcher keep their own glyph forms */
[lang="zh-Hans"] { --font-pixel: "Studio Pixel zh-Hans", var(--font-fallback); }
[lang="zh-Hant"] { --font-pixel: "Studio Pixel zh-Hant", var(--font-fallback); }
[lang="en"] { --font-pixel: "Studio Pixel Latin", var(--font-fallback); }
[lang="ja"] { --font-pixel: "Studio Pixel ja", var(--font-fallback); }

/* Generated by tools/export-art.mjs from PixelIsle/src/art/palettes.js: do not edit. Endesga 32 (ENDESGA). */
:root {
  --e00: #be4a2f;
  --e01: #d77643;
  --e02: #ead4aa;
  --e03: #e4a672;
  --e04: #b86f50;
  --e05: #733e39;
  --e06: #3e2731;
  --e07: #a22633;
  --e08: #e43b44;
  --e09: #f77622;
  --e10: #feae34;
  --e11: #fee761;
  --e12: #63c74d;
  --e13: #3e8948;
  --e14: #265c42;
  --e15: #193c3e;
  --e16: #124e89;
  --e17: #0099db;
  --e18: #2ce8f5;
  --e19: #ffffff;
  --e20: #c0cbdc;
  --e21: #8b9bb4;
  --e22: #5a6988;
  --e23: #3a4466;
  --e24: #262b44;
  --e25: #181425;
  --e26: #ff0044;
  --e27: #68386c;
  --e28: #b55088;
  --e29: #f6757a;
  --e30: #e8b796;
  --e31: #c28569;
  --c-ink: #181425;
  --c-navy: #262b44;
  --c-slate: #3a4466;
  --c-slate2: #5a6988;
  --c-mist: #8b9bb4;
  --c-fog: #c0cbdc;
  --c-white: #ffffff;
  --c-cream: #ead4aa;
  --c-tan: #e4a672;
  --c-brown: #b86f50;
  --c-bark: #733e39;
  --c-plum: #3e2731;
  --c-amber: #feae34;
  --c-yellow: #fee761;
  --c-orange: #f77622;
  --c-rust: #be4a2f;
  --c-red: #e43b44;
  --c-dred: #a22633;
  --c-pink: #f6757a;
  --c-peach: #e8b796;
  --c-green: #63c74d;
  --c-green2: #3e8948;
  --c-green3: #265c42;
  --c-teal: #193c3e;
  --c-deep: #124e89;
  --c-blue: #0099db;
  --c-sky: #2ce8f5;
  --c-purple: #68386c;
  --c-magenta: #b55088;
  --c-clay: #d77643;
}

/* Direction C (岛图): the page is the open sea, the chrome is wood and paper from the game.
   build.mjs bundles: fonts.css (generated), palette.css (generated), base.css, map.css (generated),
   home.css, pages.css. Every picture is the game's art at whole CSS px per art px (--k).
   Pixel font: headings, labels, signs, buttons, short lines; smooth system font: running text. */
:root {
  --font-fallback: system-ui, -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans", "Microsoft YaHei", sans-serif;
  --k: 2;                    /* CSS px per art px (frames, sea, map); map.css raises it on large screens */
  --max: 1152px;             /* the wide map at 3x */
  --pad: 16px;
  /* pixel-font sizes: whole multiples of the 12 px design in device pixels */
  --t-s: 12px;
  --t-m: 12px;             /* labels: 12 at 1x (the design size), 18 at 2x, 16 at 3x */
  --t-h: 24px;             /* small headings: never smaller than the 16 px running text */
  --t-l: 24px;
  --t-xl: 36px;
  --sign-font: var(--t-m);
}
@media (min-resolution: 1.5dppx) { :root { --t-m: 18px; --t-h: 18px; } }
@media (min-resolution: 2.5dppx) { :root { --t-m: 16px; --t-h: 16px; } }
@media (min-width: 720px) { :root { --t-xl: 48px; --pad: 24px; } }
/* smooth text: installed system fonts only (nothing downloaded), per language, with the regional CJK
   faces before any generic UI font: on a Japanese Windows `system-ui` is Yu Gothic UI, which would
   give Chinese pages Japanese glyph forms */
[lang="zh-Hans"] { --font-text: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", "Noto Sans SC", "Source Han Sans SC", sans-serif; }
[lang="zh-Hant"] { --font-text: -apple-system, BlinkMacSystemFont, "PingFang TC", "Microsoft JhengHei", "Noto Sans CJK TC", "Noto Sans TC", "Source Han Sans TC", sans-serif; }
[lang="ja"] { --font-text: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic UI", "Meiryo", "Noto Sans CJK JP", "Noto Sans JP", "Source Han Sans JP", sans-serif; }
[lang="en"] { --font-text: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; }

*, *::before, *::after { box-sizing: border-box; }
html {
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
  background: var(--c-blue) url("../art/scenes/sea-tile.png") 0 0 / calc(128px * var(--k)) repeat;
  image-rendering: pixelated;
}
body { margin: 0; color: var(--c-ink); font: 16px/1.75 var(--font-text); }
img { max-width: 100%; height: auto; }
a { color: var(--c-deep); text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
p { margin: 0 0 12px; }
h1, h2, h3, .pixel, .sign, .sign-h, .chip, .chips, .btn, .kicker, .latin, .tagline, .hello, .badge,
.brand-name, .lang-switch, .store-soon, .store-live, time, .foot-nav, .effective, .legal th, .studio-name {
  font-family: var(--font-pixel); font-weight: normal; -webkit-font-smoothing: none; font-synthesis: none;
}
h1, h2, h3 { line-height: 1.3; margin: 0 0 12px; overflow-wrap: anywhere; }
h1, h2, h3, .hello, .tagline, .sign-h, .pc-desc, .isle-hint { text-wrap: balance; }
h1 { font-size: var(--t-xl); }
h2 { font-size: var(--t-l); }
h3 { font-size: var(--t-h); }
.prose { font-family: var(--font-text); font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
[lang="en"] .prose, .prose[lang="en"] { line-height: 1.65; }
.pix { image-rendering: pixelated; image-rendering: crisp-edges; }
.pix.s1 { width: auto; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* focus: a yellow ring inside an ink ring, visible on the sea, on paper and on wood */
:focus { outline: none; }
:focus-visible { outline: 3px solid var(--c-ink); outline-offset: 3px; box-shadow: 0 0 0 3px var(--c-yellow); }
main:focus { outline: none; box-shadow: none; }
.skip { position: absolute; left: 8px; top: -80px; z-index: 20; padding: 12px 16px; background: var(--c-yellow); color: var(--c-ink);
  font: var(--t-m)/1.2 var(--font-pixel); text-decoration: none; box-shadow: 0 0 0 3px var(--c-ink); }
.skip:focus { top: 8px; }

/* ---- the game's frames (nine-slice PNGs at 1x, drawn at --k) ---------------------------------- */
.card, .sheet, .panel, .sign, .sign-h, .chip, .chips li, .btn, .lang-switch a, .brand, .site-foot, .store-soon {
  border-style: solid; border-color: transparent; background-clip: padding-box;
}
.card { border-width: calc(3px * var(--k)); border-image: url("../art/frames/card.png") 3 fill / calc(3px * var(--k)) repeat; }
.card-common { border-image-source: url("../art/frames/card-common.png"); }
.card-rare { border-image-source: url("../art/frames/card-rare.png"); }
.card-epic { border-image-source: url("../art/frames/card-epic.png"); }
.card-legendary { border-image-source: url("../art/frames/card-legendary.png"); }
.sheet { border-width: calc(4px * var(--k)); border-image: url("../art/frames/sheet.png") 4 fill / calc(4px * var(--k)) repeat; }
.panel, .brand, .site-foot { border-width: calc(4px * var(--k)); border-image: url("../art/frames/panel.png") 4 fill / calc(4px * var(--k)) repeat; }
.sign, .sign-h { border-width: calc(3px * var(--k)); border-image: url("../art/frames/sign.png") 3 fill / calc(3px * var(--k)) stretch; }
a.sign:hover, a.sign:focus-visible, a.sign[aria-current] { border-image-source: url("../art/frames/sign-lit.png"); }
.chip, .chips li, .lang-switch a, .store-soon { border-width: calc(3px * var(--k)); border-image: url("../art/frames/chip.png") 3 fill / calc(3px * var(--k)) repeat; }
.lang-switch a:hover { border-image-source: url("../art/frames/chip-hover.png"); }
.lang-switch a[aria-current] { border-image-source: url("../art/frames/chip-selected.png"); }
.btn { border-width: calc(3px * var(--k)); border-image: url("../art/frames/button-primary.png") 3 fill / calc(3px * var(--k)) repeat; }
.btn:hover, .btn:focus-visible { border-image-source: url("../art/frames/button-primary-hover.png"); }
.btn:active { border-image-source: url("../art/frames/button-primary-pressed.png"); }

/* wooden signboards: links (a.sign) light up like the game's lit buildings; headings (.sign-h) do not */
.sign { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px;
  padding: 2px calc(4px * var(--k)); color: var(--c-ink); text-decoration: none; font-size: var(--sign-font); line-height: 1.25; }
.sign-h { display: block; width: fit-content; max-width: 100%; padding: 2px calc(5px * var(--k)); color: var(--c-ink); font-size: var(--t-l); line-height: 1.3; margin: 0 0 12px; }
.sign-h.small { font-size: var(--t-h); }
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 2px calc(6px * var(--k));
  color: var(--c-ink); text-decoration: none; font-size: var(--t-m); line-height: 1.25; }
.chips { list-style: none; margin: 12px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips li { padding: 2px 8px; font-size: var(--t-s); line-height: 1.6; }
.kicker { display: inline-block; margin: 0 0 4px; padding: 0 6px; font-size: var(--t-s); line-height: 1.6; color: var(--c-cream); background: var(--c-dred); }
.latin { margin: 2px 0 0; font-size: var(--t-s); letter-spacing: 0.3em; color: var(--c-bark); text-transform: uppercase; }
.tagline { margin: 12px 0 8px; font-size: var(--t-l); line-height: 1.35; color: var(--c-dred); }
.badge { display: inline-block; margin: 0; padding: 0 8px; font-size: var(--t-s); line-height: 1.8; color: var(--c-ink); background: var(--c-amber); }
.store-soon { display: inline-flex; align-items: center; min-height: 44px; margin: 0; padding: 0 10px; font-size: var(--t-m); line-height: 1.25; color: var(--c-ink); }
.store-live { margin: 0; }
.store-note { color: var(--c-bark); font-size: 14px; margin-top: 8px; }

/* ---- header: Lampetto on a wooden panel, the inner pages' signs, the language chips ----------- */
.site-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; max-width: calc(var(--max) + 2 * var(--pad));
  margin: 0 auto; padding: 12px var(--pad); }
.brand { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 10px 0 4px; color: var(--c-ink); text-decoration: none; }
.brand-name { margin: 0; font-size: var(--t-l); line-height: 1; }
.site-nav { display: flex; flex-wrap: wrap; gap: 6px; order: 3; width: 100%; }
.site-nav .sign { font-size: var(--t-m); }
.lang-switch { display: flex; flex-wrap: wrap; gap: 6px; margin-left: auto; }
.lang-switch a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; padding: 0 6px;
  font-size: var(--t-m); line-height: 1.2; color: var(--c-ink); text-decoration: none; }
.lang-switch .short { display: none; }
@media (max-width: 599px) {
  .site-head { gap: 8px 6px; }
  .brand { padding-right: 8px; gap: 6px; }
  .brand-name { font-size: var(--t-m); }
  .lang-switch { gap: 4px; }
  .lang-switch .full { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .lang-switch .short { display: inline; }
}
@media (min-width: 900px) {
  .site-nav { order: 0; width: auto; margin-left: 12px; }
}

/* the mascot: a 4-frame strip in a one-frame window */
.mascot { display: inline-block; flex: none; width: calc(16px * var(--m, 2)); height: calc(16px * var(--m, 2)); overflow: hidden; }
.mascot img { display: block; max-width: none; width: calc(64px * var(--m, 2)); height: calc(16px * var(--m, 2)); image-rendering: pixelated;
  animation: idle-4 2.7s steps(1) infinite; }
.mascot.big { --m: 4; }
@keyframes idle-4 {
  0% { transform: translateX(0); }
  23.7% { transform: translateX(-25%); }
  35.6% { transform: translateX(-50%); }
  94.8% { transform: translateX(-75%); }
}

main { display: block; max-width: calc(var(--max) + 2 * var(--pad)); margin: 0 auto; padding: 0 var(--pad) 40px; }

/* ---- footer: a wooden panel -------------------------------------------------------------------- */
.site-foot { max-width: calc(var(--max) + 2 * var(--pad) - 2 * var(--pad)); margin: 8px auto 32px; padding: 12px 16px;
  text-align: center; color: var(--c-ink); font-size: 14px; line-height: 1.6; width: calc(100% - 2 * var(--pad)); }
.foot-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 0 20px; margin-bottom: 6px; font-size: var(--t-m); }
.foot-nav a { display: inline-flex; align-items: center; min-height: 44px; }
.site-foot p { margin: 4px 0; }
.site-foot a { color: var(--c-deep); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Generated by tools/export-art.mjs (tools/art-map.mjs): art scale, map sizes and sign anchors. Do not edit. */
:root { --k: 2; }
@media (min-width: 600px) and (min-height: 700px) { :root { --k: 3; } .isle { --sign-font: 24px; } }
@media (max-width: 767px) {
  .isle-art { width: calc(160px * var(--k)); height: calc(256px * var(--k)); }
  .place-about { left: calc(72px * var(--k)); top: calc(34px * var(--k)); justify-content: center; }
  .place-about .lit { left: calc(-24px * var(--k)); top: calc(-2px * var(--k)); width: calc(48px * var(--k)); height: calc(16px * var(--k)); }
  .place-news { left: calc(40px * var(--k)); top: calc(146px * var(--k)); justify-content: flex-start; }
  .place-news .sign { margin-left: calc(-12px * var(--k)); }
  .place-news .lit { left: calc(-8px * var(--k)); top: calc(-2px * var(--k)); width: calc(32px * var(--k)); height: calc(16px * var(--k)); }
  .place-support { left: calc(136px * var(--k)); top: calc(146px * var(--k)); justify-content: flex-end; }
  .place-support .sign { margin-right: calc(-12px * var(--k)); }
  .place-support .lit { left: calc(-8px * var(--k)); top: calc(-2px * var(--k)); width: calc(16px * var(--k)); height: calc(32px * var(--k)); }
  .place-game { left: calc(136px * var(--k)); top: calc(82px * var(--k)); justify-content: flex-end; }
  .place-game .sign { margin-right: calc(-12px * var(--k)); }
  .place-game .lit { left: calc(-8px * var(--k)); top: calc(-2px * var(--k)); width: calc(16px * var(--k)); height: calc(32px * var(--k)); }
  .place-next { left: calc(128px * var(--k)); top: calc(210px * var(--k)); justify-content: flex-end; }
  .place-next .sign { margin-right: calc(-12px * var(--k)); }
  .place-next .lit { left: calc(-16px * var(--k)); top: calc(-2px * var(--k)); width: calc(32px * var(--k)); height: calc(32px * var(--k)); }
  .actor-lampetto { left: calc(96px * var(--k)); top: calc(32px * var(--k)); }
  .actor-granny-glow { left: calc(112px * var(--k)); top: calc(80px * var(--k)); }
}
@media (min-width: 768px) {
  :root { --k: 2; }
  .isle { --sign-font: 24px; }
  .isle-art { width: calc(384px * var(--k)); height: calc(224px * var(--k)); }
  .place-about { left: calc(152px * var(--k)); top: calc(34px * var(--k)); justify-content: center; }
  .place-about .lit { left: calc(-24px * var(--k)); top: calc(-2px * var(--k)); width: calc(48px * var(--k)); height: calc(16px * var(--k)); }
  .place-news { left: calc(176px * var(--k)); top: calc(82px * var(--k)); justify-content: center; }
  .place-news .lit { left: calc(-16px * var(--k)); top: calc(-2px * var(--k)); width: calc(32px * var(--k)); height: calc(16px * var(--k)); }
  .place-support { left: calc(88px * var(--k)); top: calc(98px * var(--k)); justify-content: center; }
  .place-support .lit { left: calc(-8px * var(--k)); top: calc(-2px * var(--k)); width: calc(16px * var(--k)); height: calc(32px * var(--k)); }
  .place-game { left: calc(344px * var(--k)); top: calc(50px * var(--k)); justify-content: flex-end; }
  .place-game .sign { margin-right: calc(-12px * var(--k)); }
  .place-game .lit { left: calc(-8px * var(--k)); top: calc(-2px * var(--k)); width: calc(16px * var(--k)); height: calc(32px * var(--k)); }
  .place-next { left: calc(336px * var(--k)); top: calc(178px * var(--k)); justify-content: flex-end; }
  .place-next .sign { margin-right: calc(-12px * var(--k)); }
  .place-next .lit { left: calc(-16px * var(--k)); top: calc(-2px * var(--k)); width: calc(32px * var(--k)); height: calc(32px * var(--k)); }
  .actor-lampetto { left: calc(176px * var(--k)); top: calc(32px * var(--k)); }
  .actor-granny-glow { left: calc(320px * var(--k)); top: calc(64px * var(--k)); }
}
@media (min-width: 1200px) { :root { --k: 3; } }

/* Home: the island map is the menu (sizes and anchors in map.css), the plain list of the same
   places below it, then the content cards in the game's card frames. */

/* ---- the map ------------------------------------------------------------------------------------ */
.isle { display: flex; flex-direction: column; align-items: center; margin: 4px calc(-1 * var(--pad)) 0; }
.isle-hint { margin: 6px var(--pad) 0; padding: 0 8px; font-family: var(--font-pixel); font-size: var(--t-s); line-height: 1.8;
  color: var(--c-ink); background: var(--c-cream); box-shadow: 0 0 0 2px var(--c-plum); text-align: center; }
.isle-board { position: relative; flex: none; }
.isle-art { display: block; max-width: none; image-rendering: pixelated; }
.places { list-style: none; margin: 0; padding: 0; }
.place { position: absolute; width: 0; height: 0; display: flex; align-items: flex-end; }
.place .sign { flex: none; position: relative; z-index: 3; margin-bottom: calc(5px * var(--k)); white-space: nowrap; }
.place .sign:focus-visible { box-shadow: 0 0 0 3px var(--c-yellow); }
.place::before { content: ""; position: absolute; z-index: 2; left: calc(-2px * var(--k)); top: calc(-5px * var(--k));
  width: calc(4px * var(--k)); height: calc(6px * var(--k)); background: url("../art/frames/sign-post.png") 0 0 / 100% 100%; }
.place .lit { position: absolute; z-index: 1; max-width: none; opacity: 0; pointer-events: none; image-rendering: pixelated; }
.place .sign:hover + .lit, .place .sign:focus-visible + .lit { opacity: 1; }
.actor { position: absolute; z-index: 1; width: calc(16px * var(--k)); height: calc(16px * var(--k)); overflow: hidden; pointer-events: none; }
.actor img { display: block; max-width: none; width: calc(64px * var(--k)); height: calc(16px * var(--k)); image-rendering: pixelated;
  animation: idle-4 2.7s steps(1) infinite; }
.actor-granny-glow img { animation-delay: -1.1s; }
/* below 320 px the map is too small for its signs: the plain list below carries the same links */
@media (max-width: 319px) { .isle { display: none; } }

/* ---- the plain list of the same places (screen readers, keyboards, small screens) ---------------- */
.place-list { margin: 20px 0 0; }
.list-title { margin: 0 auto 10px; font-size: var(--t-h); }
.place-list ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 8px; }
.place-card { display: flex; align-items: center; gap: 10px; min-height: 64px; padding: 4px 10px 4px 6px; color: var(--c-ink); text-decoration: none;
  border-style: solid; border-color: transparent; border-width: calc(3px * var(--k));
  border-image: url("../art/frames/card-common.png") 3 fill / calc(3px * var(--k)) repeat; }
.place-card:hover, .place-card:focus-visible { border-image-source: url("../art/frames/card-common-hover.png"); }
.place-card:active { border-image-source: url("../art/frames/card-common-pressed.png"); }
.pc-icon { flex: none; display: grid; place-items: center; width: 48px; height: 48px; }
.pc-text { display: grid; gap: 2px; min-width: 0; }
.pc-label { font-family: var(--font-pixel); font-size: var(--t-h); line-height: 1.3; -webkit-font-smoothing: none; }
.pc-desc { font-size: 14px; line-height: 1.45; color: var(--c-bark); }
@media (min-width: 600px) { .place-list ul { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) {
  .place-list ul { grid-template-columns: repeat(5, 1fr); }
  .place-card { flex-direction: column; justify-content: flex-start; text-align: center; height: 100%; padding: 8px 8px 10px; }
  .pc-text { justify-items: center; }
}

/* ---- content cards ------------------------------------------------------------------------------ */
.home-cards { display: grid; grid-template-columns: 1fr; gap: 16px; margin-top: 24px; align-items: stretch; }
.home-cards > .card { padding: 12px 14px; scroll-margin-top: 16px; }
.home-cards > .card:target { border-image-source: url("../art/frames/card-selected.png"); }
.home-cards > .card-rare:target { border-image-source: url("../art/frames/card-rare-selected.png"); }
.home-cards > .card-epic:target { border-image-source: url("../art/frames/card-epic-selected.png"); }
.home-cards h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; }
.home-cards .prose { margin: 0 0 10px; }

.feature .game-id { display: flex; align-items: center; gap: 14px; }
.feature .game-id h2 { margin: 2px 0 0; font-size: var(--t-xl); line-height: 1.1; }
.app-icon { flex: none; box-shadow: 0 0 0 calc(1px * var(--k)) var(--c-plum); }
.feature .actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin: 14px 0 4px; }
.feature-shot { margin: 16px auto 4px; width: 160px; }
.shot { display: block; width: 100%; height: auto; image-rendering: auto; border-radius: 14px; box-shadow: 0 0 0 3px var(--c-ink); background: var(--c-ink); }

.news { display: flex; flex-direction: column; }
.news-art { display: block; margin: auto 0 0 auto; padding-top: 8px; }
.news-list { list-style: none; margin: 0; padding: 0; }
.news-list li { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; padding: 10px 0; border-bottom: 2px dashed var(--c-tan); }
.news-list li:last-child { border-bottom: 0; }
.news-list time { font-size: var(--t-s); line-height: 2; color: var(--c-bark); white-space: nowrap; }
.news-list a, .news-list span { font-size: 15px; line-height: 1.6; color: var(--c-ink); text-decoration: none; }
.news-list a { display: inline-block; min-height: 24px; }
.news-list a:hover { color: var(--c-deep); text-decoration: underline; }

.about { display: grid; grid-template-columns: auto 1fr; gap: 4px 16px; align-items: start; }
.about-lamp { padding-top: 6px; }
.hello { font-size: var(--t-h); line-height: 1.5; color: var(--c-dred); margin: 0 0 8px; }

.next { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: center; }
.card-back { display: block; }

@media (max-width: 420px) {
  .about { grid-template-columns: 1fr; }
  .feature .game-id h2 { font-size: var(--t-l); }
}
@media (min-width: 900px) {
  .home-cards { grid-template-columns: 3fr 2fr; gap: 20px; }
  .home-cards > .card { padding: 16px 20px; }
  .feature { display: grid; grid-template-columns: 1fr auto; grid-auto-rows: min-content; gap: 0 20px; align-items: start; }
  .feature-text { display: contents; }
  .feature .game-id { grid-column: 1 / -1; }
  .feature-text > :not(.game-id) { grid-column: 1; }
  .feature-shot { grid-column: 2; grid-row: 2 / span 5; margin: 12px 0 0; width: 190px; }
  .feature .actions .btn { font-size: var(--t-l); }
}
@media (min-width: 1200px) {
  .feature-shot { width: 220px; }
  .hello { font-size: var(--t-l); }
}

/* Inner pages: Lanternpaw (cards), the text pages (a notice sheet with smooth text), the root
   language picker and 404. */

/* ---- Lanternpaw ---------------------------------------------------------------------------------- */
.page-game main > section, .page-game main > .back { margin-top: 24px; }
.game-hero { display: grid; grid-template-columns: auto 1fr; gap: 12px 20px; align-items: center; padding: 14px 16px; margin-top: 8px; }
.game-hero h1 { margin: 0; line-height: 1.1; }
.game-hero .tagline { margin-top: 10px; }
.genre { margin: 0 0 12px; color: var(--c-bark); }
.game-about { padding: 12px 16px; }
.game-about-text { max-width: 44em; }
.scene { margin: 12px 0 4px; }
.scene img { display: block; width: 512px; max-width: 100%; height: auto; box-shadow: 0 0 0 calc(1px * var(--k)) var(--c-plum); }
.feature-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 12px; }
.feature-grid li { padding: 10px 14px; }
.feature-grid h3 { margin: 6px 0 4px; font-size: var(--t-h); }
.feature-grid p { margin: 0; font-size: 15px; line-height: 1.7; }
.leaders { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.leaders li { display: grid; justify-items: center; gap: 4px; padding: 8px 10px 6px; font-family: var(--font-pixel); font-size: var(--t-m); }
.features .sign-h.small { margin-top: 20px; }
.shot-row { list-style: none; margin: 0; padding: 4px 4px 12px; display: grid; grid-auto-flow: column; grid-auto-columns: 180px; gap: 16px; overflow-x: auto; }
.shot-row li.wide { grid-column: span 2; }
.shot-row figure { margin: 0; }
.shot-row figcaption { margin-top: 8px; padding: 2px 8px; font-size: 14px; line-height: 1.5; color: var(--c-ink); background: var(--c-cream); box-shadow: 0 0 0 2px var(--c-plum); }
.editions { display: grid; grid-template-columns: 1fr; gap: 16px; }
.editions .card { padding: 12px 16px; }
.editions h2 { font-size: var(--t-h); }
.editions ul { margin: 0; padding-left: 1.3em; }
.facts { padding: 12px 16px; }
.facts dl { display: grid; grid-template-columns: auto 1fr; gap: 8px 20px; margin: 0; }
.facts dt { font-family: var(--font-pixel); font-size: var(--t-h); line-height: 1.6; color: var(--c-bark); }
.facts dd { margin: 0; font-size: 15px; line-height: 1.6; }
.download { padding: 12px 16px; }
.back { margin: 28px 0 0; }

@media (max-width: 1039px) {
  /* scrolling strip: the iPad shot (820 x 1180) as tall as the phone shots (390 x 844 at 180 px) */
  .shot-row { grid-auto-columns: auto; }
  .shot-row li { width: 180px; }
  .shot-row li.wide { grid-column: auto; width: calc(180px * 844 / 390 * 820 / 1180); }
}
@media (max-width: 599px) {
  .game-hero { grid-template-columns: 1fr; justify-items: start; }
  .game-hero .app-icon { width: 96px; height: 96px; }
  .facts dl { grid-template-columns: 1fr; gap: 0; }
  .facts dd { margin-bottom: 10px; }
}
@media (min-width: 720px) {
  .feature-grid { grid-template-columns: 1fr 1fr; }
  .editions { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 1040px) {
  .feature-grid { grid-template-columns: 1fr 1fr 1fr; }
  .game-about { display: grid; grid-template-columns: 1fr auto; gap: 0 24px; align-items: start; }
  .scene { margin: 4px 0; }
  .shot-row { grid-auto-flow: row; grid-template-columns: repeat(5, 1fr); grid-auto-columns: auto; overflow: visible; }
}

/* ---- text pages: privacy, support, 特定商取引法 ------------------------------------------------------ */
.text-page { max-width: 800px; margin: 0 auto; }
.page-title { display: flex; align-items: flex-end; gap: 12px; margin: 12px 0 10px; }
.page-title-art { flex: none; }
@media (max-width: 599px) { .page-title { flex-direction: column; align-items: flex-start; gap: 4px; } }
.sign-h.big { margin: 0; font-size: var(--t-l); }
.paper { padding: 14px 16px 18px; }
.paper h2 { margin: 28px 0 8px; font-size: var(--t-l); color: var(--c-ink); }
.paper h3 { margin: 22px 0 6px; font-size: var(--t-h); line-height: 1.5; }
.paper ul, .paper ol { padding-left: 1.4em; margin: 0 0 12px; }
.paper li { margin: 2px 0; }
.summary { padding: 10px 14px; background: var(--c-white); box-shadow: inset 0 0 0 2px var(--c-tan); }
.toc { margin: 8px 0 4px; font-size: 15px; line-height: 1.5; }
.toc ol { margin: 0; padding-left: 1.8em; }
.toc li { margin: 0; }
.toc a { display: block; padding: 5px 0; text-decoration: none; }
.toc a:hover { text-decoration: underline; }
@media (max-width: 719px) { .toc a { display: flex; align-items: center; min-height: 44px; padding: 4px 0; } }
.qa { border-top: 2px dashed var(--c-tan); margin-top: 8px; }
.effective { margin: 28px 0 0; font-size: var(--t-m); color: var(--c-bark); }
.legal { width: 100%; border-collapse: collapse; margin: 12px 0 4px; }
.legal th, .legal td { text-align: left; vertical-align: top; padding: 10px 8px; border-bottom: 2px dashed var(--c-tan); }
.legal tr:last-child th, .legal tr:last-child td { border-bottom: 0; }
.legal th { width: 34%; font-size: var(--t-h); line-height: 1.6; color: var(--c-bark); }
.legal td { overflow-wrap: anywhere; }
.optional { color: var(--c-bark); }
@media (max-width: 599px) {
  .legal th, .legal td { display: block; width: auto; padding: 0; border: 0; }
  .legal th { padding-top: 12px; }
  .legal td { padding-bottom: 12px; border-bottom: 2px dashed var(--c-tan); }
  .legal tr:last-child td { border-bottom: 0; }
}
@media (min-width: 720px) {
  .paper { padding: 20px 32px 28px; }
  .sign-h.big { font-size: var(--t-xl); }
  .page-title { margin-top: 20px; }
}

/* ---- root language picker and 404 --------------------------------------------------------------- */
.page-picker main { max-width: 640px; padding: 40px var(--pad) 48px; text-align: center; }
.picker-card { padding: 20px 16px; }
.picker-card .studio-name { margin: 12px 0 16px; font-size: var(--t-xl); line-height: 1.1; }
.lang-picker, .not-found { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; text-align: left; }
.lang-picker .sign { display: grid; justify-content: stretch; gap: 2px; width: 100%; min-height: 64px; padding: 6px 14px; white-space: normal; font-size: var(--t-l); }
.lang-name { line-height: 1.2; }
.lang-sub { font-family: var(--font-text); font-size: 14px; line-height: 1.4; color: var(--c-bark); }
.lost { display: flex; align-items: center; justify-content: center; gap: 16px; margin-bottom: 16px; }
.lost .studio-name { margin: 0; font-size: var(--t-xl); line-height: 1; padding: 6px 14px; background: var(--c-cream); box-shadow: 0 0 0 3px var(--c-plum); }
.lost-boat { width: 48px; height: 48px; }
.not-found li { padding: 12px 16px; }
.not-found h2 { margin: 0 0 6px; font-size: var(--t-h); }
.not-found p { margin: 0 0 8px; }
@media (min-width: 720px) { .not-found { grid-template-columns: 1fr 1fr; } }
