@font-face{font-family:"Town Rounded";src:url("../fonts/town-rounded-500-full.woff2") format("woff2");font-style:normal;font-weight:400 600;font-display:swap;unicode-range:U+0-9,U+b-c,U+e-1f,U+7f-a8,U+aa-b6,U+b8-d6,U+d8-2018,U+201a-2025,U+2027-218f,U+2193-2196,U+2198-245f,U+2463-25b5,U+25b7-3000,U+3003-300b,U+300e-300f,U+3012-3041,U+3043,U+3045,U+3047,U+3049,U+304e,U+3056,U+305c,U+3062,U+306c,U+3071-3072,U+3074,U+3077,U+307a-307d,U+3083,U+3085,U+308e,U+3090-3091,U+3094-30a0,U+30a5,U+30a7,U+30ae,U+30b2,U+30be,U+30c0,U+30c2,U+30c4-30c5,U+30cc,U+30cf,U+30d2,U+30d4,U+30e4,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f5,U+30f7-30fa,U+30fd-4dff,U+4e01-4e08,U+4e0c,U+4e0e-4e15,U+4e17-4e20,U+4e22-4e2c,U+4e2e-4e37,U+4e39-4e3a,U+4e3c-4e85,U+4e87-4e8b,U+4e8d-4ea3,U+4ea5-4eb9,U+4ebb-4ec9,U+4ecc-4efa,U+4efc-4f00,U+4f02-4f0d,U+4f0f-4f19,U+4f1b-4f1c,U+4f1e-4f4c,U+4f4f-4f52,U+4f54-4f58,U+4f5a-4f5b,U+4f5d-4f7e,U+4f80-4f9c,U+4f9e-4fdc,U+4fde-500a,U+500c-5023,U+5025-505b,U+505d-5073,U+5075-5098,U+509a-50ce,U+50d0-5129,U+512b-5142,U+5144-5147,U+514a-5164,U+5166-5167,U+5169-516b,U+516d-5170,U+5172-5176,U+5178-5184,U+5186-518c,U+518e-5198,U+519a-51f9,U+51fb-5205,U+5208-5216,U+5218-521c,U+521e-5223,U+5226-522f,U+5231-5235,U+5237-524c,U+524e-52d4,U+52d6-52de,U+52e0-536f,U+5371-5399,U+539b-539e,U+53a0-53c1,U+53c3-53d5,U+53d8-53e2,U+53e4-53ee,U+53f1-53f2,U+53f4-5407,U+5409-540b,U+540d-5410,U+5412-541a,U+541c-5449,U+544b-5467,U+5469-547b,U+547d-54c0,U+54c2-554e,U+5550-5673,U+5675-56dd,U+56df-56f1,U+56f3-56f9,U+56fb-5746,U+5748-578a,U+578c-57f9,U+57fb-5833,U+5835-5856,U+5858-5882,U+5884-58c0,U+58c2-58ef,U+58f1,U+58f3-5908,U+590a-590e,U+5910-5915,U+5917-5926,U+5928-592d,U+592f-5964,U+5966-597c,U+597e-59ca,U+59cc-5b4f,U+5b51-5b56,U+5b59-5b87,U+5b89-5b8b,U+5b8d-5b99,U+5b9b-5b9e,U+5ba0-5bb5,U+5bb7-5bbe,U+5bc0-5bc3,U+5bc5-5bf7,U+5bf9-5c01,U+5c03-5c0d,U+5c10,U+5c12-5c39,U+5c3b-5c49,U+5c4c-5c54,U+5c56-5c63,U+5c65-5cf5,U+5cf7-5de0,U+5de2-5ded,U+5def-5e01,U+5e03-5e2f,U+5e31-5e37,U+5e39-5e3c,U+5e3e-5e72,U+5e74-5e78,U+5e7a-5e82,U+5e84-5e96,U+5e98-5ea5,U+5ea7-5ef9,U+5efb-5f0e,U+5f10-5f14,U+5f16-5f52,U+5f54-5f61,U+5f63-5f70,U+5f72-5f78,U+5f7a-5f84,U+5f86-5f8b,U+5f8d-5f96,U+5f98-5fa8,U+5faa-5fc2,U+5fc4-601c,U+601e-60c4,U+60c6-610e,U+6110-611e,U+6120-614a,U+614c-620f,U+6211-6237,U+6239-623a,U+623c-623e,U+6241-624a,U+624c-62bb,U+62bd-62c4,U+62c6-62e0,U+62e2-6300,U+6302-6306,U+6308-631e,U+6320-639a,U+639c-63a4,U+63a6-63b1,U+63b3-63c2,U+63c4-63ce,U+63d1-63d9,U+63dc-63f3,U+63f5-6439,U+643b-64ad,U+64af-64cc,U+64ce-652e,U+6530-6538,U+653a-653d,U+653f-6562,U+6564-6573,U+6575-6586,U+6588,U+658a-6598,U+659a-65ac,U+65ae-65af,U+65b1-65b8,U+65ba-65e1,U+65e3-65e4,U+65e6-660d,U+660f-661f,U+6621-6641,U+6643-666e,U+6670-6695,U+6697-66f1,U+66f3,U+66f5-66f7,U+66f9-66fe,U+6701-6708,U+670a-670c,U+670e-671c,U+671e,U+6720-6727,U+6729,U+672b,U+672e-674f,U+6751-6764,U+6766-677e,U+6780-678f,U+6791-67b5,U+67b7-67d3,U+67d5-6829,U+682b-6838,U+683a-6847,U+6849-68b0,U+68b2-697c,U+697e-69ca,U+69cc-69d7,U+69d9-6a18,U+6a1a-6a20,U+6a22-6a29,U+6a2b-6b20,U+6b22-6b4b,U+6b4d-6b61,U+6b64-6b68,U+6b6b-6b8a,U+6b8c-6bb4,U+6bb6-6bd3,U+6bd5-6c16,U+6c18-6c33,U+6c35-6cbe,U+6cc0-6cd4,U+6cd6-6ce1,U+6ce3-6d3a,U+6d3c-6d40,U+6d42-6d6d,U+6d6f-6d76,U+6d78-6de0,U+6de2-6df0,U+6df2-6dfa,U+6dfc-6e07,U+6e09-6e0a,U+6e0c-6e20,U+6e22-6e8f,U+6e91-6e95,U+6e97-6f13,U+6f15-70b8,U+70ba-7135,U+7137-7166,U+7168-71b0,U+71b2-7268,U+726a-72b5,U+72b7-72eb,U+72ed-7383,U+7385-73fd,U+73ff-7405,U+7407-74e5,U+74e7-751e,U+7520-7527,U+7529-7539,U+753c-754b,U+754d-7569,U+756b-7679,U+767b-767c,U+767e-7683,U+7685-76ed,U+76ef-76f3,U+76f5-76f7,U+76f9-770a,U+770c-771e,U+7720-773f,U+7741-77ab,U+77ad-77e1,U+77e3-77ec,U+77ee-78b9,U+78bb-7939,U+793b-793d,U+793f-796c,U+796e-79c0,U+79c2-79d7,U+79d9-79fa,U+79fc-7a79,U+7a7b-7a92,U+7a94-7aca,U+7acc-7b25,U+7b27-7b48,U+7b4a-7b96,U+7b98-7bc3,U+7bc5-7bc8,U+7bca-7d03,U+7d05-7d18,U+7d1a-7d1f,U+7d21-7d2f,U+7d31-7d38,U+7d3a-7d41,U+7d43-7d4b,U+7d4d-7d4f,U+7d51-7d74,U+7d76-7d98,U+7d9b-7dac,U+7dae-7dd1,U+7dd3-7dd9,U+7ddb-7e00,U+7e02-7e25,U+7e27-7e6f,U+7e71-7f6d,U+7f6f-7f8d,U+7f8f-8002,U+8004,U+8006-8073,U+8075-808b,U+808d-80cb,U+80cd-816f,U+8171-819c,U+819e-81e9,U+81eb-8216,U+8218-821d,U+821f-8271,U+8273-82b0,U+82b2-853c,U+853e-8583,U+8585-884b,U+884d-8856,U+8858-8867,U+8869-88ce,U+88d0-88db,U+88dd-898a,U+898c-898e,U+8990-8995,U+8997-89a6,U+89a8-89b2,U+89b4-89d1,U+89d3-89e2,U+89e4-89e5,U+89e7-8a07,U+8a09-8a2c,U+8a2e-8a30,U+8a32-8a5d,U+8a5f-8a70,U+8a72-8a8c,U+8a8e-8a97,U+8a99-8a9d,U+8a9f-8aab,U+8aae-8ac6,U+8ac8-8b1c,U+8b1e-8b57,U+8b59-8c36,U+8c38-8c60,U+8c62-8caa,U+8cac-8cbb,U+8cbd-8ce9,U+8ceb-8d76,U+8d78-8d89,U+8d8b-8db2,U+8db4-8ddc,U+8dde-8dee,U+8df0-8df2,U+8df4-8eaa,U+8eac-8f08,U+8f0a-8f29,U+8f2b-8fbb,U+8fbd-8fcd,U+8fcf-8fd0,U+8fd2-8fd3,U+8fd5-9000,U+9002-900e,U+9010-9019,U+901b-901f,U+9021-9031,U+9033-9052,U+9055-905f,U+9061-906d,U+906f-9077,U+9079-907e,U+9080-90e7,U+90e9-90ec,U+90ee-90fc,U+90fe-91cc,U+91ce,U+91d0-9576,U+9578-9588,U+958a,U+958c-9592,U+9594-95a1,U+95a3-9662,U+9664-969a,U+969c-969f,U+96a1-96c5,U+96c7-96e1,U+96e3-96f1,U+96f3-9758,U+975a-975d,U+975f-9761,U+9763-97f2,U+97f4-9805,U+9807-984b,U+984d-9853,U+9855-9866,U+9868-98da,U+98dc-9927,U+9929-9ad7,U+9ad9-9ed1,U+9ed3-ff00,U+ff02-ff05,U+ff07,U+ff0a-ff0e,U+ff10-ff19,U+ff1b-ff1e,U+ff20-ff5b,U+ff5d-10ffff}
@font-face{font-family:"Town Rounded";src:url("../fonts/town-rounded-500-current.woff2") format("woff2");font-style:normal;font-weight:400 600;font-display:swap;unicode-range:U+a,U+d,U+20-7e,U+a9,U+b7,U+d7,U+2019,U+2026,U+2190-2192,U+2197,U+2460-2462,U+25b6,U+3001-3002,U+300c-300d,U+3010-3011,U+3042,U+3044,U+3046,U+3048,U+304a-304d,U+304f-3055,U+3057-305b,U+305d-3061,U+3063-306b,U+306d-3070,U+3073,U+3075-3076,U+3078-3079,U+307e-3082,U+3084,U+3086-308d,U+308f,U+3092-3093,U+30a1-30a4,U+30a6,U+30a8-30ad,U+30af-30b1,U+30b3-30bd,U+30bf,U+30c1,U+30c3,U+30c6-30cb,U+30cd-30ce,U+30d0-30d1,U+30d3,U+30d5-30e3,U+30e5-30e7,U+30e9-30ed,U+30ef,U+30f3,U+30f6,U+30fb-30fc,U+4e00,U+4e09-4e0b,U+4e0d,U+4e16,U+4e21,U+4e2d,U+4e38,U+4e3b,U+4e86,U+4e8c,U+4ea4,U+4eba,U+4eca-4ecb,U+4efb,U+4f01,U+4f0e,U+4f1a,U+4f1d,U+4f4d-4f4e,U+4f53,U+4f59,U+4f5c,U+4f7f,U+4f9d,U+4fdd,U+500b,U+5024,U+505c,U+5074,U+5099,U+50cf,U+512a,U+5143,U+5148-5149,U+5165,U+5168,U+516c,U+5171,U+5177,U+5185,U+518d,U+5199,U+51fa,U+5206-5207,U+5217,U+521d,U+5224-5225,U+5230,U+5236,U+524d,U+52d5,U+52df,U+5370,U+539a,U+539f,U+53c2,U+53d6-53d7,U+53e3,U+53ef-53f0,U+53f3,U+5408,U+540c,U+5411,U+541b,U+544a,U+5468,U+547c,U+54c1,U+554f,U+5674,U+56de,U+56f2,U+56fa,U+5747,U+578b,U+57fa,U+5834,U+5857,U+5883,U+58c1,U+58f0,U+58f2,U+5909,U+590f,U+5916,U+5927,U+592e,U+5965,U+597d,U+59cb,U+5b50,U+5b57-5b58,U+5b88,U+5b8c,U+5b9a,U+5b9f,U+5bb6,U+5bbf,U+5bc4,U+5bf8,U+5c02,U+5c0e-5c0f,U+5c11,U+5c3a,U+5c4a-5c4b,U+5c55,U+5c64,U+5cf6,U+5de1,U+5dee,U+5e02,U+5e30,U+5e38,U+5e3d,U+5e73,U+5e79,U+5e83,U+5e97,U+5ea6,U+5efa,U+5f0f,U+5f15,U+5f53,U+5f62,U+5f71,U+5f79,U+5f85,U+5f8c,U+5f97,U+5fa9,U+5fc3,U+601d,U+60c5,U+610f,U+611f,U+614b,U+6210,U+6238,U+623b,U+623f-6240,U+624b,U+62bc,U+62c5,U+62e1,U+6301,U+6307,U+631f,U+639b,U+63a5,U+63b2,U+63c3,U+63cf-63d0,U+63da-63db,U+63f4,U+643a,U+64ae,U+64cd,U+652f,U+6539,U+653e,U+6563,U+6574,U+6587,U+6589,U+6599,U+65ad,U+65b0,U+65b9,U+65e2,U+65e5,U+660e,U+6620,U+6642,U+666f,U+6696,U+66f2,U+66f4,U+66f8,U+66ff-6700,U+6709,U+670d,U+671d,U+671f,U+6728,U+672a,U+672c-672d,U+6750,U+6765,U+677f,U+6790,U+67b6,U+67d4,U+682a,U+6839,U+6848,U+68b1,U+697d,U+69cb,U+69d8,U+6a19,U+6a21,U+6a2a,U+6b21,U+6b4c,U+6b62-6b63,U+6b69-6b6a,U+6b8b,U+6bb5,U+6bd4,U+6c17,U+6c34,U+6cbf,U+6cd5,U+6ce2,U+6d3b,U+6d41,U+6d6e,U+6d77,U+6de1,U+6df1,U+6dfb,U+6e08,U+6e0b,U+6e21,U+6e90,U+6e96,U+6f14,U+70b9,U+7136,U+7167,U+71b1,U+7269,U+72b6,U+72ec,U+7384,U+73fe,U+7406,U+74e6,U+751f,U+7528,U+753a-753b,U+754c,U+756a,U+767a,U+767d,U+7684,U+76ee,U+76f4,U+76f8,U+770b,U+771f,U+7740,U+77ac,U+77e2,U+77ed,U+78ba,U+793a,U+793e,U+796d,U+79c1,U+79d8,U+79fb,U+7a7a,U+7a93,U+7acb,U+7b26,U+7b49,U+7b97,U+7bc4,U+7bc9,U+7d04,U+7d19,U+7d20,U+7d30,U+7d39,U+7d42,U+7d4c,U+7d50,U+7d75,U+7d99-7d9a,U+7dad,U+7dd2,U+7dda,U+7e01,U+7e26,U+7e70,U+7f6e,U+7f8e,U+8003,U+8005,U+8074,U+808c,U+80cc,U+8170,U+819d,U+81ea,U+8217,U+821e,U+8272,U+82b1,U+853d,U+8584,U+884c,U+8857,U+8868,U+88cf,U+88dc,U+898b,U+898f,U+8996,U+89a7,U+89b3,U+89d2,U+89e3,U+89e6,U+8a08,U+8a2d,U+8a31,U+8a5e,U+8a71,U+8a8d,U+8a98,U+8a9e,U+8aac-8aad,U+8ac7,U+8b1d,U+8b58,U+8c37,U+8c61,U+8cab,U+8cbc,U+8cea,U+8d77,U+8d8a,U+8db3,U+8ddd,U+8def,U+8df3,U+8eab,U+8f09,U+8f2a,U+8fbc,U+8fce,U+8fd1,U+8fd4,U+9001,U+900f,U+901a,U+9020,U+9032,U+9053-9054,U+9060,U+906e,U+9078,U+907f,U+90e8,U+90ed,U+90fd,U+91cd,U+91cf,U+9577,U+9589,U+958b,U+9593,U+95a2,U+9663,U+969b,U+96a0,U+96c6,U+96e2,U+96f2,U+9759,U+975e,U+9762,U+97f3,U+9806,U+984c,U+9854,U+9867,U+98db,U+9928,U+9ad8,U+9ed2,U+ff01,U+ff06,U+ff08-ff09,U+ff0f,U+ff1a,U+ff1f,U+ff5c}
@font-face{font-family:"Town Rounded";src:url("../fonts/town-rounded-700-full.woff2") format("woff2");font-style:normal;font-weight:700 900;font-display:swap;unicode-range:U+0-9,U+b-c,U+e-1f,U+7f-a8,U+aa-b6,U+b8-d6,U+d8-2018,U+201a-2025,U+2027-218f,U+2193-2196,U+2198-245f,U+2463-25b5,U+25b7-3000,U+3003-300b,U+300e-300f,U+3012-3041,U+3043,U+3045,U+3047,U+3049,U+304e,U+3056,U+305c,U+3062,U+306c,U+3071-3072,U+3074,U+3077,U+307a-307d,U+3083,U+3085,U+308e,U+3090-3091,U+3094-30a0,U+30a5,U+30a7,U+30ae,U+30b2,U+30be,U+30c0,U+30c2,U+30c4-30c5,U+30cc,U+30cf,U+30d2,U+30d4,U+30e4,U+30e8,U+30ee,U+30f0-30f2,U+30f4-30f5,U+30f7-30fa,U+30fd-4dff,U+4e01-4e08,U+4e0c,U+4e0e-4e15,U+4e17-4e20,U+4e22-4e2c,U+4e2e-4e37,U+4e39-4e3a,U+4e3c-4e85,U+4e87-4e8b,U+4e8d-4ea3,U+4ea5-4eb9,U+4ebb-4ec9,U+4ecc-4efa,U+4efc-4f00,U+4f02-4f0d,U+4f0f-4f19,U+4f1b-4f1c,U+4f1e-4f4c,U+4f4f-4f52,U+4f54-4f58,U+4f5a-4f5b,U+4f5d-4f7e,U+4f80-4f9c,U+4f9e-4fdc,U+4fde-500a,U+500c-5023,U+5025-505b,U+505d-5073,U+5075-5098,U+509a-50ce,U+50d0-5129,U+512b-5142,U+5144-5147,U+514a-5164,U+5166-5167,U+5169-516b,U+516d-5170,U+5172-5176,U+5178-5184,U+5186-518c,U+518e-5198,U+519a-51f9,U+51fb-5205,U+5208-5216,U+5218-521c,U+521e-5223,U+5226-522f,U+5231-5235,U+5237-524c,U+524e-52d4,U+52d6-52de,U+52e0-536f,U+5371-5399,U+539b-539e,U+53a0-53c1,U+53c3-53d5,U+53d8-53e2,U+53e4-53ee,U+53f1-53f2,U+53f4-5407,U+5409-540b,U+540d-5410,U+5412-541a,U+541c-5449,U+544b-5467,U+5469-547b,U+547d-54c0,U+54c2-554e,U+5550-5673,U+5675-56dd,U+56df-56f1,U+56f3-56f9,U+56fb-5746,U+5748-578a,U+578c-57f9,U+57fb-5833,U+5835-5856,U+5858-5882,U+5884-58c0,U+58c2-58ef,U+58f1,U+58f3-5908,U+590a-590e,U+5910-5915,U+5917-5926,U+5928-592d,U+592f-5964,U+5966-597c,U+597e-59ca,U+59cc-5b4f,U+5b51-5b56,U+5b59-5b87,U+5b89-5b8b,U+5b8d-5b99,U+5b9b-5b9e,U+5ba0-5bb5,U+5bb7-5bbe,U+5bc0-5bc3,U+5bc5-5bf7,U+5bf9-5c01,U+5c03-5c0d,U+5c10,U+5c12-5c39,U+5c3b-5c49,U+5c4c-5c54,U+5c56-5c63,U+5c65-5cf5,U+5cf7-5de0,U+5de2-5ded,U+5def-5e01,U+5e03-5e2f,U+5e31-5e37,U+5e39-5e3c,U+5e3e-5e72,U+5e74-5e78,U+5e7a-5e82,U+5e84-5e96,U+5e98-5ea5,U+5ea7-5ef9,U+5efb-5f0e,U+5f10-5f14,U+5f16-5f52,U+5f54-5f61,U+5f63-5f70,U+5f72-5f78,U+5f7a-5f84,U+5f86-5f8b,U+5f8d-5f96,U+5f98-5fa8,U+5faa-5fc2,U+5fc4-601c,U+601e-60c4,U+60c6-610e,U+6110-611e,U+6120-614a,U+614c-620f,U+6211-6237,U+6239-623a,U+623c-623e,U+6241-624a,U+624c-62bb,U+62bd-62c4,U+62c6-62e0,U+62e2-6300,U+6302-6306,U+6308-631e,U+6320-639a,U+639c-63a4,U+63a6-63b1,U+63b3-63c2,U+63c4-63ce,U+63d1-63d9,U+63dc-63f3,U+63f5-6439,U+643b-64ad,U+64af-64cc,U+64ce-652e,U+6530-6538,U+653a-653d,U+653f-6562,U+6564-6573,U+6575-6586,U+6588,U+658a-6598,U+659a-65ac,U+65ae-65af,U+65b1-65b8,U+65ba-65e1,U+65e3-65e4,U+65e6-660d,U+660f-661f,U+6621-6641,U+6643-666e,U+6670-6695,U+6697-66f1,U+66f3,U+66f5-66f7,U+66f9-66fe,U+6701-6708,U+670a-670c,U+670e-671c,U+671e,U+6720-6727,U+6729,U+672b,U+672e-674f,U+6751-6764,U+6766-677e,U+6780-678f,U+6791-67b5,U+67b7-67d3,U+67d5-6829,U+682b-6838,U+683a-6847,U+6849-68b0,U+68b2-697c,U+697e-69ca,U+69cc-69d7,U+69d9-6a18,U+6a1a-6a20,U+6a22-6a29,U+6a2b-6b20,U+6b22-6b4b,U+6b4d-6b61,U+6b64-6b68,U+6b6b-6b8a,U+6b8c-6bb4,U+6bb6-6bd3,U+6bd5-6c16,U+6c18-6c33,U+6c35-6cbe,U+6cc0-6cd4,U+6cd6-6ce1,U+6ce3-6d3a,U+6d3c-6d40,U+6d42-6d6d,U+6d6f-6d76,U+6d78-6de0,U+6de2-6df0,U+6df2-6dfa,U+6dfc-6e07,U+6e09-6e0a,U+6e0c-6e20,U+6e22-6e8f,U+6e91-6e95,U+6e97-6f13,U+6f15-70b8,U+70ba-7135,U+7137-7166,U+7168-71b0,U+71b2-7268,U+726a-72b5,U+72b7-72eb,U+72ed-7383,U+7385-73fd,U+73ff-7405,U+7407-74e5,U+74e7-751e,U+7520-7527,U+7529-7539,U+753c-754b,U+754d-7569,U+756b-7679,U+767b-767c,U+767e-7683,U+7685-76ed,U+76ef-76f3,U+76f5-76f7,U+76f9-770a,U+770c-771e,U+7720-773f,U+7741-77ab,U+77ad-77e1,U+77e3-77ec,U+77ee-78b9,U+78bb-7939,U+793b-793d,U+793f-796c,U+796e-79c0,U+79c2-79d7,U+79d9-79fa,U+79fc-7a79,U+7a7b-7a92,U+7a94-7aca,U+7acc-7b25,U+7b27-7b48,U+7b4a-7b96,U+7b98-7bc3,U+7bc5-7bc8,U+7bca-7d03,U+7d05-7d18,U+7d1a-7d1f,U+7d21-7d2f,U+7d31-7d38,U+7d3a-7d41,U+7d43-7d4b,U+7d4d-7d4f,U+7d51-7d74,U+7d76-7d98,U+7d9b-7dac,U+7dae-7dd1,U+7dd3-7dd9,U+7ddb-7e00,U+7e02-7e25,U+7e27-7e6f,U+7e71-7f6d,U+7f6f-7f8d,U+7f8f-8002,U+8004,U+8006-8073,U+8075-808b,U+808d-80cb,U+80cd-816f,U+8171-819c,U+819e-81e9,U+81eb-8216,U+8218-821d,U+821f-8271,U+8273-82b0,U+82b2-853c,U+853e-8583,U+8585-884b,U+884d-8856,U+8858-8867,U+8869-88ce,U+88d0-88db,U+88dd-898a,U+898c-898e,U+8990-8995,U+8997-89a6,U+89a8-89b2,U+89b4-89d1,U+89d3-89e2,U+89e4-89e5,U+89e7-8a07,U+8a09-8a2c,U+8a2e-8a30,U+8a32-8a5d,U+8a5f-8a70,U+8a72-8a8c,U+8a8e-8a97,U+8a99-8a9d,U+8a9f-8aab,U+8aae-8ac6,U+8ac8-8b1c,U+8b1e-8b57,U+8b59-8c36,U+8c38-8c60,U+8c62-8caa,U+8cac-8cbb,U+8cbd-8ce9,U+8ceb-8d76,U+8d78-8d89,U+8d8b-8db2,U+8db4-8ddc,U+8dde-8dee,U+8df0-8df2,U+8df4-8eaa,U+8eac-8f08,U+8f0a-8f29,U+8f2b-8fbb,U+8fbd-8fcd,U+8fcf-8fd0,U+8fd2-8fd3,U+8fd5-9000,U+9002-900e,U+9010-9019,U+901b-901f,U+9021-9031,U+9033-9052,U+9055-905f,U+9061-906d,U+906f-9077,U+9079-907e,U+9080-90e7,U+90e9-90ec,U+90ee-90fc,U+90fe-91cc,U+91ce,U+91d0-9576,U+9578-9588,U+958a,U+958c-9592,U+9594-95a1,U+95a3-9662,U+9664-969a,U+969c-969f,U+96a1-96c5,U+96c7-96e1,U+96e3-96f1,U+96f3-9758,U+975a-975d,U+975f-9761,U+9763-97f2,U+97f4-9805,U+9807-984b,U+984d-9853,U+9855-9866,U+9868-98da,U+98dc-9927,U+9929-9ad7,U+9ad9-9ed1,U+9ed3-ff00,U+ff02-ff05,U+ff07,U+ff0a-ff0e,U+ff10-ff19,U+ff1b-ff1e,U+ff20-ff5b,U+ff5d-10ffff}
@font-face{font-family:"Town Rounded";src:url("../fonts/town-rounded-700-current.woff2") format("woff2");font-style:normal;font-weight:700 900;font-display:swap;unicode-range:U+a,U+d,U+20-7e,U+a9,U+b7,U+d7,U+2019,U+2026,U+2190-2192,U+2197,U+2460-2462,U+25b6,U+3001-3002,U+300c-300d,U+3010-3011,U+3042,U+3044,U+3046,U+3048,U+304a-304d,U+304f-3055,U+3057-305b,U+305d-3061,U+3063-306b,U+306d-3070,U+3073,U+3075-3076,U+3078-3079,U+307e-3082,U+3084,U+3086-308d,U+308f,U+3092-3093,U+30a1-30a4,U+30a6,U+30a8-30ad,U+30af-30b1,U+30b3-30bd,U+30bf,U+30c1,U+30c3,U+30c6-30cb,U+30cd-30ce,U+30d0-30d1,U+30d3,U+30d5-30e3,U+30e5-30e7,U+30e9-30ed,U+30ef,U+30f3,U+30f6,U+30fb-30fc,U+4e00,U+4e09-4e0b,U+4e0d,U+4e16,U+4e21,U+4e2d,U+4e38,U+4e3b,U+4e86,U+4e8c,U+4ea4,U+4eba,U+4eca-4ecb,U+4efb,U+4f01,U+4f0e,U+4f1a,U+4f1d,U+4f4d-4f4e,U+4f53,U+4f59,U+4f5c,U+4f7f,U+4f9d,U+4fdd,U+500b,U+5024,U+505c,U+5074,U+5099,U+50cf,U+512a,U+5143,U+5148-5149,U+5165,U+5168,U+516c,U+5171,U+5177,U+5185,U+518d,U+5199,U+51fa,U+5206-5207,U+5217,U+521d,U+5224-5225,U+5230,U+5236,U+524d,U+52d5,U+52df,U+5370,U+539a,U+539f,U+53c2,U+53d6-53d7,U+53e3,U+53ef-53f0,U+53f3,U+5408,U+540c,U+5411,U+541b,U+544a,U+5468,U+547c,U+54c1,U+554f,U+5674,U+56de,U+56f2,U+56fa,U+5747,U+578b,U+57fa,U+5834,U+5857,U+5883,U+58c1,U+58f0,U+58f2,U+5909,U+590f,U+5916,U+5927,U+592e,U+5965,U+597d,U+59cb,U+5b50,U+5b57-5b58,U+5b88,U+5b8c,U+5b9a,U+5b9f,U+5bb6,U+5bbf,U+5bc4,U+5bf8,U+5c02,U+5c0e-5c0f,U+5c11,U+5c3a,U+5c4a-5c4b,U+5c55,U+5c64,U+5cf6,U+5de1,U+5dee,U+5e02,U+5e30,U+5e38,U+5e3d,U+5e73,U+5e79,U+5e83,U+5e97,U+5ea6,U+5efa,U+5f0f,U+5f15,U+5f53,U+5f62,U+5f71,U+5f79,U+5f85,U+5f8c,U+5f97,U+5fa9,U+5fc3,U+601d,U+60c5,U+610f,U+611f,U+614b,U+6210,U+6238,U+623b,U+623f-6240,U+624b,U+62bc,U+62c5,U+62e1,U+6301,U+6307,U+631f,U+639b,U+63a5,U+63b2,U+63c3,U+63cf-63d0,U+63da-63db,U+63f4,U+643a,U+64ae,U+64cd,U+652f,U+6539,U+653e,U+6563,U+6574,U+6587,U+6589,U+6599,U+65ad,U+65b0,U+65b9,U+65e2,U+65e5,U+660e,U+6620,U+6642,U+666f,U+6696,U+66f2,U+66f4,U+66f8,U+66ff-6700,U+6709,U+670d,U+671d,U+671f,U+6728,U+672a,U+672c-672d,U+6750,U+6765,U+677f,U+6790,U+67b6,U+67d4,U+682a,U+6839,U+6848,U+68b1,U+697d,U+69cb,U+69d8,U+6a19,U+6a21,U+6a2a,U+6b21,U+6b4c,U+6b62-6b63,U+6b69-6b6a,U+6b8b,U+6bb5,U+6bd4,U+6c17,U+6c34,U+6cbf,U+6cd5,U+6ce2,U+6d3b,U+6d41,U+6d6e,U+6d77,U+6de1,U+6df1,U+6dfb,U+6e08,U+6e0b,U+6e21,U+6e90,U+6e96,U+6f14,U+70b9,U+7136,U+7167,U+71b1,U+7269,U+72b6,U+72ec,U+7384,U+73fe,U+7406,U+74e6,U+751f,U+7528,U+753a-753b,U+754c,U+756a,U+767a,U+767d,U+7684,U+76ee,U+76f4,U+76f8,U+770b,U+771f,U+7740,U+77ac,U+77e2,U+77ed,U+78ba,U+793a,U+793e,U+796d,U+79c1,U+79d8,U+79fb,U+7a7a,U+7a93,U+7acb,U+7b26,U+7b49,U+7b97,U+7bc4,U+7bc9,U+7d04,U+7d19,U+7d20,U+7d30,U+7d39,U+7d42,U+7d4c,U+7d50,U+7d75,U+7d99-7d9a,U+7dad,U+7dd2,U+7dda,U+7e01,U+7e26,U+7e70,U+7f6e,U+7f8e,U+8003,U+8005,U+8074,U+808c,U+80cc,U+8170,U+819d,U+81ea,U+8217,U+821e,U+8272,U+82b1,U+853d,U+8584,U+884c,U+8857,U+8868,U+88cf,U+88dc,U+898b,U+898f,U+8996,U+89a7,U+89b3,U+89d2,U+89e3,U+89e6,U+8a08,U+8a2d,U+8a31,U+8a5e,U+8a71,U+8a8d,U+8a98,U+8a9e,U+8aac-8aad,U+8ac7,U+8b1d,U+8b58,U+8c37,U+8c61,U+8cab,U+8cbc,U+8cea,U+8d77,U+8d8a,U+8db3,U+8ddd,U+8def,U+8df3,U+8eab,U+8f09,U+8f2a,U+8fbc,U+8fce,U+8fd1,U+8fd4,U+9001,U+900f,U+901a,U+9020,U+9032,U+9053-9054,U+9060,U+906e,U+9078,U+907f,U+90e8,U+90ed,U+90fd,U+91cd,U+91cf,U+9577,U+9589,U+958b,U+9593,U+95a2,U+9663,U+969b,U+96a0,U+96c6,U+96e2,U+96f2,U+9759,U+975e,U+9762,U+97f3,U+9806,U+984c,U+9854,U+9867,U+98db,U+9928,U+9ad8,U+9ed2,U+ff01,U+ff06,U+ff08-ff09,U+ff0f,U+ff1a,U+ff1f,U+ff5c}
@charset "UTF-8";
/* 最初の描画から小人が待ち時間を案内し、描画済みの町へつなぐ。 */
#town-loader{background:radial-gradient(ellipse at 50% 46%,#fff9ea 0,#f4efdf 68%);opacity:1;transition:opacity .22s ease-out;touch-action:none}
#town-loader.is-leaving{opacity:0}
.loading-scene{position:relative;display:flex;flex-direction:column;align-items:center;width:min(340px,calc(100vw - 48px));padding-top:30px;transform:translateY(-12px);user-select:none}
.loading-bubble{position:relative;width:100%;padding:25px 16px 23px;border:2px solid #43535c;border-radius:2px 1px 3px 1px;background:#f7f8f5;box-shadow:4px 5px 0 #7a919a,5px 6px 0 1px #43535c;text-align:center;z-index:1}
.loading-bubble:after{content:"";position:absolute;left:50%;bottom:-9px;width:14px;height:14px;transform:translateX(-50%) rotate(45deg);background:#f7f8f5;border-right:2px solid #43535c;border-bottom:2px solid #43535c}
.loading-speaker{position:absolute;left:12px;top:-25px;min-width:74px;padding:4px 14px;border:2px solid #43535c;background:#64b8db;color:#fffef4;box-shadow:2px 3px 0 #79919a;font-size:16px;font-weight:700;line-height:1.5;transform:rotate(-2deg)}
.loading-bubble p{font-size:clamp(17px,4.8vw,21px);font-weight:700;line-height:1.6;white-space:nowrap;letter-spacing:.015em}
.loading-bubble p span{opacity:0;animation:loading-letter .01s steps(1,end) forwards;animation-delay:calc(.12s + var(--letter)*.055s)}
.loading-gnome{display:block;position:relative;z-index:1;width:144px;height:180px;object-fit:contain;margin-top:27px;transform-origin:50% 100%;animation:loading-breathe 2.4s ease-in-out infinite}
.loading-shadow{display:block;width:91px;height:11px;margin-top:-5px;border-radius:50%;background:#465e5324;filter:blur(2px)}
@keyframes loading-letter{to{opacity:1}}
@keyframes loading-breathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}}
@media(max-height:460px){.loading-scene{transform:none}.loading-gnome{width:96px;height:120px;margin-top:20px}.loading-bubble{padding:18px 14px}.loading-shadow{width:65px}}
@media(prefers-reduced-motion:reduce){#town-loader{transition:none}.loading-gnome,.loading-bubble p span{animation:none;opacity:1}}
/* ENTERで町に入ると、導入と同じ立体ロゴがそっと上がる。 */
.town-logo{position:fixed;z-index:12;top:max(22px,env(safe-area-inset-top));left:max(28px,env(safe-area-inset-left));width:clamp(148px,13vw,194px);pointer-events:none;user-select:none;opacity:0;visibility:hidden;transform:translateY(18px);transition:opacity .85s ease-out,transform .85s cubic-bezier(.2,.7,.2,1)}
.playing .town-logo{opacity:1;visibility:visible;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.town-logo{transition:none}}
.town-logo img{display:block;width:100%;height:auto;pointer-events:none}
@media(max-width:820px){.town-logo{top:max(18px,env(safe-area-inset-top));left:max(18px,env(safe-area-inset-left));width:120px;max-width:calc(100vw - 212px)}}
@media(max-width:350px){.town-logo{top:max(15px,env(safe-area-inset-top));left:max(15px,env(safe-area-inset-left))}}
:root{--paper:#f4efdf;--ink:#24433f;--muted:#616c60;--red:#b54330;--line:#c9cebc;--serif:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif;color-scheme:light;font-family:var(--sans);color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}button{border:0;background:none}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:5px}button:hover:not(:disabled),a:hover{filter:brightness(.9)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2,h3,.primary-button{word-break:keep-all;overflow-wrap:anywhere;text-wrap:pretty}p{line-height:1.9}svg{fill:currentColor}button i,a i{font-style:normal}h2{font-family:var(--serif);font-weight:600}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:8px;left:8px;z-index:100;background:var(--paper);padding:15px;transform:translateY(-150%)}.skip-link:focus{transform:none}
.masthead{position:absolute;z-index:12;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:28px 3.8vw;pointer-events:none}.masthead>*{pointer-events:auto}.wordmark{display:flex;align-items:center;gap:7px;min-height:44px}.wordmark svg{width:33px;height:39px}.wordmark span{font-family:Georgia,serif;font-size:14px;line-height:.94;letter-spacing:1.8px}.wordmark b{font-size:23px;letter-spacing:2.7px;font-weight:500}.masthead nav{display:flex;align-items:center;gap:18px}.text-button{display:flex;align-items:center;gap:24px;font-size:13px;min-height:44px;padding:0 8px;border-bottom:1px solid var(--ink)}.text-button span{font-size:22px}.round-button{width:46px;height:46px;border:1px solid var(--ink);border-radius:50%;background:var(--paper);font:24px Georgia,serif;display:grid;place-items:center}.kicker{font-size:11px;letter-spacing:.19em;font-weight:600}.fine{font-size:11px;color:var(--muted);line-height:1.7}.primary-button{display:flex;justify-content:space-between;align-items:center;gap:28px;border-radius:2px 24px 24px 2px;min-height:56px;padding:12px 22px;background:var(--ink);color:var(--paper);font-size:14px;letter-spacing:.04em;text-align:left}.primary-button i{font-size:24px;font-weight:400}.small-button{border-bottom:1px solid var(--ink);min-height:44px;font-size:12px;padding:6px 12px}
#world{position:absolute;inset:0 0 auto;height:100svh;min-height:680px;background:#f4efdf;pointer-events:none}#world:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--paper),#f4efdfbb 28%,#f4efdf00 70%)}#world canvas{display:block;width:100%;height:100%;position:relative;z-index:1;touch-action:none;outline:none}.enhanced #world{position:fixed;height:100dvh;min-height:0;background:#c4d9c5;pointer-events:auto}.enhanced #world:after{display:none}#hero{position:relative;min-height:680px;height:100svh;overflow:hidden}.hero-copy{position:absolute;top:50%;left:7%;transform:translateY(-48%);z-index:2}.hero-copy h1{font-family:var(--serif);font-size:clamp(58px,6.15vw,100px);font-weight:600;line-height:1.34;letter-spacing:-.075em;margin:24px 0 22px}.hero-copy h1 span{padding-left:1.1em}.hero-description{font-size:13px;letter-spacing:.1em;margin-bottom:33px}.hero-copy .primary-button{width:245px}.hero-copy .fine{min-height:20px;margin-top:12px}.intro-caption{position:absolute;right:6%;bottom:12%;display:flex;align-items:center;gap:14px;font-family:var(--serif);font-size:15px;line-height:1.6}.sun{font-size:35px}.edition{position:absolute;bottom:26px;left:3.8vw;font:9px Georgia,serif;letter-spacing:.2em}.enhanced:not(.reading){height:100dvh;overflow:hidden}.enhanced #hero{height:100dvh;min-height:0;pointer-events:none}.enhanced .hero-copy{pointer-events:auto}.enhanced #guide{display:none}.playing #hero{display:none}.enhanced.reading{overflow:auto;height:auto}.reading #world,.reading #hero,.reading #walk-ui{display:none!important}.reading .masthead{position:relative;background:var(--paper)}.reading #guide{display:block}.reading #guide-open{display:none}
#walk-ui{position:fixed;inset:0;pointer-events:none;z-index:4}#walk-ui button,#walk-ui a,#joystick{pointer-events:auto}.place-label{position:absolute;top:110px;left:3.8vw;display:flex;align-items:center;gap:9px;font-size:12px;text-shadow:0 1px 4px var(--paper)}.place-dot{width:6px;height:6px;border-radius:50%;background:var(--red)}.passport-button{position:absolute;top:112px;right:3.8vw;display:flex;align-items:center;gap:13px;font-size:11px;padding:6px 12px 6px 14px;border-radius:30px;background:var(--paper);box-shadow:0 2px 1px #24433f25}.passport-label{font-size:12px}.stamp-dots{display:flex;gap:4px}.stamp-dots i{width:28px;height:28px;border:1px dashed #9caa98;border-radius:50%;display:grid;place-items:center;font:10px Georgia,serif}.stamp-dots i.stamped{border:1px solid var(--red);background:var(--red);color:var(--paper);font-style:normal}.hotspot{position:absolute;top:0;left:0;display:flex;align-items:center;gap:10px;min-height:46px;background:var(--paper);border:1px solid #43594c;border-radius:25px;padding:6px 15px 6px 7px;box-shadow:0 3px 0 #24433f40;font-size:12px;white-space:nowrap;will-change:transform}.hotspot:after{content:"";position:absolute;left:50%;bottom:-8px;width:1px;height:7px;background:var(--ink)}.shop-number{width:29px;height:29px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font:11px Georgia,serif}.hotspot.visited .shop-number{color:var(--red);border-color:var(--red)}.hotspot i{font-style:normal;font-size:18px}.walk-message{position:absolute;left:50%;bottom:31px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;min-height:48px;padding:0 18px 0 2px;border-radius:30px;background:var(--paper);font-size:12px;white-space:nowrap;box-shadow:0 2px 1px #24433f20}#camera-reset{position:absolute;right:3.8vw;bottom:31px}#cancel-route{position:absolute;bottom:91px;left:50%;transform:translateX(-50%);background:var(--paper);border-radius:22px;border:0}#near-action{position:absolute;bottom:95px;left:50%;transform:translateX(-50%);min-width:200px}#joystick{display:none;position:absolute;left:26px;bottom:39px;width:100px;height:100px;background:#f4efdf88;border:1px solid #24433f66;border-radius:50%;touch-action:none}#joystick-thumb{position:absolute;top:50%;left:50%;width:42px;height:42px;border-radius:50%;background:var(--paper);box-shadow:0 2px 0 #24433f40;transform:translate(-50%,-50%)}.idle-hint{position:absolute;bottom:110px;left:3.8vw;max-width:300px;padding:20px 30px 18px 20px;background:var(--paper);border:1px solid var(--line);pointer-events:auto;font-size:12px}.idle-hint a{display:inline-block;border-bottom:1px solid var(--ink);min-height:44px;padding-top:12px}.idle-hint button{position:absolute;top:0;right:0;width:36px;height:36px;font-size:20px}
#guide{position:relative;background:var(--paper);padding:100px 8% 0}.guide-intro{display:grid;grid-template-columns:1fr 1fr;gap:20px 12%;align-items:end}.guide-intro .kicker{grid-column:1/-1}.guide-intro h2{font-size:clamp(32px,4vw,58px);line-height:1.55}.guide-intro>div{font-size:13px;padding-bottom:7px}.guide-intro>div p+p{margin-top:14px}.table-spread{margin:58px -3% 85px}.table-spread img{width:100%;height:auto;display:block}.table-spread figcaption{font-size:11px;margin:12px 3% 0;letter-spacing:.08em}.restaurant{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:64px 0 70px}.restaurant-heading{position:relative;padding:15px 0 15px 78px}.large-number{position:absolute;top:10px;left:0;font:54px/1 Georgia,serif;color:#8caa9b}.restaurant-heading>p{font-size:12px}.restaurant-heading h2{font-size:30px;margin:14px 0 12px}.shop-roman{font:10px Georgia,serif;letter-spacing:.17em}.restaurant-content h3{font-size:17px;font-weight:600;line-height:1.8;margin-bottom:15px}.restaurant-content p{font-size:13px;line-height:2.1;max-width:36em}.restaurant dl{font-size:12px;margin:22px 0 14px}.restaurant dl>div{border-top:1px solid var(--line);padding:10px 0;display:flex;gap:24px}.restaurant dt{flex-shrink:0;width:82px;font-size:11px;color:var(--muted)}dd{margin:0;line-height:1.8}.visit-button{min-height:48px;border-bottom:1px solid var(--ink);display:flex;gap:40px;align-items:center;font-size:13px;padding:8px 4px}.visit-button span{font-size:22px}.guide-footer{border-top:1px solid var(--ink);display:flex;align-items:center;gap:30px;padding:60px 0 70px}.guide-footer h2{font-size:25px;margin-bottom:15px}.guide-footer p{font-size:11px}.guide-footer>span:last-child{margin-left:auto;align-self:flex-end;text-align:right;font:9px/1.8 Georgia,serif;letter-spacing:.15em}
dialog{border:0;background:var(--paper);color:var(--ink);padding:0;max-width:min(760px,calc(100vw - 40px));max-height:calc(100dvh - 48px);overflow:auto;box-shadow:0 20px 100px #193e3345}dialog::backdrop{background:#183c3555;backdrop-filter:blur(4px)}.dialog-close{position:absolute;top:12px;right:12px;border:1px solid #68766a55;border-radius:50%;width:44px;height:44px;font:30px Georgia,serif;background:var(--paper);z-index:2}.dialog-close:hover{background:#fff}.dish-art{display:block;width:100%;height:auto;object-fit:contain}.shop-card-content{padding:32px 46px 34px}.shop-card-content h2{font-size:32px;margin:10px 0 14px}.shop-card-content>p:not(.kicker,.fine){font-size:13px;line-height:2;max-width:38em}.dish-caption{padding:16px 0 20px;margin-top:10px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line)}.dish-caption span{font-size:11px;color:var(--muted)}.dish-caption strong{font-weight:500;font-size:13px}.shop-card-content .primary-button{width:100%}.shop-card-content .fine{margin-top:12px}.shop-card-content .primary-button.tasted{background:var(--red)}#passport-dialog,:is(#help-dialog,#guide-dialog){padding:44px 46px;width:660px;text-align:center}#passport-dialog h2,:is(#help-dialog,#guide-dialog) h2{font-size:34px;margin:16px 0 12px}#passport-dialog>p:not(.kicker,.fine){font-size:13px}.passport-stamps{display:flex;justify-content:center;gap:35px;margin:35px 0}.passport-stamps button{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:116px;padding:0}.passport-stamps button>span{display:grid;place-items:center;width:95px;height:95px;border:1px dashed #9ca794;border-radius:50%;font:36px Georgia,serif;color:#96a08e;position:relative}.passport-stamps button>span.stamped{border:3px double var(--red);color:var(--red);transform:rotate(-9deg)}.passport-stamps button>span.stamped:after{content:"VISITED";position:absolute;bottom:15px;font:8px Georgia,serif;letter-spacing:.16em}.passport-stamps b{font-size:12px;font-weight:500}.passport-stamps small{font-size:10px;color:var(--muted)}#completion-note{margin:0 0 25px}#passport-dialog .primary-button{width:100%;margin-top:20px}#passport-dialog .fine{margin-top:18px}:is(#help-dialog,#guide-dialog){text-align:left}.help-list{margin-top:35px}.help-list>div{display:grid;grid-template-columns:85px 1fr;gap:15px;border-top:1px solid var(--line);padding:16px 0;font-size:12px}.help-list dt{font-weight:600}:is(#help-dialog,#guide-dialog) .primary-button{width:100%;margin-top:25px}
@media(hover:none),(pointer:coarse){#joystick{display:block}.hotspot{min-height:48px}}@media(min-width:821px){#shop-dialog{width:640px}}
@media(max-width:820px){.masthead{padding:18px 22px}.wordmark span{font-size:11px}.wordmark b{font-size:19px}.wordmark svg{width:27px;height:35px}.masthead nav{gap:12px}.text-button{font-size:11px;gap:15px}.round-button{width:44px;height:44px}.hero-copy{top:130px;left:8%;transform:none}.hero-copy h1{font-size:66px;line-height:1.28;margin:17px 0}.hero-description{font-size:12px;margin-bottom:24px}.hero-copy .primary-button{min-height:52px;width:226px}.hero-copy .kicker{font-size:10px;letter-spacing:.08em}.intro-caption{right:6%;bottom:9%;font-size:12px}.edition{font-size:8px;left:22px;bottom:18px}.place-label{top:90px;left:22px;font-size:11px}.passport-button{top:90px;right:22px;padding:5px 8px;gap:7px}.passport-label{display:none}.stamp-dots i{width:24px;height:24px;font-size:9px}.hotspot{font-size:11px;gap:7px;padding:5px 12px 5px 5px;min-height:44px}.shop-number{width:25px;height:25px}.walk-message{bottom:22px;font-size:11px;max-width:calc(100% - 170px);white-space:normal;line-height:1.5;padding-right:12px;left:50%;min-width:170px}.walk-message span:last-child{max-width:175px}#camera-reset{right:20px;bottom:27px}#joystick{width:90px;height:90px;left:19px;bottom:92px}#cancel-route{bottom:85px;left:auto;right:18px;transform:none;font-size:11px}#near-action{bottom:105px;min-width:180px;left:auto;right:18px;transform:none}.idle-hint{left:20px;bottom:205px;max-width:265px}.guide-intro{grid-template-columns:1fr;gap:20px}.guide-intro h2{font-size:40px}.guide-intro .kicker{grid-column:auto}.guide-intro>div{font-size:12px}#guide{padding:55px 7% 0}.table-spread{margin:35px -8.1% 45px;overflow:hidden}.table-spread img{min-width:650px;width:130%;max-width:none;transform:translateX(-12%)}.table-spread figcaption{margin-left:7%;font-size:10px}.restaurant{grid-template-columns:1fr;gap:28px;padding:35px 0 42px}.restaurant-heading{padding:8px 0 8px 64px}.large-number{font-size:44px}.restaurant-heading h2{font-size:27px;margin:10px 0}.restaurant-heading>p{font-size:10px}.restaurant-content h3{font-size:16px}.restaurant-content p{font-size:12px}.restaurant dl>div{gap:12px}.restaurant dl{font-size:11px}.guide-footer{flex-wrap:wrap;gap:14px;padding:40px 0}.guide-footer h2{font-size:19px}.guide-footer>span:last-child{width:100%;margin-top:8px}.guide-footer p{font-size:10px}.guide-footer>div{flex:1}.dish-art{height:auto}.shop-card-content{padding:24px 25px}.shop-card-content h2{font-size:28px}.shop-card-content>p:not(.kicker,.fine){font-size:12px}.dish-caption{display:block;padding:15px 0}.dish-caption span{display:block;margin-bottom:6px}.dish-caption strong{font-size:12px}dialog{max-width:calc(100vw - 28px);max-height:calc(100dvh - 28px)}#passport-dialog,:is(#help-dialog,#guide-dialog){padding:40px 24px 24px}#passport-dialog h2,:is(#help-dialog,#guide-dialog) h2{font-size:28px}#passport-dialog .kicker,:is(#help-dialog,#guide-dialog) .kicker{font-size:9px}.passport-stamps{gap:14px;margin:25px 0}.passport-stamps button{min-width:0;flex:1}.passport-stamps button>span{width:72px;height:72px;font-size:28px}.passport-stamps button>span.stamped:after{bottom:9px;font-size:6px}.passport-stamps b{font-size:10px}.passport-stamps small{font-size:9px}.help-list>div{grid-template-columns:63px 1fr;gap:12px;font-size:11px}.dialog-close{top:8px;right:8px}}
@media(max-width:520px){.hero-copy{top:115px}.hero-copy h1{font-size:54px}.hero-description{font-size:11px}.intro-caption{bottom:15%;right:7%}.sun{font-size:28px}.hero-copy .primary-button{width:213px}.enhanced #hero .hero-copy{z-index:2}.hero-copy .fine{font-size:9px}.hero-copy .kicker{font-size:9px}}
@media(max-height:680px){.hero-copy{top:105px;transform:none}.hero-copy h1{font-size:clamp(42px,5.6vw,70px);margin:12px 0}.hero-description{margin-bottom:16px}.hero-copy .primary-button{min-height:48px}.intro-caption{bottom:10%}.dish-art{height:auto}.shop-card-content{padding-top:18px;padding-bottom:18px}.shop-card-content h2{margin:8px 0}.shop-card-content .fine{margin-top:8px}.shop-card-content .primary-button{min-height:48px}.dish-caption{padding:10px 0}.passport-stamps{margin:20px 0}#passport-dialog,:is(#help-dialog,#guide-dialog){padding-top:33px}.idle-hint{bottom:195px}.place-label,.passport-button{top:82px}}
@media(max-width:350px){.hero-copy{left:7%;top:105px}.hero-copy h1{font-size:44px}.hero-copy .kicker{font-size:8px}.hero-description{font-size:10px}.hero-copy .primary-button{min-height:46px;width:192px;font-size:12px}.masthead{padding:14px 17px}.masthead nav{gap:7px}.text-button{font-size:10px;gap:8px}.place-label{left:17px}.passport-button{right:17px}.guide-footer h2{font-size:17px}.hotspot{font-size:10px}.hotspot .shop-number{display:none}.walk-message{min-width:155px;font-size:10px;bottom:18px}.passport-stamps{gap:9px}.passport-stamps button>span{width:66px;height:66px}.shop-card-content{padding:20px}.shop-card-content h2{font-size:24px}#passport-dialog,:is(#help-dialog,#guide-dialog){padding-left:19px;padding-right:19px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.playing:not(.reading) .masthead .wordmark{padding:7px 10px;border-radius:8px;background:#f4efdfed}
.playing:not(.reading) .masthead .text-button{padding:0 16px;border:1px solid #24433f35;border-radius:24px;background:#f4efdfed}
.playing .place-label{padding:5px 10px;border-radius:18px;background:#f4efdfed;text-shadow:none}
.enhanced #load-note{display:table;padding:4px 8px;border-radius:4px;background:#f4efdfdf;font-size:12px;color:var(--ink);letter-spacing:0;max-width:290px}
@media(max-width:820px){.playing:not(.reading) .masthead .wordmark{padding:6px 8px}.playing:not(.reading) .masthead .text-button{padding:0 11px}.enhanced #load-note{font-size:11px;max-width:225px}}
@media(min-width:821px){.walk-message{left:3.8vw;transform:none;width:300px;max-width:calc(100vw - 140px);padding:6px 14px 6px 8px;gap:8px;border-radius:24px;white-space:normal;line-height:1.6}}
/* 町とキャラクターを主役にする、最小の案内。 */
:root{--sans:"Town Rounded","Hiragino Maru Gothic ProN","BIZ UDPGothic",Meiryo,sans-serif;--serif:var(--sans);font-family:var(--sans)}
body,button,h1,h2,h3,p,dl{font-family:var(--sans)}
h2,h3{font-weight:700}
.masthead,.reading .masthead{position:fixed;inset:24px 28px auto auto;display:block;padding:0;background:none;z-index:12}
.masthead nav{display:block}
:is(#help-open,#guide-open,#bgm-toggle){width:54px;height:54px;border:3px solid #5d503d;border-radius:48% 52% 45% 55%;background:#fff1d2;color:#4b4836;box-shadow:0 4px 0 #594f3b50;font:700 29px/1 var(--sans);transform:rotate(4deg)}
:is(#help-open,#guide-open,#bgm-toggle):hover{transform:rotate(-4deg)}
#hero,.enhanced #hero{min-height:0;height:100svh}
body:not(.enhanced):not(.preparing) #hero-title{position:absolute;top:24%;left:50%;width:auto;height:auto;clip:auto;overflow:visible;white-space:nowrap;transform:translateX(-50%);font-size:clamp(30px,6vw,62px);font-weight:700;letter-spacing:.04em;text-shadow:0 2px 12px #fff1d2}
.enter-panel{position:absolute;z-index:2;left:50%;bottom:12%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:15px;min-width:230px;pointer-events:auto}
.enter-button{position:relative;width:260px;min-height:80px;padding:14px 35px;border:3px solid #5d503d;border-radius:13px 17px 12px 15px;background:#ffd44f;color:#3e3524;box-shadow:inset 0 2px 0 #fff4b8,0 7px 0 #af7d25,0 12px 18px #31443735;font-size:31px;font-weight:700;line-height:1.3;letter-spacing:.06em;white-space:nowrap;transform:rotate(-1.5deg);transition:transform .15s,box-shadow .15s,background-color .15s}
.enter-button:before,.enter-button:after{content:"";position:absolute;top:50%;width:7px;height:7px;margin-top:-3px;border-radius:50%;background:#967041;box-shadow:inset 0 1px 1px #49392455}
.enter-button:before{left:15px}.enter-button:after{right:15px}
.enter-button:hover:not(:disabled){background:#ffe27a;transform:translateY(-2px) rotate(-1deg);filter:none}
.enter-button:focus-visible{outline:3px solid #fff9e8;outline-offset:5px}
.enter-button:active:not(:disabled){transform:translateY(4px) rotate(-1deg);box-shadow:inset 0 2px 0 #fff4b8,0 3px 0 #af7d25}
.enter-button:disabled{opacity:.65}
#load-note,.enhanced #load-note{display:block;max-width:290px;margin:0;padding:4px 10px;background:#fff1d2e8;border-radius:8px;color:#4b4836;font-size:12px}
#load-note:empty{display:none}
#walk-ui,#passport-dialog{display:none!important}
#speech-layer{position:fixed;inset:0;z-index:8;pointer-events:none}
#speech-bubble{position:absolute;left:50%;top:auto;bottom:max(48px,9vh);transform:translateX(-50%);width:min(700px,calc(100vw - 84px));max-width:none;min-height:128px;padding:31px 58px 30px;border:2px solid #43535c;border-radius:2px 1px 3px 1px;background:#f7f8f5;color:#252d30;box-shadow:5px 6px 0 #7a919a,6px 7px 0 1px #43535c;pointer-events:none}
#speech-bubble:after{content:none}
#speech-speaker{position:absolute;left:-25px;top:-63px;display:grid;place-items:center;min-width:155px;min-height:68px;padding:11px 23px;border:2px solid #43535c;border-radius:1px;background:#64b8db;color:#fffef4;box-shadow:4px 5px 0 #79919a,5px 6px 0 1px #43535c;font-size:25px;font-weight:700;line-height:1.4;letter-spacing:.04em;text-shadow:2px 2px 0 #385767;transform:rotate(-.8deg)}
#speech-text{position:relative;z-index:1;font-size:22px;font-weight:700;line-height:1.55;letter-spacing:.02em;white-space:pre-line;overflow-wrap:anywhere}
#speech-text>.speech-phrase{display:inline-block;white-space:nowrap}
#speech-text .speech-letter{display:inline;white-space:pre;transition:none}
#speech-next{position:absolute;right:-23px;bottom:-35px;width:64px;height:68px;padding:0;border:2px solid #43535c;border-radius:2px;background:#f7f8f5;box-shadow:4px 5px 0 #7a919a,5px 6px 0 1px #43535c;transform:rotate(-1.5deg);pointer-events:auto;touch-action:manipulation}
#speech-next:before,#speech-next:after{content:"";position:absolute;top:50%;left:50%;clip-path:polygon(0 0,100% 50%,0 100%);transform:translate(-43%,-50%);border-radius:3px}
#speech-next:before{width:29px;height:41px;background:#43535c}
#speech-next:after{width:24px;height:34px;background:#64b8db}
#speech-next:hover:not(:disabled){filter:none;background:#fff;transform:rotate(-1.5deg) translateY(-2px)}
#speech-next:active:not(:disabled){transform:rotate(-1.5deg) translate(2px,3px);box-shadow:2px 2px 0 #7a919a,3px 3px 0 1px #43535c}
.dialog-open #speech-layer{visibility:hidden}
dialog{border:3px solid #6e6248;border-radius:22px;box-shadow:0 14px 65px #1d34264d;background:#fff5df}
dialog::backdrop{background:#19362d44;backdrop-filter:blur(3px)}
.dialog-close{border:2px solid #7a6c50;background:#fff1d2;font-family:var(--sans)}
.primary-button{border-radius:14px;background:#567563;font-weight:700}
.dish-art{border-radius:0}
:is(#help-dialog,#guide-dialog){width:790px;padding:36px 34px 30px}
:is(#help-dialog,#guide-dialog) h2{font-size:30px;margin:0 55px 18px 0}
.help-list{margin:0 0 26px}.help-list>div{grid-template-columns:60px 1fr;gap:14px;font-size:13px;line-height:1.8;padding:12px 0}
.enhanced :is(#help-dialog,#guide-dialog) #guide{display:block}
:is(#help-dialog,#guide-dialog) #guide{padding:0;background:none;outline:0}
:is(#help-dialog,#guide-dialog) .guide-intro,:is(#help-dialog,#guide-dialog) .table-spread{display:none}
:is(#help-dialog,#guide-dialog) .restaurant{grid-template-columns:200px 1fr;gap:8px 24px;padding:24px 0 28px}
.guide-shop-art{display:block;width:100%;height:auto;grid-column:1;grid-row:1/3;align-self:start;border-radius:15px}
:is(#help-dialog,#guide-dialog) .guide-shop-art{display:block;grid-column:1;grid-row:1/3;width:100%;height:auto;align-self:start;border:1px solid #c9be9d;border-radius:15px}
:is(#help-dialog,#guide-dialog) .restaurant-heading{grid-column:2;padding:0}
:is(#help-dialog,#guide-dialog) .large-number,:is(#help-dialog,#guide-dialog) .shop-roman{display:none}
:is(#help-dialog,#guide-dialog) .restaurant-heading>p{font-size:11px}
:is(#help-dialog,#guide-dialog) .restaurant-heading h2{font-size:24px;margin:7px 0 3px}
:is(#help-dialog,#guide-dialog) .restaurant-content{grid-column:2}
:is(#help-dialog,#guide-dialog) .restaurant-content h3,:is(#help-dialog,#guide-dialog) .restaurant dl{display:none}
:is(#help-dialog,#guide-dialog) .restaurant-content p{font-size:12px;line-height:1.9}
:is(#help-dialog,#guide-dialog) .visit-button{width:100%;justify-content:space-between;gap:16px;min-height:44px;margin-top:10px;font-size:12px;font-weight:700}
:is(#help-dialog,#guide-dialog) .guide-footer{padding:23px 0 0;border-color:var(--line)}
:is(#help-dialog,#guide-dialog) .guide-footer>span:last-child,:is(#help-dialog,#guide-dialog) .guide-footer h2{display:none}
:is(#help-dialog,#guide-dialog) .guide-footer p{font-size:11px}
:is(#help-dialog,#guide-dialog)>.primary-button{margin-top:24px}
#shop-dialog .shop-card-content h2{font-size:30px}
#shop-dialog .shop-card-content{padding:28px 34px 30px}
#shop-dialog .dish-caption{font-size:13px}
@media(max-width:820px){
 .masthead,.reading .masthead{top:18px;right:18px}:is(#help-open,#guide-open,#bgm-toggle){width:48px;height:48px;font-size:26px}
 .enter-panel{bottom:11%;min-width:230px}.enter-button{width:230px;min-height:74px;font-size:28px}
 #speech-bubble{width:calc(100vw - 50px);max-width:600px;min-height:122px;padding:27px 24px 29px;bottom:max(43px,8vh);border-radius:2px}
 #speech-speaker{left:-10px;top:-49px;min-width:128px;min-height:54px;padding:9px 18px;font-size:20px}
 #speech-text{font-size:18px;line-height:1.6}
 #speech-next{right:-11px;bottom:-29px;width:53px;height:56px}
 #speech-next:before{width:24px;height:34px}#speech-next:after{width:19px;height:27px}
 :is(#help-dialog,#guide-dialog){padding:28px 22px 24px}:is(#help-dialog,#guide-dialog) h2{font-size:27px}
 .help-list>div{grid-template-columns:48px 1fr;gap:10px;font-size:12px}
 :is(#help-dialog,#guide-dialog) .restaurant{grid-template-columns:1fr;gap:14px;padding:22px 0}
 :is(#help-dialog,#guide-dialog) .guide-shop-art{grid-column:1;grid-row:auto;width:100%;height:auto}
 :is(#help-dialog,#guide-dialog) .restaurant-heading,:is(#help-dialog,#guide-dialog) .restaurant-content{grid-column:1}
 :is(#help-dialog,#guide-dialog) .restaurant-heading h2{font-size:24px}
 #shop-dialog .shop-card-content{padding:22px}#shop-dialog .shop-card-content h2{font-size:26px}
}
@media(max-width:350px){#speech-text{font-size:16px}#speech-bubble{padding:25px 19px 28px;min-height:118px}.enter-panel{min-width:216px}.enter-button{width:216px;min-height:70px;font-size:26px}.help-list>div{font-size:11px}}
@media(prefers-reduced-motion:reduce){.enter-button,:is(#help-open,#guide-open,#bgm-toggle){transition:none}}
/* 写真の自然な縦横比を、ガイドと入店画面の両方で保つ。 */
#shop-art{display:block;width:100%;height:auto;max-width:100%;background:none;object-fit:contain}
#guide>.restaurant{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 48px;align-items:start}
#guide>.restaurant>.restaurant-heading,#guide>.restaurant>.restaurant-content{grid-column:2}
:is(#help-dialog,#guide-dialog) #guide>.restaurant{grid-template-columns:200px minmax(0,1fr);gap:8px 24px}
@media(max-width:820px){#guide>.restaurant,:is(#help-dialog,#guide-dialog) #guide>.restaurant{grid-template-columns:minmax(0,1fr);gap:18px}#guide>.restaurant>.guide-shop-art,#guide>.restaurant>.restaurant-heading,#guide>.restaurant>.restaurant-content{grid-column:1;grid-row:auto}}

/* ガイドの行き先は、町の店看板と同じ色の押せる札に。 */
[data-station="fish"]{--guide-accent:#235a6c;--guide-shadow:#163d49}
[data-station="fire"]{--guide-accent:#a94e35;--guide-shadow:#733925}
[data-station="cafe"]{--guide-accent:#4b6c50;--guide-shadow:#324b36}
.visit-button,:is(#help-dialog,#guide-dialog) .visit-button{display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:60px;margin:17px 0 5px;padding:10px 13px;gap:12px;border:2px solid #34453d;border-radius:7px 3px 8px 3px;background:var(--guide-accent,#235a6c);color:#fff9ec;box-shadow:3px 4px 0 var(--guide-shadow,#163d49),inset 0 1px 0 #ffffff30;font-size:14px;font-weight:700;line-height:1.5;letter-spacing:.025em;white-space:nowrap;text-align:left;transition:transform .15s,box-shadow .15s,background-color .15s}
.visit-button:before{content:"";flex:none;width:25px;height:30px;background:currentColor;opacity:.95;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 34'%3E%3Cellipse cx='8' cy='9' rx='4.5' ry='7' transform='rotate(-18 8 9)'/%3E%3Cellipse cx='11' cy='20' rx='3.5' ry='2.7' transform='rotate(-18 11 20)'/%3E%3Cellipse cx='23' cy='18' rx='4.5' ry='7' transform='rotate(18 23 18)'/%3E%3Cellipse cx='20' cy='29' rx='3.5' ry='2.7' transform='rotate(18 20 29)'/%3E%3C/svg%3E") center/contain no-repeat}
.visit-button span{display:grid;place-items:center;flex:none;width:35px;height:35px;margin-left:auto;border:1.5px solid #34453d;border-radius:3px;background:#fff4d9;color:var(--guide-accent,#235a6c);box-shadow:1px 2px 0 #172b3440;font-size:0}
.visit-button span:after{content:"";width:18px;height:16px;background:currentColor;clip-path:polygon(0 34%,55% 34%,55% 0,100% 50%,55% 100%,55% 66%,0 66%);transition:transform .15s}
.visit-button:hover:not(:disabled){filter:none;transform:translateY(-2px);box-shadow:3px 6px 0 var(--guide-shadow,#163d49),inset 0 1px 0 #ffffff30}
.visit-button:hover:not(:disabled) span:after{transform:translateX(2px)}
.visit-button:active:not(:disabled){transform:translate(2px,3px);box-shadow:1px 1px 0 var(--guide-shadow,#163d49)}
:is(#help-dialog,#guide-dialog)>.primary-button,#taste,#static-guide{min-height:56px;padding:10px 16px;gap:14px;border:2px solid #43535c;border-radius:6px 3px 7px 3px;background:#f7f8f5;color:#34484d;box-shadow:3px 4px 0 #9daaa5;font-size:14px;font-weight:700;line-height:1.5;transition:transform .15s,box-shadow .15s,background-color .15s}
:is(#help-dialog,#guide-dialog)>.primary-button:after,#taste:after{content:"←";display:grid;place-items:center;flex:none;width:32px;height:32px;margin-left:auto;border:1.5px solid #43535c;border-radius:3px;background:#e4eddf;color:#43535c;font-size:22px;line-height:1}
#taste>i,:is(#help-dialog,#guide-dialog)>.primary-button>i{display:none}
#static-guide{width:max-content;max-width:calc(100vw - 48px)}
#static-guide>i{display:grid;place-items:center;flex:none;width:32px;height:32px;border:1.5px solid #43535c;border-radius:3px;background:#e4eddf;font-size:21px}
:is(#help-dialog,#guide-dialog)>.primary-button:hover:not(:disabled),#taste:hover:not(:disabled),#static-guide:hover{filter:none;background:#fff;transform:translateY(-2px);box-shadow:3px 6px 0 #9daaa5}
:is(#help-dialog,#guide-dialog)>.primary-button:active:not(:disabled),#taste:active:not(:disabled),#static-guide:active{transform:translate(2px,3px);box-shadow:1px 1px 0 #9daaa5}
.visit-button:focus-visible,:is(#help-dialog,#guide-dialog)>.primary-button:focus-visible,#taste:focus-visible,#static-guide:focus-visible{outline:3px solid #277c9b;outline-offset:6px}
:is(#help-dialog,#guide-dialog)>.dialog-close,#shop-close{display:grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid #43535c;background:#f7f8f5;color:#43535c;box-shadow:2px 3px 0 #9daaa5;font-size:28px;line-height:1;transition:transform .15s,box-shadow .15s}
:is(#help-dialog,#guide-dialog)>.dialog-close:hover,#shop-close:hover{filter:none;background:#fff;transform:translateY(-1px)}
:is(#help-dialog,#guide-dialog)>.dialog-close:active,#shop-close:active{transform:translate(1px,2px);box-shadow:1px 1px 0 #9daaa5}
@media(max-width:350px){.visit-button,:is(#help-dialog,#guide-dialog) .visit-button{gap:9px;min-height:58px;padding:10px;font-size:13px}.visit-button:before{width:22px}.visit-button span{width:32px;height:32px}}

/* 指定参照の小人が操作ガイドを出迎える。元の8列×9行素材をそのまま使う。 */
.guide-welcome{display:grid;grid-template-columns:120px minmax(0,1fr);gap:22px;align-items:center;margin:3px 0 25px;padding-right:20px}
:is(#help-dialog,#guide-dialog) .guide-welcome h2{margin:0 0 9px;font-size:30px;line-height:1.45;white-space:nowrap}
.guide-welcome p{font-size:13px;line-height:1.8;color:#54675f}
.guide-host{position:relative;display:block;width:120px;aspect-ratio:12/13;isolation:isolate}
.guide-host:before{content:"";position:absolute;inset:23% 3% 7%;border-radius:50%;background:#dce8d9;z-index:-1}
.guide-host:after{content:"";position:absolute;left:20%;right:20%;bottom:0;height:7%;border-radius:50%;background:#647d6030;z-index:-1}
.guide-host-sprite{display:block;width:100%;height:100%;background-image:url('../img/cocona-idle.png');background-repeat:no-repeat;background-size:800% 900%;background-position:0% 37.5%}
:is(#help-dialog,#guide-dialog)[open] .guide-host-sprite{animation:guide-host-wave 3.8s steps(1,end) infinite}
@keyframes guide-host-wave{0%,55%,100%{background-position:0% 37.5%}62%,80%{background-position:14.285714% 37.5%}69%{background-position:28.571429% 37.5%}90%{background-position:42.857143% 37.5%}}
@media(max-width:820px){.guide-welcome{grid-template-columns:90px minmax(0,1fr);gap:12px;margin:6px 0 22px;padding-right:0}.guide-host{width:90px}:is(#help-dialog,#guide-dialog) .guide-welcome h2{font-size:clamp(19px,5.3vw,24px);margin-bottom:7px}.guide-welcome p{font-size:11px}}
@media(max-width:350px){.guide-welcome{grid-template-columns:72px minmax(0,1fr);gap:9px;margin-top:20px}.guide-host{width:72px}.guide-welcome p{font-size:10px}}
@media(prefers-reduced-motion:reduce){:is(#help-dialog,#guide-dialog)[open] .guide-host-sprite{animation:none}}

/* 操作・お店・音楽は、それぞれ一つの紙のアイコンから開く。 */
.masthead nav{display:flex;gap:12px;align-items:center}
.world-button{flex:none;padding:0}
.world-button svg{display:block;width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
#bgm-toggle .bgm-slash{stroke-width:2.8;paint-order:stroke;filter:drop-shadow(1px -1px 0 #fff1d2)}
#bgm-toggle[aria-pressed="true"]{background:#dce8d9;box-shadow:0 3px 0 #594f3b50}
#bgm-toggle[aria-pressed="true"] .bgm-slash{display:none}
#help-dialog{width:660px}
#guide-title{padding-right:30px}
.guide-link{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:48px;padding:8px 2px;border-bottom:1px solid #9daa92;font-size:13px;font-weight:700;text-align:left}
.guide-link span{font-size:20px}
@media(max-width:820px){.masthead nav{gap:10px}.world-button svg{width:25px;height:25px}}
@media(max-width:350px){.masthead,.reading .masthead{top:15px;right:15px}.masthead nav{gap:8px}#guide-dialog{padding-top:56px}#guide-dialog>#guide-title{font-size:23px;margin:0 0 18px;padding-right:0;white-space:nowrap}}

/* 一覧は大きな文字で読み、縦に送る。閉じる操作はスクロール中も残す。 */
#guide-dialog{--guide-inset:38px;width:min(1240px,calc(100vw - 64px));max-width:calc(100vw - 64px);max-height:calc(100dvh - 48px);padding:0;overscroll-behavior:contain;scroll-padding-top:110px}
#guide-dialog .guide-dialog-header{position:sticky;top:0;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px var(--guide-inset);background:#fff5df;border-bottom:1px solid #c9be9d}
#guide-dialog #guide-title{min-width:0;padding:0;margin:0;font-size:36px;line-height:1.4;white-space:normal}
#guide-dialog #guide-close{position:static;display:grid;place-items:center;flex:none;width:52px;height:52px;padding:0;border:2px solid #43535c;background:#f7f8f5;color:#43535c;box-shadow:2px 3px 0 #9daaa5;font-size:32px;line-height:1;transition:transform .15s,box-shadow .15s}
#guide-dialog #guide-close:hover{filter:none;background:#fff;transform:translateY(-1px)}
#guide-dialog #guide-close:active{transform:translate(1px,2px);box-shadow:1px 1px 0 #9daaa5}
#guide-dialog #restaurant-guide-slot{padding:0 var(--guide-inset)}
#guide-dialog #guide>.restaurant{grid-template-columns:minmax(0,30%) minmax(0,1fr);gap:10px 36px;padding:30px 0 34px}
#guide-dialog #guide>.restaurant .guide-shop-art{width:100%;height:auto;object-fit:contain}
#guide-dialog #guide>.restaurant .restaurant-heading{min-width:0}
#guide-dialog #guide>.restaurant .restaurant-heading>p{font-size:16px;line-height:1.7}
#guide-dialog #guide>.restaurant .restaurant-heading h2{font-size:34px;line-height:1.5;margin:9px 0 5px}
#guide-dialog #guide>.restaurant .restaurant-content{min-width:0}
#guide-dialog #guide>.restaurant .restaurant-content>p{font-size:20px;line-height:1.85;max-width:none}
#guide-dialog .visit-button{min-height:72px;margin:20px 0 6px;padding:14px 18px;font-size:20px;gap:14px}
#guide-dialog .visit-button:before{width:28px;height:34px}
#guide-dialog .visit-button span{width:40px;height:40px}
#guide-dialog #guide .guide-footer{padding:28px 0 0}
#guide-dialog #guide .guide-footer p{font-size:15px;line-height:1.8}
#guide-dialog>.primary-button{width:calc(100% - 2*var(--guide-inset));min-height:66px;margin:26px var(--guide-inset) 34px;padding:13px 20px;font-size:19px}
@media(min-width:1600px){
 #guide-dialog{--guide-inset:44px;width:1320px}
 #guide-dialog #guide-title{font-size:40px}
 #guide-dialog #guide>.restaurant .restaurant-heading h2{font-size:38px}
 #guide-dialog #guide>.restaurant .restaurant-content>p{font-size:22px}
}
@media(max-width:820px){
 #guide-dialog{--guide-inset:20px;width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);scroll-padding-top:92px}
 #guide-dialog .guide-dialog-header{gap:12px;padding:18px var(--guide-inset)}
 #guide-dialog #guide-title{font-size:clamp(24px,7vw,30px)}
 #guide-dialog #guide-close{width:44px;height:44px;font-size:28px}
 #guide-dialog #guide>.restaurant{grid-template-columns:minmax(0,1fr);gap:16px;padding:26px 0 30px}
 #guide-dialog #guide>.restaurant .guide-shop-art,#guide-dialog #guide>.restaurant .restaurant-heading,#guide-dialog #guide>.restaurant .restaurant-content{grid-column:1;grid-row:auto}
 #guide-dialog #guide>.restaurant .restaurant-heading>p{font-size:15px}
 #guide-dialog #guide>.restaurant .restaurant-heading h2{font-size:28px;margin:8px 0 0}
 #guide-dialog #guide>.restaurant .restaurant-content>p{font-size:18px;line-height:1.85}
 #guide-dialog .visit-button{min-height:66px;margin-top:19px;padding:12px 14px;font-size:17px;gap:12px}
 #guide-dialog .visit-button:before{width:25px;height:30px}
 #guide-dialog .visit-button span{width:35px;height:35px}
 #guide-dialog #guide .guide-footer p{font-size:14px}
 #guide-dialog>.primary-button{min-height:62px;margin-top:24px;margin-bottom:26px;padding:12px 16px;font-size:17px}
}
@media(max-width:350px){#guide-dialog{--guide-inset:16px;width:calc(100vw - 20px);max-width:calc(100vw - 20px)}#guide-dialog .visit-button{gap:9px;padding:12px}}

/* 大きな画面では、料理とお店の紹介を近くで読める大きさにする。 */
@media(min-width:821px){
 #shop-dialog{width:clamp(740px,58vw,840px);max-width:calc(100vw - 64px);max-height:calc(100dvh - 64px)}
 #shop-dialog .shop-card-content{padding:32px 42px 38px}
 #shop-dialog .shop-card-content h2{font-size:36px;line-height:1.45;margin:12px 0 20px}
 #shop-dialog .shop-card-content>.kicker{font-size:13px;letter-spacing:.1em}
 #shop-dialog #shop-description{font-size:17px;line-height:1.95;max-width:none}
 #shop-dialog .dish-caption{gap:18px;padding:22px 0 24px;margin-top:22px;align-items:baseline}
 #shop-dialog .dish-caption span{font-size:13px;white-space:nowrap}
 #shop-dialog .dish-caption strong{font-size:16px;line-height:1.7}
 #shop-dialog #taste{min-height:64px;padding:13px 20px;font-size:17px}
 #shop-dialog #taste:after{width:36px;height:36px;font-size:25px}
 #shop-dialog #shop-close{top:16px;right:16px;width:48px;height:48px;font-size:30px}
}
@media(min-width:1400px){
 #shop-dialog{width:min(1480px,calc(100vw - 112px));max-width:calc(100vw - 112px)}
 #shop-dialog[open]{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(0,1fr);align-items:center}
 #shop-dialog #shop-art{grid-column:1;grid-row:1;width:100%;height:auto;object-fit:contain}
 #shop-dialog .shop-card-content{grid-column:2;grid-row:1;min-width:0;padding:64px clamp(34px,2.5vw,56px) 44px}
 #shop-dialog .shop-card-content h2{font-size:clamp(36px,2.1vw,44px);margin:15px 0 24px}
 #shop-dialog .shop-card-content>.kicker{font-size:clamp(13px,.78vw,16px)}
 #shop-dialog #shop-description{font-size:clamp(17px,1.1vw,20px);line-height:1.95}
 #shop-dialog .dish-caption{display:block;padding:24px 0 28px;margin-top:26px}
 #shop-dialog .dish-caption span{display:block;margin-bottom:7px;font-size:14px}
 #shop-dialog .dish-caption strong{font-size:clamp(17px,1vw,19px)}
 #shop-dialog #taste{min-height:68px;font-size:18px}
}
