/* YellowHearth1. Чистий CSS, без JavaScript. Правила дизайну: DESIGN.md у корені проєкту.
   Палітри Catppuccin (Latte, Frappé, Macchiato, Mocha), головні кольори жовтий і чорний.
   Тема задається атрибутом data-theme на <html>; кожна сторінка зібрана в кожній темі окремо (див. build.py).
   Що тут безпечно міняти (ширини, жовтий, кольори теґів) і як перевірити: docs/design.md. */

/* ---------- Шрифти (обрізані до потрібних символів, див. tools/make_fonts.py) ---------- */
@font-face{font-family:"Ubuntu Site";src:url("fonts/ubuntu-regular.woff2?v=8c8eae7f") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Ubuntu Site";src:url("fonts/ubuntu-italic.woff2?v=3771bebc") format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:"Ubuntu Site";src:url("fonts/ubuntu-bold.woff2?v=e545ac8f") format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"Ubuntu Mono Site";src:url("fonts/ubuntu-mono.woff2?v=5420449a") format("woff2");font-weight:400;font-style:normal;font-display:swap} /* UbuntuMono Nerd Font: код і ID */
@font-face{font-family:"Symbols";src:url("data:font/woff2;base64,d09GMgABAAAAAD+4AAsAAAAAaUwAAD9lAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAi3wRCAqBvVyBnUsBNgIkA4FwC4FwAAQgBYFSByAbilcVnJNPge4A3tMIL2pEBatuFNKsTQoE/H+dwI0haB9aL3AUGI0G382U3CIKGJvooTW24oPTv1WoQxnajzp0AKEpQ3eE5fCvFCN4juOcutq0/u2NsbYa4TgFhmPBQ5IzR2jsU3dJeCC73jd7ux+aD0DR3YXsrDZVeqEEq7iVNpoun+dz9/6tEEPsALQtwIQbHuz276axz1pn7eM4DnHDOce+YR3uDndnnRXOqKyTMzIyD4Wm1iJRUWkoR4WWiqLx++2/1e//cmlVtRqrJKvbTjJIVGCnHW4IGlDSv0gzLAUGAEJAtkuSx1kwBE779jyU//fzvu9s6e5TTmKRjodxPczPcElnJfft105mbXZWvpyJA4kmHimB1wm5Magzs1qWWpYsQ+DAQLkcGBIuJCmR4IByZUriYeyKax/GrQzvy4plea4khdsIkm8cVhXuoVzXGIURGIOU+F23av3/N9VsMSB1dpQBRWjXYTfDmVupXVd2Wd7/ZiD9Px+A/wwUBkNKC2ATSNFHAxA+Z4iN4IaQKocQygHgMMpDOJGOpHOkOtnVunOZcumqcNuFWLR20ZWuQiL+d9W8AxfpCxdbuw21GnBLso0Y0YQaOL5/GzHFAo8jiYZxgN1/ge6EOEITjBxDRkT4PGJ5QZf3l4bhTJE36/za2XWz4u63u0sc+v88DIlzPxBo5Ak6lrvYtlxV0Q8suOwNTqyBPPu/OH27+zP+PG8uN1eZl82PXc3bHIDb485tJP7Imyg3yGUe5wfZEOMR6fab24Bb9Jpvi3T+0zo2a62wzErLLZi3yGo9uzmrrLHaBm6UQ6OWGxsG56sQ/nlAaJs/z92e/85Xczlh2FwlHGxeFo42Pwon/44Qzv6dKVz8O09Y5WqVEOusksJmlRJrrdJihRWIZVZMrLTiYrmVEAtWUsxbKbFohcJqpcV6KxJ2KyPmrKxYZeXEGisvVlth9RpsIEme4IakboI7krEJHkgWJ0gkFyY8SeH1DOdLiIb+oMlSmaU6i2/amRUCtN8KgTpjhSBdZ4Vg3eMZdfawFaF6zIowy2vLmz3h/SmI7F8TUaTWEkQzSxY+VhULbCijDNtuE9hVIrBvs8ChPQLHDgucWGIJ534WuPSnCXAFGjB84AYJMpjSBB7dKsBSRhmevSfw6mMTABzQgOsG3vUU+DRagG+2wJcmmvDrA4F/fwi29H8TEAA0EOZBYH0FhIYLiB0UkDorIHfVBIFa0qEoqOs6QX2fmWggHfuDxloFTbWb0Ew6BQYt3WZCK+mcFbR1g6C9FwUd/SDo7HcTXaSL94Ru0rUv6OkOQW/fmugj3S4H/b1nYoB0vxQM9rmJIVJGThgmPc2JEdInJhg9N2GM9NsbjPe5iQnSf/OESTIgcsIUGXgkmO51EzNkcFgm0zDbJJZQtAZy40/iuxBzrRELqZ+Xnl5odlxH4BQLYwevt6BromBAhjRNQKTmNQtIu61IsjTKJflBdUpxpkFHSLmlKpFXteTakvgtAZpmSLO0TP9oACqkS2lCpnYzRQPJvmVykTFsG0aFVD+GU3PX4WnjQdcnhPgrJalx2pNs78ehVABKpo3eYZUZkc0YCIVEQqxyTjU07LRtQMiNLypyyldjVRAQulxbAr5qEPBpFpWsDcoCT07E0YfY1jiwddI0h8DguVeaECODqAjDvsiLYtn4GIoq1hp1ix6s31QULH1oT/FhCD7EmLliI2bBfIrgARNSSCbe/cWCTGd4PlcgzRbjLGTzwFsX2eiCYxbK5DmEDB1JbGTsgncc5Ys6dqZWEBAzzXyp6sGa+UC+rA1SmM+O24FgBeIqAxHAGDU0s9jq5G0A2bUplZ/ft4NVeZ41U7nUahqgiPsVNHO9/7Na19d17vrzv7IRUTn8b836fvyRslmJ8/lGt5QrHAnWUiiY9mQjp8M3qp8ppdjHarXarSIZ7EnknvPNiiVbNhzYE+65I4zvuot//HO2PUpEzvaw8pii+nZt23TWWfH//8c/+eVIT2jE1Arrqa9cee3WaCrzMBM7fer++csXKzmqG6I25cljz4T8C5RQLRovgyBEzlXE+xEOXkxdRk/jDTHmiMgktxf7eSnuMoKrytDaVLztjKUHNiz55odvUAJuf/8gSxlFHTOO6Du0tRGJKkEkQZPR8MDAUidikxmZMxT6f292PyZSf/d9wB6Vnq7lnh7drq7OTr3uuJ7YPdCtV8pvZm0EVY/XmecvjePUY28xQzh1pfcMPlr2OLS4uGhtrRVm99FlDlifXlzao7uwOCeX3EeRco954Pzi8rJr35VLo3p6hw7IZLq6B5cMDffcv7P06Ja+ftUSqLqIW361jN7lS3t0u3Q69boDzjmLcLCMd+sF3bE9hvCphF4PwpDzrxk2kqlBxvxoWNBbNv42PiHjOHxEyiAc4mFotbf9lcHorrJ8lmXi+A/lHls+K+y/UMFWCyaFb9ZIz8Lcbyd6a6enmPehp/ouNhggxooLe8TamD0AY7a6/RZfiwpdByMuGBBrRMWBQPhdVP7rftyQPUhk+LSYNIVqLKaEdAydrRDVR6wpPjEyUiKKK+vA5YueFTEP7VSmlIjEXzi6oTs4iqGE3wBIEG2yj65AtkMvaTrYmdqskagaSbTDbAumOX998GfdrOZS81FaZwhdu3Do3OjKp/4oK9J+tjn/av0SY/79Gk4PX04g4KGriIgtSyGKUdsJdUKFWg2YZcY703DioX8c4ZoFwXWLMP8rXrH8q+fryh66iL1ggWM7kKBaI6IYDLubW47stHXoEGCzLmBScMm47YXgPPyluCU/XFW+AOFqaz6Ra8VCzNfBIqq24b58nMirvYAcLFOejOV8ZT00RBTyEGXjPRHZDBGmgKgCFE0WD+4YHIJrliCcPXX53evJwEa5oz+hKwp71esm6RA7eKXHffl4/iaoOg3AqhLv1ZWH/Ozt5y+/mHHJPZB6OE/GclnC13+88dtHz+WJWETi1nb7loIehON+L+Y+M+oRuRb9notKlK24ZwPVGLdUbbz34I2L795PDkAHDqnet+k2Ow8FLe+/fBy5s8ccvNaHgxdBJ83C7K5uYdmzurukHbqBjG37GyIanj3I1OuSQszjp4S/DvGTp0MiEZTGffzM2d6QLLO2FAhLNCBttnSg1o/e4K+UB6yHiNLJGx+dJpzpHYTUEl2bU5h1cKhWZGdHU6UqOjpb/V6c6n6Eay+mBkureg2l9eSTqJo5J9uZBBZq2a/0kIip9mpvpRaKmf51tgM0UdBoU3DNAhpZvesus+Oc0HuJCsMB00dsAOyAnqpJ6nZZMxLG+6114njE1Ih4X6GqzpAYe8uxnZwNtQ4SlufI2ObdV0L4aZZvuDylbc1xH97MrRQ/dOzCcJarAIlt5Re2WDM+IXfwMFiv+jGumIKaNoO1F5HJrtHM0QRyHON08mVFOpu0lMGrC87EFgNQ2WC8aGoOs6caxU4JCcPSE3WaDoYGgJwkDohZFpFSPk4KCJdSbKfuemQL0H2pD4KevWTxj6PEvWYBXZVxwtBEbRYStw36cFnIwDgWPRq9uFWsJZ3tnvNDNcjXUMrj4K54YsDLvsJB929X9x9m25mYABnv2oXEq3baVetqM0ja0fLyWgZxoCBLJIFsaVIkESIlVr0BEURtAh+C4FZfuQ9sCWLvwa3F6OWoPrTNiyA55lm5fE3xXuuj/VLNbnvmwCNc7nruEDc8hOuJGEzcq+dbZqrGdjuSjunJmZsbm5BxC5mY+po9asxpfACbQm9IP5GQcLbBF1P6tov+xWUuz2xsn3QAsKOad3ilRzJLFoGRfF6+XtTXAcXE7jcNsDmaYNiQLPm6LJWoOvmGlHW3aIrAAoTrFxO5cRRLyaqT8VDDpi9gsXgNiy6zWUkhVJcFNxQJb1mafeRFsYBU/GX1ejhnngq8pYUeaDWaqXU6hXmENgUMRQXIIzyKcZZq8EoPAst5u/Ahm1qY5hsysJMjfVM30E7WhW9U+q/DfSrtODVHZmeaqfDyq45IkuIoRVOkTdMTugZOjnyeQtXqGxFBJq5LUzfIhl/ZsDgkaMZybAZpDpdUKQn4e92Lg0d2sFWJOi8dE/9kjUVjWsl5bJfV9hTMJrb1Ju6WwSCPH93JbuhV+dg3n9Yzea2QMdIFYP/e0cZZQgHEkNhRluAg63XP6lvkGH0Uvaw3fjdITYzG3BcW4EYLeyyfgaTchiDnZs5Rs/hv1PbViV8v5p/z2opPkZNjvG3BOfIGhtzNRK5kwBcFW9DWlfy5ixG29K5bRPUKJZe4lqT2ql1/Cc+UkaKueBhpGeKlQmZKJ3PYV5x55VP2sMnujbEDk4f1ZM6koYbfE92g2SdA0IMS9zjxamj3jbtvuABoX7dIZY8GMnKuXZiPBL+Qfj/LQRQ3DgwTi5UpxYZJpQZomj51Zmtje+t4cHqJeXzPMvcVO6T6WncfZstJmbYTPLAF4f7NRB7cKqZhaJCpeoLo76cmBRk8cqbYSAZENBnXQ+XwFC+76iTDLaQHrI73hyMu+8fdnqDP64W6ZKmcrE1VK3allCg4VS2fkAZigjNNkxeRLi2Pqg3vAThS7PDNi88/v3DhtzeufDESeCQgzvpLi6So7e6Ns0WE88I0hPw0VkkXKrHxjM9aDkwehtgTRuiyjlgaiqnxeuRJzG2MxHIcvT6lLOacnWhsakW5HF74KFtHEZfCNhbeTQLGIRLEWSeKBq7BBNWgun52fhtJyEu8Wu4mFi0aDbSt2CD31jyOW2+xcfGs6bIMHPzbW5Ti9oqQ6l3th27bdZl3obPyxaOGS3mv9pJvekJ8xXTsFgfqGedyymSrceascROam1oZpjcUTS1Zp3xhFQXlLfVPHJw7eXjsiSkjU1tlxwHnMgVmsqaIKDbqUJj0g7VUJK9yyPv3b0aJmTSCh7bhUhGIu8gLlNta59ilP8Z/JTV+3ZbDU1bhXBSthmES5axofSapFb1AxQqEfTB9w07fHhHn+K/24noQcUY+8H4DPg1gLX/+MDg2BvDFDtSV9dMsv9+pS9SCqVfzj1KR+WqD5XGL/kTmw0KqhI6MBNUMrGuQobgW6TRDZpKmTJyXGSPN7dGisy3S+iOVxpbqYOrMaY3Ns8bPaJpJB6xXuRTzTdvMsXy0xVSUl5OmgOwJJ+bwQjYPoobpCDB+1mpE344uy0ya2VpABWwhA4OVHL9KPN4bcqc14bLLGOLSOG2mPT/HEhUYIjneWLbhz6vB8GUUfTKGgYvHmTWnQFqPYM0ut1PjQe8h0O00lW+cKpm8pTLXdJLpNNb+AoDZNjkV3LNXT4cmqEYrkK7NwJA/Wrk906v3Ny3nSpoXAbcIBv9qVpaLvGsrC0tWwgBwWZdIicfAtiiTSttaqObwsRXJuzk4SrFsiPWEOJa5KLKcHFj4mKR7HIUI/JedMNibeg0y8cR3IvlLqtGIGjS5tUJSnygju/OXdtfsKa3eZYY1gBkmeVKN9a+ef8VEU6gg4kOThvUGiduxNZWrDVRONyniPtuUoa0yMtkJxoE0Hd2jC6DBA8vI6tApu4r+vZboFkwkWEUaolpEMOvIlXkBkB0xlLvCeaYxeI9DsFsc3O5f3rL/5uUI59grntlA9ar2WMbCWRl1mHks4zKm3XJD2jo2gaueB3BWM1/KDW9VDFFjvQiXX9LWK7Kp1sSkyVK2OiFLlWKOPJZ9BVZ88ZvOezz8k+Csz3CIrFxWLrEZvOsWBdcsuKa6VJOBdTs5sdE0KjFgqWNst8YTQ8r8Zy+/mHNSKZWUQhNbv3EUm4hOkOArK4F1w1kXiDT9l5KSJNbGlJBwyTvGOZcjN6Pb/pMztzeEKWPHZCNvGc48ZbUzjiQ0N+WzJp4FmYyxhTf5LrNMBP8bfqE0kSPYI1wzsCFDQ7RQMiSdccsVS9mERFtKLvTlMTT5wjW/yLsalJxNqXANb/Xmj1/t/KS331zfUFnW3ITmeYS4vH+WRmZxgiYl3/vchRR9cOBHkF5Y9UvJbd76gTt5SzsRos56HfVzaTO+/KzwR+3zRKAJwaYotSS+zOIArwaVM3OuKcaiaP5Ua/nl80mWicVAnHrxouMEmrF8QtMmdVdcyk45JyVPXNCvtE8/vVCp8MqTGaOkfHGMzXL1Ac9wgq0gG3Hblq4WJs3TynI2x9kvLMtxXqlnGXnZpE/iZicTm5yqF0dAXX5I1QEVh/3VA9URzPo+oh+lq7jq4u0dNp1GUsPbNF6uRZqiQQytWgzThgoDoBo6FwOYVQpCRF2aZYldt5GvEJ0U9e0X9YuCgEqnLiEctTD/Zc3z4D03BJRPpozhzfOYnSPAEpXW0juGGb+ftp2sCHUVZZS8KBQw1hQPYgvHMXRSVUWosVQC5TI1dxEeYCoc7fu6PsRsxzHNsjFMxgXt9QxTKsdaAWu4JrZjgcODDjCMklE2qyGitpebITshtq8QhZ6tDApwDzRxr6O7yjYZjNxEmYv0sRNb1iYfbgvSEAxvDvHKyWbvyKPeUV+fJXBUxwF/3hoiO2QPGUV5KtiAquHpt2iSIQTxIX5hGHPB612tYAmxMPQiQSXdfhs7I0aq4WzUhYaSWQ5DqkmXBMJCPyC3+FSbcfVnpskqPR0WIswecCmvFqdOqjokxEUuXaWUXTptasm2Y5JUinkhWBZtbLVqw/FwuqyxsdOZGy4Nl5dVN3a7zeFsOFlW39huV4aKT7ejLoc4xTxrBXTSDdGg2I7Uco/yLrfweYlGMzIM3QyyiZ2u8zpPqJio2+i1a9T/+my0KHPaljyPnnJCyFIQEE/up1opDCklcxKVfJ8sTSNwCCHUrgVdfndt/HDFxMrxtGDFLh1Tlu0KyKLQ7j3fbfic7bn1sFxBNLh9k6ir1ktkniasljM29Z9J50+ZV2PTez3cajBQSPnq1Y5JnzmzeO6ZGSGknJ1dSp89201fu3ZJnrO0Xr9/YQXRBmUmenqaC1V1VOzgOLZSywqESsLYQRAOmAfZ+VSlS3tITWBSYJhZMTd63sJVsFhhzQzhVIERXt+RWRGIZMM9z85LwRISNgTjBYuG9KBT8s4jFvZUtZ8QOt+INQ0rRWKkYq8B1rCHLQFauaBnMpe6OPEY2gysGTSq2xfUukQz+20E25nSYtImDanjJYhFynWpCblJP0ExeDfs3jrxCMcm6WxnXpLuC5vB2wLf+ND+C43SbtRM/VFpLK9lreZF0YHUmmXVWlsTHFbCaiirUO5a5aK3tAOb+Mx1cheqXRLN/xCUw8mylXUJ35BAx56eLuZghfNjkgt5FHCJ+DJnk5dZgn142Q6Dj0ZCCiGHcmUMERMMACLWhAQr6DgTnMFVkU+xZcY0r2HHsjA1OM4FZy8uqsCkpm5QRJTCWMOYIA3oVHhjWaGQsdZ1pthHletwsg/mqL3/6DjOp3Utp3p9clbKspTVs0ZuRPelg4EQO1dtEMfWEuZ5kVbQ2IgpRTGVgtZA/YKd9Pso45SU55bLfvaFet22fbJKwSlVbWhpamDFpzLWi3sAqKmJixedIJBmWhKlbCm3pJwtg0BWyGyivL/Pk75Ewwiy3q77mp5dLOZCDNIA7MU9xnq9pwrnSHXm5iYWF0szQOOcqslg1bxknUtyzSP2gqiOilIoTF0tmoYHg1QsIDRMk+AzrnPev1BXz69XnODthr0jn6w551mHcDhpQ66cwPitzcyAWQOxj9Ik4VYjmVnUAoJh9eQ0HZxbnvWn8H7+K5S3sxyeuIl1oTxw/9z5YkoP6Lov95kQHOFKmVWX1y8WPv+mf/PD8HP4fM5+dQrEP6X3NB9F4B2Cql8QDQiufML1Mf9k9Tz/IyS++ulnKiGDcqInnZ1neRaWKSoG9xgUuwWkKpK74aPg1tG2BIQqHF87ekO5Ux4hE65BD0kfyggK5Zv78os+Dv3bcdYHRAGoR7BC0Ju96CwQRBvHdg47sEWehpbLs0ujRtybg/nUdif0J6v0QSKMHN+Ukz/vPSrJxbhp2YJi6XxYu++pmADMG65CpU0j+agRxpPDnRPVrjsbunjvNLdAaNIw88UDhp4fpI4JpT0mZnnOyo8MY5gt5UpvzkZrD3XyPJkdiTUKShL9PA55reF1Mbplmn49Gtqevr6uxVjrt6EqVzWW9jFcWLbE+UP+LlZlEJ0ffjM+8ujNoXxy9OEYTWB+O18BEfL8/m6DIeXt7/2bYHAQIfRTbPRdX0MaMcLxLxmZxr/i8Q5yAMFC+394PiP3zvWCinM34ZAybTvtdDVqy6414TZ1QFSAMhXOpkPp0DxEumqxzi6omWuQSH5+5KwSBYki0KGn9Z7/jjxCwlMMIrQrtAnQN6pfCJE6NVEp7JB2N7H5tGaVwvOyrThjqnaNRZpjnMYfZ5CdnQ0Bqq5qro0B9NB7fBLXLQ89HNfFgtwDWaAWQVaOwpyhXq3ykIBK4jbPeK/4ih1ECaTa46r3dKBSNIII6rIgcuaykiDI5dAmzUybk2xhtmi2Pdzz8H9kY1Q01VgJlLwR+LNYWwDy6RYWy180BfwSNz208gDzQEkSTxMIaDShICSUL9jNF7Cs4w1iNapcKyIja90SBd1sSwK8zvIBZt0JSdQLSiKbuKItlEQHk3XRK6AKmjrVlPZJJfzMhO6UHt47Or8iO2NH8HcTg0Z1d8i3vxDSRZ/FowcdzC7JocW00800xdrVycnVWsUQ/Zd6WXsDAryEwAkY8rGi8pgCckyx7VENImypsHrAabGw/YRB1VuVI/C/EArHFEcxxiqUVzuujNWthCruWjvRjre8G0RxM4BDYHQJ1fdvqlKhCck6huwUb1rLiHIXbM9tVKCpp6LrwzRpVmSbiC07LOvqfEjxcIRzkFkESoypo+e3fmMK3klIZ5jUOsRHkonWuSYhyssBKuzM51Q4QYPiNfDhjiR8eOh0Us23nd0rPmEv5Ddw74PViYD07RsWcgNp4ErpwcKmx34J/Y60BCtUrlwce75DdSas4Z78UOnKFX3cw5lQ6sE3jQ2eX2P5ZkGe32L5rg6EkSH5bJ08WANsD2KignX/BgOQOASkVFcZFaxF5HCImsGoVt0DYD8IWYGc06WgSJo8jiZRO1jnHzCQgICIdZS0gzWJqWlETUozNlw29Tlj8hNE0OSm0bCpehg9N4APKnp0jd7UzJh+xLjW1HSN8Wia0dxEv/aIPt3crKatNT7ATtwznjgwkJBFJiQMjCfswadFC4OD+VQqP/IJh/9U2BF5jCPraQtM45+n7YRvV4imt1iPXAhhMhjM0PvwnblSIQuMxzAehNZhAB/O4ogFNab0DSofeQASB24gnILEpnFQeRtGZH46yYhTgBpEcCFjQJsUB0KA6hyyYTq/IfRPVAFiEMIBY9rgYqgQQxz9lyGJn042TinU6kfywSlg6sBIfVu1UshGaaup8ttXPZqSZH0iX9Yo0Zrf9E6bxPgv1e/TTh+szaw4ega+PenvTOgFfta57KG1NcKrV4Pw76np8Egv61ca146x1f/L2n2reRgPIHmMy7A6fLvMA1vhXvqkyjPaLApNt7BgoGN8tAX9UBDdMtzciuZXsL7c3b24Ri53dS9Gs4by87SCv4dHRwHejdtjfWPqkDHZ2F/97CkAxnZ71uSI5gHCJsuDZr0YkgRRA16AYCuwlXzxrzHJfkSqnkwn9WbXeGpjMdM6wGanbXRc3Ih9/9/+f6M34X+/w5JvfD/tFyYdKyIzQip9qGmqWCC8i9XEekmi+/+2H2FI4MCt/savbVpdmM2FW6cyQMJOQTqNSqPe6+hIb6NWFvU+fNh7er/4dhG1si0xdKqS2pbR0XqvtTWjLR1n/pOW9k9v2Fgrc8LZ+dnd2LvPwjv6xQFqeHKQyzlDD3B50sVZDAiIxwTkehV4z7/Qaf1i3BCwtQouHS294DI5Ogl8kAIAkBp3bly4QIADB0H+3EAIpC/Fbzej8lVa/9UiAukNX8d8Yd5/YDPxQWZBu0Fgv03t7o8f79/3j8Q76OXL/xwdfgWv5/5KTrwKWJDEZICdWpLSS2V0uqyUbKHPF00B/sxV2kbtuZqzKwR0ZEFBFawi0Tmw0Lrz67SrIfXkAkJuvnMD6+oEMfStE/MajjwAgipAF4tHlnnzbNOjOXdShoDz5QUHnc3srvwfmz4/Eg4nK4uLFffJ7/W/A7GeFU0/9a0U5bb8vtiJ8aMTE8WXXMC+e+a/olfB518Q4CZ1Svn12xIm2vcuoSnqUQa56oUaLUTpoxOvq8JnLAz5Z0zVqIM8d3YHO/bCAv8uz/Aeb57PutDFdmMP8jSoZ0z1+TMWUaLve/4mSdVbNAr1czWiLCgXBifbKxLy6iecHGXOPCVW5ugs645im/ezCWfXiWci7Cy1CZeSjCPHJgZ6xovFsbifKvNXN9W8zjnH4wJZiUFeoshgkIy2PgAQ2gfEB0IFrCiAbIjKzg77kWYJIoORIhHQXWcPD9nxuTlvWL62AA7Xf3gYlsy7s5LfGk4ACyuXcy+LRJfzrlzkU3OvlD67jJuLdjBqYvKKUnuEu301fCLM0iJ0MuJqG+NCCgjwCd3W+yD9rV76e8MHvdvP2Wz+NJrTiqg2DBaCKkTPnBxr5eHoPOk+NKe5AwgCPkHAbL51y4TjN/s7dmzjVHCGqrMCRQS/jC1Zlc5VOR0dj93ihR12esmxendeltyXEtlXo5kelEH1FfnlSerJJaSikuBiSjOzmIvn4V04t3ikoKywDERXtT5bXpnWVqHghoPxNnBX5ihz8twrE2I+qNEFU+Cw52MJw10qTOzdBVv8/G/P1w44D7LzX24CQ39zbDNSJKJl0yMFrKjNqOzsqN0fyhKkl7BpRS1SjPl5sEHG6Vcx0QAglsb0D+lfbByzOyqzs8fa261Q2dEzdaZ0KjYYmxBPvhBP0xhJ5HgiVC2FfkXkZDVSwApDuoSxBGBMlgnAd1/PhPu9eGC6r3rWhgALGdoWbY9GE+Lp7GshdrZ29nZoAs0IaYyysLWwt0AzeD+ogs/F9fWOcfJ4g+oBOTYV6sqCG3K4CrC8/+llAGtTBSvSUByXlgfeeXb7t1NCrj5pduGr3viFl/7+HI7/lh9qfv5s9vwWX8AOSABjrzz39zX9gbaKlxS4b8USma2tOmFW4VbTgRtpDeNvJolZhM13B1ibgYxO2CD29QWMA6EEN+gYNKGmIim5utpmxmo0tawsOeWlP4E3iuWO80MpInJ23j+Hjxw++lc3UATKr/yI7w+w6lgSYML/Qy8wUDPq6uf35450x4oBaG11T9PTbY09NVhb96M/cDkkGCWZrXf0je0eO58+Csxtsrir4Km3ux9r1OPi/UdpSbyGJC41mMeTbja5B1JBQUIwxGDPEHa0xKt6WjyMoq29TO1urgXSKAN8J5mj3PHfKPrXC2e5k/yqI1/QC7KcJ1ac78WXOfXjcKBkJ6OHut0aX4DDxCI3glQoDDpAVBKSz1xYJiNY8RJrSTyLjFi+cCaZoC6dQWnzbyAxsTh8wSCGFxFwLQX9zps/HBlo4Lwy4QwQe3oGgOOPzZ7d8n4GAcidZM4Zsl6AhHbEA5brnQc6q2k7QsKrwqrcwyojardToRidpSL3bExUPDcyPguT617WUdUVSg2vjahyi6gOq6oMoUac7uSli5cuBTCHnBzXD4hg5CcIxTExhWLZc8jsyhL8fWWyfAYDlEMF70JFopBkNAjjhr6z2W+vFylmRdobuRcND5cEXT6ZjiVbf9HeOUpRTJRElmAN7KOzs6P17MefZL1610LlZMt3Mht9mwf2vjb2snFb23GZvY0v0sERQWbbysjvGOJeOvrbqPG9GwWEIUf4ePQ23lp4dYrdmDbYKpu/01smIAlItplTNplCEp9UKlu4I2vlDyY2TV2t2KZEcawtx4t9WJw4brF3Ob5uoJJWFRpaTavquywa5+ybf1hWGYPp2tmxk44pr5x7yNmXd2myN6yGVl0duoMGiggdMVwAEPqRmNzGQmNZJsOODUW2RJawQv1RrBIRTzyZCfl3PDJpFUz49ybMam2TMvbkVz0A+P19s/JZJN/n+ZXcSVHuZU3M5+llKfeKva6ILl8W3fdI7ZaFvgZJsVFvoLPCWYCLmf2IcVv96ur2Okdg1Wa1yyJCpiQNPrzFdpddi12b7d17dq22ktgVLhAdPAhrdKnBpvIaGwmG6xC6g6nJjVJZ3vek72NxrFq0qK1awVatOXxJk0i4y6bFziISQmPWAhHCax280fWZqJkZVOpjkNS0jykAi07H3tt7DwuBoK1Bn2J7AJljpZN91fnZ+T5M9MXstRckVBV41c43AH1iMibPs8VMTtDriAvcbgrmjqef4vNPpp14aHBu6UsKhXLqlG9L+fLogt79k/xUBHxgwwVCc+iDDyuyXpls5RkWO0r8GdAq6+kFqocENidX843pkG7mvb1987PCWfmAPOLzBNNloBcUEf7IqAJJXhudiBSJQpLEvL3x0sWL6xdHL0ll+kBJoaxiECkQbHRSDrAHB4PZdL8xVhcapxEAQOKMNoy4dXWcjHMOwcUXgksmEYlc4zdACBUEo7Sa09La1741cviDN4I8tHabBbZxOM7lV4Uqy9zgED5S5fNlN9Tf+G2tXcujkcItDwCdD43vGxp+a/pg7xAiBbTAOsEoLTJpdweJxOGH3hyopFXTImojqgb+a1iov/dx2/tyUAVZys9D5+Vb5OejJQYwChac/P79VPkWYelqqZ+w/NTHPXmyzLilp095nP6T5UL/tDSHF0iWJ8mUVZzs5BUTrnhVPGtVAPhpz5PW2OmyjBII7bLTlcSpwKmJ1Lo6Ho9sAhRuSlMTh0vJ/CQkfIxHCloqlXviVFxOigqrQt0gygEqB5EoOPrhASkied6uq5tBBzZOQfFhnM0lk4kkbipmotigWOSvamyERZkrZfr3uZFaBkYTRj4ifwz3zpTnF5T3s0/JnGVkrEr+sKm3Qn9Nz6aKd7b/IFdMjExYo5AgQFCFFHMPrNHGakgxi0xolWKJKL5tjRejxqMXUB8bfm+U/tbwm6MDBz40fJDqpGos21gJUYqM5zMtM61/PDjFP5XOP8M/vY/d9FOngTnyHwygxFlZ/QM1NcBinzj6xa++xjraX5Mv8+6uRYs6/dx/If9dN58YfdQcjoweuKXtwJD7X9cbdAcPtFWuW3bN0mXXSqBi/Q2x0x/JQZ1/0NxV4SsqGQ3s8LZb7bB2MXzVVltEvDv22x6V2YlTkF0sO2rzPld6oMnes28aKDvdvDMpaSJpKGnMIw7q28gnxiZG340Ze3Q9iwQE8LTyQ9o4y+a6zYk9x/ZEimGD+O1hqS+3mB+0YJ/LxuH7ZdUE6gG2pbbjr/f/G72gPpH3Y/bi9/cT8DFM2f0FGZNeFRYYUta1ALG17oGzzwjE5ysE0mQ/mchiAfwhwUNt9J3bt26Z6y7OLgbVtlYddKLroi00FIy6un0bj3p4Z3hmduaqsYmpyZWbszcZCQCGtl0xbmlpbjaZOviUQPZZrzjLYsMRwLBbIBf29HJhSArsEmACgalnuht2ZCPBDPeMO717IuRzpAPBb4BgMoEcSMOESKupvf0Rz/8Pf4U+kZtWXvhKfzFLPRg78mFvBQ6Da2rZvEjBZqsvvtavKBSlWZx4Fb59e3i/oLZffl9OgEFOUGM4mWspmdTokx6YPZCF+wuAeP3azGnycdLucr5QslMkXJ2wQt6X3e+P+PiBJgzQmtW6A9hrPWp5V/ZMomn+5CdMA5d01GPalVa5NaUg+SByVSN3SiN3VU188ueTuunApcaAJYtFRUxoZWFKYXKLW9ygXu0vTMG9uME8WJhcmDJAM86fJJlYqc8EDiTTAWM4H5Hn1LKrx3TS0V1uBclbUyrezPGv5ZTv8w4oxNDPb7GfFDOYqMnm0YujLZOodINry9sb40YuZb47NvnkfnXt/TlzU0bXpJF10qRQ96JQd7JrrqOrpwsQkIL2uPOJECk+KaffpTgNKA4o6AvCDAf9CWltFeVg9qu0dgL8TkXLy/MONPOAHjOaWXqHgBvo46L20EH3C4Ri+czsRgfC0sNMl+yRw+iV0et6Cj5vMQsxmxAhp1pVX+Xeh65BAGQcEhSDzfUWWtm6CSmmbCJB7y0E8gZfuXFUx38W/2jKLioGWwGkqB0QYDtKhodLSmYo/PeT7QwK3zocrz+tO1WGK8fpTGXuKb1pO17uVealHx/s6Xjuu9XGZw1qKw0vG/PeARIrOP1rjUBpo7zEdHl4aFG+OGKwaFDiQ4p9Cwo6dj9/tLayzx2IBYIF7/qLvqePHz2Nbyj1XvCLivKBDOF6en3xvT0+vruO93W3X/JtbnByYLJ88Cf3bXP8zgO32I/U43W834EyhyvkONklrwXfi/Xecv9X6IJ3aYPZe1xPr7cPa/ZUr8ZSX5+xDg4+YlQESTWWX9rX44NnMBISfj93cUBQNZw4BMJ7xXQpXdwbHjR97UB0QUGMYArMqMEUhGigth/vZhcP0g4JWAQwkrUARKw6P3awC/8jMNB9+FkbL5XHa2v3iH1tbTMzba30FYzddwzcBEBVIKD3ymIAgk6X9dJLdrukmfOaYy78aRUz+sy8NfG0s4+YXlBA/2ZtO2Nrc8PGesbaGiTsFuAyZ+GzWTi5fFZXeECoO3uydJt0j1S8DRQMXWicXfdkIw1HYJwbIg11OIDGd77U8OpaBQQ4ROTXfvyYis3Rsn8tImR6x/HZYLQ0Me6aWlytL+6YL1qhGDLZzS/HuCbc/FpzGXZsho/wWZ2I8Qas8y05jSmtRiJiWQSwsdGY3+gVfKw4z5Odxg2syCj1i524FwOQOTH3JmIveQadFwiw3Nl7UGiWXPU7bt59Hqslk/+Uq06UJ1Hs+n/O+9yPk/uu7P+wxSJCBgRojP9dPQlHpeZ3PpS9yow87rjLctEhRAoo8sMdqaE0JYXDqZdykrjJqgJR0noGvAD1l3y66/z9pLJ8mdTPv64bVqubW25dYU3AxmflRGSFF5laRP7cqLiMb9ttioTDdTf//Kl1RkrQ5CGffXib/fhhvDnp6RlTU98z1LSS1+RznjbnPVdJ6eLDz7VWZrvhKyhsWlmvMEOY2dUlDH8FE7gIBZnCro7MbEFGNySAzSYQnt3d/uwZgcBmAyFZ3fHJ6a6THe/Hu5NlnIg91Sp8yicGzs3+DyLm3Cw5dr1WJU7BieFflEvKJ9eOVGfWZJkd0q+sVUiDkWl2ngsdHUTi8cfgH14yGICV7tSY3xgJ3rC4APMLs8GzLOBKCcS0zdxYfak2TBoBIvdPZGcSDiAFgkTkha7K/PyRoz781+QvZ/x1NyvywG/HjuvL9AEUkab56BDF35EU+VG3zsauxoSp+Muzd6TmS92ZzYAARWUOGsTCkpqaz5/5vOpqUEwRZFWBEHhyMjxkxCFEOgOsDO+KUjHiIxwlIIcQ5U12ytZn6w8tfJECiiDkGF2PT5jfQoiLr6g4LSo+jrvMM+JB/K9LDDAvmAODfCAAoI3aYzcxclgaVR8lujQYIRSHOjxSQjmqDQAGYwSAkaRNt0pRhA2TFnPxqb44rjfvnSJECsgpliaiZXLzvFfV8Y973o4VKo0aIspp7chj2PCLo4v5kWcDAqvrA4LLNl14pT+92SEvujf/Nd1v4v4YzGjhtNsut6YlJ85rDT9asVMU2Dq140PEhcdMWx+7mjM1DYswi3Ilkz01jwSaJ9yhoSgBwuIhSQKHnQKrSuM0prYmJuRljx2+M4YiAwKOm1bHSUxOrIP3M8/lSJ2lIKwaJcp58sLHPOgX/IB2o/vJk5//j41RqV1t9rSQ7Hw/0rK1PS+PHbdjB1pVexv4+3X84sQ0Jqg7MysjqyuR5qSt3d+vreNEY3dnZ2QIgZhX6Zv33tsowjTElEZHNJsd6LxjbcbcqS5fd3v3wEX3yxdPr0azziYls59+2JEHriFm5mFmoWY0M2YTi++neNa1scHFWSueZW/LNtt/k1FQQK/T6XAEwUSvWYCE3pHz0ufkc3J++rxc0FwcVBREKiEXN5V5Z/nkxlPkI+JSsfhkJtcTARBp9enP+mWBL6EKNJJLFDOVrUHNx2us4bDJ+JyTnz8fkcdR8LneOXOWmT8xIOMQeu4+mBseH3/X4Xa2pMuh1zEe945La7HYZt7eWmO+y4JHAwim5s+PWgyOU5lxhamg/UYHuhY0wa/HTmZXiLzA6TL59UsTRDjNhwqf6LQ51XHWzVriPX29yhswyFDbl786N0V/bud+t/2H/EdClafcgnPMz2NBvuBJ/BBp6rq0xbWpn1YVVl2pn/GIPig1IdM7w3s78e4lsvnTsi0bG9rzWWlCgT4nGFWUpU8t7xEIM7M7n8/9vjArmJ3dr/FvDCBAP8aKxSfF4tjTgIZ8hNFEb2zcRjJGRpoYTUxGA49mcGRTHP94gjee48XOPvL5c7TYBEtHtnone6ckuBbflDSUuZvRaps+MlX6lvWbfmv88KY68/jlvLzxvIlxYxZ4sZY3ljt+RdTxIhvVTR+apjZdAFsQLskLzA0kBKqubtmE/OUSa+uonEcgipJICBsaQPEU0xSL4xksRnn5sWPlFXQWK6609MiaLW0qDhviERptlPBS2TVUemwcM/QtvZjV/dceSdPSmydv4moWD4+ZDHk9ivvzu0m6QDHobYTfxOsIqi5T2bi1dQYwrxdt2VFNL47Ixx7A9/ZaHfBu9Y7gcApY5DIOc8KFXczg0ojuZJY3udZt0LMefdVtx6RbOD7cxyOl16DRPwcaitlp0GLEVY1QxMXE4PLP2doIfbJ8ul0PYrds2vfvQVskGVSiUZZ7+gEP0hfzqLctN0wQn7B9e6zHH+v7pjcWcbErPxPYMQIPQnfLo5ip8OiCgnCAREb0iqO5Q19bP7cOEeh5eZHZPMW+2khJZKQkStI/EFEDzA56EjA1NWUdWV10aWcnXZrVVdZRU0PAPMj1yTaI1/OKi1OHxyjkK29TKVRmEQwTcrZ2+B9UiVFr0T+bGrTTsT8yihnXGlyCTNlC43hlWCb3x6QoKqbE9Fsme2XQOClbSpCtwcy4yCjH/qCdZ1Nb9GPUDqp0+OdsNUwgKLNUCpW3KeTDY9TjvOLi9bINcn1AkUcmhIKgKAV1aAbpkE1SHmpF2jI3UIGJQjRBi6ROVCYrkGFt+wAqSilBLUg1H2O3vYAJf3Rp2xagW6Vq6h/RdkU9wilkOGv8VkkRVqyQBYmCRCIilVgaLF2C7r/sKNTbI9sx33dwdMlaZDWKUhCComxq7UhPaLf4fMtl40+xR2GUaFtIiLS783W7OFYRBKkQFddOJ8BerW/03C5LbMkL1LKCI5dvj8i2VSsTQkHOgodpWNlYazQSAkG2Rj+N9UEDhFArJ5xdVlZ/aPTGDKocNXNj9FB9WRk7PEfLEE45iPDg3SG4a8PnEVheGcHSbp+uB1dM8EAh5vWw0Xe4nogD+iTCUIE1/K1BDAq3evm/qX/5COP6wrWlv2z3awvXGSPl/qYu7MbDv9aSO+yzQfRSaB5iDf4VXgZzjUbYIXbPwuthJect5kUeIv1J+AQsGI9SFRRcIJjBpTBmlcWrXOIwgIb0mXmhWA7a5X4oMV5bjEcZIMzfWhyiPMzMuKwK6+hqeQrrgU/mLmShSRgzkrsZ0f2FhTlpTxB1Epqd+/msWFg1MOf4i27M/GtTLzwOHgwz+9/upLdYK8jRDH/sreU/Soz7aL01uBQWrIByRTq+CYDyZmFH4Wmd6Pt087JVi/adsKenjWwgZS+ewYSwZrOBiAT7JjeuqkPQiTxNLytnARYjmaJuOSVCtFo4xgeCxymv3HeTYEK4F3w8+xihRulLEWxt7JJKys6gRngcfHzPb45v8mAO6fA6+PzYCcJwTg4OceQIzMoSBrsLZ8L68bATJ2EnnhKCTOJw/vZ4GIZAuootWJ7NPFmunSm179LaxnWFIVAiT+18FMDYGFns84CN5wRaUYKWSx0maslhv0ngxLJJmO1APU6IfhgFfuRE/RppSJD4R0iJoS/Roi/wHx2oHRBYx0VgKoXj/5qExcb+CDSh2Vr1e3hn+cAComVwHsowGFaS/ttvMKF70L2f3L/W4J7wOPjP8rsuB4bN4H2wV5+qFexvqaB0YH1ws+y7bn9NoHbfhfNhJbCFP3lU+miROc4nYSTDUdEzQZDJsLfIYcKZMAKmZ3hGXduQArOEMWELq2VmZXC0KB1GgVNg4zU2ljbPULWoZQqMBWPC+xzoYHuhQCOQU7l37qeqU2JZ7+Gl71B0YHJ5Q8/Bs1MvV97//ef3L1++//n3+5WXU2cP9jSUJweiod+XDveWJTqp/pzbW8kJ1KgjovidinNoaFlZd/f5/dOqnQt8rosT+seuBpauh5e+b8S2eKpRSGyHDH7BMkbz+sGRhqZtD6VL9WWZYU7GKqpOYcPxS3u6zp87c3r6zPkuosf579lUpg75D32HiAr1tYYIavwOkY4+myVrynnVcGpKAtvRBKg3C75u3KqGxdWqKvqFs5CZHOSmg51+UqonOv2g3Z6/Ziec0Y4+8VTXPUlYwKwCBcIkd92nJ6K1Z4R2yumfMPrZ4MfK/bmkyGOS3d3rl+JdawzxcTs72qIHoqs7xVkRGNjiIWmIYo1iiPTQIgwTkSXurG5ql9RvATRs/VBpCMdAV8WXnlovqW6uNgvqpfHXyPeRGbjGX1rv3t0pbPOC/s5X7fHv5D/Vj5X78wAxsl+yr3v9kkipRgkvLOkYihqI+sPSDULWrcPQd2xvQpWEbtYQEpJ06rNz9pFlXVLliad/W8eI+kav/f9fCWW2D/Tf/9dG+0Qx1n8/PVFJ0l0+ku38+ZS7Hsouyau2qGp89BC03TkeDcNYiySrxKCoWodfD4bnwo0MTCo0vbeomiF0jrWk/SEhHyv5WvpYS2KoZAHVs2ZwuceWt36ZWjfmDg3rv3/2te0ujvmOZa92S42sYJO+M8MOgZu2VUHdjjPbEha8x/+2A8HuuVjSrrub/sVx2X/22HGzi3/eO/yPQiNbN3jnoaX11WdP/T1TX3XbDN0nWdkhawcUFSW4EzQjLShZSe+2nk6Tzo9KFg4RseFZOdAgGWZYPrB1R+VjrhVvLWw3IWJtkC6OTaQvxlnJD8ZSlTf6JJk82GR6zEJHAXc/V6mg7mesgae1rxTX80RoY+qPoIdArUqWS0+df2XsHeMA1edBvx9M+nztAXn87OnzRkvOWy8bfNgjjsqw5EEVo4mzQ1tHyiBcXpfsFivbgge2YY4wZowC6063Z11p+HDI4AZlDZKeGWmtuDJUrMhcjwsPfVVDJwPLhxJEDED8G3Pb94zg91o9a2Lk7YzFB+ZaBz1v2w4oVj4jz9meer97EnYk8Gu371nHF94t7xgHV6f2HajzT2A/PNycYvXX7J5ULyRw8OoBJ1z/BctHu4Vjf4LNi9jE6ChmxcNMz6RTLtseZ4yZnDP+FAyyL1Qs/nWh0CMZbH/8sINvst94v/BPkJOw2S7BzX0hkAeQ8sXyhwBkelVxqcwxcAsL6RJU73kmZjf3t2iUekbrKfcZ71Wp1zofSWEVdZz5NDK2xGxbe5j1uOR4wiEXo06jcuNMJQcXdTT+KV9X57/LrQyYIb7947vFhdeFdc/b0tShungVP9/sxp6DtVXK1eeKehoyU1w1XEXNxx5PIvAh1ggDSlr+PWe61SUz2N69Z/7cZ6Z9/Hgi/CT0d/iZQEyIsLN9tbpLukMSjFPOxcKewBm2hotKPGSomnpAJD+9c/8DqrmLX+hPgb3CzUfKvbAEKB1ajnwwBb+4NPb0XrabfjNPF86EprGhKZ46VmkV/ZeWXzWaBySz1zW7hbavMQ/XHyWiXuHu3akjQjGe3iZgA5UShWGF2Cvbe8cVS6rbuDOikJjtd989XF17/eZthOaix72bj65PPbi48ejOU+/BwfzUn9bzb38/sTc3zlsfEOBHjOkKchi5QnBovX3wqrxTGb/R03nuDHe4UnF6tQkaGKj6RnXjseImZmq4U0BzejI5IGLZggze/GVMmKY+kx5ta8WwD9O4g/2h/2Kvc0Aa0+7D1Y8vQky3MT3pwxCu8C3itTUpQmNEqkXViUVFqIYho6FmZwqZNgY/Mny2R1kBG1s8L4MryIc4IAu57pa6b4+wTeSVHjqkyhfGmYj0DBRXu+X12v9BS6YLB9Ch6jbvNXEtkh/GmlHbB2b/sWMVDS9wqVoUNZLS+YVrCn0LCf84PS2Zav6YFnQY6xXpF89Kq6xQHcg3++vPV1WW0PVuseOH42wXdfMtyU2ysX9Mnn34ZGygpx2tqfPu95POnwCpGxUOkYEwAE8gnSAGEIinCQlK/gzoYatwa7ON18dBHOQoPMZz0I3kEdaRdzyADRjw/Y5UxyiX8qawIwpsVWVV5bzMu6wQgs9g8HE9pgaIhZ2IG96h4hHiFfx+TkMjz50VFsBGaxNAMUV/X4g+IhPcBxkfwRNQ/koIADQpydL9K0spX1kIbgnxcWgVOLqw0m4qWX0PDF3YYhf1g0ecR8IxhXZ2dvJw9VYYunCHvpussFDoOxShYXvjBhQAaHBwe+dosP3m4iKk1+LDYfyXTt3tR9LTt6V99QrdVWLZHJNIp1NS5YMM97L0GqHdwd+D0/TJz8M1dULKHV7+rkfQxkIOeUQDCMzUvdaFKQuXsuUHzh45yrwcB8jHksU8gEj3i17DhSUwsqgN1XzXkuSaaEs64mCc3o5kC6bS3nj9XdF2qcT8TEC/JghwzYmJyXENCPCIkYNmgP2Sq9HhK441SOwcMEz5cPz4hxTDgc5Ew9iSpaVkGTifTZgqGRoqmSJknweyZJ0/F3MCpzpjAMrDOSN9CZHB06q2xOkz/Rx9ePtPHtbr1a58LBqDzY9j25B5P/LpVrj8UgUvMiGtOshpUMfKnbCqf/EZ9ypYW7pH86LdKYbfnIKqA6ogGCsrBPCgM7PRJfYlTiXuGj+CdZQMuHv5m7QvSd++8Lg3Lx5/7HP9boIKu1izWKfapNgs0inAqdTZb8+ljnOPDNVOb+zcw474W8XOdId/FrQIkgUvUpQdZeTvYl1c+qalicFJiiZb7K32/nbwG599pRvpoayofvaveilbUtQQefgEiUAgU3aHt6dJt5aXvj87rXj6zyfHE8MvbPJsWWiWaawxy4BnyNVjafG0WKqxyiwFLjIWygKAt3HJQnzfdesy5RZDkWHhiIU71+5n9pvrb306SOiKOw50F49FGX+lwvVS3ZbYyzW36bH02APvBXNbStWDf6VGGSsLoXVxqr2/7r7/dlMSHu5/PD5ZXwmCuql1jj5UWztEIBcFUcJRQx096EMv+jHz0NA6EOQh7/3a16W1HA3/PxWVFJNqi2kLO867vjlxvvLXt//pitrIctqruIFoJc3/USpAdMCCCNrpTxVOUNvhtmJKMIRdHkvaaiNHcjFR5nIccp1YOO2rOE53Pi2oLn2z9WrcypvuKM7mL5qxznTvnVeis6z589S/+63U7Vaw9EgKRRk2vj3TPI7BWhk5osLkxtLw3a8Ou7pBNcvSdWeWFTjOF6SmnaXhgfW8+nwd8LVNDRu7zdZYZsGidSIlmpEUN2bLlCV/DiK6+8pTrJlo6xBNJNeVLM/piaevMs1mpbUk2nHUxGwm6pnyUjla4EV3vbxgffdDTVlTGpuo7y1YKPawwnyvAQAAAA==") format("woff2");font-weight:400;font-style:normal;font-display:block}

/* ---------- Палітри Catppuccin ---------- */
:root,[data-theme="mocha"]{
  color-scheme:dark;
  --rosewater:#f5e0dc;--flamingo:#f2cdcd;--pink:#f5c2e7;--mauve:#cba6f7;--red:#f38ba8;--maroon:#eba0ac;--peach:#fab387;
  --yellow:#f9e2af;--green:#a6e3a1;--teal:#94e2d5;--sky:#89dceb;--sapphire:#74c7ec;--blue:#89b4fa;--lavender:#b4befe;
  --text:#cdd6f4;--subtext1:#bac2de;--subtext0:#a6adc8;--overlay0:#6c7086;
  --surface2:#585b70;--surface1:#45475a;--surface0:#313244;--base:#1e1e2e;--mantle:#181825;--crust:#11111b;
}
[data-theme="macchiato"]{
  color-scheme:dark;
  --rosewater:#f4dbd6;--flamingo:#f0c6c6;--pink:#f5bde6;--mauve:#c6a0f6;--red:#ed8796;--maroon:#ee99a0;--peach:#f5a97f;
  --yellow:#eed49f;--green:#a6da95;--teal:#8bd5ca;--sky:#91d7e3;--sapphire:#7dc4e4;--blue:#8aadf4;--lavender:#b7bdf8;
  --text:#cad3f5;--subtext1:#b8c0e0;--subtext0:#a5adcb;--overlay0:#6e738d;
  --surface2:#5b6078;--surface1:#494d64;--surface0:#363a4f;--base:#24273a;--mantle:#1e2030;--crust:#181926;
}
[data-theme="frappe"]{
  color-scheme:dark;
  --rosewater:#f2d5cf;--flamingo:#eebebe;--pink:#f4b8e4;--mauve:#ca9ee6;--red:#e78284;--maroon:#ea999c;--peach:#ef9f76;
  --yellow:#e5c890;--green:#a6d189;--teal:#81c8be;--sky:#99d1db;--sapphire:#85c1dc;--blue:#8caaee;--lavender:#babbf1;
  --text:#c6d0f5;--subtext1:#b5bfe2;--subtext0:#a5adce;--overlay0:#737994;
  --surface2:#626880;--surface1:#51576d;--surface0:#414559;--base:#303446;--mantle:#292c3c;--crust:#232634;
}
[data-theme="latte"]{
  color-scheme:light;
  --rosewater:#dc8a78;--flamingo:#dd7878;--pink:#ea76cb;--mauve:#8839ef;--red:#d20f39;--maroon:#e64553;--peach:#fe640b;
  --yellow:#df8e1d;--green:#40a02b;--teal:#179299;--sky:#04a5e5;--sapphire:#209fb5;--blue:#1e66f5;--lavender:#7287fd;
  --text:#4c4f69;--subtext1:#5c5f77;--subtext0:#6c6f85;--overlay0:#9ca0b0;
  --surface2:#acb0be;--surface1:#bcc0cc;--surface0:#ccd0da;--base:#eff1f5;--mantle:#e6e9ef;--crust:#dce0e8;
}

/* ---------- Ролі кольорів (DESIGN.md → colors) ---------- */
:root{
  --page:var(--crust);           /* тло сторінки */
  --lane:var(--mantle);          /* доріжка під стрічкою: трохи світліша за тло, темніша за дописи */
  --card:var(--base);            /* дописи */
  --inset:var(--mantle);         /* рамки під картинками */
  --line:var(--surface0);
  --line-2:var(--surface1);
  --muted:var(--subtext0);
  --sun:color-mix(in oklab,var(--yellow) 50%,#ffd000); /* жовтий: панель, «тут ви», головні кнопки */
  --ink:var(--crust);            /* майже чорний текст на жовтому */
  --yellow-text:var(--yellow);   /* жовтий текст на темному тлі */
  --tone-mix:100%;               /* наскільки текст теґів забарвлений кольором мережі */
  --tone-base:var(--text);       /* з чим змішується колір мережі, коли --tone-mix менше 100% */
  --rail:15rem;                  /* ширина жовтої панелі */
  --col:46rem;                   /* ширина стрічки */
  --lane-pad:1.25rem;            /* на скільки доріжка ширша за стрічку з кожного боку */
  --side:16.5rem;                /* права колонка з теґами */
  --gap:2.5rem;
  /* стрічка стоїть посеред екрана, а коли бракує місця, відсувається від панелі */
  --left:max(calc(var(--rail) + var(--gap)),calc((100vw - var(--col)) / 2));
}
[data-theme="latte"]{
  --sun:color-mix(in oklab,var(--yellow) 45%,#ffc800);
  --ink:#11111b;
  --muted:var(--subtext1);       /* subtext0 на тлі Latte дає лише 3.7:1 */
  --yellow-text:color-mix(in oklab,var(--yellow) 58%,#000);
  --tone-mix:62%;
  --tone-base:#000;              /* у світлій темі колір мережі темнішає до чорного: так теґи тримають 4.5:1 */
}
[data-theme="frappe"]{--tone-mix:75%}  /* синій і лавандовий Frappé на тлі дописів трохи темні: світлішаємо до тексту */

/* ---------- Основа ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--page);scroll-behavior:smooth}
body{margin:0;background:var(--page);color:var(--text);font:400 1.0625rem/1.6 "Ubuntu Site",Ubuntu,"Segoe UI",system-ui,-apple-system,sans-serif;overflow-wrap:break-word}
img{max-width:100%;height:auto}
a{color:var(--yellow-text);text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:2px solid var(--yellow);outline-offset:2px;border-radius:4px}
h1,h2,h3{line-height:1.15;text-wrap:balance}
p{text-wrap:pretty}
code{font:inherit;font-family:"Ubuntu Mono Site",ui-monospace,monospace;font-size:1.04em;padding:.05em .35em;border-radius:5px;background:var(--surface0)}
.ico{display:inline-block;width:1em;font-family:"Symbols";font-size:1.2em;font-style:normal;font-weight:400;line-height:1;text-align:center;flex:none}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.muted{color:var(--muted);font-weight:400}
.skip{position:absolute;left:1rem;top:-4rem;z-index:200;padding:.6rem 1rem;border-radius:10px;background:var(--ink);color:var(--sun);font-weight:700}
.skip:focus{top:1rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* Перехід між сторінками й темами без «блимання» (CSS View Transitions, без JavaScript; Chrome, Edge, Safari 18.2+;
   інші браузери просто відкривають сторінку, як раніше). Браузер тримає стару сторінку, доки нова не готова, і
   плавно змінює одну на одну: при зміні теми лише перетікають кольори. Віконця з іншого сервера (вхід у панелі,
   «У що бавлюся на етері») на новій сторінці вантажаться заново, тож їхня стара картинка лишається, доки нове
   віконце встигне з'явитися, і нове проступає поверх: аватарка й «Вийти» не зникають, а лише міняють колір.
   Клікати під час переходу можна (pointer-events), а з «менше руху» в системі переходу немає взагалі. */
@view-transition{navigation:auto}
::view-transition{pointer-events:none}
.rail-login{view-transition-name:rail-login}
.now-frame{view-transition-name:now-frame}
::view-transition-group(rail-login),::view-transition-group(now-frame){animation-duration:.7s}
::view-transition-old(rail-login),::view-transition-old(now-frame){animation:none;mix-blend-mode:normal}
::view-transition-new(rail-login),::view-transition-new(now-frame){animation:vt-frame-in .25s ease .45s both;mix-blend-mode:normal}
@keyframes vt-frame-in{from{opacity:0}}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}

/* ---------- Жовта панель біля лівого краю, як у WAFRN ---------- */
.rail{position:fixed;inset:0 auto 0 0;z-index:20;width:var(--rail);display:flex;flex-direction:column;gap:1.5rem;
  padding:1.4rem 1rem 1.1rem;background:var(--sun);color:var(--ink);overflow-y:auto;scrollbar-width:thin}
.rail a{color:var(--ink);text-decoration:none}
.rail :focus-visible{outline-color:var(--ink)}
.rail-id{display:flex;align-items:center;gap:.65rem;padding:0 .25rem;min-width:0}
.rail-id img{width:44px;height:44px;border-radius:12px;flex:none;box-shadow:0 0 0 2px var(--ink)}
.rail-id span{display:grid;line-height:1.2;min-width:0}
.rail-id b{font-size:1.08rem;white-space:nowrap}
.rail-id small{font-size:.88rem;color:color-mix(in oklab,var(--ink) 72%,var(--sun))}
.rail-nav{display:grid;gap:2px}
.rail-nav a{display:flex;align-items:center;gap:.75rem;padding:.5rem .65rem;border-radius:8px;font-size:1.02rem}
.rail-nav a:hover{background:color-mix(in oklab,var(--ink) 10%,transparent)}
.rail-nav a[aria-current]{background:var(--ink);color:var(--sun);font-weight:700}
.rail-nav .ico{font-size:1.3rem}
/* «Увійти»: як пункт меню; відкриває посеред екрана вікно входу (#login) у кольорах теми */
/* Місце «Увійти» в панелі: віконце сервера коментарів (build.py → login_link). Висота на стан «увійшли»:
   аватарка з нікнеймом і під ними «Вийти»; коли не увійшли, там лише «Увійти», а решта прозора.
   Дві тонкі чорні лінії зверху й знизу малює сторінка, а не віконце: місце входу видно одразу, ще до відповіді сервера */
.rail-login{position:relative;flex:none;width:100%;height:7rem;margin:0}
.rail-login iframe{display:block;width:100%;height:100%;border:0;background:transparent}
.rail-login::before,.rail-login::after{content:"";position:absolute;left:.4rem;right:.4rem;height:2px;border-radius:2px;background:var(--ink);
  pointer-events:none}
.rail-login::before{top:1px}
.rail-login::after{bottom:1px}
.login-box{position:relative;width:min(24rem,100%);padding:1.2rem;background:var(--card);border:1px solid var(--line-2);border-radius:16px;
  box-shadow:0 20px 50px rgb(0 0 0 / .45)}
.login-frame{display:block;width:100%;height:calc(var(--wide,2) * 5.35rem + 3.7rem);border:0;background:transparent}  /* схема кольорів від сторінки: прозоре;
  висота під кількість рядів кнопок (--wide, --narrow ставить build.py) */
@media (max-width:26rem){.login-frame{height:calc(var(--narrow,2) * 5.35rem + 3.7rem)}}  /* вужче: по 3 квадрати в ряд */
.rail-theme{margin-top:auto}
.rail-theme h2{margin:0 0 .1rem .35rem;font-size:.9rem}
/* бабли з авторством і натхненням: світлі «хмаринки» з хвостиком над вибором тем */
.credits{display:grid;gap:.75rem;margin:0 0 .9rem}
.credit{position:relative;display:flex;align-items:flex-start;gap:.55rem;margin:0;padding:.6rem .75rem;border-radius:14px;
  background:color-mix(in oklab,#fff 55%,var(--sun));color:var(--ink);font-size:.85rem;line-height:1.35}
.credit::after{content:"";position:absolute;left:1.05rem;bottom:-5px;width:11px;height:11px;border-radius:0 0 3px 0;
  background:inherit;transform:rotate(45deg)}  /* хвостик бабла */
.credit-ico{flex:none;font-family:"Symbols";font-size:1.2rem;line-height:1.1}
.credit a{color:inherit;font-weight:700;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:2px}
.rail .themes{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.rail .theme{color:var(--ink)}
.rail .theme:hover{background:color-mix(in oklab,var(--ink) 10%,transparent)}
.rail .theme[aria-current]{background:var(--ink);color:var(--sun);font-weight:700}
.rail .sw{box-shadow:0 0 0 1.5px var(--ink)}
.rail-foot{margin:0;padding:0 .35rem;font-size:.82rem;color:color-mix(in oklab,var(--ink) 72%,var(--sun))}
.theme-menu{display:none}

/* Вибір теми */
.themes{display:grid;gap:2px}
.theme{display:flex;align-items:center;gap:.55rem;padding:.35rem .55rem;border-radius:8px;text-decoration:none;font-size:.92rem}
.sw{width:1.05rem;height:1.05rem;border-radius:50%;flex:none;background:linear-gradient(135deg,var(--sw-bg) 50%,var(--sw-y) 50%)}

/* ---------- Стрічка посеред екрана, як у Twitter, Mastodon, Sharkey ---------- */
.main{position:relative;min-height:100vh;padding-bottom:45vh}
.col{position:relative;z-index:1;margin-left:var(--left);width:min(var(--col),calc(100vw - var(--left) - var(--gap)))}
/* Доріжка під стрічкою на всю висоту сторінки: своє тло й лінії з боків показують, де стрічка, а де просто фон */
.main::before{content:"";position:absolute;top:0;bottom:0;z-index:0;left:calc(var(--left) - var(--lane-pad));
  width:calc(min(var(--col),calc(100vw - var(--left) - var(--gap))) + 2 * var(--lane-pad));
  background:var(--lane);border-inline:1px solid var(--line)}
.tabbar{display:none}

/* ---------- Решта сторінок (Арти, Пожертви й подяки, Подаровані ігри, Рекомендації): вільні, на всю ширину ----------
   Мікроблог (доріжка посередині, колонка теґів) лише на Візитівці. Тут вміст займає все місце праворуч від панелі,
   банер іде від панелі до правого краю, а сітки самі додають колонки, скільки влізе. На телефоні все як було. */
@media (min-width:56.01rem){
  .main.wide::before{display:none}
  .main.wide .col{width:auto;margin-left:calc(var(--rail) + var(--gap));margin-right:var(--gap)}
  .main.wide .banner{margin-inline:calc(-1 * var(--gap))}
  .main.wide .page-head .banner{height:11rem}
  .main.wide .page-head-body{padding:0}
  .main.wide .profile-av{border-color:var(--page);background:var(--page)}
  /* Арти: підписи в дві колонки, теки й «Усі арти разом» ширшою сіткою */
  /* підписи ліворуч один під одним, жовте прохання праворуч на всю їхню висоту */
  .main.wide .art-notes{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.6rem 2.5rem;max-width:72rem;align-items:start}
  .main.wide .art-notes p{grid-column:1;margin:0}
  .main.wide .art-notes .ask{grid-column:2;grid-row:1 / span 6;margin:0}
  .main.wide .folders{grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:2rem 1.4rem}
  .main.wide .art-grid{grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:1rem .8rem}
  .main.wide .fv-panel{width:min(72rem,100%)}
  /* Пожертви: усі пожертви внизу в кілька колонок */
  .donations .rows{columns:2 24rem;column-gap:3rem;border-top:0}
  .donations .row{break-inside:avoid}
  /* Ігри: кілька колонок рядків «мініатюра + хто подарував» */
  .main.wide .game-grid{grid-template-columns:repeat(auto-fill,minmax(24rem,1fr));column-gap:2.5rem;border-top:0}
  /* Рекомендації: картки більші, у ряд скільки влізе */
  .main.wide .pcards{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));justify-items:start}
}
/* Пожертви: основне (збір, закриті збори, подяки) ліворуч, «Найщедріші» праворуч, коли є місце на дві колонки */
@media (min-width:72rem){
  .thanks-cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:0 3.5rem;align-items:start}
}

/* Права колонка з теґами: на темному тлі кольори мереж добре видно */
.aside{position:absolute;top:0;bottom:0;left:calc(var(--left) + var(--col) + var(--gap));width:var(--side)}
.aside-in{position:sticky;top:0;padding:1.5rem 0}
.aside h2{margin:0;font-size:1.15rem}
.aside-note{margin:.2rem 0 .8rem;color:var(--muted);font-size:.88rem}
.tag-cloud{display:flex;flex-wrap:wrap;gap:.4rem;margin:0}
.tag-cloud .tag{font-size:.95rem;padding:.15rem .6rem}

/* Шапка: банер із сирниками на всю ширину, під ним ім'я або назва сторінки */
/* Фон із сирниками викладається плиткою вздовж (tools/make_tiles.py), у масштабі, де сирник однаковий на всіх банерах
   (--tile-h ставить build.py). Банер ніколи не розтягує картинку, тож сирники не пікселяться. */
.banner{height:12rem;margin-inline:calc(-1 * var(--lane-pad));background:var(--sun) center / auto var(--tile-h,100%) repeat-x} /* на всю ширину доріжки */
.page-head .banner{height:8rem}
.profile-body,.page-head-body{padding:0 .25rem}
.profile-av{display:block;position:relative;width:112px;height:112px;margin-top:-58px;border-radius:26px;border:5px solid var(--lane);background:var(--lane)}
.profile-name,.page-head h1{margin:.55rem 0 0;font-size:clamp(2rem,1.4rem + 2vw,2.75rem);font-weight:700;letter-spacing:-.02em}
.page-head h1{margin-top:1.4rem}
.handle{margin:.15rem 0 0;color:var(--muted)}
.bio{margin:1.1rem 0 1.4rem;max-width:42rem;font-size:1.0625rem;line-height:1.7}
.fields{margin:0;max-width:42rem}
.fields div{display:grid;grid-template-columns:9rem minmax(0,1fr);gap:1rem;padding:.55rem 0;border-top:1px solid var(--line)}
.fields dt{display:flex;align-items:center;gap:.5rem;color:var(--muted)}
.fields dd{margin:0}
/* Текст, який зручно скопіювати (ID у Fluxer): один клік виділяє все; значок копіювання не потрапляє у скопійоване */
.copy{user-select:all;-webkit-user-select:all;cursor:text;white-space:nowrap}
.copy::after{content:"\F018F";margin-left:.35em;font-family:"Symbols";color:var(--muted);user-select:none;-webkit-user-select:none}
.profile-tags{display:none;flex-wrap:wrap;gap:.35rem;margin-top:1.1rem}
.page-head-body p{margin:.5rem 0 0;max-width:40rem;color:var(--subtext1)}
.page-head-body .count{color:var(--muted);font-size:.92rem}
.page-head-body code{background:var(--surface0)}
.lead-on{margin-top:2rem}

/* ---------- Стрічка дописів ---------- */
.feed{display:grid;gap:1.25rem;margin-top:2.75rem}
.post{position:relative;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:1rem 1.15rem .4rem;overflow:clip;transition:border-color .25s,box-shadow .25s}
.pinned{display:flex;align-items:center;gap:.35rem;margin:0 0 .5rem;color:var(--muted);font-size:.85rem}
.post-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.7rem}
.post-av{width:44px;height:44px;border-radius:11px;flex:none}
.post-by{margin:0;display:grid;line-height:1.3;min-width:0;flex:1}
.post-by span{color:var(--muted);font-size:.88rem}
.permalink{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:8px;color:var(--muted);text-decoration:none}
.permalink:hover{background:var(--surface0);color:var(--text)}
.post-body p{margin:0 0 .8rem}
.post-body a{color:color-mix(in oklab,var(--tone) var(--tone-mix),var(--tone-base));font-weight:700}
.ps{color:var(--subtext1)}
.emoji{height:1.6em;width:auto;vertical-align:-.42em;object-fit:contain}
/* емоджі вищі за рядок тексту: абзаци з ними трохи розсунуті, щоб емоджі на сусідніх рядках не торкалися */
:is(p,dd,li,.bio):has(.emoji){line-height:1.95}

/* Картинки: кілька стоять в однакових квадратах і видно їх повністю; одна має свої пропорції */
.media{margin:0 0 .9rem}
.media-item{display:block;border-radius:8px;overflow:hidden;background:var(--inset);cursor:zoom-in}
.media.one .media-item{display:flex;justify-content:center}
.media.one img{display:block;width:auto;max-height:min(30rem,62vh)}
.media.grid{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:.45rem}
.media.grid .media-item{aspect-ratio:1}
.media.grid img{display:block;width:100%;height:100%;object-fit:contain}

/* Посилання рядками: значок мережі її кольором, назва, що це, куди веде */
.links{list-style:none;margin:0 0 .9rem;padding:0;border-top:1px solid var(--line)}
.link{display:grid;grid-template-columns:2.1rem minmax(0,1fr) auto;column-gap:.6rem;align-items:baseline;padding:.65rem .35rem;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none;border-radius:4px;transition:background .15s}
.link:hover{background:color-mix(in oklab,var(--tone) 9%,transparent)}
.link-glyph{grid-row:1 / 3;align-self:center;font-family:"Symbols";font-size:1.55rem;line-height:1;text-align:center;color:color-mix(in oklab,var(--tone) var(--tone-mix),var(--tone-base))}
/* Банка monobank ("tone": "mono"): одноколірна, кольором тексту теми, як і решта значків шрифту */
.link.mono{--tone:var(--text)}
.link-title{font-weight:700;font-size:1.04rem}
.link:hover .link-title{text-decoration:underline;text-underline-offset:.2em}
.link-kind{font-size:.82rem;color:var(--muted);text-align:right}
.link-desc{grid-column:2 / 4;color:var(--subtext1);font-size:.93rem;line-height:1.45}

/* Теґи в дописах: колір мережі */
.tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:0 0 .7rem}
.tag{padding:.05rem .6rem;border-radius:999px;font-size:.875rem;text-decoration:none;
  color:color-mix(in oklab,var(--tone,var(--yellow)) var(--tone-mix),var(--tone-base));
  background:color-mix(in oklab,var(--tone,var(--yellow)) 14%,transparent)}
a.tag:hover{background:color-mix(in oklab,var(--tone,var(--yellow)) 26%,transparent)}
.tag.plain{color:var(--muted);background:none;padding-inline:.2rem}

/* Коментарі як у Tumblr і WAFRN: кнопка «Коментарі N» відкриває допис (чи гру) поверх сторінки повністю,
   під ним усі коментарі й поле для свого (вікно сервера коментарів). Без JS: усе на :target (#c-ID) */
.post-foot{margin:0 -1.15rem;padding:.55rem 1.15rem .6rem;border-top:1px solid var(--line)}
.notes-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .75rem .3rem .55rem;border:1px solid var(--line-2);border-radius:999px;
  color:var(--text);text-decoration:none;font-size:.92rem}
.notes-btn:hover{background:var(--surface0)}
.notes-count{height:1.25rem;width:auto}
.notes-panel,.shade,.modal-bar{display:none}
.modal-return{display:block;height:0;scroll-margin-top:5.5rem}
.col:has(.post-wrap:target){z-index:150}  /* вікно над жовтою панеллю й нижнім меню */
.post-wrap:target{position:fixed;inset:0;z-index:150;overflow:auto;overscroll-behavior:contain;
  padding:max(.75rem,env(safe-area-inset-top)) 1rem max(2rem,env(safe-area-inset-bottom));background:color-mix(in oklab,var(--crust) 80%,transparent)}
.post-wrap:target>.shade{display:block;position:fixed;inset:0}
.post-wrap:target>.modal-bar{position:sticky;top:0;z-index:2;display:flex;justify-content:flex-end;max-width:var(--col);margin:0 auto .5rem}
.post-wrap:target>.post,.post-wrap:target>.arch{position:relative;z-index:1;max-width:var(--col);margin:0 auto}
.post-wrap:target .post-foot,.post-wrap:target .arch-foot{display:none}
.post-wrap:target .notes-panel{display:block;margin-top:.9rem}
.notes-h{margin:0 0 .5rem;font-size:1.05rem}
.notes-close{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .9rem .4rem .65rem;border-radius:999px;background:var(--sun);color:var(--ink);
  font-weight:700;text-decoration:none;box-shadow:0 6px 18px rgb(0 0 0 / .35)}
.notes-close:hover{filter:brightness(1.06)}
.notes-frame{display:block;width:100%;height:max(26rem,62vh);min-height:14rem;border:1px solid var(--line);border-radius:10px;background:var(--card);resize:vertical;overflow:auto}

/* Перехід за теґом: допис стає посеред екрана й підсвічується кольором мережі.
   Невидимий якір стоїть посередині допису, а scroll-margin-top зсуває його на пів екрана.
   Не чіпати: у .post має бути overflow:clip (hidden робить допис окремою прокруткою), а в html не має бути scroll-padding. */
.post-anchor{position:absolute;top:50%;left:0;width:1px;height:1px;pointer-events:none;scroll-margin-top:50vh;scroll-margin-top:50dvh}
.post:has(.post-anchor:target){border-color:var(--tone);
  box-shadow:0 0 0 1px var(--tone),0 -20px 44px -26px var(--tone),0 20px 44px -26px var(--tone),inset 0 0 70px -40px var(--tone)}

/* ---------- Розділи сторінок (пожертви, емоджі): без рамок, лише відступи й лінії ---------- */
.block{margin-top:2.5rem}
.block:first-child{margin-top:2rem}
.block h2{display:flex;align-items:center;gap:.45rem;margin:0 0 .8rem;font-size:1.35rem}
.block h2 .ico{color:var(--yellow-text)}
.empty{margin:2rem 0 0;color:var(--subtext1)}
.block .empty{margin-top:0}
.sum{margin:0 0 .5rem;color:var(--subtext1)}
.sum b{color:var(--yellow-text);font-size:1.15rem;font-variant-numeric:tabular-nums}
.rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.row{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .6rem;padding:.65rem .1rem;border-bottom:1px solid var(--line)}
.row .person,.row .item{font-weight:700;flex:1 1 auto}
.row .ico{color:var(--yellow-text);align-self:center}
.amount{font-weight:700;font-variant-numeric:tabular-nums;color:var(--yellow-text)}
.row time,.row q,.row .note{flex-basis:100%}
.row time{color:var(--muted);font-size:.85rem}
.row q{min-width:0;overflow-wrap:anywhere;color:var(--subtext1);quotes:"«" "»"} /* довге «ХАХАХА…» без пробілів переноситься, а не розпирає сторінку */
.row .note{color:var(--subtext1);font-size:.95rem}
.person{color:var(--text)}
a.person{color:var(--yellow-text)}
.top{counter-reset:top}
.top .row{counter-increment:top}
.top .row::before{content:counter(top);display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;margin-right:.15rem;border-radius:999px;
  background:var(--surface0);color:var(--subtext1);font-size:.8rem;font-weight:700;align-self:center}
.top .row:first-child::before{background:var(--sun);color:var(--ink)}
.army{margin:1rem 0 0;padding:.75rem .9rem;border-radius:8px;background:color-mix(in oklab,var(--blue) 16%,transparent);font-weight:700}
.army-link{display:inline-block;margin-left:.35rem;padding:.1rem .7rem;border-radius:999px;background:var(--sun);color:var(--ink);text-decoration:none;font-size:.92rem;white-space:nowrap}
.army-link:hover{filter:brightness(1.06)}
.specs-title{margin:.2rem 0 .4rem;font-weight:700}
.specs{margin:0 0 .9rem}
.specs div{display:grid;grid-template-columns:minmax(8rem,13rem) minmax(0,1fr);gap:.9rem;padding:.45rem .1rem;border-top:1px solid var(--line)}
.specs div:last-child{border-bottom:1px solid var(--line)}
.specs dt{color:var(--muted)}
.specs dd{margin:0}
.block .specs{margin:0}
.heroes{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem .5rem}
.heroes li{padding:.15rem .6rem;border-radius:999px;background:var(--card);border:1px solid var(--line)}
.heroes .person{font-weight:400}
.done{flex-basis:100%;display:inline-flex;align-items:center;gap:.3rem;color:var(--green);font-weight:700;font-size:.92rem}
.more>summary{margin-top:.6rem;color:var(--yellow-text);cursor:pointer;font-size:.92rem}

/* Пожертви: актуальний збір головний на сторінці. Жовта рамка й кнопки — та сама «сигнальна» роль жовтого,
   що в панелі: «ось що зараз важливо». Назва збору велика, кнопки великі, щоб було видно, як підтримати. */
.goal-hero{display:grid;gap:1.1rem;margin-top:2rem;padding:1.3rem 1.5rem 1.4rem;
  border:3px solid var(--sun);border-radius:16px;background:color-mix(in oklab,var(--sun) 10%,var(--card))}
.gh-label{display:flex;align-items:center;gap:.4rem;margin:0;font-size:.95rem;color:var(--yellow-text)}
.gh-title{margin:.3rem 0 0;font-size:clamp(1.7rem,1.2rem + 1.5vw,2.4rem);font-weight:700;line-height:1.15}
.gh-sum{margin:.45rem 0 0;color:var(--subtext1)}
.gh-sum b{color:var(--yellow-text);font-size:1.15rem;font-variant-numeric:tabular-nums}
.gh-actions{display:flex;flex-wrap:wrap;gap:.6rem}
.gh-btn{display:inline-flex;align-items:center;gap:.5rem;min-height:2.75rem;padding:.5rem 1.1rem .5rem .9rem;border:2px solid var(--line-2);border-radius:999px;
  background:var(--card);color:var(--text);font-weight:700;text-decoration:none}
.gh-btn:hover{border-color:var(--sun)}
.gh-btn.primary{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.gh-btn.primary:hover{filter:brightness(1.06)}
.gh-btn.mono{background:#000;border-color:#000;color:#fff}
.gh-ico{font-family:"Symbols";font-size:1.25rem;line-height:1}
.goal-hero .army{margin:0}
@media (max-width:56rem){
  .goal-hero{padding:1.1rem}
  .gh-btn{flex:1 1 100%;justify-content:center}
}

/* ---------- Етери: полиці з обкладинками ігор зі списків на GRAVK ---------- */
.stream-links{display:flex;flex-wrap:wrap;gap:.5rem;margin:.9rem 0 0}
.rss-note{margin:.6rem 0 0;color:var(--muted);font-size:.88rem;max-width:44rem}
.shelf-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.4rem 1rem;margin-bottom:.9rem}
.shelf-head h2{margin:0}
.shelf-more{display:inline-flex;align-items:center;gap:.35rem;color:var(--yellow-text);font-size:.92rem}
.shelf-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(8.5rem,1fr));gap:1.1rem .9rem}
.shelf-game{display:grid;align-content:start;gap:.4rem;color:var(--text);text-decoration:none}
.shelf-cover{position:relative;display:block;aspect-ratio:3 / 4;border-radius:8px;overflow:hidden;background:var(--inset)}
.shelf-cover img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .2s}
.shelf-game:hover .shelf-cover img{transform:scale(1.04)}
.shelf-game:hover .shelf-name{text-decoration:underline}
.shelf-name{font-size:.88rem;font-weight:700;line-height:1.3;overflow-wrap:anywhere}
.shelf-ua{position:absolute;top:.4rem;left:.4rem;width:1.35rem;height:.9rem;border-radius:3px;background:linear-gradient(#0057b7 50%,#ffd700 50%);
  box-shadow:0 0 0 1.5px rgb(0 0 0 / .4)}  /* прапорець: у гри є українська */
.shelf-nocover{display:block;width:100%;height:100%}
.shelf-now{position:absolute;right:.35rem;bottom:.35rem;left:.35rem;padding:.1rem .4rem;border-radius:6px;background:var(--sun);color:var(--ink);
  font-size:.72rem;font-weight:700;text-align:center}  /* гра, яку зараз проходжу (за журналом етерів) */
.now-frame{display:block;width:100%;height:14.5rem;border:0;border-radius:12px;background:var(--crust)}  /* живе віконце сервера етерів:
  висота рівно на заголовок, один ряд банерів і підказку (streams/worker.js); картка гри, якщо довша, гортається всередині */
@media (max-width:30rem){.shelf-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem .6rem}.shelf-name{font-size:.8rem}}
/* Ігри, в які я б хотів пограти: список бажаного зі Steam, полиці за тим, чи є українська */
.wish-src{margin:.45rem 0 0;color:var(--muted);font-size:.88rem;line-height:1.45}
.wish-hint{margin:-.45rem 0 .95rem;color:var(--muted);font-size:.92rem}
.shelf[class*="wish-"] h2::before{content:"";display:inline-block;width:.7rem;height:.7rem;margin-right:.55rem;border-radius:50%;background:var(--dot);vertical-align:.1em}
.wish-ua{--dot:var(--green)}.wish-fan{--dot:var(--teal)}.wish-soon{--dot:var(--yellow)}.wish-machine{--dot:var(--peach)}.wish-none{--dot:var(--red)}
.wish-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr));gap:1.2rem .9rem}
.wish{display:grid;align-content:start;gap:.4rem}
.wish-cover{display:block;border-radius:7px;overflow:hidden;background:var(--inset)}
.wish-cover img{display:block;width:100%;height:auto;aspect-ratio:460 / 215;object-fit:cover;transition:transform .2s}
.wish:hover .wish-cover img{transform:scale(1.03)}
.wish-name{color:var(--text);font-weight:700;line-height:1.3;text-decoration:none}
.wish-name:hover{text-decoration:underline}
.chips{display:flex;flex-wrap:wrap;gap:.3rem;margin:0}
.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.08rem .5rem;border-radius:6px;background:var(--surface0);color:var(--text);font-size:.78rem;line-height:1.5;text-decoration:none}
a.chip:hover{background:var(--surface1)}
.chip.ok{background:color-mix(in oklab,var(--green) 22%,var(--card))}
.chip.warn{background:color-mix(in oklab,var(--red) 24%,var(--card))}
.chip .ico{font-size:.95rem}

/* Усі ігри з етерів: облік сервера етерів, під кожною грою коментарі */
.archive-note{margin:-.35rem 0 1rem;color:var(--muted);font-size:.92rem}
.arch-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}
.arch{padding:.75rem;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.arch-row{display:flex;align-items:center;gap:.9rem}
.arch-ban{display:grid;place-items:center;flex:none;width:9.5rem;height:auto;aspect-ratio:460 / 215;border-radius:7px;object-fit:cover;
  background:var(--inset);color:var(--muted);font-size:1.6rem}
.arch-info{flex:1;min-width:0}
.arch h3{margin:0;font-size:1.05rem;line-height:1.3}
.arch-meta{margin:.25rem 0 0;color:var(--muted);font-size:.88rem}
.arch-mark{display:inline-block;padding:.05rem .45rem;border-radius:6px;background:var(--surface0);color:var(--text);font-size:.78rem;font-weight:700}
.arch-now{display:inline-block;padding:.05rem .45rem;border-radius:6px;background:var(--sun);color:var(--ink);font-size:.78rem;font-weight:700}
.arch-item{position:relative}
.arch-anchor{position:absolute;top:0;scroll-margin-top:30vh}
.arch-foot{margin:.65rem 0 0}
@media (max-width:30rem){.arch-ban{width:6.5rem}}

/* ---------- Арти: теки митців ----------
   Тека жовта, як усе «моє» на сайті. Три перші малюнки визирають з неї й на наведення висуваються віялом. */
.art-notes{margin-top:2rem;max-width:42rem}
.art-notes p{margin:0 0 .5rem}
.art-notes .ask{margin:1rem 0;padding:.7rem .9rem;border-radius:8px;background:var(--sun);color:var(--ink);font-weight:700}
.folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(11.5rem,100%),1fr));gap:1.6rem 1rem;margin-top:2.25rem;padding-top:.6rem}
.folder{position:relative;display:block;aspect-ratio:5/4;color:var(--ink);text-decoration:none;isolation:isolate}
.folder-back{position:absolute;inset:12% 0 0;z-index:-2;border-radius:4px 12px 12px 12px;background:color-mix(in oklab,var(--sun) 72%,#000)}
.folder-back::before{content:"";position:absolute;left:0;bottom:100%;width:42%;height:16%;border-radius:10px 10px 0 0;background:inherit}
.peek{position:absolute;inset:0;z-index:-1}
.peek img{position:absolute;left:50%;top:22%;width:46%;aspect-ratio:1;object-fit:cover;border-radius:6px;border:3px solid var(--card);
  box-shadow:0 4px 12px rgb(0 0 0 / .3);transform:translate(-50%,0) rotate(var(--r,0deg));transition:transform .3s cubic-bezier(.2,.75,.25,1)}
.peek img:nth-child(1){--r:-7deg;--x:-62%}
.peek img:nth-child(2){--r:2deg;--x:-50%;top:18%}
.peek img:nth-child(3){--r:9deg;--x:-38%}
.folder-front{position:absolute;inset:44% 0 0;display:flex;flex-direction:column;justify-content:flex-end;gap:.05rem;padding:.6rem .75rem;
  border-radius:10px;background:var(--sun);box-shadow:0 -1px 0 color-mix(in oklab,var(--sun) 70%,#fff) inset;transition:transform .3s}
.folder-front b{font-size:1.02rem;line-height:1.2;overflow-wrap:anywhere}
.folder-front small{font-size:.82rem;color:color-mix(in oklab,var(--ink) 75%,var(--sun))}
.folder:hover .peek img,.folder:focus-visible .peek img{transform:translate(var(--x),-34%) rotate(calc(var(--r) * 1.8))}
.folder:hover .folder-front,.folder:focus-visible .folder-front{transform:translateY(3px)}
@media (hover:none){.peek img{transform:translate(var(--x),-16%) rotate(calc(var(--r) * 1.4))}}
.all-arts{margin-top:2.25rem}
.all-arts>summary{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem 1rem;border-radius:999px;border:1px solid var(--line-2);cursor:pointer;list-style:none;font-weight:700}
.all-arts>summary::-webkit-details-marker{display:none}
.all-arts[open]>summary{margin-bottom:.9rem;background:var(--surface0)}
.art-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(9.5rem,100%),1fr));gap:.75rem .6rem}
.art{margin:0}
.art>a{display:block;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--inset);cursor:zoom-in}
.art img{display:block;width:100%;height:100%;object-fit:contain}
.art figcaption{padding:.3rem .1rem 0;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Відкрита тека: вікно поверх сторінки з усіма малюнками митця */
.folder-view{position:fixed;inset:0;z-index:90;display:none;place-items:center;padding:max(.75rem,env(safe-area-inset-top)) .75rem max(.75rem,env(safe-area-inset-bottom))}
.folder-view:target{display:grid}
.fv-bg{position:absolute;inset:0;background:rgb(0 0 0 / .72)}
.fv-panel{position:relative;width:min(56rem,100%);max-height:100%;overflow:auto;padding:1rem 1.1rem 1.2rem;background:var(--card);border-radius:12px;box-shadow:0 20px 50px rgb(0 0 0 / .45)}
.fv-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem}
.fv-head h2{display:flex;align-items:center;gap:.45rem;margin:0;font-size:1.35rem}
.fv-head h2 .ico{color:var(--yellow-text)}
.fv-head p{margin:.2rem 0 0;color:var(--muted);font-size:.92rem}
.fv-close{display:grid;place-items:center;flex:none;width:2.5rem;height:2.5rem;border-radius:999px;background:var(--surface0);color:var(--text);text-decoration:none}
.fv-close:hover{background:var(--sun);color:var(--ink)}
.fv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(8.5rem,100%),1fr));gap:.5rem}
.fv-grid a{display:block;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--inset);cursor:zoom-in}
.fv-grid img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .2s}
.fv-grid a:hover img{transform:scale(1.04)}

/* ---------- Подаровані ігри: мініатюра зі Steam і поруч хто подарував ---------- */
.game-grid{display:grid;margin-top:2rem;border-top:1px solid var(--line)}
.game{display:grid;grid-template-columns:minmax(7.5rem,12rem) minmax(0,1fr);gap:1.1rem;align-items:center;padding:.7rem 0;border-bottom:1px solid var(--line)}
.game-cover{display:block;border-radius:6px;overflow:hidden;background:var(--inset)}
.game-cover img{display:block;width:100%;height:auto;aspect-ratio:460/215} /* мініатюру зі Steam видно повністю */
.game-info{display:grid;gap:.15rem}
.game-title{color:var(--text);font-weight:700;font-size:1.1rem;line-height:1.25;text-decoration:none}
.game-title:hover{text-decoration:underline}
.gift{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;margin:0;color:var(--subtext1);font-size:.95rem}
.gift .ico{color:var(--yellow-text)}
.game time{color:var(--muted);font-size:.85rem}

/* Теґи з кількома кольорами (data/tags.json → "tone": ["mauve", "yellow"] або "rainbow"): напис переливається
   кольорами логотипа (Rewish, веселка федиверсу). Градієнти будує build.py → tag_html у змінних --grad і --tint.
   Градієнт і градієнтний текст тут свідомі: так попросив автор. */
.tag.multi{background:var(--tint)}
a.tag.multi:hover{background:var(--tint-hover)}
.tag.multi span{color:transparent;-webkit-background-clip:text;background-clip:text;background-image:var(--grad)}
/* "tone": "mono": білий напис на чорному, як значок monobank */
.tag.mono{background:#000;color:#fff;box-shadow:inset 0 0 0 1px var(--line-2)}
a.tag.mono:hover{background:#2a2a30}

/* ---------- Рекомендації: картки, як у покемонів ----------
   Жовта рамка, як у класичних карток, усередині тло кольору «типу» (--tone, з data/friends.json), картинка в рамці
   і золота смужка під нею. Замість атак рядки-посилання: «енергія» (значок), назва, сайт праворуч.
   Унизу опис, як підпис про покемона. На наведенні картинкою пробігає відблиск голограми. */
.pcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(13.75rem,100%),1fr));gap:1.4rem 1.1rem;justify-items:center;align-items:stretch;margin-top:2rem}
.pcard{display:flex;flex-direction:column;gap:.55rem;width:100%;max-width:20rem;aspect-ratio:63 / 88;padding:.6rem .65rem .7rem;
  border:var(--bw,.5rem) solid var(--sun);border-radius:14px;
  background:linear-gradient(165deg,color-mix(in oklab,var(--tone) 22%,var(--card)),color-mix(in oklab,var(--tone) 6%,var(--card)) 70%)}
.pcard-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 .1rem}
.pcard-head h2{margin:0;font-size:1rem;line-height:1.2}
.pcard-type,.pcard-energy{display:grid;place-items:center;flex:none;border-radius:50%;background:var(--tone);color:var(--ink);font-family:"Symbols";line-height:1}
.pcard-type{width:2.05rem;height:2.05rem;font-size:1.3rem;box-shadow:0 0 0 2px color-mix(in oklab,var(--ink) 30%,var(--tone))}
.pcard-art{position:relative;overflow:hidden;border:3px solid color-mix(in oklab,var(--sun) 65%,var(--surface2));border-radius:4px;background:var(--crust)}
.pcard-art img{display:block;width:100%;height:auto;aspect-ratio:4 / 3;object-fit:cover}
.pcard-art.pixel{background:color-mix(in oklab,var(--tone) 16%,#fff)}  /* піксель-арт ("pixel": true): світле тло, як у логотипа */
.pcard-art.pixel img{image-rendering:pixelated}
.pcard-art::after{content:"";position:absolute;inset:0;pointer-events:none;transform:translateX(-110%);
  background:linear-gradient(115deg,transparent 35%,rgb(255 255 255 / .3) 48%,transparent 62%)}
/* Відблиск пробігає один раз і лише на картці під курсором (або на тій, де зараз фокус клавіатури). Назад він
   не біжить: без transition у звичайному стані він миттєво й непомітно повертається, коли курсор іде з картки. */
@media (hover:hover){.pcard:hover .pcard-art::after{transform:translateX(110%);transition:transform .8s ease-out}}
.pcard:has(a:focus-visible) .pcard-art::after{transform:translateX(110%);transition:transform .8s ease-out}
.pcard-kind{margin:-.55rem .6rem 0;padding:.1rem .5rem;border-radius:0 0 6px 6px;background:var(--sun);color:var(--ink);font-size:.72rem;font-style:italic;text-align:center}
.pcard-moves{list-style:none;margin:.15rem 0 0;padding:0}
.pcard-moves a{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:.55rem;padding:.45rem .15rem;
  border-bottom:1px solid color-mix(in oklab,var(--tone) 30%,var(--line));color:var(--text);text-decoration:none}
.pcard-moves a:hover .pcard-move{text-decoration:underline}
.pcard-energy{grid-row:1 / 3;width:1.75rem;height:1.75rem;font-size:1rem}
.pcard-move{font-weight:700;font-size:.95rem}
.pcard-host{font-size:.75rem;line-height:1.3;color:var(--muted)}
.pcard-about{margin:auto 0 0;padding:.45rem .55rem;border:1px solid color-mix(in oklab,var(--tone) 35%,var(--line));border-radius:6px;
  color:var(--subtext1);font-size:.8rem;font-style:italic;line-height:1.4}

/* Благодійні збори ("charity": true) окремо від решти: панель на власному тлі з тонкою синьо-жовтою смужкою згори,
   картки повного розміру. Вужче — одразу під вступом сторінки; на широкому екрані — вгорі праворуч (нижче). */
.charity{--charity-bg:color-mix(in oklab,var(--yellow) 5%,var(--card));position:relative;margin-top:1.5rem;padding:1.25rem 1.4rem 1.6rem;
  border:1px solid var(--line-2);border-radius:18px;background:var(--charity-bg);overflow:hidden}
.charity::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#0057b7 50%,#ffd700 50%)}
.charity > h2{display:flex;align-items:center;gap:.5rem;margin:.15rem 0 1.1rem;font-size:1.2rem}
.charity > h2 .ico{display:grid;place-items:center;width:2rem;height:2rem;border-radius:50%;background:var(--sun);color:var(--ink);font-size:1.15rem}
.charity .pcards{margin-top:0;gap:2rem 2.25rem;grid-template-columns:repeat(auto-fill,minmax(min(14.5rem,100%),1fr))}
.friends-rest > h2{margin:0 0 .8rem;font-size:1.2rem}
.friends-rest .pcards{margin-top:0}
.friends-rest{margin-top:2.75rem}
/* ---------- Альбом зборів (data/charity.json) ----------
   На «Рекомендаціях» з кишені альбому визирають перші картки (нові першими), клік по картці відкриває її на сторінці
   альбому, по кишені — увесь альбом (album.html). Картки трохи віялом; під курсором картка вирівнюється й підіймається
   (лише transform: без перемальовування). */
.album-peek{--mask:var(--charity-bg,var(--card));position:relative;height:14.6rem}
.peek-cards{position:absolute;inset:0 0 auto;display:flex;justify-content:center;padding-top:1.1rem}
.peek-cards .pcard{flex:none;width:9.5rem;max-width:none;margin:0 -.85rem;transform:rotate(var(--r,0deg));transition:transform .2s ease}
.peek-cards .pcard:nth-child(1){--r:-7deg}
.peek-cards .pcard:nth-child(2){--r:-2.5deg}
.peek-cards .pcard:nth-child(3){--r:2.5deg}
.peek-cards .pcard:nth-child(4){--r:7deg}
.peek-cards .pcard:hover,.peek-cards .pcard:focus-within{z-index:4;transform:translateY(-.7rem) rotate(0deg)}
.peek-cards .pcard-about,.peek-cards .pcard-hint,.peek-cards .pcard-moves,.peek-cards .pcard-prize,.peek-cards .pcard-progress{display:none}  /* їх однаково ховає кишеня */
/* стислі картки в альбомі (на будь-якій ширині): менші шрифти й рамка */
.peek-cards .pcard{--bw:.4rem;gap:.35rem;padding:.4rem .45rem .45rem;border-radius:12px}
.peek-cards .pcard-head h2{font-size:.8rem}
.peek-cards .pcard-type{width:1.5rem;height:1.5rem;font-size:.95rem}
.peek-cards .pcard-art{border-width:2px}
.peek-cards .pcard-kind{margin:-.35rem .05rem 0;padding:.05rem .2rem;font-size:.6rem;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.album-peek{overflow:hidden}  /* низ карток під кишенею не видно й поза нею */
.album-peek.compact{height:13.2rem}
.album-peek.compact .peek-cards .pcard{width:8rem;margin:0 -.75rem}
.album-pocket{position:absolute;inset:auto 0 0;z-index:5;display:grid;place-content:center;justify-items:center;gap:.15rem;height:6rem;
  border-radius:14px 14px 18px 18px;background:var(--sun);color:var(--ink);text-decoration:none;
  box-shadow:0 -10px 22px rgb(0 0 0 / .35),inset 0 3px 0 color-mix(in oklab,#fff 35%,transparent)}
.album-pocket::before{content:"";position:absolute;inset:.45rem;border:2px dashed color-mix(in oklab,var(--ink) 30%,transparent);border-radius:11px;
  pointer-events:none}  /* стібок по краю, як на кишені альбому для карток */
.album-title{display:flex;align-items:center;gap:.4rem;font-size:1.08rem;font-weight:800}
.album-title .ico{font-size:1.3rem}
.album-sub{font-size:.84rem;font-weight:700;color:color-mix(in oklab,var(--ink) 75%,var(--sun))}
.album-pocket:hover .album-sub{text-decoration:underline}
.album-pocket:focus-visible{outline:3px solid var(--text);outline-offset:3px}

/* «Нове»: зелена рамка поверх жовтої й позначка над карткою, доки людина не відкрила картку (album_ring у build.py).
   :visited дозволяє міняти лише кольори, і лише на непрозорі, тож відкриту картку «гасимо» кольором звичайної рамки,
   а позначку — кольором тла під нею (--mask). Посилання-рамка не клікається (pointer-events), клік іде по картці */
.pcard-ring{position:absolute;inset:calc(-1 * var(--bw,.5rem));z-index:3;border:var(--bw,.5rem) solid var(--green);border-radius:inherit;
  pointer-events:none}
.pcard-ring:visited{border-color:var(--sun)}
.pcard-new{position:absolute;top:-1.2rem;left:50%;translate:-50% 0;padding:.05rem .6rem;border-radius:999px;background-color:var(--green);
  color:var(--crust);font-size:.72rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}
.pcard-ring:visited .pcard-new{background-color:var(--mask,var(--page));color:var(--mask,var(--page))}
/* Закритий збір: сірий, з рядком «Збір закрито»; лежить у «Закритих зборах» альбому */
.pcard.is-closed{filter:grayscale(.85);opacity:.8}
.pcard-closed{display:flex;align-items:center;justify-content:center;gap:.3rem;margin:0;padding:.15rem .5rem;border-radius:6px;
  background:var(--surface1);color:var(--text);font-size:.75rem;font-weight:700}
/* У вікні картки: скільки зібрано на банку monobank (картинка від сервера етерів) і попередження про банки */
.cv-jar{display:block;width:100%;max-width:26.25rem;height:auto;margin:.2rem 0 .7rem}
.cv-warn{display:flex;align-items:flex-start;gap:.55rem;margin:0 0 .9rem;padding:.55rem .75rem;border-radius:10px;font-size:.9rem;
  background:color-mix(in oklab,var(--peach) 12%,var(--card));border:1px solid color-mix(in oklab,var(--peach) 45%,transparent)}
.cv-warn .ico{color:var(--peach)}

/* Збір (data/charity.json без "fund"): на самій картці скільки зібрано (картинка від сервера етерів) і «Розіграш · від …» */
.pcard-progress{display:block;width:100%;height:auto;border-radius:8px}
/* Поки картинка вантажиться, Firefox пише замість неї замінний текст (alt): ховаємо його (його однаково читають програми
   екранного доступу), а смужки «скільки зібрано» мають тло того самого кольору й форми, що й сама картинка */
.pcard-art img,.cv-jar,.pcard-progress,.post-wrap img,.cv-panel img{color:transparent}
.cv-jar,.pcard-progress{background:var(--surface0);border-radius:10px}
.pcard-prize{display:flex;align-items:center;justify-content:center;gap:.35rem;margin:0;padding:.2rem .55rem;border-radius:999px;
  background:color-mix(in oklab,var(--green) 22%,var(--card));border:1px solid color-mix(in oklab,var(--green) 55%,transparent);
  color:var(--text);font-size:.78rem;font-weight:700}
.pcard-prize .ico{color:var(--green)}
.cv-prize{display:grid;gap:.4rem;margin:0 0 .7rem;padding:0;list-style:none}
.cv-prize li{display:flex;align-items:flex-start;gap:.55rem;padding:.5rem .7rem;border-radius:10px;background:color-mix(in oklab,var(--green) 9%,var(--card));
  border:1px solid color-mix(in oklab,var(--green) 35%,transparent)}
.cv-prize .ico{color:var(--green);font-size:1.15rem}
/* призи за місцями ("prizes"): номер місця ліворуч, приз праворуч */
.cv-places{display:grid;gap:.15rem;margin:0 0 .8rem;padding:0;list-style:none}
.cv-places li{display:grid;grid-template-columns:5.2rem 1fr;gap:.6rem;padding:.35rem 0;border-bottom:1px solid var(--line)}
.cv-places li:last-child{border-bottom:0}
.cv-places b{color:var(--green)}
.cv-h .ico{color:var(--yellow-text)}
.cv-ends{display:flex;align-items:center;gap:.45rem;margin:0 0 .8rem;color:var(--subtext1)}
/* Поточні збори фонду з його сайту ("feed"): рядок на збір — назва (сторінка збору), опис, лічильник фонду й смужка банки,
   яка веде на банку. Рядки розділені лінією, без рамок-карток усередині вікна */
.cv-drives{margin:0 0 .5rem;padding:0;list-style:none}
.cv-drive{padding:.75rem 0 .15rem;border-top:1px solid var(--line)}
.cv-drive:first-child{padding-top:.15rem;border-top:0}
.cv-drive h4{margin:0 0 .2rem;font-size:1.02rem}
.cv-drive h4 a{color:var(--text);text-decoration-color:color-mix(in oklab,var(--tone,var(--yellow)) 70%,transparent);text-underline-offset:.2em}
.cv-drive-about{margin:0 0 .3rem;color:var(--subtext1);font-size:.92rem}
.cv-drive-units{margin:0 0 .4rem;color:var(--muted);font-size:.9rem}
.cv-drive-units b{color:var(--text);font-size:1.02rem}
.cv-drive-jar{display:block;max-width:26.25rem;border-radius:10px}
.cv-drive-jar .cv-jar{margin:0 0 .5rem}
.cv-drive-jar:hover .cv-jar,.cv-drive-jar:focus-visible .cv-jar{outline:2px solid var(--tone,var(--yellow));outline-offset:2px;border-radius:10px}
.cv-drives-all{margin:0 0 .9rem}
/* «Задонатити на банку» під смужкою, коли банки немає серед посилань картки */
.cv-jar-go{margin:0 0 .8rem}
.cv-jar-go a{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem 1rem .45rem .8rem;border-radius:999px;background:var(--sun);
  color:var(--ink);font-weight:700;text-decoration:none}
.cv-jar-go a:hover,.cv-jar-go a:focus-visible{background:var(--text);color:var(--base)}
.cv-drives-all a{display:inline-flex;align-items:center;gap:.4rem}

/* Значок «Альбом зборів» угорі праворуч на кожній сторінці (крім альбому й «Рекомендацій»). Нові збори: зелена рамка
   й зелена крапка, доки людина не відкрила альбом (так само через :visited, «гасимо» кольорами самої кнопки) */
.col{position:relative}
.album-fab{position:absolute;top:.85rem;right:.85rem;z-index:6}
.fab-link{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .95rem .45rem 1.45rem;border:2px solid var(--surface1);border-radius:999px;
  background:var(--card);color:var(--text);font-size:.95rem;font-weight:700;text-decoration:none;box-shadow:0 8px 22px rgb(0 0 0 / .35)}
.fab-link .ico{color:var(--yellow-text);font-size:1.2rem}
.fab-link:hover{border-color:var(--sun)}
.fab-ring{position:absolute;inset:0;border:2px solid var(--green);border-radius:999px;pointer-events:none}
.fab-ring:visited{border-color:var(--surface1)}
.fab-dot{position:absolute;left:.6rem;top:50%;translate:0 -50%;width:.55rem;height:.55rem;border-radius:50%;background-color:var(--green);
  color:var(--green);font-size:0}
.fab-ring:visited .fab-dot{background-color:var(--card);color:var(--card)}
@media (max-width:40rem){.fab-link span:not(.ico){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .fab-link{padding:.5rem .7rem .5rem 1.35rem}}

/* Сторінка «Альбом зборів» */
.album-tools{margin:.9rem 0 0}
.album-rss{display:inline-flex;align-items:center;gap:.45rem;padding:.4rem .95rem .4rem .75rem;border:1px solid var(--line-2);border-radius:999px;
  background:var(--card);color:var(--text);font-weight:700;text-decoration:none}
.album-rss .ico{color:var(--peach)}
.album-rss:hover{border-color:var(--sun)}
.album-warn{display:flex;align-items:flex-start;gap:.6rem;max-width:56rem;margin:1.6rem 0 0;padding:.75rem 1rem;border-radius:12px;
  background:color-mix(in oklab,var(--peach) 10%,var(--card));border:1px solid color-mix(in oklab,var(--peach) 40%,transparent)}
.album-warn .ico{color:var(--peach);font-size:1.2rem}
.album-sec,.album-closed{--mask:var(--page);margin-top:2.4rem}
.album-sec>h2{display:flex;align-items:center;gap:.5rem;margin:0 0 .25rem;font-size:1.25rem}
.album-sec>h2 .ico{color:var(--yellow-text)}
.album-note{margin:0;color:var(--muted);font-size:.9rem}
.album-sec .pcards,.album-closed .pcards{margin-top:1.6rem}
.album-closed>summary{display:flex;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;list-style:none;cursor:pointer}
.album-closed>summary::-webkit-details-marker{display:none}
.album-closed>summary>.ico:last-child{transition:transform .2s}
.album-closed[open]>summary>.ico:last-child{transform:rotate(180deg)}

/* Телефон (і вузьке вікно в телефонній розкладці): збори згорнуто в бабл із пульсуючим прапором України, торкнулися —
   картки розгортаються під ним на тлі панелі. Пульсують лише transform і opacity: відеокарта, без перемальовування */
.charity-fold{display:none}
@media (max-width:56rem){
  .friends-head .charity{display:none}
  .charity-fold{display:block;margin-top:1.1rem}
  .charity-fold > summary{display:flex;align-items:center;justify-content:center;gap:.65rem;padding:.6rem 1rem;
    border:1px solid var(--line-2);border-radius:999px;background:color-mix(in oklab,var(--yellow) 6%,var(--card));
    font-weight:700;list-style:none;cursor:pointer;transition:border-color .15s}
  .charity-fold > summary::-webkit-details-marker{display:none}
  .charity-fold > summary:hover,.charity-fold[open] > summary{border-color:var(--sun)}
  .charity-fold > summary .ico{font-size:1.2rem;color:var(--subtext1);transition:transform .2s}
  .charity-fold[open] > summary .ico{transform:rotate(180deg)}
  .cf-count{display:grid;place-items:center;min-width:1.4rem;height:1.4rem;padding:0 .35rem;border-radius:999px;
    background:var(--sun);color:var(--ink);font-size:.8rem}
  .ua-flag{position:relative;flex:none;width:1.65rem;height:1.1rem;border-radius:3px;
    background:linear-gradient(#0057b7 50%,#ffd700 50%);animation:ua-pulse 2s ease-in-out infinite}
  .ua-flag::after{content:"";position:absolute;inset:-2px;border:2px solid #ffd700;border-radius:5px;opacity:0;
    animation:ua-ring 2s ease-out infinite}
  .charity-fold-body{position:relative;margin-top:.7rem;padding:1.1rem .9rem 1.2rem;border:1px solid var(--line-2);border-radius:16px;
    background:color-mix(in oklab,var(--yellow) 5%,var(--card));overflow:hidden}
  .charity-fold-body::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#0057b7 50%,#ffd700 50%)}
  .charity-fold-body .pcards{margin-top:0}
}
@keyframes ua-pulse{50%{transform:scale(1.12)}}
@keyframes ua-ring{0%{opacity:.75;transform:scale(1)}100%{opacity:0;transform:scale(1.7)}}
@media (prefers-reduced-motion:reduce){.ua-flag,.ua-flag::after{animation:none}}

/* Широкий екран: панель зборів угорі праворуч, від банера й не нижче за останній рядок вступу (так просили):
   заходить на банер на власному тлі, а ліворуч заголовок і вступ. Щоб уміститися, картки тут стислі: менші шрифти
   й відступи, опис збору прихований з очей (читалки його чують, а повністю він є в картці, що відкривається).
   Вужче за 90rem трьом карткам поруч із заголовком тісно: тоді панель просто під вступом */
@media (min-width:90rem){
  .main.wide .friends-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:11rem auto;column-gap:2.5rem}
  .main.wide .friends-head .banner{grid-column:1 / -1;grid-row:1}
  .main.wide .friends-head .page-head-body{grid-column:1;grid-row:2}
  .main.wide .friends-head .charity{z-index:1;grid-column:2;grid-row:1 / 3;align-self:start;margin-top:.5rem;
    padding:.7rem .85rem .8rem;border-radius:14px;box-shadow:0 18px 44px rgb(0 0 0 / .4)}
  .main.wide .friends-head .charity > h2{gap:.45rem;margin:0 0 .5rem;font-size:1rem}
  .main.wide .friends-head .charity > h2 .ico{width:1.6rem;height:1.6rem;font-size:.95rem}
  .main.wide .friends-head .charity{width:35rem}  /* картки альбому лежать вільно (absolute), тож ширину панелі задаємо */
}

/* Кожна картка клікабельна: .pcard-hit на всю площу веде на вікно з описом і посиланнями. Картка з кількома
   посиланнями показує лише короткий опис і підказку; на картці з одним посиланням (збори Стерненка) воно лишається
   й клікається окремо, бо стоїть над .pcard-hit. */
.pcard.has-more,.pcard.is-link{position:relative}
.pcard.is-link .pcard-moves{position:relative;z-index:3}
.pcard.is-link:hover h2{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
.pcard-hit{position:absolute;inset:-.5rem;z-index:2;border-radius:14px}
/* "twitch" у data/friends.json: поки друг в етері, картка світиться червоним, а на картинці «В етері». Картинки
   дає сервер етерів: у етері червоний прямокутник (позаду картки; видно лише сяйво від нього) і напис, інакше
   прозорі. .pcards ізольовано, щоб сяйво лягало над тлом сторінки, але під саму картку.
   Сяйво «дихає» прозорістю, а не самим filter: тінь малюється один раз, а прозорість міняє відеокарта, без
   перемальовування сторінки щокадру (анімований filter вантажив би процесор, навіть коли етеру немає) */
.pcards{isolation:isolate}
.pcard-glow{position:absolute;inset:-.5rem;z-index:-1;width:calc(100% + 1rem);height:calc(100% + 1rem);border-radius:14px;
  pointer-events:none;filter:drop-shadow(0 0 7px #ff2b4a) drop-shadow(0 0 18px #ff2b4a);animation:live-glow 2.4s ease-in-out infinite alternate}
@keyframes live-glow{to{opacity:.5}}
@media (prefers-reduced-motion:reduce){.pcard-glow{animation:none}}
.pcard-live{position:absolute;top:3.4rem;left:1rem;z-index:1;width:auto;height:1.6rem;pointer-events:none}
.pcard-hit:focus-visible{outline:3px solid var(--tone);outline-offset:2px}
.has-more .pcard-about{margin:0}
.pcard-about{white-space:pre-line}  /* \n в описі картки — новий рядок (і в сітці, і у вікні картки) */
.pcard-hint{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.55rem;margin:auto 0 0;padding:.5rem .15rem 0;
  border-top:1px solid color-mix(in oklab,var(--tone) 30%,var(--line));font-size:.82rem;font-weight:700;line-height:1.3}
.pcard.has-more:hover .pcard-hint span:last-child{text-decoration:underline}

/* Вікно картки: ліворуч сама картка, праворуч «опис персонажа»: звернення й усі посилання. На :target, без JS. */
.pcard-view{position:fixed;inset:0;z-index:90;display:none;place-items:center;padding:max(.75rem,env(safe-area-inset-top)) .75rem max(.75rem,env(safe-area-inset-bottom))}
.pcard-view:target{display:grid}
.cv-panel{position:relative;display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:1.6rem;align-items:start;width:min(50rem,100%);
  max-height:100%;overflow:auto;padding:1.2rem;background:var(--card);border-radius:14px;box-shadow:0 20px 50px rgb(0 0 0 / .45)}
.cv-panel .pcard{position:sticky;top:0;max-width:none;aspect-ratio:auto}  /* картка стоїть, поки гортається опис */
.cv-info{min-width:0}
.cv-desc{margin:0;font-size:1.02rem;line-height:1.6;white-space:pre-line}
.cv-h{margin:1.4rem 0 .55rem;font-size:1.05rem}
.cv-details{margin:0 0 .8rem;line-height:1.6;white-space:pre-line}  /* \n у тексті — новий рядок */
/* Реквізити у вікні картки: назва ліворуч, номер праворуч — код, що виділяється одним кліком цілком (.copy) */
.cv-req-hint{margin:-.2rem 0 .6rem;color:var(--muted);font-size:.85rem}
.cv-req{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}
.cv-req li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.3rem .8rem;padding:.5rem .7rem;
  border:1px solid var(--line-2);border-radius:10px;background:color-mix(in oklab,var(--tone) 6%,var(--card))}
.cv-req-k{font-weight:700}
.cv-req .copy{padding:.2rem .5rem;border-radius:7px;background:var(--surface0);font-family:"Ubuntu Mono Site",ui-monospace,monospace;font-size:1rem;
  letter-spacing:.02em;overflow-wrap:anywhere;white-space:normal}
.cv-req .copy:hover{box-shadow:0 0 0 1.5px var(--sun)}
.cv-person{margin-top:1rem}
.cv-person h4{margin:0 0 .15rem;font-size:1rem}
.cv-note{margin:0 0 .35rem;color:var(--subtext1);font-size:.9rem;line-height:1.5}
.cv-info .pcard-moves{border-top:1px solid var(--line)}
.cv-info .pcard-moves a{padding:.65rem .2rem}
.cv-info .pcard-move{font-size:1.02rem}
.cv-info .pcard-host{font-size:.85rem}
/* збірки Minestar (і інші розділи, що оновлюються самі): рядки з банером ліворуч */
.packs{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.pack{display:grid;grid-template-columns:7.5rem minmax(0,1fr);grid-template-rows:auto auto 1fr;column-gap:.8rem;align-items:start;
  padding:.5rem;border:1px solid var(--line);border-radius:10px;color:var(--text);text-decoration:none}
.pack:hover{border-color:var(--tone)}
.pack-ban{grid-row:1 / 4;display:block;aspect-ratio:16 / 9;border-radius:7px;overflow:hidden;background:var(--inset)}
.pack-ban img{display:block;width:100%;height:100%;object-fit:cover}
.pack-ban:not(:has(img)){display:grid;place-items:center;color:var(--muted);font-size:1.6rem}
.pack-name{font-weight:700;line-height:1.3}
.pack:hover .pack-name{text-decoration:underline}
.pack-meta{color:var(--muted);font-size:.82rem}
.pack-desc{margin-top:.2rem;font-size:.88rem;line-height:1.4}
@media (max-width:30rem){.pack{grid-template-columns:5.5rem minmax(0,1fr)}}
@media (max-width:40rem){
  .cv-panel{grid-template-columns:minmax(0,1fr)}
  .cv-panel .pcard{width:100%;max-width:16rem;margin-inline:auto}
  .cv-info{order:-1}
}

/* ---------- Перегляд картинки на весь екран (на :target, без JS) ---------- */
.lightbox{position:fixed;inset:0;z-index:100;display:none;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;
  padding:max(.75rem,env(safe-area-inset-top)) .75rem max(.75rem,env(safe-area-inset-bottom))}
.lightbox:target{display:flex}
.lb-bg{position:absolute;inset:0;background:rgb(0 0 0 / .9);cursor:zoom-out}
.lb-fig{position:relative;display:flex;flex-direction:column;align-items:center;gap:.5rem;min-height:0;max-height:calc(100% - 3.5rem);margin:0}
.lb-fig img{min-height:0;max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}
.lb-fig figcaption{color:#fff;font-size:.95rem;text-align:center}
.lb-fig figcaption a{color:#f9e2af}
.lb-count{margin-left:.4rem;color:#bac2de;font-size:.85rem}
.lb-nav{position:relative;display:flex;align-items:center;gap:.5rem}
.lb-close,.lb-step{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:2.5rem;padding:.35rem .95rem;border-radius:999px;font-weight:700;font-size:.92rem;text-decoration:none}
.lb-close{background:var(--sun);color:var(--ink)}
.lb-step{min-width:2.75rem;padding:.35rem;background:rgb(255 255 255 / .14);color:#fff;font-size:1.1rem}
.lb-step:hover{background:rgb(255 255 255 / .26)}

@media (max-width:86rem){
  .aside{display:none}
  .profile-tags{display:flex}
}

/* ---------- Телефони й вузькі вікна: жовта панель стає верхньою смугою, меню переїжджає вниз ---------- */
@media (max-width:56rem){
  .rail{position:sticky;inset:auto;top:0;width:auto;flex-direction:row;align-items:center;justify-content:space-between;gap:.75rem;
    padding:.5rem max(.85rem,env(safe-area-inset-right)) .5rem max(.85rem,env(safe-area-inset-left));overflow:visible}
  .rail-nav,.rail-theme,.rail-foot{display:none}
  .rail-id{padding:0}
  .rail-id img{width:36px;height:36px;border-radius:10px}
  .rail-id b{font-size:1.02rem}
  .rail-id small{font-size:.8rem}
  .rail-login{width:14rem;height:3.25rem;margin:0 0 0 auto}  /* праворуч, поруч із «Тема»; вміст притиснутий праворуч */
  .rail-login::before,.rail-login::after{display:none}  /* у смузі ліній немає: там «Увійти» пігулкою, як «Тема» */
  .rail-id{min-width:0}
  .rail-id span{min-width:0}
  .rail-id b,.rail-id small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .theme-menu{display:block;position:relative}
  .theme-menu summary{display:flex;align-items:center;gap:.35rem;min-height:2.5rem;padding:.3rem .8rem .3rem .6rem;border:1.5px solid var(--ink);border-radius:999px;cursor:pointer;list-style:none;font-size:.92rem}
  .theme-menu summary::-webkit-details-marker{display:none}
  .theme-menu[open] summary{background:var(--ink);color:var(--sun)}
  .theme-menu .themes{position:absolute;right:0;top:calc(100% + .45rem);grid-template-columns:1fr;min-width:11.5rem;padding:.35rem;
    background:var(--card);border:1px solid var(--line-2);border-radius:12px;box-shadow:0 14px 32px rgb(0 0 0 / .35)}
  .theme-menu .theme{padding:.6rem .7rem;color:var(--text)}
  .theme-menu .credits{margin:.15rem .1rem .6rem}
  .theme-menu .credit{background:var(--surface0);color:var(--text)}
  .theme-menu .theme[aria-current]{background:var(--surface0);font-weight:700}
  .theme-menu .sw{box-shadow:0 0 0 1px var(--line-2)}
  .main{padding-bottom:calc(6rem + env(safe-area-inset-bottom))}
  :root{--lane:var(--page)}  /* на телефоні стрічка й так на весь екран, доріжка не потрібна */
  .main::before{display:none}
  .col{margin-left:0;width:auto;padding:0 max(.6rem,env(safe-area-inset-left))}
  .banner{margin-inline:0;border-radius:0 0 10px 10px}
  .profile-body,.page-head-body{padding:0 .4rem}
  .tabbar{position:fixed;inset:auto 0 0 0;z-index:30;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);
    padding:0 max(.25rem,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(.25rem,env(safe-area-inset-left));background:var(--card);border-top:1px solid var(--line)}
  .tabbar a{display:grid;justify-items:center;align-content:center;gap:.15rem;min-height:3.75rem;padding:.4rem .1rem;color:var(--subtext0);text-decoration:none;font-size:.72rem;line-height:1.2;text-align:center}
  .tabbar .ico{width:3.25rem;padding:.2rem 0;border-radius:999px;font-size:1.35rem}
  .tabbar a[aria-current]{color:var(--text);font-weight:700}
  .tabbar a[aria-current] .ico{background:var(--sun);color:var(--ink)}
  .banner{height:8.5rem;background-size:auto calc(var(--tile-h,100%) * .7)}
  .page-head .banner{height:5.5rem}
  .profile-av{width:88px;height:88px;margin-top:-46px;border-radius:22px;border-width:4px}
  .profile-name,.page-head h1{font-size:clamp(1.7rem,1.1rem + 3vw,2.2rem)}
  .page-head h1{margin-top:1.1rem}
  .fields div{grid-template-columns:6.75rem minmax(0,1fr);gap:.6rem}
  .specs div{grid-template-columns:minmax(0,1fr);gap:0}
  .feed{margin-top:1.75rem;gap:1rem}
  .tags .tag,.profile-tags .tag{padding:.3rem .6rem}  /* пальцем у теґ мають легко влучати: ~32 px заввишки */
  .post{padding:.85rem .9rem .3rem}
  .post-foot{margin-inline:-.9rem;padding-inline:.9rem}
  .link{grid-template-columns:1.8rem minmax(0,1fr) auto}
  .link-glyph{font-size:1.35rem}
  .post-anchor{scroll-margin-top:calc(50vh + 1.5rem);scroll-margin-top:calc(50dvh + 1.5rem)}
}
@media (max-width:30rem){
  body{font-size:1rem}
  .link-kind{display:none}
  .art-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem .5rem}
  .folders{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem .6rem}
  .folder-front{padding:.45rem .55rem}
  .folder-front b{font-size:.92rem}
  .fv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .game{grid-template-columns:8.5rem minmax(0,1fr);gap:.75rem}
  .game-title{font-size:1rem}
  .gift{font-size:.88rem}
}

/* Місце «Увійти» у верхній смузі телефона: вужче на вузьких екранах. Віконце саме перебудовується під свою
   ширину: нікнейм обрізається трикрапкою, а зовсім вузьке показує лише значки (comments/worker.js, .rl) */
@media (max-width:40rem){  /* телефон: «Тема» лише значком, щоб ім'я в смузі вміщалося (слово лишається для читалок) */
  .rail-login{width:11rem}
  .theme-menu summary{padding:.3rem .55rem}
  .theme-menu summary span:not(.ico){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
}
@media (max-width:30rem){.rail-login{width:6.25rem}}
