/* Press Start 2P (SIL Open Font License 1.1) embedded as woff2 so the site
   makes zero external requests. Latin subset only, ~12 KB. */
@font-face {
  font-family: 'Press Start 2P';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(data:font/woff2;base64,d09GMgABAAAAADDgABAAAAAAo5QAADB/AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYcgzwGYACEbAiBYgmaFhEICoKJUIHrZAuDRAABNgIkA4Z0BCAFhEoHhF4MgTEbyJFVB2LEHeDgkiZSjEQIGweAQH3FQFVvB3IcbeUK+A9wihJYG6OnUAshhGYwU8sJisSmGdGEOziHGsMYsqVz0we/TuoFtPqyNKPSs/LvM7A+RxU8I/hz29u6bf1GpfgMuypbQre8/NnueIYU2tGu8t/PwLaRP8nJC8/De9afm7QdQBnYK2GwylrveWn/ASjxj7d7G/DGv8iSwOPpzHIv//91ZvdJXyacUYBky5JBMrHs/PG3HQAyBmEBQ9xUe3rPQp9yi3a7av1PW0owvQNqnua7upM2RBvSkRGkoGRzFcCizKirnjbA5n/TqkoSmFHg2/2YkDYfj+6lQ6YnR/z/X6Pd9/58sTHZv5Y2LxYaPojNOQzifyuRUIiNVPGQKIWMnc2HqKbl9OQNku7+HRIDKi7EDAAwpLbQVvnRG1Km9RPNmZBlUBu6DF1G4sxB6CTBVaJOVAlANO6XalL/2qGBBkDOyK6z0dkk1dSsziok10KhipXPIfpR8AnCaTaJJa369XQGzB8w8v9nqlVaVQAIUOPINS6yfEvt7vkgkT1nMv9yE10G/l9dxa5CN8SGEwCBOgKiHCjKYKQ11OqhuhtUE9I80j+uc1jjOLrzkZYacbzRGWczb7K7LJrJzqXJJUlyOsb0DbRPSUh27Zdfhec7NNGQVhEQW0REQc2k9n+ytWtu+C8tYPf5ySPPistc5oIc2a14jGl1uk42W8spJBZUUMrQFJIvt0cAW75+9YSbKKioCGCtjqUoJXedJiTtjhX9sMcTKb72GtYwmzGgYMQSKxC4zzZggQHKPx2omLBeq+8AGlDt/3KDr0Kt73T37N6Rkmb/zn3IQ6eFxNSY8rMJJt6zkUFqyWGPARAsEfxRcMWaYKANhbnECQTeUkGjNeFafxmRob3p4Qq2mBgxMrH9cAqNSbRBdiKGgruqB5uFymLGoWCPiZmgnkHrMYpfM5qxmGYqhLCmAlIap10RDRoRR2OoeeNKBAH8tlDCVFOBUTszU0NT4Sa38ifSmEF9KrMxgjJVaQFq063STlKOIl5WvrIFN1j8NCrFYQga6lMA9alUFRYBKK/bBFoN/TpXVEQbFP7qptAw4ArYiZdpJLMkpnHbr5xU7ir3VdFcNW/NXwsqszo1rPWBp54T+AYNsxm4t9dIkGVxstGborlonprvrtqtYv4E1He8ew/Gb9/fbr+Nvw2/bsLjefIXZeDjAY8rH9d4bP9o06OMP/1bjQCQAOq4DjKbr5xMJoHk/21A5R8W8B97OM15FrKSVczmIH+xlv9ZzJ8s4hhHOMo8zmHAFjsOOOGOB5544U8AGkGChYoVL0GiJMkyZMqSLddy5rCCGyzhAXnKlKuptgYaaqSxllppra12Ouihl9766Ke/CpWqVBtmKddYxgl28i+72Mdu9nOdi9znErr1nGQdl3nIVY4zlWnc4RQXmMtdpjDSBmYyg1nMxxIjJqxZYMUGe9xwxgVX/PDGB18cCREpTLhoEQ4RJV2KVGlyxOmrSL4CJQoVK1VDfXXUVU8LTTXTXC3tddFRJ910dpiuBhtgoEGG6GmoGN2tYTVb2MpmKv8xvvNdGWg+Oj3V2van6O01OtSnvxn9EQzkSUujRPiFUf4xXcEGccb3ArD0C6ETS3SdeuJZU6tMiMfIZzwlI/32wIP5geyrhCYuEEK6DQgiOkuyqcVjS8nGIfjtOJn5pMkM+0TvoEfXyGvKRth86rVo9fE8eHz93M+DUlhrqhUCCtdEOmQmWWDax0qqxEG+nYJj5I/THvHZ0VAai/IBrEEavwMmIQS1IisEIY77oxAsZRs9kBnpEFTEuqeiO7p0pxI6kCaWzBYtGodFmTkUgDyjkAC1n2zSJijn9NDPjEDW8oqsUho3yMwNH9fV9GTwEnQA+ZYnWWqKFo50OV+x6RbtBpLBiGvUnR67gNBdojQ7Js1JEyo5S7eNMZ/uFwe/GGajI3uFx0BysRvfncdu3H6InmtpGxCvaZOMT1qZLLGvR2ZE9LKecGg2DztMe5KaWnFj3Y6yIak71OX4xYwxNU0RmJAATOyRNn6fPPJa6Tq0tGXQLpI04sL9xSxDNmmCSkAsihnpHNddYBCkJ2mw1TJsg5G5eSv8YphnPc2/WkTkyWhokMjVIvbSti9s0Q1zXweW+ufRqHFowy9tfY+pRIvFh8fsgrDY2SQcFqTpgGHLdc+gZLgSeKDBzUiqDsrGui+zuI8sV/NHbfhyTst3AWUUG5FGJBanBgbEgME4YvosWZiFvN8CxPUuSRD9hoh+fwfE7aFNSKNtz7Du0KNfd/TpZBOHSJr+E40SQhi4PCkxl8UPlkrulmt2QdyyXLcL0URlEtnCZLKVMbKNKWQ7c5EdzE12Mg/ZxbzjWSPm35SuydK2F1SkKxslXaO5Tkk1/mhHK2nGH/+g3m0PrYKWnnQP3U01oEmCSSTJZKIzRlJMIQZzEZO5SZp5SIZ5G7ZBvV5J/vTI6AQd6YNLqLQFle2yb1UwzLeZb9FrigYYBFuzLum2BMbwjEoZgZSsr2uTuiq2ikLrI385TFSXDRSuW6NicAO3XfUvQ6PBaiRrFAHt9wn1bwDA8IHcLpXh9Ul+v9QMagxGvp8Q/JfIsm6qybFs9JkgiYNvb900RYJqoKIKoW+Powv54z4RxxP8vgqw6dd7bRrDtL6Ws2wZQl1F4hgzrtj96vSK9lEuCFDn1ugu2nlUMveRGcBRASfe4z75hv8qaaOa+ksyR7dfcB616RHIOtcVSj+SiX2polfj58dVJBEPhbJIhzzSHUuqqOjRfHkfVRKAzJR+uq10ekSfknFHZctGJBnxnaPsgMX45IqRqEivkJmaaWM0KSNyn9mm8nCw7JjDhllQTLJf6tZIspujh220H2FwsKLrsOCkLEPfHU77CrVotZIa14HKUoy5DHXOwinPFzFwfVsWU+Libu8OVhCFilcB36mLZd7fN+IHY6blPUeEX1cng0cdqlIYXrNcO+/9ppvq+KW5jNCcn/aGYas98KkDw3Y7ayu42Qpzq89pZKJiYZKIHFQXpaZYyem6r8bu3JZ+ytAUDzOWNYX6/Z9i4L6gDfiqj6/ltko4SkEHrGQ0jlbbHPZYTa8FLamlkZw83ZdZ3+hegz09GrdTtdae7D96wBRQd2xVLxMHDZt3cmgrqCNBhX7Wk8G8w2Ytj/FQ77QjpgGGRI8yIse2EehxRuTEIDCiJxmRU9sI9DSj08+YrwA2QM/GiJy7iUDPx4hceBFA9GKMyKWbCPRyjNQV1VSwqxCRa9sIdMKITAeBMZ0xIvNtBLpgpJf46IBdx5jcuIlAb8ZI3yJA6O0YkTs3EejdGJ28Z6CzkPo+OMZ+jT+ge9XD2ceI8slHBrGSxwmKPUkQeVpCVzp9Fu/S7+Jd/T3BG/3BupEfE0R+ShD5uQTnRn+JO/TXuEN/izv0d4uQ5wkiLxJEXpbQI/RVvEdfx3v0TbxH31qEvEsQeZ+gcz7YX71MurRu4dr0LFdyav3zefxzbosIYjbjAMATADkK8hOcKuDyHTABEahzYJ5TVPg/YDlGUaFMc0K05lhDImGLnquSqEpuky1LuBs5s6oyagy8jIokJoIKKAV6f/Vx5bQfe3fRrnUDxx0EIHWXvJJGpqCaUGEqs0F0cGip9cQdvWKqA9RdCYSGa0iDqM+jNth2sGl40HhKpvI9s3rvafbkL8thm2nbycxCzh/cMTk9/+h7m6ZZO/8YEcQQqGfavcz2/unjYAf9k8G2syiLyw8e/DczsH0w2geCGALknv0gA6tKGaDYr+vw7Whp7p7nA2Rj/kD/kKPfMyxsyI2W3pnbYNOTFFDfDjaU8O1NB/LvPW0a8smTbT9NNk19P6U0eKV/MNXTmBOHROTsiYUgM/Swe4tMZJK/ykyWG6amfU9SAGgRIQhFTv734EnGonHkJHm7fhh66xHBAqCC6j3rTZ094JL4cP5kCRECFkyGn+F50/rnZYmCS9DZBYOFQJgzoUWnw1cnjiVvuAZrDNqZqii2Oi5DOQtyTV8G/UgW8BKWvqoqJn38jsH5ibcGqzFlOJ4TPSeu4HwmjXWDDU58OyQdWuOmtZzueF6kSTUPIFGjoIzocsCxwn2gzmucT71M85uG+BVw3AyEuppHVtJqT/yvwbfJDiMKiQbDZw/B8rar2G4lybDuddDA0U7OtwrnO6EmIhrWGlK7+3CWcBNSGr0rayU6NxgxRIXsehw3KNUzIC2DTBIRFrq1QRS9lhGrEToT1YU5VAsLa6/FQuftxLwJK0o/1wVYgAvQovEdaRtE6IvoBOQwOrUkMkDGNEveQVThTJG0s81xU5GgvxQjCSY8pfwGtuj7B5yV5cA5Vz0mxBDmoM3si79gKmXaZwZ6CaTaOlITCgLcyvvoAMNUTqgTfHBKptQrYG6219OCQ9YY2Np9xm/g5FwUS2hWIVI80s4CA9rRNjvEwt5L53pggCd6GRfnrAQ9TcfEDl8Lj+06arGFErZhPWTYvyqhr47FbRIOxt06JEY0RG1hUWWumhX77cEFDUIrG0ru4JnCtcFiTrr2vsDFHcvWPrBPiJKEhqcdCFDFvaMNi6ayUWXAo78nRsulVANJDyfEJIGullDYOjPG3ijsqI5o/rCc4vmC1zWL0b+HHOfmT1r6Vr8zj6oWp9znvqFoBkO0mFyDIemR3AJUwbfgzVmY9JKCZwm1NrLLsADjoFPmJZWoCEHibb8iTkZz4yWDd6bCG8DAM6it/GTVCdoFoAoWaEcsS4GcNMCuWdaeC9HObBLDKupuwiaRnudkM+p1/KhVB6lG1YLzNTehfohjZsC1Pko52yZqf6aHeRNw8S4KSbLGBbeclZhQxFyLSLpCARYExZ25lDU63AFjmn/KWopYMsnTwBy4A/PKlZi7w0owxNjSNslLrb1GWOv2sy1KrsnUHhWvDC9RUO1KRZjIKcd4ZHdvZEh8ZYn4AmGsMpBKEosBsXayurhaTLpSWEYjzYUiFvJhuMqO57EAb6zpqPMm0oZzLeEIqBsGZrW/8ECLTvtAVocDiVgi0z5a8hIsiC+DzmlzKgQkOIQSvMbcdfzGuEd3z3FF5T38ahGAAvM1s/w/Lx9jo6i1TiyK7MPw0sICwKiosWGGa3bnoMjIWnmGQ13O4TZ1ysDyuRQb4ZKBIwLdT1q7d9rBT/Ya7IUZaZsKVVHvIKoVOk6ouT0IodQV1bpiZ4kzHJpWrOjBLdgit3eI0zlE7rB8+ESxyxxTvoycsym4Bbd1357UpCSVSVW5y198yhad+/rFH2NWYPwNGFba7eDVYZ2Be7MyRu0F3FN+S9fQsnOpLPbEbIxv2VciCR7g0g8QDofzSlw9cfTorAuf9cmyHguuA6sKPQYtiaTllpOtAgCXkuQ18ECXzTBwm+hCL4wYDO0XTCct22/k4BXb8EDHHX5aHuOBhzx4H8wCjeatJvICA8oufImp5Qv7nmDgC7Mg87GV+XSA8DeaFv8A5+3A7oJaBgYKxA5Af7yVb2htSItS8biWZE9sxch9mK8yaiF07+IW5bsMjN5T3dgJlwjCjXCIeuudNtQ6aefQFXjkuBgIEsKa2wLH12RdnWspBrgL6DrypG/VoS3ATlca8CwkT/FYQ6/9RYUQ023PefxUnS2uwfXlHwKiFRL+tMsm+jcacqTxmuf8DnPOb/ZFnQYS5wNtcIpTWATNT7ay4fLk1Gsfa2f8+gWcdBGlle5AEhRIbkojSZCkSRAgkuRDs66QHB369a8M4UOC8gn264/6kuh4mF83ulYokuJ8jsQc4JW/bDX478uuw8a+Z1oBNeSH+nCSkoiIKLweD45LzfxpgKZRUt1LcbeIr7C0FKLteodgB486NNDJgtI5PcVTpsq3qyaBlhD79vf5uqtYzF7wEFV/LgKN2eyCgwqtH+QLlkJTMmVcZZ/RYVASesV6RO9dUNlloFfOeXQZSlZK55S595WYfXrYBVgyeSSIWgnxjPdYBEDUl51FUCa27BKkOaEtg5lRBzMTyDuCmetRxtTOWTlup8PInC6Ngp6QIs9EUyNXjidK0aZbXkd/RBS15E70ae6S1s4mmN51jqGUC40U/NmJPGC6uTjEcA+SMbD/YRkpSp01MteqZ/WAYYMhco62LJyqDuDRflmsIgLtjmxXT+REi03WOSkFhdeAs5YtkHR9GQuOFylgKPHiwedqrtBNThiAFwVl264Yq6Hrg24EKpfbw4bZymSDYjqx3/S1ECQWhhwMXUs4yROlWJZ3kRym8LYtbc1TmWDjHI9mea/twl5tajYX7kUCthBXfEEqkQfFfNdARKqGi34IkMcbFvvBcPo4C2MahUR97HIrglhybIR53j6mXLIG4xIkss+uL0m0X0v+K9/pWjUA5l6kVVa9lCqRR+21Plkg9QfBQufoz6kB4vB1V8rWiZdjMfbIx7zC+QrZs29CfBKgwr0qCkF2+DHCiqEm8jWjsQ4h4sWLiO8t35o3euNDw8mHzGMWGIHcEpn91/UY2z/HjKumpkOUF6cJCF4p6jDuwhWV2r9lIU2KQ1Fyh6+S8Ib40IBwPTdnVua/px3EAYbGJp9d+M7Eq1sb+1slyOh+JjGHcC8ug8mJjz1SEwS6ptww60SVZpTVFA5hMRO6slqxxiti96pwPykeEAHNma2/A5XNEEtiv63Em99ZPKYQ0pyjC/hJ9soROx3GA4pgc9kAIFycCtIIenoNGzXasryp8NSNfWltUrzuLnv+yZAzms/HZshG701+gfOF6I9FO+xuphQXrZ5vBOISuBFe0YOgUT5sUTvjInolf0uyobCfZfXWqndEjTyouQYuO8E1aSufPGyqjN+VZZBByeB5nu58UDmHyiURAXSuraNs2OdyDgjEczOS0tpJFoU6KgQbvnKSF40xXVgPTuq+eF+uKUmbuf5st4jxfAgjFyawnrSOkZPQQncfCZHzrJYtwCsfiUhrf6bSDioX2pSt/pF1itrnnqFo1FQhEu4Hll4vrr1uRfEqiPY9J/lWBJepKi5DLEODCGuER5j89YR1EEfbHB14u8euFJfOurqrdO/vPwlDM0OFPLzVOuY1KHwxprHv7RGlGRydVB6e6mm5F01IIFAoocqNfuVaf0GEUG1PgJUg+/qsAZ+zF5jVO4a93qB6KZmT1zS2/f2qE1yZuiL8/t/J27Wxw0qXEvEdQezDlfLV/gWPKWAiK6NPfOVOoiGS8y4YoXKFhJDamzE6O6wbYOPIjf76W2joB+/+EUDX7+hjc5dno1rYwV31mqH30N+qj67yHDeAurLnueH88Hxu2XFbN2JmJDHBrcCjRkjaZvia3EFn+CD48twoHEhCSluPyvtR1+qI9HYfgN5mzAXvaO/QZN8NwMI9u9NlFS1/XLQ2RpR8S3H2eGcZz7KH7c1poisHtG6W/Js7Jgt3jIPPopYY43gzQVOLtflCHF268BiXfyBaC96n6xit1//5pLUoVmSve/Njrk1XgOwqHKRwkNRuPkdHnAmqYWN2BmEqpLXCW0CAyNRopRi9AIoZlXRuCRZHv+plLnmLLpGZeKUzwUWXMcj0Uxov6vqwkVsiMqpkqfTIMT50quW1XANteM1Z5ZCT9U1u8TnFPtjSzyMebCycKODBaPQ3wZX/1JkWuo8Kh9l4/9pJMAx5E8l9HFpdyYadxhB1BvTXDqemXjOZvPT6anlzfo6aPisrzTgXjexDR4EkR5SL8SyLbo9z8cr/pjGCxqmxNECE65/nTuMF1X2l4SpIhJUrknN533dEqCW+83vDIW6JKvi0E1g1scyl8GfCnhf6yksy+/DbdlPPhKga+dZygmKEx1V2G8ElX+KdHD0h26sddscLQjRFNL4eHXzci3tY/JJr7Vn5B/bbHeVRVLbxUKbGWTZ3+QvRwQ1zz/vwg3vP3h/aXr32DaR1J842ayq+Hluoy1pZbZcUvXaTW2Kh+YRxz1Fjl3d98IiR09X0v5/28xui+H9UvpLid83/jr/H/39nS0qQv1uH/s9/Pj+LMhQFdAwKonxoJMtpmMEb5Zc1AVzXWWx2kU+6y9GhoDL/YFgVbjC9n1sF/yDBFFas55taL5935hE7ndSbpUOjp9yHC8KrYEBAKejGNq351nC/rtfFZrwzmC/8pLtHpuc9tQnT+7nb9V9MqOqzdph39Ky78+lcvrz7XTMM6LSCjhsrTituCpKIm/BwIsoSw9F14/qyep3aZrfrWgHKHltcysU+6R6R+5idaJ1w4X4myffJQ+vBS/EM61X2viC9n0lbutpxoevSP2xEaTFudhIibO8AL6tzSZtMZ1yk2nG9l86hxfqEtdIbYJe/cCG3KjCenzNfiP+l8iHU1ZNBIOf78tj98MJBrn6wq1uyP8uE8IHkFgO3ZuvdfEje3buToaWDjgSv1MFx2Eb2lltXlY3JeJFIzdi8APgeGex+0RyNZHq9UJ8A5a0COK7DPcSirXysYy9TO+n0oqvox/PkjG7jdM8fINzRGKTk28Qd/y431tU2Ydf1MVkEuwRwwZPufQQ/FqbrDc7fz8zPL+DHFGeXP/vyswZ9eSc84j75+ONvQyrosCD1g8NCbZjIKfJgIpGUSmuLZLbq0mgI1Qmrxw0kq4nqz2Lab5gPAU7EQ6JIKoNBs+hQjs1CaelsW0c6FiEC1UBFfX7stXz6J340I5kSSxqD0ghRQEqohRzUSnJ9yBl9D9H7JT4QfI7ZbzvS9RHyxf3izoTWMTISlFRSuqoX8qz+DlrQfy6FVWVOXeeLAiLnqff5tXnux/E17kIVP46GJi75UKLJD0AT6TDKSIgxRvZO2u5Du6gWgTplntATcZ2AExM8orxjwzmmaI37GpZyOSbUCUaYJZJIKq4667kwZuM4TPoeQmzUgFRdQif02Eqa0NjPnTJPQcaQrltzm0KUZYCGPe1qW+Ea2cekDy9puOcNDWqiJu9LUfatD64Kk87eRZlwqNsbZJ+QTpAJvuBeNWOypipHf8WVSHhOzo5WbN0ZuJ0sewCtoqu1e1MJE0KvPvcotYPDQicZ0wH0Ehs3Ru9Bvs8GKNkvWWYx6QJ2N5KV2amNFogHsDnIuNC2DDc55IyM6qUQjRcVlFoqn1TD+1LY0jWLkP0wUSgUEgHBMmHy5D461z1ArRf/pJsTqkviCT0lxwScMmmTmIVKrW0qfKqutASLXISIb8hNGSJ7MtRiKPEe4yU3LyxAa0ZEdzAt3KNtupvKLMfQvACAmrC7XJ/46nSNj1yFJ8DCWSwQV1a77BfTfQEMm2m2Hhbzg8MnXcJuRkditpUFAHorAKyMVSirH3c/t12tqVPuE6O3QI9XOIm3gl6oj0WdSauyuBvPpGbUwifzXd9Bg2aPe2kTUNa+W3wJTUVP+DsuvLldRnowyAGD7dfylGPFRkF1PDLXBnHlLlQCqaSSvSHz69UOKFNySqODt5Tn+/CAAgViRgfIQlmLUJs1Ivd+esCQYBkOeOoOEIZYvqbOsV2vJhFXq7y6e5E4nyzs9nXT4uyO+zmo0JtKSIQ5rEW4X6bSV00zmyyVikJK9LgzU+JqbFrOmJG2irALK9a7CFMAtXsETxOg3OZqLmgsvEMJfWxeOE8FSoQgHLhYAy2Sc53F5oDvAcMczjH9m/LTgWXSMB3L2tqtWbXab0bZcSPRcKs3u5oXpzpqu1pkhoW+2mzVB0dRtDCMGmDLXVyxV+rR+kiCWlgHT9w6SrF8LIE74vuU+Qfwyeei+NmnY2pyS/L046knOLnzUaFC6IQxSUm2jF/T8G2gJe/n6LGHibi4J92N5r1L7BNQJojju8YjCuVgf4YcGHCp8aCr4+J2YfETFFZVxeJnNiwgalLIZKL7AlguzDTN/4Z4C3AmHxJqSQe6Dbng7osfMguBAmMlq/LxlNYrsVTYzEHOvO3NMuuU8Rvw9KkofvI8NYfR0TGn+5m/+thMYgqeME8qh1RPH8NjpTngUiy0dlQ6vgc6FjSnT6bhkiashd5gfD+3rMP1OMNaIF9c66xWy28aw1p8QiakhgyLUN9AI7CI4qJEs7XavvlDB3cryZpiAoMMOrxs5Zm4TI0fK1MuvieHgV143KrK3T2t8kwrB5RawIWqwhM/IKAZi0NGw4NS9jS40kRcdfO2Ng4baM9tncmKLr74wqs4DzRwxc5e+aPfR4PEWfq3u7GMKtURtdbKs6D9GHJeyMB0FDQIVTEqzLLFEj4SVjf8qa1aH40RJoS3NFFttEZOAmdBOU5bNh5Ofi43PgQBgaLHOuU84WNA6+LeNFZKq5Ko61ax/w5fWZaRfvsJ0PfYm0UQUDQSahinCT1caZmAwb00zNtQ5TU0RRAnHNkipQnlyrhv1YHVid9+RAKf8PH7GRHIOVos8/52gUVSO0R+pyKQKwT5UCe2uUK6Wrs3YWkCTGuxc2BQLpi22fn5PiRVNB1KWJwnNAvnG5ok0w0UoXKDlAgcXFWjwAEWWpQclzlCdXUy4aMoiAnhefLMDYSw2ImayMRZ51AfZ+KhlsqR2hIQhZ0Mh7uk/1qLSJbCJgJVrQ4OabpqazJFNBEt0x3joe6G43BRaEEk33MVyXfSRw2SJxfFF/D6UnS+xtASDp/V4owxHTApyA+brJr3IDlfTHuR1McktExIp4FtggADw5af1MLw5CVNJJqlNgS0mo5tXZWaNk9pVduCK1J4fo/yYw5hJ0/Oxuzt+SYrLPQNZp2YeCCpEnBr4MEAK/WMQWBN1/5IzUmZB7LEFtaLu2lfEOZPOppVbTctiPW+mU7oHMnxdjdFQTPv0RkLssZWungLw1UKnnITmD6XukcUgx5SU7m8SA9mBF5IhqBClZXD1mxHgxsl4vQOpQ54A0GUy8OtKJROa3e+Hn6YNgPkrcBFwvfbq6vH7TZQlQg2dLwSwkqbwijZgBKLhUgkt3VxBX+Fh+k+HaO8WtRNawR4ZuR3cfqPMEx33H1jt1VYuE0PikV0eb8OFiasgqGHcgNeLIV99sV369uN3q8zr5V2QBdydmCG2xwe0ztnd1t1FBSu7wetLnbuLpyoM2WfaP/tbLA1fl+TE0ySyejbVsX5xzEYT3dHXcwukfDq/anxUwmOElwmFhJqes9os+IML7u4m0S+rTzsceYVC1lrfrf0uxc5LJQEuX4MRomt6NZh6y42WWEh2Z1dKrMjeU/wCldWZkskh1xLyijN/1jifQeEVMWc+A07gMXUZSUQuT14LfKcT1ajzWlXJFtAtr8Two2TEgciYzzskL+oKOMSXYfJSiQVJraPSDUoer2QtwZGUjQJrmpOozW+4E+VzrlSwVH2ONJKM8wcSe2PMBrV2KYQcW9qmcd2YP2bj9xKVoSWRjVvg7dFsew5H1hrDGhxpIJ6tWPnz0ue84HW5Xmf+XyWxQTs6atYB68OJrUnllE8HUAkikFRnEsIQnCitYJrgcWaRzlE6mw0oVeRyoTQ2Fjyxp6/RJq/h17zjWOrYTy2cBOIHr1VCqw0MxmRMSRXIAYhDhHxlQuC5SVSaFDLzlXA5srWeRkygI6JmTeF+5PTIxlQgO4cx2JBnNrOa2KWTBDiuZwlQPu/n9c/nAf/bTQVRfbDqEjlMDvVEqtd1Hl3PB6opLtNoU4eE3pSCyaATXvKlwfg4Vks/fQY3P3vafmzMceAoqCxUge8APpGQIiUtpAB3th1T16/SwpJLAPldDO021c47xspyJgIGJBfQhdfLENADCq4anHU6N6FjWW15nrkOByMLEvDEuSJNi5keB7b5ClBrAdvPP1JTuyDK5Aqhk2/aWZ6QxdizayeMH3E0g26h1jDR2S1KeXboq7pNYwbsSCF334alHU3HG6nv9LsWtZ3ozklpbsq3fGEiMpeAtXax16az2uT9yI2pMmvX7vo4Z9CBgv39rp31+O8WZxR5PExwlQQdZ1WEuA8nR12zu2+jZfkTtpE4meYmOsPH9iJFtgSOg143E0/NKHZfwQXdJiDklJeWUnhnKK9zUeJvAYcs4eDoHcy4Ro+n6XOsVCYSq7TNUkRJhr6I/PzGhbZdiWNwA88qAvZC+q2qfXVcxsvOtybxL14fdjjOb/tv19INwDQRw40+KdFuPUdfP/6HyCEG3SeJBGpOUW7CFzMlvQ2XEoWkw2d68dyXxD1kpdKWNf7Biw4O6tPFLF/yEyW7DfKtIu//ps+9UfK41y70YrpBthfP7lPI1rUwZyM+yu6e3e/xtNQoPpXL+FWWw5C9CNPsIqQgBpRv6wU3KSmO5+vQcciFaj0hjom4LSR7cFJpWQFg0Q0BcapoGkVtieQPL7JxEETVKZ6g9TWcLjYN/BmSCicyqCo4PrO1Tfl/hBGN2Xa47tL9wGSva1oE3CoIU0W78HfXddIlsrRUUhVed+UBFtPnKc/7FZlnAqkstY2ofN2/viKIMzoYAiSGBVLBDe8G2Wq0Rpyh/RXpYY9CbIJ6N75502w9rfYQBH8DWQCU6bYOJOHlSpbGyLt+7FTNWWbCFL7kKie6lA4jVQUsUpYIhsLwI1JZ63oBuGTDUWO6+kFFRaFYlmwxQQZ9MFkb6INV5sy02kRWMgTPkKmfIPwSjNz8boBFmre1pcRzALrt65avNa03n1Hj/Fr54niM7rwDDpQ408IN1iovGGCPXgUFE7qw6r9WCiYD+VQ6bFTnhA+5dM15A6q0rrBflO/PvErGqqc5UGJlI/P5HBpDWq625vpJsH7T4xBNub1D/6aAGGu1R/bnRnz71duEwLsJxruLK9TZsG2NErkkoZD7RZQn5AdpWRWHqJ2pDqIo58LmS3M+2PYNH2Kz/SWixAoWBRZCR8c5Fl/hoK4VHqByiHDoabYVDF30qDtmzZP7twPQ799TOOpv9kqQz88mD2NAS6VinHWtnLZzMzM2x+Yj2a/bCCw/QrOplnQw8amCddb+O0f4ymnCU+o6Us0UqOt6vaeqp7KoSovuMU4bNj/TOPrD4lDvG8sgU5xIQ/3uNPye2+ur2QukhCkmDJMmmAVssN6MtGaXNsfiVhR6GPIg/QYu37Mk3QztUvXXvBqmmWD19K8/pFmae4z68Neq1UrDMPdhNBF4hj3uB6XJiELkY2wJQpM2QGvbMq/h22Ij11+cLg2e+5AAiwF58bDofZv14qF8dbkTjxc9I7z0HeJXRtfJEY5MnqXz5s9+76uQ8CXvC88TFCuu7rVQhWsfRNr0mEG3wGIsJ2MvDdB98FfMZFJWUZUAoLgqjDAHyR2viDfd1oRgje7fGMW9wtDuAHnZslNRhLRYvdky/rZ5WvdTsrQUsMlmffCh+k/HFb+LCoZJiGWiTitLq5piEzRdyplalnObNyFA1hQNPyj/Gn4MIJlzdcm4bEHUwtGHSfMIdFH1qslz4MFgJ1dlfEwPPHQHl4qIGqeChc5SluSRiVQ3ilL6eKMrCQwaUChl0J5AtgzbdElU8VHl4t7Gp482doPJ8k/GhLEVXhMdko1a2WfyxbO7dBYI7mBCMyFvM4Li4/jCcXUD1uWHgEsqXpSk/3X5VWSiAQ0yEBklw6rmZNcVPXUNL9AtEb41YqSqfv+CwS+mwpyplJnLBOcEu/w4aW9QFLRIIcFMiwXTUh+7QWlpDlG1RCc3yflAnsJ/rXAej6XUXRy7YNR+o5SZyTCl6JTPFQiUFnAKBXL7Wwf5OnL6JAkOi7DC8nz9K+ETfrrcCcLez4eFEKUo6BnclEfV3glKkxjEw+da9TfJkDMxkbUPSoNyTyhV1QwYXo/TYgeDyd56aPV5YkrbKwO8tUAldyYV+7kjozlkhgYChGxQuUKpNIwzhN6VCgmzO5Nl7LIg+1MRS7v1g4qufy2chyj2rXK7x02Di/ouyrnHEOWauFcCSoovyWgpgm74sflHTYOJd4PXG6VRZTAglFgDkChRXACyGuWnJa6oDHGS/5WI2L6NQkMknpP5QV151YbLFhz0CX0Ce9yj0BJIL9SjiJ2Z/Um/qK0pg1QXylItO83MIjH4b74yYyslFnyMCsPwsKAS1BpF3JDxIn0NT7RGRK5oYu3kJOSMsMJY2+O+7VLjfprC3t49SO5uK6ewz8I83uBL74Wi776Um8Z+FLqLvqwGb/qxlbKarnFLWfiKGwaKVWuUB8oLcq0me7e78OvFHr/68EnsTevAK8YE61krjZUUE6eB+i0eZ1e1oUIbxvmvGut6jjI3OQKgst9OdKnaCuOdIB001DHzBjtUMqO3relgrOX9N5pivxGWUrGb6hcZMG/S7afqtZHD7sT4r83vLfmY+e6TMPM5enM67L+Gh06pXxhs2v0TuEjna4KfKNrZ0ivyETh7PlwjyQ/IO9kGdXdTIM7mLb2Hqv9hOJfYUJtiOXXxKWvdhxXTtuPuWfTbbWR6i8+bCC4xLmKBm4jX8S80mihIACo9hOsu+YJvazUJsxeMHD4WJt6fuhFaPUQKGJlMESM6mgBXhOnXAAhR6PzQLBuWSf0liomdH6ziLc3At3qBbZvcOQueueNywPJjTTQdnWbGuBP1kcSy84M44EsZuwA9Fq/fFWrVKcK7doLdhox+P8QEuyCqwKHFRAmG+5wecXAEuBN9brhCtLb2q3BzZ+3fdWUCrEnPmOjL62viFfc0XoPgYMZD3R+vD+PY+iVH2flbY9VJEX+Q/ri8fFp38bT02V8VMYRAnA9OJ/pbhrv+Hn55E9/DdDfPzwAv9hIUEn6voovHjSvHhN6krtr8Z2ui3LOAWgzUabzIJKdW6QL4WDBK6wm225h0brcVYf2t/YdonATC7uFuj/wAtEN0Op5h0wQ5XiyTqWLySox+/ReXLa45eDI5TDJ4wO/3O3AjaCO98nWUm0lJwaqWu0JLjHx0XPQDdSOcmWHzL0ouvz88yeGqBSd8BCNW6w5AZwwHm8OnJY4DWenui51gBjg5ivWMFmVNIzUXHn7Adx9HxMWY+uMPuACur9PQoAQRkKejNPw7u5r5Wd1lOZFjB+v89M1JJ2XNO6/+HxPp4fzaYgQ2qCxTTnzp1Ps/OLhwZSLRz4lbWZdCJXxhAto3efl05Bc9I/OJT591d+ZP2Nr6/UlnWI9mXt6/jn3/uquf94sPZzTeBkZwP1I3dR3GR7zPG3wmObXPKf5/llYMrnb/+AgkiWWV9nMmq2cNIK4vDtwN/N/feRgvdST59fuxOnUNxV0ztK+nJwNi9JKupjSWm3Y28kpbaCEiZN79dQBUYzYfA131g/Bs0yc3FgONF/YJRqVL3CZ/XlCYGMB8kQWQxhzY/RrsUyAyMPMYhOzZQWH2GTzWDhhIzKnVCWgMKKyIV+GP6yHSkzEn90/paqkAvUvluSv1fr9tlHPs96N2W94kRhbDZekLx4LYOhoORBLL/JUhPeh5V9XUyk710b617RJSrVl/L87Je9Xkk49oRqZwykyqo8xpePU2ugJuVQS9oYgAATw6G9M8Vo455OlKv4B8D0cn6H08arn/rz5AQ3Y/hoNBioEwEClXQgRMSv2HyujMz5/67vUA1guvqrO8TzfdDTVhNX7P4OuMq5ffHPsrR75Xu+cNa6bvDt+76azJ2B6GLZL63wmSzDey9ZNGRqeJXcSGPJSXd8OHf+z1ELy+4C++I5Of6um0+lklwg8IYMtISxQKNDQNGC33UQQwJJuVMRgBe6KNTQk+PJ6SMGex0MqeZYOGYhRNWTEmzZDJiKk2PZ0DHqoEK8ZIEv86YN1NkhP3a7Ig3EG232eP/v9DdJdvPrK1NHAIF0NNlhjFToapEKSBmI10lV3lfq0NpvpapCsa/XXj0ayOAm1tiKqRVrLd6G1c/9Vk61YS42UysZiguHVtxbrb4ChZqh116Odf4ZKWaOJQbuGlsSZWvvrpavORblQZdQ9zAic5QidtdYuhiowzDi0q53BAFyrQqQYGtV6cnOD6MHGtKtyswuNshhUNOvpqC+2yw/KnaDzoIx5hx5Y+d3xBERBQSXEGU7RyQY628hsQoXpItwzInR1mrOcI1KUaDHOc4GLXCJWnPioBrO78YNf5grdXWMOm9hMslcfv3K9dBmuc4Mebn7Sy8wcL8hVoufHuti9uNnXYkp1bS33nBoGmO/3z0A11VJbHbeoUKVapbrqqR8DDTQ0RCNDDTfCMEvQbaGx1zTRVDNTaK6FkUYzhlEfCfPU2njJXto6zBEWsBAXXHH7EBn+ES//p4tRTGLBfj7yic/YyXeMSfjhwDoMLMOEE0GWYsSaP84UaaeDPAVssGUbW3EUS9awloMc4gTb2cFOdnFcrIznABZibQJ/iw32vGU3GoEC+IOOlostlmIXe4JZmcxEpjGV6YyjvacUxkEcxYkZPOQ2Myl2lwfo/Y8d3VleHjt8+Or92N3bO0w+u392+bK7Qyeuxq/d8rjrXR77+73h6eTVq1dudE6nLzN9/PbVpw+vp+EDiOZO/2+VzD36rxNpTqf5h/c5cj3wVdcZOvQL/570hejrBdJf6rD56wL34Pvd7XpuDDnouo9mns/0ZuzMOS/zNHyZM9eJifZEUt6bf/B/y/Poc/9zF8DgBQkX8K2G5OoyhiU1/P6EJ/9yXiULZp7yx/McxNbKfNt3tcPlET6aSZ4DU+WpHW4WyP2i/9+s2JdNyXPmV2UxgWEXAAA=) format('woff2');
}

/* =========================================================
   WEDNESDAY FOOTBALL — Zürich
   Retro 8/16-bit football styling.
   Edit colours in :root, then everything else follows.
   ========================================================= */

:root {
  /* --- Palette (NES-ish) --- */
  --green:       #37c837;
  --green-dark:  #1f9e2a;
  --green-deep:  #0f7a1e;
  --blue:        #3358e8;
  --blue-dark:   #2340b4;
  --pink:        #ff5fae;
  --yellow:      #ffd23d;
  --amber:       #ff9f1c;

  --ink:         #14152b;   /* near-black navy: text + borders */
  --ink-soft:    #55576f;   /* muted text */
  --cream:       #faf6ea;   /* page background */
  --card:        #ffffff;
  --line:        #ffffff;   /* pitch markings */

  /* --- Type --- */
  --pixel: "Press Start 2P", "Courier New", monospace;
  --sans: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
          Arial, "Noto Sans", sans-serif;

  /* --- Shape --- */
  --bw: 3px;                        /* chunky border width */
  --shadow: 5px 5px 0 var(--ink);   /* hard pixel shadow */
  --shadow-sm: 3px 3px 0 var(--ink);
}

/* =========================================================
   BASE
   ========================================================= */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background-color: var(--cream);
  /* faint dither texture — cheap, no images */
  background-image:
    radial-gradient(var(--ink) 0.5px, transparent 0.5px);
  background-size: 6px 6px;
  background-position: 0 0;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  overflow-x: hidden;
}

@media (min-width: 720px) { body { font-size: 18px; } }

img, svg { max-width: 100%; }

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }

a { color: var(--blue-dark); }
a:hover { color: var(--pink); }

/* Focus: always clearly visible, on light and dark backgrounds */
:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 3px;
}
.on-dark :focus-visible,
.hero :focus-visible,
.footer :focus-visible {
  outline-color: var(--yellow);
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  background: var(--ink);
  color: #fff;
  padding: 14px 18px;
  font-family: var(--pixel);
  font-size: 11px;
  text-decoration: none;
}
.skip-link:focus { left: 8px; top: 8px; }

.wrap {
  width: 100%;
  max-width: 1040px;
  margin-inline: auto;
  padding-inline: 16px;
}

.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;
}

/* Press Start 2P has no arrow glyph, so arrows fall back to the sans font */
.ar {
  font-family: var(--sans);
  font-weight: 700;
  letter-spacing: 0;
}

/* Pixel type helper */
.pixel {
  font-family: var(--pixel);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.5;
  text-transform: uppercase;
}

/* =========================================================
   HERO — the one big green pitch moment
   ========================================================= */

.hero {
  position: relative;
  isolation: isolate;
  padding: 26px 0 30px;
  border-bottom: var(--bw) solid var(--ink);
  overflow: hidden;
  /* striped pitch, like a retro football game */
  background-color: var(--green);
  background-image: repeating-linear-gradient(
    180deg,
    var(--green)      0px, var(--green)      34px,
    var(--green-dark) 34px, var(--green-dark) 68px
  );
}

@media (min-width: 720px) {
  .hero {
    padding: 48px 0 52px;
    background-image: repeating-linear-gradient(
      180deg,
      var(--green)      0px, var(--green)      52px,
      var(--green-dark) 52px, var(--green-dark) 104px
    );
  }
}

/* white pitch markings — pure CSS, decorative */
.hero__markings {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}
.hero__markings::before {
  /* centre circle */
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 230px; height: 230px;
  transform: translate(-50%, -50%);
  border: 4px solid rgba(255,255,255,0.55);
  border-radius: 50%;
}
.hero__markings::after {
  /* touchline */
  content: "";
  position: absolute;
  inset: 10px;
  border: 4px solid rgba(255,255,255,0.35);
}

@media (min-width: 720px) {
  .hero__markings::before { width: 360px; height: 360px; }
}

/* subtle CRT scanlines */
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: repeating-linear-gradient(
    180deg,
    rgba(0,0,0,0.10) 0px, rgba(0,0,0,0.10) 1px,
    transparent 1px, transparent 4px
  );
}

.hero__inner {
  position: relative;
  text-align: center;
}

/* Dark arcade title card sitting ON the pitch.
   Keeps the green as a frame and guarantees text contrast. */
.hero__panel {
  background: var(--ink);
  border: var(--bw) solid var(--ink);
  box-shadow: 6px 7px 0 rgba(0, 0, 0, 0.32);
  padding: 20px 14px 22px;
  margin-inline: 4px;
}
@media (min-width: 720px) {
  .hero__panel {
    padding: 34px 32px 36px;
    max-width: 840px;
    margin-inline: auto;
  }
}

.badge-ready {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.07);
  color: var(--green);
  font-family: var(--pixel);
  font-size: 9px;
  padding: 7px 10px;
  border: 2px solid var(--green-deep);
  margin: 0 0 18px;
}
.badge-ready .dot {
  width: 8px; height: 8px;
  background: var(--green);
  animation: blink 1.4s steps(1, end) infinite;
}
@keyframes blink { 0%, 60% { opacity: 1; } 61%, 100% { opacity: 0.15; } }

.hero__title {
  font-family: var(--pixel);
  font-size: clamp(25px, 8.6vw, 60px);
  line-height: 1.25;
  margin: 0 0 4px;
  color: var(--yellow);
  text-transform: uppercase;
  letter-spacing: 0.01em;
  /* hard offset shadow in pitch green = arcade logo depth */
  text-shadow: 4px 4px 0 var(--green-deep), 8px 8px 0 rgba(0, 0, 0, 0.45);
}
@media (min-width: 720px) {
  .hero__title { text-shadow: 5px 5px 0 var(--green-deep), 10px 10px 0 rgba(0,0,0,0.45); }
}

.hero__sub {
  font-family: var(--pixel);
  font-size: clamp(9px, 2.9vw, 13px);
  color: #fff;
  text-transform: uppercase;
  margin: 14px auto 14px;
}

/* Two original pixel footballers either side of the ball */
.hero__squad {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(10px, 4vw, 26px);
  margin: 10px 0 18px;
}
.sprite {
  display: block;
  width: 46px;
  height: auto;
  flex: 0 0 auto;
  filter: drop-shadow(3px 4px 0 rgba(0, 0, 0, 0.3));
  animation: hop 0.72s steps(1, end) infinite;
}
@media (min-width: 720px) { .sprite { width: 66px; } }

/* Two-frame sprite loop: the frames swap instantly, never cross-fade,
   so the animation stays true pixel art. */
.sprite .f-a { animation: frame-a 0.72s steps(1, end) infinite; }
.sprite .f-b { animation: frame-b 0.72s steps(1, end) infinite; }

@keyframes frame-a { 0% { opacity: 1; } 50% { opacity: 0; } }
@keyframes frame-b { 0% { opacity: 0; } 50% { opacity: 1; } }

/* one pixel of lift on the second frame */
@keyframes hop {
  0%   { transform: translateY(0); }
  50%  { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}

/* the second player runs half a beat behind, so they are not in lockstep */
.sprite--offbeat,
.sprite--offbeat .f-a,
.sprite--offbeat .f-b { animation-delay: -0.36s; }

.hero__ball { margin: 0; }
.hero__ball svg {
  display: block;
  margin-inline: auto;
  width: 66px; height: 66px;
  filter: drop-shadow(4px 5px 0 rgba(0,0,0,0.3));
  animation: bob 2.6s ease-in-out infinite;
}
@media (min-width: 720px) { .hero__ball svg { width: 92px; height: 92px; } }
@keyframes bob {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-9px); }
}

.hero__tagline {
  max-width: 34ch;
  margin: 0 auto 22px;
  color: #ffffff;
  font-size: 17px;
  font-weight: 600;
}

/* Quick facts — the "above the fold" essentials */
.facts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin: 0;
  padding: 0;
  text-align: left;
}
@media (min-width: 640px) { .facts { grid-template-columns: repeat(4, 1fr); } }

.fact {
  background: var(--card);
  border: var(--bw) solid var(--ink);
  box-shadow: var(--shadow-sm);
  padding: 10px 11px;
}
.fact dt {
  font-family: var(--pixel);
  font-size: 8px;
  color: var(--ink-soft);
  text-transform: uppercase;
  margin-bottom: 6px;
}
.fact dd {
  margin: 0;
  font-family: var(--pixel);
  font-size: clamp(10.5px, 2.85vw, 12px);
  line-height: 1.5;
  color: var(--ink);
}
.fact--accent { background: var(--yellow); }
.fact--accent dt { color: #6b5300; }

/* Quick access for people who already play */
.hero__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
  margin: 18px 0 0;
}
.qlink {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 46px;
  padding: 10px 13px;
  background: rgba(255, 210, 61, 0.1);
  border: 2px solid var(--yellow);
  color: var(--yellow);
  font-family: var(--pixel);
  font-size: 9px;
  line-height: 1.5;
  text-transform: uppercase;
  text-decoration: none;
  transition: background-color 0.12s ease;
}
.qlink:hover { background: var(--yellow); color: var(--ink); }
.qlink__pip {
  flex: 0 0 auto;
  width: 11px;
  height: 11px;
  background: var(--pink);
  border: 2px solid var(--ink);
}

/* Highlight the dates panel briefly when arrived at from the hero link */
details.retro:target,
details.retro.is-flash { border-color: var(--pink); box-shadow: 4px 4px 0 var(--pink); }

/* =========================================================
   SECTIONS
   ========================================================= */

main { padding-bottom: 8px; }

.section { padding: 34px 0 6px; }
.section:last-of-type { padding-bottom: 24px; }

.section__head {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: var(--ink);
  color: #fff;
  border: var(--bw) solid var(--ink);
  box-shadow: var(--shadow-sm);
  padding: 9px 13px;
  margin: 0 0 18px;
  font-family: var(--pixel);
  font-size: 12px;
  text-transform: uppercase;
  line-height: 1.4;
}
.section__head .tick { color: var(--green); }
@media (min-width: 720px) { .section__head { font-size: 14px; padding: 11px 16px; } }

.card {
  background: var(--card);
  border: var(--bw) solid var(--ink);
  box-shadow: var(--shadow);
  padding: 18px 16px;
  margin-bottom: 16px;
}
@media (min-width: 720px) { .card { padding: 22px 22px; } }

.card__title {
  font-family: var(--pixel);
  font-size: 12px;
  text-transform: uppercase;
  margin: 0 0 12px;
  color: var(--ink);
}

.grid2 { display: grid; gap: 16px; }
@media (min-width: 860px) {
  .grid2 { grid-template-columns: 1fr 1fr; align-items: start; }
  .grid2 > .card { margin-bottom: 0; }
}

/* --- Scoreboard stat panel --- */
.scoreboard {
  background: var(--ink);
  border: var(--bw) solid var(--ink);
  box-shadow: var(--shadow);
  padding: 16px 12px;
  margin-bottom: 16px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.scoreboard::after {
  content: "";
  position: absolute; inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    180deg, rgba(255,255,255,0.05) 0 1px, transparent 1px 3px);
}
.stat { padding: 4px 2px; }
.stat__num {
  display: block;
  font-family: var(--pixel);
  font-size: clamp(10px, 3.5vw, 22px);
  white-space: nowrap;
  color: var(--yellow);
  line-height: 1.3;
  text-shadow: 2px 2px 0 rgba(0,0,0,0.6);
}
.stat__num--green { color: var(--green); }
.stat__num--pink  { color: var(--pink); }
.stat__label {
  display: block;
  margin-top: 8px;
  font-family: var(--pixel);
  font-size: 7px;
  color: #b9bcd6;
  text-transform: uppercase;
  line-height: 1.5;
}
@media (min-width: 720px) { .stat__label { font-size: 9px; } }

/* --- Rule list --- */
.rules { list-style: none; margin: 0; padding: 0; }
.rules li {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  padding: 10px 0;
  border-bottom: 2px dotted #d9d5c5;
}
.rules li:last-child { border-bottom: 0; padding-bottom: 0; }
.rules li:first-child { padding-top: 0; }
.rules .pip {
  flex: 0 0 auto;
  width: 13px; height: 13px;
  margin-top: 6px;
  background: var(--green);
  border: 2px solid var(--ink);
}
.rules .pip--blue { background: var(--blue); }
.rules .pip--pink { background: var(--pink); }
.rules .pip--yellow { background: var(--yellow); }

/* --- Retro callout strip --- */
.shout {
  display: block;
  background: var(--pink);
  color: var(--ink);
  border: var(--bw) solid var(--ink);
  box-shadow: var(--shadow-sm);
  padding: 12px 13px;
  margin: 16px 0 0;
  font-family: var(--pixel);
  font-size: 11px;
  line-height: 1.6;
  text-transform: uppercase;
  text-shadow: 2px 2px 0 rgba(20,21,43,0.55);
}
.shout--blue  { background: var(--blue);       color: #fff; }
.shout--green { background: var(--green-deep); color: #fff; }
.shout--amber { background: var(--amber);      color: var(--ink); }

/* --- Time block --- */
.timebox {
  text-align: center;
  background: var(--blue);
  color: #fff;
  border: var(--bw) solid var(--ink);
  box-shadow: var(--shadow);
  padding: 18px 14px;
  margin-bottom: 16px;
}
.timebox__day {
  font-family: var(--pixel);
  font-size: clamp(15px, 5.6vw, 26px);
  display: block;
  text-shadow: 3px 3px 0 rgba(20,21,43,0.6);
}
.timebox__time {
  font-family: var(--pixel);
  font-size: clamp(18px, 7.4vw, 34px);
  display: block;
  margin-top: 10px;
  color: var(--yellow);
  text-shadow: 3px 3px 0 rgba(20,21,43,0.6);
}
.timebox__season {
  display: block;
  margin-top: 12px;
  font-family: var(--pixel);
  font-size: 9px;
  color: #ffffff;
  line-height: 1.7;
}

/* --- details / holidays --- */
details.retro {
  border: var(--bw) solid var(--ink);
  background: var(--card);
  box-shadow: var(--shadow-sm);
  margin-top: 4px;
}
details.retro > summary {
  cursor: pointer;
  list-style: none;
  padding: 13px 14px;
  font-family: var(--pixel);
  font-size: 10px;
  text-transform: uppercase;
  line-height: 1.5;
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
}
details.retro > summary::-webkit-details-marker { display: none; }
details.retro > summary::after {
  content: "▼";
  margin-left: auto;
  font-size: 9px;
  color: var(--blue-dark);
  transition: transform 0.15s steps(2);
}
details.retro[open] > summary::after { transform: rotate(180deg); }
details.retro > summary:hover { background: #f1eee1; }
.details-body {
  padding: 0 14px 14px;
  border-top: 2px dotted #d9d5c5;
  margin-top: 0;
  padding-top: 12px;
}
.datelist { list-style: none; margin: 0 0 10px; padding: 0; }
.datelist li {
  font-family: var(--pixel);
  font-size: 10px;
  padding: 8px 0;
  border-bottom: 2px dotted #e2dfd1;
  color: var(--ink);
}
.datelist li:last-child { border-bottom: 0; }
.note { font-size: 15px; color: var(--ink-soft); margin: 0; }

/* Entrance photo: only loaded and shown once the summary is opened */
.shot .details-body img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 12px;
  border: 2px solid var(--ink);
}
.shot { margin-top: 12px; }

/* --- Where / entrance --- */
.entrance {
  background: var(--yellow);
  border: var(--bw) solid var(--ink);
  box-shadow: var(--shadow);
  padding: 16px 15px;
  margin-bottom: 14px;
}
.entrance__kicker {
  font-family: var(--pixel);
  font-size: 9px;
  text-transform: uppercase;
  color: #6b5300;
  margin: 0 0 8px;
}
.entrance__addr {
  font-family: var(--pixel);
  font-size: clamp(13px, 5vw, 20px);
  margin: 0 0 6px;
  line-height: 1.4;
  color: var(--ink);
}
.entrance__hint { margin: 0; font-size: 15.5px; color: #4a3c00; font-weight: 600; }

.venue-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}
.chip {
  font-family: var(--pixel);
  font-size: 8.5px;
  text-transform: uppercase;
  background: #eef0ff;
  border: 2px solid var(--ink);
  padding: 7px 9px;
  color: var(--ink);
  line-height: 1.5;
}
.chip--green { background: #e2f8e2; }
.chip--pink  { background: #ffe9f4; }

/* =========================================================
   BUTTONS
   ========================================================= */

.btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: 100%;
  min-height: 54px;
  padding: 14px 16px;
  background: var(--blue);
  color: #fff;
  border: var(--bw) solid var(--ink);
  box-shadow: var(--shadow);
  font-family: var(--pixel);
  font-size: 11px;
  line-height: 1.45;
  text-transform: uppercase;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.08s steps(2), box-shadow 0.08s steps(2),
              background-color 0.12s ease;
}
.btn + .btn { margin-top: 12px; }
.btn:hover { background: var(--blue-dark); color: #fff; }
.btn:active { transform: translate(4px, 4px); box-shadow: 1px 1px 0 var(--ink); }

.btn--green { background: var(--green-deep); }
.btn--green:hover { background: #0a6416; }
.btn--pink { background: var(--pink); color: var(--ink); }
.btn--pink:hover { background: #ff85c2; color: var(--ink); }
.btn--amber { background: var(--amber); color: var(--ink); }
.btn--amber:hover { background: #ef8f0d; color: var(--ink); }
.btn--ghost {
  background: var(--card);
  color: var(--ink);
  box-shadow: var(--shadow-sm);
}
.btn--ghost:hover { background: #f1eee1; color: var(--ink); }

.btn__arrow { font-size: 12px; }

.btnrow { display: grid; gap: 12px; }
@media (min-width: 640px) {
  .btnrow--2 { grid-template-columns: 1fr 1fr; }
  .btnrow--2 .btn + .btn { margin-top: 0; }
}

/* =========================================================
   THIRD HALF
   ========================================================= */

.thirdhalf .card { background: #fff8ec; }
.thirdhalf__big {
  font-family: var(--pixel);
  font-size: clamp(12px, 4.4vw, 18px);
  line-height: 1.5;
  margin: 0 0 12px;
  color: var(--ink);
}
.thirdhalf__big .arrow { color: var(--amber); }

/* =========================================================
   JOIN
   ========================================================= */

.join .card { background: #fff; }
.join__lead { font-size: 17.5px; }
.lang-badge {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 14px;
  background: #eef0ff;
  border: 2px solid var(--ink);
  padding: 9px 11px;
  font-size: 14.5px;
  line-height: 1.5;
  color: var(--ink);
}
.lang-badge .tag {
  font-family: var(--pixel);
  font-size: 8px;
  background: var(--blue);
  color: #fff;
  padding: 4px 6px;
  flex: 0 0 auto;
}

.steps { counter-reset: step; list-style: none; margin: 4px 0 0; padding: 0; }
.steps li {
  position: relative;
  padding: 0 0 16px 42px;
  border-left: 3px dotted #d9d5c5;
  margin-left: 13px;
}
.steps li:last-child { border-left-color: transparent; padding-bottom: 0; }
.steps li::before {
  counter-increment: step;
  content: counter(step);
  position: absolute;
  left: -14px; top: -2px;
  width: 27px; height: 27px;
  display: grid; place-items: center;
  background: var(--green);
  color: var(--ink);
  border: 2px solid var(--ink);
  font-family: var(--pixel);
  font-size: 10px;
}
.steps strong { display: block; margin-bottom: 2px; }

/* =========================================================
   FOOTER
   ========================================================= */

.footer {
  background: var(--ink);
  color: #c9ccdf;
  border-top: var(--bw) solid var(--ink);
  padding: 26px 0 calc(96px + env(safe-area-inset-bottom));
  text-align: center;
  position: relative;
  overflow: hidden;
}
@media (min-width: 720px) { .footer { padding-bottom: 34px; } }
.footer__pitch {
  height: 12px;
  background: repeating-linear-gradient(
    90deg, var(--green) 0 14px, var(--green-dark) 14px 28px);
  border-bottom: var(--bw) solid var(--ink);
}
.footer__title {
  font-family: var(--pixel);
  font-size: 12px;
  color: var(--yellow);
  margin: 0 0 12px;
  text-transform: uppercase;
}
.footer p { font-size: 15px; margin: 0 0 8px; }
.footer a { color: #fff; }
.footer .totop {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 18px;
  margin-top: 4px;
  border: 2px solid #3d4060;
  font-family: var(--pixel);
  font-size: 9px;
  text-transform: uppercase;
  text-decoration: none;
}
.footer .totop:hover { border-color: var(--yellow); color: var(--yellow); }
.footer a:hover { color: var(--yellow); }
.footer__meta {
  font-size: 14.5px;
  color: #a4a7c2;
  margin-top: 18px;
  line-height: 1.6;
}

/* =========================================================
   STICKY MOBILE CTA
   ========================================================= */

.sticky-cta {
  position: fixed;
  left: 12px; right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom));
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 54px;
  padding: 14px 16px;
  background: var(--pink);
  color: var(--ink);
  border: var(--bw) solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  font-family: var(--pixel);
  font-size: 11px;
  text-transform: uppercase;
  text-decoration: none;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.sticky-cta:hover { background: #ff85c2; color: var(--ink); }
.sticky-cta[hidden] { display: none; }
.sticky-cta.is-hidden {
  transform: translateY(140%);
  opacity: 0;
  pointer-events: none;
}
@media (min-width: 720px) { .sticky-cta { display: none; } }

/* =========================================================
   MOTION / PRINT
   ========================================================= */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  .badge-ready .dot { opacity: 1; }
  .sprite { transform: none; }
  .sprite .f-a { opacity: 1; }
  .sprite .f-b { opacity: 0; }
  .sticky-cta.is-hidden { transform: none; }
}

@media print {
  .sticky-cta, .hero::after { display: none !important; }
  body { background: #fff; }
  .card, .scoreboard { box-shadow: none; }
}
