
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;700;900&family=Permanent+Marker&display=swap');

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  touch-action: none;
  overscroll-behavior: none;
}

:root {
  --marble-tex: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACwCAQAAAAFvizVAABOX0lEQVR42o29W6hlWZae94251r7vc4lLRmZlZXVlS51tUSm3DFVgWpapbGRsSSC/RQgjbIwN1eAHgS7GD0bEiRe/uUEIP3QZP/jyFAHGYIEb66GysCXZUIWR6SzkrpY6qzMrr3E5l31dlzn8MMeaa67Lie5zqKzMiHP2XnuuucYc4x///w/R75BTcKSiosaj1HgqPDUeD6IqCAAqCggOhyMjJ7PvnDkr3uCMr3nFgQKP4nAIR64pyMiYMiVD8Xg8igLhFXNmLDnlTSZ8zFfsKalpvrT3OwCqMOWUnD3e/lTIWOPZ2+9q7zfDbzsmzJgiVJSU1PbpQAifVOK7NK85Z0eNi3/fXJen5lpyfpVX7MmZs2BCyQ0b9lSaOSqUnMyWLCyWw9F+OqH71Sy3xKUOvzthRk1BTR0/muKBnPA+gnReRex2ZeRMWXOfCV+zoUo+4K1foigVGVNynL3OHEcR33/8S23z6MhyMvpbHuw2edsU4TVqKvZUnHHkSEXBnite8JxXD3fqdUKe4/E4HDlQIygSL0JwtsPE3qh5eZKPEJZKqamYksW/UwQPCFM8O9vPzfKSfMCcKac8QPiEa3ZU9nvpO/nOoqldT0HOnCkVHscU2HPsLK7G92uvvMKj5Pbu0vl5Sf7ZfvLaNovEa1cqSo4X+mTNKSVChoZI8NA/FTIyBHIUj4tv1ryMUpPFhzTuWRXRzsfWeOE1FTvOmJDFhWw+XE5OjoS3jJef4QHImbDiPsKnbDhQ2o2UZLfo6J5UKvbUTMjJUUqOFlqk98zFqxEFalUKPJnd5Oadxp5VARy1PYHOfspTsX/kn6044QTwzKkoKPTAhBlZsy65fQQX7y/k1Lar1ZZAevfV2wt0H7uKI2Xcw8T4CsKk9xvt6wkZM05Z8wk3HKmoe4+s9m5m911LKhyZXa2/5SEfhok67sawbJpcr8a93fy9t5DS/H3FQYT73KFkC+TM8dQUTF7M74m9lmIv7S2eSvwOe7r9Bj7ClpskQKRR1eOpkojWhpMQH4vkv0kOC0fOjCN7KgsO3Yg43LuSLFNFRUXBkYKq80zpcN/bIR3idxuJcyb2DDP6nEg8Jmv7lKV4ltyl4BVbSnsOeQiTe1m7ZhBisMS4El6+tl3d2TXv16JkFonDTSDJKZpjbmsX4eNOUFvEIyWTzjGn9tvh35vf6S5NE2Z8/I0Yw5369rrbR318x2rn5mrn6ZROSGsWVeMn1Pg7Ytfo7ZoyMsu8SmoO/4WzbRqDWm4/3qQvZeeEFdrNXgvMmNpdVDsYs2THT1niOdgR0v+asmdPPpYOkJMncTZd2HanuyRKWsRUjR+9e9uG2cBYTtEucm2nDmn2ZD8hMb9qjvhmNx95xRn32dkTtGf33Zys+04hwfG2jzNyi4GaxCCAWmDOigUZNUdqW+Jm/4XH/JTCFnj45ViwpbTQ0y6HI2PKjGNnWbpLPDx8tMnLlc6R1k+79DWBpvu3DBK25oaG+J7H7KPZgkcqtpxxQsEl24f104xJ/6nJmSBUVlo4O4yahDxE1rDgU1bcY2WPwJE9ZTxZQ3hYMuUm5gD0znJhxo6tvUK7cGHvz9iC/U03ckq8Eu098H6wIJJE5/Rm2QJLkiuIapqn3BZYhAlLMpQptT3rFbWohhC5/+D4Y8+KUivm5IMrFRejbW0HRnMRTVx1OFQcc+5ywpEbdsAZ73CHZZLi55zi2dndHa0MWKJcsmPPkYKC0nb7xFI27S0jMQDd9t2kjd2cXEYykFuDxAWi4btT+XnLlddkFNSW1woeL/bMPp8/X30IV3g8E6ZJghpvd06BMiOnGDxoDtfcMaacsOKKGxTHhhMecAcPVgnmLJjaSe4Hx0WzXBPW7Ckt3oWvGcqaciQL7T8Ff3LFlZYw2jme6AQlRQgLGl7JxdzCaxqQHAs8+7gWPpbgAHKfF0JuaaVLsn+JV0DOAaVmyYIjjtwuKYvHm6CPHHNOOXJFCUzwVBw4Y0ZlJUPODOHY271tFtE+cFmyx5sIfOAVR4reESODMqFbvljeIKpjN0eS9xf0mTxsnsxQc3X3fBOcaqnx2mwwwbGjSmpV/3N9T2MO7o9KyQpn4arNk+NV5BytEFwwi3X3xH6oQl/oPf9MWDPnKw7UODK7o8qEKYIYHtBcqCYLqIOTPBSR7W7KyZkyR6jYUsdFlk6R288OJMlzhlVY+u/6c3ftv+v/hv8boeAJYa95HceEOQvmTFFuuGRHJRWKVwWOFLZrDUB4LyRoIl4LyreRjPt4SqaWc3RPBM2p7CCrye1HcoQSJUOoa0/NhAUlu/ggO4u9OXNyIGNmy551Ll87e66ffDUXXVNS8AZb9uz+Sv17eSyph7lDu7zOkAFHLV4dHvlY3+2/vsJ7VVb7nBlTu7oALU2YkBum5i1QnPMGX3AZnkSptKK0BZYO9uUQnICw4A0mfKEefeHvYavQYDkOn1PHTLiw3eiAI8oMfeUfVI+EKUu2FFRgEUyo8SyZR7hxbrBObvGqjYTdqm6YVikVBTVzzvG/f8OOGZOk+GlxL+2kYuFqPQ4EvOq72WfO4QQe6Bfyln7CtzylzHiT+8zwlm87MJiysPz1QEGNY8ED3mbOK0rAv7/9aEct0rv2zDbSlCV3KHnBBoF74ZXnzMiBggMFRYi5Pl5wSLpzW6LqTk39TFkw5bkhp56akgOegjlTciZkZNSUVBBP2/Rx0c4uphOv2oWu8WSfLn7N/1flozaM1D+o/ttSeexwL7Nr+Sf6h0IWl1nsah3IUau3tUkz31L0W17gDt+k5lNqIOxjIg7cwJDN8lUUlLzBnC01+rPp917+NLOInWIn4cxZcZcdz7mmtncVlszZswWEOVMOuRV9Tc4rlnIEBLegombCCXt2dlrWFGw4ABlzpkzJbZED4AnOQHV64GL3uFMrNRu4vWJPiYc/nH3O4/JJWKrycXWhTP4//Vzed/+ee4dvFc/kP+cXebzqgCTMmbCXDdvH5YfuxyEvnzJlxZQveeHqUC1JU8g2WUI3XlfA1whvcMKeguynRy5Jb6jDGXa34A7KFQcqbXb1gilXEc0+MmUhOkEta0gPjLCjairJOeFdtnzKPoJCDn1cP8FqsAk5E6bMmOKoOVJQxqNOOziydiKkszLjjG9xyS+5sTykeFqs879Ww++792vJmeDakuehPpUP5MchqXdMmXPKPUMDaiorgMLnKPhaj0kBoBHvwIVOTYuqNHnOgnPeZMEVV1x+99VP9JE+yyy6hiM5Z8aaFVd8xQ17zZiQs2LOlrKDLTtHJdWzpj3UAislR45SSc6SO2QceshveYE65SfF0yte8JIXvOKKDQXeljuPSAVJo6WPWDWJWs0lWwMrPfmjyf9dq6p/5mXK3FpTORMmTJ9NP5AP+bUSxTFlyX0ecOA5X/M1z/mKz/mMT/hjfvH0Y/1MaxZ2vDUHXHg1590gWQOlZM8lX1ECR6qfZrin08ctiNockQsyyrgtMxY4rtjHxltEcDIErxozgwYGrMWTM+eEd6j5lBsO8dESUMi/mj3I8KGb973sp3POWDPDgYGIld02n4D0aY3m7PF+C+EXXFonL+2eZPFcJkn//Lerj/37/GzNiru8wSVfseXAkSqjyq2isuz2Bfd870kyYEnaJ1JiiqpWlX4Lzyeh5tQVlRSWdcyZM2PKGY4vuWTDTuGMKZuIMbv2hHAhC5RcwiOmHShxypxzHJe2VEnKJIp/IAZ5yE+zn1Ts2FLYBU5pP+YwNyUpxzNylhSGbdSxysssskvvOASQX0wkv6g5MuceG75my54DtWZ/GM6F8D0hJ7s39grjFWCzzBVHCguSIOyZPSaeVrnhiHQC3YaC2vZvcnDmnJJRceAghRQ+M3QtoGdzTjnjuknR1KEGWmOLYNjb9wK21mALzoCbLnTTPfjaQ2OKsI8Y3Fjzpl8uOyB7NEVwFHzNjiMlXgX3btqNkKQpoLeW2N1ecsi2SyrW9jcZFfp2m+dnduocYvx2lBSx4uu8puMu97nPfe5wonMR8Y9qQebc4S73uMeOV+w5UqntSZXYK4Zaagmpt7NgUFFQWP7hR4DDPvySsaCMjfbbUK3+cjhy1rzBHf6YVxysk93ttjCKtSXtTB2eCBJTxhvgDhMmTCRn9wPPhBkz5ixYGgRURUCzpBIVb3hF+PZ46pwlR4QzVhzDDnwWCoYZORUv2bDjQKnNQ2G7UB0zlKOVzgH0yfAcDb7u8hHGPnhzrC5QjiOwofQyaZIdGaL3KWu8vpIJNardn9dRqF2Svtuw1kyRj2tueBPHFRW1lOzJOWHFCSsmODaWVoaU04sBSNq+Wo0iud1/jdBk6M42B45SUakaySSUIbU6g6EL8UzJEPRx9Wzysxwfa/fkZvQCRVrX5QjOAHzt7NEutksHHW6ygTk12aO5luKTsKIxHZMO8Nm2m3wvKx+D9iu+QHiTe+wpbLvcZ8kU4ciBLQcLkNlH/v3YXBIV9W2NSs6BgyGz9UN5yEfyvj7s7hxnSVJu0KUYUuo/LKxFLYTCoGEFuU6zSUc6w81ODIdnaZG7v8j9ECGxw5AzZcopN1T/j2eutUXEFIzvgT69RNEnjIhhiFBq9nzGnvucWk/jhiOODTVKGXKWcN1Pyqf5Y/fEng/14o2u40F4hx0HDkpy7gtyKeeK/0rhQSgPF0xRSgoKajwTVA4smTNB2T+9fjRnmhxd9LoLmpQeGm/dlFPepeBjdraPaaD0kQc5hKOQX8y4yzmf8hlXqtxhS2mLJj3Ye7jQvglgMVFrno20/RkoVkvWzMiouWHDiqnVs6Wh3zWevc4opI6EhSQs5SwpORr0mJFdcQbAOYCbcRbquhUT9ngyVswoKHBUlshNqTk8UoS6s/PktZB4s48KjsyYsr/lZzWBv5uSPPDYVrziFQVI+UfX766ZU1D00Du5FchPAfh+c0sjrSWjYMMRAQp2BgZgfblm1+cfVe9nVGjEleNTEUCLPeAu83OHnHXe/Szc1SVzrimNLjRlgYvovou0jMqOOxcfwHQH9RFisb1U8px3OGWTHEDDfh7GPFtxxsrgned8zS6El3cLrliyJLdyKO03axdu7DxVkiRp/faqGiwUio+QupUJyaBNAeVZ/f5MS9HByeEdB+bkj4XsPOl0dQ6aGTN2VJG/czAO2uSp50AZOsmiD0sO7CliBVcn3S0fP46LtZMzZs41rzhj3kvEtJeWZSx4wLc5wVHwko/5kmuO1NbmUTbcMLVmgY5QVxrmRRsg1IJZ95PTodKE8qdlnDYpmCZPYX3hUSaqSa/dCJQ5O06YXjQRWHs4bsDMSo4JxUipEDLqh7OH+2eB31YoT0OuUcqRSe+Ycp3dkZ7lAZ75khNbYLnlgc6Y8Qb3ueIyLGrMt+v4tAgFW9Z2EEuvfS9JseNRvNOkpdrf49JjUWIIeHo4hu1WUj72iJFbNWFweJTaheL2Q5dgEd2HZYpjHxss7Ys7gO8oSmj9I+6ipmCqLRex2bv1SEUWXqlk/4PtN17wVYJYtKheG30zznjACz7lFRu2bK16qzvpGBw4smLBgiUrw0X6kL/9T+k8qdK7uW1oSz9HSqyt2bHR6idykSfsNk26L7U6q78+EEOZ3AgtpCUZpY8OCPqzpguHOvwTxSMfyuDRHHIdwrtUjwvNflc+23PFlgPlSFsdyzbuUvKlpZQlpQUijQVGsxg3HJkwZW4ZQNYrcNorkk5pmy6rdJ4mtbCQMY18kIodN5RMZfq9iSCemvKCuIKBwwkivME5V3rFXeYWXeoOH2dJzS7mlS0HKEM4PNs8ypmh7DWnQpnj5WgMSxJ6nxvsEKVmp+Auyidzvs0L/ZpcGrC/2zyf8Abv8q94YdzfNrKHCs71+L8NV2PCcpctr+ONa5e6tt5a1kHT6BRCRCwiM0TZoK0Y4KYNU4KaEm/L66zPWKqTLKfkyJbMOD2+t4MnTCJO0FDavJE/HfnDue5EUa2ZskIo5cB00H5/TcJ2UT6ZcsI9to/c04nWUg6OGphyhxu2zZ7tluCi2s0TkBpUAmNsecKajcHgQ8BHe/TrIQYiCUstY9WhDTRBzeOZtmCq1bNTyZk41jiyZxXbRBYgETmacaTsCALU7lfBkZIZUykorVdXsI9d5XH6VLecdc/qJ8KCMwR9NpHDR6qTH5S9HCDjjCVfWtNqnKvTZ+6IiCAqR16xZ9lhdfJa/vHtf9NgIAsWCYifGTw7M5w4Q6jIWLNiyUz4DY7sueFazw935lW8Kw5hCtbGaaOvxu6HWJmytxMUahFDF7qoghtwNZtsZEfGPf4sJZ+woaR+qg+zd90vprH571jxZ9jwKYcOv7ElW6t2qjXnNZAawxNZPubilDk3ltE2n0JFY+hyI09ae+DmsR/i4v+3LMs+YbFmT0lT1eLwlDjWnPzwer61wyFQMRaIEfp9jDNNjhv+u6I0UBw8lejgkEy5t300Ta0FvmTKngrBMXmUXVQflwmF0HGfLf8qtBc7uXU8fEVFJdJftYWDJmTkT5QbamYxCdUBhbWfr9O7zrSHPeTHZSaRaGH+GQtmoW0WkKwaZfLbwjVbPBlTJjhq9kZGbZazsqS7xosPJ6dR98I1ZIMiZXh01O1r4HEIKwquo/Ale5IhT4tvN3X+Gt78F7r7I9GaQ0z7a7z29E+RwtftmghOarbGTNbRINBd3vYWuAGE7not21aZlVt3fcaaGTMWLJgzya1XG/ZLcX04hZnt7EPoExg1JU1wTC8nXo84ZqE9GEPBGKss/LN+s/5VP9OF/p7G9H7OkmujvYYlyaX8kXzs3UGFMxZ8+sWOxbtTZlpSUElIChtes4zwescorNlQBSaaUAgwlulwSV1CuKXTb5HRTHpuvUxPSZV3oqo/LcmZASXO2pnawXVBXa2xBheve5QZNWWvh0xPPuXf8X+t+g90n/0a73lUakuRzvF8ydGqpbBU+W8FdsaKX2XLzYX8zfq9gowZE1Q13owxACndm/IaDuYYnUsTZEKSkl4G8Kl0ljd9bjNm3GPOHTI2XOVpRglf+Qc1GMJFkhYlF64kbEQnqnsgu5AeitG9fP/t+uPqmf7WJOQbOtNSSnKWnPFVZL255LSeMOPXUT6mvghXUFpOPGXSKDRVpKVVpXTBbknbguydnEYbJZCadFQT4Va7d7voghr5Kl3e9JNPOeMb3FAy4R73XBKFFLwawFHGPnK/4dMXFyDKAff+8GhLkzL/cfHMPcob+saHJTMl8N+4tiNNe+XmHXI+sxxGrQQq2bMzlqRYX00HBxeDY7UL4nf3n3jnnXfaZ9e3e1hGM4yuACjkFxMmvMGM5/wxn/Gc0g0Cu6Idpcx427FbVir6hvwJLUt5VNs5DvKhtyJ8wnZEOBtu4h0KNrG9037XlOSx3muWmNHsQJNyu0+CGS+DtBMEGOkUj9yiGB6EGUv2HNmzZ8NLF/GiGkXegpojjiVC8aeS9IETpfggH5G+pDhEIEDbnzxR/CcTI3MPH15FySINQAd7qLbiNev1ILrLG5dYjFjIn/5LBrfstg5J/29nOI5AQcGBTRKDtdGFHantw7V8l7iLREfbMSVzinRH98KKwlOROnJ0BL6V61E0xn8xYau3gh276V6x6tAnHYiKKZ4iLGU/XYuKNjv6fCibl/bz9PLcVGQrHZBHEy6TRoL1GALXBM6MPGYleyqy3PLKKqZZDZ8ljV2+p9vsY1C5VFrqVEpjyff1PRhPaMsEQanUkSEXYalKVVsW7J0VsQZM03fJTZzegvbTxm4hBp7G5qA9HdIKdE9OFtkTnQUWHWwYGWnXaqcHIqPNpwlzMrvyG6bkLgLXvoMq6Sh2oKK9F28+7kRqvDrre4xc1jOPaB5qQYX59YTyQ5iyV88kQvlt0l9RW40oTIzW7DrlqhvNQ5PTXTN1GjKNkKnPErhKA0spKU1uK5HGMYn+z7nYKwwYu1ByzVXOjlLV1JaMas674UEGLZ2whyZSaP5Qn/leimY7/5FqxZluKMhYMDk95Lv6LvrdTWj8q5faaN+oQ8VzYEke7Q7q2HYKHN22DcUIg6LboFdR0ANzMilfq2UaFvdtqHAJRu467QBn9N1THjDlBXsqHDMOHHOtECPsR4FTcqltZwLRJOvrezEIkH3E01okEeN1SCZy0IwlCxRlc1HVa77Blz+Ry/l5g0F7wUvs1h1YmHIyKC1n0XphibMiXjofVXv+EKZw1uacWDGltB09Jma4vcMhvQLZ9ThGC9bcY0XFF1xFefiSWW7eBjpaYEaqZzwA3Eh/NvZSv/bkRuHUXhYRQJmtHnB4EYQTfoXjw1es8ik1/qe1VkkFFZwg7rGICr6aKVNqMuttN4xdeW0m0O9X5JpJ/drlZWRphyYdLjJAAhn7Dmcor3hprazKVtW37PExTwaLWOJ7kWcMuA5nf66FSOIr0TvoxJExI2fBm8AnTzPcWpki360T6wOHPnWP9igrFh9UHwYIu7SzvEpyY/4UxNR2P9c4nHp53e/JSMHfV5A2Ozcj54xT1mTccGMk2iqRImei57G0bOmlPtm/QTraVuUMWGbxpFbhhI3UUYble7VUOAbmnLGg4I90YxC1Y8qBfUczWciEtznlBV9pxiS+lh9gD+PtnjGpd1iIMj6R0sMWXAdbaIqTLDlY80heDbjZXWYIN+wogiog4jeWUOYpBN05M5sY5kU757Z28LX+B8qY6j7muz60br2zpMkx55w7wBWf6w3TqFEuWQB7O0yaSrIAFsy5prCehB85zrq5jvRIh92I3FWaMtrtdiNcnxR5wKSXdzlH+Srqs300hPKt1D0fabyklAoi+a9p/HmqgYao/TBHltRaSozEKgkYk3PKPbY85+rxIdrMBMXzhBWeMlzaV/og3FYFnAi10rEKGGtHaUcrzIiULLj7lLfqn18XcLQDQ825xzlbnnOIHUtN/LakNeTQjrtT/83C/u22VaSTjCe0KFEtmDHHqyX5mraKMlbc5SVfslW10JBwCMgt+ZIX8qAUz5oTk/M5ayW6EYFtesJr8j9Gdmnd0LuSTEJ62uexIiIVIU454ZQTVrzipXGEXce7qpM6OujgacOGSoMo1VG+l3CyBg35mjKoPTVTp12e5JwHXPPJ4xsV5uZOlcZ2O5mfc+9wUXDOAwrT7VQDnKvPWB8D+sd2YdUzBOmjC9LpKKa/GY7nNW/yDncRfsmX3FiPpUwEP13XFM3TZGygj1DRxjEievvIaxjoIQ5NmXVcU4KcacpbCJ9oycwyl+4r5bgbX3CvuF9KzgPus+OSGv8d/5FIJaq+d473DTt4DZNSIydyErXx2ns119su2jG9mbLiDg/IKXhuh1rq7ZI+164ttvOeN1k3lmmkmDR4W0vbo8PDtZgsqiUFcwNimpS8FOEBC36uNSurzqRnODOBk4KNzLnDPSqecxl27kfKTIsY9VNCyjBc3NbFaDsY2WjVlj6Nw9w46DrfYs7e+BlVB8x1I0+WvZ8bRQ76rgwkiZzvvLnr8WICrHJgzooVa04554zpr03I/rM/0unuTU5ZmMAqj0EivMaejbzBu6z4nD9+/JUW1iR2Jg4fHkZu5HEfxlIZtEEZAOruVnQjMCHu8k2EL/icl+zYW2jwryGtxB3cCqJ9337A+VuUEl33kP5Xzc4IrjUlSvns+IffuPvyv5kc7i3zqCStIscNwB2y+bXcn7xVfsqlhs52Zk+WY2pYWh9ekV7CJUlO37c1kJjCeXPNyuIx2+fVS+KEkjFhzjliVVqdBIZsoAMZfKULHDQyjWOYghfBSt8UFPf0/Ul9pOE1PxPqLod8Jm/vH52zeusr5tVNZMFMTe9hOv/jZH71Qc2d8lNe6IR5UtKEZZ1RttYvDB37UolBFT3f0mK+cbooqfEi5hGQJVBO1jnemoIjZ87cbBNaazo6MOlwcWNNkXeLZGkE0jmOIxp9anx0iqAjLJTOAdmt6AHkbUW4x9VHNW5dx1ecMWXREuf8jpc/PuPAleYmq2luZQZULI1r3q3hnLF2U9VzmsEPbW1yCiqRaMgh0azLRck4dnpkUbAwoWTJKtr2pkZ1DCx0OuylvKX/JBjTnCUwZauF+MQDUEZQK20yBpXBAgug7+c4tsw6tGXwTKKmuVhciWPJK/XMI1rXLk0NLNl2np2WLd9whIOBgY+iRBlgK8KEnShTe4pyHLV5A7hItyLKgeeRJ3pgwpItOxh1hWPUuEHRXGqVFNUX1cA4K5lxxo0eEw1ae9yFCBIcfPxgeaNb379wf676WU7xnSOzDsrqE5O3isOzI2+gbI0fQ4+toBSsLaK3xoaOKbnZGIBjxsxUl/WIFW6T9VeGfc+YMkWso11HHX64qTlzlqxZIhzYUbFjSh7zpdcDTJ0dTIdshAoLjmwRCpaccqPHiKfZfdHAxxKtqKRGTCXRP78FvQ/KhPp/Edy1nHazDTuOtroqHs1Y8+JxzTz6pXQvOGiHt7Z04XVmTPBMmJgEfYanZMLEaDP9Mlrjn7Yy9GAKUiUssxD9cxasOcUDa4QdM/LI1JOe2fRrD7mhGkI42P3fk7NAKdXTGIyjja2QI6fQQvwtDX1iBSfvKe60myVGA82V58gdjt/dXEyT+NuPoXumrNnZiRCi6AFvh1DwAi4iD73uFfKNw0rAIgoyMz3PWmDRnh5n9JE5K0o2KAuWLIErE92QRGAddXRJkJ18NH9rmyPewLpu3O2k5zouuU4X2Mcd1E/7FKX4WxmnfPETuV6d5gM5bPNfFVtOWLOP/mvbSEidGdFLI2dTrKusvS5xwUwLKePBnkeqbiDuNdSYBSd4rtjj2TNnQsGryECSTqAi8a+lVwWOLLAHW5KA1pftgiYQiSYmtsMkv0mn5L7/UBAOCNy4E+l5Y4fLPPwPS3Z65OQ0j86ZMtB2KCVbTlmbfm0TF7SmiMZFznIgMQKj9KL5kSVHPUrFAdCGxWsG/lNL3qYsqLliZ05xGxylmZenr1jbbWwbEa7XgqjyXvwNisY1J1QIc5yZycSXVYlaeolEbO0Q4FI81f89IQs64hMZVPq602VNdbVmS250qK5lp3Z0OyU3LBCTb2kHVpGkIZmZTsIlsiptrPaYUaqX0lLMLP7OxKYkhGi7YcOBY0RgAu02zb6HvJ8uqcFTcpP3lq4BumcscASn86SJog0tLt21itxCyFD0pxPztukiVBYXl0r1d3Ich+i43S82fSeeV2ztxrbqu5yZZbRq1I8jzgqDYc+jZs4e1VpCgJmQd4qGCbkhDvso927k4c0n9Z1QKMmQCWJbQinZMckH8dMl+WPf67oleLrYnCQBfmRA9lQ7qcfwLnuPTwOIPxsBvcMy+c5H8b0dO2GJpzDEK08+vos+1RLlr1jbx5vKtFUdh6MvByr27A1vqDu6uFajhFkB93OeltFZsSVj3bSMmv2bkTFnYUqLLMaSfrTtV2z0gBN5TVuym+Gyl1sYCs17uxF4tFneOTMKDniEkprGgbo5oJtiuyU+1XbGhEy+sKaVM/a+mhvEwRyw6kSJVFNRfp8fNze/QJgwi/iimFVqCKBbctbkTjN1trwBUj7jBGcDEzJzRcv6rr2JAjPaZA29faMjxLxDz285PLoF+a6PvDTp6SAYedeWLelYs4jNUjXabWG2Bm70msKuXjJj8vGEiWLKk9oWOAhyW6OC1P6gfFhI9UDJWXHKihlCycbmfkgc/1BSsAFOmTHJOaXWmmbcwhSNXSaPMmMWjzSX5H1N0pUl6XtqhtRSAIM8cdNz/Usi8b8Z8hXdsurLeN3AgjF9FFdM2VgXrxsnNVp09jpk9oAvmKPvCv7norXU0YSsMrONMhk2IfEZLp/Ks+zRJJqMCks8JYFeEIXhNrBlHXo2uc1SMZoEW+sNY3cjYxbF1fSMCbBhEE23jARUlISRGMoZveFkFPj8lbB3/ep2qqiM/F7wHa5GChuSXDV1P2kXOGMWoKP3gkNJRUnOgYwZq5jy6dBR/qOUNeGM1ePY420lKgocC5bWc8xyDr1WiYv7psPaSRKRtODIjC+ZG+yyNXOrNhZNwXxdR2ARBf1jOzy3rMansfgRJ+vGFh0YwOr9otWRzu9Qu+L28M60kjIOkpizjAkjPY6S60DszVaasKckN+Jv+P1J02vMI0umiXjcYkkkveZ4SxxqLQ5mrNnG9F4NmBS2ZLiTYadX10rxA4fnyGylEXN1AynLULJdI8yTwShpL4yBGqi9PRlLCo4dc0cXvSAqPG9y19qYjV1qc3v9+22B1X6aQJsJG2HFwrIL27J5Ujm5EbimomJilirdpnjz0sGKs7Z4u2LBPrz1FWeNYLowgqqMcDarT09QrXEbXauFGH9r5E3hmwNrFuw7SyyjHLu2FJgmx2JKdFXxFPGIepu3rEJMkWWHf5h1bmkWYafQTl1asd3aQqjrnMwkj76zh/AIcZTUkD2Q2bkdhIUlB1YsQjw+89SSkVM8bporOrA1UGDJDkHWvjd3q98n7PYAlQMb5ixuSR+H88IyVpxxYNfzmAgllBM1YfwrfsGGt1jTtQ91otTqtHwYgHcfK1nHkhUrG/TQEnyVBHvtXkoeLbe8If+SWM4z0EM0/16wZ42YF19FTsbhAxLT/RQ+hOo/FhybCHT7XuHZZWq4pMpX88A6Rdjdwsvp0lRzFmzMXGQ4gUO9k1ai+wnv8iYHCxRxLFDAxqXmYKCQRvGLS/Zuhxch8SCRDhDXzpSjh0p1C97+cJoDOWsruAMX7PBBFw9IeQz+vwf3nTpqMIZmGBpPCEhNXsJowJySu6xMfdFn5HeXfUFwV2vxr273WNUBKhWw5Ut+hTN28UxoKgUBrbWWgjwev1kyc6T7BHWMi6uYcFf22DeduLpXDLbF4zHJCpuvI4EY5T/IWFCz60y60q4w99vAz8ZkB35kslEwTNhwwyVXUkn2fsHXfEFVrIql2WOkG6W7R7Nbmuw9cZaEBHVDyVmSgWhyKwJTJBWIuUSn3YFs3eDYCRSpQMQMOayLAHyf0agccKyYGXjdVIOOmpryxzkrXmrd8c7pkaD+fe2YWZA4/HbtAhTPkRuuZCvISu7zJm/+7C05e++GT6efTHfMrWwdK7r7KScD7oT0DKRr9sAk3u5m65VUDytSHn+fUdx53RztSQpTiMdZI6ZifBRI4KEvWXUmszmO5ut/j63uWRvqqh2GjaBwlf22/kPPMtouDU0EWpy6YisVd1gYZuKDrekfLuTI4Y9++e4Zb9nJMTb4LLSTXNITvk2K2FzFkRXTmKZVeHXGvXfijAoz9NLqKpfJRSMS0eKYbc6QM2EzqODSyqpka1S+xmZlH4rN3xYmvGC5XazGFkwBzoKz4ByPv9Tz5md876LDk7UVzztIfLa8TblwzFn+6uL7Vx9q8c4UowrKAHAqrEk6zn7v8EQRhMKE8RLME5gGO74Psh87ZgmLglHIq1ngUSZhmhRlA4cb6aBhnpqj9T0iK35Tr8sfTij/wDOTrAOad77MyDHLtNaBEriruSyelbwJPDeRlEMoNfhFHtjK8sdnFzcXV8XJtNUedZ+ZEsfUzBdf8+XFJmcUOObkxoeeMqGQAmd9DxnRtA45b+JGg72OnMSvEz+lTSRF8euaihXVexmT5ShnK/zHWcCr9rXDnb+OeOopHs2Yc8lGi8eVFnpgrzVT5ixZsdQN/smEVwMYlc7T9ifrOXAan4+tWZM0lKtM3S2lzDApHD3kxnhm5Ws1vg2GPLEPurA4V1wo+Tu7gUXXINL9EBz7CF3fxjNQlAU1e4XpxZQpU53ZoJSM7GbK/DtXTD/002PvMEs/UwW3mpcnStw4/G3PlLm5YAfr6Uz1d+vYstJbr7ZN04wm3T3d24e9pGRKf9hpSv5rIPrM4MsFK4TiyYr8d2o7hf2tiZH/B9LjmDMY2ufiHlKjn4b5HbPIznEnjtlHnvK/rNkey0iG7iuTq07TVUZ2oxjjtPHQyAxZmDATJ5X4Rzlw/FGRNNP6ztupV6B3SYtyaCoQrEAxxteY3Cl4omYc2HLDNRt2RtVbsn2osX92q+TqDX9Lh6S7xxwupE2uMpg0j1NoMgS5yVk8vfmn+vNXsys7BvuVoEa2hL7+mVSJSWIq3Z0yZ/Ys/+2c+d+TH6UgLrekmIq6nkK5e9c9nj1HFonZXApVzliyYsLBZtHXVBzYUP+d4NgqI5GKkcFk7hajAE30lZMf1MBSmyHuWYpZISdyPX240MOvlzaItxrMtiPi1gy4z2OkEd8BhCRhBE1+mv9WjR+pHLtiDEW7/Yeh2L+mYkPBilUU3GJms6esWADb6MEeDrqC+l/NzKGhP7yXEQYbAw/fPvsdIP9dZcuSpXjKKx14XcupY8bqscqcS7YmqeqGCp/Mqxtnk7U4iDdFRz6gmLfc5FRNWHd3bvOu7pYDxSexpOKGHVNOLPvLcMxZAUcubZp3+zH8Rik+miR24n4g0rbvG4f+GAPk+wZELb7bThndIDxgTXF2SA6Z1MBodrEikyUbjjdlZ2iImoIku0VHrwPnF88RNY8/SZa9pXinjnJlvKE+rUvdwE5mOFvbU7FnA1YS58xZcOC6IwVJ66/yC6yFcnuOIshJmAnvHhaJLEZGm0AAEw3+q/flzfdrNtHxTTsEqz1HlqLsT1Kaf+s12NVm6607Wak58JJ7nJiZQlOGearvl38wNefvgCEfIouimw+7/JYIlKb53mCdiQWJnDkFu8RrR9JW5jqn2kyslOyba/WVlzUnHJ/665lz65YWOCZrEXLmWjz68tmcuz/7hrzSK1b2waXFDy5KFuyYSqk7ZkxjSdsIJQMtSjse1r1cQjQWyy9Y8DYvuWQXc/1alexRRRbNmwuzXx/RE7pbAnwf96qoOOKNV1nYaJz+TwrZfhEoHNMcRj9A93irybkmd/l6XOveQcOuZiyfzvTw8DOueUPuXezZGeoXKspCyifnzNmRM5cwwqI3HYsdOcukEtNuEiyts0AoNT5nyz2+yT2WgTKuMH1WP2u0gxVH9ggLKvY9X3gQ1zMUHEKGTegOTIkwsWiXIPqts5pHmC0KLiVnUWjPs3Js/rH+EOQ3aqbrfgzuNmItITwL8zNWT6d6zS9ZPbn3QcEhiXwFU5ZGw15xJsuL0kzI2++jUUJswEqamUur9m9U2Ue2fM6XOL7B2ywR5bOpHB652EWuOaChGKE225tkC4l2J15oyna3cRsSRy3ODF3yHQEeHTvyFyKc8SY33/nso8zkLH2jmqZnVf785tfP7+5f1JxExU5rZq89bFeTA6ZkJwve4IXuWTMx5dJWMu4w5xUrToEdz/WYdImb95+yIOdocTMOZZO+1DI0dWc2FPAO1/xLvUQEC5bOIFs4sWHIJzbMO2u7yj3pnvQeGZWErLmPZFZhOEfeo2xEOeUuwvYvaY8zO0Rps/cmHF6ueIHvwSd9gaxE+ogg6JWc1RzwLNiat4+axGVr0fjAhFPq7331kzK+tsbGVkAxgrnH66QAofXZ0Hrv8oZc45l2nq4JBUdcpMB04kH+JykORDVNxqskJdKEq27Z4IclK85Yc83x3/HPs/s6ajzf7pCFXsvk7uLlwSYX6KBtNGY06s+EqZZyw/r9/KPC6KqKKNJkNgUZp5z+9IpD0utrt4Kniki2h1txhdqogoH3f48vk8kcEttZFXtgGVmdDWDUEKtb7ot0WNo6NFORBB2I87LtI+R/Ift/73IXz0te6ZFlx/B2KLuWHcvDRzd//v7ffvU7KxYDm4/x5n3j/rcRxzd5rjcszIy58aryEowLlnyDX+or1ol/qnT00TPbNqE3XrpS6dBzM8M9Fma6P+cVR3M1SXlrNcokDsd0MXNusH9NRqaKvmaBEwnrZ+5tT31Rf+h+7IxD4XmTBziuuOZaYTEiT00F/+E52P2Hx/9prnvOk5HXQxV8t/lTUbG/ODx5gOMLJerjhAmwo5Iwmf4dXugLlj3KQdp8ze3W1JYK7jlKW+81fPcVC6O9zjlny9aylyqOLWlwxZSqKLFRlNhmpN5+qjIiqW6XqpaMU87I8HhucLyJsmXL9vH+YhproNZCKI3atvh7XVzf8yfuY92dLBmRVTPoNHvrZlzLim/wBTcqJjGfMmETehqiLHiHK/3amBokVP/uVA2f/FOY4y+2T+yUiAsc+op74A3um7LJc2Bjg1I1kconB/tteLD9kKioICIiTpwgEuxKpb6oJVgUfItzlmZSMeOGr7liy/5CBsfWGHnF4RYZ6xf1L/KLcnncj1nqy8DlNDc8bf79HVvuMBNvarmJmUprzHwkKWn7PtcpIAqKl0KOcsXhYvGYpI3mKTiwZ8+O53zNJ3xNxYQz3uRd3uGclYkWs9i8t2dtLAY31GuJb593fqlJ06bc5YwbLqlRcvb/oPpd/ZkHapWo2JFR7UbXn8Fz+B+v/qPZ58e3TqKLkHRsP3rCBONFHLmWJd9gzyv2CqdkbDnCzyfvCaXMeJdrvogEG9ex6u+mpwGuqcNkQ82ZSMHM1iKPMtuCa9asTTAzZckZK5SXXBsI3+OgdhcYCQPKMxuK17gxzk0ekuFtHnyBsGbOc57bsGlF9YScbQQT827MTiNTB6ARONTzm796/D3RmpOeAiR1onbJ8JvQV9g/2j9bc4/dd1/8ZMrUmB2OKRXlb+b/17c58iV77ZYx/aDjEzwsTCfgJ9l3kZzF4Kjdc+DEeilhwvIJdzhnz5UVYB0exXCBgwatGRB6wowFys6MU4QpSyYUCBVf8YKdxtjzarq4M998dXjQ4MUpuJfaBbiBAYY/1POvT5ar3Rf5br1koEfustyb0aTBdbO4KJ6cI9+/+hBTRE8pLvZPcoQHTLlkR6E+aUulaF37eoaCOa+hm64oK6vPUveWHSUnLOL432B3cJ8VW44G3nqECUvWEqu1xgLJxUEFJ9wJbUbTK1Q2i3bGkhkV11yzUT6ZfkueZyL3wrmdcz3CNsgSWUB3X9oDdajnu9+5+rvrf7r5zdOId7le/HWdHRdGVbptsfpa1jzgq6ebh8FCNP9486sla2ZMwaYkF1ol47DakNXy0pvWlhcMMcw4mEC3TjaE58iRUwNvG93rklPuMjPKSsWcFY5JnlZroglve8Y5c77ixrDOxrgusFtyKvZsVT+bzxxyv334plGGMoR3hoB7fPjm7LK/U//d/NL3YEMZZTEE4l3GhGy1sQwgf8ZDLt15jr5bmt3dkj2FsUVf7xUosRhxUmt40CcoVywTp8GQWcypOCZ4oTfywjULTlhZelpwxTaPjdQWFGymQcy5YRfnzfuoWfNGSz5ozeTtXl/hT3TN1p7fXhSMLYt/d0L5F7KkNB7ia9rDNBRPdiFMcdTfUerzioxS1LiOOY49YhM/xljraV2pkRnhDT2EY8xF0kbAnG0khKmx92pKDlyZjX8gJ/q8g0E0LfgZS86puGRnOojuJdWWukhSFjbSk/q1NIAm5mX9j7r3i80/XlG8nfV2uuuKvnpPhN8XC/8yI+M5+yd6EYpkn8irtuxNTz2k0I45ljQzC6rwOR/Kd6onblDwT6m4MdlYkzE3o+KzCCVEanXahA/Le4ecL2zGW90xk2ke3lrVgoFGfzVwPY/p9MO0Jhmus3sVjy5u/q2c/I82ceC50J2FxECWAuAX+49u/uGCK3esHciCJZWZdzkydtxomyBqB5pyI0aNbSgLjDz9TvafZk9K5oPm55qSg7msthhhw9SIp0t/Jk+Q8d9lxSUbDhSRht34ojcnuE8YLz7qFtwAVU5DQx5HLaVThGo8+482/3T9F7fvTnfTzqHWnbXZnzgEUP7lCQv077sfZg9WzO30XpJZN7G0odtZx9p0OHPUd/w7G4yBD/23yoftrM720M1ZcI87nHDCGWc2NHPLNhkk5FGJW1ys23bCPe6y5Wuu2ScTWroXp9pNuxpXxzXCda8X1/zMhHl0iZBI/A6tyCs5pdDj9nzVJzJ306muqMVTcfPX9//ojCuOrFnzXAuBBXc5UJAz4UqLz+Zvp35TOkBG+saSwYAk3JJa3Ufy5/NRXMUNJDdH9ixYtj/rOo/4hAWn3OHIZaLU7Y9r1B5GkY6iDHzhbMCN7HesWwygpuBS1qA7TlZ9ju1tdvTtR5z9rzU197nPfeRxkFNNqNgZ3WCKvj3Oy+j2bvxAEWJH3zP/vn9H4bV+8c1Nn7Mw24PGGu1H8vu5uqeBtzVhzinKK9u7Xa/elCkz/iZKwY6cM2vJpJkuvQEQLex4JWsWeslpIiFhlOfTCMcmsXRVHIvvvqLgFKV4Mn3mucMdhJwVa3LcxZALLGOte6njd8dS/JFD/nIzuidLvt2I+NexYMbGGlkK+Qc5Ag9FQ2qzZMFLttYsTLHRhgegcYrm2Owi5UDFwkrrMr5RQ0Bq4fmmrXh9b8b53/6cddInGNK1Mcnf2uQsRxtQDbKd/6TkK7liyYSTR54FRyrmTDijtMGuk6aIGMwK19ZGv8M0Skg2csSz6kThsUHXzW+vELaEqWbiLgoppLgoTE+0ZmNOH2VCHercbZXBCKW+A+uWG/YccZyzMhvFkF/nSUZQbypu7k9e3v32Z7+TMR9V0aXtl4xTYM+OAzOarrWsHAuW2giwK77miooZ58Ce6qmwYm1sdRnIbJLxbQaV57396Zg+VtskLZ6X/kyL84W/WzFr+t0Sz2rI+RVWvOCag3nT0LMK93ib5dYqMvoJVBqVApbqOVr4yVBz3FV061fXb8mX9/lKdXu+cglyNiShAJwy5dp28xrlJg7vq6jYPzo+u8f6u5/8pJaMFW8EFOK7m5+E7HTOjJtkFkyHCynaEbJLRweaI2xZchq7Fd06tT+LWo1wpiyYOCstFtzhbTyf8jmvHm/1qAWFcRQ11cNpM8yxZTe2sCSDefZHdnGAqFAgZtzFVlfbd/2Xd/lKfXK4dcmkXSJ4nlxLNcCaJ0+FA+7TqfXRMq7YsvlJuKkHNpQsRljIbYtBbpkQFySMJVW0X8x6P+l6ljqZTf5QNDy4U855wA2/5JVm5hDh9UgpR4ucPlneZiSlS9rpMqqPDzYZexbkVNadnYeBN6v9Xy1+cZcXqpuzddYzE5IRwUJb/2nHlSV9RPccv3xLvqbGseOanYLEqcoFC9NopEe2dz5JNGWAGDcmi54d80Gnu/uJJaF6V8yZkeXMmXKHt3jF50YPaponE2bqKX/qb/SDxool6znk+V6pzIi6ojToMu6TvS6OF4ffO/+N638OZ2vHuJChT2E9smZp2MDMFNHpozzVrbzgAe8Yj/IE+V7504OquW2r4cR1OiFaumLKrhlDyvucc+BI3jMjHRucFuxk5ixwiHCPO3yLF3xqwlEfCMgXcgHgPnLvBz5NZqVlxsRa7I06ve70t4YpVrglYuLxnB27j1/96ul3dh+JFcbD/HbYbA1XsTCrmIqtVZkaa8uKAwdZcMqpVXI1r3j5eH8R7AWC7WhhpuUeFd+53m7VGEeuxqRsSxgi2PUnGpZUR7bm/gkqfJO32PKFRdx+pmslo7aAeSin5+b7eDSzweFB17Xaas7fBcXl4fwrWXJQ5TSR8/XFgTJY4DbCYea4DRTurcNbUlwUTyac84CMPUuUX37/1YdZbL8GT58DOyrxCd+nWeAsHrLaEUlkCJ4N66RKyxJ/+vZ21NwwZ9kEMce/juOzxxuOnXiWJy+TkYkm02FKjuzZUpCzYtpBDWSUx9NcbA748+J3PGjFyajr9O0UxGYi+cF8eXzCQY6G6BeO0v62YseMxY8lLv+BDZccmcVGvuvtw/HJyY0Tdh6ZcGln3HXM/ktyTto5y44rXiF/XdRRdoacSZ+x1uFElhzZsaW25kljGH77xMAwsao+1Nz8/XM2zDu+CoxKbYdFOj2RCcl0ef88eLq6TosqI5eao30fOHLDNbBWl3h+Dyd+9nP9YFpQdnR23Uyi2WBTe8qXrDnP+QUF/ntopiplMgykYx+jMqLmDcRsx4n5LpUDiWpa4s6ZUnCc7//3elc+zjomtj2bpISU1WUgt9CP9ijinprqfkkpYlMOmgw2Z0EtZcdkfK8FyxdrDWOBhgdVd/Rv18+9GsGlu3rREArnrFgzdWw5omQXFXNt3MPS4eZDY4BuxlqgFihcX2necRqZsmO3L7h5NMVf1Nt8pMjs23X097SzIzaP+tPGz6wKvW4Jxf6CqfVmhJnVcctElZSLZ3vPs1SJpBEZiLldB3doXDH9gFEtnUgdVKFr3uZXuMfENZyUJ1CyVKeodtQGrZxpzEAx5MgTwxEYzKtt8tZZOA4XxT+rrqa/cSRfjaU3Q7Q3ReCCJfMJJ1YwpIhyRSG1LFizYs2SPCK4c864y32TAuSWaE4EdjiWmqtTnmKdYDcC33S/a/xABeCSKXvBqPEN7rDlEz7N40dwlMyZU6LapDCtkkNGJVgSHXbcKIssVYMe8CjFX8zI/3nB6a0dOwZ8z7YTkrEwj6ssicc1NdVFzYS5kfQWCYN5wZQTNAyANAt9xTGRUnesWQM8VK2eHR7126p9uoGYZ7yOwqfhumcoU055wUtK6rYDwQXUV82EC6cuzMNUUTcyzq6LOLxe3JdmAhVTtj3fVH1ND6/vIkHCu09L+PqJ0lSlM/L4HNR26E3Mqy89tDJqGwRQcIR/I++4ZI75STQJnIzaGIidNafc54oXHDhS5p2PULm5TavqEjNuF2lL1DP0C+Yux/bIwoqSRccBJe31aW++l3Rm2gaPng0L4MixI5dKHSptQnQMOq3GM0weaAKLA/F6tJauZ/qeG5gl9bN6x5QjJfNb4P/wE2fkXDV4ZN4eLBdK483nk9mEklymjsxr9dG9ISUTdlkR3qyVrz72ZN/oYwrD402TV2yDhjfikox007xZ3zTePSugIjfJQ23BYmG94tpebSJRyqN1z/e9q5Bqs4gZBT6pE6RTB06Yc4ZnZ3ZntLOMaqc+4FBl5NUEp/ZUlqojiqRyxKFkuIevmDG7s6D8xxVnjUo+TnIujdU15hihHQkBveanT25jZc6TYSzEzLwBc5s0OmGF4ijMHCaoStoxw5Mf8MPUZldHBkoFF6Kj/ZQkcEBm/aAlcN1qm9oQgRezL84MDMxZMMdRRDe/7vjyvhZJXzNuTHe1bla7hzWL9yecGmBe2ZEjLMnZ3nobU7Vcv9Ro6fq1OUKEmYe1kZ6cWRIEM0/M8Ebjrg8Yi5da6991PyxszIR29BYpXjZhZrNmpJOkBURyxQsu45b06Q5uTCgy5uQUBIXQEWVJnYgO++e9R4zsMbRATPbfUinZ/ON3uOHIlektW77QhLVd+LjyP+UBaZcNGenTlYWCRiA4tUWcUrJkYWCTj2hyav3scFKq/4n73sGSOQYbqvlcAZGbdiRmE+7wbYSv+YySrFUR5pGXhah6M6HIzTlqZ0D3zKZt9k2SFWey2mNniLR0nJ6aoeo36/vI92/s0fXxaPQWEZfk0cxwbAxVP1+uk1kFooKKT9gTVZwwMKWkprLJM2WEiPoCnVwK5Uf6W4cANN5ynGMS2pTnPOGMdznwOXu2bFnEalPy3ijSmrqD3wqOPafM2dO3hM9NlrqN7InhDhYU2bE8spUzZr/72Q9m1/PT9jhpB/sdcCzwlDaBq2ZcvtAusHZChDMhRLCWqymsxRp8egqOTMAG6xSdJ7KlX4t4Fa1FrbnqxhWn5sLqov/sim+x5xObCA6X5gwvYYG1A483NgZNqu3NItH1pv+FdP7KbLRuTeZ2siyXu4v6ySmZfsFyMzvtyqk07vANK2NDaidh6ve/+u6WvjMrTGwSeDjgVDT6neWWQVSxq5EU21qDQCYZPC6f7FiT93L49h1mMc8K4eEbwKfG6VEW5iAeyADM21O5oZNIGNbbPBSB73ND9RlO3grk5DUZR/aJrUqqaYhtw51f7j4rvjO7mt7dvzhwYmCSQscOgMg6WDJjmyBWMjq7PpX4+li8tkGkdc72eAnT6QKToo6+JxL5lJ5Ca6boRfVkEoPjkmX09Ms6vn5QsuEOcxsNcZc/y5d8GW+cTwwYBmMWkUChz9SJiBMRuajYcADKtw9vHcwyXNiwSXhrftBk151SLi/f8988udL/+vqF5w7TDgKcZgCNym3LMY5B+1N/i31DD6cVHE7FAp9p4awP43sdRaV+4phGg6dQKMDYgPbMtkTAzt+g5FWcjddtHjhhGSOQRgvjpnfq7K6XT6uHS9mSgdacMzNkoTv5RRDcTmDZWNbvZMH04c1TZbmdrbregilUk0oGJpxwMCdA7bXRtRdawvLWia4v64yitHl1xhaWpMTOEsUH0dtwGpkbng3CSYKnpSw+ZcuEU3JmrPjXKPmXDRkBksHVLhg0R65tp0kiNrsdaiaPisdbDYZtsOcm8Rrt8n6PSys7PuO3+UfnlHrJYjN32eo2YH0ck9COlKTvq+OTo0kHYvbbxIt0cLouCDuJxJImeCzYcmTVwXrbSTW55cLEwNNzzWhfetHhHRL9J1uEMxSm5bdL+EXoOlVaWwMzfeB36L+9+D9d/JD5nzn8y8K08NqTTHUJd75t+XCKsEn2w5htUfN3XjQiebaA2sW/FE8ttcXQ1ixXOhNttAM6NmzikgMzTqKNjiRd5II9d5kzZcafw/EHsRLtWDpDbngTnQk9Pu7nZiyZY/aLpdEpCo5yoNADLhoFlP+b/LVzHHv0Gy7zWf3N+p/cMEsYOzpwdNKOFCBEzhOUbYzt/fHucZlFYzTsygtUVH1UNtkOVhE/kDfooPuSniLOuEB7brjT8bIgKuxLsxa/4i4zjqNegJJrhYrvzVdt4G2fEFFzKzmhCEPypELfBLwU+dUZE67+k/q/0/gg5SzJVre5+XWHQDVY6hzP1rwiNYlpjcmC6/QQWu1EJzZLsPJMjianr53A2VeOaLKjZ2zYcTbodudM2BmR5Zr7rLgZL+9zZqAH602RlL8dXwerwZdMgQWrRljwpZCjXHP1eHeRM2O2c8jArVJvXeKU4uGZ28S2OClXuhYe3amxjf6yBde9SQMqqbUFMPEu2cFyyxIP/yScRifszZGiK1+c49kFC3Wc8TVGSvwAbeTJ1KluxGsE0aFqW5r2Juydgj079lRakZt5XbO4MgDLh96OwxqpRRoU7xoeJ6PMtwbro+O/0gCohVRadkQ6eos1wu2yrmZKxpFjQppqocsFR/bkqHHp/Yj/ETkVgtMgQiThq7goFVFb5BnKnr3NmCgp2D/Wi0A6ntzkJy6Ne7cs5lhLMwU1I8os2itc+l4TLsrCiT7rLlIOjxzlgFdPkBjJLQB5X1qTTlSWSC/RHqkqfC/IKNgwp2RmUJW32WMxBuQUBhSHd/FU4jssXh+FrxmVMQsKKgoqbXmy2YmMOpCNNX4URt1Rhcr00KHYcR0itAwYQI6G1NXyeicNa54roBB/i5+LvNYTtquKmyQ9ku7yL5lTsqdgzYIi8pi1Dbi5RavG0bmm1MI+HhGfDdaY2FT3A0dqlTj+QV7ryqsD6d+tds1UrMjj3My+EHGMjRCmDy2t33vDJXtqZpxa8dBMbEzbSymtQG85I2RUcEBHwt5oYrEovB8ZN6w5IqoOYR8w/p/n7wk1c3K7rHBiLlkGQig7jhoU+e65u6+3+J8Pl7eBkHxv3nz6iNZGrxry1GSQVkkkBJyZ++uWLXsO1EzwrLhJsoy6Y5noOlql2zpw3Sm6DLrNgSe9YMmMY2IGRjJwW3NEFWUnbfM9sy6AWvdqzjkLboJ2QxvdmSD3h7E25fR2c9cWddARnU9TKBzJcU57/a7hjI/UxD9nyy5y1irz4lvH0NYOQNFegJBOp6TfIyZp/WqPL9G+exDNv+SaMo6odDaBdE+Zk4nXQnIDmTMzUAwjbIIF/TnCc16ypVIxrq0b6V3cFiB0VIvG8HGyICFehIGaInWkavOIZo64dEbyhRlMZ2A0wLrT0nKDJ01GhWMS8d+hQ7uLHsZzzsgpuOQyVnM5OVUYeJgzo5baPEaDI/CEikvURuw6jnzNK7bKzyc9uUuftMwt7ul9j5zhn2tkbpZWFY3lGtKTkDk74Rcm4q0N04KSa85YcOSabYQ0UyBIR481BjzPJoancpdARp8yY84pCy7ZG3TQYNslwoocyZkhVGZcFQb3XXPJFRM2LJmj3HD1eHfhyN9zHfrfmGiw381gZHm7uo8uebuiZMGhgwiPWdq17LHaDD/zGFlLKkpKtix4A8fWesiSoBB9VvI43YSBSq9lx02ZMuOEE3a84oA3zoVEHoaEQ25uJfGKKUc2bNl/v/hQ2MuRjQ0r2124fzb5TddBp6T3wPT3cUod0RG275jYBeCIY63XUjIdHd9HMhM3s7hdGCOh6TOEaTah7P4GE2oNzpSpb0mXkT/mmdmFmZqcYc6MFQvmZk3iuUpcTtoB1vZ7je6CYCbH7kd8kDEHSq3YyQHBK+S/SY/wNHbS940Qhw3+8fw4DSgVe3JOdSNl5CiMwIBxceo4wmEe0T1vC1yxo+gMFE5fTTsp23BkTpel7MzXZMU558ytsCl5xRVHkx03K5QIlJ2VDTmeLUetP8isOcjPczJFvbqfT3qPTf9xGlMZyZiIccRSaxivC/YcmT+VBIofPglpT662PVNYePBJU7VmgRMV7R2tOpqc3XaCND6BK+7xJjN2XHHJC55zzT76TQ3rRXJemURwRYYTtHHq5z0+zt9VQN5zA+Fo93LcaHu7D6z4AS9x6JPioxf89OGUgrxHzk5V92HGR0PAqsmMJ1yZw04zIysM2BnjbcprqjtNPIfFqt0Fp9xDLeaG563dvaO4Rq41lZQsuJs4MNlj/q70itVhTSMjuIP06EZ90v+Yoi717/ei8Pvu/SyptLSnoMMgFhcPrswoJZXN7ZZkkPHUAPx+RtI1DZOhd6oRCLCcd81dhMtET1/FCczas7uxz+8+mzHVkmPH2bxBW11P4DJ+0o4NiRjLiMe894a/H2St7s8X6FOX8C67aV1ovwdbr3YOchULjRAxZ8zIowO7jNZsXaHAWGZfgXXS7+O4ZBdcrOy9q8jiYZAZCeRvh2ZeleyRbhv+tvgkPbmWdvbbOPTT9WIY820IslZzxnwYXFL6ghiJj25NbbvPm+SxteoMCVWOY8HCgAAZCXXjeVC3HHJMWPEm8HXsTjcZrx8JfcmZlA/WXUbwpOFelVEu+ziI3a/nhnrkhhsRWu9GBJVS5Tvys/qWEJHicoHAdeRokxyJHTjPgTlrbigSPkQf9sxNz9GmZF0tcs6K+yifUcaBl9q1eBg9WyCKOkJE8tpt+7keVCg9PEpGd7dGNY+/JfftHiRVc+ZLV3mcXRQfqdSmA2Fg3hxy3xVroGbHK2442DC0xjlK2HLKGa+sdOk2O5vDK7DiwzA+TbrrzZXMOGXFSzYRodM/ISzGJy3/WN+tRBL5lhsdoai32ISP5wwpdE6H9aCdYyr00MQmeLW0b+tnP6kvyj/Ifr0Y4AbhZAgeARM27DiwtxlZvpOvC0euuM89qh6BMUWUF9aPCfrRJs1rTp4JC6bklqNo7yDT12DKQP5uKcrM7DC0p9dt5/cEQmdN0aEpDYvjIf47Pn6vaWU68zEN+83HSBlecyK1iq6jsYIzb0lvu/cOjs+44mCUKO10FRte3YY1Dyi5pIgWT0RF64w5cxbMDDiqbTKTNxJOzcSAsEai0N0sKSI3sia5TM1pKlxkNog/QePm7KGbsUl8qGRsLuBWVh2HiUEy7wPtzar64PLvLCeorGhoPo6TgzoDnULsq30lFULOHZZ8zkv21KKEyWKKOtWWEiiUOF7yDX6FOVeJi1YIDVPmZoO6sIkJwXLvkj2l0bU1ysYaXC7rHmSvc8HPeZe56dJ3SjueIMagKTOO7ClRMtYsuektcHs8ehRWKa1fek3JYINMXNqgbAuZwoYNO9tlbVoXWgELMrMRd6huH+2eTTnlilccpfKuExTSwtxT4djxJW/wTd7ixhYu0PYWJk6cMCV4ZhXAlAXf5pU5aTsy7nLPRkLUHQRZ+jnDQA1LjmPDwb4z68Y1MqcwwndnuxtqrjlhYqqMtIxoPlKZpN3OxKySGL15CUPwlqxZc8KUI0e2wJQzTnjOdVIZ+eiWuWNH9lX+IPSJj0DGFS85UnoZn+oSFznMxKs5ZcGCUxvB15IEhTAs52jpl2PGPe5xypGaA3eZseEV1xYg5TWys8Gf53xpR0P5WJPlbRQzyjaRpwSTzRWXHUCkiX8Vx4v6yTzOHjDbALXd9YyHXsKQkLusWREGPh3NrCVnwRkPWPKKQyrTEq+WlTwoELwIK95C+Rgo0gZjuCLtsuVCI+qIcrSzJDct4CQyK+pkNJqgFLzCc2J0kj0vuYk+Runk9H4rdmTJxbxlQDUzMy4XvR1ybugOFgsP0D7GSW+E5pqKUibcaRtKVrzesItnuyPnlHMm7LhuvcUiHDjnlAeUPGfDLkpktNPknLDiDeb8Ql8gotplX2pi0isJvzfvzaKfWNydGQbd1H9NdzpUgcorphQxcPXtzMabpJ2MKtcy1mFdTW7OhDIGg/aFanMcwZQ9QRRVCkyZ/aXjX6/mxf9c/zhUP0vOuMdddhbNZszByPZ1h7yN9SGO7Pkm59HcRiJk01gNrVlR8stfu2GB1yJhPGrCBOomg2KPdm0cPG/FdGPsWFj2nEWznJojFZdk1OzM6FYisXvc5EEGrA9HfEiaPUSnOq+j6KPbLW05E+Hs9+Z2fvN/ZJyz/lvBPusgR/accsqpDbWp2HPDFeWP3AcNO9JFxXPD8pzygAW7RPwXNJpT5iwoueaS3d8sWVD13KfGXH+6jF2xoOFiUKhtB5O4aaqNntozNV1dPwDoICD0c3y7iv8fBFSM9g+efNEAAAAASUVORK5CYII=");
  --tube-glass: rgba(255,255,255,0.07);
  --tube-border: rgba(255,255,255,0.18);
  --tube-shine:  rgba(255,255,255,0.25);
  --ball-d: 36px;
  --tube-gap: 5px;
  --tube-cap: 8;
}

body {
  font-family: 'Nunito', sans-serif;
  background: radial-gradient(ellipse at 30% 20%, #1e1e5a 0%, #0d0d2b 60%);
  height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: hidden;
  color: #fff;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
  touch-action: none;
  overscroll-behavior: none;
  -webkit-overflow-scrolling: none;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
}

/* ── BOKEH ── */
.bokeh { position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
.bokeh span {
  position:absolute; border-radius:50%; opacity:0.08; filter:blur(40px);
  animation: bokeh-drift 12s ease-in-out infinite alternate;
}
@keyframes bokeh-drift {
  from { transform: translateY(0) scale(1); }
  to   { transform: translateY(-30px) scale(1.1); }
}

/* ════════════════════════════════════════════════
   MENU SCREEN
════════════════════════════════════════════════ */
#menu-screen {
  position: relative; z-index: 10;
  flex: 1; width: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: safe center;
  padding: 20px 24px 32px;
  gap: 0;
  overflow-y: auto;               /* scroll when the level list is taller than the screen */
  touch-action: pan-y;            /* body disables touch-action; re-enable vertical scroll here */
  -webkit-overflow-scrolling: touch;
}
#menu-screen.hidden { display: none; }

.menu-logo {
  font-family: 'Permanent Marker', cursive;
  font-size: clamp(2.2rem, 10vw, 3.4rem);
  letter-spacing: 0.02em;
  background: linear-gradient(135deg, #a78bfa, #60a5fa, #34d399);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  text-align: center;
  line-height: 1.1;
  margin-bottom: 4px;
}
.menu-tagline {
  font-size: clamp(0.65rem, 2.5vw, 0.85rem);
  color: rgba(255,255,255,0.38);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 22px;
}

.menu-label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.3);
  margin-bottom: 14px;
  text-align: center;
}

.level-cards {
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: 100%;
  max-width: 360px;
}

.level-card {
  position: relative;
  border-radius: 16px;
  padding: 16px 20px;
  cursor: pointer;
  border: 1.5px solid transparent;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}
.level-card:active { transform: scale(0.97); }

/* card gradient backgrounds */
.level-card.easy   { background: linear-gradient(135deg, rgba(52,211,153,0.18), rgba(16,185,129,0.08)); border-color: rgba(52,211,153,0.3); }
.level-card.hard   { background: linear-gradient(135deg, rgba(96,165,250,0.18), rgba(59,130,246,0.08)); border-color: rgba(96,165,250,0.3); }
.level-card.expert { background: linear-gradient(135deg, rgba(167,139,250,0.18), rgba(139,92,246,0.08)); border-color: rgba(167,139,250,0.3); }
.level-card.nuts   { background: linear-gradient(135deg, rgba(251,113,133,0.18), rgba(244,63,94,0.08));  border-color: rgba(251,113,133,0.3); }
.level-card.constellation { background: linear-gradient(135deg, rgba(165,180,252,0.20), rgba(99,102,241,0.08)); border-color: rgba(165,180,252,0.35); }

.level-card:hover.easy   { box-shadow: 0 0 28px rgba(52,211,153,0.25);  border-color: rgba(52,211,153,0.6); }
.level-card:hover.hard   { box-shadow: 0 0 28px rgba(96,165,250,0.25);  border-color: rgba(96,165,250,0.6); }
.level-card:hover.expert { box-shadow: 0 0 28px rgba(167,139,250,0.25); border-color: rgba(167,139,250,0.6); }
.level-card:hover.nuts   { box-shadow: 0 0 28px rgba(251,113,133,0.25); border-color: rgba(251,113,133,0.6); }
.level-card:hover.constellation { box-shadow: 0 0 28px rgba(165,180,252,0.30); border-color: rgba(165,180,252,0.6); }

/* shine sweep on card */
.level-card::before {
  content: '';
  position: absolute;
  top: 0; left: -80%;
  width: 60%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.07), transparent);
  transform: skewX(-15deg);
  transition: left 0.5s ease;
  pointer-events: none;
}
.level-card:hover::before { left: 140%; }

.card-row {
  display: flex; align-items: center; gap: 14px;
}
.card-icon {
  font-size: 1.8rem;
  flex-shrink: 0;
  width: 42px; text-align: center;
}
.card-body { flex: 1; }
.card-name {
  font-weight: 900;
  font-size: clamp(1rem, 4vw, 1.2rem);
  line-height: 1.1;
  margin-bottom: 3px;
}
.level-card.easy   .card-name { color: #34d399; }
.level-card.hard   .card-name { color: #60a5fa; }
.level-card.expert .card-name { color: #a78bfa; }
.level-card.nuts   .card-name { color: #fb7185; }
.level-card.constellation .card-name { color: #a5b4fc; }

.card-desc {
  font-size: clamp(0.62rem, 2.2vw, 0.74rem);
  color: rgba(255,255,255,0.45);
  line-height: 1.4;
}

.card-badge {
  flex-shrink: 0;
  font-size: 0.6rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 9px;
  border-radius: 20px;
}
.level-card.easy   .card-badge { background: rgba(52,211,153,0.2);  color: #34d399; }
.level-card.hard   .card-badge { background: rgba(96,165,250,0.2);  color: #60a5fa; }
.level-card.expert .card-badge { background: rgba(167,139,250,0.2); color: #a78bfa; }
.level-card.nuts   .card-badge { background: rgba(251,113,133,0.2); color: #fb7185; }
.level-card.constellation .card-badge { background: rgba(165,180,252,0.2); color: #a5b4fc; }

/* coming soon overlay */
.level-card.locked {
  opacity: 0.5;
  cursor: default;
  pointer-events: none;
}
.level-card.locked::after {
  content: '🔒 coming soon';
  position: absolute;
  inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.75rem;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  background: rgba(10,10,40,0.55);
  border-radius: 16px;
  backdrop-filter: blur(2px);
  pointer-events: none;
}

.menu-version {
  margin-top: 22px;
  font-size: 0.6rem;
  color: rgba(255,255,255,0.15);
  letter-spacing: 0.1em;
}

/* ════════════════════════════════════════════════
   GAME SCREEN  (shared shell)
════════════════════════════════════════════════ */
#game-screen {
  display: none;
  flex-direction: column;
  align-items: center;
  width: 100%;
  height: 100vh;
  position: relative; z-index: 5;
}

/* ── LEVEL BACKGROUNDS ── */
#game-bg { position:absolute; inset:0; z-index:0; overflow:hidden; pointer-events:none; background:#0b0b1c; }
#game-screen > header, #game-screen > #game, #game-screen > #hint { position:relative; z-index:1; }
/* readability scrim — darkens the edges, keeps the play area crisp */
#game-bg::after {
  content:''; position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(ellipse 86% 76% at 50% 44%, transparent 40%, rgba(5,5,14,0.5) 100%);
}

/* Easy — dusk pastels, drifting blobs */
.theme-easy #game-bg {
  background:
    radial-gradient(42% 50% at 22% 26%, rgba(255,150,120,0.22), transparent 70%),
    radial-gradient(46% 56% at 80% 30%, rgba(120,210,180,0.20), transparent 70%),
    radial-gradient(52% 52% at 60% 86%, rgba(130,170,255,0.20), transparent 70%),
    linear-gradient(160deg, #1b1430, #0e0b1e 72%);
}
.theme-easy #game-bg::before {
  content:''; position:absolute; inset:-25%;
  background:
    radial-gradient(26% 30% at 30% 40%, rgba(255,180,150,0.18), transparent 70%),
    radial-gradient(30% 34% at 70% 60%, rgba(150,225,200,0.16), transparent 70%);
  animation: blobDrift 26s ease-in-out infinite alternate;
}
@keyframes blobDrift { 0%{transform:translate(-3%,-2%) scale(1)} 100%{transform:translate(4%,3%) scale(1.12)} }

/* Hard — deep glass water, caustics + bubbles */
.theme-hard #game-bg { background: linear-gradient(180deg, #0d3a52 0%, #0a2440 46%, #06122a 100%); }
.theme-hard #game-bg::before {
  content:''; position:absolute; inset:-30%;
  background:
    repeating-linear-gradient(58deg, rgba(120,220,255,0.05) 0 16px, transparent 16px 58px),
    radial-gradient(60% 40% at 50% 0%, rgba(120,220,255,0.14), transparent 72%);
  animation: waterShift 20s linear infinite;
}
@keyframes waterShift { 0%{transform:translate(0,0)} 100%{transform:translate(58px,40px)} }
.bubble {
  position:absolute; bottom:-30px; border-radius:50%;
  background: radial-gradient(circle at 35% 30%, rgba(255,255,255,0.55), rgba(160,220,255,0.10) 70%);
  box-shadow: inset 0 0 4px rgba(255,255,255,0.4);
  animation: bubbleRise linear infinite;
}
@keyframes bubbleRise {
  0%   { transform: translateY(0) translateX(0); opacity:0; }
  12%  { opacity:0.8; }
  88%  { opacity:0.6; }
  100% { transform: translateY(-108vh) translateX(22px); opacity:0; }
}

/* Expert — marble atelier, slow gallery light */
.theme-expert #game-bg { background: linear-gradient(150deg, #211a16, #14100d 76%); }
.theme-expert #game-bg::before {
  content:''; position:absolute; inset:0;
  background-image: var(--marble-tex);
  background-size: 150% 150%; background-position:center;
  opacity:0.12; mix-blend-mode: screen;
}
.theme-expert .sweep {
  position:absolute; inset:-45%;
  background: radial-gradient(26% 34% at 32% 30%, rgba(255,222,170,0.18), transparent 70%);
  animation: sweepMove 22s ease-in-out infinite alternate;
}
@keyframes sweepMove { 0%{transform:translate(-10%,-6%)} 100%{transform:translate(22%,13%)} }

/* Constellation — nebula + twinkling stars */
.theme-constellation #game-bg {
  background:
    radial-gradient(50% 50% at 30% 24%, rgba(90,60,180,0.30), transparent 70%),
    radial-gradient(45% 45% at 76% 70%, rgba(40,90,180,0.26), transparent 70%),
    radial-gradient(40% 40% at 60% 42%, rgba(30,140,150,0.16), transparent 70%),
    linear-gradient(160deg, #0a0a22, #050510 82%);
}
.theme-constellation #game-bg::before {
  content:''; position:absolute; inset:-25%;
  background:
    radial-gradient(30% 34% at 35% 40%, rgba(120,70,200,0.22), transparent 70%),
    radial-gradient(28% 30% at 70% 56%, rgba(40,120,200,0.18), transparent 70%);
  animation: nebulaDrift 30s ease-in-out infinite alternate;
}
@keyframes nebulaDrift { 0%{transform:translate(-3%,-2%) scale(1)} 100%{transform:translate(4%,3%) scale(1.1)} }
.bgstar {
  position:absolute; border-radius:50%; background:#fff;
  box-shadow:0 0 4px rgba(255,255,255,0.85);
  animation: starTwinkle ease-in-out infinite;
}
@keyframes starTwinkle { 0%,100%{opacity:0.2; transform:scale(0.7)} 50%{opacity:1; transform:scale(1.1)} }

/* Are You Nuts — workshop steel, blueprint grid + turning gears */
.theme-nuts #game-bg { background: linear-gradient(160deg, #1c2026, #0e1116 82%); }
.theme-nuts #game-bg::before {
  content:''; position:absolute; inset:0;
  background:
    repeating-linear-gradient(0deg, rgba(120,170,210,0.06) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(90deg, rgba(120,170,210,0.06) 0 1px, transparent 1px 40px);
  animation: gridDrift 44s linear infinite;
}
@keyframes gridDrift { from{background-position:0 0,0 0} to{background-position:40px 40px,40px 40px} }
.gear { position:absolute; opacity:0.07; fill:#c8d2de; }
.gear-a { width:44vmin; height:44vmin; left:-13vmin; bottom:-13vmin; animation: gearSpin 60s linear infinite; }
.gear-b { width:30vmin; height:30vmin; right:-9vmin;  top:-9vmin;   animation: gearSpin 46s linear infinite reverse; }
@keyframes gearSpin { to { transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  #game-bg::before, .bubble, .bgstar, .gear, .sweep, .theme-nuts #game-bg::before { animation: none !important; }
}

#game-screen.active { display: flex; }

/* ── HEADER ── */
header {
  position:relative; z-index:10;
  padding: 10px 16px 5px;
  text-align:center; width:100%; flex-shrink:0;
}
.header-top {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 4px;
}
#btn-menu {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  color: rgba(255,255,255,0.7);
  font-family: 'Nunito', sans-serif;
  font-size: 0.68rem; font-weight: 700;
  padding: 4px 11px; border-radius: 20px;
  cursor: pointer; transition: background 0.2s;
  flex-shrink: 0;
}
#btn-menu:hover { background: rgba(255,255,255,0.16); }

.header-title {
  flex: 1; text-align: center;
}
.header-title h1 {
  font-size: clamp(0.95rem, 4.5vw, 1.3rem);
  font-weight: 900;
}
.header-title .level-tag {
  font-size: clamp(0.52rem, 2vw, 0.65rem);
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.6;
}

/* per-level title colors */
.level-tag.easy   { color: #34d399; }
.level-tag.hard   { color: #60a5fa; }
.level-tag.expert { color: #a78bfa; }
.level-tag.nuts   { color: #fb7185; }
.level-tag.constellation { color: #a5b4fc; }

.moves-bar {
  display:flex; align-items:center; justify-content:center; gap:12px;
  margin-top: 5px;
}
.moves-label { font-size:0.7rem; color:rgba(255,255,255,0.45); }
.moves-count  { font-size:0.95rem; font-weight:900; color:#a78bfa; }
#btn-new {
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.2);
  color:#fff; font-family:'Nunito',sans-serif; font-size:0.65rem; font-weight:700;
  padding:3px 11px; border-radius:20px; cursor:pointer; transition:background 0.2s;
}
#btn-new:hover { background:rgba(255,255,255,0.16); }

/* ── GAME AREA ── */
#game {
  position:relative; z-index:5;
  flex:1; display:flex; align-items:center; justify-content:center;
  padding:6px 4px; width:100%;
}

/* ── TUBE ROW ── */
.tube-row {
  display:flex; gap:var(--tube-gap);
  justify-content:center; align-items:flex-end;
}

/* ── TUBE WRAP ── */
.tube-wrap {
  display:flex; flex-direction:column; align-items:center;
  gap:4px; flex-shrink:0;
}
.tube-label {
  font-size: clamp(0.42rem, 1.4vw, 0.58rem);
  font-weight:700; letter-spacing:0.07em;
  color:rgba(255,255,255,0.28); text-transform:uppercase; white-space:nowrap;
}

/* ── TUBE ── */
.tube {
  position:relative;
  width:  calc(var(--ball-d) + 10px);
  height: calc(var(--ball-d) * var(--tube-cap) + 18px);
  background: var(--tube-glass);
  border: 1.5px solid var(--tube-border);
  border-radius: 0 0 999px 999px;
  border-top: none;
  display:flex; flex-direction:column;
  justify-content:flex-end; align-items:center;
  padding: 4px 4px 6px; gap:1px;
  transition: box-shadow 0.2s, border-color 0.2s;
  overflow: visible;
}
.tube::before {
  content:''; position:absolute;
  top:0; left:4px; width:5px; height:100%;
  background: linear-gradient(to bottom, var(--tube-shine), transparent 60%);
  border-radius:3px; pointer-events:none;
}
.tube::after {
  content:''; position:absolute;
  top:-2px; left:-1.5px; right:-1.5px; height:2px;
  border-left:1.5px solid var(--tube-border);
  border-right:1.5px solid var(--tube-border);
}

/* color-target tubes (Hard level) — tube glass tinted to a ball color */
.tube.tinted {
  border-color: rgba(var(--tt),0.5);
  background: linear-gradient(to bottom, rgba(var(--tt),0.05), rgba(var(--tt),0.18));
  box-shadow: inset 0 -16px 22px rgba(var(--tt),0.20);
}
.tube.tinted::after { border-color: rgba(var(--tt),0.5); }

.tube.drop-target {
  border-color: rgba(255,255,255,0.65);
  box-shadow: 0 0 20px rgba(255,255,255,0.2), inset 0 0 12px rgba(255,255,255,0.06);
}
.tube.drop-reject {
  border-color: rgba(255,80,80,0.7);
  box-shadow: 0 0 16px rgba(255,80,80,0.3);
}
/* a finished tube lights up to show its colors line up correctly */
.tube.complete {
  border-color: rgba(120,255,180,0.95);
  box-shadow:
    0 0 18px 2px rgba(90,255,160,0.55),
    0 0 42px 8px rgba(90,255,160,0.30),
    inset 0 0 18px rgba(120,255,180,0.30);
  background: linear-gradient(to top, rgba(90,255,160,0.18), rgba(90,255,160,0.05));
  animation: tubeLit 1.9s ease-in-out infinite;
}
/* color-target tubes light up in their own color */
.tube.complete.tinted {
  border-color: rgba(var(--tt),0.98);
  box-shadow:
    0 0 18px 2px rgba(var(--tt),0.62),
    0 0 46px 9px rgba(var(--tt),0.34),
    inset 0 0 22px rgba(var(--tt),0.38);
  background: linear-gradient(to top, rgba(var(--tt),0.24), rgba(var(--tt),0.07));
}
@keyframes tubeLit { 0%,100%{ filter: brightness(1); } 50%{ filter: brightness(1.16); } }
/* one-time pop the moment a tube becomes complete */
.tube.just-complete { animation: tubeLit 1.9s ease-in-out infinite, tubePop 0.55s ease; }
@keyframes tubePop { 0%{ transform: scale(1); } 32%{ transform: scale(1.07); } 100%{ transform: scale(1); } }
.tube.shake { animation: tube-shake 0.35s ease; }
@keyframes tube-shake {
  0%,100% { transform:translateX(0); }
  20%     { transform:translateX(-6px); }
  40%     { transform:translateX(6px); }
  60%     { transform:translateX(-4px); }
  80%     { transform:translateX(4px); }
}

/* ── BALL ── */
.ball {
  width:  var(--ball-d); height: var(--ball-d);
  border-radius:50%; flex-shrink:0; position:relative;
}
.ball::after {
  content:''; position:absolute;
  top:17%; left:17%; width:30%; height:25%;
  border-radius:50%; background:rgba(255,255,255,0.55); filter:blur(1.5px); z-index:1;
}
.ball.ghost-slot { opacity:0; pointer-events:none; }

@keyframes ball-drop {
  0%   { transform: translateY(-120px) scale(0.8); opacity: 0; }
  55%  { transform: translateY(6px)    scale(1.08); opacity: 1; }
  72%  { transform: translateY(-4px)   scale(0.96); }
  85%  { transform: translateY(2px)    scale(1.02); }
  100% { transform: translateY(0)      scale(1);    opacity: 1; }
}
.ball.dropping { animation: ball-drop 0.38s cubic-bezier(.25,.8,.35,1) forwards; }

@keyframes ghost-pop {
  0%   { transform: translate(-50%,-50%) scale(0.9); }
  60%  { transform: translate(-50%,-50%) scale(1.3); }
  100% { transform: translate(-50%,-50%) scale(1.25); }
}
#drag-ghost.popping { animation: ghost-pop 0.18s cubic-bezier(.2,1.4,.4,1) forwards; }

/* marbleized balls (Expert level) — veined-stone overlay tinted by the ball color */
.ball.marble::before {
  content:''; position:absolute; inset:0; border-radius:inherit;
  background-image:var(--marble-tex);
  background-size:150% 150%;
  background-position: var(--mbx,40%) var(--mby,30%);
  background-repeat:no-repeat;
  pointer-events:none; z-index:1;
}
.ball.coral  { --cd:255,80,60;  --cl:255,180,160; background:radial-gradient(circle at 35% 30%,rgba(255,180,160,.95),rgba(255,80,60,.75) 70%);  box-shadow:0 1px 6px rgba(255,80,60,.5),  inset 0 -2px 5px rgba(180,20,0,.3); }
.ball.sky    { --cd:40,140,255; --cl:160,220,255; background:radial-gradient(circle at 35% 30%,rgba(160,220,255,.95),rgba(40,140,255,.75) 70%); box-shadow:0 1px 6px rgba(40,140,255,.5), inset 0 -2px 5px rgba(0,60,200,.3); }
.ball.mint   { --cd:30,200,120; --cl:160,255,210; background:radial-gradient(circle at 35% 30%,rgba(160,255,210,.95),rgba(30,200,120,.75) 70%); box-shadow:0 1px 6px rgba(30,200,120,.5), inset 0 -2px 5px rgba(0,120,60,.3); }
.ball.gold   { --cd:255,180,20; --cl:255,240,150; background:radial-gradient(circle at 35% 30%,rgba(255,240,150,.95),rgba(255,180,20,.75) 70%); box-shadow:0 1px 6px rgba(255,180,20,.5), inset 0 -2px 5px rgba(160,90,0,.3); }
.ball.violet { --cd:140,60,255; --cl:210,180,255; background:radial-gradient(circle at 35% 30%,rgba(210,180,255,.95),rgba(140,60,255,.75) 70%); box-shadow:0 1px 6px rgba(140,60,255,.5), inset 0 -2px 5px rgba(70,0,180,.3); }
.ball.amber  { --cd:255,140,30; --cl:255,205,140; background:radial-gradient(circle at 35% 30%,rgba(255,205,140,.95),rgba(255,140,30,.75) 70%); box-shadow:0 1px 6px rgba(255,140,30,.5), inset 0 -2px 5px rgba(150,70,0,.3); }
.ball.teal   { --cd:20,190,190; --cl:150,245,240; background:radial-gradient(circle at 35% 30%,rgba(150,245,240,.95),rgba(20,190,190,.75) 70%); box-shadow:0 1px 6px rgba(20,190,190,.5), inset 0 -2px 5px rgba(0,100,100,.3); }
.ball.rose   { --cd:240,70,150; --cl:255,175,210; background:radial-gradient(circle at 35% 30%,rgba(255,175,210,.95),rgba(240,70,150,.75) 70%); box-shadow:0 1px 6px rgba(240,70,150,.5), inset 0 -2px 5px rgba(150,0,70,.3); }

/* glassy ball variant (Hard level) — translucent marble look */
.ball.glassy {
  background:
    radial-gradient(circle at 50% 120%, rgba(var(--cl),0.95) 0%, rgba(var(--cl),0) 55%),
    radial-gradient(circle at 50% 50%, rgba(var(--cd),0.40), rgba(var(--cd),0.72) 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.32),
    inset 0 6px 9px rgba(255,255,255,0.30),
    inset 0 -7px 11px rgba(0,0,0,0.28),
    0 2px 7px rgba(0,0,0,0.45),
    0 0 10px rgba(var(--cd),0.30);
}
.ball.glassy::after {
  top:14%; left:20%; width:34%; height:26%;
  background:rgba(255,255,255,0.85); filter:blur(1px);
}

/* glass-stars balls (Nuts level) — translucent glass orb with a living constellation */
.ball.glass-stars {
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 36%, rgba(var(--cl),0.30) 0%, rgba(var(--cd),0.52) 52%, rgba(var(--cd),0.84) 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.26),
    inset 0 6px 10px rgba(255,255,255,0.22),
    inset 0 -8px 12px rgba(0,0,0,0.45),
    0 2px 8px rgba(0,0,0,0.5),
    0 0 12px rgba(var(--cd),0.32);
}
.ball.glass-stars::after { z-index:2; }       /* glass highlight stays above the stars */
.ball.glass-stars .ball-num { z-index:3; }    /* number on top of everything */

.ball-constellation {
  position:absolute; inset:0; z-index:1; pointer-events:none; overflow:visible;
  animation: constBreathe 11s ease-in-out infinite; transform-origin:50% 50%;
}
@keyframes constBreathe { 0%,100%{transform:rotate(-4deg) scale(1)} 50%{transform:rotate(4deg) scale(1.05)} }
.cl-line { stroke:rgba(255,255,255,0.5); stroke-width:0.8; fill:none; animation:clPulse 3.6s ease-in-out infinite; }
@keyframes clPulse { 0%,100%{opacity:.18} 50%{opacity:.5} }
.cl-star { fill:#fff; transform-box:fill-box; transform-origin:center; animation:twinkle 2s ease-in-out infinite; }
.cl-halo { fill:rgba(255,255,255,0.22); transform-box:fill-box; transform-origin:center; animation:twinkle 2s ease-in-out infinite; }
@keyframes twinkle { 0%,100%{opacity:.22; transform:scale(.55)} 50%{opacity:1; transform:scale(1.2)} }
@media (prefers-reduced-motion: reduce) {
  .ball-constellation,.cl-star,.cl-halo,.cl-line { animation:none !important; }
  .cl-star,.cl-halo { opacity:.85; }
}

/* nuts-and-bolts balls (Are You Nuts level) — hex brushed-metal nuts */
.ball.bolt {
  clip-path: polygon(25% 3.5%, 75% 3.5%, 100% 50%, 75% 96.5%, 25% 96.5%, 0 50%);
  background:
    linear-gradient(125deg, rgba(255,255,255,0.50) 0%, rgba(255,255,255,0) 20%, rgba(0,0,0,0.16) 50%, rgba(255,255,255,0.16) 74%, rgba(0,0,0,0.22) 100%),
    radial-gradient(circle at 38% 30%, rgba(var(--cl),0.95), rgba(var(--cd),0.92) 78%);
  box-shadow:
    inset 0 2px 3px rgba(255,255,255,0.55),
    inset 0 -3px 5px rgba(0,0,0,0.5),
    inset 2px 0 4px rgba(255,255,255,0.18),
    inset -2px 0 4px rgba(0,0,0,0.3);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.55));
}
/* recessed threaded bore behind the stamped size */
.ball.bolt::before {
  content:''; position:absolute; inset:27%; border-radius:50%; z-index:0;
  background: radial-gradient(circle at 50% 40%, rgba(0,0,0,0.08), rgba(0,0,0,0.40) 92%);
  box-shadow: inset 0 1.5px 2px rgba(0,0,0,0.6), inset 0 -1px 1px rgba(255,255,255,0.28);
}
.ball.bolt::after { z-index:1; }            /* spec highlight above the bore */
.ball.bolt .ball-num { z-index:2; }

/* seized / rusted nut */
.ball.bolt.rusted {
  background:
    radial-gradient(circle at 28% 32%, rgba(120,58,20,0.62), rgba(0,0,0,0) 42%),
    radial-gradient(circle at 72% 64%, rgba(86,40,16,0.66), rgba(0,0,0,0) 46%),
    radial-gradient(circle at 56% 44%, rgba(150,84,34,0.45), rgba(0,0,0,0) 52%),
    linear-gradient(125deg, rgba(255,255,255,0.16), rgba(0,0,0,0.30)),
    radial-gradient(circle at 38% 30%, rgba(var(--cl),0.40), rgba(var(--cd),0.62) 78%);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.55)) saturate(0.85) brightness(0.92);
}
.ball.rust-shake { animation: rustShake 0.38s ease; }
@keyframes rustShake {
  0%,100%{ transform: translateX(0) rotate(0); }
  18%{ transform: translateX(-2px) rotate(-4deg); }
  38%{ transform: translateX(2px)  rotate(4deg); }
  58%{ transform: translateX(-1.5px) rotate(-2.5deg); }
  78%{ transform: translateX(1px)  rotate(1.5deg); }
}
.ball.loosening { animation: rustLoosen 0.55s cubic-bezier(.2,1.3,.4,1); }
@keyframes rustLoosen {
  0%  { filter: brightness(0.7) saturate(0.55); transform: scale(0.96) rotate(-6deg); }
  45% { transform: scale(1.14) rotate(4deg); filter: brightness(1.35); }
  100%{ transform: scale(1) rotate(0); filter: none; }
}

/* metal socket tubes (Are You Nuts) */
.tube.metal {
  border-color: rgba(205,210,220,0.40);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,0.10),
    inset 4px 0 8px rgba(0,0,0,0.40),
    inset -4px 0 8px rgba(255,255,255,0.06),
    inset 0 -10px 16px rgba(0,0,0,0.30);
}

/* numbered balls (Expert level) — embossed digit centered above the highlight */
.ball.num { display:flex; align-items:center; justify-content:center; }
.ball-num {
  position:relative; z-index:2; pointer-events:none;
  font-family:'Nunito',sans-serif; font-weight:900; line-height:1;
  font-size: calc(var(--ball-d) * 0.46);
  color: rgba(255,255,255,0.96);
  /* raised emboss: light catch on top edge, shadow cast below, faint halo for legibility */
  text-shadow:
    0 -1px 1px rgba(255,255,255,0.55),
    0 1.5px 1px rgba(0,0,0,0.45),
    0 0 3px rgba(0,0,0,0.22);
}

/* ── DRAG GHOST ── */
#drag-ghost {
  position:fixed; pointer-events:none; z-index:999;
  border-radius:50%; display:none;
  transform:translate(-50%,-50%) scale(1.22);
  filter:brightness(1.35) drop-shadow(0 4px 12px rgba(0,0,0,0.5));
  transition:none;
}

/* ── HINT ── */
#hint {
  position:relative; z-index:5;
  font-size: clamp(0.55rem, 2.2vw, 0.68rem);
  color:rgba(255,255,255,0.22); letter-spacing:0.04em;
  text-align:center; padding:3px 16px 10px; flex-shrink:0;
}

/* ── WIN OVERLAY ── */
#win-overlay {
  display:none; position:fixed; inset:0; z-index:200;
  background:rgba(10,10,40,0.88);
  align-items:center; justify-content:center; flex-direction:column;
}
#win-overlay.show { display:flex; }
.win-box {
  background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.2);
  border-radius:24px; padding:30px 40px; text-align:center; backdrop-filter:blur(12px);
}
.win-emoji { font-size:2.6rem; }
.win-title {
  font-size:1.8rem; font-weight:900;
  background:linear-gradient(135deg,#fbbf24,#f472b6,#818cf8);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  margin:8px 0 4px;
}
.win-sub   { color:rgba(255,255,255,0.5); font-size:0.86rem; }
.win-moves { color:#a78bfa; font-weight:900; font-size:1.1rem; margin-top:6px; }
.win-btn-row { display:flex; gap:10px; justify-content:center; margin-top:18px; }
.win-btn {
  border:none; color:#fff; font-family:'Nunito',sans-serif;
  font-size:0.9rem; font-weight:900; padding:10px 22px; border-radius:30px;
  cursor:pointer; transition:transform 0.15s;
}
.win-btn:hover { transform:scale(1.05); }
#btn-play-again { background:linear-gradient(135deg,#7c3aed,#2563eb); box-shadow:0 4px 18px rgba(124,58,237,0.4); }
#btn-back-menu  { background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.2); }

/* ── SCREEN TRANSITIONS ── */
.screen-enter {
  animation: screen-in 0.35s cubic-bezier(.25,.8,.35,1) forwards;
}
@keyframes screen-in {
  from { opacity:0; transform:translateY(18px) scale(0.97); }
  to   { opacity:1; transform:translateY(0)    scale(1); }
}
