@font-face {
  font-family: "Press Start 2P";
  src: url("data:font/woff2;base64,d09GMgABAAAAADDAABAAAAAApCgAADBhAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhYcgzwGYACEdAiBYgmaFhEICoKKTIHsUwuDRgABNgIkA4Z4BCAFhEoHhGgMgTEbTZJVB2LGOMDAcHbFyECwcQCRB+GBqh4T6BjjWDuUaiW4urV5wi1kb3DFOx1vEPVYipjuvC9dbLLikhUnuPeXeJP4HqXOresf/tGjDM2EE2XIiUesNQVkzR0nL2T2mHULJjiCmPwMbBv5k5y88MC/93puksIjUtGjSk8ZYH0BeATU2vYfvEO+ISU8JM9PxEuik4p5qu7/v87sPoERNDMBR7YsGfRNLDvf/pYDQJoJ4gJhUe/pPSdbbZW6Wr/mm6ampHnMqroDyc4KOKGcdh3hUlGrqOmqx3fusLQ3cBDRHDmfLB2GHpuSYmNScCdUhNH1tlBuiLbesix9REoQgTAGa8HIZOxsvv9p6r/nJoQLYJdR4WWnKoWii+LwqWO59OjNh5zlnZ5G9avGEPVT39urr1m2fy2Ep2i4EAvHmUAaFVMTIKUboGg1739S3di+vVpbaKu86A0p0/meYM6ELIPa0GXoMhJnDkInCa4SdaL6//2p/7X7HEmWnUf2B6owa5QBLJrgEHS8esBO3vvcc6xzdK/iK0uKpciZSHFItgNK8sH5WTr3XjmykrdsXv5E+kB+meHqPYd+8hEyQNgxlNNV73VDbTVNU4yOMX1A560kJHpZzWFXjdceKYMRWYpMxOPVV/+xY6/93qow0cy8YwwqAkKDiC10DJvP3btrTOv13Fy+lihYKihll6JwmT8XAZiy/bUT3EVCRkYAxlKsQIppHz8PrzHVpZjTDBFda6djDJ0OBQk9DDEiUXy+ggEKDH82kNHHOElKyslArX/c4MuQ9K2OzetNTKO+xYS5MwJickz6uQR9PrOFSklCmKMAAkMEbZBohDGBQjcSM8G1JF5QQqUrIdp4DaFhWuBUCVP0GTwc2HEQiWyiM2Mz7UKiidX7mobMckYiYY4+U0kzBZvhxs8Zxgj0Z0vYMCaDU+ZmGjka0kO4KqPagkbgAPnPCE7oV2VgmgZspjQk7nIvfTTZFPmlmIYeSBOkTiAZN4sevKITLK9mX9qAe4wennU5BlYl+SWA/FLUBlgKIL0vSbcG/LxGyIghRer1a+1HRaEJYMZdoCF0wjPKjg9JZ6QH0iNZqI3UFmob1SrYhaAQE6rDJsuKn265tirpdCDfUcVDkGXJrM+K2lBtprbafWCz0H0D0l++O1vD/9b/m/zX/6/37y48W4S/RJVXXHvis2bPLJ5uexr4DnitRwDgBdLcATGD7ZiYAOHw/zYgM48lLOAA57nMUtayjukcZQ4bWchyZrOMU5zgJIu4hIIpZiyoTxOa0ozmtKEtKlas2XLlzoMnL94CBAoSLNRqZrCGO6zgCWHixEuULEOmLNk666Kr7nroJV+hIsVKlalWo1adgVZyi1WcYS/z2cch9nOY21zlMdfQbOYsm7jOU25ymglM5AHnuMJMHjKeIbYwlSlMYzGG6KGPMQOMmGBOYxrQkEa0pgUtaUU9bDiyY8+Zg2M48efDl58QbkpECRchRqRosRKkS5EqTSftddBRkp766a2PXH0dJ0eVchUq9VdgABd5NrCeHexkO7P/GL/5LVVYhEaL6nRPvUSL36NBfonp/38mQyVptAainxjDn9A1GIgLum/A6T/EzpzSd+6zsrt3XbayQLuglMz6P4AAbk9l4vKeuEII2RtAECVHEqNeFpESwwx8d5qK9XkoL4fE/nSfPlc9ZdNuvqgX736+DJ6+Og9wcwofTg2vGLrocJ2xXBwy7eNN3RTAu9OwQPt5uwehTDG0ztEhgveh/7vAMzO3JttMiNM6N4uUGfZBxawzUBVXStXI9BnZ5b2RvEiFiRePWVd3Mo7oPOucIDpAxXM8H6Zc9UM/OwJNb2uye1M1qVjXWq7c9o2pmDeQ3yrJdi46MNLtYpXRL8YDpICBb8RfPnwBYeRKaWdBuk3yqFYj/Qw2nxkW038KdkaH9zIvxvJl73S7ABv8YYj9PPIxgKAdk2xI2zjZYt+Milmw34yKWdh87A3tKepuzYN1DmVT6t5cVxNWM8pimCH0DBF07IMdwiHZVe8MbyMfGWVdklzecX++yBgjeShHxIma4c5JIxujXHaWRZsj4wxMLM0L4Z+C282o8WeLguaNxAZBHi3BTu+0K3f2bO3r4F15GkkaR6719PZ91OXnWDo1xTri4n6LeFyQtjPjNnbPomTmHrlh0a1ImgHK5pX2RdxPpVbaz/r841Uv3yUv68RAGkb6Ot0YEYeM5mEzYM2irOR77EDa2CMJYjYQ0efvgjRb2oXk3injRsY+w0ZmyKDiZRTS9u9kkhDDIjevp3w2f7JdwSIzrCNtR2ZZpy5oXIINLsMmV2CLq7CH+2Av98M+HoD9PDhRCRL+LenzTu9UsE66sVPSU2d1VFKLv9zZTlrxVz+kc2xpHbX9ZAdYjunYhTyXoMBlMLgCRa6CyX1gcT+UeADKPFhnAWm7Qu3MwqSHXekjJnTdg5ph9oXqgbUxayN+diMAhxGiWZO6KcQYXVC7IEDTebs+aevGqKuUdfWZOWpaAYo2rt5meA070/GvQO5sVZJtRcjwXaH9CwBYvpfN3qaskz8gXYaEQ8sPEEL+CkX22Pq9E9mfcpgkpt9eeMC6BM3EOpcJY38cP24/HxI4WaETR7Dp1zsOfaJspho5ZIS2TuRRxbzS+EdnUIznrS5AasPR3YzGsK5zPxUDJcqglz3uyq/1p6Sv6u6tZK3uuZIzaiMg0Aypa5SDQkWkpS5ZTRwfjyGJMhPKos6Ww5KoTtPlJ1D2Q6oCULHkoG46gwFxQMm8k7EVC85ZyZ0jyoGr8dZVs1LVXqZieWZMa/rNInJmi8mjFjkORwZmQbXYAUmbI8lJngGxkYOMs2MUPUeEnHICfTuc13Uk8W4t9W4A1bUY9ZnqvONDXqxi6PZ2IqYNjHvTX4qC86XLs0Cg63KdD8yC+DGYaXz3CaFX7qwpkq33+nLGdu168OveuNNX5joiS77d88ChPfPpi8CR3fQVcbbKNpxyBhWxznoQRB4aRpklN3J62p+wu5vaT1uGHlDMZV2hvf+nOMQveoO56s2TbLo8UgreoII7gaEdjsxKTa8FL7XjkXKeHcpmd7o/IKVH0nZ/t7o3h48fCR3UHV332uGjgYM7HLsVNFewjoNm1ID5x8NWHuWx3hknwgAsmZ3kBKe2EdhpTnBmCHDZWU5wbhuBned05oXwE8Cc2MUYwaX7COxyjODKkwBiV2ME1+4jsOsx0jdMM8FvYgW3thGYxwm2h4AV2+EEt7cR2B1O5i48tuD36AT37yOwBzEyDxky9ihG8Pg+AnsSo1NPA4xX0jzjjnI2xZ+zg/rF4lPF+OTLgEThVYJirxMEb0qYaGfvxSfs/fjEfMDoh33o/MBHCYKPEwSflOD8sE/jDvss7rDP4w77wmHwZYLgqwTB1yVMGfsmPmXfxqfsu/iUfe8w+CFB8GOCLviJ/Qwq0lPrLfKYgbuUi1dPx/HPSixAIHQ6LAB4ASBOgfgH9YegkT7QcA4OUykPZLbilyz3PSB2siMtidP0RBmBoh08vyuxrsQ2L3fQ3Q5hrlt2whBD56nET4lCBuk+2D7eBbb5tpVSaH63aJ92Eap6JVaYWGGZNLHtMo2Zu8ej2kj7VBbr5iLNa0Bgl4fXMPQYHWc66XsWa8jxBdOdBfVDPiVmAikfe6LVmfqakRnN6I9hAIioSazNHQMxnNvKBdKEML73Exmce2RuAIiAldkVuVoaaBx0buociAg/9AU3o7H11zli4YV7frB+pMDJ0gK16fiAOz9v/TuLdFVNyyTTLAtMMRtwtGFKELiSiZdzDVm/IGMWJKQ6aG5a3vPU/hIg6YBciJacfHaplyeHT9A55m6YI3wAZFBZ2M3O3SLlj+JTA3ZEODT4z7Kpjupb12kNCVlQrMFgIhBFbPCkKGgRsa+pLg9mHEasCpJFVxpaHBLNnAa1p4VSYOnTrbj18VsG8U0Uw21sDVcJ/II4g3ilxutQh0A7oFHwKrd74UzhOmkF9fgG5ZoWylotB4WF7gOTyISsehvQHgpT5uI9xUUNOxSe68Rfg36LFSYkGjqCz23I8T81c+tDUowN98GAO6vONwrxSdp0WIXVjlbdXcQ0boelx5acW46qwKCQK+Kb6brR1AxCPRhiKUd0NL2EXee5RiyH+WxkjSJYywdslMXCtHF6VJRE5roW5KAI3VL4rpWGEP4kiugcxcw6PXuQRWdJFUVlDrjQzy/CRUZD+lMxEXBYzdJv4ZbC/hpHac3jvFwfNzBCcxizzdIC9jeb0SBgSmKqxSArUoNEbvk5KsKoGW9wJ4bBTT6jWRDmNflaK0EvqwRYa5jJArfFRXOIwGqklEhpd0YDwTEldoSLzBrdc48RPZ2n6eIeDaFJO2CywnnxvVWPnmERj+RIHFtkvmLh325Jt0kITHfnonDEQooWZtcstOYMfmviog6g09reuIKyidc6ky3S1ecEL9407FSD6wU5pFAjmp0I0UpVW4wGbc2WkIUe891wOkHq74Dm44AwYVJQS0jcugPH/mTUUZnQw8PbFI8DEmskY+sZ5RS3YKJlj+YJvNAqaMq7Dhtx7cSQMjatoZdsT7FgrRS2cObOlPSUhHJEtSnErpIFKQ4NZW9JiZnkKHxn7lgQo83EkEV3tobPAANXKFr+ZYpJsgvBKkJgFUqOHDiog7VDNmpLbqZVmzCcQVMjbBPS45zYLHETTq05SGrMHXQ+5yJcG/IzC1rro+LnekQz7/wBHgIy1Ug0kiIeaMtdCBMHqW2MC7WQQAshxRu0lCvk8DCc0oKbXGk6SmMTTx1jogfjlU8D97CdwASOhW6beJm3ikho3X7lOklrqmlNFT8LvuSA7kcqoQkOBY6Hd++Cj40oWTpUQFilDDYli8IASiuxejhabHJlcIB29CAUMRMfJde4cJ0LkGTVJ483WAueqw3CgL6gwJyZlyEwpqfVI8fAwYYoItM+luoQLJiKQfdQuj8MeXgRmsQ3l6PX3EjgBRPnra8npDYVq8JYkChhocD2nZ0f1CvHJClFnRFLopnheGpiRuzoEMnAjCbtjZRRyeu0syx4r2bDpg4ZmNUybIZTBvbA9gDpVP5hTQNYG5AwRsuU+DCX4i6StkxhhB7yYWjqP6Neiu0ckY0XQyhOEmIXYbmXkCJH5wi5QhkSkJRdRsKKsuSCSqgEgZst+aQnLencKs5V+8mH7J3DbBARUMIVGBnBgtIKhw4RZwz2zYkf1RsopKLLlsh891SzrBLD8t+Br40niYHKf0RhKsQzk/sm7LFhEj8bGxN6LEgPFS1sH3UpTDrBcpusRIBHniJuJAaTMKOg28YumqIUQ6+DEtNtkDMPOHTGnhqoXOHXCTFd6KIuwgy1Ql9vOm4gkO7CR7g2lkh7wOAHW8HGAyz79igRrzZNehHxcmZvBq2IgYGgI2cgHtWrWgvQouVpwtOaj27BxPUsWmzyRPh6iEuQLzMw5VF9ESdaI6QbiYha3xJjaNxpd4MFUblSQyThRHNb4OTSmGcHXD+BeEFfh5/sUW9igXG61oBaoskU942EMx8qUky3teTooWvGjlbXXwOQEB1K+LPO27H14GF7FgWf+5/m3P/iS6oTifvStSTlcSxJ860t7Dg9Qs0yxUmM37iAoBdRWukOJEGB5KY0kgRJmgQBIkk+NH8UkqNDn8FX2/EhQXWHpg1EfUp0fIBfN7pZKJLibIazPcMzf9mq6u+rrvPGvudaBTXn6/pwkppAIAa/x43rWrN/BqBhlNT2U9JN4issrcZqh94h2KGjDg9MipB20Z3iKVPl3VOfBAukqQN9tuEqlrAXPFTVnotAby7H0KzS6/fxBUuhKZkyrorPyDAYgZsXA8l7V1SNGeyV8x5dh5KVb/eUpQ/UmHt63kVYcJ4YgdYCPOs9FgFQ54vOR1AmttwC0LwwlMXC6IOFAeqXuNnrQcbUKlk+bqfD2LyujYGd0E+ejaZGrrSnk6ptXN5Ef0QUteRO3TPcJa2NJpjeTdpQysVeBnFvOg+4v7kgItWDZAyaflRGqtJnWebZ9Xk9YNgQiLxjKAdU1QA8Oi2HTQQwjuRM9XScGLHJOiO1kPIqcNa6hbKuL0Mhe6mDAiVePPt8LRXhZNoAvKgo15JitIZuDvoB6FxvHxsWK5s9mvX0ftP3JRMja/YZO58TTvJELZ1aGR+68d6OZUZxJptbP8ejRd5vu4hXmlrMJb4gcA8Jw5ekEnlQzJIGK6gGGH0dII8PLE3D+cxxEaa6ExrNseutyaVvgkYse7tN+WQL7ZKsY5+kL0ndoIGxrzzRjVrImX+RVzlN0rrqeDReG5OFp/9g9GXS+gtqgDh825WyjRLfozH2jo9lJfoK2ZuvQ3wSYsK7qorAdvqxg1eWmY6vBa1tiJX4ehLxvZNbx4zZ+Mhw8ib7WASGSe2J7P7bepTtnxPGVdN3HdCY6CYCeJaowxhqUqnTmxYnKc7FKBBfIZEN6aYO4XppIawtf884iAMCTX0BSfjSxKt7W0wX36ij+5nMnsO7+DucTX/skXIQu1XlhkUHlZtRV0M4hCVMhGW9YouXxZ5V8feUeEAEb9789jtY2QKxLPbbS6L/pcVjvqQ29+gv/Ej28hE7HSaDhnB3ZUAIcGmKpMVm169BY8Zajvd0ZOr6vrTmlGh7y+6/NeQ8LedTPzYj95Yg4nwi5mNnmJKbq59za+cbRFwCd8IzehAsxg+ba2dcoGfO/S2pnsJ+1tRaqz6SPPKh/iq47AA37DqXycOmiv2eIkMCWgEf4+now6sLqFyIIND5to1yEZ+rOYCI52eltLWyHL70URRs5cpJXjSGu7gd3PR96b7cUqprX8xnySLteR1GLjqwkbSRHSeBxfEBGjrOi1qucCYficjLbSimKZWLQ9o2//A6Re1zb0g1eapRSfxhpDeKa5+3OlEKUnwvSL4VwXWqiMsAK2qQtAY8xuSvB6yLU2dbooNv90hK+dRZU3d9e/dPn4ShhaFMHj7oPOYNOlQYs9j/9sgqDK4OKh9PTXTwxRLPSBRaoPKjP3NtvCBCqbE7KArIvb5oKOfuxc3pFSOz3nAKNIdtu+aLqCfPnPq77Am/mrrC4v2/U6prE8dNr7TT64JMydXy1ekFD3forK5GnvgqEGOgUsguGmFylYSS6psxRrtsW9z6kRv99bfSyDf+/YNMN+7oY6ePz49q0QhvVclh9vDfaY+s8pw0gHp+H+OGo8T3WZQnbF0sjGI291bgUSMkbTN8e+6ks3wQfHlpNB5OUkvLhPL7UbftMPq7D47ZxuaCd7APa4rvJrBwz47AnKqVj4vB+oiSLyzuHq8vE1n2iL3tJuE6ZHCr5N/cMVm4YzwEnc4yYzzqbK7txfp8IYkuXXmMKz8QgwXv7rrWNev/lDJaFafKrHsLEq5OVw7sKhFSOFj/bj5Pjzubq0eM+RnA/pDRBm8CAaLRY5Bh5ALSbJgUuhW3OPpzX/aSF+oS2cjyzuYuuYyEM0AZFO3mMMsdFVld5Wj02DE+dMCNabkHxuDaiyp4bra3uMVnFPtgqx9DPNhYOH0jooekNd3mrv6nLrTY3SqaZ/P9aydBGvKnb9hdDq2uZMNOY4g6DgZqxwPUrHFmTCplncwujlQ7Z+XkmZBikXvosaDYMeUS3Mth3Ee4ZOX/bxojaJy+szRABPYvcqfxguq50sIKMRllX8pMU/y+h8adsEJxR56IRAV8GgVOS65zKfyejOelvvJfktlH3s409WyIqpEvMNMUIzKutp9huuJLspOjJ3T7tfO9USx0por616NDTmRxH0sKXidl1R/bL3aUR1HZxqlMj2Nt/vLi6NCG3Z/P4Yf23vJ+anv2WoO04cT5zfqKdeyhLmt1tTyxmLW73FGL/dPGPUc9efw1B1tMkp7c/wHaz9mP4v9y9aUYd/3f/Gf+/2+rQQnyK/vYX4X9mlwNGfIMWgsZnt9oCJZCZzgvKD8NATiPWmx20uPcW6cjTnnUa8KtnrmvTcF/WDCFGfP2qtryezAftJMJrVpYaWghtc4ZwrPQoID6oXvr1BqXRIznsU4246sC82k6zn2qpuct1FHP3FfO9V8qVPReAQug5+22m23++P57ZunQZgatGzM2M24qEoircGeD58k7p6YLrk+Dy6YurHoeAZCvqck5n9Jx7q66N9mG5lFfel8FyI8Ked2Bp+IezlVuz2D6s2lTU1sXmk7tjQXP1ftmGyHCMgE8DbYpLGQwuEQVuDmo58hkbdTrpbeaIH/ueqCpAhPpPm0L+f9Yvh+NGoNBINt9PsKPjg5Yg+rdbcnZHCuiT6guBS629V5qkrs7OwpNDbQKPFMD55SFFGtqnkUWTMIF3j98awOI10TnGE++oUlNrydqo8bqQQG+bcAeuGipfoesuJjaRkcQnUXfHjdOaJZa5waEHfVCCHGpxPg0NubZFsLO4xgsgqsEcELmHVL4pjCdb/XF91V+9wL85NnY4+8+vpvRlZfCER/J4098BFJAKxNS3nCYq3UGUvDUMclImrPBFrXYeqKjLlRGvXbcarXUoAUvMWv3zJcADsSdRJaQOwZNop2KWNgpTS3ZksmORQRRdRSUnw+/5Mef8pOKJAosoRdyJXiGKkkLechKOL/f4e0ao7VTOxC8R/Rb3tj8QfI7+5kbE2pDV8QpqITyqJ4pJo2vQBMNbFNhlpxTo6UTAcF26rp93o6PCT7jPRL7CfRpxDmtlGiIK0ADaafnQMgQ0/JO2jXEw0UPFdQo8ah7IlFHTSsTHlABLJVjiBa/W7eQ8lqhRjBClCBAKM4S9XzYYlMYJuM1Bm70QjFZ1cR1QI8thwH1+9on2xRmDdl8a85QiLJ0oGnPuNpiQqPGmIwv1qQhxrTKGzdl874QynHJnSuEKWf/ZDYc6/YGKQ5IF8wPX7RXw5gs/e15oOBaSMQU4nw0Y8nOwOtkvkYwKqZTuzeFMCDy4fNOcttYzE2SWg/il1iENXoF0j5ZoGS7YmuOIUvYU0m256Y2ERAfmOcw68LqCtwSkLMU1ZPIxpMycjXkhyp1RgpbuG4RUlwZyOQaCQBYIUyd3KWlco1Qyqkc584Z1STwgJ5SxABaM0VJ7EIXjzYTsVbXasEip1nGN+WWDBGdjLQbSnw680qYFxvQrIjoFbMW7VPGcjeUWdap+Q4gN0m7vJD8mlKNN1yFB+DOWSqQV166HJbT/Q5ZlGmuPi7lR6cPWcEeSltydisbAHQRAJKxBmX94x0Wtkdr1Ci1gd5qYuszIklsBi1T67s6K4eyuKrI9A+vxjcWu76jFs8et1wHkKp9ufgIQ8U29G9CevNXGenhJAcNdkDzXY016obqcmTPDeLqDSyBkENOsSGPN+vOUKIQKfQBPlBxLHcPKFQiZo0BSSgZEWZzxuTO5wsMcZbOCTG0SCgNMb0uLfmynqu4n0l55RpE4by1uurnasT5Tvg5pNEbSgiEOZxdeIAMrS9sO5vM5TaFlNj6SKbExdi2nDU8LIG0SxLrn2ZbgLV7hBgGYLnN1d7RVPjHBH1snTkNFQoEJ9yEXCMvSPmW5OZgvEYsczTH9G/LzzuWSN20N6tHt8os1QGGt507MY12eHOzfXE7i7a7BjUq9HXnqj46irKHUfQAn25wgzVT89p6QtTi0kXiwZ6LFZcShSPeT3t9Ah7eQ/Hd45LawpLc/ER6AocYeQ0oExqhV0KQRfFr6nEpGMn3cGp+jeN+yse595v3LnAcQCpB3l82jii0g/058mDCpcRHE46Ll6UlSFJ40W3Czy0lIGpSyGCj+xznXNpplv4d8SEgMsVOQi1oR7cRd9zd+DFGJpCjt2TVPr7ScQXrD5tdSImXvlhlnfb8ANw9QvHhfm2OoqFhTu+dv/rhMYjJecBiUFlJjeFtejw3OqJkgtaKSieukRYLmjdjU48SBqyH3mDivjaO4UZsQRbgw/Uu0tTSxTEcxY+KASkunUkoF6gEllHalWS31toWf+hQTknVFAUMMhQRxy3fs1Cp8Xl1ysX35mDgKNwfVBXunqHyo2kHUloohLrAR3/EQDWWCOmJ6BRSDB1XnoSr7l/a5nUB9b4eM1WxKRBf+IHzwJwO7NyVP/ZDqJNElvHtqaygynVYrdZ8L2k/jmoQMjCthjqhKHrALIvv4WNhZcGfxq71xhhhQHSiSXqj2VMQRJaUk7So8XTG6nTjIzCQKHo00y4SXgs0T+5NfaYwa4maLgH9O7oyTQv94hWgXVNXlkFE0cSobhwG9HCmaQAF99Jkv0Yqr6MbQSJhVULKhNTKRFzCgTX5f32DBHHAm99XQqDmWHbs+4s55kFtlfldskSuGOQjk9jiCplO7d64hQG4rsWWAoNqx7Rszi/0MVJFw0oJS+QBTcLphkaS6AayUL5BsjtWXHWjxAEOWlQClz3BdW0y4I3I8AHRRfLsOUJYrKUGEnEyOSxOYOKhlioitWUQjZ10l7uk/1YNDxbcBgJFrXQcUvXQVskQ0SS0zK4UD/XmjsNl4YWRfN9VJl9KjxokT06a7+CNOet2jaIWmj4vxeFLOmiSSRy2mCVdo6R0iv4SqzeJax6QLoNbghALw6ef0h16DDGHgUS1UDsBLaa9W9OlNuUpzUIthCbFL69QOqYQdnLjzjdv7zu0qNC3mHNm8iMUS8CrhQdDSOpZC8eqHv3hKS95G2CKTbwVVzW+KM1vtTRWpW5GMOt9NR3QPpIT/W4IQ5PosRFzmGMzm/yG5So5n/MVmNmmck1oBrPkplN5mT7aEXipGMIK3dIOt2ZbE1wpEIdXKGXAL0ii2h9eW6O0W7v94/AjjDBALoKLpO+3T2efsz4wVQg2crwSw0pbwihYByUWggiSX7K8or8iwnRvDz0/J9TNugDqmMRdtv8GhukVd9/bI8rNo40Aikl0el07CxNmQTdD+YIolsJ+9flXbctGa+fZ55mugE4Pzg5ucIvDY3vnfHerMQVF1NeZXhdbGi621J62T4z+biywVX5tgwNMgqnoh2ah7aclmDj3sb6YWybR9fvHx88J7Nk5D0wElPCqGLPicC+7uKpCfqhi1PvsG0wkLemV6HfPalhqCTi/CXr2peg2ntfddGhRITmZWy5zo3ineRvXucxZJAfOJWWUFnwv8ZkDAlW2SOJGA6Bi6jQQyNxePBd51Ser0kK7q5IlIDswdunGKYWDkTERdhg7WZRxmabT5LmjGCbOzJlpWPR6MR9ODEJnkFydnEZnedGfKm1TpV2gMqvMCku4cRBaP+FiVHypUiS8qRWO9cbb13dlOUeElnklLUW0ZbHiNt14rS/Q7EiFjWrnLL4su003Vlbms9kXmyxXYG+f5TF4djCpfXTpOYYV4IG8o8iRcwhCCqJzgKuRyYZHO0xqbDSgVx7ygMjYWInG3j91DP4dRy1Ojp2Gcb9FHoA3b7Vw4LlRVkSWEM7IDEMcMuKrdgRPyxTRoKrOVcjpyq1rMmQArRUzb4quJ2dKMqABvbGMxbrs1LZfk7JkwhDP1UwB2v/9PL8TIvjvY0CRp7jSC0JeGY1KjtUuaelyPB4pn/uIQ42iD+hJyRiAlPa0uwNwuIfl747B3f+epnebc3QoMhorZcB3oK+EhEhZjRjgjZ335vnbpJDAMliR7of2+IzdfiYFGROAg8QlcvH5ygiIQQVXI04G3T9N1rJSUrkLHI5WloeUBMVAmxcSYurn5P2CWA4/efrTnOknLkAo6JR+y8R0oWViTayfKH3EMQ0mh1ijR2SNpeRboq7pNYobsaiIf307UNar5fDG41V21yHf9cYhaN016RVPyKjsFVCtv19L+8v6pGsRW7IQNK7d5OifIwYL9/W8b+eTfGDOKPJk6W4qiSbWFRydp/PrSqnu63Ip4WRVJn5Gibn+yI5taIJNodOQT3uYRWY095/QBU1xUFAaU9ZStKVEt8UiwXPIPXc8CPoIA1E9bmeppVgorqUw6QZFESUa+qPzyzSYJ7uUtAI/+FGf2F5Slk4pz0XYRNHm1SRdxZuVjufj7fr9UroBgN400BCcFuH1LvCD67+GEG7QfpJER9cp2o2L3SyUt+VScp/s01L9mPY5qJ+8V6K63vdgwzmyxoEijm9kIgv2DWXexZexfvq7lMf5rNGq6QY03iC1z7yzYYIFG+8F3b28Fz8aSlT/7ClcS9OJ4G3NE6zAJaAGGpSVQqfU7Cq2a8hhQkEuvaGGAbRusCc8qRRmtEig/WBaCyZrsGsCyUc2mNhpgMJUbpBSK1YX+x4uQUDmkDuKAi6vuMaFiv4QRTdV2uPLO/cjLHtbUAfQVCPaLDGCv78JPVjIa0YhReX1VBKpnuxmIOxBZVoL4rLeNqD9fv7EGsDNaMXgJN4DC4RoeKXntSYy5BXlr5sNe+JkA8i9C86b4PXvMEcR4gUSgSlTbAKTj6tVJhsy7fvDp2rKNhCk9kaixFA6hXaUpogF4MhsLIIvNp/1ohtETzaUOa5nGiosSppVwS0GSKA3TK4mWnC1rTLdIYPFPOANZEo3iK41s1efG+Cux2tt6s4m8PbgLMXznNa7/9RyfG0/UXzWBGICrajxJ4UbzFUuDHB07oYiksbOLONYLNgO7XDpcaQ0IHrKp2eqHdKlNYN9078B8SvmupXlwQjszRNFRGWNerrbg+0GF+MHc4iNRf1DLwJIe62/O+/MWo+vwQbY9MluMXW/sBCxNB2U2yk4YSRS5x57A4RpwMb7ihJh5t5OtqjKrW1qyJ5ycg+rxBB6J6XIisC3SwKFvAc5pjklDR/Gbn73l//+Yo8iUBbtJtN4U53+LFX8/VQEs6Nz3lDbzq0fbLE7bHf95YEPx+Ph8nOaPv7rJsfD8fn1KSXg181GvcZ+VivfvlpPAww+fHwIyjFCQlnwnLzBPtR3E3/o4Tf/qye7P1wIG/4CGxvs5s3u3cwHmo7z9Mp9a8fLI+XYlmea/jqwwEGJoxPt0y6Pv//+fjNmfS9CgamTkZADeiYXSi2nvm4fpc1UD632Jw642x/u+gv7B9o97nevPG+3jxeeH7fLO7aP26+z9Xp/3+20Z4yuKCIXiU90cfYRRRJT6QFnosrUM/D1psoLq0bdrr66cVt9eSYBm3Df/CaW/247Gank1A8KvBUXPPKIYmv9kdaU08hJLnp9Ohw2m1pRqxiLCD6Mb/abuVrn6kPYCJYdZ/G9AiJcWoOpAfqKPMQlW6RbzBCXCA0b4mUCG1PyqGdUhC9kf3OWr+JA1zx4hfgk+QHpAMiy8pxLVGOiDE0RUYL5RGKawdPh+c+jrTAJsQxEf405vBHyT1+qqdRyXOS4jyawKGtQScfPqUsPljldn4R770zVGWWZKDPFnHJpHSMRLgF862kzj9OTH1uDVgXEejARMsfolkil7MivKKv+4vBcJ7SUyKGXQmkAkqSWmJVtOXJT2TTCQwwE/gNJiG8JceIi3Ot8Ku3t5LSrHs4f81gnuYEM90V8eoyKN+N51dS7W/HhkMCSpq3a839T3kECkYA6KpDmyzgVFyyXFG2bpSeI0Yh+WEkxdT/8toNvp4IiU6klhBSeaO8SGVAkBFLTJFMCCZaKJiy/8oJSAVtMuiE8a1CpBf4U/s8SQQa8OaOdJyqsMnCR2mMRvZSDEgEYifVCFqlYkbwH4NnAmY7Iou0yupQ8Th+SRPc3YCcJx7QeZILn1dAtRdHYV3gmyky944fGxcu3ChAJypDNlEtdEg/oFWUMmLkvC2LGoylednSGfHiFTfTKvuKgUljz8k4ayGjKhYOj4B6B1LkgLnXjNKBHmXzA3L50ack8EnIman83N6ec8reD47KoXTvi3mbj6JK+u1beMWWlFy4Up4z8La01zTSUICFvs3Ek+X7vrVRJRAks6AZzWIsIwTSQ5qQ4HX3BfJQ3/c1GxPQiEkOsXlF5ou78ToNFQ0M5kVu84QGBkkBeUI5Ndp/0m3ygNORcNVAJgv4DBgZxv92Nn1VkpsSSOqOIIO6MS3IltIyuNmT0yaxRj/aQyD1d3UI2SsqMSOh9se/nJsXLSwqm+HGTslyz4/0bwvw+4MNnWPLpo9my8KUyXeywFb/px2ZKaqnHTVtiz2wbGZVXaAyMlmQ4o/f2D9EPCtv/RnAvdeUZ4Bm9ooUsqnXKKYWYOtBm4bJ5Gg0RXjrM2dyGqu3QdYOrCN5E/D0HnInAdCwDJLFGumdXaIdRroy+JcGcP6X3dhPvN6ugZHxB5TK3/mWyfa2aXx62E+LHLe+tcWxcpnWYPd1teZ7mFx/QaXbHZufsf4aPdKYq8OWvnxG9IhuF8/ujUxL8gLFIxKjmZhoyomS4V1jtK4p/hgW17SwvwpXPNE5opx1XeEym20qFGsgxpcM5+4WKCq49C8V+fmmxIKyoDzOsRU0DelmoDpi7EGPqimYa0/ufhFpWAlksdwxxqBqqQ9Rkm4sg5GgNHhnWLOmA3lLBgPZflvDR+aIXXmDruUn+5Nd5Qh0oYWRO1NUbGIA/Xe5BLEVmGHdkMesKQM/rxVd1Sr2piNZess+Iwd8j0NiFZw1T6giTha7N/GLggnhTP5/jovJ2roDoTOlFv2kUMnEMctZCm2o7EM/Y0bzHwMGsA22P+22fp15+56y9M2WVqZb/mF45Hu+uW9zdnZ4PyzhCCK5H5zPdTdNLvs8PP33bQb/66b3wq4kAlaCvrfgtifYzadJMCnct3tPTkpQyC1pslO08yBTqJmlCWOfgGVaC7TAxaZlu1KDtsl9dFG5iYdUA+msuEL0gr543yABZThT0z8rFniu5+Wwv3wx5y86e8sqg6G/45baFaASNeK2cWFVbcrqh7tY+zNkHvfHsdAN9o1w1IPuCi02/8Pw1XVSyDriL+i3VOAAc0I8rOzaTbzpbozJPpQPNgKfPwVEKLFSK1Fz7fgPsfpSSFutEjh1oB72nX4QAIXRB7oyT+273OtO9RuQasxx/pGyPs0vYTqHvL7zd0+aw3XQihBl4dKGd/fUz6sPhYMvlJ7EmLXZdSpX1mXbQhvf5MSTX+c/gEo/Per+ld3xuPn+kjc8be8+2P+9cP+3a+2rhsA396ZMPd7S/P+w7jw8P9xce7x8Wnu4fvn6xCoXcx7t3kSy5v8atypd5vGAWZDz3nRPxP00ObR43qxfU78SXqX8G+tWc9jn5FITSSeWYijFcuDDKh2ihpI1TGQDMkSlFbL6Cp/E6eEVwcmMaar9oSKz6+RSkfQLn4DIBZJ8shVhza/GrNQUAPcosFzlbUTjEpprHSsBWZE5TlRCN0WkNxT78ETeMmIj/6/5pqvK5aw8sy99XG+8rrJ/nfBhz3/AyzWylJDEWfwIodLQSaE4v81pE96HVw5Ueeh1uJZVV0kxOCUNBCEt8UnxqzQgWcIasjTFmxts2YSbUXknkewIAAvzr/9/Hv8Z/fGsmM+clwC378H0bn6z9z/h7p2EHKj/HAAnKAmhEaRdRIOxZ5oGV1ZiP33y3Wgjn8lu17+fxVqNtE7Xu/wyaZVy7/HHsq9bld94+P6bZUlujm9Yl4FoU3pU1mc0J93vVWpyR6Tl6paSHMVGX74CGf0F6CfwBEHV+o9GiOhqNRgAvCGCKDQMkImSaCOwzKyMQgCG5ZIRiBB4IY2q7oBXvt0uY82y7TJgV2xVc1G7XowXdtuvjwCdjzicgXzU8p1wQ9zOr9FWpQM9U1yE3VZni5899mUp53KWLkyJDpRxVqmSr1lulal4yuMqSI0+N4mKjgxyVWtcrU0rFmxuPrOXYqXZGTbtRW8V/3QSL1lmWWMFebDK6fXO0MuUGxFDNk18Wra+Mq7QzWE5kJcFqLlMoR9/jeKSabPJjROG4g75acz8DRBgYDsupBHA7Xq+aIxcqdQrEIhBTFWamtjb6UYnr0aKRprcSb1dvlVyrn4RxdLv10NnvjRcgJCRkbJznLH1spq8tTMOWnX7svcJBjnNc4CKOnDhzcYnLXOEqrty4R3JgmVx539e4Tp6bTGcr2/D2ruGWm/kLcIvb5LvTRszsEG8IFaOgQZhMoTRKLCO21uZ4r0lQHt8fnAqJkiRLcZdqterUSJUmPVLIkKm/LAMMMthAy9FsJ9t72mmvg/F01MkQwxjO0MZkPr5u3nKA7o5xnMUsoSGNaNz8jGgc5v9ioSf0hYEw5BBf+cZ3zIQ7yVhaY8FGFFaiT32srEAPY21oQJQeegkTwQRTdrKDesLIejZwhKOcZhe72cNeTgljoziMgTBhNHOEKeZ8ZB8qltoyk95WCTOGwlxYYM3IOMYwkQlMYiQ9vSQyqifqiwZM5gn3mEK0BzzmvvJBDM9UUkZVK8W3lzComRZ4WIxwos07R7wMunRhHgO+h/IO4XRWdat3Ubp8kd7LyrK6mnIjbMNovtEnM5mf8/+NNIxIaqoTid77hUDyhXNZg10hpnTeiLeE2Hq+HYOoY3EnPQpO1E2r+UbRLcbihlHa8MQXeZjNzAZmrTJ3Mol6Nh1Wf5jJMH1QMCKwKHAsI3h0mZitTTQuc7COWHVSoR+3O+0/w2EIZS337ei5meHlg+R5O5+Y98y3NFBMnS5CN3qbMnm75Dl7r9cvS0wT") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

:root {
  --ink: #17100a;
  --wood-dark: #2a1b10;
  --wood: #4a3320;
  --wood-light: #6c4b2d;
  --stone: #8b8b8b;
  --stone-light: #c6c6c6;
  --stone-dark: #3c3c3c;
  --grass: #5fa940;
  --grass-light: #8cc95e;
  --grass-dark: #386b28;
  --gold: #ffd84d;
  --gold-deep: #d99a12;
  --paper: #e8dfcd;
  --red: #d9443f;
  --pixel-font: "Press Start 2P", "Courier New", monospace;
  --ui-font: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans SC", sans-serif;
}

* {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
}

body {
  display: grid;
  place-items: center;
  height: 100vh;
  height: 100dvh;
  overflow: hidden;
  overscroll-behavior: none;
  background:
    radial-gradient(circle at 50% 36%, rgba(111, 80, 47, 0.24), transparent 52%),
    repeating-linear-gradient(45deg, #17110c 0 8px, #19130d 8px 16px);
  color: var(--paper);
  font-family: var(--ui-font);
  user-select: none;
  -webkit-user-select: none;
}

button {
  font: inherit;
}

kbd {
  display: inline-block;
  min-width: 1.4em;
  padding: 0.22em 0.38em;
  border: 1px solid #1a1209;
  background: #d8d0bf;
  color: #2a2117;
  box-shadow: inset 1px 1px 0 #fff, inset -1px -1px 0 #948b7b;
  font-family: var(--pixel-font);
  font-size: 0.86em;
  line-height: 1;
  text-align: center;
}

.page-grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: 0.3;
  background-image:
    linear-gradient(90deg, rgba(255, 255, 255, 0.025) 1px, transparent 1px),
    linear-gradient(rgba(255, 255, 255, 0.018) 1px, transparent 1px);
  background-size: 4px 4px, 4px 4px;
  z-index: 100;
}

/* ============================================================
   STAGE
   ============================================================ */
.stage {
  position: relative;
  width: min(100vw, calc(100vh * 16 / 9));
  width: min(100vw, calc(100dvh * 16 / 9));
  height: min(100vh, calc(100vw * 9 / 16));
  height: min(100dvh, calc(100vw * 9 / 16));
  max-width: 100vw;
  max-height: 100dvh;
  overflow: hidden;
  background: #79b9e8;
  box-shadow: 0 0 0 3px #0d0905, 0 0 0 7px #2b1d12, 0 28px 80px rgba(0, 0, 0, 0.7);
  container-type: size;
  touch-action: none;
  isolation: isolate;
}

#game {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  touch-action: none;
  image-rendering: pixelated;
}

.stage.is-playing #game {
  cursor: none;
}

.sky-glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 0%, rgba(255, 245, 190, 0.13), transparent 50%);
  z-index: 2;
}

.vignette {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  box-shadow: inset 0 0 7cqw rgba(33, 19, 8, 0.34);
}

.scanlines {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  opacity: 0.22;
  background: repeating-linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0,
    rgba(0, 0, 0, 0) 3px,
    rgba(18, 10, 4, 0.12) 3px,
    rgba(18, 10, 4, 0.12) 4px
  );
  mix-blend-mode: multiply;
}

.is-hidden {
  display: none !important;
}

.boot-screen {
  position: absolute;
  inset: 0;
  z-index: 200;
  display: grid;
  place-content: center;
  gap: 1.1cqw;
  background:
    radial-gradient(circle at 50% 42%, rgba(111, 80, 47, 0.22), transparent 54%),
    #17110c;
  color: #d9c7a9;
  font-family: var(--pixel-font);
  text-align: center;
  letter-spacing: 0.14em;
}

.boot-screen span {
  font-size: clamp(18px, 2.2cqw, 30px);
  color: #ffe08a;
  text-shadow: 0.2cqw 0.2cqw 0 #5d3a16;
}

.boot-screen small {
  color: #8c7a61;
  font-family: var(--ui-font);
  font-size: clamp(11px, 0.8cqw, 14px);
  letter-spacing: 0.08em;
}

/* ============================================================
   SHARED MINECRAFT UI
   ============================================================ */
.eyebrow {
  margin: 0;
  color: #c9b99f;
  font-family: var(--pixel-font);
  font-size: 0.58cqw;
  line-height: 1.6;
  letter-spacing: 0.2em;
  text-shadow: 2px 2px 0 #1a1108;
}

.mc-btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.9cqw;
  width: 100%;
  min-height: 4.3cqw;
  padding: 0.65cqw 1.2cqw;
  border: 0.24cqw solid #1b1b1b;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 42%),
    #8b8b8b;
  box-shadow:
    inset 0.22cqw 0.22cqw 0 #c8c8c8,
    inset -0.22cqw -0.22cqw 0 #565656,
    0 0.35cqw 0 rgba(0, 0, 0, 0.36);
  color: #fff;
  text-shadow: 0.16cqw 0.16cqw 0 #3b3b3b;
  cursor: pointer;
  transition: transform 100ms ease, background-color 100ms ease, filter 100ms ease;
}

.mc-btn span {
  font-size: 1.18cqw;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.mc-btn small {
  color: rgba(255, 255, 255, 0.62);
  font-family: var(--pixel-font);
  font-size: 0.46cqw;
  letter-spacing: 0.04em;
}

.mc-btn:hover {
  background-color: #a8b997;
  filter: brightness(1.06);
  border-color: #f3f3f3;
  transform: translateY(-1px);
}

.mc-btn:active {
  transform: translateY(0.22cqw);
  box-shadow:
    inset 0.22cqw 0.22cqw 0 #565656,
    inset -0.22cqw -0.22cqw 0 #c8c8c8,
    0 0 0 rgba(0, 0, 0, 0.3);
}

.mc-btn.primary {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.18), transparent 46%),
    #5d963f;
  box-shadow:
    inset 0.22cqw 0.22cqw 0 #8cc95e,
    inset -0.22cqw -0.22cqw 0 #31551f,
    0 0.35cqw 0 rgba(0, 0, 0, 0.36);
  text-shadow: 0.16cqw 0.16cqw 0 #2b481b;
}

.mc-btn.primary:hover {
  background-color: #70ad4d;
  filter: brightness(1.08);
}

.mc-btn.ghost {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 46%),
    #4d3a28;
  box-shadow:
    inset 0.22cqw 0.22cqw 0 #73583d,
    inset -0.22cqw -0.22cqw 0 #291d12,
    0 0.35cqw 0 rgba(0, 0, 0, 0.36);
}

.mc-btn.ghost:hover {
  background-color: #634b33;
}

/* ============================================================
   HUD
   ============================================================ */
.hud {
  position: absolute;
  inset: 0;
  z-index: 20;
  pointer-events: none;
}

.hud-side {
  position: absolute;
  top: 1.8cqw;
  display: flex;
  align-items: flex-start;
  gap: 0.65cqw;
}

.hud-left {
  left: 2.1cqw;
}

.hud-right {
  right: 2.1cqw;
  align-items: stretch;
}

.hud-panel {
  display: flex;
  align-items: center;
  gap: 0.35cqw;
  min-height: 3.6cqw;
  padding: 0.42cqw 0.8cqw;
  border: 0.2cqw solid #1b1209;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.07), transparent 50%),
    rgba(52, 35, 20, 0.88);
  box-shadow:
    inset 0.18cqw 0.18cqw 0 rgba(255, 255, 255, 0.12),
    inset -0.18cqw -0.18cqw 0 rgba(0, 0, 0, 0.35),
    0 0.28cqw 0 rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(2px);
}

.lives-panel,
.timer-panel {
  flex-direction: column;
  align-items: flex-start;
  gap: 0.18cqw;
}

.panel-tag {
  color: #b7a78e;
  font-family: var(--pixel-font);
  font-size: 0.44cqw;
  letter-spacing: 0.14em;
  line-height: 1.4;
}

.hearts {
  display: flex;
  align-items: center;
  gap: 0.24cqw;
  min-height: 1.75cqw;
}

.heart {
  width: 1.85cqw;
  height: 1.85cqw;
  display: block;
  overflow: visible;
  filter: drop-shadow(0 0.14cqw 0 rgba(0, 0, 0, 0.4));
}

.heart .heart-bg {
  fill: #3a1b18;
}

.heart .heart-shell {
  fill: #8f2723;
}

.heart .heart-fill {
  fill: #ef4c48;
}

.heart .heart-shine {
  fill: #ff9d8f;
}

.heart.is-empty .heart-fill,
.heart.is-empty .heart-shine {
  opacity: 0;
}

.heart.is-empty {
  opacity: 0.62;
}

.heart.is-breaking {
  animation: heart-break 440ms steps(2, end);
}

@keyframes heart-break {
  0% { transform: scale(1); filter: brightness(2.2); }
  25% { transform: translate(-0.12cqw, 0.08cqw) scale(1.14); }
  50% { transform: translate(0.12cqw, -0.06cqw) scale(0.92); }
  75% { transform: translate(-0.05cqw, 0.04cqw) scale(1.03); }
  100% { transform: scale(1); filter: none; }
}

.heart.is-gain {
  animation: heart-gain 520ms ease-out;
}

@keyframes heart-gain {
  0% { transform: scale(1); filter: brightness(2.8) drop-shadow(0 0 8px #ffd84d); }
  45% { transform: scale(1.24); }
  100% { transform: scale(1); filter: none; }
}

.score-block {
  position: absolute;
  top: 1.1cqw;
  left: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  transform: translateX(-50%);
  text-align: center;
}

.score-tag {
  color: #efe7d7;
  font-family: var(--pixel-font);
  font-size: 0.55cqw;
  letter-spacing: 0.3em;
  text-shadow: 0.12cqw 0.12cqw 0 #33210f;
}

.score-value {
  margin-top: 0.34cqw;
  color: #fffdf3;
  font-family: var(--pixel-font);
  font-size: 2.65cqw;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0.04em;
  text-shadow:
    0.18cqw 0.18cqw 0 #4a321b,
    0.3cqw 0.3cqw 0 rgba(25, 13, 5, 0.55);
  transition: transform 90ms ease;
}

.score-value.is-bumped {
  animation: score-bump 160ms steps(2, end);
}

@keyframes score-bump {
  50% { transform: scale(1.12); }
}

.combo {
  display: flex;
  align-items: baseline;
  gap: 0.4cqw;
  margin-top: 0.2cqw;
  padding: 0.18cqw 0.55cqw;
  border: 0.15cqw solid rgba(27, 17, 9, 0.85);
  background: rgba(54, 35, 16, 0.82);
  opacity: 0;
  transform: translateY(-0.4cqw) scale(0.9);
  transition: opacity 120ms ease, transform 120ms ease;
}

.combo.show {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.combo span {
  color: #ffcf66;
  font-family: var(--pixel-font);
  font-size: 0.46cqw;
  letter-spacing: 0.08em;
}

.combo b {
  color: #fff1bd;
  font-family: var(--pixel-font);
  font-size: 0.76cqw;
  font-weight: 400;
  text-shadow: 0.1cqw 0.1cqw 0 #8d4e08;
}

.timer-panel strong {
  color: #f4ecdc;
  font-family: var(--pixel-font);
  font-size: 0.9cqw;
  font-weight: 400;
  letter-spacing: 0.04em;
  line-height: 1.2;
  text-shadow: 0.12cqw 0.12cqw 0 #2a1a0b;
}

.icon-btn {
  width: 3.6cqw;
  height: 3.6cqw;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0.2cqw solid #1b1209;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 48%),
    #5a432c;
  box-shadow:
    inset 0.18cqw 0.18cqw 0 rgba(255, 255, 255, 0.15),
    inset -0.18cqw -0.18cqw 0 rgba(0, 0, 0, 0.34),
    0 0.26cqw 0 rgba(0, 0, 0, 0.32);
  cursor: pointer;
  pointer-events: auto;
  transition: filter 100ms ease, transform 100ms ease;
}

.icon-btn:hover {
  filter: brightness(1.2);
  border-color: #e9dfcc;
}

.icon-btn:active {
  transform: translateY(0.15cqw);
}

.icon-btn svg {
  width: 1.7cqw;
  height: 1.7cqw;
  fill: #eee5d3;
  filter: drop-shadow(0.1cqw 0.1cqw 0 rgba(0, 0, 0, 0.45));
}

#soundBtn .ico-sound-off {
  display: none;
}

#soundBtn.is-muted .ico-sound-on {
  display: none;
}

#soundBtn.is-muted .ico-sound-off {
  display: block;
}

#soundBtn.is-muted .mute-x {
  fill: #ff8b7e;
}

/* ============================================================
   COUNTDOWN / FLASH / DAMAGE
   ============================================================ */
.countdown {
  position: absolute;
  inset: 0;
  z-index: 26;
  display: grid;
  place-items: center;
  pointer-events: none;
}

.countdown span {
  color: #fff9e8;
  font-family: var(--pixel-font);
  font-size: 9cqw;
  line-height: 1;
  text-shadow:
    0.4cqw 0.4cqw 0 #5d3a16,
    0.75cqw 0.75cqw 0 rgba(25, 12, 4, 0.55);
}

.countdown span.pop {
  animation: countdown-pop 580ms cubic-bezier(0.2, 1.6, 0.4, 1);
}

.countdown span.go {
  color: #ffe06b;
  font-size: 7cqw;
  text-shadow:
    0.35cqw 0.35cqw 0 #8e4010,
    0.7cqw 0.7cqw 0 rgba(25, 12, 4, 0.55);
}

@keyframes countdown-pop {
  0% { transform: scale(2.1); opacity: 0; }
  28% { transform: scale(0.92); opacity: 1; }
  56% { transform: scale(1); }
  100% { transform: scale(0.88); opacity: 0.9; }
}

.play-hint {
  position: absolute;
  left: 50%;
  bottom: 2.15cqw;
  z-index: 22;
  display: flex;
  align-items: center;
  gap: 0.55cqw;
  transform: translateX(-50%);
  padding: 0.5cqw 0.85cqw;
  border: 0.16cqw solid #1c1208;
  background: rgba(43, 29, 15, 0.82);
  box-shadow:
    inset 0.14cqw 0.14cqw 0 rgba(255, 255, 255, 0.08),
    0 0.2cqw 0 rgba(0, 0, 0, 0.28);
  color: #e7dbc5;
  font-size: 0.78cqw;
  font-weight: 600;
  letter-spacing: 0.04em;
  white-space: nowrap;
  pointer-events: none;
  animation: hint-in 280ms ease-out;
}

.play-hint span {
  padding: 0.16cqw 0.35cqw;
  border: 1px solid #1a1108;
  background: #ffd45e;
  color: #3b250a;
  font-family: var(--pixel-font);
  font-size: 0.5cqw;
  line-height: 1.2;
  letter-spacing: 0.04em;
  box-shadow: inset 0.1cqw 0.1cqw 0 #fff0a8;
}

@keyframes hint-in {
  from { opacity: 0; transform: translate(-50%, 0.6cqw); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

.damage-toast {
  position: absolute;
  top: 9.6cqw;
  left: 50%;
  z-index: 32;
  transform: translateX(-50%);
  padding: 0.55cqw 1.1cqw;
  border: 0.18cqw solid #2a0d08;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 55%),
    rgba(112, 28, 18, 0.94);
  box-shadow:
    inset 0.16cqw 0.16cqw 0 rgba(255, 190, 160, 0.12),
    0 0.35cqw 0 rgba(0, 0, 0, 0.28);
  color: #ffd9c7;
  font-size: clamp(12px, 1cqw, 17px);
  font-weight: 800;
  letter-spacing: 0.06em;
  white-space: nowrap;
  pointer-events: none;
}

.damage-toast.show {
  animation: toast-drop 240ms cubic-bezier(0.2, 1.7, 0.4, 1);
}

@keyframes toast-drop {
  from { opacity: 0; transform: translate(-50%, -0.8cqw) scale(0.94); }
  to { opacity: 1; transform: translate(-50%, 0) scale(1); }
}

.screen-flash {
  position: absolute;
  inset: 0;
  z-index: 45;
  pointer-events: none;
  background: #fff4d0;
  opacity: 0;
}

.screen-flash.boom {
  animation: boom-flash 420ms ease-out;
}

@keyframes boom-flash {
  0% { opacity: 0.95; }
  18% { opacity: 0.55; background: #ffb347; }
  100% { opacity: 0; }
}

.damage-vignette {
  position: absolute;
  inset: 0;
  z-index: 44;
  pointer-events: none;
  opacity: 0;
  box-shadow: inset 0 0 11cqw 2cqw rgba(155, 0, 0, 0.82);
}

.damage-vignette.hit {
  animation: damage-pulse 500ms ease-out;
}

@keyframes damage-pulse {
  0% { opacity: 0.95; }
  100% { opacity: 0; }
}

/* ============================================================
   SCREENS
   ============================================================ */
.screen {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2.4cqw;
  animation: screen-in 240ms ease-out;
}

@keyframes screen-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

.menu-shade {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 50% 44%, rgba(19, 12, 6, 0.26) 0%, rgba(13, 9, 5, 0.64) 68%, rgba(8, 5, 3, 0.84) 100%),
    linear-gradient(180deg, rgba(8, 5, 3, 0.34), transparent 26%, transparent 72%, rgba(8, 5, 3, 0.42));
}

.menu-card {
  position: relative;
  z-index: 1;
  width: 60cqw;
  max-width: 96%;
  padding: 2.2cqw 3.4cqw 1.65cqw;
  border: 0.3cqw solid #1b1108;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 24%),
    linear-gradient(135deg, rgba(112, 76, 43, 0.18), transparent 34%),
    rgba(39, 26, 15, 0.92);
  box-shadow:
    inset 0.35cqw 0.35cqw 0 rgba(255, 226, 179, 0.11),
    inset -0.35cqw -0.35cqw 0 rgba(0, 0, 0, 0.4),
    0 0 0 0.3cqw rgba(0, 0, 0, 0.2),
    0 1.2cqw 3cqw rgba(0, 0, 0, 0.52);
  text-align: center;
  animation: card-rise 420ms cubic-bezier(0.16, 1, 0.3, 1);
}

.menu-card::before,
.menu-card::after {
  content: "";
  position: absolute;
  width: 0.7cqw;
  height: 0.7cqw;
  background: #c7a96f;
  box-shadow: 0 0 0 0.18cqw #211509;
  opacity: 0.55;
}

.menu-card::before {
  top: 0.55cqw;
  left: 0.55cqw;
}

.menu-card::after {
  right: 0.55cqw;
  bottom: 0.55cqw;
}

@keyframes card-rise {
  from { opacity: 0; transform: translateY(1.8cqw) scale(0.986); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.logo {
  margin: 1.05cqw 0 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
}

.logo-kicker {
  display: inline-block;
  margin-bottom: 0.55cqw;
  color: #c9bea9;
  font-size: 1.55cqw;
  font-weight: 900;
  letter-spacing: 0.68em;
  text-indent: 0.68em;
  text-shadow: 0.15cqw 0.15cqw 0 #1b1209;
}

.logo-main {
  display: inline-block;
  padding: 0 0.1em 0.12em;
  background: linear-gradient(180deg, #fffbd2 0%, #ffe46d 30%, #f5b72f 60%, #cf7e10 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-size: 7.1cqw;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-indent: 0.1em;
  -webkit-text-stroke: 0.14cqw #47280c;
  filter:
    drop-shadow(0 0.28cqw 0 #7a4b12)
    drop-shadow(0 0.55cqw 0 #3a2109)
    drop-shadow(0 0.85cqw 0.35cqw rgba(0, 0, 0, 0.3));
}

.logo-en {
  margin: 0.42cqw 0 0;
  color: #a8db79;
  font-family: var(--pixel-font);
  font-size: 1.02cqw;
  letter-spacing: 0.34em;
  text-indent: 0.34em;
  text-shadow:
    0.14cqw 0.14cqw 0 #253d16,
    0.28cqw 0.28cqw 0 rgba(0, 0, 0, 0.32);
}

.tagline {
  margin: 1.15cqw 0 0;
  color: #d8cebd;
  font-size: 0.98cqw;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: 0.06em;
  text-shadow: 0.13cqw 0.13cqw 0 #1d130b;
}

.tagline em {
  color: #ff926b;
  font-style: normal;
  font-weight: 800;
}

.item-strip {
  display: flex;
  justify-content: center;
  gap: 0.65cqw;
  margin: 1.15cqw auto 0.55cqw;
}

.item-slot {
  position: relative;
  width: 4.15cqw;
  height: 4.15cqw;
  display: grid;
  place-items: center;
  border: 0.2cqw solid #1a1108;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.1), transparent 52%),
    #6c6c6c;
  box-shadow:
    inset 0.18cqw 0.18cqw 0 #a0a0a0,
    inset -0.18cqw -0.18cqw 0 #3e3e3e,
    0 0.22cqw 0 rgba(0, 0, 0, 0.3);
  animation: slot-float 3.6s ease-in-out infinite;
}

.item-slot:nth-child(2) { animation-delay: -0.5s; }
.item-slot:nth-child(3) { animation-delay: -1.1s; }
.item-slot:nth-child(4) { animation-delay: -1.8s; }
.item-slot:nth-child(5) { animation-delay: -2.4s; }

.item-slot.danger {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 52%),
    #6b342b;
  box-shadow:
    inset 0.18cqw 0.18cqw 0 #a56a5d,
    inset -0.18cqw -0.18cqw 0 #3b1712,
    0 0.22cqw 0 rgba(0, 0, 0, 0.3);
}

.item-slot.rare {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.13), transparent 52%),
    #776229;
  box-shadow:
    inset 0.18cqw 0.18cqw 0 #baa055,
    inset -0.18cqw -0.18cqw 0 #433612,
    0 0.22cqw 0 rgba(0, 0, 0, 0.3);
}

.item-slot canvas {
  width: 74%;
  height: 74%;
  image-rendering: pixelated;
}

@keyframes slot-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-0.28cqw); }
}

.menu-actions {
  width: 37cqw;
  margin: 1.05cqw auto 0;
  display: flex;
  flex-direction: column;
  gap: 0.62cqw;
}

.menu-actions.row {
  width: auto;
  flex-direction: row;
  justify-content: center;
  gap: 0.75cqw;
}

.menu-actions.row .mc-btn {
  width: 19cqw;
}

.menu-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.52cqw;
  margin-top: 1.05cqw;
  color: #c4b49c;
  font-size: 0.76cqw;
  letter-spacing: 0.04em;
}

.menu-meta b {
  color: #ffd869;
  font-family: var(--pixel-font);
  font-size: 0.66cqw;
  font-weight: 400;
}

.menu-meta .dot {
  color: #65523c;
}

.menu-share {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0.8cqw auto 0;
  padding: 0.32cqw 0.8cqw;
  border: 0.12cqw solid rgba(190, 166, 128, 0.34);
  background: rgba(28, 19, 11, 0.34);
  color: #bfae94;
  font-size: 0.66cqw;
  letter-spacing: 0.04em;
  cursor: pointer;
}

.menu-share:hover {
  color: #ffe0a0;
  border-color: rgba(255, 220, 150, 0.6);
}

.menu-share:active {
  transform: translateY(1px);
}

.menu-footer {
  position: absolute;
  bottom: 1.45cqw;
  left: 50%;
  z-index: 1;
  transform: translateX(-50%);
  color: rgba(233, 221, 202, 0.66);
  font-size: 0.66cqw;
  letter-spacing: 0.05em;
  white-space: nowrap;
  text-shadow: 0.1cqw 0.1cqw 0 #1a1108;
}

.menu-footer span {
  margin: 0 0.4cqw;
  color: #735e46;
}

.menu-footer kbd {
  font-size: 0.56cqw;
}

/* ============================================================
   PAUSE / GAME OVER
   ============================================================ */
.result-card {
  position: relative;
  z-index: 1;
  width: 48cqw;
  padding: 2.1cqw 2.8cqw 1.9cqw;
  border: 0.3cqw solid #1a1108;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 26%),
    rgba(40, 27, 16, 0.95);
  box-shadow:
    inset 0.35cqw 0.35cqw 0 rgba(255, 226, 179, 0.1),
    inset -0.35cqw -0.35cqw 0 rgba(0, 0, 0, 0.42),
    0 1.2cqw 3cqw rgba(0, 0, 0, 0.55);
  text-align: center;
  animation: card-rise 340ms cubic-bezier(0.16, 1, 0.3, 1);
}

.result-card.compact {
  width: 38cqw;
}

.result-card h2 {
  margin: 0.85cqw 0 0;
  color: #fff5df;
  font-size: 3.6cqw;
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: 0.08em;
  text-shadow:
    0.2cqw 0.2cqw 0 #6a3a11,
    0.4cqw 0.4cqw 0 #2d1908;
}

.sub-copy {
  margin: 0.8cqw 0 0;
  color: #bfb09a;
  font-size: 0.9cqw;
}

.result-score {
  margin: 1.3cqw auto 0;
  padding: 0.9cqw 1.2cqw 0.75cqw;
  border-top: 0.14cqw solid rgba(209, 185, 144, 0.2);
  border-bottom: 0.14cqw solid rgba(209, 185, 144, 0.2);
}

.result-score span {
  display: block;
  color: #bda98c;
  font-family: var(--pixel-font);
  font-size: 0.5cqw;
  letter-spacing: 0.18em;
}

.result-score strong {
  display: block;
  margin-top: 0.35cqw;
  color: #ffd85c;
  font-family: var(--pixel-font);
  font-size: 4.2cqw;
  font-weight: 400;
  line-height: 1.1;
  text-shadow:
    0.22cqw 0.22cqw 0 #7a3f0a,
    0.45cqw 0.45cqw 0 #2d1908;
}

.result-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5cqw;
  margin-top: 1.15cqw;
}

.result-stats div {
  padding: 0.6cqw 0.4cqw;
  border: 0.15cqw solid rgba(24, 15, 8, 0.9);
  background: rgba(25, 17, 10, 0.42);
  box-shadow: inset 0.15cqw 0.15cqw 0 rgba(255, 255, 255, 0.04);
}

.result-stats span {
  display: block;
  color: #a89a86;
  font-size: 0.67cqw;
}

.result-stats b {
  display: block;
  margin-top: 0.28cqw;
  color: #f4e9d6;
  font-family: var(--pixel-font);
  font-size: 1.08cqw;
  font-weight: 400;
}

.result-best {
  margin: 0.95cqw 0 0;
  color: #a99982;
  font-size: 0.75cqw;
}

.result-best.is-record {
  color: #ffd75d;
  font-weight: 800;
  text-shadow: 0 0 1.5cqw rgba(255, 190, 40, 0.42);
}

.result-card .menu-actions {
  margin-top: 1.25cqw;
}

.key-tip {
  margin: 1.05cqw 0 0;
  color: #7f705d;
  font-size: 0.64cqw;
}

.key-tip kbd {
  font-size: 0.55cqw;
}

/* ============================================================
   HELP MODAL
   ============================================================ */
.modal {
  position: absolute;
  inset: 0;
  z-index: 60;
  display: grid;
  place-items: center;
  padding: 2cqw;
}

.modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(9, 6, 3, 0.72);
  backdrop-filter: blur(3px);
  animation: screen-in 180ms ease-out;
}

.help-card {
  position: relative;
  z-index: 1;
  width: 64cqw;
  max-height: 92%;
  overflow: auto;
  padding: 2cqw 2.6cqw 1.9cqw;
  border: 0.3cqw solid #1a1108;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.045), transparent 22%),
    #2f2114;
  box-shadow:
    inset 0.3cqw 0.3cqw 0 rgba(255, 226, 179, 0.1),
    inset -0.3cqw -0.3cqw 0 rgba(0, 0, 0, 0.4),
    0 1.2cqw 3cqw rgba(0, 0, 0, 0.6);
  animation: help-rise 260ms cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes help-rise {
  from { opacity: 0; transform: translateY(1.4cqw) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.help-card h2 {
  margin: 0.7cqw 0 0;
  color: #fff2d9;
  font-size: 3.25cqw;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-shadow: 0.2cqw 0.2cqw 0 #5c3512;
}

.help-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.9cqw;
  margin-top: 1.3cqw;
}

.help-item {
  display: flex;
  gap: 0.9cqw;
  padding: 0.95cqw;
  border: 0.15cqw solid rgba(19, 12, 6, 0.9);
  background: rgba(25, 17, 10, 0.4);
  box-shadow: inset 0.15cqw 0.15cqw 0 rgba(255, 255, 255, 0.035);
  text-align: left;
}

.help-icon {
  flex: 0 0 4cqw;
  width: 4cqw;
  height: 4cqw;
  display: grid;
  place-items: center;
  border: 0.18cqw solid #191008;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 52%),
    #6a6a6a;
  box-shadow:
    inset 0.16cqw 0.16cqw 0 #9d9d9d,
    inset -0.16cqw -0.16cqw 0 #3d3d3d;
  font-weight: 900;
}

.help-icon::after {
  font-size: 1.85cqw;
  line-height: 1;
}

.blade-icon::after {
  content: "刀";
  color: #c9f4ff;
  text-shadow: 0 0 0.6cqw rgba(126, 225, 255, 0.75);
}

.heart-icon::after {
  content: "♥";
  color: #ff5d56;
  font-size: 2.2cqw;
  text-shadow: 0.14cqw 0.14cqw 0 #7c1d1a;
}

.gold-icon::after {
  content: "金";
  color: #ffd84d;
  text-shadow: 0.13cqw 0.13cqw 0 #8a5b05;
}

.tnt-icon::after {
  content: "TNT";
  color: #ff7d69;
  font-family: var(--pixel-font);
  font-size: 0.8cqw;
  letter-spacing: -0.03em;
  text-shadow: 0.12cqw 0.12cqw 0 #6e1b14;
}

.help-item h3 {
  margin: 0.12cqw 0 0.38cqw;
  color: #f2e2c9;
  font-size: 1.02cqw;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.help-item p {
  margin: 0;
  color: #b8a992;
  font-size: 0.77cqw;
  line-height: 1.7;
}

.modal-tip {
  margin: 1.2cqw 0 0;
  color: #94836c;
  font-size: 0.68cqw;
  text-align: center;
}

.modal-tip kbd {
  font-size: 0.55cqw;
}

.close-btn {
  width: 22cqw;
  margin: 1.1cqw auto 0;
}

/* ============================================================
   MISC
   ============================================================ */
.orientation-gate {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  place-content: center;
  gap: 14px;
  padding: 24px;
  background:
    radial-gradient(circle at 50% 42%, rgba(80, 113, 58, 0.18), transparent 52%),
    rgba(12, 8, 5, 0.96);
  text-align: center;
}

.orientation-gate:not(.is-hidden) {
  display: grid;
}

.orientation-gate h2 {
  margin: 0;
  color: #fff2d4;
  font-size: clamp(24px, 8vw, 34px);
  line-height: 1.1;
  text-shadow: 0.16em 0.16em 0 #4a2b0d;
}

.orientation-gate p {
  margin: 0;
  color: #b9a88d;
  font-size: clamp(13px, 3.8vw, 16px);
  line-height: 1.6;
}

.orientation-gate .mc-btn {
  width: min(78vw, 300px);
  margin: 8px auto 0;
  justify-self: center;
}

.rotate-phone {
  width: 64px;
  height: 64px;
  margin: 0 auto;
  position: relative;
  border: 3px solid #c8b28d;
  border-radius: 7px;
  transform: rotate(90deg);
  box-shadow: 0 0 0 2px #26180d;
}

.rotate-phone::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 4px;
  width: 12px;
  height: 2px;
  transform: translateX(-50%);
  background: #c8b28d;
}

.rotate-phone span {
  position: absolute;
  inset: 6px;
  border: 1px solid rgba(200, 178, 141, 0.28);
}

.rotate-hint {
  display: none;
  position: absolute;
  left: 50%;
  bottom: 1cqw;
  z-index: 55;
  transform: translateX(-50%);
  padding: 0.5cqw 0.9cqw;
  border: 0.15cqw solid #1b1108;
  background: rgba(41, 28, 16, 0.86);
  color: #d8c8ad;
  font-size: 0.6cqw;
  letter-spacing: 0.06em;
  white-space: nowrap;
  pointer-events: none;
}

.version-chip {
  position: absolute;
  right: 0.9cqw;
  bottom: 0.7cqw;
  z-index: 18;
  color: rgba(255, 255, 255, 0.34);
  font-family: var(--pixel-font);
  font-size: 0.4cqw;
  letter-spacing: 0.08em;
  pointer-events: none;
  transition: opacity 180ms ease;
}

.stage.is-playing .version-chip {
  opacity: 0;
}

@media (orientation: portrait) and (max-width: 900px) {
  .rotate-hint {
    display: block;
  }
}

/* ============================================================
   MOBILE / TOUCH
   ============================================================ */
@media (pointer: coarse) {
  .page-grain,
  .scanlines {
    display: none;
  }

  .vignette {
    box-shadow: inset 0 0 11vw rgba(33, 19, 8, 0.24);
  }

  .stage {
    box-shadow: 0 0 0 2px #0d0905;
  }

  .hud-panel {
    backdrop-filter: none;
    background: rgba(43, 29, 17, 0.9);
  }

  .hud-side {
    top: max(9px, env(safe-area-inset-top));
  }

  .hud-left {
    left: max(10px, env(safe-area-inset-left));
  }

  .hud-right {
    right: max(10px, env(safe-area-inset-right));
    gap: 6px;
  }

  .icon-btn {
    width: 44px;
    height: 44px;
    min-width: 44px;
    min-height: 44px;
    border-width: 2px;
  }

  .icon-btn svg {
    width: 22px;
    height: 22px;
  }

  .hud-panel {
    min-height: 44px;
    padding: 5px 10px;
  }

  .panel-tag {
    font-size: 7px;
  }

  .hearts {
    min-height: 16px;
    gap: 2px;
  }

  .heart {
    width: 16px;
    height: 16px;
  }

  .timer-panel strong {
    font-size: 12px;
  }

  .score-block {
    top: max(7px, env(safe-area-inset-top));
  }

  .score-value {
    font-size: clamp(22px, 2.8cqw, 30px);
  }

  .score-tag {
    font-size: 7px;
  }

  .combo span {
    font-size: 7px;
  }

  .combo b {
    font-size: 11px;
  }

  .menu-card {
    width: 76cqw;
    max-height: 94%;
    overflow-y: auto;
    padding: 2.2cqw 2.8cqw 1.8cqw;
    scrollbar-width: none;
  }

  .menu-card::-webkit-scrollbar {
    display: none;
  }

  .logo-main {
    font-size: clamp(32px, 6.2cqw, 48px);
  }

  .logo-kicker {
    font-size: 9px;
  }

  .logo-en {
    font-size: 8px;
  }

  .tagline {
    font-size: clamp(11px, 1.3cqw, 13px);
    line-height: 1.6;
  }

  .item-slot {
    width: clamp(30px, 4.6cqw, 42px);
    height: clamp(30px, 4.6cqw, 42px);
  }

  .mc-btn {
    min-height: 44px;
    gap: 8px;
    padding: 8px 12px;
  }

  .mc-btn span {
    font-size: clamp(14px, 1.8cqw, 18px);
  }

  .mc-btn small {
    font-size: 8px;
  }

  .menu-meta {
    gap: 5px;
    margin-top: 10px;
    font-size: 10px;
  }

  .menu-meta b {
    font-size: 9px;
  }

  .menu-share {
    min-height: 36px;
    margin-top: 8px;
    padding: 6px 10px;
    font-size: 11px;
  }

  .menu-footer,
  .key-tip {
    display: none;
  }

  .version-chip {
    display: none;
  }

  .play-hint {
    bottom: max(10px, env(safe-area-inset-bottom));
    gap: 6px;
    padding: 7px 9px;
    border-width: 2px;
    font-size: 10px;
  }

  .play-hint span {
    font-size: 8px;
  }

  .damage-toast {
    top: max(54px, 9cqw);
    padding: 7px 10px;
    border-width: 2px;
    font-size: clamp(12px, 1.7cqw, 16px);
  }

  .help-card {
    width: 88cqw;
    max-height: 92%;
    padding: 12px 14px;
    overflow-y: auto;
    scrollbar-width: none;
  }

  .help-card::-webkit-scrollbar {
    display: none;
  }

  .help-card h2 {
    font-size: clamp(24px, 3.8cqw, 32px);
  }

  .help-item h3 {
    font-size: clamp(13px, 1.9cqw, 17px);
  }

  .help-item p {
    font-size: clamp(11px, 1.5cqw, 14px);
    line-height: 1.65;
  }

  .help-grid {
    gap: 10px;
  }

  .modal-tip {
    font-size: 11px;
  }

  .close-btn {
    width: min(46cqw, 220px);
    min-height: 44px;
  }

  .result-card {
    width: 64cqw;
    max-height: 94%;
    overflow-y: auto;
    padding: 14px 18px;
  }

  .result-card h2 {
    font-size: clamp(26px, 3.8cqw, 34px);
  }

  .result-score strong {
    font-size: clamp(30px, 4.8cqw, 44px);
  }

  .result-stats span {
    font-size: 10px;
  }

  .result-stats b {
    font-size: 14px;
  }

  .boot-screen span {
    font-size: clamp(18px, 2.3cqw, 28px);
  }

  .boot-screen small {
    font-size: 11px;
  }
}

@media (pointer: coarse) and (max-height: 520px) and (orientation: landscape) {
  .menu-card {
    width: 66cqw;
    max-height: 96%;
    padding: 1.3cqw 2.3cqw 1.1cqw;
  }

  .logo {
    margin-top: 0.7cqw;
  }

  .logo-main {
    font-size: clamp(30px, 5.5cqw, 42px);
  }

  .logo-kicker {
    margin-bottom: 4px;
    font-size: 8px;
  }

  .tagline {
    margin-top: 7px;
    font-size: 10px;
  }

  .item-strip {
    margin: 7px auto 4px;
    gap: 4px;
  }

  .item-slot {
    width: 28px;
    height: 28px;
  }

  .menu-actions {
    gap: 6px;
    margin-top: 8px;
  }

  .menu-meta {
    margin-top: 7px;
    font-size: 9px;
  }

  .menu-share {
    min-height: 30px;
    margin-top: 4px;
    padding: 4px 8px;
    font-size: 10px;
  }

  .result-card {
    width: 58cqw;
    padding: 1.4cqw 2.2cqw;
  }

  .result-card h2 {
    font-size: clamp(22px, 3.4cqw, 30px);
  }

  .result-score {
    margin-top: 8px;
    padding: 6px 10px;
  }

  .result-score strong {
    font-size: clamp(24px, 3.9cqw, 34px);
  }

  .result-stats {
    margin-top: 8px;
  }

  .help-card {
    width: 86cqw;
    max-height: 96%;
    padding: 10px 12px;
  }

  .help-card h2 {
    margin-top: 4px;
    font-size: 24px;
  }

  .help-item h3 {
    font-size: 13px;
  }

  .help-item p {
    font-size: 11px;
    line-height: 1.55;
  }

  .close-btn {
    min-height: 40px;
    margin-top: 8px;
  }
}

@media (pointer: coarse) and (orientation: portrait) {
  .rotate-hint {
    display: none;
  }
}

@media (display-mode: standalone) {
  .stage {
    box-shadow: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ============================================================
   BIOME SETTINGS / TOTEM (v0.2)
   ============================================================ */
.stage[data-biome="nether"] .sky-glow {
  background: radial-gradient(ellipse at 50% 58%, rgba(255, 118, 44, 0.28), transparent 54%);
}
.stage[data-biome="end"] .sky-glow {
  background: radial-gradient(ellipse at 66% 26%, rgba(186, 125, 255, 0.24), transparent 46%);
}
.stage[data-biome="nether"] .vignette {
  background: radial-gradient(ellipse at 50% 50%, transparent 38%, rgba(20, 3, 5, 0.7) 100%);
}
.stage[data-biome="end"] .vignette {
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(8, 3, 15, 0.66) 100%);
}
.stage[data-biome="nether"] .menu-shade {
  background:
    radial-gradient(ellipse at 50% 44%, rgba(30, 8, 7, 0.18) 0%, rgba(24, 6, 5, 0.66) 68%, rgba(13, 3, 3, 0.86) 100%),
    linear-gradient(180deg, rgba(20, 4, 4, 0.36), transparent 28%, transparent 70%, rgba(20, 4, 4, 0.5));
}
.stage[data-biome="end"] .menu-shade {
  background:
    radial-gradient(ellipse at 50% 44%, rgba(18, 8, 27, 0.2) 0%, rgba(13, 6, 21, 0.64) 68%, rgba(6, 2, 10, 0.86) 100%),
    linear-gradient(180deg, rgba(8, 3, 14, 0.36), transparent 28%, transparent 70%, rgba(8, 3, 14, 0.5));
}

.menu-settings {
  position: absolute;
  top: 0.95cqw;
  right: 0.95cqw;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 0.35cqw;
  padding: 0.38cqw 0.55cqw;
  border: 0.16cqw solid #1b1108;
  background: #3a2818;
  color: #c9b48f;
  font-family: var(--pixel-font);
  font-size: 0.54cqw;
  letter-spacing: 0.03em;
  cursor: pointer;
  box-shadow: inset 0.14cqw 0.14cqw 0 rgba(255, 255, 255, 0.09), inset -0.14cqw -0.14cqw 0 rgba(0, 0, 0, 0.35);
}
.menu-settings:hover { background: #4b3520; color: #f1ddb5; }
.menu-settings:active { transform: translateY(1px); }
.menu-settings svg { width: 1.05cqw; height: 1.05cqw; fill: #d9b56e; shape-rendering: crispEdges; }

.totem-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.36cqw;
  margin-top: 0.35cqw;
  padding: 0.28cqw 0.5cqw;
  border: 0.16cqw solid #1b1209;
  background: rgba(32, 46, 30, 0.9);
  color: #b6ffcf;
  font-family: var(--pixel-font);
  font-size: 0.68cqw;
  letter-spacing: 0.02em;
  box-shadow: inset 0.13cqw 0.13cqw 0 rgba(255, 255, 255, 0.1), 0 0 0.8cqw rgba(126, 255, 177, 0.16);
  animation: totem-badge-in 300ms ease-out;
}
.totem-badge.is-hidden { display: none; }
.totem-badge-icon {
  width: 1.7cqw;
  height: 1.7cqw;
  background: url("textures/totem_of_undying.png") center / contain no-repeat;
  image-rendering: pixelated;
  filter: drop-shadow(0 0 0.25cqw rgba(182, 255, 207, 0.6));
}
@keyframes totem-badge-in {
  from { opacity: 0; transform: translateY(0.5cqw) scale(0.9); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.screen-flash.totem {
  animation: totem-flash 900ms ease-out both;
  background: radial-gradient(circle at 50% 48%, rgba(202, 255, 220, 0.7), rgba(255, 224, 138, 0.22) 38%, transparent 70%);
  mix-blend-mode: screen;
}
@keyframes totem-flash {
  0% { opacity: 0; }
  10% { opacity: 1; }
  100% { opacity: 0; }
}

.help-icon.totem-icon {
  background-color: #5b4b32;
  background-image: url("textures/totem_of_undying.png");
  background-size: 72%;
  background-repeat: no-repeat;
  background-position: center;
  image-rendering: pixelated;
}

.settings-card {
  position: relative;
  z-index: 1;
  width: 60cqw;
  max-height: 90%;
  overflow: auto;
  padding: 2cqw 2.6cqw 1.8cqw;
  border: 0.3cqw solid #1a1108;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.045), transparent 22%),
    #2f2114;
  box-shadow:
    inset 0.3cqw 0.3cqw 0 rgba(255, 226, 179, 0.1),
    inset -0.3cqw -0.3cqw 0 rgba(0, 0, 0, 0.4),
    0 1.2cqw 3cqw rgba(0, 0, 0, 0.6);
  animation: help-rise 260ms cubic-bezier(0.16, 1, 0.3, 1);
}
.settings-card h2 {
  margin: 0.55cqw 0 0;
  color: #fff2d9;
  font-size: 2.8cqw;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-shadow: 0.18cqw 0.18cqw 0 #5c3512;
}
.settings-sub {
  margin: 0.65cqw 0 1.2cqw;
  color: #b8a992;
  font-size: 0.72cqw;
  line-height: 1.6;
}
.biome-options {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75cqw;
}
.biome-option {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.18cqw;
  min-height: 8.6cqw;
  padding: 0.8cqw;
  border: 0.2cqw solid #1b1209;
  background: #3b2a19;
  color: #d9c7a7;
  text-align: left;
  cursor: pointer;
  box-shadow: inset 0.15cqw 0.15cqw 0 rgba(255, 255, 255, 0.08), inset -0.15cqw -0.15cqw 0 rgba(0, 0, 0, 0.35);
}
.biome-option:hover { background: #4b3520; }
.biome-option.is-active {
  border-color: #8cc95e;
  background: #314023;
  box-shadow: inset 0.15cqw 0.15cqw 0 rgba(255, 255, 255, 0.1), 0 0 0 0.16cqw #4f7a34;
}
.biome-option b {
  color: #f2e2c9;
  font-size: 1.05cqw;
  font-weight: 800;
}
.biome-option small {
  color: #b7a78e;
  font-family: var(--pixel-font);
  font-size: 0.5cqw;
  letter-spacing: 0.04em;
}
.biome-option em {
  margin-top: 0.2cqw;
  color: #9e8d75;
  font-size: 0.62cqw;
  font-style: normal;
  line-height: 1.45;
}
.biome-swatch {
  width: 100%;
  height: 2.1cqw;
  margin-bottom: 0.35cqw;
  border: 0.14cqw solid #171008;
  image-rendering: pixelated;
}
.plains-swatch { background: linear-gradient(180deg, #75b9e8 0 55%, #5fa940 55% 78%, #6a4a2c 78%); }
.nether-swatch { background: linear-gradient(180deg, #2a080a 0 40%, #c7441e 40% 62%, #571b1a 62%); }
.end-swatch { background: linear-gradient(180deg, #170a26 0 58%, #3b1b52 58% 70%, #d9d3a3 70%); }

.setting-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 1.1cqw;
  padding: 0.75cqw 0.9cqw;
  border: 0.16cqw solid #1b1209;
  background: #3a2818;
}
.setting-row b { display: block; color: #f2e2c9; font-size: 0.82cqw; }
.setting-row small { display: block; margin-top: 0.15cqw; color: #b7a78e; font-family: var(--pixel-font); font-size: 0.46cqw; }
.setting-toggle {
  position: relative;
  width: 3.4cqw;
  height: 1.7cqw;
  padding: 0;
  border: 0.16cqw solid #171008;
  background: #2a1b10;
  cursor: pointer;
}
.setting-toggle span {
  position: absolute;
  top: 0.18cqw;
  left: 0.18cqw;
  width: 1.2cqw;
  height: 1.2cqw;
  background: #8c7a60;
  transition: transform 140ms ease, background 140ms ease;
}
.setting-toggle.is-on { background: #314023; }
.setting-toggle.is-on span { transform: translateX(1.55cqw); background: #8cc95e; }
.settings-note { margin: 0.9cqw 0 1.1cqw; color: #8f7e68; font-size: 0.62cqw; }
.settings-card .close-btn { width: 100%; }

@media (pointer: coarse) {
  .menu-settings {
    top: 6px;
    right: 6px;
    gap: 4px;
    padding: 5px 7px;
    border-width: 2px;
    font-size: 7px;
  }
  .menu-settings svg { width: 12px; height: 12px; }
  .totem-badge {
    margin-top: 4px;
    gap: 3px;
    padding: 3px 5px;
    border-width: 2px;
    font-size: 9px;
  }
  .totem-badge-icon { width: 18px; height: 18px; }
  .settings-card {
    width: 88vw;
    max-height: 88dvh;
    padding: 14px 16px 12px;
    border-width: 3px;
  }
  .settings-card h2 { margin-top: 5px; font-size: 24px; text-shadow: 2px 2px 0 #5c3512; }
  .settings-sub { margin: 6px 0 10px; font-size: 11px; }
  .biome-options { grid-template-columns: 1fr; gap: 7px; }
  .biome-option { min-height: 0; gap: 2px; padding: 8px; border-width: 2px; }
  .biome-option b { font-size: 13px; }
  .biome-option small { font-size: 7px; }
  .biome-option em { margin-top: 1px; font-size: 10px; }
  .biome-swatch { height: 18px; margin-bottom: 3px; border-width: 2px; }
  .setting-row { margin-top: 9px; padding: 7px 8px; border-width: 2px; }
  .setting-row b { font-size: 12px; }
  .setting-row small { font-size: 7px; }
  .setting-toggle { width: 38px; height: 20px; border-width: 2px; }
  .setting-toggle span { top: 2px; left: 2px; width: 14px; height: 14px; }
  .setting-toggle.is-on span { transform: translateX(18px); }
  .settings-note { margin: 7px 0 9px; font-size: 10px; }
  .settings-card .close-btn { min-height: 44px; }
  .help-icon.totem-icon { background-size: 70%; }
}

.damage-toast.is-totem {
  border-color: #1d4a2c;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 55%),
    rgba(26, 76, 40, 0.95);
  color: #d8ffe5;
  box-shadow:
    inset 0.16cqw 0.16cqw 0 rgba(220, 255, 230, 0.16),
    0 0 1cqw rgba(126, 255, 177, 0.2);
}

@media (pointer: coarse) and (orientation: landscape) {
  .settings-card {
    width: 94vw;
    max-height: 94dvh;
    padding: 10px 14px 9px;
  }
  .settings-card h2 { margin-top: 3px; font-size: 20px; }
  .settings-sub { margin: 3px 0 7px; font-size: 10px; }
  .biome-options { grid-template-columns: repeat(3, 1fr); gap: 6px; }
  .biome-option { padding: 6px; }
  .biome-swatch { height: 14px; margin-bottom: 2px; }
  .setting-row { margin-top: 6px; padding: 5px 7px; }
  .setting-row b { font-size: 11px; }
  .settings-note { margin: 5px 0 6px; font-size: 9px; }
  .settings-card .close-btn { min-height: 36px; }
}

@media (pointer: coarse) and (orientation: landscape) {
  .settings-card {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    margin: 0;
    width: 94vw;
    max-height: 92dvh;
    animation: none;
  }
}
