Не подглядывайте, ёпта!

тёмный лорд одержал победу во второй магической войне, установив тоталитарный режим. волшебное общество оказалось разделено на касты по чистоте крови, границы закрыты, а репрессии и дискриминация стали нормой. надежда на перемены теперь связана с сопротивлением, которое по масштабу превзошло сам орден феникса.
best episode
best post
ronald weasley:— Ничего, — его голос сиплый и едва слышный. Голубые глаза расширены. — Не чувствую ничего, — повторяет он. Отчего-то Рональд не решается повернуть голову и посмотреть в лицо Тео. Все его тело вновь парализовано, дыхание сбито. Волосы на затылке встают дыбом от осознания своей совершенной беспомощности...

Squirrel test

Объявление

тебе сюда
итоги экспедиции
выберись из неё
новый расклад
сыграй в маджонг

    Информация о пользователе

    Привет, Гость! Войдите или зарегистрируйтесь.


    Вы здесь » Squirrel test » — мироустройство » весна-лето 2026


    весна-лето 2026

    Сообщений 1 страница 17 из 17

    1

    Рыбатекст используется дизайнерами, проектировщиками и фронтендерами, когда нужно быстро заполнить макеты или прототипы содержимым. Это тестовый контент, который не должен нести никакого смысла, лишь показать наличие самого текста или продемонстрировать типографику в деле.

    Рыбатекст используется дизайнерами, проектировщиками и фронтендерами, когда нужно быстро заполнить макеты или прототипы содержимым. Это тестовый контент, который не должен нести никакого смысла, лишь показать наличие самого текста или продемонстрировать типографику в деле.

    Код:
    Рыбатекст используется дизайнерами, проектировщиками и фронтендерами, когда нужно быстро заполнить макеты или прототипы содержимым. Это тестовый контент, который не должен нести никакого смысла, лишь показать наличие самого текста или продемонстрировать типографику в деле.
    спойлер

    Рыбатекст используется дизайнерами, проектировщиками и фронтендерами, когда нужно быстро заполнить макеты или прототипы содержимым. Это тестовый контент, который не должен нести никакого смысла, лишь показать наличие самого текста или продемонстрировать типографику в деле.

    0

    2

    [html]<style>
    .news-main {
      position: relative;
      background: var(--footer);
      background-size: cover;
      padding: 15px;
      border-radius: 20px;
      overflow: visible;
    margin: 20px;
    }

    .news-podlozhka {
      background: var(--topic-overlay);
      border-radius: 15px;
      color: var(--podforum);
      text-align: justify;
      position: relative;
      padding: 5px;
    z-index: 1;
    }

    .news-date {
      position: absolute;
      top: -12px;     
      left: 50%;
      transform: translateX(-50%);
      width: 100px;
      text-align: center;
      font-weight: 400;
      font-size: 11px;
      text-transform: uppercase;
      background: var(--dark-accent);
    font-weight: bold;
      color: var(--pun-bg);
      padding: 3px;
      border-radius: 7px;
    }

    .news-podlozhka a {
      color: var(--dark-accent);
      font-weight: 600;
      text-decoration: none;
    }

    .news-podlozhka a:hover {
      color: var(--link);
    }

    .news-zagolovok {
      margin-top: 0;
      font-size: 30px;
      text-transform: uppercase;
      font-family: var(--extra-font);
      background: transparent;
      text-align: center;
      color: var(--link);
      padding-bottom: 15px;
    position: relative;
    }

    .news-podlozhka p {
      padding-left: 15px;
      padding-right: 15px;
      padding-bottom: 0px;
      padding-top: 10px;
      line-height: 1.5;
    }

    .news-author-inline {
        display: inline-block; 
        width: 84px;
        height: 93px;
        float: left;
        margin: 0 15px 15px 0;
        border-radius: 5px;
        position: relative;
    }

    .news-author-inline img {
        width: 100%;
        height: 100%;
        display: block;
        border-radius: 5px;
        object-fit: cover;
        filter: grayscale(100%);
    }

    .news-author-inline::after {
        content: "";
        position: absolute;
        inset: 0;
        background-color: rgba(174, 188, 191, 0.5);
        border-radius: 5px;
    }

    /* Заливка поверх картинки */
    .news-author-inline::after {
        content: "";
        position: absolute;
        inset: 0;
        background-color: var(--overlay-color);
        border-radius: 5px;
    }

    </style>

    <div class="news-main">
      <div class="news-zagolovok">BREAKING NEWS</div>

      <div class="news-podlozhka">
        <div class="news-date">01/02/2026</div>

    <p>
      <span class="news-author-inline">
        <img src="https://64.media.tumblr.com/cd87a8914c1ac6d6c81537d9506e40f4/b52989049bb715e4-f6/s540x810/3c6969cad1db438a2f0fd9188aa860f174cfc133.gif">
      </span>
    Халлоу эгейн, я захватил новостную темку и больше никого сюда не пущу, муахаха.
    </p>

    <p>А бокал на гифке поднимаю в честь главной новости: сегодня родилась та, без кого мы все тут бы не собрались, создательница малефики и наша идейная вдохновительница, замечательная Джинни-какая-то-там-куча-лишних-фамилий-Уизли. срочно бегите <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=182&p=4">поздравлять</a>, если вы ещё не. Ну или просто ловите именинницу в любом удобном месте и обнимайте, я сегодня даже ревновать не буду <s>но это не точно</s>. </p>

    <p>Ну да, ну да, я немного увлёкся, сами понимаете, сердечки в глазах мешают нажимать на тормоза... но вообще-то на дворе февраль, так что сам Мерлин велел. Или это был не он, а Валентин? Ай, главное, что love is in the air и вот это вот всё. Мы ещё к вам вернёмся с дополнительным розовым безумием, а пока что к нам залетел первый шальной Купидончик и принёс <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=998#p116508">валентиновское бинго</a>. Причём был так добр, что разрешил заполнять карточку со всех профилей разом. И вы это, не бойтесь, даже если ненавидите праздник всеми фибрами души, или просто ещё не отыскали свою половинку, четвертинку или квадратный корень, вам всё равно найдётся, чем разнообразить посты, узнать получше собственных персонажей и, конечно же, пополнить копилочку баллов противостояния за любимую команду.</p>

    <p>Ну а если это всё вот прям совсем мимо кассы, то спрятаться от вездесущей романтики можно в <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=999#p116509">бункере</a>, записывайтесь, это весело, а ещё надеюсь будет в хорошем смысле трэшово!</p>

        <p>Отдохнули и с новыми (вот прям совсем новыми) силами готовы бросаться в игру? Тогда для вас наша новая постоянная акция - <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=997#p116507">wanted: alive</a>. В этой теме мы будем объявлять месячник персонажей, за регистрацию которых полагаются дополнительные плюшки. И в феврале очень ждём... <s>щас, подождите, на меня наложат Империо, чтоб я мог продолжить</s> всех скользких друзей мне-цензура-запрещает-писать-кого, Пожирателей Смерти то бишь!</p>

    <p>Но, наверное, мы неправильно расставили приоритеты, и февраль надо было объявлять месяцем рыжих. Ведь они потихоньку захватывают мир, а начали с нашей шапки. Поздравляем звёздочек этих двух недель, которые радовали нас постами, скакали на скакалочках , рассказывали увлекательные истории и флудили напропалую: <a href="https://mmaleficarum.rusff.me/profile.php?id=5">Джинни</a>, <a href="https://mmaleficarum.rusff.me/profile.php?id=199">Перси</a>, <a href="https://mmaleficarum.rusff.me/profile.php?id=153">Сьюзен</a>, гордимся вами и хотим быть как вы!</p>
    <p>Хотя есть у нас и другие ролевые модели. Участники квеста <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=828&p=2#p99144">Trumpets before Jericho</a>, например, умеют и отдохнуть, и подраться, и вообще на вторую страницу темы перевалили. Бегите скорее читать и делать ставки, переживёт ли яхта господина Веларде такой накал страстей.</p>
    <p>А я ведь говорил, да, что любовь разлита в воздухе? И мы на самом деле знаем, почему так рано. Просто очаровательная <a href="https://mmaleficarum.rusff.me/profile.php?id=260">Лавандушка</a> очень ответственно начала готовиться к грядущему празднику заранее и <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=983#p115718">окунула</a> нас в ностальгию по первой детской влюблённости, даже моё циничное сердечко проняло.</p>

    <p>Пойду тоже чего-нибудь напишу, и вам того же желаю. <i>Зажжём</i> в феврале, а?.</p>
    <p></p>
      </div>
    </div>
    [/html]
    [hideprofile]

    0

    3

    [html]
    <style>
    .news-main {
      position: relative;
      background: var(--footer);
      background-size: cover;
      border-radius: 20px;
      overflow: hidden;
      max-width: 700px;
    padding: 20px;
    }

    .news-podlozhka {
    background: var(--topic-overlay);
        border-radius: 15px;
        color: var(--podforum);
        text-align: justify;
      position: relative;
      padding: 5px;
    }

    .news-date {
    position: absolute;
      top: -12px;     
      left: 50%;
      transform: translateX(-50%);
      width: 100px;
      text-align: center;
      font-weight: 400;
      font-size: 13px;
      text-transform: uppercase;
      background: var(--dark-accent);
    font-weight: bold;
      color: var(--pun-bg);
      padding: 3px;
      border-radius: 7px;
    }

    .news-podlozhka a {color: var(--textcolor);
    font-weight: 600;
      text-decoration: none;
    }
    .news-podlozhka a:hover {color: var(--link);
    }

    .news-zagolovok {
    margin-top: 0;
        font-size: 30px;
        text-transform: uppercase;
        font-family: var(--extra-font);
        background: transparent;
        text-align: center;
        color: var(--link);
      padding-bottom: 15px;
    }

    .news-podlozhka p {
      padding-left: 15px;
      padding-right: 15px;
    padding-bottom: 0px;
    padding-top: 10px
    }

    .news-podlozhka a {color: var(--dark-accent);
    }

    .news-activists {
      display: flex;
      justify-content: center;
    }

    .news-activists img {  margin: 0 15px 15px 0;
      width: 65px;
      height: 75px;
      border-radius: 10px;
        filter: grayscale(100%);
      }

    .img-wrap {
      position: relative;
      width: 65px;
      height: 75px;
      border-radius: 5px;
      overflow: hidden;
      display: inline-block;
      margin: 0 15px 15px 0;
    }

    .img-wrap img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .img-wrap::after {
      content: "";
      position: absolute;
      inset: 0;
      background: var(--overlay-color);
    border-radius: 10px;
    }

    .news-episode {  text-align: center;
       margin: 10px auto;
      background: var(--dark-accent);
      border-radius: 5px;
      width: fit-content;
      padding: 3px 10px;
    }

    .news-episode a {color: var(--footer);
    text-decoration: none;
      font-weight: 700;
      text-transform: lowercase;
    }

    .news-episode a:hover {color: var(--sec-bg)}

    .news-quote {text-align: justify;
       margin: 10px 10px auto;
      background: var(--dark-accent);
      border-radius: 3px;
      width: fit-content;
      padding: 12px;
    line-height: 130%;
    color: var(--footer)}

    .news-episode + p {
      padding-top: 0;
      margin-top: 0;
    }

    </style>

    <div class="news-main">
        <div class="news-zagolovok">OUR DARLINGS</div>

      <div class="news-podlozhka">
      <div class="news-date">15/12/2025</div>   <p>Гутен таг, мейне либен фрокенбок! С вами Рональд Уизли и уроки занимательного немецкого. Просто спешу напомнить, что малефика не только замечательная, чудесная и игровая, но еще и образовательная! А поскольку остальные админы так и не планируют доверять мне что-то опаснее зубочистки и сложнее определения, где право, а где лево, давайте же перейдем к тому, что приятно и мне и вам (и нет, это не немецкий).</p>
    <p>Лучшим эпизодом минувших двух недель становится эпизод <a href='https://mmaleficarum.rusff.me/profile.php?id=329'>Альбы</a> и <a href='https://mmaleficarum.rusff.me/profile.php?id=327'>Аларика</a>, в котором наши юные будущие молодожены выясняют, что станет фундаментом их приближающегося союза (спойлер - это не "Пацанки" по вечерам и гамбургеры, так что в такую любовь я не верю). Привычно восхититься слогом и скоростью можно по ссылке:
    <div class="news-episode"><a href='https://mmaleficarum.rusff.me/viewtopic.php?id=912'>fallen star</a></div>
    <p>Властью, данной мне мной (шучу, на самом деле, Джинни, конечно) лучшим постом нарекаю <a href='https://mmaleficarum.rusff.me/viewtopic.php?id=941#p111408'>пост</a> господина красивого, который целует одну, а думает о другой. Я был бы не я, если бы не обратил внимания на душевные терзания <a href="https://mmaleficarum.rusff.me/profile.php?id=265">Райли</a>, и вы не отставайте - бегите читать скорее!<br> <div class="news-quote"> Целуя Лексу, Райли думал о другой женщине, и его безразличие не осталось незамеченным. Тогда он отмахнулся, сказал, что просто устал, ведь не так давно его знатно отметелили в клубе настолько, что пришлось обращаться в госпиталь, и на тот вечер такого оправдания оказалось достаточно. Его хватило ещё на пару дней, а потом... Потом Донован между делом заявил, что уезжает на задание, сроков окончания которого не знает.
    Но когда завершилась одна миссия, тут же началась следующая - и по просьбе самого Райли, квартировали его как можно дальше от магического Лондона. Туда, где ему не придётся встречаться взглядом с той, кому он задолжал много объяснений.</center></div>
    <p>Что дальше, спросите вы? А дальше наши активисты, отличившиеся или постами, или флудом, или обложкой магического журнальчика под названиям "Самые сладкие магвочки и маги" (нет, я не перепутал фандом). Итак, мистером "шелковистые лобковые волосы" становится <a href="https://mmaleficarum.rusff.me/profile.php?id=337">Гилдерой</a>, чьего возвращения мы все с трепетом ждали и знали, что этот златокудрый обаяшка нас не бросит и не подведет! Компанию в таблице ему составил <a href="https://mmaleficarum.rusff.me/profile.php?id=97">Джон</a>, у которого вторым именем является "суровость", а третьим "невозмутимость". И наконец, <a href="https://mmaleficarum.rusff.me/profile.php?id=151">Норман</a>, который устроил истерику и сказал, что порежет себе вены скальпелем, если я его не отмечу. Ну а я человек подневольный, как вы все знаете. Сказали отметить - я отметил, и сделал это с большой любовью и восхищением, между прочим!</p><br>
    <div class="news-activists"><div class="img-wrap"><img src="https://forumstatic.ru/files/0019/84/0e/31326.webp"></div><div class="img-wrap"><img src="https://forumstatic.ru/files/0019/84/0e/85528.webp"></div><div class="img-wrap"><img src="https://64.media.tumblr.com/2ce9529a1b40c056d31387e1f112ad89/tumblr_oljm8ij3YG1ui45hlo1_400.gif"></div></div>
      </div>
    </div>
    [/html]

    0

    4

    [html]
    <style>
    .guestbook-main {width: 100%;
    box-sizing: border-box; 
    background: var(--footer);
    border-radius: 20px;
    min-height: 400px;
    padding: 10px;
    }

    .egg img {width: 159px;
    height: 106px;
    object-fit: contain
    }

    .tooltip {
      position: relative;
      display: inline-block;
      cursor: pointer;
    }

    .tooltip .tooltiptext {
        visibility: hidden;
           height: auto;
        background-color: var(--sec-bg);
        color: var(--textcolor);
        text-align: center;
        border-radius: 6px;
        position: absolute;
        z-index: 999;
        transform: translateX(-50%);
        opacity: 0;
        transition: opacity 0.5s;
        font-size: 9px;
        box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.7);
        line-height: 1.4;
        overflow: hidden;
    top: 10;
    padding: 5px;
    min-width: 100px;
    }

    .tooltip:hover .tooltiptext {
      visibility: visible;
      opacity: 1;
    }

    .guest-header {    font-family: var(--extra-font);
        font-size: 70px;
        line-height: 200%;
    color: var(--link);
    margin-top: -40px;
    z-index: 2;}

    .guest-about {position: absolute;
    width: 617px;
    z-index: 1;
    margin-top: -40px;
    margin-left: 145px;
    background: var(--dark-accent);
    color: var(--sec-bg);
    border-radius: 3px;
    text-align: center;
    padding: 3px}

    .deadlist {
    position: absolute;
    width: 701px;
    height: 40px;
    font-style: normal;
    font-weight: 400;
    font-size: 9px;
    line-height: 9px;
    text-transform: lowercase;
    color: var(--link);
    margin-left: 165px;
    }

    .guest-table {
        margin-top: 60px;
        display: flex;
        flex-direction: row;
    gap: 5px;
    }

    .column1 {
    flex: 3;
    font-style: normal;
    font-weight: 400;
    font-size: 9px;
    line-height: 100%;
    text-align: justify;
    text-transform: lowercase;
    color: var(--sec-bg);
    box-sizing: border-box;
    z-index: 10;
    }

    .column1 span {
    display: block;
    font-style: normal;
    font-weight: 700;
    font-size: 10px;
    line-height: 11px;
    text-align: center;
    text-transform: lowercase;
    color: var(--sec-bg);
    box-sizing: border-box;
    background: var(--light-accent);
    border-radius: 3px;
    padding: 2px;
    margin-bottom: 5px;
    }
    .column1 a {color: var(--sec-bg);}
    .column1 a:hover {color: var(--link)}

    .column2 {width: 54%;
    box-sizing: border-box;}

    .column3 {box-sizing: border-box;
        text-align: center;
    display: flex;
        flex-direction: column;
    width: 22%;
    justify-content: center
    }

    .faces-roles-container {
        display: flex;
        flex-direction: row;
        gap: 5px;
    }
    .faces, .roles {
        flex: 1;
    }

    .faces-title, .roles-title {font-family: var(--extra-font);
    color: var(--dark-accent);
    text-align: center;
    font-size: 20px;
    line-height: 88%
    }

    .faces-body, .roles-body {border-radius: 5px;
    padding: 5px;
    margin-top: 10px;
    background: var(--topic-overlay);
    color: var(--sec-bg);
    text-align: center;
    min-height: 200px;
    text-transform: lowercase;
    }

    .faces-body a, .roles-body a {    position: relative;
        z-index: 10;
    color: var(--dark-accent);}

    .faces-body a:hover, .roles-body a:hover {color: var(--sec-bg);}

    .guidelines {
    width: 474px;
    padding: 3px;
    font-weight: 400;
    font-size: 10px;
    line-height: 88%;
    text-align: center;
    text-transform: lowercase;
    color: var(--sec-bg);
    background: var(--link);
    border-radius: 3px;
    margin-bottom: 10px;
    }

    .guest-links {
        display: flex; 
        flex-wrap: wrap; 
        gap: 5px;
    z-index: 10;
    padding-top: 10px;
    justify-content: center;
    }

    .guest-links a:hover {background: var(--dark-accent)}

    .guest-links a {color: var(--sec-bg);
    background: var(--light-accent);
    padding: 2px 5px;
    border-radius: 3px;
    }

    .guest-ams {
        display: flex;
        flex-wrap: wrap;       
        gap: 5px;         
        justify-content: center;
    }

    .guest-ams img {width: 65px;
    height: 30px;
    background: var(--light-accent);
        object-fit: cover;
        object-position: top center;
    border-radius: 5px;
    position: relative;
    }

    .image-container {
        position: relative; 
        width: 65px;
        height: 30px;
        border-radius: 5px;
        overflow: hidden; 
    }

    .image-container img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: top center;
        background: var(--light-accent);
        border-radius: inherit;
    }

    .overlay {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: var(--overlay-color); 
        border-radius: inherit;
        pointer-events: none;
    }
    </style>

    <div class="guestbook-main">
        <div class="guest-header">Malleus Maleficarum</div>
        <div class="guest-about">hp: dark au // 2nd generation — 2008 рейтинг: NC-21 // мастеринг: смешанный<br>
        победа темного лорда, антиутопия, кастовое общество, конфликт с магглами и активное сопротивление</div>
        <div class="deadlist">список убитых: remus lupin, sirius black, arthur weasley, molly weasley, minerva mcgonagall, rubeus hagrid, bellatrix lestrange, dean thomas, xenophilius lovegood, rodolphus lestrange, arabella figg, vernon dursley, emmeline vance, lucius malfoy, nott sr., corban yaxley, augustus rookwood, walden mcnair, pyrites, travers sr., antonin dolohov, amycus carrow, jugson, avery sr., rosier sr., wilkesj, ludo bagman, sky parkin, cormac mclaggen, orion amari, jasper nottley, maura kettleback, alias gampthorn, corvin thisleby, basil horton, garold dingle, alban filch, verena hope, henry tonks, alastor moody, tbc.</div>
        <div class="guest-table">
            <div class="column1">
                <span><a href="https://mmaleficarum.rusff.me/viewtopic.php?id=5#p5">faq</a> ✦ <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=10">правила</a> ✦ <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=20#p1679">сюжет и хронология</a></span>
                <p>победа тёмного лорда во второй магической войне погрузила великобританию в мрак и хаос. внезапной силой, давшей решительный отпор, стали магглы в кооперации с остатками оф. инициация тайного протокола «молот ведьм» («malleus maleficarum») привела к разрушениям и гибели самого волдеморта. но успех оказался временным. вскоре волшебный мир ждало новое возвращение тёмного лорда, на этот раз — долгосрочное. за минувшие годы магическое общество великобритании в полной мере ощутило на себе тоталитаризм нового режима, репрессии и дискриминацию. население разделено на касты по чистоте крови, а границы закрыты. вся надежды на сопротивление — мятежную сеть, масштабу которой позавидовал бы сам орден феникса.</p>
            </div>
            <div class="column2">
                <div class="guidelines">внешности и роли за гостями придерживаем на сутки; <br>для зарегистрированного профиля - на три дня с возможностью продления до трёх раз</div>
                <div class="faces-roles-container">
                    <div class="faces">
                        <div class="faces-title">внешности</div>
                        <div class="faces-body">

    <b>3.03</b><br>
    Oscar isaac - <a href="https://mmaleficarum.rusff.me/profile.php?id=350">richard avery</a><br>
    <b>30.03</b><br>
    margot robbie - <a href="https://mmaleficarum.rusff.me/profile.php?id=215">ronald weasley</a><br>
    jacob elordi - <a href="https://mmaleficarum.rusff.me/profile.php?id=215">ronald weasley</a>
    </div>
                    </div>
                    <div class="roles">
                        <div class="roles-title">роли</div>
                        <div class="roles-body">

    <b>3.03</b><br>
    richard avery - <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=3&p=2#p115402">richard avery</a><br>
    <b>30.03</b><br>
    gwenog jones - <a href="https://mmaleficarum.rusff.me/profile.php?id=215">ronald weasley</a><br>
    ernie macmillan - <a href="https://mmaleficarum.rusff.me/profile.php?id=215">ronald weasley</a><br>
    </div>
                    </div>
                </div>
            </div>
            <div class="column3">
          <div class="guest-ams">
                           <span class="tooltip"><a href="https://mmaleficarum.rusff.me/profile.php?id=5"> <div class="image-container"><img src="https://upforme.ru/uploads/001c/3b/dd/226/593755.gif"><div class="overlay"></div>
            </div></a><span class="tooltiptext">куратор сопротивления и наших сердечек, сюжетник</span></span>
               

          <span class="tooltip"><a href="https://mmaleficarum.rusff.me/profile.php?id=27"><div class="image-container">
            <img src="https://upforme.ru/uploads/001c/3b/dd/226/445813.gif">
            <div class="overlay"></div>
        </div></a><span class="tooltiptext">куратор мунго и подрывник наших мозгов</span></span>

         <span class="tooltip"><a href="https://mmaleficarum.rusff.me/profile.php?id=161"> <div class="image-container">
            <img src="https://upforme.ru/uploads/001c/3b/dd/226/43499.gif">
            <div class="overlay"></div>
        </div>
    </a><span class="tooltiptext">куратор пожирателей и азартный мотиватор</span></span>

          <span class="tooltip"><a href="https://mmaleficarum.rusff.me/profile.php?id=215"> <div class="image-container">
            <img src="https://upforme.ru/uploads/001c/3b/dd/226/274665.gif">
            <div class="overlay"></div>
        </div>
    </a><span class="tooltiptext">куратор домп и нашего чувства прекрасного</span></span>
    </div>

          <div class="guest-links">
                    <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=33#p4607">внешности</a> <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=64#p5558">должности</a> <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=844#p101443">сюжетные персонажи</a> <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=3">нужные</a> <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=9#p9">шаблон анкеты</a> <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=4">хочу к вам</a>
                </div>

    <div class="egg"><img src="https://forumstatic.ru/files/0014/d2/5e/46986.png"></div>
            </div>
        </div>
    </div>

    [/html]
    занять роль и/или внешность

    Код:
    внешность — <a href="ссылка">ник</a><br>
    Код:
    роль — <a href="ссылка">ник</a><br>

    [hideprofile]

    0

    5

    https://forumstatic.ru/files/0014/d2/5e/70413.png https://forumstatic.ru/files/0014/d2/5e/28969.png
    https://forumstatic.ru/files/0014/d2/5e/41225.png

    Отредактировано кися-пися (2026-02-28 17:40:14)

    +1

    6

    https://forumstatic.ru/files/0014/d2/5e/14885.png https://forumstatic.ru/files/0014/d2/5e/88939.png https://forumstatic.ru/files/0014/d2/5e/91094.png
    https://forumstatic.ru/files/0014/d2/5e/90643.png
    https://forumstatic.ru/files/0014/d2/5e/84309.png

    0

    7

    https://forumstatic.ru/files/0014/d2/5e/90643.png
    имя, добро пожаловать в реальный мир.
    не забудь прихватить с собой волшебную палочку, стратегический запас огненного виски и немного безоара. заполни коды ниже для завершения регистрации в системе и начинай свою историю. но помни: «когда-то нам придётся решать, на чьей мы стороне» (с) а. дамблдор

    — при желании создай в теме анкеты отдельные сообщения под хронологию и личную коллекцию плюшек (графики, плашек и т.д.)

    #1 список персонажей. укажи касту - pb (чистокровный), hb (полукровный), mb (магглорождённый), ph (получеловек), sq (сквиб), ol (вне закона), mg (маггл); лояльность - rs (resistance — сопротивление), de (death eaters — пс), nt (neutral — нейтрал). обратите внимание - сначала идёт фамилия, через запятую имя.

    Код:
    [url=ссылка на профиль][b]фамилия, имя (англ)[/b][/url] [sup]год рождения[/sup] - каста, лояльность.

    #2 внешность.

    Код:
    имя актрисы/актера (англ) - [url=ссылка на профиль]имя персонажа (англ)[/url]

    #3 занятость.
    указать отдельно от кода организацию и должность или вид деятельности

    Код:
    [url=ссылка на профиль]имя персонажа[/url]

    #4 личное звание.

    background

    Код:
    <img alt="">

    lz

    Код:
    <div class="lz"> <div class="lz-name">
    <a href="ссылка на анкету">имя фамилия, возраст цифрой</a></div> 
    <div class="lz-about">свободное описание с указанием <a href="ССЫЛКА НА ПАРУ">пары</a>, ну если есть.</div>
    <div class="lz-caste">pure-blood / half-blood / muggle-blood / outlaw / part-human (оставить нужное)</div></div>

    emoji

    Код:
    <img alt="">

    #5 твинки
    ссылка на сообщение в теме твинков - создается самостоятельно
    заполняется даже в случае, когда персонаж всего один (не заполните - не будет полного оформления профиля с плашкой). для твинка - даём ссылку на существующее сообщение, созданное с более раннего профиля

    Код:
    <div class="plashka"><img alt=""> <a href="ссылка на сообщение в теме твинков" class="ank"><span>maleficas et earum haeresim</a></span></div></a>
    

    0

    8

    https://forumstatic.ru/files/0014/d2/5e/70413.png

    Код:
    [align=center][url=https://mmaleficarum.rusff.me/][img]https://forumstatic.ru/files/0014/d2/5e/70413.png[/img][/url][/align]

    https://forumstatic.ru/files/0014/d2/5e/28969.png

    Код:
    [align=center][url=https://mmaleficarum.rusff.me/][img]https://forumstatic.ru/files/0014/d2/5e/28969.png[/img][/url][/align]

    https://forumstatic.ru/files/0014/d2/5e/41225.png

    Код:
    [align=center][url=https://mmaleficarum.rusff.me/][img]https://forumstatic.ru/files/0014/d2/5e/41225.png[/img][/url][/align]

    0

    9

    https://upforme.ru/uploads/0014/d2/5e/2/424651.jpg

    0

    10

    [html]<div style="position: relative; width: 100%; max-width: 800px; margin: 0 auto; font-family: var(--second-family); color: white; border-radius: 10px; overflow: hidden; box-shadow: 0 0 10px rgba(0,0,0,0.6);">
      <!-- Фон с затемнением -->
      <div style="background-image: url('https://upforme.ru/uploads/001c/3b/dd/27/319825.jpg'); background-size: cover; background-position: center; padding: 40px 20px; position: relative;">
        <!-- Затемняющая подложка -->
        <div style="background: rgba(0, 0, 0, 0.70); padding: 30px; border-radius: 10px;">

       <!-- Основной текст -->
    <div style="font-size: 42px; font-family: 'Cyrano', serif; line-height: 1.7; text-align: center; color: #689629">Sláinte!</div>
    <div style="font-size: 16px; font-family: var(--second-family); text-align: center; margin-top: -5px; letter-spacing: 1px; font-style: italic;">ваше здоврье!</div>
    <br>
          <div style="font-size: 12px; font-family: var(--second-family); line-height: 1.7; text-align: justify;">
            <p style="text-indent: 20px;">Нет-нет, это не опечатка там выше. Просто Падрейг О'Малефик перебрал с Гиннессом и несёт какую-то полную белиберду... Или нет? Разгадайте анаграммы внизу, напишите, что между ними общего и получите 50 галлеонов на счёт. А тот, кто ответит самым первым и правильно, заработает ровно сотню. Ответы принимаются <b style="color:#689629;">до 31 марта</b>. <br> ! Обратите внимание: количество слов и количество букв в них совпадает с оригинальными фразами, но в некоторых анаграммах буквы перемешались между словами.</p>

            <p> 
    1. лвко паиствраеш калов  <br>
    2. йваад чиунотаст <br>
    3. чы тво ощботе<br>
    4. веиен мя лретч  <br>
    5. леси ватзар ндоиега нк ненасатт  <br>
    6. раскмиса жно е евсйо атаексфтро<br>
    7. очсин о сожкет <br>
    8. висамло резеч татто чом<br>
    9. чиот дибт дьалеш нерывив удуш<br>
    10.  лосмотьдо есв топщреа
    </p>

          </div>
        </div>
      </div>
    </div>[/html]

    шаблон сдачи ответов:

    0

    11

    Код:
    <!-- Всплывающее окно -->
    <script>
    const ghosts = [
      { img: "https://forumstatic.ru/files/0014/d2/5e/44322.png", text: "Níl aon tintéan mar do thintéan féin", reward: "Награда: 200 галлеонов", weight: 50 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/48891.png", text: "Go n-éirí do shaothar leat.", reward: "Награда: 100 галлеонов", weight: 30 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/56730.png", text: "Go spreag an saol thú.", reward: "Награда: полное оформление профиля на заказ", weight: 15 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/53994.png", text: "Croí folláin agus gob fliuch!", reward: "Награда: аватарка", weight: 5 },
      
      { img: "https://forumstatic.ru/files/0014/d2/5e/58603.png", text: "Go maire tú an céad.", reward: "Награда: 100 галлеонов", weight: 50 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/78340.png", text: "Go n-éirí leat!", reward: "Награда: полное оформление профиля из магазина", weight: 30 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/78256.png", text: "Grá agus sonas duit.", reward: "Награда: 200 галлеонов", weight: 15 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/94876.png", text: "Go dtaga do ríocht!", reward: "Награда: спасение от чистки при втором предупреждении", weight: 5 },
    
      { img: "https://forumstatic.ru/files/0014/d2/5e/17944.png", text: "Go n-éirí an bóthar leat", reward: "Награда: 100 галлеонов", weight: 50 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/82610.png", text: "Bealach glan romhat.", reward: "Награда: запрет ставить себя в шапку флуда (можно передарить)", weight: 30 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/95858.png", text: "Go sáraí tú na scáileanna.", reward: "Награда: личный подарок от Финнигана, по договорённости", weight: 3 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/62498.png", text: "Go bhfás do eagna.", reward: "Награда: 50 баллов противостояния", weight: 5 },
    
      { img: "https://forumstatic.ru/files/0014/d2/5e/94503.png", text: "Go lean an inspioráid thú.", reward: "Награда: 200 галлеонов", weight: 50 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/57399.png", text: "Go n-éirí leat.", reward: "Награда: бесплатно придержать внешность на месяц", weight: 5 },
    { img: "https://forumstatic.ru/files/0014/d2/5e/97746.png", text: "Nár laga Dia do lámh!", reward: "Награда: добавить стикеры по твоему выбору в форумный стикерпак", weight: 15 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/39911.png", text: "Rath agus glóir duit.", reward: "Награда: 50 баллов противостояния", weight: 5 },
    
      { img: "https://forumstatic.ru/files/0014/d2/5e/44783.png", text: "Go líonfaidh do chupán.", reward: "Награда: 150 галлеонов", weight: 50 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/63690.png", text: "Go méadaí Dia do stór!", reward: "Награда: бесплатная отсрочка в квест", weight: 10 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/72303.png", text: "Solas agus neart duit.", reward: "Награда: загрузить песню для эпизода в проигрыватель", weight: 15 },
      { img: "https://forumstatic.ru/files/0014/d2/5e/71470.png", text: "Fad saol agat, gob fliuch, agus bás in Éirinn!", reward: "Награда: аватарка", weight: 5 }
    ];
    
    // шанс появления призрака (0-1)
    const ghostChance = 0.2;
    
    // Функция выбора призрака с учётом веса
    function getRandomGhost() {
      const totalWeight = ghosts.reduce((sum, ghost) => sum + ghost.weight, 0);
      let random = Math.random() * totalWeight;
      for (let ghost of ghosts) {
        if (random < ghost.weight) return ghost;
        random -= ghost.weight;
      }
    }
    
    // Функция показа окна
    function showGhost() {
      const ghost = getRandomGhost();
      const popup = document.createElement("div");
      popup.className = "ghost-popup";
      popup.innerHTML = `
        <img src="${ghost.img}">
        <p>${ghost.text}</p>
        <button>попросить подарок</button>
      `;
      document.body.appendChild(popup);
      popup.querySelector("button").addEventListener("click", () => {
        const bbcode = `[img]${ghost.img}[/img]\n${ghost.reward}`;
        navigator.clipboard.writeText(bbcode);
        popup.remove();
      });
    }
    
    // Функция генерации случайного времени появления (10–120 секунд)
    function getRandomDelay() {
      return Math.floor(Math.random() * (120000 - 10000)) + 10000;
    }
    
    
    const cooldown = 30 * 60 * 1000;
    
    document.addEventListener("DOMContentLoaded", function() {
    
      const lastGhostTime = localStorage.getItem("lastGhostTime");
      const now = Date.now();
    
      if (lastGhostTime && now - lastGhostTime < cooldown) {
        return; // кулдаун ещё не прошёл
      }
    
      if (Math.random() < ghostChance) {
        setTimeout(() => {
          showGhost();
          localStorage.setItem("lastGhostTime", Date.now());
        }, getRandomDelay());
      }
    
    });
    
    </script>

    0

    12

    Код:
    /* Стиль всплывающего окна */
      .ghost-popup {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background: rgba(59, 71, 67, 0.95);
        color: #f8f8f8;
        padding: 20px;
        border: 2px solid #9f9d77;
        border-radius: 12px;
        box-shadow: 0 0 25px #9f9d77;
        text-align: center;
        z-index: 9999;
        width: 320px;
        animation: fadeIn 1s ease-in-out;
      }
    
      .ghost-popup img {
        max-width: 100%;
        border-radius: 8px;
        margin-bottom: 10px;
      }
    
      .ghost-popup button {
        margin-top: 10px;
        background: #9f9d77;
        border: none;
        color: white;
        padding: 6px 12px;
        border-radius: 6px;
        cursor: pointer;
        font-weight: bold;
      }
    
      .ghost-popup button:hover {
        background: #b48b4b;
      }
    
      @keyframes fadeIn {
        from {opacity: 0;}
        to {opacity: 1;}
      }

    0

    13

    кастомизация профиля

    Код:
    <style>
    /* === Панель выбора === */
    .color-pickers {
      position: fixed;
      display: flex;
      flex-direction: column;
      gap: 8px;
      align-items: end;
      top: 8px;
      right: 8px;
    }
    
    .color-pickers-button {
      width: 32px;
      height: 32px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: .2s ease;
      position: fixed;
    }
    .color-pickers-button::before {
      content: '\f53f';
      font: normal 900 16px/100% 'Font Awesome 6 Pro';
      color: rgba(255 255 255 / .74);
    }
    
    .color-inputs-container {
      display: none;
      flex-direction: column;
      gap: 12px;
      background: rgba(0 0 0 / .87);
      padding: 12px;
      border-radius: 8px;
    margin-top: 20px;
    }
    .color-inputs-container.visible { display: flex; }
    
    .color-group {
      display: flex;
      gap: 6px;
      align-items: center;
    }
    
    .color-swatch {
      width: 24px;
      height: 24px;
      border-radius: 4px;
      cursor: pointer;
      transition: .2s ease;
      position: relative; 
      z-index: 1;
    }
    .color-swatch:hover {
      opacity: .6;
    }
    
    .color-swatch::after {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      background: rgba(0,0,0,0.8);
      color: #fff;
      font-size: 10px;
      padding: 4px 8px;
      border-radius: 4px;
      white-space: nowrap;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.2s, bottom 0.2s;
      z-index: 9999999;
    }
    
    .color-swatch:hover::after {
      opacity: 1;
      bottom: 150%; 
    }
    
    .color-swatch {
      position: relative;
    }
    
    .reset-btn {
      width: 24px;
      height: 24px;
      border-radius: 4px;
      background: rgba(255 255 255 / .12);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
    }
    .reset-btn::before {
      content: '\f00d';
      font: normal 900 16px/100% 'Font Awesome 6 Pro';
      color: rgba(255 255 255 / .74);
    }
    .reset-btn:hover { background: rgba(255 255 255 / 1); }
    .reset-btn:hover::before { color: rgba(0 0 0 / .87); }
    
    
    /* ==== ПРЕВЬЮ ЦВЕТОВ ДЛЯ 4 ТЕМ ==== */
    .color-group[data-profile-theme] .color-swatch[data-p-theme="1"] { background:#F5F3E5; }
    .color-group[data-profile-theme] .color-swatch[data-p-theme="2"] { background:#2C2D2A; }
    .color-group[data-profile-theme] .color-swatch[data-p-theme="3"] { background:#979363; }
    .color-group[data-profile-theme] .color-swatch[data-p-theme="4"] { background:#D4CFB2; }
    
    /* ==== ТЕМЫ ОФОРМЛЕНИЯ ПРОФИЛЯ ==== */
    
    /* ТЕМА 1 — Светлая*/
    html.profile-theme-1 {
         --profile-light: #AEBCBF;
    --profilebg: #F5F3E5;
      --profile-light-accent: rgba(245, 243, 229, 0);
     --profilelinkhover: #D1A35C;
     --profilelink: #979363;
      --profiletext: #3F3D3E;
    --profileplashka: #F5F5F5;
    --profileflds: #92713C;
        --profile-overlay: rgba(245, 243, 229, 0.95);
    --posts: url("https://forumstatic.ru/files/0014/d2/5e/41598.png");
    --messages: url("https://forumstatic.ru/files/0014/d2/5e/33092.png");
    --likes: url("https://forumstatic.ru/files/0014/d2/5e/48914.png");
    --money: url("https://forumstatic.ru/files/0014/d2/5e/80939.png");
    --emoji: url("https://forumstatic.ru/files/0014/d2/5e/41482.png");
    }
    
    /* ТЕМА 2 — Тёмная */
    html.profile-theme-2 {
    --profilebg: #2C2D2A;
    --profileflds: #979363;
      --profile-light: #AEBCBF;
      --profiletext: #D4CFB2;
        --profile-overlay: rgba(67, 79, 77, 0.95); 
     --profile-light-accent: rgba(67, 79, 77, 0);
     --profilelinkhover: #D1A35C;
     --profilelink: #979363;
    --profileplashka: #F5F5F5;
    --posts: url("https://forumstatic.ru/files/0014/d2/5e/90537.png");
    --messages: url("https://forumstatic.ru/files/0014/d2/5e/36354.png");
    --likes: url("https://forumstatic.ru/files/0014/d2/5e/43670.png");
    --money: url("https://forumstatic.ru/files/0014/d2/5e/71415.png");
    --emoji: url("https://forumstatic.ru/files/0014/d2/5e/87746.png");
    }
    
    /* ТЕМА 3 — Тёмный фон светлый градиент */
    html.profile-theme-3 {
    --profilebg: #2C2D2A;
    --profileflds: #979363;
        --profile-overlay: rgba(67, 79, 77, 0.95);
      --profile-light: #AEBCBF;
      --profiletext: #D4CFB2;
        --profile-overlay: rgba(245, 243, 229, 0.95);
     --profilelinkhover: #D1A35C;
     --profilelink: #979363;
    --profileplashka: #F5F5F5;
    --posts: url("https://forumstatic.ru/files/0014/d2/5e/90537.png");
    --messages: url("https://forumstatic.ru/files/0014/d2/5e/36354.png");
    --likes: url("https://forumstatic.ru/files/0014/d2/5e/43670.png");
    --money: url("https://forumstatic.ru/files/0014/d2/5e/71415.png");
    --emoji: url("https://forumstatic.ru/files/0014/d2/5e/87746.png");
    }
    
    
    /* ТЕМА 4 — Тёмный градиент светлый фон*/
    html.profile-theme-4 {
    --profile-light: #AEBCBF;
    --profilebg: #F5F3E5;
     --profilelinkhover: #D1A35C;
     --profilelink: #979363;
      --profiletext: #3F3D3E;
    --profileplashka: #F5F5F5;
    --profileflds: #92713C;
        --profile-overlay: rgba(67, 79, 77, 0.95); 
     --profile-light-accent: rgba(67, 79, 77, 0);
    --posts: url("https://forumstatic.ru/files/0014/d2/5e/41598.png");
    --messages: url("https://forumstatic.ru/files/0014/d2/5e/33092.png");
    --likes: url("https://forumstatic.ru/files/0014/d2/5e/48914.png");
    --money: url("https://forumstatic.ru/files/0014/d2/5e/80939.png");
    --emoji: url("https://forumstatic.ru/files/0014/d2/5e/41482.png");
    }
    
    </style>
    
    
    <!-- === ПАНЕЛЬ ПАЛИТРЫ === -->
    <div class="color-pickers">
      <div class="color-pickers-button" title="стиль профиля"></div>
    
      <div class="color-inputs-container">
    
        <!-- Темы профиля -->
        <div class="color-group" data-profile-theme>
          <div class="color-swatch" data-p-theme="1" title="светлая тема"></div>
          <div class="color-swatch" data-p-theme="2" title="тёмная тема"></div>
          <div class="color-swatch" data-p-theme="3" title="тёмное тело светлый фон"></div>
          <div class="color-swatch" data-p-theme="4" title="светлое тело тёмный фон"></div>
    <div class="color-swatch" data-p-theme="5" title="сине-коричневый градиент"></div>
    <div class="color-swatch" data-p-theme="6"title="коричнево-синий градиент"></div>
        </div>
    
        <!-- Сброс -->
        <button type="button" class="reset-btn" title="Сброс"></button>
    
      </div>
    </div>
    
    
    <script>
    const d = document;
    const s = d.querySelector.bind(d);
    const a = d.querySelectorAll.bind(d);
    
    /* === Открыть/скрыть меню === */
    s('.color-pickers').onclick = e => {
      if (!e.target.classList.contains('color-swatch') &&
          e.target !== s('.reset-btn')) {
        s('.color-inputs-container').classList.toggle('visible');
      }
    };
    
    /* ====== ПЕРЕКЛЮЧЕНИЕ ТЕМ ПРОФИЛЯ ====== */
    a('.color-group[data-profile-theme] .color-swatch').forEach(btn => {
      btn.onclick = () => {
        const num = btn.dataset.pTheme;
    
        // снять старые
        d.documentElement.classList.remove(
          'profile-theme-1',
          'profile-theme-2',
          'profile-theme-3',
          'profile-theme-4',
    'profile-theme-5',
    'profile-theme-6'
        );
    
        // включить новую
        d.documentElement.classList.add('profile-theme-' + num);
    
        // сохранить
        localStorage.setItem('profileTheme', num);
      };
    });
    
    // восстановление при загрузке
    const savedPTheme = localStorage.getItem('profileTheme');
    if (savedPTheme) {
      d.documentElement.classList.add('profile-theme-' + savedPTheme);
    }
    
    /* === Сброс === */
    s('.reset-btn').onclick = () => {
      d.documentElement.classList.remove(
        'profile-theme-1',
        'profile-theme-2',
        'profile-theme-3',
        'profile-theme-4',
    'profile-theme-5',
    'profile-theme-6'
      );
      localStorage.removeItem('profileTheme');
    };
    </script>

    0

    14

    п-паранойя (стиль 1)

    Код:
    @import url(style_cs.css);
    
    /* шрифты бланш */
    @import url(https://forumstatic.ru/files/001a/28/10/55678.css); 
    
    /* Иконический шрифт */
    @import url('https://fonts.googleapis.com/css2?family=Material+Icons+Outlined');
    
    /* Font Awesome */
    @import url('https://kit-pro.fontawesome.com/releases/v6.6.0/css/pro.min.css');
    
    @font-face {
      font-family: 'Tsarevich';
      src: url('https://forumstatic.ru/files/0014/d2/5e/13589.ttf') format('truetype');
      font-weight: normal;
      font-style: normal;
    }
    
    .across-text {
      font-family: 'Tsarevich', serif;
    }
    
    /****************************************
    Чистый стиль by Alex Kolmar (бродяга)
    ****************************************/
    
    /* Полезные сервисные настройки
    -------------------------------------------------------------*/
    
    .acchide,
    #pun-index #pun-main h1,
    #pun-navlinks h2,
    #pun-pagelinks h2,
    #pun-status h2,
    #pun-ulinks h2,
    .punbb .forum h2,
    .punbb .multipage .topic h2,
    .punbb dl.post-sig dt span,
    .punbb p.crumbs strong,
    .punbb .divider hr,
    .punbb .required label em,
    .punbb .formsubmit label,
    .punbb .submitfield label,
    .punbb .modmenu label,
    #pun-userlist .main h2 {
      font-size: 0;
      height: 0;
      width: 0;
      line-height: 0.0;
      position: absolute;
      left: -9999px;
      overflow: hidden;
    }
    
    #pun:after,
    .punbb .container:after,
    .punbb .post-links ul:after,
    .punbb .main div.inline:after,
    .punbb .post-box:after,
    .punbb .linksb:after {
      clear: both;
      content: ".";
      display: block;
      height: 0;
      visibility: hidden;
      overflow: hidden;
      line-height: 0.0;
      font-size: 0;
    }
    
    
    /* Основные переменные
    ------------------------------------------*/
    
    :root {
        --body-bg-img: url(https://forumstatic.ru/files/0014/d2/5e/56249.png);
      --shapka-img: url(https://forumstatic.ru/files/0014/d2/5e/95585.png?v=1);
      --category-img: url(https://forumstatic.ru/files/0014/d2/5e/18344.png);
      --eggs-img: url(https://forumstatic.ru/files/0014/d2/5e/46986.png);
    --body-bg: #2C2D2A;
      --pun-bg: #F5F3E5;
      --footer: #434F4D;
      --podforum: #D4CFB2;
      --icon-old: rgba(213, 208, 179, 0.2);
      --sec-bg: #D4CFB2;
    --sec-bg-op: rgba(231, 232, 227, 0.7);
        --overlay-color: rgba(180, 139, 75, 0.5); 
      --light-accent: #979363;
      --dark-accent: #B48B4B;
      --link: #979363;
      --link-hover: #B48B4B;
        --profile-overlay: rgba(245, 243, 229, 0.95);
    --topic-overlay: rgba(151, 147, 99, 0.5);
      --textcolor: #3B4745;
         --profile-light: #AEBCBF;
    --profilebg: #F5F3E5;
      --profile-light-accent: rgba(245, 243, 229, 0);
     --profilelinkhover: #D1A35C;
     --profilelink: #979363;
      --profiletext: #3F3D3E;
    --profileplashka: #F5F5F5;
    --plashka-img: url(https://forumstatic.ru/files/0014/d2/5e/66176.png);
    --profileflds: #92713C;
    --profile-bg-img: url(https://forumstatic.ru/files/0014/d2/5e/95383.png);
    --posts: url("https://forumstatic.ru/files/0014/d2/5e/41598.png");
    --messages: url("https://forumstatic.ru/files/0014/d2/5e/33092.png");
    --likes: url("https://forumstatic.ru/files/0014/d2/5e/48914.png");
    --money: url("https://forumstatic.ru/files/0014/d2/5e/80939.png");
    --emoji: url("https://forumstatic.ru/files/0014/d2/5e/41482.png");
      --pwidth: 220px;
      --pad1: 10px 20px;
      --pad2: 5px 20px;
      --pad3: 5px 10px;
      --main-font: "Arial", sans-serif;
      --extra-font: "Tsarevich", sans-serif;
    }
     
    
    /* Темная тема */
    
    .dark {
    --podforum: #525252;
    --body-bg: #2C2D2A;
    --pun-bg: #F5F3E5;
      --footer: #434F4D;
      --icon-old: rgba(213, 208, 179, 0.2);
     --sec-bg: #D4CFB2;
    --sec-bg-op: rgba(231, 232, 227, 0.7);
        --overlay-color: rgba(180, 139, 75, 0.5); 
    --topic-overlay: rgba(151, 147, 99, 0.5);
      --link: #979363;
      --link-hover: #B48B4B;
      --profilehover: #98ABB1;
      --light-blue: #AEBCBF;
      --link-hover-op: rgba(63, 61, 62, 0.5);
      --light-accent: #979363;
      --dark-accent: #B48B4B;
      --very-light-accent: #D4D5D0;
      --textcolor: #3B4745;
    --profilebg: #2C2D2A;
    --profileflds: #979363;
        --profile-overlay: rgba(67, 79, 77, 0.95);
      --profile-light: #AEBCBF;
      --profiletext: #D4CFB2;
      --profile-light-accent: rgba(67, 79, 77, 0);
     --profilelinkhover: #D1A35C;
     --profilelink: #979363;
    --profileplashka: #F5F5F5;
    --posts: url("https://forumstatic.ru/files/0014/d2/5e/90537.png");
    --messages: url("https://forumstatic.ru/files/0014/d2/5e/36354.png");
    --likes: url("https://forumstatic.ru/files/0014/d2/5e/43670.png");
    --money: url("https://forumstatic.ru/files/0014/d2/5e/71415.png");
    --emoji: url("https://forumstatic.ru/files/0014/d2/5e/87746.png");
      --body-bg-img: url(https://forumstatic.ru/files/0014/d2/5e/43433.png);
      --shapka-img: url(https://forumstatic.ru/files/0014/d2/5e/84479.png);
      --category-img: url(https://forumstatic.ru/files/0014/d2/5e/19045.png);
      --eggs-img: url(https://forumstatic.ru/files/0014/d2/5e/17188.png);
    --fire-img: url(https://forumstatic.ru/files/0014/d2/5e/38581.png);
    }
    
    .dark .tablica {    height: 646px;
        margin-top: -492px;
    }
    
    .dark .eggs {top: 309px;}
    .dark .forum-name {display: none;}
    .dark .about {margin-top: 417px;}
    .dark .gen-info {display: none;}
    .dark .b-episode {    top: 187px;}
    .dark .b-post {top: 119px;}
    .dark .acts {    top: 233px;}
    .dark .spirit_nav-wrap {margin-top: 298px!important;}
    .dark .res {top: 62px;}
    .dark .de {top: 104px;}
    .dark .spirit_nav-wrap_quests {top: 297px;}
    .dark #pun {background: var(--body-bg);}
    .dark .about {color: var(--dark-accent);}
    .dark .news-comment {color: var(--pun-bg);}
    .dark #pun-navlinks a {color: var(--link);}
    .dark #pun-navlinks a:hover {color: var(--dark-accent);}
    .dark #pun-ulinks a {color: var(--dark-accent);}
    .dark #pun-ulinks a:hover {color: var(--link);}
    .dark .punbb {color: var(--link)}
    .dark .podforum {background: var(--link-hover);
    color: var(--sec-bg)!important;}
    .dark .podforum a {color: var(--sec-bg)!important;}
    .dark .podforum a:hover {color: var(--podforum)!important;}
    .dark #pun-index .hasicon tr {background: var(--link)!important;
    color: var(--textcolor)!important;}
    .dark .tcl h3 a {color: var(--textcolor)!important;}
    .dark .tcl h3 a:hover {color: var(--sec-bg)!important;}
    .dark .lastpost-link, .dark .lastpost {
        color: var(--textcolor);}
    .dark .lastpost-link a, .dark .lastpost a {
        color: var(--textcolor);}
    .dark tr.inew div.icon {
      background: var(--textcolor) url() no-repeat top center;
    }
    .dark #pun-index .category h2 {color: var(--dark-accent);}
    .dark li#onlinelist {color: var(--link);}
    .dark li#onlinelist a {color: var(--link);}
    .dark li#onlinelist a:hover {color: var(--dark-accent);}
    .dark #html-footer {background: var(--link);}
    .dark .post h3 a {color: var(--body-bg);}
    .dark .FNTslider {background: var(--body-bg);}
    .dark .quote-box, .dark .code-box {background: var(--link);
    color: var(--body-bg)!important;}
    .dark .quote-box {color: var(--body-bg)!important;}
    .dark .code-box a {color: var(--body-bg)!important;}
    .dark .code-box a:hover {color: var(--sec-bg);}
    .dark .quote-box cite a {color: var(--body-bg)!important;}
    .dark .quote-box cite {background: var(--dark-accent);}
    .dark .quote-box cite a:hover {color: var(--sec-bg)!important;}
    .dark input.button,
    .dark #pun-admain input.button,
    .dark #sub4,
    .dark input[type="button"],
    .dark input[type="submit"] {
     color: var(--body-bg);
    }
    .dark .pa-fld5 {color: var(--profiletext);}
    .dark a.lastpost-link:hover {
        color: var(--sec-bg) !important;
    }
    .dark .quote-box a {
        color: var(--body-bg) !important;
    }
    
    .dark .quote-box a:hover {
        color: var(--sec-bg) !important;
    }
    .dark .unread-notifications #notifications-wrap table a {color: var(--footer)}
    .dark .unread-notifications #notifications-wrap table a:hover {color: var(--sec-bg)}
    .dark .online-list {color: var(--link)}
    
    /* Global
    ------------------------------------------*/
    
    /* Применяется ко всем элементам */
    
    * {
      margin: 0;
      padding: 0;
      border: none;
      text-size-adjust: 100%;
      -moz-text-size-adjust: 100%;
      -webkit-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
      scrollbar-width: thin;
      scrollbar-color: var(--link-hover) var(--sec-bg);
    }
    
    /* прокрутка хром etc */
    
    *::-webkit-scrollbar {
      width: 7px;
      height: 7px;
    }
    
    *::-webkit-scrollbar-track {
      background-color: var(--sec-bg);
    }
    
    *::-webkit-scrollbar-thumb {
      background-color: var(--link);
    }
    
    *::-webkit-scrollbar-thumb:active {
      background: var(--link-hover);
    }
    
    /* выделение текста */
    
    ::selection {
      background: var(--link);
      color: var(--pun-bg);
    }
    
    :focus {
      outline: none;
    }
    
    
    del {
        opacity: 0.7;
        filter: blur(2px);
        text-decoration: none;
        transition: all .3s linear 0s;
    }
    
    del:hover {
        opacity: 1;
        filter: none;
        text-decoration: none;
    }
    
    /* все ссылки */
    
    a,
    .punbb #pun-admain a {
      text-decoration: none;
      color: var(--link);
    font-weight: bold;
      transition: all .2s linear 0s;
    }
    
    a:hover,
    .punbb #pun-admain a:hover {
      color: var(--link-hover);
    }
    
    /* все заголовки */
    
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    p,
    blockquote,
    pre {
      margin: 0;
    }
    
    h1,
    h2 {
      padding: 10px 20px;
      font-weight: normal;
      text-align: center;
    }
    
    
    .multipage h1, .multipage h2 {
       display: none;
    }
    
    
    ul,
    dl,
    li,
    dd,
    dt {
      list-style: none;
    }
    
    address,
    em {
      font-style: normal;
    }
    
    /* выключить список модераторов, отредактировано etc */
    
    .modlist,
    .lastedit,
    .punbb div#pun-live-rusff,
    .punbb .topic a.sharelink {
      display: none;
    }
    
    /* модальные окна, репутация, закладки etc */
    
    #tags .container,
    .post_report,
    .post_reputation,
    #MyBookmarks,
    .inner.popup_graffiti,
    .pun-modal .modal-inner,
    .punbb-admin #pun-admin-award-form .inner {
      background: var(--sec-bg);
    }
    
    /* Формы
    ------------------------------------------- */
    
    /* ОФОРМЛЕНИЕ КНОПОК */
    
    input.button,
    #pun-admain input.button,
    #sub4,
    input[type="button"],
    input[type="submit"] {
      padding: 2px 10px;
      cursor: pointer;
      transition: all .2s linear 0s;
    background: var(--light-accent);
    border-radius: 5px;
    font-size: 10px;
    text-transform: lowercase;
    color: var(--pun-bg);
    border: 1px solid var(--dark-accent);
    font-weight: bold;
    }
    
    input.button:hover,
    #pun-admain input.button:hover,
    #sub4:hover,
    input[type="button"]:hover,
    input[type="submit"]:hover {background: var(--pun-bg);
    color: var(--textcolor);
    border: 1px solid var(--dark-accent);
    }
    
    /* ОФОРМЛЕНИЕ ПОЛЕЙ ВВОДА */
    
    input[type="text"],
    input[type="password"],
    textarea,
    select {
      padding: 2px 5px;
      border: 1px solid var(--dark-accent);
    background: var(--sec-bg);
    border-radius: 5px;
    font-family: var(--main-font);
    }
    
    textarea,
    input,
    select,
    optgroup {
      font-size: 11px;
    }
    
    optgroup {
      font-weight: bold;
    }
    
    /* флажки и чекбоксы */
    
    .checkfield input[type="checkbox"],
    .radiofield input[type="radio"] {
      margin: 0 3px;
    }
    
    p[class="checkfield"] *,
    div[class="checkfield"] *,
    fieldset[class="radiofield"] * {
      height: 20px;
      vertical-align: middle;
    }
    
    .formal .container {
      padding: var(--pad1);
    }
    
    .formsubmit {
      padding: 0;
      margin: 10px 0 0 0;
    }
    
    .formsubmit input,
    .formsubmit a,
    .formsubmit span {
      margin: 0 6px 0 0;
    }
    
    fieldset {
      border: none;
    }
    
    fieldset legend {
    text-transform: lowercase;
    }
    
    fieldset fieldset {
      border: none;
      margin: 0;
      padding: 0 0 8px 0
    }
    
    .fs-box {
      padding: 15px 0;
    }
    
    .fs-box p,
    .fs-box fieldset {
      padding: 0 0 8px 0;
    }
    
    .fs-box .post h3 {margin-bottom: 10px}
    
    .inline .inputfield,
    .inline .selectfield,
    .inline .passfield {
      float: left;
      margin-right: 10px;
    }
    
    .inline .infofield {
      clear: both
    }
    
    .datafield br {
      display: none
    }
    
    .required label,
    .datafield span.input {
      font-size: 10px;
    }
    
    textarea,
    .longinput input {
      width: 64%;
      margin: 0;
    }
    
    .hashelp {
      position: relative;
    }
    
    
    /* Админка
    ------------------------------------------*/
    
    .punbb-admin .adcontainer,
    .punbb-admin .adformal {
      border: none;
    }
    
    
    /* Тело форума
    ------------------------------------------*/
    
    /* фон */
    
    html {
      background: var(--body-bg) url() no-repeat top center;
    }
    
    /* заплатка для фиксированного фона */
    
    body::before {
      content: "";
      display: block;
      position: fixed;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      min-width: 100vw;
      min-height: 100vh;
      z-index: -10;
      background: var(--body-bg-img)  no-repeat top center/cover;
    }
    
    /* тело */
    
    #pun {
      margin: 40px auto;
      width: 1000px;
      background: var(--pun-bg);
    border-radius: 30px;
    margin-top: 498px;!important;
    overflow: visible;
    }
    
    /* внутреннее тело */
    
    .punbb {
      font: 11px Arial;
    color: var(--textcolor);
    }
    
    /* настройки внутренних блоков */
    
    .punbb > div .container {
      padding: var(--pad1);
    }
    
    /* Навигационные ссылки */
    
    #pun-navlinks {}
    
    #pun-navlinks a {color: var(--textcolor);
    font-weight: 400;}
    #pun-navlinks a:hover {color: var(--link);
    font-weight: 400;}
    
    #pun-navlinks .container {
    font-family: var(--extra-font);
        font-style: normal;
        font-weight: 400;
        font-size: 18px;
        line-height: 16px;
        text-align: center;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        position: relative;
        z-index: 5;
        height: 28px;
    }
    
    #pun-navlinks li {
      padding: 0 5px;
      display: inline;
    }
    
    /* Пользовательские ссылки */
    
    #pun-ulinks a {color: var(--textcolor);
    font-weight: 400;}
    #pun-ulinks a:hover {color: var(--link);
    font-weight: 400;}
    
    #pun-ulinks .container {
      text-align: center;
    font-family: var(--main-font);
    font-style: normal;
    font-weight: 400;
    font-size: 10px;
    line-height: 11px;
    text-align: center;
    letter-spacing: 0.1em;
    text-transform: lowercase;
    margin-top: -25px;
    position: relative;
    z-index: 5;
    }
    
    #pun-ulinks li {
      padding: 0 5px;
      display: inline;
    }
    
    /* Статус */
    
    #pun-status {}
    
    #pun-status span {
      white-space: nowrap;
      margin-right: 5px;
    }
    
    /* Хлебные крошки */
    
    .crumbs.container {}
    #pun-crumbs2 p.container {font-weight: 700;
        font-size: 11px;}
    
    /* Копирайт */
    
    #pun-about {}
    
    #pun-about .container {
      text-align: center;
    }
    
    
    /* Главная форумная таблица
    ------------------------------------------*/
    
    .main table {
    table-layout: fixed;
        width: 100%;
        letter-spacing: 0.01em;
        z-index: 2;
        position: relative;
    }
    
    #pun-index .main table {    color: var(--pun-bg);}
    
    .main th {
      padding: 5px 10px;
    display: none;
    }
    
    .main td {
      padding: 10px;
    }
    
    
    td.tc2, td.tc3 {
        font-weight: normal !important;
        font-size: 1em !important;
    text-align: center;
        padding-right: 100px !important;
    }
    
    #pun-index td.tc2, #pun-index td.tc3 {    color: transparent;}
    
    .tcl {
      width: 66%;
    }
    
    
    
    .tcl h3 a {
    font-family: var(--extra-font);
        font-style: normal;
        font-size: 28px;
        font-weight: 400;
        text-align: center;
        color: var(--dark-accent);
    }
    
    .tcl h3 a:hover {color: var(--sec-bg);}
    
    .tc2,
    .tc3,
    .tcmod {
      text-align: right;
      width: 6%;
    }
    
    #pun-index .tc2,
    #pun-index .tc3,
    #pun-index .tcmod {
      text-align: right;
      width: 0%;
    }
    
    .tcr {
    width: 35%;
        text-align: right;
    }
    
    #pun-searchtopics .tcl,
    #pun-modviewforum .tcl {
      width: 40%
    }
    
    #pun-searchtopics .tc2 {
      text-align: left;
      width: 10%;
    }
    
    #pun-debug table .tcl {
      width: 15%;
    }
    
    #pun-debug .tcr {
      width: 90%;
    }
    
    
    #pun-index  .hasicon tr{     background: var(--textcolor) !important;
        border-radius: 15px !important;
        margin-bottom: 15px;
        display: block;
    color: var(--sec-bg);
    }
    
    #pun-index .tcmod {
      visibility: hidden;
    }
    
    /* аватар */
    
    .punbb td .user-avatar, #pun-index td .user-avatar {
    
    }
    
    .punbb td .user-avatar .avatar-image {
       filter: grayscale(100%);
    }
    
    .lastpost-link, .lastpost {
              text-align: right;
        color: var(--sec-bg);
    text-transform: lowercase;
    }
    
    .lastpost-link {
       font-size: 12px;
       font-weight: 700;
             text-align: right;
        color: var(--sec-bg);
    }
    
    .lastpost-link a:hover {color: var(--link-hover);}
    
    /* Иконки */
    
    .intd {
        display: flex; /* включаем flex */
        align-items: center; /* вертикальное центрирование */
    }
    
    
    #pun-index div.icon {
        margin-left: 570px;
       }
    
    div.icon {
      position: absolute;
      width: 19px;
      height: 19px;
      border-radius: 50%;
      background: var(--icon-old) url() no-repeat top center;
    margin-left: 465px;
    }
    
    tr.inew div.icon {
      background: var(--link) url() no-repeat top center;
    }
    
    tr.isticky div.icon {
      background: var(--dark-accent) url() no-repeat top center;
    }
    
    tr.iclosed div.icon {
      background: var(--icon-old) url() no-repeat top center;
    }
    
    
    /* Пагинация (Переключаемые страницы, Новая тема + Опрос, Подписка)
    --------------------------------------------------------------------------------------------------- */
    
    .multipage {
      margin-top: 10px;
    }
    
    .linkst {
      position: relative;
      padding: var(--pad2);
      display: flex;
      justify-content: space-between;
    }
    
    .linkst .pagelink {}
    
    .linkst .postlink {
      text-align: right;
    }
    
    .linksb {
      position: relative;
      padding: var(--pad2);
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
    }
    
    .linksb .pagelink {
      order: -1;
    }
    
    .subscribelink {
      width: 100%;
      text-align: right;
    }
    
    .linksb noindex {
      order: 1;
    }
    
    .linksb .postlink {
      margin-left: auto;
      text-align: right;
    }
    
    /* Модераторское меню, RSS, Atom */
    
    .modmenu .container {
      padding: var(--pad3);
      text-align: right;
    }
    
    .modmenu .container strong {
      float: left;
    }
    
    .modmenu input {
      margin-left: 10px;
    text-transform: lowercase
    }
    
    
    select#mod-options
    {font-size: 10px}
    /* Главная
    ------------------------------------------*/
    
    /* скрыть "форум, тем, сообщений" */
    
    #pun-index thead {
      display: none;
    }
    
    /* категория */
    
    #pun-index .category {
        position: relative;
    }
    
    #pun-index .category h2 {
    font-family: var(--extra-font);
        font-style: normal;
        font-weight: 400;
        font-size: 36px;
        text-transform: uppercase;
        color: var(--textcolor);
        text-align: center;
        margin: 0 auto;
    position: relative;
    top: 20px;
    }
    
    #pun-index .category::before {
        content: '';
        background: var(--category-img);
        position: absolute;
        width: 446px;
        height: 62px;
        background-size: contain;
        background-repeat: no-repeat;
        top: 24px;
        z-index: 1;
        left: 57%;
        transform: translateX(-50%);
    }
    
    /* Статистика */
    
    #pun-stats {}
    
    #pun-stats .container {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        justify-content: center;
        font-size: 10px;
    color: var(--dark-accent);
    text-transform: lowercase;
    letter-spacing: 0.1em;
    }
    
    .online-list {
        font-size: 10px;
        color: var(--textcolor);
    text-transform: lowercase;
    }
    
    #pun-stats .container a {    color: var(--textcolor);
    font-weight: 400;}
    
    /* заголовок статистики */
    
    #pun-stats h2 {
       display: none;
    }
    
    /* всего тем, всего сообщений */
    
    #pun-stats li.item1,
    #pun-stats li.item2 {
      clear: both;
        background: var(--dark-accent);
        padding: 5px 25px;
        border-radius: 3px;
    color: var(--pun-bg);
    text-transform: lowercase;
    }
    
    
    /* зарегистрированных, последний зарегистрировавшийся */
    
    #pun-stats li.item3,
    #pun-stats li.item4 {
        background: var(--dark-accent);
        padding: 5px 25px;
        border-radius: 3px;
    color: var(--pun-bg);
    text-transform: lowercase;
    }
    
    #pun-stats li.item4 a {color: var(--pun-bg);
    font-weight: 400;}
    #pun-stats li.item4 a:hover {color: var(--footer)}
    
    /* активны, посетили за сутки */
    
    li#onlinelist {
      margin-top: 10px;
      text-align: justify;
        flex-grow: 1;
        width: 100%;
        color: var(--textcolor);
    }
    
    /* Шапка
    ------------------------------------------*/
    
    #pun-title {}
    
    /* скрыть заголовок в шапке */
    
    #pun-title .title-logo {
      display: none;
    }
    
    /* содержимое шапки в html-верх */
    
    .tablica {
       width: 1000px;
        height: 580px;
        position: absolute !important;
        margin-top: -557px;
    }
    
    .tablica::before{
    content: "";
        position: absolute;
        inset: 0;
        background: var(--shapka-img);
        background-size: contain;
        background-repeat: no-repeat;
        z-index: -1;
    }
    
    
    .about {width: 345px;
        font-family: var(--main-font);
        font-size: 10px;
        font-weight: 400;
        text-align: justify;
        text-transform: lowercase;
        color: var(--sec-bg);
        margin-left: 315px;
        margin-top: 483px;
        position: absolute;
        background: var(--textcolor);
        border-radius: 10px;
        padding: 8px;
    }
    
    .dragon {
        width: 873px;
        height: 413px;
        position: absolute;
        left: 36px;
        top: -198px;
    z-index: 4;
    }
    
    .dragon img {
        width: 100%;
        height: auto;
    }
    
    .b-episode {    font-family: var(--main-font);
        position: absolute;
        z-index: 2;
        top: 253px;
        right: 709px;
        display: flex;
        flex-direction: column-reverse;
        align-items: flex-start;
    }
    
    
    .b-episode-link { text-transform: lowercase;
        font-size: 9px;
        text-align: right;
        background: var(--textcolor);
        padding: 2px 20px 5px 20px;
        height: fit-content;
        border-radius: 7px;
        display: inline-block;
    }
    
    .b-episode-link a {font-weight: normal;}
    
    .b-episode-title {font-family: var(--extra-font);
        font-size: 20px;
        letter-spacing: 0.05em;
        color: var(--dark-accent);
        top: -7px;
        left: -25px;
        position: relative;
    }
    
    .b-post {    position: absolute;
        width: 345px;
        height: 60px;
        top: 185px;
        left: 633px;
        display: flex;
        flex-direction: column-reverse;
    z-index: 5;
    }
    
    .bestpost-txt {
    font-family: var(--main-font);
        font-style: normal;
        font-weight: 400;
        font-size: 10px;
        line-height: 11px;
        text-align: justify;
        text-transform: lowercase;
        color: var(--link);
        height: 60px;
        padding: 10px;
    }
    
    .b-post-inner { 
        background: var(--textcolor);
        border-radius: 10px;
        width: 300px;
        padding: 5px;}
    
    .b-post-title {    position: absolute;
        font-family: var(--extra-font);
        font-style: normal;
        font-size: 20px;
        text-align: center;
        text-transform: uppercase;
        padding-bottom: 3px;
        padding-top: 4px;
        color: var(--dark-accent);
        border-radius: 3px;
        letter-spacing: 0.05em;
        top: 44px;
        left: 269px;
    }
    
    .gen-info {
        font-family: var(--main-font);
        font-style: normal;
        font-weight: bold;
        font-size: 11px;
        text-align: center;
        text-transform: lowercase;
        color: var(--link);
        margin-top: 377px;
        margin-left: 544px;
        position: absolute;
    }
    
    .forum-name {     font-family: var(--extra-font);
        font-style: normal;
        font-size: 30px;
        line-height: 29px;
        text-align: left;
        text-transform: uppercase;
        color: var(--dark-accent);
        margin-left: 544px;
        padding-top: 322px;
        position: absolute;
    }
    
    .res {    position: absolute;
        background: url(https://forumstatic.ru/files/0014/d2/5e/62786.png?v=1) no-repeat center center;
        background-size: contain;
        width: 38px;
        height: 70px;
        z-index: 10;
        display: flex;
        justify-content: center;
        top: 128px;
        left: 105px;
    }
    
    .res-points {    color: var(--textcolor);
        font-size: 10px;
           height: fit-content;
        width: 52px;
        padding: 3px 10px;
        z-index: 12;
        background: var(--link);
        border-radius: 5px;
        margin-top: 40px;
        margin-left: 55px;
        font-weight: bold !important;}
    
    .res a {color: var(--pun-bg);
    font-weight: bold;
    z-index: 12;}
    .res a:hover {color: var(--textcolor);}
    
    .de {position: absolute;
        background: url("https://forumstatic.ru/files/0014/d2/5e/92701.png?v=1")no-repeat center center;
        background-size: contain;
        width: 41px;
        height: 70px;
        z-index: 10;
        display: flex;
        justify-content: center;
    top: 170px;
        left: 50px;
    }
    
    .de-points {    color: var(--textcolor);
        font-size: 10px;
        height: fit-content;
        width: 52px;
        padding: 3px 10px;
        z-index: 12;
        background: var(--link);
        border-radius: 5px;
        margin-top: 31px;
        margin-right: 58px;
        font-weight: bold !important;}
    
    .de a {color: var(--textcolor);
    font-weight: bold;
    z-index: 12;}
    .de a:hover {color: var(--pun-bg);}
    
    .acts  {
        display: flex;
        position: absolute;
        gap: 10px;
        top: 299px;
        left: 974px;
        flex-direction: column;
    }
    
    .acts a {
    width: 44px;
        height: 44px;
        display: block;
        outline-offset: 2px;
        border-radius: 50%;
        transition: all .5s ease-in-out 0s;
    position: relative;
    }
    
    .acts a:hover {
    opacity: 1} 
    
    
    .acts a::before {
        content: '';
        width: 44px;
        height: 44px;
        position: absolute;
        border-radius: 50%;
        background: var(--overlay-color);
        z-index: 2;
    }
    
    .acts a:hover:before {
        opacity: 0;
            border-radius: 50%;
      background: var(--textcolor);
    opacity: 0
    }
    
    .acts img {
        width: 44px;
        height: 44px;
        object-fit: cover;
        object-position: top center;
            border-radius: 50%;
    filter: grayscale(1);
            }
    
    .eggs {    content: '';
        background: var(--eggs-img);
        background-size: contain;
        width: 187px;
        height: 124px;
        position: absolute;
        top: 375px;
        left: 402px;}
    
    .fire {    content: '';
        background: var(--fire-img);
        background-size: contain;
        width: 187px;
        height: 124px;
        position: absolute;
        top: 375px;
        left: 402px;}
    
    /* Объявление
    ------------------------------------------*/
    
    #pun-announcement {}
    
    /* скрываем слово "объявление" */
    
    #pun-announcement h2 {
      display: none;
    }
    
    
    /* Футер
    ------------------------------------------*/
    
    #html-footer {background: var(--footer);
    height: 90px;
        border-bottom-left-radius: 30px;
        border-bottom-right-radius: 30px;}
    
    #html-footer .container {padding-bottom: 10px;
        width: 98%;}
    
    /* баннеры */
    
    .banners {
        padding: var(--pad1);
        height: 31px;
        overflow-y: auto;
        overflow-x: hidden;
    }
    
    .banners a {
      opacity: .7;
    }
    
    .banners a:hover {
      opacity: 1;
    }
    
    .banners img {
    border-radius: 7px;
    opacity: 0.5
    }
    
    .banners img:hover {opacity: 1}
    
    /* Топик
    ------------------------------------------*/
    
    .post {
      margin-top: 10px;
    }
    
    .toppost,
    .topicpost {
      margin-top: 0;
    }
    
    /* контейнер поста */
    
    .post .container {
      display: flex;
      flex-wrap: wrap;
      align-items: start;
    }
    
    .punbb .post td {
      border: 0px transparent !important;
    }
    .post-content td {border: 0px transparent !important;}
    
    /* дата и номер поста */
    
    .post h3 {    border-radius: 3px;
        background: var(--link);
        color: var(--pun-bg);
        font-size: 11px;
        margin: 0 20px;}
    
    .post h3 a {      color: var(--pun-bg);;
    font-weight: normal;
    }
    
    .post h3 span {
      padding: var(--pad2);
      display: block;
    }
    
    /* номер поста */
    
    .post h3 strong {
      float: right;
      text-align: right;
      font-weight: normal;
        font-size: 11px;
    }
    
    /* Автор */
    
    .post-author {
    width: 220px;
    height: fit-content;
        padding-bottom: 20px;
        text-align: center;
        box-sizing: border-box;
       background: var(--footer);
    background-size: contain;
        margin-bottom: 20px;
        position: relative;
        border-radius: 5px;
    filter: drop-shadow(0px 4px 4px rgba(63, 61, 62, 0.2));
    }
    
    
    .post-author ul {
        background-color: var(--profilebg);
        border-radius: 5px;
        width: 200px;
        height: fit-content;
        margin-left: 10px;
        margin-top: 30px;
    min-height: 150px;
    }
    
    .pa-author {font-family: var(--extra-font);
        color: var(--profilelink);
        font-size: 26px;
        text-align: center;
        margin-top: 40px;
        padding-top: 3px;
        width: 200px;
            text-transform: lowercase;
    }
    
    .pa-author a {color: var(--profilelinkhover);
    font-weight: normal;}
    .pa-author a:hover {color: var(--profilelink)}
    
    .pa-title {    font-size: 8px;
        font-family: var(--main-font);
        text-transform: lowercase;
    padding-bottom: 3px;
        letter-spacing: 0.1em;
        width: 200px;
        text-align: center;
    color: var(--profiletext);
    }
    
    .pa-avatar img {border: 1px solid var(--profilelink);
    max-width: 180px;
    max-height: 180px;}
    
    .pa-online,
    .pa-last-visit {}
    
    .pa-respect .fld-name {
      font-size:0!important;
    }
    
    .pa-respect img {
        opacity: 0 !important;
        width: 0px !important;
        height: 0px !important;
        display: block !important;
    }
    
    
    .pa-online, .pa-last-visit {
        display:none!important;
    }
    
    .post-author .pa-respect a:before {
    content: "";
        height: 10px;
        width: 11px;
        background-image: var(--likes);
        background-repeat: no-repeat;
        background-size: contain;
        vertical-align: middle;
        display: block;
        margin-top: -10px;
    }
    
    .pa-posts .fld-name {content: var(--messages); 
    width: 100%;
      height: auto;
    }
    
    .pa-fld3 .fld-name {content: var(--money);
    width: 10px;
    height: 10px;
    }
    
    .pa-fld6 .fld-name {content: var(--posts);
    width: 10px;
    height: 10px;
    }
    
    .pa-fld2 {font-family: var(--main-font);
        font-size: 9px;
        letter-spacing: 0.1em;
        text-align: justify;
    padding-left: 5px;
        padding-right: 4px;
    color: var(--profiletext);}
    
    .lz {display: flex;
    flex-direction: column;
        gap: 4px;}
    
    .lz-caste {    background: var(--profilelink);
        height: 10px;
        width: 105px;
        display: block;
        text-align: center;
        margin: 0 auto;
        font-size: 8px;
        border-radius: 2px;
        letter-spacing: 0.1em;
        color: var(--profilebg);
        font-weight: bold;
        margin-top: 4px;
        margin-bottom: 0px;}
    
    .lz-name {color: var(--dark-accent);
        font-family: var(--main-font);
        font-size: 12px;
        font-weight: 700;
    margin-top: 4px;
    text-transform: lowercase;
    text-align: center;
    }
    
    .lz-about {
        align-self: center;
    }
    
    
    .pa-fld4 {
        height: 26px;
        color: var(--sec-bg);
        font-size: 8px;
        letter-spacing: 0.1em;
        text-align: center;
        text-transform: lowercase;
    }
    
    
    
    .plashka {
        position: relative;
        width: 220px;
        height: 26px;
        margin-left: -10px;
    }
    
    .plashka img {
        width: 100%;
        height: 100%;
        object-fit: contain;
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
    }
    
    .plashka img[src=""],
    .plashka img:not([src]) {
        content: var(--plashka-img);
    }
    
    .pa-fld5 img[src=""],
    .pa-fld5 img:not([src]) {
        content: var(--emoji);
    }
    
    .pa-fld1 {
        width: 100%;
        height: 100%;
        /* padding-bottom: 20px; */
        text-align: center;
        box-sizing: border-box;
        margin-bottom: 20px;
        position: absolute;
        border-radius: 5px;
        filter: drop-shadow(0px 4px 4px rgba(63, 61, 62, 0.2));
        z-index: -1;
        inset: 0;
    }
    
    .pa-fld1::after {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: 5px;
        background: linear-gradient(
            180deg,
            var(--profile-light-accent) 75%,
            var(--profile-overlay) 88%
        );
    }
    
    
    .pa-fld1 img[src=""],
    .pa-fld1 img:not([src]) {
        content: var(--profile-bg-img);
    }
    
    .pa-fld1 img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 5px;
    }
    
    .plashka a {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;    
        justify-content: center; 
        text-align: center;
        padding: 0 10px;    
        word-break: break-word;     
    }
    
    .pa-fld4 img {width: 200px;
    height: 26px;
    object-fit: cover}
    
    .pa-fld4 a:hover {color: var(--profilehover)}
    
    .pa-fld5 {
        content: '';
        position: absolute;
        width: 34px;
        height: 34px;
        left: 50%;
        transform: translateX(-50%);
        bottom: -16px; 
        z-index: 3;
    }
    
    .pa-fld5 img {width: 34px;
    height: 34px;
    object-fit: contain}
    
    .pa-posts, .pa-respect, .pa-fld3, .pa-fld6 {
    display: inline-flex;
        flex-direction: column;
        align-items: center;
        color: var(--profileflds);
        font-size: 8px;
        margin: 8px 13px;
    width: 10px;
    height: 10px;
    }
    
    .pa-posts span:last-child,
    .pa-respect span:last-child,
    .pa-fld3 span:last-child,
    .pa-fld6 span:last-child {
        color: var(--profileflds);
    width: 10px;
    height: 10px;
    display: flex;
        justify-content: center;
    }
    
    /* Тело поста */
    
    .post-body {
      width: calc(100% - var(--pwidth));
    }
    
    .post-box {
      padding: 10px;
        padding-left: 25px;
    }
    
    .post-links {
      margin-left: var(--pwidth);
      width: 100%;
    }
    
    .post-links ul {
      padding: 0;
      margin-left: calc(var(--pwidth) * -1);
      text-align: right;
    }
    
    .post-links li {
      display: inline;
    }
    
    .post-links li:not(:first-of-type) {
      padding-left: 10px;
    }
    
    .pl-email,
    .pl-website {
      float: left;
    }
    
    .clearer {
      clear: both;
      height: 0;
      font-size: 0;
    }
    
    
    /* Контент поста - цитата, спойлер, таблицы и т.п. */
    
    .punbb .post td {
      border: 0px transparent !important;
    }
    
    pre {
      font: 12px/140% monaco, "bitstream vera sans mono", "courier new", courier, monospace;
    }
    
    .post-content em {
      font-style: italic;
    }
    
    .post .post-content td {
      border-width: 0px !important;
    }
    
    .post-content em.bbuline {
      font-style: normal;
      text-decoration: underline;
    }
    
    .post-content p {
        margin: 0.8em 0;
      padding: 2px;
      line-height: 150%;
      text-align: justify;
    }
    
    .post-content img {
      vertical-align: middle;
    }
    
    .scrollbox {
      width: 100%;
      overflow: auto;
      max-height: 200px;
    }
    
    /* Контейнер спойлера */
    .punbb .post-content .spoiler-box > div {
        position: relative;
        display: inline-block; 
        padding-left: 20px; 
        cursor: pointer; 
        color: var(--textcolor); 
        font-size: 12px;
        font-weight: 400;
        background: transparent;
    }
    
    .post-content .spoiler-box {border: 1px solid var(--dark-accent)}
    
    /* Кружочек (добавляем через ::before) */
    .punbb .post-content .spoiler-box > div::before {
        content: ''; 
        position: absolute;
        left: 0; 
        top: 50%;
        transform: translateY(-50%);
        width: 10px;
        height: 10px;
        background: var(--dark-accent);
        border-radius: 50%;
        cursor: pointer;
    }
    
    /* Для раскрытого состояния (класс visible) */
    .punbb .post-content .spoiler-box > div.visible::before {
        background: var(--link-hover) url();
    
    }
    .post-content .spoiler-box > div.visible {
        content: none !important;
        background: none !important;
    
    }
    
    /* цитата и код */
    
    .quote-box,
    .code-box {
      margin: 14px 0px 15px;
      padding: 5px;
      border-left: 4px solid var(--dark-accent);
      background: var(--sec-bg);
    border-radius: 5px;
    }
    
    .quote-box cite {
    display: block;
        padding: 5px;
        font-weight: bold;
        font-style: normal;
        text-transform: lowercase;
    background: var(--link);
        width: fit-content;
        border-radius: 3px;
        color: var(--sec-bg);
        margin-top: -15px;
    }
    
    .quote-box cite a {color: var(--sec-bg);}
    
    .code-box strong.legend {
      display: block;
      padding-bottom: 5px;
      font-weight: bold;
      font-style: normal;
    }
    
    .post-sig dt {
      border-bottom: 1px solid var(--link-hover);
      width: 300px;
      margin: 10px auto;
    }
    
    /* Форма ответа */
    
    #main-reply {
      box-sizing: border-box;
    padding: 5px;
    }
    
    #tags {
      position: relative;
    }
    
    #tags .container {
      padding: var(--pad3) !important;
      top: 0 !important;
      max-height: 300px;
      overflow: auto;
    }
    
    
    /* Профиль + ЛС
    ------------------------------------------*/
    
    #profile {
       padding: var(--pad1);
    }
    
    #viewprofile tr { 
        display: flex;
        gap: 40px;
    }
    
    #pun-profile h1 {
      display: none;
    }
    
    #profile .container {
      padding-left: 200px;
      min-height: 100px;
    }
    
    #profilenav {
      float: left;
      margin-left: -180px;
    }
    
    #viewprofile h2,
    #profilenav h2 {
       text-align: center;
        font-weight: 400;
        font-size: 12px;
        margin-bottom: 10px;
        background: var(--topic-overlay);
        color: var(--paletext);
        padding: 2px 3px;
        border-radius: 10px;
    }
    
    #profilenav li {
      padding: 0 0 5px;
    }
    
    #viewprofile li {
      padding: 5px 0;
    }
    
    #viewprofile td#profile-left {
        display: flex;
        flex-wrap: wrap;
        width: auto;
        flex-direction: column;
        align-items: center;
        flex-shrink: 0;
        background: var(--topic-overlay);
        padding: 10px 15px;
        border-radius: 10px;
    }
    
    #profile-name {
        font-size: 16px;
            letter-spacing: 0.1em;
    font-weight: 700;
        text-align: center;
    color: var(--link);
        text-transform: lowercase;
    }
    
    #viewprofile td#profile-right {
        display: flex;
        flex-flow: column;
        flex-wrap: wrap;
        box-sizing: border-box;
        gap: 10px;
        flex-direction: row;
    }
    
    
    #profile-right li {
       display: flex;
        flex-direction: column;
        flex-wrap: wrap;
        flex-grow: 1;
        justify-content: center;
        gap: 10px;
        text-align: center;
        background: var(--topic-overlay);
        padding: 0 5px;
        border-radius: 10px;
    }
    
    
    #profile-right li span {
        flex-shrink: 1;
        text-align: center;
    }
    
    
    
    #profile-left li strong, #profile-right li strong {
      font-weight: normal !important;
      padding-left: 0 !important;
    }
    
    #profile-left #profile-name {font-family: var(--extra-font);
        margin-bottom: -5px;}
    
    img.avatardemo {
      float: right;
      margin: 0 0 8px 18px;
    }
    
    #pun-messages .clearer {
      display: none;
    }
    
    /* Прочие страницы
    ------------------------------------------*/
    
    /* Список пользователей */
    
    #pun-userlist .formal,
    #pun-userlist .formal .container {
      margin-bottom: 0;
    }
    
    #pun-userlist .tc2 {
      text-align: left;
      width: 20%;
    }
    
    #pun-userlist .tcl {
      width: 40%
    }
    
    .usertable .container {}
    
    /* Собщения об ошибках */
    
    .info .container {
      padding: var(--pad3);
    }
    
    .info .container .backlink {
      padding-top: 8px;
    }
    
    /* Регистрация */
    
    .info-box {
      margin: 0 0 10px 0;
    }
    
    .info-box * {
      padding: 0 0 5px 0;
    }
    
    .info-box .legend {
      font-weight: bold;
    }
    
    .jGrowl-notification .jGrowl-close {
      position: relative;
      right: 6px;
    }
    
    .tipsy #respect figcaption {
      margin-top: 0;
    }
    
    
    /* Кнопки вверх-вниз
    -------------------------------------------------------*/
    
    .go-up,
    .go-down {
      cursor: pointer;
      z-index: 999;
      position: fixed;
    width: 14px;
    height: 48px;
    border-radius: 7px;
      margin-left: 1010px !important;
      box-sizing: border-box;
      transition: all .3s linear 0s;
    }
    
    .go-up {
      top: 260px;
    background: var(--dark-accent);
    }
    
    .go-down {
      top: 320px;
    background: var(--link);
    }
    
    .go-down:hover,
    .go-up:hover {
      opacity: 1;
    }
    
    /* БыстроПлюсы для Топика */
    .noNull:before {
      content: "+";
      font-size: 9px;
      display: inline-block;
      margin-left: -6px;
      margin-top: 0px;
      position: absolute;
    }
    div .post-rating p>a {
      text-align: center;
      outline: 1px solid transparent;
      font-weight: 700;
      background: url(https://forumstatic.ru/files/001b/a6/d4/26514.svg) no-repeat center;
      background-size: 38px auto;
      position: relative;
      padding-left: 1px;
      z-index: 100;
      width: 38px;
      height: 38px;
      text-align: center;
      font-size: 12px !important;
      display: inline-block;
      vertical-align: middle;
      line-height: 36px;
      letter-spacing: 2px;
       color: var(--link);
       margin-top: 20px
    }
    div.dark-style .post-rating p>a {
      color: #6BC8AF !important;
    }
    div.post-vote {
    
    }
    
    div.post-vote p>a {
      font-size: 0 !important;
      position: absolute;
      cursor: pointer;
      z-index: 200;
      width: 23px;
      height: 23px;
      background: url(https://forumstatic.ru/files/0012/d8/04/75043.png) no-repeat;
      display: block;
      background-size: 100%;
    margin-top: 20px;
    }
    .post.dark-style div.post-vote p>a {
      background: url(https://forumstatic.ru/files/0012/d8/04/38128.png) no-repeat;
      background-size: 100%;
    }
    
    .punbb div.post-vote p {
      padding: var(--pad1)!important;
      margin: 0!important;
    }
    
    
    #plng {
        border: 1px solid var(--light-accent) !important;
        padding: 5px 5px 5px 8px !important;
        margin: 0 20px 0 5px!important;
        border-radius: 10px;
    }

    0

    15

    п-паранойя (стиль 2)

    Код:
    /* Form Buttons © max, the murderer!
    ----------------------------------------------------------------------- */
    
    /* General */
    
    #form-buttons table {
        width: 100% !important;
    background: transparent;
    }
    
    #form-buttons table tr {
        display: flex;
        justify-content: space-between; 
        gap: 4px;
        margin-bottom: 4px;
    }
    
    #form-buttons td {
        position: relative;
        background: none !important;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 24px; 
        height: 24px; 
        margin-bottom: 4px;
    }
    
    #form-buttons td::before {
        font-family: 'Font Awesome 6 Pro';
        font-size: 13px; 
        font-weight: 400; 
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        pointer-events: none;
        z-index: 1;
    }
    
    #form-buttons td:hover::before {
        color: var(--textcolor); 
    }
    
    
    /* Icons */
    
    #button-font::before {
        content: '\f031';
    }
    
    #button-size::before {
        content: '\f894';
    }
    
    #button-bold::before {
        content: '\f032';
    }
    
    #button-italic::before {
        content: '\f033';
    }
    
    #button-underline::before {
        content: '\f0cd';
    }
    
    #button-strike::before {
        content: '\f0cc';
    }
    
    #button-indent::before {
        content: '\f03c';
    }
    
    #button-left::before {
        content: '\f036';
    }
    
    #button-right::before {
        content: '\f038';
    }
    
    #button-center::before {
        content: '\f037';
    }
    
    #button-link::before {
        content: '\f0c1';
    }
    
    #button-spoiler::before {
        content: '\f518';
    }
    
    #button-image::before {
        content: '\f302';
    }
    
    #button-video::before {
        content: '\f144';
    }
    
    #button-hide::before {
        content: '\f30d';
    }
    
    #button-quote::before {
        content: '\f27a';
    }
    
    #button-code::before {
        content: '\f121';
    }
    
    #button-color::before {
        content: '\f53f';
    }
    
    #button-table::before {
        content: '\f009';
    }
    
    #button-smile::before {
        content: '\f118';
    }
    
    #button-keyboard::before {
        content: '\f11c';
    }
    
    #button-addition::before {
        content: '\f0d7';
    }
    
    
    /* Icons */
    
    #button-font::before {
        content: '\f031';
    }
    
    #button-ChangeCase::before {
        content: '\e099';
    }
    
    #button-size::before {
        content: '\f894';
    }
    
    #button-bold::before {
        content: '\f032';
    }
    
    #button-italic::before {
        content: '\f033';
    }
    
    #button-underline::before {
        content: '\f0cd';
    }
    
    #button-strike::before {
        content: '\f0cc';
    }
    
    #button-indent::before {
        content: '\f878';
    }
    
    #button-left::before {
        content: '\f036';
    }
    
    #button-right::before {
        content: '\f038';
    }
    
    #button-center::before {
        content: '\f037';
    }
    
    #button-justify::before {
        content: '\f039';
    }
    
    #button-link::before {
        content: '\f0c1';
    }
    
    #button-spoiler::before {
        content: '\f518';
    }
    
    #button-image::before {
        content: '\f302';
    }
    
    #form-buttons #button-image ~ #button-image::before {
        content: '\f03e' !important;
    }
    
    #button-video::before {
        content: '\f144';
    }
    
    #button-hide::before {
        content: '\f30d';
    }
    
    #button-quote::before {
        content: '\f27a';
    }
    
    #button-code::before {
        content: '\f121';
    }
    
    #button-color::before {
        content: '\f53f';
    }
    
    #button-table::before {
        content: '\f009';
    }
    
    #button-smile::before {
        content: '\f118';
    }
    
    #button-sticker::before {
        content: '\f6fe';
    }
    
    #button-keyboard::before {
        content: '\f11c';
    }
    
    #button-addition::before {
        content: '\f0d7';
    }
    
    #button-files_rusff::before {
        content: '\f15b';
    }
    
    #button-graffiti_rusff::before {
        content: '\f5a9';
    }
    
    #button-mask::before {
        content: '\f630';
    }
    
    #button-dice::before {
        content: '\f522';
    }
    
    
    
    /* Оформление всплывающей  подсказки © Домовой */
    #tooltip {
        position: absolute;
        background-color: var(--sec-bg); 
        z-index: 9999;
        max-width: 200px;
        -moz-border-radius: 4px;
        -khtml-border-radius: 4px;
        -webkit-border-radius: 4px;
        border-radius: 4px;
        font-family: var(--main-font);
        font-size: 12px; 
        display: none;
        color: var(--textcolor); 
        text-align: center;
        padding: 4px;
        text-transform: lowercase;
        box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.7);
    }
    
    /*ссылки в подфорумах*/
    .podforum {
        text-align: center;
        font-size: 10px!important;
        font-weight: 700;
        margin: 5px 0 7px 0 !important;
        padding: 2px;
        border-radius: 3px;
        background: var(--light-accent);
    color: var(--podforum)!important;
    }
    
    .podforum a {color: var(--podforum)!important;
        font-weight: 700;
            font-size: 10px!important;
    }
    
    .podforum a:hover {color: var(--textcolor)!important}
    
    .hvStickerPackModalTabs {background-color: var(--sec-bg)!important}
    
    /* Announcements
    ------------------------------------------------------------------ */
    
    .announcement {display: flex;
        position: relative;
        justify-content: center;
    gap: 10px;
        flex-wrap: wrap;
    }
    
    .news-block {
        width: fit-content;
        min-width: 155px;
        height: 20px;
        background: var(--link);
        border-radius: 3px;
        padding: 5px;
    }
    
    .news-title {
    font-size: 10px;
        color: var(--textcolor);
        text-align: center;
    font-weight: bold;
        letter-spacing: 0.1em;
    }
    
    .news-title a {text-decoration: none;
    color: var(--textcolor);}
    .news-title a:hover {text-decoration: none;
    color: var(--sec-bg-op);}
    
    
    .news-comment {font-size: 8px;
      text-align: center;
        letter-spacing: 0.1em;
    color: var(--pun-bg);
    }
    
    /* Theme switcher © max, the murderer! */
    
    #theme_switcher {
    margin-top: -54px;
        display: flex;
        margin-left: 909px;
        position: absolute;
        z-index: 999;
    }
    
    #theme_switcher li {
        display: inline-block;
        margin-right: 4px;
    }
    
    #theme_switcher li input {
        display: none;
    }
    
    #theme_switcher li label {
        display: block;
        width: 16px; 
        height: 16px;
        background-size: cover;
        background-repeat: no-repeat;
        cursor: pointer;
    }
    
    
    #theme_switcher li input:checked + label {
        border-radius: 5px;
    }
    
    #theme_switcher li label {
        text-indent: -9999px; 
        overflow: hidden;     
    }
    
    #theme_switcher li input#light + label {
        background-image: url('https://forumstatic.ru/files/0014/d2/5e/34939.png');
    }
    
    
    #theme_switcher li input#dark + label {
        background-image: url('https://forumstatic.ru/files/0014/d2/5e/46952.png');
    }
    
    
    
    /*навигация от духа */
       .spirit_nav-wrap {position: absolute;
        z-index: 9;
        margin-left: 98px;
        margin-top: 364px!important;
    }
    
    .nav_button {
    border-radius: 5px;
        text-align: center;
        text-transform: lowercase;
        cursor: pointer;
        transition: all .4s linear 0s;
        color: var(--textcolor);
        width: 95px;
        font-size: 12px;
        font-weight: bold;
        height: fit-content;
        padding: 3px 0;
    background: var(--link);
    }
    
    .nav_button:hover {background: var(--pun-bg)}
    .nav_button.i_active {
    background: var(--link);
    }
    
    .nav_block {
    background: var(--textcolor);
        position: absolute;
        top: calc(100% + 5px);
        border-radius: 10px;
        width: 200px;
        margin-left: -56px;
    display: none;
    }
    
    .nav_block .link {
        padding: 10px;
        display: flex;
        flex-direction: column;
        text-align: center;
        text-transform: lowercase;
        gap: 5px;
        letter-spacing: 0.05em;
    }
    
    .nav_block .link a {
        color:  var(--pun-bg) !important;
        background: var(--dark-accent);
        border-radius: 8px;
        padding: 5px 10px;
        letter-spacing: 0.05em;
    }
    
    .nav_block .link a:hover {
      background: var(--link);
      color: var(--sec-bg)  !important;
    }
    
    .spirit_nav-wrap_quests {
    position: absolute;
        margin: auto;
        width: 95px;
        z-index: 9;
        top: 363px;
        left: 762px;
    z-index: 9999;
    }
    .nav_button_quests:hover {
        background-color: var(--pun-bg);
    }
    
    
    .nav_button_quests {
        background: var(--link);
        border-radius: 3px;
        text-align: center;
        text-transform: lowercase;
        cursor: pointer;
        transition: all .4s linear 0s;
        color: var(--textcolor);
        width: 90px;
        font-size: 12px;
        font-weight: bold;
        height: fit-content;
        padding-bottom: 3px;
        margin-left: 70px;
    }
    
    .nav_block_quests {
        background: var(--textcolor);
        position: absolute;
        top: calc(100% + 5px);
        border-radius: 10px;
        width: 200px;
        display: none;
        margin-left: 14px;
    }
    
    /*реакции*/
    .reactions-container {
        display: flex;
        gap: 4px;
        margin-left: 20px;
            margin-top: 5px;
        background: transparent!important;
    }
    .reactions-root button, .reactions-root [type=button], .reactions-root [type=reset], .reactions-root [type=submit] {
        -webkit-appearance: button;
            border: none !important;
        background-color: var(--sec-bg) !important;
    }
    
    
    .reactions-root {
        padding: 0 5px;
    margin-top: -55px;
    }
    
    .reaction-chip.reaction-chip--clicked {
        border: none !important;
        background-color: var(--sec-bg)!important;
    }
    
    .reactions-root .emoji-mart-category-label span {background: transparent!important}
    .reactions-root .emoji-mart {background: var(--sec-bg-op)!important;
       border: 1px solid var(--textcolor)!important;
    }
    .reactions-root .emoji-mart-search input, .reactions-root .emoji-mart-search input::-webkit-search-decoration, .reactions-root .emoji-mart-search input::-webkit-search-cancel-button, .reactions-root .emoji-mart-search input::-webkit-search-results-button, .reactions-root .emoji-mart-search input::-webkit-search-results-decoration {background: var(--sec-bg-op)!important}
    
    .reactions-root .emoji-mart, .reactions-root .emoji-mart {background: var(--sec-bg)!important}
    
    .hvStickerPackModalTabs {background: var(--pun-bg)!important}
    
    
    .f_links {background: var(--light-accent);
        border-radius: 3px;
        color: var(--pun-bg);
        letter-spacing: 0.05em;
        padding: 2px 3px;
        margin-top: 5px;
        margin-bottom: 5px;
        font-size: 10px;}
    
    .f_links a {
    color: var(--podforum);
    }
    
    .f_links a:hover {
    color: var(--textcolor);
    }
    
    .podforum2 {
        flex: 0 0 auto;
        display: flex
    ;
        flex-wrap: wrap;
        flex-direction: row;
        gap: 2px;
        width: 100% ;}
    
    
    
    /* -------------- смена аккаунтов ---------------*/
    #navprofiles {
      position: relative;
      z-index: 9999;
    }
    
    #pun-navlinks.section .multiacc-profilemenu {
      position: absolute;
      top: 28px!important;
      right: 0px;
      width: max-content;
      height: auto;
      background: var(--pun-bg)!important;
      border-radius: 20px;
      border-inline: 1px solid var(--pale-bg)!important;
      color: var(--textcolor)!important;
      z-index: 9999;
    }
    
    .multiacc-profilemenu li {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 6px 12px;
      gap: 10px;
      width: 100%;
      z-index: 9999;}
    
    .multiacc-profilemenu li a {
      display: block;
      flex-grow: 1;
      text-align: left;
      padding-left: 20px;
      position: relative;
      z-index: 9999;
    color: var(--link)!important;
    }
    
    .multiacc-profilemenu li:first-child {
      background-color: var(--pun-bg)!important;
      font-weight: 700;
      z-index: 9999;
    }
    
    #pun-navlinks.section .multiacc-profilemenu li {
      position: relative;
      display: flex;
      justify-content: space-evenly;
      align-items: flex-end;
      font-size: 0.8rem;
      padding: 6px 16px 10px;
      border-bottom: 1px solid var(--pale-bg)!important;
      top: 0;
      z-index: 9999;
    }
    
    #pun-navlinks.section .multiacc-profilemenu li:last-child {
      border-bottom: 0;
    }
    
    #pun-navlinks.section .multiacc-profilemenu li:hover {
      box-shadow: inset 0px 0px 30px 3px rgba(43, 67, 62, 0.2);
    }
    
    #pun-navlinks.section .multiacc-profilemenu li a {
      color: var(--link);
    }
    
    #pun-navlinks.section .multiacc-profilemenu li a:hover {
      color: #888;
    }
    
    .multiacc-delete-btn {
      background: none;
      border: none;
      cursor: pointer;
      flex-shrink: 0;
      margin-left: auto;
    }
    
    .multiacc-dialog {
      z-index: 9999;
      padding: 10px;
      font-size: 0.8rem;
      background: var(--pun-bg) !important;
      border: 1px solid var(--pale-bg);
      color: var(--textcolor);
    }
    
    .multiacc-dialog > form {
      border: 1px solid #ccc;
      padding: 10px 10px 2px;
    }
    
    .multiacc-dialog input {
      padding: 4px 10px;
      border: 1px solid #b9bfb0;
    }
    
    .multiacc-dialog div {
      display: flex;
      justify-content: center;
    }
    
    .multiacc-dialog div:not(.multiacc-dialog div:last-child) {
      flex-direction: column;
    }
    
    /*новости*/
    .news-post {
      position: relative;
      background: url('https://forumstatic.ru/files/0014/d2/5e/84128.jpg') no-repeat center center;
      background-size: cover;
      padding: 30px;
      border-radius: 15px;
      overflow: hidden;
      color: white;
      max-width: 700px;
      margin: 20px auto;
    }
    
    .news-overlay {
      background: rgba(54, 51, 45, 0.7);
      padding: 20px;
      border-radius: 10px;
    color: var(--sec-bg);
        font-family: var(--font-family);
    }
    
    .news-overlay a {color: #BBB7AF; 
    font-weight: 600;}
    .news-overlay a:hover {color: #b0aba7;
    font-weight: 600;}
    
    .news-overlay h3 {
      margin-top: 0;
      font-size: 28px;
      text-transform: uppercase;
      padding-bottom: 5px;
    font-family: var(--second-family);
    background: transparent;
    text-align: center;
    }
    
    .news-overlay p {
      line-height: 1.6;
      margin-bottom: 1em;
    }
    
    .news-img {
      float: left;
      margin: 0 15px 15px 0;
      width: 150px;
      height: auto;
      border-radius: 10px;
      box-shadow: 0 0 10px rgba(0,0,0,0.5);
    filter: grayscale(100%);
      border: 1px solid #7A7067;
    }
    
    
    .act {  margin: 0 15px 15px 0;
      width: 80px;
      height: 80px;
      border-radius: 10px;
      box-shadow: 0 0 10px rgba(0,0,0,0.5);
    filter: grayscale(100%);
      border: 1px solid #7A7067;}
    
    
    
    /* старые новости */
    .texttable {
    width: 100%; 
        padding: 10px;
        margin: auto;
        background: #d6d6d6;
    border-radius: 10px 10px 10px 10px;    
    border-top: 6px solid #9997ff;
    }
    .ttable {width: 100%;background: #000000b3;color:#e0e0e0;border-radius: 0px 10px 0px 10px;padding: 10px;margin: auto;text-align: center;}
    
    
    .textact {
    width: 100%;
        padding: 10px;
        margin: auto;
        background: #d6d6d6;
        border-radius: 10px 10px 10px 10px;
        border: 1px solid #bdbdbd;
    }
    
    .hst{
    /*width: 100%;*/
        padding: 25px;
        margin: auto;
     background: #6b8f69; 
     background-image: url("https://i.pinimg.com/originals/1e/f1/f1/1ef1f16a698da88566bd88135daaed67.jpg");
        opacity: 0.8;
        border-radius: 10px 10px 10px 10px;
        border-top: 6px solid #6b8f69;
     
    }
    
    .hsttext {
    width: 100%;
    background: #f6f6f6;
    color: #1c1b1d;
    border-radius: 0px 10px 0px 10px;
    padding: 15px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    }
    
    .unread-notifications #notifications-wrap table {color: var(--textcolor)!important;}
    
    .pa-gifts {display: none}
    
    /* личная страница */
    #character {
        width: fit-content !important;
        background: var(--sec-bg);
        z-index: 9999;
    }
    
    /* заголовки галерей */
    .gallery-title {
        text-transform: uppercase;
        background: var(--footer);
        color: var(--pun-bg);
        padding: 5px;
        margin-bottom: 8px;
        border-radius: 5px;
        font-weight: bold;
    }
    
    /* общий блок */
    .general {
        display: flex;
        flex-direction: column;
        color: var(--footer);
        position: relative;
        min-height: 250px;
    }
    
    .general img {
        width: 150px;
        height: 150px;
        object-fit: cover;
        border-radius: 5px;
        border: 1px solid var(--footer);
    }
    
    .general h2 {
        font-weight: normal;
        text-align: center;
        color: var(--dark-accent);
        font-family: var(--extra-font);
        font-size: 25px;
        position: relative;
        top: -12px;
    }
    
    .fraction {
        position: absolute;
        top: 70%;
        width: 200px;
        background: var(--body-bg);
        color: var(--profilebg);
        border-radius: 5px;
        padding: 2px 5px;
    }
    
    .occupation {
        position: absolute;
        top: 82%;
    }
    
    .arcs {
        position: absolute;
        top: 88%;
    }
    
    /* модалка */
    .reveal-modal-bg {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, .8);
        z-index: 100;
        display: none;
    }
    
    .reveal-modal {
        visibility: hidden;
        position: absolute;
        top: 100px;
        left: 20%;
        z-index: 101;
        padding: 30px 40px 34px;
        border-radius: 5px;
        box-shadow: 0 0 10px rgba(0, 0, 0, .4);
    }
    
    /* размеры */
    .reveal-modal.small  { width: 200px; margin-left: -140px; }
    .reveal-modal.medium { width: 400px; margin-left: -240px; }
    .reveal-modal.large  { width: 600px; margin-left: -340px; }
    .reveal-modal.xlarge { width: 800px; margin-left: -440px; }
    
    /* меню */
    .menu-links {
        display: flex;
        gap: 10px;
    }
    
    .menu span {
        display: inline-block;
        padding: 3px 11px;
        border-radius: 5px 5px 0 0;
    }
    
    #submenu {
        display: inline-block;
        padding: 7px;
        font-size: 12px;
        width: 600px;
    }
    
    #submenu,
    .menu span {
        background: var(--post-bg);
        color: var(--footer);
        font-weight: bold;
    }
    
    .menu .tabactive {
        color: var(--profilebg);
        background: var(--footer);
    }
    
    .menu span:hover {
        color: var(--profilebg);
        background: var(--body-bg);
    }
    
    .submenutext {
        display: none;
        overflow-y: auto;
        font-weight: normal;
     max-height: 300px;
    }
    
    /* layout */
    .modal-content {
        display: flex;
        gap: 20px;
        align-items: flex-start; /* важно */
    }
    
    /* левая фиксированная */
    .left-column {
        width: 250px;
        flex-shrink: 0;
    }
    
    /* правая растягивается */
    .right-column {
        flex: 1;
    }
    
    .right-column {
        min-width: 0;
    }
    
    
    /* галереи */
    .plashki-gallery img {
        max-width: 200px;
    }
    
    .phoni-gallery {
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
        width: 300px;
        height: 150px;
        overflow-y: auto;
    }
    
    .gallery-title {
        flex-basis: 100%;
    height: 10px;
    }
    
    .phoni-gallery img {
        width: 100px;
        height: 100px;
        border-radius: 5px;
    }
    
    .icons-gallery {
        display: flex;
        flex-wrap: wrap;
        gap: 5px;
        width: 300px;
        max-height: 350px;
        overflow-y: auto;
    }
    
    .icons-gallery img {
        width: 34px !important;
        height: 34px !important;
        object-fit: contain;
        border-radius: 5px;
    }
    
    /* или если нужен отдельный класс */
    .icons-gallery-img {
        width: 34px !important;
        height: 34px !important;
        object-fit: cover;
        border-radius: 5px;
    }
    /* фоны */
    .fon-light,
    .fon-dark {
        position: relative;
        display: inline-block;
        width: 200px;
    }
    
    .fon-light img,
    .fon-dark img {
        width: 100%;
    }
    
    /* градиенты */
    .fon-light::after,
    .fon-dark::after {
        content: "";
        position: absolute;
        inset: 0;
        pointer-events: none;
    }
    
    .fon-light::after {
        background: linear-gradient(
            rgba(152, 171, 177, 0.5) 10%,
            #AEBCBF 100%
        );
    }
    
    .fon-dark::after {
        background: linear-gradient(
            rgba(146, 141, 138, 0.5) 10%,
            #A09895 100%
        );
    }
    
    .fon-text {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 10px;
        z-index: 2;
        color: var(--profileplashka);
        font-size: 8px;
        letter-spacing: 0.1em;
        pointer-events: none;
    }
    
    /* профиль */
    .profile-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }
    
    .profile-left {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        max-height: 350px;
        overflow-y: auto;
    }
    
    .profile-right {
        display: flex;
        flex-direction: column;
        gap: 30px;
    }
    
    /* твинки */
    .twink {
        display: flex;
        gap: 15px;
        margin-bottom: 15px;
    }
    
    .twink img {
        width: 100px;
        height: 100px;
        object-fit: cover;
        border-radius: 50%;
        flex-shrink: 0;
    }
    
    .twink-text {
        flex: 1;
    }
    
    .coupon {
        display: flex;
        gap: 10px;
        align-items: center;
        padding: 5px;
        margin-bottom: 5px;
        background: var(--topic-overlay);
        border-radius: 8px;
        position: relative;
        overflow: hidden;
        width: 250px;
    }
    
    .coupon-list {
        display: flex;
        flex-wrap: wrap; /* чтобы переносились на новую строку */
        gap: 10px;       /* расстояние между купонами */
    }
    
    /* "перфорация" */
    .coupon::before,
    .coupon::after {
        content: "";
        position: absolute;
        left: 110px; /* граница между картинкой и текстом */
        width: 10px;
        height: 10px;
        background: var(--post-bg);
        border-radius: 50%;
        transform: translateX(-50%);
    }
    
    .coupon::before {
        top: -5px;
    }
    
    .coupon::after {
        bottom: -5px;
    }
    
    /* линия перфорации */
    .coupon-content {
        position: relative;
        padding-left: 10px;
    }
    
    .coupon-content::before {
        content: "";
        position: absolute;
        left: -5px;
        top: 0;
        bottom: 0;
        width: 2px;
        background: repeating-linear-gradient(
            to bottom,
            var(--footer),
            var(--footer) 4px,
            transparent 4px,
            transparent 8px
        );
        opacity: 0.4;
    }
    
    /* картинка */
    .coupon-img img {
        width: 40px;
        height: 40px;
        object-fit: cover;
        border-radius: 6px;
    }
    
    /* текст */
    .coupon-title {
        font-size: 13px;
        font-weight: bold;
        color: var(--link);
    }
    
    .coupon-desc {
        font-size: 11px;
        color: var(--footer);
    }
    
    .coupon-meta {
        font-size: 10px;
        opacity: 0.6;
    }
    
    
    #lp-generator {
        position: fixed;
        inset: 0;
        z-index: 99999;
    }
    
    .lp-overlay {
        position: absolute;
        inset: 0;
        background: rgba(0,0,0,.7);
    }
    
    .lp-box {
        position: relative;
        width: 500px;
        margin: 60px auto;
        background: #222;
        color: #fff;
        padding: 15px;
        border-radius: 10px;
        display: flex;
        flex-direction: column;
        gap: 8px;
    }
    
    .lp-box input,
    .lp-box textarea {
        width: 100%;
        padding: 6px;
        border-radius: 5px;
        border: none;
    }
    
    #lp-output {
        height: 120px;
    }
    
    .lp-box button {
        cursor: pointer;
        padding: 6px;
    }
    
    .reveal-modal .close-reveal-modal {
        font-size: 22px;
        line-height: .5;
        position: absolute;
        top: 8px;
        right: 11px;
        color: #aaa;
        text-shadow: 0 -1px 1px rgba(0,0,0,.6);
        font-weight: bold;
        cursor: pointer;
        text-decoration: none;
    }
    
    /* Стили для плашек с текстом поверх */
    .plashki-container {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
    }
    
    .plashka-item {
        position: relative;
        display: inline-block;
    }
    
    .plashka-item img {
        display: block;
        max-width: 200px;
        height: auto;
    }
    
    .fon-text {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 10px;
        z-index: 2;
        color: var(--profileplashka);
        font-size: 8px;
        letter-spacing: 0.1em;
        pointer-events: none;
        background: rgba(0, 0, 0, 0.3); 
    }
    
    /* Flow Around */
    
    #float {
        display: none;
        position: absolute;
        --width: 120px;
        margin-top: 32px;
        left: calc(50% - var(--width));
        text-align: center;
        background: #e5e5e5 repeat center center;
        border: 1px solid #333;
        padding: 8px 16px;
        z-index: 1;
    }
    
    #float strong {
        display: block;
        margin-bottom: 7px;
    }
    
    #float i {
        font-size: 16px;
        padding: 0 8px;
    }
    
    #float i:hover {
        opacity: .6;
    }

    0

    16

    Код:
    <style>
    /* === Панель выбора === */
    .color-pickers {
      position: fixed;
      display: flex;
      flex-direction: column;
      gap: 8px;
      align-items: end;
      top: 8px;
      right: 8px;
    }
    
    .color-pickers-button {
      width: 32px;
      height: 32px;
      border-radius: 8px;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: .2s ease;
      position: fixed;
    }
    .color-pickers-button::before {
      content: '\f53f';
      font: normal 900 16px/100% 'Font Awesome 6 Pro';
      color: rgba(255 255 255 / .74);
    }
    
    .color-inputs-container {
      display: none;
      flex-direction: column;
      gap: 12px;
      background: rgba(0 0 0 / .87);
      padding: 12px;
      border-radius: 8px;
    margin-top: 20px;
    }
    .color-inputs-container.visible { display: flex; }
    
    .color-group {
      display: flex;
      gap: 6px;
      align-items: center;
    }
    
    .color-swatch {
      width: 24px;
      height: 24px;
      border-radius: 4px;
      cursor: pointer;
      transition: .2s ease;
      position: relative; 
      z-index: 1;
    }
    .color-swatch:hover {
      opacity: .6;
    }
    
    .color-swatch::after {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      background: rgba(0,0,0,0.8);
      color: #fff;
      font-size: 10px;
      padding: 4px 8px;
      border-radius: 4px;
      white-space: nowrap;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.2s, bottom 0.2s;
      z-index: 9999999;
    }
    
    .color-swatch:hover::after {
      opacity: 1;
      bottom: 150%; 
    }
    
    .color-swatch {
      position: relative;
    }
    
    .reset-btn {
      width: 24px;
      height: 24px;
      border-radius: 4px;
      background: rgba(255 255 255 / .12);
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
    }
    .reset-btn::before {
      content: '\f00d';
      font: normal 900 16px/100% 'Font Awesome 6 Pro';
      color: rgba(255 255 255 / .74);
    }
    .reset-btn:hover { background: rgba(255 255 255 / 1); }
    .reset-btn:hover::before { color: rgba(0 0 0 / .87); }
    
    
    /* ==== ПРЕВЬЮ ЦВЕТОВ ДЛЯ 4 ТЕМ ==== */
    .color-group[data-profile-theme] .color-swatch[data-p-theme="1"] { background:#F5F3E5; }
    .color-group[data-profile-theme] .color-swatch[data-p-theme="2"] { background:#2C2D2A; }
    .color-group[data-profile-theme] .color-swatch[data-p-theme="3"] { background:#979363; }
    .color-group[data-profile-theme] .color-swatch[data-p-theme="4"] { background:#D4CFB2; }
    
    /* ==== ТЕМЫ ОФОРМЛЕНИЯ ПРОФИЛЯ ==== */
    
    /* ТЕМА 1 — Светлая*/
    html.profile-theme-1 {
         --profile-light: #AEBCBF;
    --profilebg: #F5F3E5;
      --profile-light-accent: rgba(245, 243, 229, 0);
     --profilelinkhover: #D1A35C;
     --profilelink: #979363;
      --profiletext: #3F3D3E;
    --profileplashka: #F5F5F5;
    --profileflds: #92713C;
        --profile-overlay: rgba(245, 243, 229, 0.95);
    --posts: url("https://forumstatic.ru/files/0014/d2/5e/41598.png");
    --messages: url("https://forumstatic.ru/files/0014/d2/5e/33092.png");
    --likes: url("https://forumstatic.ru/files/0014/d2/5e/48914.png");
    --money: url("https://forumstatic.ru/files/0014/d2/5e/80939.png");
    --emoji: url("https://forumstatic.ru/files/0014/d2/5e/41482.png");
    }
    
    /* ТЕМА 2 — Тёмная */
    html.profile-theme-2 {
    --profilebg: #2C2D2A;
    --profileflds: #979363;
      --profile-light: #AEBCBF;
      --profiletext: #D4CFB2;
        --profile-overlay: rgba(67, 79, 77, 0.95); 
     --profile-light-accent: rgba(67, 79, 77, 0);
     --profilelinkhover: #D1A35C;
     --profilelink: #979363;
    --profileplashka: #F5F5F5;
    --posts: url("https://forumstatic.ru/files/0014/d2/5e/90537.png");
    --messages: url("https://forumstatic.ru/files/0014/d2/5e/36354.png");
    --likes: url("https://forumstatic.ru/files/0014/d2/5e/43670.png");
    --money: url("https://forumstatic.ru/files/0014/d2/5e/71415.png");
    --emoji: url("https://forumstatic.ru/files/0014/d2/5e/87746.png");
    }
    
    /* ТЕМА 3 — Тёмный фон светлый градиент */
    html.profile-theme-3 {
    --profilebg: #2C2D2A;
    --profileflds: #979363;
        --profile-overlay: rgba(67, 79, 77, 0.95);
      --profile-light: #AEBCBF;
      --profiletext: #D4CFB2;
        --profile-overlay: rgba(245, 243, 229, 0.95);
     --profilelinkhover: #D1A35C;
     --profilelink: #979363;
    --profileplashka: #F5F5F5;
    --posts: url("https://forumstatic.ru/files/0014/d2/5e/90537.png");
    --messages: url("https://forumstatic.ru/files/0014/d2/5e/36354.png");
    --likes: url("https://forumstatic.ru/files/0014/d2/5e/43670.png");
    --money: url("https://forumstatic.ru/files/0014/d2/5e/71415.png");
    --emoji: url("https://forumstatic.ru/files/0014/d2/5e/87746.png");
    }
    
    
    /* ТЕМА 4 — Тёмный градиент светлый фон*/
    html.profile-theme-4 {
    --profile-light: #AEBCBF;
    --profilebg: #F5F3E5;
     --profilelinkhover: #D1A35C;
     --profilelink: #979363;
      --profiletext: #3F3D3E;
    --profileplashka: #F5F5F5;
    --profileflds: #92713C;
        --profile-overlay: rgba(67, 79, 77, 0.95); 
     --profile-light-accent: rgba(67, 79, 77, 0);
    --posts: url("https://forumstatic.ru/files/0014/d2/5e/41598.png");
    --messages: url("https://forumstatic.ru/files/0014/d2/5e/33092.png");
    --likes: url("https://forumstatic.ru/files/0014/d2/5e/48914.png");
    --money: url("https://forumstatic.ru/files/0014/d2/5e/80939.png");
    --emoji: url("https://forumstatic.ru/files/0014/d2/5e/41482.png");
    }
    
    </style>
    
    
    <!-- === ПАНЕЛЬ ПАЛИТРЫ === -->
    <div class="color-pickers">
      <div class="color-pickers-button" title="стиль профиля"></div>
    
      <div class="color-inputs-container">
    
        <!-- Темы профиля -->
        <div class="color-group" data-profile-theme>
          <div class="color-swatch" data-p-theme="1" title="светлая тема"></div>
          <div class="color-swatch" data-p-theme="2" title="тёмная тема"></div>
          <div class="color-swatch" data-p-theme="3" title="тёмное тело светлый фон"></div>
          <div class="color-swatch" data-p-theme="4" title="светлое тело тёмный фон"></div>
    <div class="color-swatch" data-p-theme="5" title="сине-коричневый градиент"></div>
    <div class="color-swatch" data-p-theme="6"title="коричнево-синий градиент"></div>
        </div>
    
        <!-- Сброс -->
        <button type="button" class="reset-btn" title="Сброс"></button>
    
      </div>
    </div>
    
    
    <script>
    const d = document;
    const s = d.querySelector.bind(d);
    const a = d.querySelectorAll.bind(d);
    
    /* === Открыть/скрыть меню === */
    s('.color-pickers').onclick = e => {
      if (!e.target.classList.contains('color-swatch') &&
          e.target !== s('.reset-btn')) {
        s('.color-inputs-container').classList.toggle('visible');
      }
    };
    
    /* ====== ПЕРЕКЛЮЧЕНИЕ ТЕМ ПРОФИЛЯ ====== */
    a('.color-group[data-profile-theme] .color-swatch').forEach(btn => {
      btn.onclick = () => {
        const num = btn.dataset.pTheme;
    
        // снять старые
        d.documentElement.classList.remove(
          'profile-theme-1',
          'profile-theme-2',
          'profile-theme-3',
          'profile-theme-4',
    'profile-theme-5',
    'profile-theme-6'
        );
    
        // включить новую
        d.documentElement.classList.add('profile-theme-' + num);
    
        // сохранить
        localStorage.setItem('profileTheme', num);
      };
    });
    
    // восстановление при загрузке
    const savedPTheme = localStorage.getItem('profileTheme');
    if (savedPTheme) {
      d.documentElement.classList.add('profile-theme-' + savedPTheme);
    }
    
    /* === Сброс === */
    s('.reset-btn').onclick = () => {
      d.documentElement.classList.remove(
        'profile-theme-1',
        'profile-theme-2',
        'profile-theme-3',
        'profile-theme-4',
    'profile-theme-5',
    'profile-theme-6'
      );
      localStorage.removeItem('profileTheme');
    };
    </script>

    0

    17

    [hideprofile][html]
      <style>
            .bank-container {
          max-width: 920px;
          width: 100%;
        }
        h1 {
          text-align: center;
          font-weight: 300;
          letter-spacing: 2px;
          color: var(--textcolor);
          margin-top: 0;
          font-size: 2rem;
          font-family: var(--extra-font);
        }
        .subhead {
          text-align: center;
          border-bottom: 1px solid var(--profileplashka);
          padding-bottom: 8px;
          margin-bottom: 8px;
          font-size: 1rem;
          font-family: var(--main-font);
        }
        .columns-wrapper {
          display: flex;
          gap: 10px;
          flex-wrap: nowrap;
        }
        .col {
          background: var(--pun-bg);
          border-radius: 10px;
          padding: 0px 8px 10px;
          border: 1px solid var(--profileplashka);
          width: 50%;
        }
        .col h2 {
          display: flex;
          align-items: center;
            color: var(--textcolor);
          font-weight: 400;
          border-bottom: 2px solid var(--profileplashka);
          margin-top: 0;
          margin-bottom: 10px;
          font-size: 1.7rem;
          font-family: var(--extra-font);
        }
        .col h2 span {
          background: var(--sec-bg);
          padding: 0 4px;
          border-radius: 10px;
          font-size: 1rem;
          color: var(--textcolor);
        }
        .income-col h2,   .expense-col h2 { border-bottom-color: var(--footer); }

        .item-group {
          display: flex;
          flex-direction: column;
          gap: 4px;
        }
        .item-group::-webkit-scrollbar {
          width: 6px;
        }
        .item-group::-webkit-scrollbar-track {
          background: var(--sec-bg);
          border-radius: 10px;
        }
        .item-group::-webkit-scrollbar-thumb {
          background: var(--profileplashka);
          border-radius: 10px;
        }

        .item {
          background: var(--post-bg);
          border-radius: 10px;
          border: 1px solid var(--profileplashka);
          transition: 0.15s;
          padding: 5px 5px;
        }
        .item:hover {
          background: var(--sec-bg);
          border-color: var(--footer);
        }
        .item-header {
          display: flex;
          align-items: center;
        }
        .item-label {
          flex: 1;
          color: var(--textcolor);
          font-size: 1rem;
          padding: 4px 0;
          display: flex;
          flex-wrap: wrap;
          align-items: baseline;
          gap: 4px 6px;
          font-family: var(--main-font);
        }
        .item .price-badge {
          background: var(--news-bg);
          border-radius: 10px;
          padding: 0 12px;
          font-size: 0.8rem;
          font-weight: 600;
          color: var(--textcolor);
          margin-left: auto;
          white-space: nowrap;
        }
        .income-col .price-badge, .expense-col .price-badge { color: var(--textcolor)!important; }

        .item-controls {
          display: flex;
          align-items: center;
          gap: 8px;
          margin-left: auto;
          flex-shrink: 0;
        }
        .btn-count {
          background: var(--profileplashka);
          border: none;
          color: var(--textcolor);
          width: 28px;
          height: 28px;
          border-radius: 50%;
          cursor: pointer;
          font-size: 1.2rem;
          display: flex;
          align-items: center;
          justify-content: center;
          transition: 0.15s;
          border: 1px solid var(--footer);
        }
        .btn-count:hover {
          background: var(--footer);
          transform: scale(1.05);
          color: var(--white);
        }
        .btn-count.income-btn {
          background: var(--pun-bg);
          border-color: var(--footer);
        }
        .btn-count.income-btn:hover {
          background: var(--footer);
          color: var(--white);
        }
        .btn-count.expense-btn {
          background: var(--pun-bg);
          border-color: var(--footer);
        }
        .btn-count.expense-btn:hover {
          background: var(--footer);
          color: var(--white);
        }
        .btn-count:active {
          transform: scale(0.9);
        }
        .btn-count.disabled {
          opacity: 0.3;
          cursor: not-allowed;
          pointer-events: none;
        }
        .item-count {
          min-width: 30px;
          text-align: center;
          color: var(--textcolor);
          font-weight: 600;
          font-size: 1rem;
        }

        .item-subtotal {
          min-width: 70px;
          text-align: right;
          color: var(--profilelink);
          font-size: 0.85rem;
        }

        .proof-section {
          margin-top: 8px;
          padding-left: 10px;
          display: flex;
          flex-direction: column;
          gap: 6px;
          border-left: 2px solid var(--footer);
          padding-left: 14px;
        }
        .proof-row {
          display: flex;
          gap: 8px;
          align-items: center;
        }
        .proof-row input {
          flex: 1;
          background: var(--white);
          border: 1px solid var(--profileplashka);
          border-radius: 10px;
          padding: 6px 14px;
          color: var(--textcolor);
          font-size: 0.85rem;
          outline: none;
          min-width: 0;
          font-family: var(--main-font);
        }
        .proof-row input:focus {
          border-color: var(--footer);
          background: var(--sec-bg);
        }
        .proof-row .btn-add-proof {
          background: var(--profileplashka);
          border: none;
          color: var(--textcolor);
          padding: 4px 14px;
          border-radius: 30px;
          cursor: pointer;
          font-size: 0.8rem;
          transition: 0.15s;
          white-space: nowrap;
          border: 1px solid var(--footer);
        }
        .proof-row .btn-add-proof:hover {
          background: var(--footer);
          color: var(--white);
        }
        .proof-list {
          display: flex;
          flex-direction: column;
          gap: 4px;
          padding-left: 4px;
        }
        .proof-list .proof-item {
          display: flex;
          align-items: center;
          gap: 8px;
          font-size: 0.82rem;
          color: var(--textcolor);
          background: var(--sec-bg);
          padding: 3px 10px 3px 14px;
          border-radius: 10px;
          border-left: 2px solid var(--footer);
        }
        .proof-list .proof-item .proof-text {
          flex: 1;
          word-break: break-all;
          font-family: 'Consolas', monospace;
          font-size: 0.78rem;
          color: var(--textcolor);
        }
        .proof-list .proof-item .btn-del-proof {
          background: transparent;
          border: none;
          color: #b14a4a;
          cursor: pointer;
          font-size: 1rem;
          padding: 0 4px;
        }
        .proof-list .proof-item .btn-del-proof:hover {
          color: #d14a4a;
        }

        .divider {
          margin: 10px 0 8px;
          border-top: 1px dashed var(--profileplashka);
          opacity: 0.5;
        }

        .custom-price-input {
          display: flex;
          align-items: center;
          gap: 8px;
          margin-top: 4px;
          padding-left: 10px;
        }
        .custom-price-input label {
          color: var(--textcolor);
          font-size: 0.8rem;
          font-family: var(--main-font);
        }
        .custom-price-input input {
          width: 100px;
          background: var(--white);
          border: 1px solid var(--profileplashka);
          border-radius: 10px;
          padding: 4px 12px;
          color: var(--textcolor);
          font-size: 0.9rem;
          outline: none;
        }
        .custom-price-input input:focus {
          border-color: var(--footer);
          background: var(--sec-bg);
        }

        .preview {
          margin-top: 15px;
          padding: 12px 16px;
          background: var(--sec-bg-op);
          border-radius: 12px;
          border: 1px solid var(--profileplashka);
          display: flex;
          justify-content: space-between;
          align-items: center;
          flex-wrap: wrap;
          gap: 10px;
        }
        .preview .label {
          color: var(--textcolor);
          font-size: 0.9rem;
          font-family: var(--main-font);
        }
        .preview .value {
          color: var(--textcolor);
          font-size: 1.3rem;
          font-weight: 600;
        }

        .balance-row {
          margin-top: 10px;
          display: flex;
          flex-wrap: wrap;
          align-items: center;
          gap: 10px;
          background: var(--sec-bg-op);
          padding: 18px 22px;
          border-radius: 10px;
          border: 1px solid var(--profileplashka);
        }
        .balance-row label {
          color: var(--textcolor);
          font-weight: 400;
          display: flex;
          align-items: center;
          gap: 8px;
          font-family: var(--main-font);
        }
        .balance-row input {
          background: var(--white);
          border: 1px solid var(--profileplashka);
          border-radius: 10px;
          padding: 10px 20px;
          width: 160px;
          color: var(--textcolor);
          font-size: 1rem;
          text-align: center;
        }
        .balance-row input:focus {
          border-color: var(--footer);
          background: var(--sec-bg);
        }

        .final-preview {
          margin-top: 5px;
          padding: 10px 22px;
          background: var(--sec-bg-op);
          border-radius: 10px;
          border: 2px solid var(--footer);
          display: flex;
          justify-content: space-between;
          align-items: center;
          flex-wrap: wrap;
          gap: 15px;
        }
        .final-preview .label {
          color: var(--textcolor);
          font-size: 1.1rem;
          font-weight: 400;
          font-family: var(--extra-font);
        }
        .final-preview .value {
          color: var(--textcolor);
          font-size: 1.8rem;
          font-weight: 700;
        }

        .actions {
          display: flex;
          flex-wrap: wrap;
          align-items: center;
          justify-content: center;
          gap: 20px;
          margin-top: 10px;
        }
        .btn {
          background: var(--profileplashka);
          border: none;
          padding: 14px 38px;
          border-radius: 10px;
          font-weight: 600;
          font-size: 1.2rem;
          color: var(--textcolor);
          cursor: pointer;
          transition: 0.3s;
          box-shadow: 0 4px 0 var(--footer);
          border: 1px solid var(--footer);
          letter-spacing: 0.8px;
          display: inline-flex;
          align-items: center;
          gap: 10px;
          font-family: var(--main-font);
        }
        .btn-primary {
          background: var(--footer);
          border-color: var(--textcolor);
          color: var(--textcolor);
        }
        .btn-primary:hover {
          background: var(--textcolor);
          transform: scale(1.02);
          color: var(--white);
        }
        .btn-success {
          background: var(--news-bg);
          border-color: var(--footer);
          box-shadow: 0 4px 0 var(--footer);
          color: var(--white);
        }
        .btn-success:hover {
          background: var(--news-bg);
          transform: scale(1.02);
        }
        .btn-secondary {
          background: var(--profileplashka);
          border-color: var(--footer);
          box-shadow: 0 4px 0 var(--footer);
          color: var(--textcolor);
        }
        .btn-secondary:hover {
          background: var(--footer);
          color: var(--white);
        }
        .btn:active {
          transform: translateY(3px);
          box-shadow: 0 1px 0 var(--footer);
        }
        .output-area {
          margin-top: 10px;
          background: var(--sec-bg-op);
          border-radius: 10px;
          padding: 18px 22px;
          border: 1px solid var(--profileplashka);
        }
        .output-area textarea {
          width: 100%;
          background: var(--news-bg);
          border: 1px solid var(--profileplashka);
          border-radius: 10px;
          padding: 16px;
          color: var(--textcolor);
          font-size: 0.95rem;
          font-family: 'Consolas', monospace;
          min-height: 150px;
          resize: vertical;
        }
        .copy-hint {
          color: var(--profilelink);
          font-size: 0.85rem;
          margin-top: 8px;
          text-align: right;
          font-family: var(--main-font);
        }
    </style>
    <div class="bank-container">
      <h1>Добро пожаловать в "Гринготтс"!</h1>
      <div class="subhead">ʛ В этой теме вы можете забрать старательно заработанные галлеоны или потратить их на какие-нибудь приятные плюшки.<br>
    ʛ Выберите нужную категорию и нажмите +, чтобы добавить нужное количество позиций. Для получения монет добавьте также ссылку на подтверждение заработка - ссылку на сообщение или на скриншот, например, вашего профиля<br>
    ʛ Обратите внимание, некоторые позиции в "потратить" выдаются по одной штуке, приходите за ними снова, когда понадобятся.<br>
    ʛ Не забудьте написать, сколько монет в профиле сейчас, чтобы гоблины начислили вам правильную сумму в профиль.<br>
    ʛ Когда нажмёте кнопку "подсчитать всё", детализация счёта скопируется в буфер обмена, вам останется только вставить её в форму ответа, чтобы работники банка смогли провести транзакцию.</div>

      <div class="columns-wrapper">
        <!-- КОЛОНКА "ПОЛУЧИТЬ" -->
        <div class="col income-col">
          <h2>ПОЛУЧИТЬ <span></span></h2>
          <div id="incomeItems" class="item-group"></div>
          <div class="preview">
            <span class="label">сумма:</span>
            <span class="value income-total" id="incomePreview">0 монет</span>
          </div>
        </div>

        <!-- КОЛОНКА "ПОТРАТИТЬ" -->
        <div class="col expense-col">
          <h2>ПОТРАТИТЬ <span></span></h2>
          <div id="expenseItems" class="item-group"></div>
          <div class="preview">
            <span class="label">сумма:</span>
            <span class="value expense-total" id="expensePreview">0 монет</span>
          </div>
        </div>
      </div>

      <!-- РУЧНОЙ ВВОД ТЕКУЩЕГО БАЛАНСА -->
      <div class="balance-row">
        <label for="currentBalance">Сколько сейчас на счету:</label>
        <input type="number" id="currentBalance" value="0" step="1" min="0">
        <span style="color:var(--textcolor); font-size:0.9rem;">(прибавится к итогу)</span>
      </div>

      <!-- ПРЕДПРОСМОТР ИТОГА -->
      <div class="final-preview">
        <span class="label">ИТОГОВЫЙ БАЛАНС:</span>
        <span class="value" id="finalPreview">0 монет</span>
      </div>

      <!-- КНОПКИ -->
      <div class="actions">
        <button class="btn btn-primary" id="calcBtn">Подсчитать всё</button>
        <button class="btn btn-secondary" id="clearBtn">Сбросить всё</button>
      </div>

      <!-- ВЫВОД РЕЗУЛЬТАТА -->
      <div class="output-area">
        <textarea id="resultOutput" readonly placeholder="Здесь появится итоговый отчёт для вставки на форум..."></textarea>
        <div class="copy-hint">После подсчёта результат автоматически копируется в буфер обмена</div>
      </div>
    </div>

    <script>
      (function() {
        // ПРАЙС
        const incomeData = [
          { label: 'Регистрация персонажа', price: 200 },
          { label: 'Регистрация персонажа по акции', price: 400 },
          { label: 'Заявка в "нужные"', price: 50 },
          { label: 'Заявка в "хочу видеть"', price: 20 },
          { label: 'Привёл(а) друга на форум', price: 500 },
          { divider: true },
          { label: 'Пост в квесте', price: 100 },
          { label: 'Пост в личной игре', price: 50 },
          { label: 'Ответил(а) на пост в течение суток', price: 200 },
          { label: 'Написал(а) 2 поста за день', price: 200 },
          { label: 'Написал(а) >3 постов за день', price: 300 },
          { label: 'Завершённый квест (начисляется каждому участнику)', price: 300 },
          { label: 'Завершённый эпизод', price: 100 },
          { label: 'Упоминание сюжетных событий в посте', price: 50 },
          { label: 'Помощь амс в в написании/генерирование идеи для сюжетного квеста', price: 300 },
          { divider: true },
          { label: 'Оставил(а) 5 рекламных листовок', price: 20 },
          { label: 'Оставил(а) 20 рекламных листовок', price: 300 },
          { label: 'Оставил(а) 50 рекламных листовок', price: 1500 },
          { label: 'Поставил(а) баннер форума в подпись на каталоге', price: 300 },
          { divider: true },
          { label: 'Попал(а) в таблицу активистов', price: 100 },
          { label: 'Набрал(а) первые 100 сообщений', price: 30 },
          { label: 'Набрал(а) очередные 500 сообщений', price: 100 },
          { label: 'Каждый месяц на форуме', price: 100 },
          { label: 'Фото своего животного в теме «животные», с передачей привета любому игроку', price: 25 },
          { divider: true },
          { label: 'Помощь в отладке форума', price: 'custom' }
        ];

        const expenseData = [
             { label: 'Отсрочка по посту в квесте (3 дня, нельзя воспользоваться 2 раза подряд)', price: 500, maxCount: 1 },
          { label: 'Перебросить кубик в квесте (нельзя воспользоваться 2 раза подряд, при любом результате учитывается второй бросок)', price: 300, maxCount: 1 },
          { label: 'Мини-квест с мастером', price: 15000 },   
          { divider: true },
               { label: 'Поменять картинку/факты на личной странице (твинки добавляются бесплатно по запросу)', price: 200 },
    { label: 'Вытащить из чистки (нельзя воспользоваться 2 чистки подряд)', price: 1000, maxCount: 1 },
    { label: 'Смена внешности (второй раз после начала игры)', price: 1000 },     
    { label: 'Регистрация твинка (третий и все последующие персонажи)', price: 3000 },
          { divider: true },
          { label: 'Графика в профиль (аватар)', price: 300 },
                { label: 'Реклама нужного с оформлением на месяц', price: 1000 },
    { label: 'Оформление личного эпизода', price: 1000 },
          { divider: true },
          { label: 'Выкуп роли/внешности на неделю', price: 500 },
          { label: 'Выкуп роли/внешности на месяц', price: 1000 },
          { label: 'Картинка нужного в шапке (неделя)', price: 300 },
          { label: 'Картинка нужного в шапке (месяц)', price: 700 },
    { label: 'Выбрать лучших недели (одна покупка - одно место в таблице)', price: 500 },
          { label: 'Фото питомца вместо лучшего', price: 1000 },
                { divider: true },
          { label: 'Выбрать, кого поставить в шапку нового флуда', price: 500 },
          { label: 'Запрет ставить себя в шапку флуда', price: 800 },
          { label: 'Видео-привет от администраторов', price: 5000 },
          { label: 'Почтовая открытка от АМС', price: 10000 }
        ];

        // Хранилище количества для всех позиций
        const countStore = new Map();
        // Хранилище ссылок для доходов
        const proofsStore = new Map();
        // Хранилище кастомных цен
        const customPriceStore = new Map();

        const incomeContainer = document.getElementById('incomeItems');
        const expenseContainer = document.getElementById('expenseItems');
        const incomePreview = document.getElementById('incomePreview');
        const expensePreview = document.getElementById('expensePreview');
        const finalPreview = document.getElementById('finalPreview');
        const currentBalanceInput = document.getElementById('currentBalance');

        function generateItemId(type, index) {
          return type + '-' + index;
        }

        function getCount(itemId) {
          return countStore.get(itemId) || 0;
        }

        function getMaxCount(itemId) {
          const container = document.querySelector('[data-itemid="' + itemId + '"]');
          if (container) {
            const maxAttr = container.dataset.maxcount;
            if (maxAttr) {
              return parseInt(maxAttr);
            }
          }
          return null;
        }

        function setCount(itemId, value) {
          const maxCount = getMaxCount(itemId);
          let num = parseInt(value) || 0;
          if (maxCount !== null && num > maxCount) {
            num = maxCount;
          }
          if (num < 0) {
            num = 0;
          }
          countStore.set(itemId, num);
          updateCountUI(itemId);
          updatePreviews();
        }

        function incrementCount(itemId) {
          const current = getCount(itemId);
          const maxCount = getMaxCount(itemId);
          if (maxCount !== null && current >= maxCount) {
            return;
          }
          setCount(itemId, current + 1);
        }

        function decrementCount(itemId) {
          const current = getCount(itemId);
          if (current > 0) {
            setCount(itemId, current - 1);
          }
        }

        function updateCountUI(itemId) {
          const container = document.querySelector('[data-itemid="' + itemId + '"]');
          if (container) {
            const countSpan = container.querySelector('.item-count');
            const subtotalSpan = container.querySelector('.item-subtotal');
            const btnPlus = container.querySelector('.btn-plus');
            const count = getCount(itemId);
            const maxCount = getMaxCount(itemId);
           
            if (countSpan) countSpan.textContent = count;
           
            if (btnPlus && maxCount !== null) {
              if (count >= maxCount) {
                btnPlus.classList.add('disabled');
              } else {
                btnPlus.classList.remove('disabled');
              }
            }
           
            if (subtotalSpan) {
              const price = getItemPrice(itemId);
              if (price !== null) {
                subtotalSpan.textContent = (count * price) + ' монет';
              }
            }
          }
        }

        function getItemPrice(itemId) {
          const container = document.querySelector('[data-itemid="' + itemId + '"]');
          if (!container) return null;
         
          if (customPriceStore.has(itemId)) {
            return customPriceStore.get(itemId);
          }
         
          const priceAttr = container.dataset.price;
          if (priceAttr && priceAttr !== 'custom') {
            return parseFloat(priceAttr);
          }
          return null;
        }

        // ---------- РАБОТА СО ССЫЛКАМИ (только для доходов) ----------
        function renderProofs(container, itemId) {
          const proofs = proofsStore.get(itemId) || [];
          const proofContainer = container.querySelector('.proof-list');
          if (!proofContainer) return;

          proofContainer.innerHTML = '';
          proofs.forEach((proof, idx) => {
            const div = document.createElement('div');
            div.className = 'proof-item';
            div.innerHTML = `
              <span class="proof-text">${escapeHtml(proof)}</span>
              <button class="btn-del-proof" data-itemid="${itemId}" data-idx="${idx}" title="Удалить ссылку">x</button>
            `;
            proofContainer.appendChild(div);
          });

          proofContainer.querySelectorAll('.btn-del-proof').forEach(btn => {
            btn.addEventListener('click', function(e) {
              e.stopPropagation();
              const id = this.dataset.itemid;
              const idx = parseInt(this.dataset.idx);
              removeProof(id, idx);
            });
          });
        }

        function escapeHtml(text) {
          const div = document.createElement('div');
          div.textContent = text;
          return div.innerHTML;
        }

        function addProof(itemId, proofText) {
          if (!proofText.trim()) return;
          if (!proofsStore.has(itemId)) {
            proofsStore.set(itemId, []);
          }
          proofsStore.get(itemId).push(proofText.trim());
          updateProofUI(itemId);
        }

        function removeProof(itemId, idx) {
          if (!proofsStore.has(itemId)) return;
          const proofs = proofsStore.get(itemId);
          if (idx >= 0 && idx < proofs.length) {
            proofs.splice(idx, 1);
            if (proofs.length === 0) {
              proofsStore.delete(itemId);
            }
            updateProofUI(itemId);
          }
        }

        function updateProofUI(itemId) {
          const container = document.querySelector('[data-itemid="' + itemId + '"]');
          if (container) {
            renderProofs(container, itemId);
          }
        }

        // ---------- ОБЩИЕ ФУНКЦИИ ----------
        function getIncomeTotal() {
          let total = 0;
          incomeContainer.querySelectorAll('.item').forEach(item => {
            const itemId = item.dataset.itemid;
            const count = getCount(itemId);
            if (count > 0) {
              const price = getItemPrice(itemId);
              if (price !== null) {
                total += price * count;
              }
            }
          });
          return total;
        }

        function getExpenseTotal() {
          let total = 0;
          expenseContainer.querySelectorAll('.item').forEach(item => {
            const itemId = item.dataset.itemid;
            const count = getCount(itemId);
            if (count > 0) {
              const price = getItemPrice(itemId);
              if (price !== null) {
                total += price * count;
              }
            }
          });
          return total;
        }

        function updatePreviews() {
          const incomeTotal = getIncomeTotal();
          const expenseTotal = getExpenseTotal();
          const currentBal = parseFloat(currentBalanceInput.value) || 0;
          const finalTotal = currentBal + incomeTotal - expenseTotal;

          incomePreview.textContent = incomeTotal + ' монет';
          expensePreview.textContent = expenseTotal + ' монет';
          finalPreview.textContent = finalTotal + ' монет';
        }

        // ---------- РЕНДЕР СПИСКОВ ----------
        function renderItems(container, items, type) {
          container.innerHTML = '';
          items.forEach((item, index) => {
            if (item.divider) {
              const div = document.createElement('div');
              div.className = 'divider';
              container.appendChild(div);
              return;
            }

            const itemId = generateItemId(type, index);
            const wrapper = document.createElement('div');
            wrapper.className = 'item';
            wrapper.dataset.itemid = itemId;
            wrapper.dataset.price = item.price;
            if (item.maxCount) {
              wrapper.dataset.maxcount = item.maxCount;
            }

            const header = document.createElement('div');
            header.className = 'item-header';

            const label = document.createElement('span');
            label.className = 'item-label';
            const priceStr = item.price === 'custom' ? ' (на усмотрение амс)' : item.price + ' монет';
            const priceColor = type === 'income' ? '#9bcfb0' : '#e6a0a0';
            let maxLabel = '';
            if (item.maxCount) {
              maxLabel = ' <span style="color:#8a6a6a;font-size:0.7rem;">(макс. ' + item.maxCount + ')</span>';
            }
            label.innerHTML = item.label + ' <span class="price-badge" style="color:' + priceColor + '">' + priceStr + '</span>' + maxLabel;

            const controls = document.createElement('div');
            controls.className = 'item-controls';

            const btnMinus = document.createElement('button');
            btnMinus.className = 'btn-count ' + (type === 'income' ? 'income-btn' : 'expense-btn');
            btnMinus.textContent = '-';
            btnMinus.type = 'button';

            const countSpan = document.createElement('span');
            countSpan.className = 'item-count ' + (type === 'income' ? 'income-count' : 'expense-count');
            countSpan.textContent = '0';

            const btnPlus = document.createElement('button');
            btnPlus.className = 'btn-count ' + (type === 'income' ? 'income-btn' : 'expense-btn') + ' btn-plus';
            btnPlus.textContent = '+';
            btnPlus.type = 'button';

            const subtotalSpan = document.createElement('span');
            subtotalSpan.className = 'item-subtotal ' + (type === 'income' ? 'income-subtotal' : 'expense-subtotal');
            subtotalSpan.textContent = '0 монет';

            controls.appendChild(btnMinus);
            controls.appendChild(countSpan);
            controls.appendChild(btnPlus);
            controls.appendChild(subtotalSpan);

            header.appendChild(label);
            header.appendChild(controls);
            wrapper.appendChild(header);

            // Кастомная цена для "помощь в отладке"
            if (item.price === 'custom') {
              const customDiv = document.createElement('div');
              customDiv.className = 'custom-price-input';
              customDiv.innerHTML = `
                <label>Цена за 1:</label>
                <input type="number" class="custom-price" value="100" min="1" step="1">
              `;
              wrapper.appendChild(customDiv);
             
              const customInput = customDiv.querySelector('.custom-price');
              customInput.addEventListener('input', function() {
                const val = parseFloat(this.value) || 0;
                if (val > 0) {
                  customPriceStore.set(itemId, val);
                } else {
                  customPriceStore.delete(itemId);
                }
                updateCountUI(itemId);
                updatePreviews();
              });
              customPriceStore.set(itemId, 100);
            }

            // Секция для ссылок (только для доходов)
            if (type === 'income') {
              const proofSection = document.createElement('div');
              proofSection.className = 'proof-section';

              const proofList = document.createElement('div');
              proofList.className = 'proof-list';
              proofSection.appendChild(proofList);

              const row = document.createElement('div');
              row.className = 'proof-row';
              const input = document.createElement('input');
              input.type = 'text';
              input.placeholder = 'Вставьте ссылку на пост или скриншот...';
              input.className = 'proof-input';
              const addBtn = document.createElement('button');
              addBtn.className = 'btn-add-proof';
              addBtn.textContent = 'Добавить ссылку';
              addBtn.type = 'button';

              row.appendChild(input);
              row.appendChild(addBtn);
              proofSection.appendChild(row);

              wrapper.appendChild(proofSection);

              addBtn.addEventListener('click', function(e) {
                e.stopPropagation();
                const inp = this.parentElement.querySelector('.proof-input');
                if (inp && inp.value.trim()) {
                  addProof(itemId, inp.value.trim());
                  inp.value = '';
                  inp.focus();
                }
              });

              input.addEventListener('keypress', function(e) {
                if (e.key === 'Enter') {
                  e.preventDefault();
                  const addBtn = this.parentElement.querySelector('.btn-add-proof');
                  if (addBtn) addBtn.click();
                }
              });

              if (!proofsStore.has(itemId)) {
                proofsStore.set(itemId, []);
              }
              renderProofs(wrapper, itemId);
             
              proofSection.style.display = 'none';
             
              const updateProofVisibility = function() {
                const count = getCount(itemId);
                proofSection.style.display = count > 0 ? 'block' : 'none';
              };
             
              const originalSetCount = setCount;
              setCount = function(id, value) {
                originalSetCount(id, value);
                if (id === itemId) {
                  updateProofVisibility();
                }
              };
            }

            // Обработчики кнопок
            btnPlus.addEventListener('click', function(e) {
              e.stopPropagation();
              incrementCount(itemId);
            });

            btnMinus.addEventListener('click', function(e) {
              e.stopPropagation();
              decrementCount(itemId);
            });

            container.appendChild(wrapper);
           
            countStore.set(itemId, 0);
            updateCountUI(itemId);
          });
        }

        renderItems(incomeContainer, incomeData, 'income');
        renderItems(expenseContainer, expenseData, 'expense');

        // ---------- ЛОГИКА ПОДСЧЁТА ----------
        const calcBtn = document.getElementById('calcBtn');
        const clearBtn = document.getElementById('clearBtn');
        const resultOutput = document.getElementById('resultOutput');

        function getSelectedIncome() {
          let total = 0;
          let items = [];
          incomeContainer.querySelectorAll('.item').forEach(item => {
            const itemId = item.dataset.itemid;
            const count = getCount(itemId);
            if (count > 0) {
              const price = getItemPrice(itemId);
              if (price !== null) {
                const subtotal = price * count;
                total += subtotal;
                const label = item.querySelector('.item-label').textContent.trim();
                const proofs = proofsStore.get(itemId) || [];
                items.push({
                  label: label,
                  price: price,
                  count: count,
                  subtotal: subtotal,
                  proofs: proofs.slice()
                });
              }
            }
          });
          return { total, items };
        }

        function getSelectedExpense() {
          let total = 0;
          let items = [];
          expenseContainer.querySelectorAll('.item').forEach(item => {
            const itemId = item.dataset.itemid;
            const count = getCount(itemId);
            if (count > 0) {
              const price = getItemPrice(itemId);
              if (price !== null) {
                const subtotal = price * count;
                total += subtotal;
                const label = item.querySelector('.item-label').textContent.trim();
                items.push({
                  label: label,
                  price: price,
                  count: count,
                  subtotal: subtotal
                });
              }
            }
          });
          return { total, items };
        }

        function generateReport() {
          const income = getSelectedIncome();
          const expense = getSelectedExpense();
          const currentBal = parseFloat(currentBalanceInput.value) || 0;
          const finalBalance = currentBal + income.total - expense.total;

          let report = '========================================\n';
          report += '       ДЕТАЛИЗАЦИЯ СЧЁТА\n';
          report += '========================================\n\n';

          if (income.items.length > 0) {
            report += 'Получить:\n';
            income.items.forEach(item => {
              const countStr = item.count > 1 ? ' (x' + item.count + ')' : '';
              report += '  - ' + item.label + countStr + ' — ' + item.subtotal + ' монет\n';
              if (item.proofs.length) {
                item.proofs.forEach(p => {
                  report += '      Ссылка: ' + p + '\n';
                });
              }
            });
            report += '  СУММА: ' + income.total + ' монет\n\n';
          }

          if (expense.items.length > 0) {
            report += 'Потратить:\n';
            expense.items.forEach(item => {
              const countStr = item.count > 1 ? ' (x' + item.count + ')' : '';
              report += '  - ' + item.label + countStr + ' — ' + item.subtotal + ' монет\n';
            });
            report += '  СУММА: ' + expense.total + ' монет\n\n';
          }

          report += 'Текущий баланс: ' + currentBal + ' монет\n';
          report += 'ИТОГОВЫЙ БАЛАНС: ' + finalBalance + ' монет\n';
         
          return report;
        }

        function copyToClipboard(text) {
          if (navigator.clipboard && navigator.clipboard.writeText) {
            navigator.clipboard.writeText(text).catch(() => fallbackCopy(text));
          } else {
            fallbackCopy(text);
          }
        }

        function fallbackCopy(text) {
          const textarea = document.createElement('textarea');
          textarea.value = text;
          document.body.appendChild(textarea);
          textarea.select();
          try {
            document.execCommand('copy');
          } catch (e) {
            alert('Не удалось скопировать, скопируйте вручную.');
          }
          document.body.removeChild(textarea);
        }

        let timeoutId = null;

        function handleCalculate() {
          const report = generateReport();
          resultOutput.value = report;
          copyToClipboard(report);
         
          calcBtn.textContent = 'Подсчитано и скопировано!';
          calcBtn.className = 'btn btn-success';
         
          if (timeoutId) clearTimeout(timeoutId);
          timeoutId = setTimeout(() => {
            calcBtn.textContent = 'Подсчитать всё';
            calcBtn.className = 'btn btn-primary';
            timeoutId = null;
          }, 3000);
        }

        function handleClear() {
          countStore.clear();
          document.querySelectorAll('.item').forEach(item => {
            const id = item.dataset.itemid;
            if (id) {
              countStore.set(id, 0);
              updateCountUI(id);
              const proofSection = item.querySelector('.proof-section');
              if (proofSection) proofSection.style.display = 'none';
            }
          });
         
          proofsStore.clear();
          document.querySelectorAll('.proof-list').forEach(list => {
            list.innerHTML = '';
          });
         
          customPriceStore.clear();
          document.querySelectorAll('.custom-price').forEach(input => {
            input.value = 100;
            const item = input.closest('.item');
            if (item) {
              const id = item.dataset.itemid;
              if (id) {
                customPriceStore.set(id, 100);
                updateCountUI(id);
              }
            }
          });
         
          currentBalanceInput.value = '0000';
          resultOutput.value = '';
          updatePreviews();
         
          if (timeoutId) clearTimeout(timeoutId);
          calcBtn.textContent = 'Подсчитать всё';
          calcBtn.className = 'btn btn-primary';
        }

        currentBalanceInput.addEventListener('input', updatePreviews);

        calcBtn.addEventListener('click', handleCalculate);
        clearBtn.addEventListener('click', handleClear);

        document.addEventListener('keydown', (e) => {
          if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') {
            e.preventDefault();
            handleCalculate();
          }
        });

        window.addEventListener('load', function() {
          updatePreviews();
        });

      })();
    </script>
    [/html]

    0

    Быстрый ответ

    Напишите ваше сообщение и нажмите «Отправить»



    Вы здесь » Squirrel test » — мироустройство » весна-лето 2026


    Рейтинг форумов | Создать форум бесплатно