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

тёмный лорд одержал победу во второй магической войне, установив тоталитарный режим. волшебное общество оказалось разделено на касты по чистоте крови, границы закрыты, а репрессии и дискриминация стали нормой. надежда на перемены теперь связана с сопротивлением, которое по масштабу превзошло сам орден феникса.
malleus maleficarum
hp: dark au
2nd gen, 2008
best post
harry potter: К сожалению, ни один праздник не мог гарантировать, что ничего плохого вновь не случится. Однако кое-что он проявлял наверняка: люди знали обо всех возможных последствиях, и все равно приходили. И впервые за много лет Гарри вдруг подумал, что тридцать первое июля все же может быть днем, когда не обязательно прятаться.
тебе сюда
итоги экспедиции
выберись из неё
новый расклад
сыграй в маджонг

Squirrel test

Объявление

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

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


    Вы здесь » Squirrel test » — волшебники в розыске » seamus finnigan


    seamus finnigan

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

    1

    о персонаже
    https://forumavatars.ru/img/avatars/0014/d2/5e/2-1772119741.jpg
    Шеймус Финниган
    радикальный сопротивленец
    банши

    0

    2

    твинки
    seamus finnigan 1980 - muggle-born, resistance.
    [indent] твинки:  norman oldridge 1965 - pure-blood, death eaters.
                           tony goldstein 1979 - half-blood, resistance.

    0

    3

    плашки
    https://upforme.ru/uploads/001b/07/0d/2/475979.gif
    https://upforme.ru/uploads/001c/3b/dd/7/544805.png
    https://forumstatic.ru/files/001a/74/84/73837.png
    https://forumstatic.ru/files/0014/d2/5e/33205.gif
    https://forumstatic.ru/files/0014/d2/5e/64486.png
    https://forumstatic.ru/files/001c/3b/dd/55908.gif
    https://forumstatic.ru/files/0014/d2/5e/29578.gif
    https://upforme.ru/uploads/001c/3b/dd/27/866479.gif
    https://forumstatic.ru/files/0014/d2/5e/33923.gif
    https://upforme.ru/uploads/001c/3b/dd/153/662326.png
    https://upforme.ru/uploads/001c/3b/dd/27/138689.gif
    [html]
    <link rel="stylesheet" href="https://forumstatic.ru/files/001c/3b/dd/84786.css">
    <div class="fon-light"><img src="https://upforme.ru/uploads/001c/3b/dd/27/150032.gif">    <div class="fon-text">полный jingle bells</div></div>
    <div class="fon-dark"><img src="https://upforme.ru/uploads/001c/3b/dd/27/150032.gif"><div class="fon-text">полный jingle bells</div></div>[/html]

    0

    4

    [html]<div class="lz-generator">

    <h3>Генератор ЛЗ</h3>

    <input placeholder="Ссылка на анкету" id="lz-link"><br> <input placeholder="Имя Фамилия, возраст" id="lz-name"><br>

    <textarea placeholder="Описание" id="lz-about"></textarea>

    <input placeholder="Ссылка на пару (если есть)" id="lz-pairlink">
    <input placeholder="Имя пары" id="lz-pairname">

    <select id="lz-caste">
      <option value="pure-blood">pure-blood</option>
      <option value="half-blood">half-blood</option>
      <option value="muggle-born">muggle-born</option>
      <option value="outlaw">outlaw</option>
      <option value="part-human">part-human</option>
    </select>

    <input placeholder="Ссылка на картинку плашки" id="lz-img">
    <input placeholder="Ссылка на тему твинков" id="lz-twink">
    <input placeholder="Текст плашки" id="lz-plashka">

    <button id="lz-generate">Сгенерировать</button>

    <textarea id="lz-result"></textarea>

    <button id="lz-copy">Скопировать</button>

    </div>
    [/html]

    0

    5

    стиль личной страницы

    Код:
    /* личная страница */
    #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: absolute;
        top: 57%;
        right: 3%;
    }
    
    .fraction {
        position: absolute;
        top: 70%;
        width: 200px;
        background: var(--link);
        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: 50%;
        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; }
    
    .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;
    }
    
    /* меню */
    .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(--topic-overlay);
        color: var(--footer);
        font-weight: bold;
    }
    
    .menu .tabactive {
        color: var(--profilebg);
        background: var(--link);
    }
    
    .menu span:hover {
        color: var(--profilebg);
        background: var(--dark-accent);
    }
    
    .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%;
    }
    
    .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;
        height: 34px;
    }
    
    /* фоны */
    .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(--sec-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;
    }
    
    

    0

    6

    выпадающие меню хтмл-верх (стили)

    Код:
    /* Additional menus © max, the murderer! */
    
    /* ===== ВЫПАДАЮЩИЕ МЕНЮ — ИСПРАВЛЕННАЯ ВЕРСИЯ ===== */
    #pun-navlinks .container li {
        position: relative;
    }
    
    /* Невидимый мостик, чтобы мышь не падала в зазор */
    #pun-navlinks .container li::after {
        content: '';
        position: absolute;
        left: 0;
        bottom: -10px;
        width: 100%;
        height: 10px;
        background: transparent;
        z-index: 999;
    }
    
    /* Меню первого уровня */
    #pun-navlinks .container li ul {
        position: absolute;
        left: 0;
        top: 100%;           /* было 14px — теперь привязано к низу пункта */
        min-width: 100%;
        width: max-content;
        z-index: 1000;
        background: silver;
        border: 1px solid darkgray;
        box-sizing: border-box;
        
        /* Плавное появление (без scale, чтобы не было артефактов) */
        visibility: hidden;
        opacity: 0;
        transition: visibility 0.1s, opacity 0.1s;
    }
    
    #pun-navlinks .container li:hover ul {
        visibility: visible;
        opacity: 1;
    }
    
    /* Пункты меню — строго в столбик */
    #pun-navlinks .container li ul li {
        margin: 0;
        display: block;      /* это ключевое правило — возвращаем вертикаль */
        white-space: nowrap;
    }
    
    /* Ссылки внутри */
    #pun-navlinks .container li ul li a {
        display: block;
        text-align: left;
        font-size: 1em;
        font-weight: bold;
        padding: 4px 8px;
        margin: 0;
        color: steelblue;
        white-space: nowrap;
    }
    
    /* Меню второго уровня */
    #pun-navlinks .container li ul ul {
        position: absolute;
        left: 100%;
        top: 0;
        width: max-content;
        visibility: hidden;
        opacity: 0;
        transition: visibility 0.1s, opacity 0.1s;
    }
    
    /* Появление второго уровня при наведении */
    #pun-navlinks .container li ul li.forms:hover > ul,
    #pun-navlinks .container li ul li:hover > ul {
        visibility: visible !important;
        opacity: 1 !important;
    }
    
    /* Исправление — без замены всего меню */
    #pun-navlinks .container li ul {
        top: 100% !important;
        transform-origin: top !important;
    }
    
    #pun-navlinks .container li::after {
        content: '';
        position: absolute;
        bottom: -12px;
        left: 0;
        width: 100%;
        height: 12px;
        background: transparent;
    }
    </style>

    0

    7

    личная страница хтмл-верх

    Код:
    <!-- Всплывающее окно с информацией ч.1 © sadhaka -->
    <script src="https://forumstatic.ru/files/0011/e9/e1/56920.js" type="text/javascript"></script>

    0

    8

    личная страница хтмл-низ

    Код:
    <!-- Всплывающее окно с информацией ч.2 © sadhaka -->
    <div id="character" class="reveal-modal xlarge main container">
    <div class='modal_wrap'></div>
    <a class="close-reveal-modal">×</a>
    </div>
    
    <script type="text/javascript">
    function showTab(elem){
        $(".menu span").removeClass("tabactive");
        $(elem).addClass("tabactive");
        $("div.submenutext").hide();
        var activeDiv = $(elem).attr("alt");
        $("div."+activeDiv).fadeIn();
        return false;
    }
    $(".modal-link").click(function() {
            var modId = $(this).attr('id');
    $('.modal_wrap').html('');
    $.get('pages/'+modId, function (data){
        $('.modal_wrap').html($(data).find('.character').html());
    });
    $(".submenutext").hide();
    $(".submenutext:first").show();
    });
    </script>
    

    0

    9

    доп поля админки хтмл-низ

    Код:
    <!-- Админ-меню © max, the murderer! -->
    <script>
        if (GroupID == 1) {
            $('#pun-navlinks .container li#navadmin').append('<ul class="adminmenu"><li><a href="/admin_forums.php">Форумы</a></li><li><a href="/admin_options.php">Настройки</a></li><li class="forms"><a href="/admin_forms.php">Формы</a><ul><li><a href="/admin_forms.php#f-general">HTML-верх / низ</a></li><li><a href="/admin_forms.php#f-announcement">Объявление</a></li><li><a href="/admin_forms.php#f-form-reply">Форма ответа</a></li></ul></li><li><a href="/admin_style.php">Стиль</a></li><li><a href="/admin_files.php">Файлы</a></li><li><a href="/admin_fields.php">Поля профиля</a></li></ul>')
        }
    </script>
    <!-- Профиль-меню © max, the murderer! -->
    <script>
        if (GroupID != 4) {
            $('#pun-navlinks .container li#navprofile').append('<ul class="profilemenu"><li><a href="/profile.php?section=essentials&id='+UserID+'">Основной</a></li><li><a href="/profile.php?section=personal&id='+UserID+'">Персональный</a></li><li><a href="/profile.php?action=upload_avatar&id='+UserID+'">Аватар</a></li><li><a href="/profile.php?section=signature&id='+UserID+'">Подпись</a></li><li><a href="/profile.php?section=fields&id='+UserID+'">Дополнительно</a></li></ul>')
        }
    </script>

    0

    10

    <p>     <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=3&p=2#p128685" title="глава умеренных">
            <img class="need-img" src="https://64.media.tumblr.com/414838f30fff00ae74c4e83653478158/badaca4427aac162-ae/s400x600/c2497e7fea1ec30579a9ef38a879ec05aa25d4ca.gif">
          </a></p>
         <p>       <a href="https://mmaleficarum.rusff.me/viewtopic.php?id=844#p110479" title="председатель триады">
            <img class="need-img" src="https://64.media.tumblr.com/a3929ceb8d9884fe8420a5281b7fa1cb/b95d36cc27195060-9a/s540x810/038bcf2bebbb8cdc92973aed10ee93534a5bdf4e.gif">
          </a></p>

    0

    11

    [dice]count = 1 | sides = 100 | bonus = 0 | reason = аваднуть володьку. чёт - удача, нечет - неудача[/dice]

    0

    12

    [dice]count = 1 | sides = 100 | bonus = 40 | reason = бонус забыл! убить володьку, чёт удача, нечет - неудача[/dice]

    0

    13

    [dice]count = 1 | sides = 100 | bonus = 40 | reason = бонус на удачу не сильно роляет, а вот когда результат хода зависит от выпавшего числа - да. 1-40 промазал, 41-60 легко ранил, 61-80 - серьёзно ранил, 81-100 убил[/dice]

    0

    14

    Код:
    /* Основная форумная таблица
    ------------------------------------------*/
    
    .main table {
      table-layout: fixed;
      width: 100%;
    }
    
    .main th {
      padding: 5px 10px;
    }
    
    .main td {
      padding: 10px;
    }
    
    .tcl {
      width: 50%;
    }
    
    .tc2,
    .tc3,
    .tcmod {
      text-align: center;
      width: 10%;
    }
    
    .tcr {
      width: 30%;
    }
    
    #pun-searchtopics .tcl,
    #pun-modviewforum .tcl {
      width: 40%
    }
    
    #pun-searchtopics .tc2 {
      text-align: left;
      width: 20%;
    }
    
    #pun-debug table .tcl {
      width: 15%;
    }
    
    #pun-debug .tcr {
      width: 90%;
    }
    
    tbody.hasicon td.tcl {
      padding-left: 40px;
    }
    
    /* аватар */
    
    .punbb td .user-avatar {
    
    }
    
    .punbb td .user-avatar .avatar-image {
    
    }

    0

    15

    /* Основная форумная таблица
    ------------------------------------------*/

    .main table {
      table-layout: fixed;
      width: 100%;
    }

    .main th {
      padding: 5px 10px;
    }

    .main td {
      padding: 10px;
    }

    .tcl {
      width: 50%;
    }

    .tc2,
    .tc3,
    .tcmod {
      text-align: center;
      width: 10%;
    }

    .tcr {
      width: 30%;
    }

    #pun-searchtopics .tcl,
    #pun-modviewforum .tcl {
      width: 40%
    }

    #pun-searchtopics .tc2 {
      text-align: left;
      width: 20%;
    }

    #pun-debug table .tcl {
      width: 15%;
    }

    #pun-debug .tcr {
      width: 90%;
    }

    tbody.hasicon td.tcl {
      padding-left: 40px;
    }

    /* аватар */

    .punbb td .user-avatar {

    }

    .punbb td .user-avatar .avatar-image {

    }

    0

    16

    /* Кружочек (добавляем через ::before) */
    .punbb .post-content .spoiler-box > div::before {
        content: '';
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%);
        width: 10px;
        height: 10px;
        background: var(--body-bg);
        border-radius: 50%;
        cursor: pointer;
    }

    /* Для раскрытого состояния (класс visible) */
    .punbb .post-content .spoiler-box > div.visible::before {
        background: var(--guest-overlay) url();

    }
    .post-content .spoiler-box > div.visible {
        content: none !important;
        background: none !important;

    }

    0

    17

    Код:
    /****************************************
    Примерочная by DeepSeek and Storyteller
    ****************************************/
    .dressing-room {
        background: var(--news-bg);
        border-radius: 10px;
        padding: 20px;
        margin: 20px 0;
        color: var(--textcolor);
    }
    
    /* ДВЕ КОЛОНКИ */
    .two-columns {
        display: flex;
        gap: 30px;
        flex-wrap: wrap;
    }
    
    .right-column {
        flex: 1;
        min-width: 400px;
    }
    
    .dressing-room h3 {
    color: var(--textcolor);
        margin: 20px 0 10px 0;
        font-size: 14px;
        text-transform: lowercase;
        padding: 5px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-wrap: wrap;
        background: var(--post-bg);
        border-radius: 5px;
    }
    
    .collection-title {
    font-size: 12px;
        color: var(--textcolor);
        padding-left: 10px;
        margin-bottom: 10px;
        border-left: 3px solid var(--textcolor);
    text-transform: lowercase;
    }
    
    .collection-badge {
        font-size: 10px;
        background: var(--post-bg);
        color: var(--profilebg);
        padding: 2px 6px;
        border-radius: 10px;
        margin-left: 8px;
        vertical-align: middle;
    }
    
    .category-controls {
        display: flex;
        gap: 15px;
        align-items: center;
        flex-wrap: wrap;
    }
    
    .clear-category-btn {
        background: var(--profilebg);
        color: var(--profiletext);
        border: 1px solid var(--profilelink);
        padding: 3px 8px;
        border-radius: 5px;
        font-size: 10px;
        cursor: pointer;
    text-transform: lowercase;
    }
    
    .clear-category-btn:hover {
        background: var(--profilelink);
        color: var(--profiletext);
    }
    
    .gift-checkbox {
        display: flex;
        align-items: center;
        gap: 5px;
        font-size: 11px;
         cursor: pointer;
    }
    
    .gift-checkbox input {
        cursor: pointer;
        width: 14px;
        height: 14px;
    }
    
    /* Блоки с картинками */
    .shop-container {
    border: 1px solid var(--post-bg);
        border-radius: 8px;
        overflow: hidden;
        margin-bottom: 10px;
    }
    
    .shop-content {
        max-height: 100px;
        overflow-y: auto;
        padding: 10px;
    }
    
    .shop-content::-webkit-scrollbar {
        width: 5px;
    }
    
    .shop-content::-webkit-scrollbar-track {
        background: var(--profilebg);
        border-radius: 5px;
    }
    
    .shop-content::-webkit-scrollbar-thumb {
        background: var(--profilelink);
        border-radius: 5px;
    }
    
    .shop-content-plashka {
        max-height: 70px;
    }
    
    .shop-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 14px;
        margin-bottom: 20px;
    }
    
    .shop-grid:last-child {
        margin-bottom: 0;
    }
    
    .shop-item {
        position: relative;
        cursor: pointer;
        border-radius: 5px;
        border: 2px solid transparent;
        transition: all 0.2s ease;
        text-align: center;
    }
    
    .shop-item:hover {
        transform: scale(1.05);
        border-color: var(--profilelink);
    }
    
    .shop-item-img {
        width: 60px;
        height: 60px;
        object-fit: cover;
        border-radius: 5px;
        display: block;
    }
    
    .shop-item-plashka {
        width: 100px;
        height: 26px;
        object-fit: cover;
        border-radius: 3px;
        display: block;
    }
    
    .shop-item-emoji {
        width: 30px;
        height: 30px;
        object-fit: contain;
        border-radius: 5px;
        display: block;
    }
    
    .shop-price {
        font-size: 9px;
        color: var(--profilelink);
        background: var(--post-bg);
        padding: 2px 4px;
        border-radius: 3px;
        margin-top: 4px;
        display: inline-block;
    }
    
    .preview-label {
        text-align: center;
        margin-bottom: 20px;
        font-size: 12px;
    }
    
    .url-row {
        margin-bottom: 20px;
        padding: 10px;
        background: var(--post-bg);
        border-radius: 5px;
    }
    
    .url-row label {
        display: block;
        margin-bottom: 5px;
        color: var(--textcolor);
        font-size: 11px;
    text-transform: lowercase;
    }
    
    .url-input-group input {
        width: 100%;
        background: var(--main-bg);
        color: var(--profiletext);
        border: 1px solid var(--profilelink)!important;
        padding: 8px 12px;
        border-radius: 5px;
        font-size: 12px;
        box-sizing: border-box;
    }
    
    .url-price {
        font-size: 10px;
        color: var(--profiletext);
        margin-top: 5px;
    }
    
    .text-controls {
    margin-bottom: 20px;
        padding: 10px;
        border-radius: 5px;
        border: 1px solid var(--post-bg);
    }
    
    .text-controls label {
    display: block;
        margin-bottom: 5px;
        color: var(--textcolor);
        font-size: 11px;
    text-transform: lowercase;
    }
    
    .text-input-group input {
        width: 100%;
        background: var(--main-bg);
        color: var(--textcolor);
        border: 1px solid var(--profilelink)!important;
        padding: 8px 12px;
        border-radius: 5px;
        font-size: 12px;
        box-sizing: border-box;
    }
    
    /* Спойлер для фраз */
    .phrases-spoiler {
        margin-top: 15px;
    }
    
    .phrases-spoiler summary {
        cursor: pointer;
        color: var(--profilelink);
        font-size: 11px;
        padding: 5px;
        display: inline-block;
        border: 1px solid var(--profilelink);
        border-radius: 10px;
    margin-bottom: 5px;
    }
    
    .phrases-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 10px;
        max-height: 120px;
        overflow-y: auto;
        padding: 5px;
    }
    
    .phrases-grid::-webkit-scrollbar {
        width: 3px;
    }
    
    .phrase-item {
        background: var(--main-bg);
        color: var(--textcolor);
        border: 1px solid var(--profilelink);
        padding: 4px 8px;
        border-radius: 5px;
        font-size: 10px;
        cursor: pointer;
        transition: all 0.2s ease;
    }
    
    .phrase-item:hover {
        background: var(--profilelink);
        color: var(--profilebg);
    }
    
    .color-controls {
        display: flex;
        gap: 10px;
        align-items: center;
        flex-wrap: wrap;
        margin-top: 10px;
    }
    
    .color-controls label {
        font-size: 11px;
        color: var(--textcolor);
    }
    
    .color-picker {
        width: 15px;
        height: 15px;
        padding: 0;
        border: none;
        border-radius: 50%;
        cursor: pointer;
        background: var(--dark-accent);
        overflow: hidden;
        box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    }
    
    .color-picker::-webkit-color-swatch-wrapper {
        padding: 0;
    }
    
    .color-picker::-webkit-color-swatch {
        border: none;
        border-radius: 50%;
    }
    
    .color-picker::-moz-color-swatch {
        border: none;
        border-radius: 50%;
    }
    
    .color-picker:focus {
        outline: none;
    }
    
    .grayscale-controls {
        display: flex;
        gap: 10px;
        margin-top: 10px;
        flex-wrap: wrap;
    text-transform: lowercase;
    }
    
    .grayscale-btn {
    background: var(--post-bg);
        border: 1px solid var(--profilelink);
        padding: 5px 10px;
        border-radius: 10px;
        font-size: 11px;
        cursor: pointer;
        color: var(--footer);
    }
    
    .grayscale-btn:hover {
        background: var(--profilelink);
        color: var(--post-bg);
    }
    
    .reset-btn {
    background: var(--post-bg);
        border: 1px solid var(--profilebg);
        margin-top: 10px;
        width: 100%;
        padding: 10px;
        cursor: pointer;
        text-transform: lowercase;
        border-radius: 10px;
    }
    
    .hint {
        font-size: 10px;
        opacity: 0.7;
        margin-top: 5px;
    }
    
    /* Блок с итоговой стоимостью и генерацией */
    .result-block {
        margin-top: 20px;
        padding: 15px;
        border-radius: 5px;
        border: 1px solid var(--profilelink);
    }
    
    .total-cost-block {
        padding: 12px;
        background: var(--post-bg);
        border-radius: 5px;
        text-align: center;
        margin-bottom: 15px;
    }
    
    .total-cost-block span {
        font-size: 18px;
        font-weight: bold;
        color: var(--profilebg);
    }
    
    .total-cost-label {
        font-size: 12px;
        color: var(--profilebg);
        opacity: 0.9;
    }
    
    /* Исправление для левой колонки */
    .left-column-shop {
        flex: 0 0 320px; /* фиксированная ширина */
        min-width: 250px;
        max-width: 400px;
    }
    
    /* Исправление для блока результата */
    .result-block {
        margin-top: 20px;
        padding: 15px;
        border-radius: 5px;
        border: 1px solid var(--profilelink);
        width: 100%;
        box-sizing: border-box;
    }
    
    /* Исправление для контейнера с кодом */
    .code-container {
        background: var(--main-bg);
        padding: 12px;
        border-radius: 5px;
        font-family: monospace;
        font-size: 11px;
        word-break: break-all;
        margin-bottom: 10px;
        max-height: 200px;
        overflow: auto;
        max-width: 100%;
        box-sizing: border-box;
    }
    
    /* Исправление для генератора и других блоков в левой колонке */
    .total-cost-block,
    .balance-block,
    .code-container,
    .generate-btn {
        max-width: 100%;
        box-sizing: border-box;
    }
    
    
    
    .generate-btn {
    background: var(--footer);
        border: none;
        padding: 12px;
        border-radius: 5px;
        font-weight: bold;
        cursor: pointer;
        width: 100%;
        font-size: 14px;
        transition: 0.3s;
        text-transform: lowercase;
        color: var(--post-bg);
    }
    
    .generate-btn.copied {
        background: var(--post-bg);
    color: var(--textcolor);
    }
    
    /* Стили для профиля-образца */
    .demo-profile {
        margin-bottom: 20px;
        display: flex;
        justify-content: center;
    }
    
    .demo-profile .post-author {
        pointer-events: none;
        margin-bottom: 0;
        width: 220px;
    }
    
    .post-author .plashka {
        position: relative;
        width: 200px;
        height: 28px;
        margin-left: 0px;
    }
    
    .post-author .plashka img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    .post-author .plashka a {
        position: absolute;
        inset: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 0 10px;
        word-break: break-word;
        color: var(--dark-accent);
        font-family: var(--main-font);
        font-size: 9px;
        font-weight: bold;
        text-transform: none;
        letter-spacing: 0.1em;
    }
    
    .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(--profilelink);
        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(--profilelink);
        width: 10px;
        height: 10px;
        display: flex;
        justify-content: center;
    }
    
    .post-author .pa-respect a:before {
        content: "";
    width: 15px;
    height: 15px;
        background-image: var(--likes);
        background-repeat: no-repeat;
        background-size: contain;
        vertical-align: middle;
        display: block;
        margin-top: -10px;
    }
    
    .pa-respect .fld-name {font-size: 0px}
    
    
    .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;
    }
    
    .demo-profile .lz-about {
        color: var(--profiletext);
        font-size: 10px;
        text-align: center;
    }
    
    
    /* общий блок - исправленный */
    .general {
        display: flex;
        flex-direction: column;
        color: var(--footer);
        max-width: 300px;
    }
    
    .general img {
        width: 150px;
        height: 150px;
        object-fit: cover;
        border-radius: 5px;
        border: 1px solid var(--footer);
        margin: 0 auto;
    }
    
    .general h2 {
        font-weight: normal;
        text-align: center;
        color: var(--dark-accent);
        font-family: var(--extra-font);
        font-size: 25px;
        margin: 0;
    }
    
    .fraction {
        background: var(--body-bg);
        color: var(--profilebg);
        border-radius: 5px;
        padding: 5px 8px;
        text-align: center;
        font-size: 12px;
        width: 100%;
        box-sizing: border-box;
    }
    
    .occupation {
        font-size: 12px;
        text-align: center;
        padding: 0 5px;
        line-height: 1.4;
    }
    
    .plashka-item {
        position: relative;
        display: inline-block;
        max-width: 200px;
        width: 100%;
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
        overflow: hidden;
    }
    
    .plashka-item img {
        width: 100%;
        height: 22px;
        display: block;
    object-fit: cover;}
    
    
    .plashka-item img {
        display: block;
        max-width: 200px!important;
        height: 22px!important;
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
    }
    
    
    .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, #ffffff);
        font-size: 8px;
        letter-spacing: 0.1em;
        pointer-events: none;
        background: rgba(0, 0, 0, 0.3);
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
    }
    
    .icons-gallery img {
        width: 34px !important;
        height: 34px !important;
        object-fit: cover;
        border-radius: 5px;
    }
    
    
    .modal-content {
    height: auto !important;
        min-height: auto !important;
        display: flex;
        align-items: flex-start;
        gap: 20px;
    }
    
    .spell {background: var(--spell-img) no-repeat;
        background-size: contain;
        width: 118px;
        height: 86px;
        position: absolute;
        left: 629px;
        top: 281px;}
    
    .bg-filters {
        margin-top: 20px;
        padding: 10px;
        background: var(--profilebg);
        border-radius: 5px;
    }
    
    .bg-filters h3 {
        margin-top: 0 !important;
    }
    
    .overlay-controls {
        margin-top: 15px;
        padding-top: 10px;
        border-top: 1px solid var(--profilelink);
    }
    
    .balance-block {
        background: var(--profilebg);
        border-radius: 8px;
        padding: 12px;
        margin-top: 15px;
    }
    
    .balance-block label {
        display: block;
        font-size: 11px;
        color: var(--profiletext);
        margin-bottom: 5px;
    }
    
    .balance-input {
        width: 100%;
        padding: 8px;
        background: var(--main-bg);
        border: 1px solid var(--profilelink);
        border-radius: 5px;
        color: var(--profiletext);
        font-size: 14px;
        font-weight: bold;
        box-sizing: border-box;
    }
    
    .remaining-block {
        margin-top: 10px;
        padding-top: 8px;
        border-top: 1px solid var(--profilelink);
        text-align: center;
    }
    
    .remaining-label {
        font-size: 11px;
        color: var(--profiletext);
    }
    
    .remaining-value {
        font-size: 18px;
        font-weight: bold;
        color: var(--profilebg);
        background: var(--profilelink);
        padding: 2px 8px;
        border-radius: 5px;
        margin: 0 5px;
    }
    
    .remaining-currency {
        font-size: 10px;
        color: var(--profiletext);
    }
    

    0

    18

    [hideprofile][html] <style>
      .guestbook-main {
        max-width:  850px;
        width: 100%;
        background: #f6f2ed;
        border-radius: 42px 42px 32px 32px;
        padding: 28px 30px 35px;
    overflow: visible;
      }

      /* ----- 1 строка: guest-links ----- */
      .guest-links {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        align-items: center;
        gap: 0px 18px;
        backdrop-filter: blur(2px);
        margin-bottom: 20px;
      }

      .guest-links a {
        color: #352f2a;
        font-weight: 500;
        font-size: 0.9rem;
        letter-spacing: 0.02em;
        text-decoration: none;
        padding: 4px 0;
        transition: 0.2s;
        white-space: nowrap;
      }

      .guest-links a:hover {
        color: #1f130b;
        transform: translateY(-1px);
      }

      /* ----- 2 строка: две колонки (flex) ----- */
      .guestbook-row {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
      }

      .guestbook-col-left {
        flex: 2;
        min-width: 200px;
      }

      .guestbook-col-right {
        flex: 2;
        min-width: 200px;
      }

      /* ------ вкладки-закладки (слева от контента) с JS ------ */
      .tabs-container {
        border-radius: 28px;
        padding: 6px;
        display: flex;
        gap: 0;
        position: relative;
      }

      .tabs-header {
        display: flex;
        flex-direction: column;
        gap: 4px;
        padding: 4px 0;
        border-radius: 22px;
        flex-shrink: 0;
        min-width: 80px;
        width: 90px;
        position: relative;
        z-index: 2;
      }

      .tab-btn {
    background: transparent;
        border: none;
        padding: 8px 10px 8px 16px;
        font-weight: 600;
        font-size: 0.75rem;
        color: #3f3530;
        border-radius: 18px 0 0 18px;
        cursor: pointer;
        transition: 0.2s;
        letter-spacing: 0.02em;
        text-transform: uppercase;
        font-family: inherit;
        text-align: left;
        user-select: none;
        width: 100%;
        white-space: nowrap;
        margin-left: -48px;
        margin-top: 10px;
        padding-right: 18px;
        z-index: 10;
        position: relative;
      }

      .tab-btn.active {
        background: #fcf8f4;
        color: #2d1f17;
        font-weight: 700;
        box-shadow: -4px 0 12px rgba(0, 0, 0, 0.06);
      }

      .tab-btn:hover:not(.active) {
        background: #d6c9bd;
        color: #1e130d;
      }

      .tab-content {
        padding: 12px 16px 8px 20px;
        background: #fcf8f4;
        border-radius: 20px;
        flex: 1;
        min-height: 180px;
        position: relative;
        z-index: 1;
        margin-left: -50px;
        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
      }

      .tab-pane {
        display: none;
        white-space: pre-line;
        font-size: 0.92rem;
        color: #251e19;
        padding: 4px 2px;
        font-weight: 400;
      }

      .tab-pane.active {
        display: block;
      }

      .tab-pane strong {
        color: #4f3425;
        font-weight: 600;
      }
      .tab-pane .section-title {
        display: block;
        font-weight: 700;
        color: #4c2a5e;
        margin-top: 10px;
        font-size: 0.95rem;
      }
      .tab-pane .section-title:first-of-type {
        margin-top: 0;
      }

      .tab-pane a {
        color: #4c2a5e;
        text-decoration: none;
      }
      .tab-pane a:hover {
        text-decoration: underline;
      }

      /* ----- правая колонка: администраторы (АМС) ----- */
      .ams-grid {
        padding: 18px 12px 14px;
      }

    .ams-row {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 20px 28px;
      }

      .ams-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        width: 100px;
      }

      .ams-avatar-wrap {
        position: relative;
        display: inline-block;
        width: 120px;
        height: 120px;
        border-radius: 10px;
        overflow: hidden;
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
        transition: 0.2s;
        cursor: default;
        border: 2px solid #dacfc4;
      }

      .ams-avatar-wrap img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: 0.2s;
      }

      .ams-avatar-wrap .tooltip-text {
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        background: rgba(26, 20, 18, 0.82);
        backdrop-filter: blur(3px);
        color: #f5ede6;
        padding: 8px 4px;
        text-align: center;
        line-height: 1.3;
        opacity: 0;
        transition: 0.25s;
        pointer-events: none;
        font-weight: 400;
        letter-spacing: 0.02em;
        transform: translateY(6px);
        height: 100%;
        overflow: hidden;
      }

      .ams-avatar-wrap:hover img {
        filter: brightness(0.5) saturate(0.7);
        transform: scale(1.02);
      }

      .ams-avatar-wrap:hover .tooltip-text {
        opacity: 1;
        transform: translateY(0);
      }

      .ams-name {
        margin-top: 8px;
        font-size: 0.75rem;
        font-weight: 500;
        color: #3b2e27;
        background: #ece3db;
        padding: 3px 10px;
        border-radius: 40px;
        letter-spacing: 0.02em;
        border: 1px solid #d1c1b4;
        white-space: nowrap;
      }

      /* ----- guestbook-down ----- */
      .guestbook-down {
        padding: 18px 26px;
        font-size: 0.9rem;
        color: #241d18;
        margin-top: 8px;
      }

      /* адаптив */
      @media (max-width: 700px) {
        .guestbook-main {
          padding: 18px 14px;
        }
        .guest-links {
          gap: 8px 12px;
          padding: 10px 14px;
        }
        .guest-links a {
          font-size: 0.78rem;
        }
        .guestbook-col-right {
          flex: 1 1 100%;
        }
        .ams-row {
          gap: 12px 16px;
        }
        .ams-item {
          width: 70px;
        }
        .ams-avatar-wrap {
          width: 64px;
          height: 64px;
        }
        .tabs-container {
          flex-direction: column;
        }
        .tabs-header {
          flex-direction: row;
          min-width: unset;
          flex-wrap: wrap;
          justify-content: center;
          width: 100%;
        }
        .tab-btn {
          text-align: center;
          white-space: nowrap;
          padding: 8px 12px;
          font-size: 0.7rem;
          width: auto;
          border-radius: 18px;
          margin-right: 0;
        }
        .tab-content {
          margin-left: 0;
          padding: 12px 14px;
        }
      }
    </style>

    <div class="guestbook-main">

      <!-- 1 строка: guest-links -->
      <div class="guest-links">
        <a href="#">правила</a>
        <a href="#">зарегистрированные персонажи</a>
        <a href="#">сюжет</a>
        <a href="#">трудоустройство</a>
        <a href="#">о чистокровных семьях</a>
        <a href="#">хочу к вам</a>
        <a href="#">бонусы новичкам</a>
      </div>

      <!-- 2 строка: две колонки -->
      <div class="guestbook-row">

        <!-- левая колонка: вкладки -->
        <div class="guestbook-col-left">
          <div class="tabs-container">
            <div class="tabs-header">
              <button class="tab-btn active" onclick="showRoleTab(0)">Придержанные</button>
              <button class="tab-btn" onclick="showRoleTab(1)">Выкупленные</button>
            </div>
            <div class="tab-content">

              <!-- Панель 0: Придержанные -->
              <div class="tab-pane active">
                <span class="section-title">Придержанные роли:</span>
                <span class="row-item">longbottom alice ✶ <a href="https://safespace.rusff.me/profile.php?id=277">Alice Longbottom</a> до 11.08</span>

                <span class="section-title">Придержанные внешности:</span>
                <span class="row-item">debicki elizabeth ✶ <a href="https://safespace.rusff.me/profile.php?id=277">Alice Longbottom</a> до 11.08</span>
              </div>

              <!-- Панель 1: Выкупленные роли -->
              <div class="tab-pane">
                <span class="section-title"> Выкупленные роли:</span>
                <span class="row-item">семья <b>Флинт</b> ✶ за АМС, персонажи в семью, включая заявки в нужных, требуют обсуждения с <a href="https://safespace.rusff.me/profile.php?id=75">Alexandrite Avery</a></span>
                <span class="row-item">Bathsheda Babbling ✶ за AMC</span>
                <span class="row-item">Glenda Chittock ✶ за AMC</span>
                <span class="row-item">Lyall Lupin ✶ <a href="https://safespace.rusff.me/profile.php?id=103">Fenrir Greyback</a></span>
                <span class="row-item">Rosalie Wilde ✶ <a href="https://safespace.rusff.me/profile.php?id=122">Benjy Fenwick</a></span>
                <span class="row-item">Rolanda Hooch ✶ за АМС</span>

                <span class="section-title">Выкупленные имена:</span>
                <span class="row-item">Michelle ✶ <a href="https://safespace.rusff.me/profile.php?id=4">Evan Rosier</a></span>
                <span class="row-item">Rosalie ✶ <a href="https://safespace.rusff.me/profile.php?id=122">Benjy Fenwick</a></span>

    <span class="section-title">Выкупленные внешности:</span>
                <span class="row-item">Cara Delevingne ✶ АМС</span>
                <span class="row-item">Meryl Streep</span>
                <span class="row-item">Keanu Reeves ✶ АМС</span>
                <span class="row-item">Rachel McAdams ✶ AMC</span>
                <span class="row-item">Thomas Hayes ✶ АМС</span>
                <span class="row-item">Lily James ✶ АМС</span>
                <span class="row-item">Ville Valo ✶ АМС</span>
                <span class="row-item">Ярослав Баярунас ✶ АМС</span>
                <span class="row-item">Michelle Pfeiffer ✶ АМС</span>
                <span class="row-item">Tom Hughes ✶ АМС</span>
                <span class="row-item">Jack Lowden ✶ <a href="https://safespace.rusff.me/profile.php?id=103">Fenrir Greyback</a></span>
                <span class="row-item">Freddy Carter ✶ <a href="https://safespace.rusff.me/profile.php?id=146">Dahlia Shafiq</a> (маска)</span>
                <span class="row-item">Daisy Ridley ✶ <a href="https://safespace.rusff.me/profile.php?id=122">Benjy Fenwick</a></span>
                <span class="row-item">Karen Gillan ✶ Lucilla Rookwood</span>
              </div>

            </div>
          </div>
        </div>

        <!-- правая колонка: АМС -->
        <div class="guestbook-col-right">
          <div class="ams-grid">
            <div class="ams-row">
              <div class="ams-item">
                <div class="ams-avatar-wrap">
                  <img src="https://upforme.ru/uploads/001c/7d/92/7/t273195.gif" alt="avatar">
                  <span class="tooltip-text">куратор сопротивления и наших сердечек, сюжетник</span>
                </div>
                <span class="ams-name">Alexandrite</span>
              </div>
              <div class="ams-item">
                <div class="ams-avatar-wrap">
                  <img src="https://upforme.ru/uploads/001c/7d/92/2/t213667.gif" alt="avatar">
                  <span class="tooltip-text">куратор сопротивления и наших сердечек, сюжетник</span>
                </div>
                <span class="ams-name">Avery</span>
              </div>
              <div class="ams-item">
                <div class="ams-avatar-wrap">
                  <img src="https://upforme.ru/uploads/001c/7d/92/7/t470695.gif" alt="avatar">
                  <span class="tooltip-text">куратор сопротивления и наших сердечек, сюжетник</span>
                </div>
                <span class="ams-name">Bathsheda</span>
              </div>
              <div class="ams-item">
                <div class="ams-avatar-wrap">
                  <img src="https://forumstatic.ru/files/001c/7d/92/32302.gif" alt="avatar">
                  <span class="tooltip-text">куратор сопротивления и наших сердечек, сюжетник</span>
                </div>
                <span class="ams-name">Glenda</span>
              </div>
              <div class="ams-item">
                <div class="ams-avatar-wrap">
                  <img src="https://upforme.ru/uploads/001c/7d/92/5/t781983.jpg" alt="avatar">
                  <span class="tooltip-text">куратор сопротивления и наших сердечек, сюжетник</span>
                </div>
                <span class="ams-name">Lyall</span>
              </div>
              <div class="ams-item">
                <div class="ams-avatar-wrap">
                  <img src="https://forumavatars.ru/img/avatars/001c/7d/92/9-1753080597.jpg" alt="avatar">
                  <span class="tooltip-text">куратор сопротивления и наших сердечек, сюжетник</span>
                </div>
                <span class="ams-name">Fenrir</span>
              </div>
            </div>
          </div>
        </div>

      </div>

      <!-- 3. guestbook-down -->
      <div class="guestbook-down">
        • Внешности и роли придерживаются за зарегистрированными на 3 суток, вы можете дважды продлить бронь. За гостями все придерживается на сутки.<br>
        • Не больше 2х внешностей/ролей в одни руки.<br>
        • Хэдканоны и чистокровные до подачи анкеты обсуждаются с АМС (мы просто экстраверты все и любим поговорить)
      </div>

    </div>

    <script>
      function showRoleTab(index) {
        const tabs = document.querySelectorAll('.tab-pane');
        const buttons = document.querySelectorAll('.tab-btn');
        tabs.forEach((tab, i) => {
          tab.classList.toggle('active', i === index);
          buttons[i].classList.toggle('active', i === index);
        });
      }
    </script>[/html]

    0

    19

    Код:
    /****************************************
    Примерочная by DeepSeek and Storyteller
    ****************************************/
    .dressing-room {
        background: var(--news-bg);
        border-radius: 10px;
        padding: 20px;
        margin: 20px 0;
        color: var(--textcolor);
    }
    
    /* ДВЕ КОЛОНКИ */
    .two-columns {
        display: flex;
        gap: 30px;
        flex-wrap: wrap;
    }
    
    .right-column {
        flex: 1;
        min-width: 400px;
    }
    
    .dressing-room h3 {
    color: var(--textcolor);
        margin: 20px 0 10px 0;
        font-size: 14px;
        text-transform: lowercase;
        padding: 5px;
        display: flex;
        justify-content: space-between;
        align-items: center;
        flex-wrap: wrap;
        background: var(--post-bg);
        border-radius: 5px;
    }
    
    .collection-title {
    font-size: 12px;
        color: var(--textcolor);
        padding-left: 10px;
        margin-bottom: 10px;
        border-left: 3px solid var(--textcolor);
    text-transform: lowercase;
    }
    
    .collection-badge {
        font-size: 10px;
        background: var(--post-bg);
        color: var(--profilebg);
        padding: 2px 6px;
        border-radius: 10px;
        margin-left: 8px;
        vertical-align: middle;
    }
    
    .category-controls {
        display: flex;
        gap: 15px;
        align-items: center;
        flex-wrap: wrap;
    }
    
    .clear-category-btn {
        background: var(--profilebg);
        color: var(--profiletext);
        border: 1px solid var(--profilelink);
        padding: 3px 8px;
        border-radius: 5px;
        font-size: 10px;
        cursor: pointer;
    text-transform: lowercase;
    }
    
    .clear-category-btn:hover {
        background: var(--profilelink);
        color: var(--profiletext);
    }
    
    .gift-checkbox {
        display: flex;
        align-items: center;
        gap: 5px;
        font-size: 11px;
         cursor: pointer;
    }
    
    .gift-checkbox input {
        cursor: pointer;
        width: 14px;
        height: 14px;
    }
    
    /* Блоки с картинками */
    .shop-container {
    border: 1px solid var(--post-bg);
        border-radius: 8px;
        overflow: hidden;
        margin-bottom: 10px;
    }
    
    .shop-content {
        max-height: 100px;
        overflow-y: auto;
        padding: 10px;
    }
    
    .shop-content::-webkit-scrollbar {
        width: 5px;
    }
    
    .shop-content::-webkit-scrollbar-track {
        background: var(--profilebg);
        border-radius: 5px;
    }
    
    .shop-content::-webkit-scrollbar-thumb {
        background: var(--profilelink);
        border-radius: 5px;
    }
    
    .shop-content-plashka {
        max-height: 70px;
    }
    
    .shop-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 14px;
        margin-bottom: 20px;
    }
    
    .shop-grid:last-child {
        margin-bottom: 0;
    }
    
    .shop-item {
        position: relative;
        cursor: pointer;
        border-radius: 5px;
        border: 2px solid transparent;
        transition: all 0.2s ease;
        text-align: center;
    }
    
    .shop-item:hover {
        transform: scale(1.05);
        border-color: var(--profilelink);
    }
    
    .shop-item-img {
        width: 60px;
        height: 60px;
        object-fit: cover;
        border-radius: 5px;
        display: block;
    }
    
    .shop-item-plashka {
        width: 100px;
        height: 26px;
        object-fit: cover;
        border-radius: 3px;
        display: block;
    }
    
    .shop-item-emoji {
        width: 30px;
        height: 30px;
        object-fit: contain;
        border-radius: 5px;
        display: block;
    }
    
    .shop-price {
        font-size: 9px;
        color: var(--profilelink);
        background: var(--post-bg);
        padding: 2px 4px;
        border-radius: 3px;
        margin-top: 4px;
        display: inline-block;
    }
    
    .preview-label {
        text-align: center;
        margin-bottom: 20px;
        font-size: 12px;
    }
    
    .url-row {
        margin-bottom: 20px;
        padding: 10px;
        background: var(--post-bg);
        border-radius: 5px;
    }
    
    .url-row label {
        display: block;
        margin-bottom: 5px;
        color: var(--textcolor);
        font-size: 11px;
    text-transform: lowercase;
    }
    
    .url-input-group input {
        width: 100%;
        background: var(--main-bg);
        color: var(--profiletext);
        border: 1px solid var(--profilelink)!important;
        padding: 8px 12px;
        border-radius: 5px;
        font-size: 12px;
        box-sizing: border-box;
    }
    
    .url-price {
        font-size: 10px;
        color: var(--profiletext);
        margin-top: 5px;
    }
    
    .text-controls {
    margin-bottom: 20px;
        padding: 10px;
        border-radius: 5px;
        border: 1px solid var(--post-bg);
    }
    
    .text-controls label {
    display: block;
        margin-bottom: 5px;
        color: var(--textcolor);
        font-size: 11px;
    text-transform: lowercase;
    }
    
    .text-input-group input {
        width: 100%;
        background: var(--main-bg);
        color: var(--textcolor);
        border: 1px solid var(--profilelink)!important;
        padding: 8px 12px;
        border-radius: 5px;
        font-size: 12px;
        box-sizing: border-box;
    }
    
    /* Спойлер для фраз */
    .phrases-spoiler {
        margin-top: 15px;
    }
    
    .phrases-spoiler summary {
        cursor: pointer;
        color: var(--profilelink);
        font-size: 11px;
        padding: 5px;
        display: inline-block;
        border: 1px solid var(--profilelink);
        border-radius: 10px;
    margin-bottom: 5px;
    }
    
    .phrases-grid {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        margin-top: 10px;
        max-height: 120px;
        overflow-y: auto;
        padding: 5px;
    }
    
    .phrases-grid::-webkit-scrollbar {
        width: 3px;
    }
    
    .phrase-item {
        background: var(--main-bg);
        color: var(--textcolor);
        border: 1px solid var(--profilelink);
        padding: 4px 8px;
        border-radius: 5px;
        font-size: 10px;
        cursor: pointer;
        transition: all 0.2s ease;
    }
    
    .phrase-item:hover {
        background: var(--profilelink);
        color: var(--profilebg);
    }
    
    .color-controls {
        display: flex;
        gap: 10px;
        align-items: center;
        flex-wrap: wrap;
        margin-top: 10px;
    }
    
    .color-controls label {
        font-size: 11px;
        color: var(--textcolor);
    }
    
    .color-picker {
        width: 15px;
        height: 15px;
        padding: 0;
        border: none;
        border-radius: 50%;
        cursor: pointer;
        background: var(--dark-accent);
        overflow: hidden;
        box-shadow: 0 1px 3px rgba(0,0,0,0.2);
    }
    
    .color-picker::-webkit-color-swatch-wrapper {
        padding: 0;
    }
    
    .color-picker::-webkit-color-swatch {
        border: none;
        border-radius: 50%;
    }
    
    .color-picker::-moz-color-swatch {
        border: none;
        border-radius: 50%;
    }
    
    .color-picker:focus {
        outline: none;
    }
    
    .grayscale-controls {
        display: flex;
        gap: 10px;
        margin-top: 10px;
        flex-wrap: wrap;
    text-transform: lowercase;
    }
    
    .grayscale-btn {
    background: var(--post-bg);
        border: 1px solid var(--profilelink);
        padding: 5px 10px;
        border-radius: 10px;
        font-size: 11px;
        cursor: pointer;
        color: var(--footer);
    }
    
    .grayscale-btn:hover {
        background: var(--profilelink);
        color: var(--post-bg);
    }
    
    .reset-btn {
    background: var(--post-bg);
        border: 1px solid var(--profilebg);
        margin-top: 10px;
        width: 100%;
        padding: 10px;
        cursor: pointer;
        text-transform: lowercase;
        border-radius: 10px;
    }
    
    .hint {
        font-size: 10px;
        opacity: 0.7;
        margin-top: 5px;
    }
    
    /* Блок с итоговой стоимостью и генерацией */
    .result-block {
        margin-top: 20px;
        padding: 15px;
        border-radius: 5px;
        border: 1px solid var(--profilelink);
    }
    
    .total-cost-block {
        padding: 12px;
        background: var(--post-bg);
        border-radius: 5px;
        text-align: center;
        margin-bottom: 15px;
    }
    
    .total-cost-block span {
        font-size: 18px;
        font-weight: bold;
        color: var(--profilebg);
    }
    
    .total-cost-label {
        font-size: 12px;
        color: var(--profilebg);
        opacity: 0.9;
    }
    
    /* Исправление для левой колонки */
    .left-column-shop {
        flex: 0 0 320px; /* фиксированная ширина */
        min-width: 250px;
        max-width: 400px;
    }
    
    /* Исправление для блока результата */
    .result-block {
        margin-top: 20px;
        padding: 15px;
        border-radius: 5px;
        border: 1px solid var(--profilelink);
        width: 100%;
        box-sizing: border-box;
    }
    
    /* Исправление для контейнера с кодом */
    .code-container {
        background: var(--main-bg);
        padding: 12px;
        border-radius: 5px;
        font-family: monospace;
        font-size: 11px;
        word-break: break-all;
        margin-bottom: 10px;
        max-height: 200px;
        overflow: auto;
        max-width: 100%;
        box-sizing: border-box;
    }
    
    /* Исправление для генератора и других блоков в левой колонке */
    .total-cost-block,
    .balance-block,
    .code-container,
    .generate-btn {
        max-width: 100%;
        box-sizing: border-box;
    }
    
    
    
    .generate-btn {
    background: var(--footer);
        border: none;
        padding: 12px;
        border-radius: 5px;
        font-weight: bold;
        cursor: pointer;
        width: 100%;
        font-size: 14px;
        transition: 0.3s;
        text-transform: lowercase;
        color: var(--post-bg);
    }
    
    .generate-btn.copied {
        background: var(--post-bg);
    color: var(--textcolor);
    }
    
    
    /* общий блок - исправленный */
    .general {
        display: flex;
        flex-direction: column;
        color: var(--footer);
        max-width: 300px;
    }
    
    .general img {
        width: 150px;
        height: 150px;
        object-fit: cover;
        border-radius: 5px;
        border: 1px solid var(--footer);
        margin: 0 auto;
    }
    
    .general h2 {
        font-weight: normal;
        text-align: center;
        color: var(--dark-accent);
        font-family: var(--extra-font);
        font-size: 25px;
        margin: 0;
    }
    
    .fraction {
        background: var(--body-bg);
        color: var(--profilebg);
        border-radius: 5px;
        padding: 5px 8px;
        text-align: center;
        font-size: 12px;
        width: 100%;
        box-sizing: border-box;
    }
    
    .occupation {
        font-size: 12px;
        text-align: center;
        padding: 0 5px;
        line-height: 1.4;
    }
    
    .plashka-item {
        position: relative;
        display: inline-block;
        max-width: 200px;
        width: 100%;
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
        overflow: hidden;
    }
    
    .plashka-item img {
        width: 100%;
        height: 22px;
        display: block;
    object-fit: cover;}
    
    
    .plashka-item img {
        display: block;
        max-width: 200px!important;
        height: 22px!important;
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
    }
    
    
    .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, #ffffff);
        font-size: 8px;
        letter-spacing: 0.1em;
        pointer-events: none;
        background: rgba(0, 0, 0, 0.3);
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
    }
    
    .icons-gallery img {
        width: 34px !important;
        height: 34px !important;
        object-fit: cover;
        border-radius: 5px;
    }
    
    
    .modal-content {
    height: auto !important;
        min-height: auto !important;
        display: flex;
        align-items: flex-start;
        gap: 20px;
    }
    
    .spell {background: var(--spell-img) no-repeat;
        background-size: contain;
        width: 118px;
        height: 86px;
        position: absolute;
        left: 629px;
        top: 281px;}
    
    .bg-filters {
        margin-top: 20px;
        padding: 10px;
        background: var(--profilebg);
        border-radius: 5px;
    }
    
    .bg-filters h3 {
        margin-top: 0 !important;
    }
    
    .overlay-controls {
        margin-top: 15px;
        padding-top: 10px;
        border-top: 1px solid var(--profilelink);
    }
    
    .balance-block {
        background: var(--profilebg);
        border-radius: 8px;
        padding: 12px;
        margin-top: 15px;
    }
    
    .balance-block label {
        display: block;
        font-size: 11px;
        color: var(--profiletext);
        margin-bottom: 5px;
    }
    
    .balance-input {
        width: 100%;
        padding: 8px;
        background: var(--main-bg);
        border: 1px solid var(--profilelink);
        border-radius: 5px;
        color: var(--profiletext);
        font-size: 14px;
        font-weight: bold;
        box-sizing: border-box;
    }
    
    .remaining-block {
        margin-top: 10px;
        padding-top: 8px;
        border-top: 1px solid var(--profilelink);
        text-align: center;
    }
    
    .remaining-label {
        font-size: 11px;
        color: var(--profiletext);
    }
    
    .remaining-value {
        font-size: 18px;
        font-weight: bold;
        color: var(--profilebg);
        background: var(--profilelink);
        padding: 2px 8px;
        border-radius: 5px;
        margin: 0 5px;
    }
    
    .remaining-currency {
        font-size: 10px;
        color: var(--profiletext);
    }
    
    /* Демо-профиль */
    .demo-profile {
        width: 220px;
        margin: 0 auto;
    }
    
    .demo-profile .post-author {
    width: 220px;
        height: fit-content;
        padding-bottom: 20px;
        text-align: center;
        box-sizing: border-box;
        background-size: contain;
        margin-bottom: 20px;
        position: relative;
        border-radius: 5px;
        filter: drop-shadow(0px 4px 4px rgba(63, 61, 62, 0.2));
    }
    
    .demo-profile .pa-fld1 {
        width: 100%;
        height: 103%;
        text-align: center;
        box-sizing: border-box;
        position: relative;
        filter: drop-shadow(0px 4px 4px rgba(63, 61, 62, 0.2));
        z-index: -1;
        inset: 0;
        border-radius: 25px;
    }
    
    .demo-profile .pa-fld1 img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    .demo-profile ul {
    background-color: var(--body-bg);
        border-radius: 20px;
        width: 220px;
        height: fit-content;
        margin-top: -400px!important;
        min-height: 150px;
    }
    
    .demo-profile .pa-avatar {
        text-align: center;
    }
    
    .demo-profile .pa-avatar img {
    width: 180px;
        height: 180px;
        object-fit: contain;
    }
    
    .demo-profile .pa-author {
        font-family: var(--extra-font);
        font-size: 18px;
        text-align: center;
        color: var(--podforum);
        margin: 5px 0 0;
    }
    
    .demo-profile .pa-author a {
        color: var(--podforum);
        font-weight: normal;
        text-transform: lowercase;
    }
    
    .demo-profile .pa-title {
        font-size: 8px;
        text-transform: lowercase;
        text-align: center;
        color: var(--link-hover);
        letter-spacing: 0.1em;
    }
    
    .demo-profile .pa-fld2 {
        font-size: 9px;
        text-align: center;
        color: var(--profiletext);
        padding: 0 10px;
    }
    
    .demo-profile .lz-name {
        text-align: center;
        font-size: 12px;
        font-weight: 700;
        color: var(--dark-accent);
        margin-top: 4px;
    }
    
    .demo-profile .lz-name a {
        color: var(--dark-accent);
    }
    
    .demo-profile .lz-caste {
    background: var(--dark-accent);
        height: 20px;
        width: 14px;
        text-align: center;
        margin: 0 auto;
        font-size: 8px;
        letter-spacing: 0.1em;
        color: var(--textcolor);
        font-weight: bold;
        margin-top: 4px;
        margin-bottom: 0px;
        position: absolute;
        top: 100px;
        left: 1px;
        padding-left: 3px;
        display: flex;
        border-top-left-radius: 5px;
        border-bottom-left-radius: 5px;
        align-items: center;
    }
    
    .demo-profile .pa-fld5 {
        text-align: center;
        margin: 5px 0;
    }
    
    .demo-profile .pa-fld5 img {
        width: 34px;
        height: 34px;
        object-fit: cover;
        border-radius: 5px;
    }
    
    .demo-profile .pa-posts,
    .demo-profile .pa-respect,
    .demo-profile .pa-fld6,
    .demo-profile .pa-fld3 {
    display: inline-block;
        width: 30px;
        margin: 6px 0px !important;
        padding: 2px 13px 0px 7px !important;
        font-size: 7px;
        color: var(--profiletext);
        letter-spacing: 0.05em;
    }
    
    .demo-profile .pa-posts .fld-name::before {
        content: '\f0e0';
        font-family: 'Font Awesome 6 Pro';
        font-size: 12px;
        display: block;
    }
    
    .demo-profile .pa-respect .fld-name::before {
        content: '\f004';
        font-family: 'Font Awesome 6 Pro';
        font-size: 12px;
        display: block;
    }
    
    .demo-profile .pa-fld6 .fld-name::before {
        content: '\f56b';
        font-family: 'Font Awesome 6 Pro';
        font-size: 12px;
        display: block;
    }
    
    .demo-profile .pa-fld3 .fld-name::before {
        content: '\f51e';
        font-family: 'Font Awesome 6 Pro';
        font-size: 12px;
        display: block;
    }
    
    .demo-profile .pa-posts .fld-name a,
    .demo-profile .pa-respect .fld-name a,
    .demo-profile .pa-fld6 .fld-name a,
    .demo-profile .pa-fld3 .fld-name a {
        color: var(--profiletext);
        text-decoration: none;
        font-size: 0;
    }
    
    .demo-profile .plashka {
        position: relative;
        width: 100%;
        height: 28px;
        border-radius: 0 0 25px 25px;
        overflow: hidden;
        background: var(--sec-bg);
    }
    
    .demo-profile .plashka img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    
    .demo-profile .plashka a {
    position: absolute;
        inset: 0;
        display: flex;
        align-items: center;    
        justify-content: center; 
        text-align: center;
        padding: 0 10px;    
        word-break: break-word;     
    color: var(--textcolor)!important;
    }
    

    0

    20

    амс в гостевой

    Код:
    .guest-ams {
      display: grid;
      grid-template-columns: repeat(3, 65px);
      gap: 5px;
      justify-content: center;
      margin: 0 auto;
    }
    
    .guest-ams .tooltip:nth-child(4) {
      grid-column: 2 / 3;
    }
    
    .guest-ams img {
      width: 65px;
      height: 30px;
      background: var(--light-accent);
      object-fit: cover;
      object-position: top center;
      border-radius: 5px;
      position: relative;
    }
    
    .ams-2 {display: flex;
        align-items: center;
        justify-content: center;
        margin-left: 100px;
        gap: 5px;}
    
    .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(--topic-overlay);
      border-radius: inherit;
      pointer-events: none;
    }

    0

    21

    напиши код имитирующий переписку в смс-ках. используй для стилизации телефон, который был популярен в британии в 2007м. например, nokia 6300
    [html]<!DOCTYPE html>
    <html lang="ru">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Nokia 6300 — SMS 2007</title>
        <style>
            /* Глобальный сброс и фон */
            * {
                margin: 0;
                padding: 0;
                box-sizing: border-box;
            }

            body {
                background: #2b2b2b;
                min-height: 100vh;
                display: flex;
                justify-content: center;
                align-items: center;
                font-family: 'Courier New', Courier, monospace;
            }

            /* Корпус телефона — серебристый, как у Nokia 6300 */
            .phone {
                background: linear-gradient(145deg, #d0d0d0, #b0b0b0);
                padding: 20px 12px 30px;
                border-radius: 40px 40px 50px 50px;
                box-shadow:
                    0 20px 40px rgba(0,0,0,0.6),
                    inset 0 2px 4px rgba(255,255,255,0.6),
                    inset 0 -4px 8px rgba(0,0,0,0.3);
                border: 2px solid #a0a0a0;
                width: 320px;
                position: relative;
            }

            /* Динамик (сетка) */
            .speaker {
                width: 60px;
                height: 8px;
                background: #3a3a3a;
                margin: 0 auto 12px;
                border-radius: 20px;
                display: flex;
                justify-content: center;
                align-items: center;
                gap: 6px;
                box-shadow: inset 0 1px 3px #000;
            }
            .speaker span {
                display: block;
                width: 4px;
                height: 4px;
                background: #555;
                border-radius: 50%;
            }

            /* Экран — тот самый зелёный монохром */
            .screen {
                background: #1e3b1e;
                background-image: radial-gradient(circle at 20% 30%, #2a5a2a 1px, transparent 1px);
                background-size: 8px 8px;
                border: 6px solid #2a2a2a;
                border-radius: 16px;
                padding: 16px 12px 12px;
                min-height: 420px;
                display: flex;
                flex-direction: column;
                box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 0 2px #6a6a6a;
                position: relative;
            }

            /* Заголовок экрана — как "Сообщения" */
            .screen-header {
                display: flex;
                justify-content: space-between;
                color: #9bc99b;
                font-size: 11px;
                font-weight: bold;
                letter-spacing: 1px;
                text-transform: uppercase;
                border-bottom: 1px dashed #3a6a3a;
                padding-bottom: 6px;
                margin-bottom: 10px;
                text-shadow: 0 0 6px #6f9e6f;
            }
            .screen-header span:last-child {
                font-weight: normal;
                font-size: 10px;
            }

            /* Область сообщений — скролл */
            .messages {
                flex: 1;
                display: flex;
                flex-direction: column;
                gap: 8px;
                max-height: 300px;
                overflow-y: auto;
                padding-right: 4px;
                margin-bottom: 10px;
                scroll-behavior: smooth;
            }
            /* Стилизация скролла под ретро */
            .messages::-webkit-scrollbar {
                width: 6px;
            }
            .messages::-webkit-scrollbar-track {
                background: #0f2a0f;
                border-radius: 8px;
            }
            .messages::-webkit-scrollbar-thumb {
                background: #4f7a4f;
                border-radius: 8px;
                border: 1px solid #2a4a2a;
            }

            /* Базовый стиль сообщения */
            .msg {
                padding: 6px 10px;
                border-radius: 12px;
                font-size: 13px;
                line-height: 1.5;
                max-width: 85%;
                word-wrap: break-word;
                font-family: 'Courier New', Courier, monospace;
                background: #112b11;
                color: #b3e0b3;
                border: 1px solid #2a5a2a;
                box-shadow: inset 0 0 6px rgba(0,20,0,0.6);
                text-shadow: 0 0 4px #6f9e6f;
                position: relative;
                animation: fadeIn 0.2s ease;
            }

            /* Исходящие (справа) */
            .msg.out {
                align-self: flex-end;
                background: #1a3d1a;
                border-color: #4a8a4a;
                border-bottom-right-radius: 2px;
            }

            /* Входящие (слева) */
            .msg.in {
                align-self: flex-start;
                background: #0f2a0f;
                border-color: #2a5a2a;
                border-bottom-left-radius: 2px;
            }

            /* Псевдо-подпись "от кого" для входящих */
            .msg.in::before {
                content: "▼ ";
                font-size: 9px;
                color: #6a9a6a;
            }

            /* Время (как в старых SMS) */
            .msg .time {
                display: block;
                font-size: 9px;
                color: #6a8a6a;
                text-align: right;
                margin-top: 4px;
                border-top: 1px dotted #2a4a2a;
                padding-top: 2px;
                letter-spacing: 0.5px;
            }

            /* Анимация появления */
            @keyframes fadeIn {
                0% { opacity: 0.4; transform: scale(0.98); }
                100% { opacity: 1; transform: scale(1); }
            }

            /* Блок ввода (как старая клавиатура) */
            .input-area {
                display: flex;
                gap: 6px;
                margin-top: 6px;
                border-top: 1px solid #2a4a2a;
                padding-top: 10px;
                align-items: center;
            }

            #messageInput {
                flex: 1;
                background: #0f2a0f;
                border: 2px solid #2a5a2a;
                border-radius: 20px;
                padding: 8px 14px;
                color: #b3e0b3;
                font-family: 'Courier New', Courier, monospace;
                font-size: 13px;
                outline: none;
                box-shadow: inset 0 0 12px rgba(0,0,0,0.8);
                text-shadow: 0 0 4px #6f9e6f;
            }
            #messageInput::placeholder {
                color: #4a6a4a;
                font-size: 11px;
                text-shadow: none;
            }
            #messageInput:focus {
                border-color: #6aaa6a;
                background: #122e12;
            }

            /* Кнопки как у Nokia — софт-клавиши */
            .btn-group {
                display: flex;
                gap: 6px;
            }

            .btn {
                background: #3a3a3a;
                border: 2px solid #555;
                border-radius: 30px;
                padding: 6px 12px;
                color: #ddd;
                font-family: 'Courier New', Courier, monospace;
                font-weight: bold;
                font-size: 11px;
                text-transform: uppercase;
                letter-spacing: 0.5px;
                cursor: pointer;
                box-shadow: inset 0 -2px 0 #1a1a1a, 0 2px 4px rgba(0,0,0,0.4);
                transition: 0.06s linear;
                text-shadow: 0 1px 0 #000;
            }
            .btn:active {
                transform: scale(0.94);
                background: #2a2a2a;
                box-shadow: inset 0 0 8px #000;
            }
            .btn-primary {
                background: #4a6a4a;
                border-color: #6a9a6a;
                color: #d0f0d0;
            }
            .btn-primary:active {
                background: #2a4a2a;
            }

            /* Физические кнопки телефона (симуляция) */
            .hard-keys {
                display: flex;
                justify-content: space-between;
                margin-top: 18px;
                padding: 0 10px;
            }
            .hard-keys div {
                background: #9a9a9a;
                border-radius: 30px;
                padding: 6px 20px;
                font-size: 10px;
                font-weight: bold;
                color: #222;
                letter-spacing: 2px;
                box-shadow: inset 0 -3px 0 #6a6a6a, 0 3px 6px rgba(0,0,0,0.3);
                cursor: default;
                text-transform: uppercase;
            }
            .hard-keys .center {
                background: #7a7a7a;
                padding: 6px 28px;
                border-radius: 30px;
                box-shadow: inset 0 -3px 0 #4a4a4a, 0 3px 6px rgba(0,0,0,0.3);
            }
            /* Джойстик (имитация) */
            .joystick {
                width: 40px;
                height: 40px;
                background: radial-gradient(circle, #aaa, #777);
                border-radius: 50%;
                margin: 8px auto 0;
                box-shadow: inset 0 -4px 0 #555, 0 4px 8px rgba(0,0,0,0.5);
                border: 2px solid #888;
            }

            /* Адаптив */
            @media (max-width: 380px) {
                .phone { width: 100%; border-radius: 30px; padding: 16px 8px 20px; }
                .screen { min-height: 360px; padding: 12px 8px; }
                .msg { font-size: 12px; }
            }
        </style>
    </head>
    <body>

    <div class="phone">
        <!-- Динамик -->
        <div class="speaker">
            <span></span><span></span><span></span><span></span>
        </div>

        <!-- Экран -->
        <div class="screen">
            <div class="screen-header">
                <span>📟 Сообщения</span>
                <span>Nokia 6300</span>
            </div>

            <!-- Контейнер сообщений -->
            <div class="messages" id="chatContainer">
                <!-- Сообщения будут добавляться сюда -->
            </div>

            <!-- Блок ввода + кнопки -->
            <div class="input-area">
                <input type="text" id="messageInput" placeholder="Напиши SMS..." autofocus>
                <div class="btn-group">
                    <button class="btn btn-primary" id="sendBtn">📤</button>
                    <button class="btn" id="clearBtn">✕</button>
                </div>
            </div>

            <!-- Подпись-статус (как в старых телефонах) -->
            <div style="color: #4a7a4a; font-size: 9px; text-align: center; margin-top: 8px; letter-spacing: 1px; border-top: 1px dotted #1a3a1a; padding-top: 6px;">
                ██ 2 сообщения  ██  сигнал: ████
            </div>
        </div>

        <!-- Физические кнопки (декорация) -->
        <div class="hard-keys">
            <div>◀︎</div>
            <div class="center">OK</div>
            <div>▶︎</div>
        </div>
        <div class="joystick"></div>
    </div>

    <script>
        (function() {
            // Элементы
            const chat = document.getElementById('chatContainer');
            const input = document.getElementById('messageInput');
            const sendBtn = document.getElementById('sendBtn');
            const clearBtn = document.getElementById('clearBtn');

            // Функция генерации времени (HH:MM)
            function getCurrentTime() {
                const now = new Date();
                const h = String(now.getHours()).padStart(2, '0');
                const m = String(now.getMinutes()).padStart(2, '0');
                return h + ':' + m;
            }

            // Функция добавления сообщения
            function addMessage(text, type = 'out') {
                if (!text || text.trim() === '') return;

                const time = getCurrentTime();
                const msgDiv = document.createElement('div');
                msgDiv.className = `msg ${type}`;
                // Для входящих добавим "отправитель" (имитация)
                if (type === 'in') {
                    msgDiv.innerHTML = `${text} <span class="time">${time}</span>`;
                } else {
                    msgDiv.innerHTML = `${text} <span class="time">${time}</span>`;
                }
                chat.appendChild(msgDiv);
                // Автоскролл вниз
                chat.scrollTop = chat.scrollHeight;
            }

            // Отправка сообщения (исходящее)
            function sendMessage() {
                const text = input.value.trim();
                if (text === '') return;

                // Добавляем исходящее
                addMessage(text, 'out');
                input.value = '';
                input.focus();

                // Имитация ответа (входящее) через случайную задержку (как будто сеть 2G)
                const delay = 700 + Math.floor(Math.random() * 1800);
                setTimeout(() => {
                    // Несколько вариантов ответов в стиле 2007
                    const replies = [
                        'Ок, встретимся в 7',
                        'Я на маршрутке, буду через 10',
                        'Скинь мелодию, плиз',
                        'А какой тариф? У меня pay as you go',
                        'Класс! А у тебя есть Bluetooth?',
                        'Слушай, а у тебя заряда сколько?',
                        'Давай завтра, ок?',
                        'Я на O2, а ты?',
                        'Скинь картинку, я поставлю на заставку',
                        'Хаха, помнишь Nokia 3310?'
                    ];
                    const randomReply = replies[Math.floor(Math.random() * replies.length)];
                    addMessage(randomReply, 'in');
                }, delay);
            }

            // Обработчики
            sendBtn.addEventListener('click', sendMessage);
            input.addEventListener('keydown', (e) => {
                if (e.key === 'Enter') {
                    e.preventDefault();
                    sendMessage();
                }
            });

            // Кнопка очистки (с диалогом, как в старых телефонах)
            clearBtn.addEventListener('click', () => {
                if (chat.children.length === 0) return;
                const sure = confirm('Очистить все сообщения?');
                if (sure) {
                    chat.innerHTML = '';
                    // Добавим служебное сообщение
                    const emptyMsg = document.createElement('div');
                    emptyMsg.style.cssText = 'color: #4a6a4a; font-size: 11px; text-align: center; padding: 20px 0; border-bottom: 1px dashed #1a3a1a;';
                    emptyMsg.textContent = '~ сообщения удалены ~';
                    chat.appendChild(emptyMsg);
                    setTimeout(() => {
                        if (chat.firstChild === emptyMsg) {
                            emptyMsg.remove();
                        }
                    }, 2500);
                }
            });

            // Стартовые приветственные сообщения (атмосфера)
            window.addEventListener('load', () => {
                setTimeout(() => {
                    addMessage('Привет! Это Nokia 6300 📟', 'in');
                }, 300);
                setTimeout(() => {
                    addMessage('Круто! Как дела?', 'in');
                }, 1200);
                setTimeout(() => {
                    addMessage('Отлично, а ты как?', 'out');
                }, 2400);
                setTimeout(() => {
                    addMessage('Тоже норм. Что нового?', 'in');
                }, 3600);
            });

            // Фокус на ввод при клике на экран (удобство)
            document.querySelector('.screen').addEventListener('click', () => {
                input.focus();
            });

            // Дополнительно: если инпут теряет фокус, подсветка
            input.addEventListener('blur', () => {
                // ничего не делаем, просто для атмосферы
            });

            console.log('Nokia 6300 SMS simulator — 2007 style');
        })();
    </script>

    </body>
    </html>[/html]

    0

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

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



    Вы здесь » Squirrel test » — волшебники в розыске » seamus finnigan


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