2026, мистика, 18+
Kindred Spirits

Kindred Spirits

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

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


Вы здесь » Kindred Spirits » Блоги » Steel Bones


Steel Bones

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

1

[html]<div style="
  background:#3a3a3a;
  color:#ededed;
  padding:20px;
  border-radius:12px;
  max-width:860px;
  font-family:Verdana, Arial, sans-serif;
">

  <!-- Название -->
  <div style="font-size:26px;font-weight:700;margin-bottom:12px;color:#fff;">
    Tear You Apart
  </div>

  <!-- Верхние плашки -->
  <div style="margin-bottom:18px; display:flex; flex-wrap:wrap; gap:6px;">
    <span class="tag" style="background:#1f8a9b;color:#fff;padding:5px 10px;border-radius:6px;font-size:13px;">Слэш</span>
    <span class="tag" style="background:#901f25;color:#fff;padding:5px 10px;border-radius:6px;font-size:13px;">NC-21</span>
    <span class="tag" style="background:#c8c1a6;color:#3a3a3a;padding:5px 10px;border-radius:6px;font-size:13px;">В процессе</span>
    <span class="tag" style="background:#2f7d32;color:#fff;padding:5px 10px;border-radius:6px;font-size:13px;">👍 Скрыто</span>
  </div>

  <!-- Основной блок -->
  <div style="display:flex; gap:18px; align-items:flex-start;">

    <!-- Левая колонка -->
    <div style="flex:1; font-size:14px; line-height:1.65;">

      <!-- Авторы -->
      <div style="margin-bottom:10px;">
        <strong style="color:#fff;">Авторы:</strong><br>
        <div style="display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;">
          <span class="tag" style="display:inline-flex; align-items:center; gap:6px; background:#4a4a4a; padding:4px 8px; border-radius:6px;">
            <img src="https://upforme.ru/uploads/001c/82/f2/62/231882.png" alt="аватар1" style="width:24px;height:24px;border-radius:50%;object-fit:cover;"> Sean Bones
          </span>
          <span class="tag" style="display:inline-flex; align-items:center; gap:6px; background:#4a4a4a; padding:4px 8px; border-radius:6px;">
            <img src="https://upforme.ru/uploads/001c/82/f2/62/529972.png" alt="аватар2" style="width:24px;height:24px;border-radius:50%;object-fit:cover;"> Clyde Steel
          </span>
        </div>
      </div>

      <!-- Пейринг -->
      <div style="margin-bottom:10px;">
        <strong style="color:#fff;">Пейринг:</strong><br>
        <div style="display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;">
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Steel Boner</span>
        </div>
      </div>

      <!-- Фэндом -->
      <div style="margin-bottom:10px;">
        <strong style="color:#fff;">Фэндом:</strong><br>
        Ориджиналы
      </div>

      <!-- Размер -->
      <div style="margin-bottom:14px;">
        <strong style="color:#fff;">Размер:</strong><br>
        планируется Макси, написано 42 страницы, 9 345 слов, 2 части
      </div>

      <!-- Жанры -->
      <div style="margin-bottom:12px;">
        <strong style="color:#fff;">Жанры:</strong><br>
        <div style="display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;">
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Любовь/Ненависть</span>
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Ангст</span>
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Мистика</span>
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Соулмейты</span>
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Учебные заведения</span>
        </div>
      </div>

      <!-- Предупреждения -->
      <div style="margin-bottom:12px;">
        <strong style="color:#fff;">Предупреждения:</strong><br>
        <div style="display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;">
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Садизм</span>
          <span class="tag" style="background:#6a3b3b;padding:4px 8px;border-radius:6px;">Гуро</span>
          <span class="tag" style="background:#6a3b3b;padding:4px 8px;border-radius:6px;">Зоофилия</span>
          <span class="tag" style="background:#6a3b3b;padding:4px 8px;border-radius:6px;">Каннибализм</span>
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Насилие</span>
          <span class="tag" style="background:#6a3b3b;padding:4px 8px;border-radius:6px;">Некрофилия</span>
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Нецензурная лексика</span>
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Серая мораль</span>
          <span class="tag" style="background:#6a3b3b;padding:4px 8px;border-radius:6px;">Смерть второстепенного персонажа</span>
        </div>
      </div>

      <!-- Другие метки -->
      <div style="margin-bottom:14px;">
        <strong style="color:#fff;">Другие метки:</strong><br>
        <div style="display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;">
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Боль</span>
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Отрицание чувств</span>
          <span class="tag" style="background:#4a4a4a;padding:4px 8px;border-radius:6px;">Лишение конечности</span>
        </div>
      </div>

    </div>

    <!-- Правая колонка: обложка -->
    <div style="width:220px;flex-shrink:0; display:flex; justify-content:center; align-items:flex-start;">
      <div class="cover-wrapper" style="
        background:#2d2d2f;
        border-radius:10px;
        overflow:hidden;
        box-shadow:0 6px 16px rgba(0,0,0,0.4);
        width:300px;
        height:450px;
      ">
        <img
          src="https://upforme.ru/uploads/001c/82/f2/62/625344.png"
          alt="Обложка фанфика"
          style="width:100%; height:100%; display:block; object-fit:cover; transition: transform 0.3s ease;">
      </div>
    </div>
  </div>
  <!-- Описание фанфика -->
  <div style="margin-top:20px; padding:12px; background:#2d2d2f; border-radius:8px; line-height:1.5; clear:both;">
    <strong style="color:#fff;">Описание фанфика:</strong><br>
   Я ненавижу тебя за то, что, стоит мне замахнуться на твой пульс, как мой собственный припадает к земле и затравленно щерится. Ненавижу за то, что в твоих глазах, сколько ни ищи, сколько ни раскапывай - не нахожу даже крупицы себя самого, даже слабый свой отголосок. Ненавижу за то, что твои руки, точно треклятые шулеры, всегда заранее знают, как выиграть мой стон, скрутить его в узел и выбросить. Ненавижу за то, что умеешь терпеть даже самую адскую боль и притом совсем не умеешь оставлять меня равнодушным. Ненавижу за то, что нам нужно прислуживать нашей магической связи, печься о ней неотступными няньками, кормить ее с ложечки хрупкими компромиссами, чтобы не взбунтовалась, не закапризничала, не отказала нам в силе и помощи. Ненавижу тебя, потому что меньшего ты не заслуживаешь.
  </div>

</div>

<style>
  .cover-wrapper:hover img {
    transform: scale(1.05);
  }

  .tag:hover {
    filter: brightness(0.8);
  }
</style>

<br>
<iframe frameborder="0" allow="clipboard-write" style="border:none;width:100%;height:88px;" width="100%" height="88" src="https://music.yandex.ru/iframe/album/6041384/track/772295">Слушайте <a href="https://music.yandex.ru/album/6041384/track/772295?utm_source=web&utm_medium=copy_link">Tear You Apart</a> — <a href="https://music.yandex.ru/artist/28128">She Wants Revenge</a> на Яндекс Музыке</iframe>
[/html]

+9

2

Письмо, которое я никогда тебе не отправлю

[html]
<!-- ВНЕШНЯЯ ОБЁРТКА ДЛЯ ЦЕНТРИРОВАНИЯ -->
<div style="
  width:100%;
  display:flex;
  justify-content:center;
  margin:20px 0;
">

  <!-- КАРТОЧКА -->
  <div class="letter-card-auto">

    <img class="card-gif" src="https://upforme.ru/uploads/001c/89/a0/5/692110.gif" alt="gif">

    <div class="overlay">
      <div class="letter-content">
<p>Иногда бывает страшно. Этот страх заползает внутрь, свивает кольца и наполняет отчаянием, горьким и терпким. Неприятным и постоянно зудящим, словно зубная боль. </p>

        <p>
          Мне не страшно за себя, за свою жизнь, даже, знаешь, порой не жаль твоей жизни. Но отчаянно страшно, что мне нет места в твоем безумии. Я смотрю на то, как ты врываешься в гущу событий и хохочешь – пьяно. Как ты рвешь тела и наслаждаешься процессом – самозабвенно. И думаю о том, что не дам тебе этого чувства, даже близко такого – никогда. Оно извращенно и мерзко, но… почему-то порой хочется чтобы ты чувствовал такой степени эйфорию из-за меня...
        </p>
<p>
        Мне неприятно. Потому что остаюсь тут, раз за разом, и ты снова отдельно на задании, отдельно и сам, и все эти инквизиторские долбаебы не ставят тебя ни в копейку.</p>
        <p>
          Что им, что ты сдохнешь. Что им, что сдохну я следом. А тебе будто только все больше и больше в кайф, потому что в тех дырах, куда тебя ссылают, можно не контролировать себя совсем.
        </p>

        <p>И там, ты снова и снова оказываешься один, отправляют только тебя, потому что мы – дерьмовая команда. </p>
        <p><span class="spoiler">Я ревную. К другим смертникам. К твоему кайфу. Можно ли, блять, ревновать к мертвым телам…</span></p>
<p><span class="spoiler">Можно ли ревновать к твоей внутренней независимости? Если бы одним днем наши половинки душ стали бы полноценными, без скверны и проблем ей присущей, оставили бы нам магию, но убрали бы связь… ты бы выдохнул расслабленно. Я бы все еще желал <s><i>тебя</i></s> найти кого-то близкого</span></p>
        <p>
          Это точно никуда уже не пойдет, ахах. Сожгу к черту, как допишу. Не покажу и не признаюсь, даже если соберешь пепел по атомам и спросишь что это
        </p>

        <p>
          И, если так…
        </p>

        <p>
          Я правда блять ревную<br>
Ревную<br>
Пиздец, это всрато
        </p>
<p>Ты сделал это как? <span class="spoiler">Чем? Что нажал внутри, чтобы мне понравились острые улыбки, злые слова и колющие нервы нападки? Как из ярости родилось желание не просто вмазать, а яростно поцеловать? Прикусить наглые слова, пока они не сорвались с губ. Сжать, рвануть, коснуться… и прижать и укрыть.</span></p>

        <p>
          Это же просто глупо…
        </p>

<p><span class="spoiler">Какой же ты сука красивый. Какой же красивый, с первого ебанного курса Академии красивый.</span></p>

<p>Блять.</p>

        <p>
          Ты невыносим. Своей правдой и извращенной логикой, безжалостностью, неспособностью любить и, одновременно, чем-то таким стыдным в том, насколько приятным. Как надавливать себе на синяк и делать это снова и снова.
        </p>

        <p>
          Ты невыносим тем, что я не могу тебя поймать, что начинаю все же пытаться ухватить, но ты вечно уворачиваешься. Как вообще изловить дьявола?
        </p>

        <p>Ты меня бесишь. Всеми фибрами порой ненавижу, и почему-то все еще не могу перестать… </p>
        <p>Черт. Да из-за тебя все дерьмо в моей жизни произошло. Вообще все, которое могло произойти. И ты никогда не испытаешь стыда, сожаления и сочувствия, потому что где-то там в детстве тебя ебанули башкой, или отрубили префронтальную кору, или что там еще делает людей конченными садистами?</p>

        <p>
         Из-за тебя у меня нет руки, Мелиссы, да и шанса на нормальную жизнь. И я все еще не могу перестать
        </p>

        <p><span class="spoiler">Любить</span></p>

      </div>
    </div>

  </div>
</div>

<style>
/* Контейнер = размер GIF */
.letter-card-auto {
  position: relative;
  display: inline-block;
  border-radius: 20px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 12px 32px rgba(0,0,0,0.45);
}

/* GIF */
.card-gif {
  display: block;
  width: 100%;
  height: auto;
}

/* Затемнение + текст */
.overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 15, 15, 0.0);
  display: flex;
  align-items: center;
  justify-content: stretch;
  padding: 15px;
  opacity: 0;
  transition: opacity 0.6s ease, background 0.6s ease;
}

/* Письмо */
.letter-content {
  color: #f3f3f3;
  font-family: "Georgia", "Times New Roman", serif;
  font-size: 15px;
  line-height: 1.75;
  text-align: left;
width: 100%;
max-width: 95%;

  max-height: 100%;
  overflow-y: auto;
  padding-right: 150px;

  transform: translateY(16px);
  opacity: 0;
  transition: transform 0.6s ease, opacity 0.6s ease;
}

/* Спойлер */
.spoiler {
  background-color: #110100;
  color: black;
  padding: 2px 6px;
  border-radius: 4px;
  cursor: pointer;
  transition: color 0.3s ease, background 0.3s ease;
}

.spoiler:hover {
  color: #f3f3f3;
  background-color: rgba(0,0,0,0.7);
}

/* Наведение */
.letter-card-auto:hover .overlay {
  opacity: 1;
  background: rgba(15, 15, 15, 0.95);
}

.letter-card-auto:hover .letter-content {
  transform: translateY(0);
  opacity: 1;
}

/* Нежный скролл */
.letter-content::-webkit-scrollbar {
  width: 6px;
}

.letter-content::-webkit-scrollbar-track {
  background: transparent;
}

.letter-content::-webkit-scrollbar-thumb {
  background: rgba(255,255,255,0.25);
  border-radius: 4px;
}

.letter-content::-webkit-scrollbar-thumb:hover {
  background: rgba(255,255,255,0.4);
}
</style>
<iframe frameborder="0" allow="clipboard-write" style="border:none;width:765px;height:100px;" width="700" height="100" src="https://music.yandex.ru/iframe/album/14052981/track/78550148">Слушайте <a href="https://music.yandex.ru/album/14052981/track/78550148?utm_source=web&utm_medium=copy_link">жди меня</a> — <a href="https://music.yandex.ru/artist/218099">Земфира</a> на Яндекс Музыке</iframe>
[/html]

+5

3

[html]

<div class="tarot-wrapper">

  <div class="tarot-card">
    <div class="tarot-inner">

      <!-- FRONT -->
      <div class="tarot-front">
        <div class="card-surface">
          <img src="https://upforme.ru/uploads/001c/82/f2/62/581258.png" alt="spell art">
          <div class="tarot-title">EXODUS TO HELL</div>
        </div>
      </div>

      <!-- BACK -->
      <div class="tarot-back">
        <div class="card-surface back-content">

          <div class="spell-name">Exodus to Hell</div>
          <div class="spell-sub">Заклинание • 9-й уровень • Воплощение</div>

          <div class="spell-stats">
            <div><strong>Время:</strong> 1 минута концентрации</div>
            <div><strong>Радиус:</strong> 1 километр</div>
            <div><strong>Компоненты:</strong> В, С, М</div>
            <div><strong>Длительность:</strong> Мгновенная</div>
          </div>
<div class="spell-bubble">
  <p>—  Представь, что мы обречены. Что смерть неизбежна. Что в таком случае предпочтешь - смиренно ждать своей участи? Или отправиться следом за мной в преисподнюю? <br>
— Отправлюсь следом. </p>
</div>
          <div class="spell-text">

            <p>
    Личная фатальная договоренность Клайда и Шона, их нерушимая клятва, в основе которой - решение уйти из жизни совместно, в один миг и на своих условиях. Будет использовано лишь в том случае, если смерть в битве с противником окажется неизбежной. Когда терять уже будет нечего.
  </p>

  <p>
    <strong>Условие активации:</strong> Когда смерть в битве становится неминуемой, оба участника концентрируют магическую энергию и произносят слово «Exodus». После чего Клайд не просто целует Шона, а, обратившись чернотой, начинает проникать в его тело через рот, полностью заполняя собой его внутренности.
  </p>

  <p>
    <strong>Эффект:</strong> Став физически единым целым, ведьмак и его фамильяр провоцируют мощный взрыв магической энергии, ставящий точку на жизни как их самих, так и всех существ, оказавшихся в радиусе 1 км.
  </p>

  <p>
    <strong>Воздействие и последствия:</strong> Во время взрыва из эпицентра высвобождается плотная масса "черни", выстреливая во все стороны плотными щупами.  Каждый щуп движется с огромной скоростью и способен пробить собой как деревянные, так и кирпичные стены, и уж тем более органику. Помимо разрушительного кинетического воздействия, в первые секунды "чернь" крайне ядовита, что в конечном счете приводит к непоправимым разрушениям и  массовой гибели всего живого в радиусе действия заклинания. После гибели Шона и Клайда на их месте остается кратер, заполненный ядовитой черной субстанцией.
  </p>

<div class="spell-quote">
  Увидимся в аду, тигренок))
</div>
          </div>

        </div>
      </div>

    </div>
  </div>

</div>

<style>

/* Центрирование */
.tarot-wrapper {
  display: flex;
  justify-content: center;
  margin: 40px 0;
}

/* Фиксированный размер */
.tarot-card {
  width: 500px;
  height: 700px;
  perspective: 1600px;
}

/* Вращающийся слой */
.tarot-inner {
  width: 100%;
  height: 100%;
  position: relative;
  transition: transform 0.9s ease;
  transform-style: preserve-3d;
}

/* Переворот */
.tarot-card:hover .tarot-inner {
  transform: rotateY(180deg);
}

/* Общие стороны */
.tarot-front,
.tarot-back {
  position: absolute;
  width: 100%;
  height: 100%;
  backface-visibility: hidden;
  transform: translateZ(0);
}

/* Поверхность карты (тут скругление!) */
.card-surface {
  width: 100%;
  height: 100%;
  border-radius: 24px;
  border: 5px solid #c7a84f;
  box-sizing: border-box;
  overflow: hidden;
  background: #111;
  position: relative;
}

/* FRONT */
.tarot-front img {
  display: block;      /* убирает inline-отступ */
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.tarot-title {
  position: absolute;
  bottom: 0;

  left: 50%;
  transform: translateX(-50%);

  width: 100%;
  padding: 18px 0;

  text-align: center;
background: linear-gradient(to top, rgba(0,0,0,0.9), transparent);
  color: #e8d8a8;
  font-family: serif;
  font-size: 20px;
  letter-spacing: 2px;
}

/* BACK */
.tarot-back {
  transform: rotateY(180deg);
}

.back-content {
  padding: 30px;
  display: flex;
  flex-direction: column;
  background: #1a1a1d;
  color: #f2f2f2;
  font-family: Georgia, serif;
}

.spell-name {
  text-align: center;
  font-size: 22px;
  color: #e6c76a;
  margin-bottom: 4px;
}

.spell-sub {
  text-align: center;
  font-size: 14px;
  color: #aaa;
  margin-bottom: 18px;
}

.spell-stats {
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 10px;
  border-top: 1px solid #444;
  border-bottom: 1px solid #444;
  padding: 10px 0;
}

.spell-text {
  font-size: 15px;
  line-height: 1.7;
  overflow-y: auto;
  flex-grow: 1;
}

/* Скролл */
.spell-text::-webkit-scrollbar {
  width: 6px;
}
.spell-text::-webkit-scrollbar-thumb {
  background: rgba(199,168,79,0.5);
  border-radius: 4px;
}
.spell-bubble {
   margin: 8px 0 20px 0;
  padding-top: 18px;    /* верхний отступ внутри блока */
  padding-right: 20px;  /* правый отступ внутри блока */
  padding-bottom: 5px; /* нижний отступ внутри блока */
  padding-left: 20px;   /* левый отступ внутри блока */
  background: rgba(20, 16, 8, 0.85);
  border: 1px solid rgba(212, 175, 55, 0.6);
  border-radius: 14px;
  box-shadow:
    0 0 12px rgba(212, 175, 55, 0.25),
    inset 0 0 8px rgba(212, 175, 55, 0.15);
  color: #f0e6c8;
  font-style: italic;
  font-size: 13px;
  position: relative;
}

/* тонкая декоративная линия сверху и снизу */
.spell-bubble::before,
.spell-bubble::after {
  content: "";
  position: absolute;
  left: 20%;
  right: 20%;
  height: 1px;
  background: linear-gradient(
    to right,
    transparent,
    rgba(212, 175, 55, 0.8),
    transparent
  );
}

.spell-bubble::before {
  top: -6px;
}

.spell-bubble::after {
  bottom: -6px;
}

.spell-quote {
  color: #e6c76a;       /* золотой цвет, как у заголовка */
  font-style: italic;   /* курсив */
  font-size: 14px;      /* чуть меньше обычного текста */
  text-align: center;   /* по центру */
  margin-top: 15px;     /* небольшой отступ сверху */
  line-height: 1.5;
}

</style>

[/html]

Задание 2.1. Магия (В альтернативной вселенной)

Отредактировано Sean Bones (02-03-2026 23:41:16)

+5

4

[html]

<div class="cinema-wrapper">

  <div class="cinema-card">

    <div class="cinema-screen">
      <div class="cinema-text">
        <div class="cinema-title">NOW SHOWING</div>

        <div class="cinema-content">
          <div class="cinema-log">
<br>

             <div class="log-entry">
    <span class="time-badge">16:21</span>
    Автомобиль Шона останавливается на парковке кинотеатра “Синема Холл”. Водитель и пассажир даже не замечают, что доехали до места, слишком уж увлечены своим излюбленным магическим экспериментом, а точнее – сотворением конфликта из нихуя.  <br>
– Хоо, а ты вспомни, как легко и задорно променял меня на сшивку, сучоныш)) Это еще кто от кого бежит)) – заявляет Клайд, сервируя свое утверждение на чистенькой фарфоровой улыбочке.<br>
   Шон невозмутимо пожимает плечами:<br>
– В тот раз я потерял из-за тебя руку. Может ты не знал, но даже одной отрубленной руки вполне достаточно, чтобы спровоцировать холодок в отношениях.

  </div>

  <div class="log-entry">
    <span class="time-badge">16:22</span>
   Двери авто открываются синхронно, как в дешевом боевике, выпуская наружу две высоченные проблемы. Проблема пошире продолжает:<br>
– При любых других обстоятельствах ты оставляешь меня первым. Вот даже сейчас, спорим, если тебе не понравится это свидание – ты даже досиживать не будешь?<br>
– Пфффф, если спорим на желание – го))) – Клайд небрежно хлопает дверью и с той же смелой небрежностью соглашается на пари. Спустя пару шагов он резко останавливается, с явным запозданием изгибая бровь:<br>
– Свидание?)))

  </div>

  <div class="log-entry">
    <span class="time-badge">16:27</span>
   Приобретя билеты на сеанс, они принимаются за выбор закусок для лучшего усвоения фильма. Шон ограничивается колой без сахара и пачкой начос. Клайд ограничивается едким комментарием в отношении его выбора. <br>
– Слушай, жрать попкорн я не хочу. У него запах, как у тигриной мочи, – ступая к кинозалу, хмуро поясняет Шон. Лицо Клайда невольно сознается, что его обладатель многого не знал о тиграх. Попкорн он покупает в ту же минуту  – исключительно из вредительских соображений.

  </div>

  <div class="log-entry">
    <span class="time-badge">16:40</span>
   В полупустом кинозале крутят трейлеры к будущим кинопремьерам. Увидев в одном из роликов морду Шерхана, Клайд открывает рот, готовый выдать свежеиспеченную колкость. Тут же получает горсть попкорна, субсидированную пятерней Шона. Закрывает рот.
  </div>

  <div class="log-entry">
    <span class="time-badge">16:55</span>
   Начинается фильм. С первых кадров становится понятно, что ничего не понятно. Актеры пытаются говорить, но вместо этого зачем-то поют. Декорации заранее сдались и ничего не пытаются. Под драматическое завывание главного героя Клайд медленно поворачивает голову в сторону Шона. Шон отчаянно мимикрирует под обивку кресла и предпочитает не отвечать ему взаимностью. И не дышать. Он с запозданием вспоминает, что Клайд физически не переносит живое пение, каждый раз предпочитая делать его мертвым.
  </div>

  <div class="log-entry">
    <span class="time-badge">16:58</span>
    Шон узнает о себе много нового. В том числе свою новообретенную видовую принадлежность, свой предполагаемый ареал обитания, в который ему настоятельно рекомендуют вернуться, а так же уровень своего интеллекта по шкале от “долбаеб” до “тупорылая паскуда”. Он тихо поражается тому, с какой безупречной улыбкой можно осведомлять его о столь антинаучных вещах.
  </div>

  <div class="log-entry">
    <span class="time-badge">17:27</span>
    Наблюдая за экранным пением, Клайд испытывает внутричерепные колики и сильные межполушарные спазмы, что приводит его улыбку в болезненный прайм. Пальцы стискивают подлокотники. Зубы давят зубы. Стоит уточнить – он не просто не любит мюзиклы и живое пение. Он реагирует на них так же, как дьявол на распятие или как вампир на связку чеснока.
  </div>

  <div class="log-entry">
    <span class="time-badge">17:29</span>
    Шон тем временем обнаруживает, что приобретенная им кола без сахара сильно разбавлена водой, из-за чего больше походит на мочу зубных фей. Про себя он отмечает, что слишком многое в кинотеатре напоминает ему чью-то мочу.
  </div>

  <div class="log-entry">
    <span class="time-badge">18:05</span>
    Вокальная экзекуция доводит Клайда до позыва срочно эвакуироваться из зоны поражения своих ушных раковин. Он ощущает крайне болезненные психомоторные переживания в ответ на затянутый музыкальный номер героини фильма, из-за чего выкрикивает, щерясь в экран, прямая цитата:<br>
– Да порви ты уже свой сучий хлебальник!!)))

  </div>

  <div class="log-entry">
    <span class="time-badge">18:06</span>
    В только-только завязавшийся разговор Клайда и экранной женщины вмешивается зритель, сидящий спереди. Пыша вахтерским недовольством, он с нежной вкрадчивостью свистка парохода шикает “ТИШШШШШШЕЕЕЕ”. Шон галантно извиняется. Клайд галантно посылает непрошеного собеседника на хуй.
  </div>

  <div class="log-entry">
    <span class="time-badge">18:38</span>
   Пение разбавляется длинными монологами, ведущими к жизнеутверждающему нихуя. Шон пытается отследить суть происходящего, вязнет в длинных планах, вычурных кадрах и загустевающем саспенсе. Вокруг героев все сгущаются и сгущаются тучи, появляются тревожные намеки, один кадр сменяется другим, и вот, сейчас!..<br>
Шон взволнованно выдыхает:<br>
–  Хрррр…
  </div>

  <div class="log-entry">
    <span class="time-badge">18:55</span>
   Люди на экране все так же бездарно поют, игнорируя эксклюзивную возможность заткнуться. Ни секунды для передышки, никаких эмоциональных качелей от дурного к хорошему – состояние фильма стабильно критическое. Если бы ни пари – Клайд давно бы уже катапультировался из зала вместе с креслом. Чтобы хоть как-то облегчить свою участь и отвлечься, он начинает пинать спинку кресла перед собой. Как ни странно, жертву этой сейсмической активности подобный расклад не устраивает:<br>
– Вы что себе позволяете?? Прекратите, дайте досмотреть! <br>
Клайд моментально входит в чужое положение и максимально участливо посылает его к ебене матери.

  </div>

  <div class="log-entry">
    <span class="time-badge">19:34</span>
    Клайд наклоняется к уху Шона и, понизив голос, уточняет: <br>
– Ты что, заснул, сучий ты потрох?)))<br>
Шон, не меняясь в лице, протестующе заверяет: <br>
– Хррррррппппфф...
  </div>

  <div class="log-entry">
    <span class="time-badge">20:03</span>
   Шон выныривает из забытья, ощутив, что в его ноздрях поселились два куска попкорна и стойкий аромат тигриной мочи, а в барабанные перепонки стучится мужчина с переднего ряда. На экране поют про вечную любовь, а этот тип орет про вечную ненависть к окружающим:<br>
– Вы в общественном месте! Как вам не стыдно! Чему вас ваша мать учила, а?! Вы нарушаете покой других людей!<br>
Попкорн валяется под ногами, начос рассыпан по креслам — весь ряд похож на поле боя, где закуски проиграли войну.
  </div>

  <div class="log-entry">
    <span class="time-badge">20:04</span>
   С виду Клайд ничего не делает, просто сидит в своем кресле, взирая на орущего зрителя. Однако в его безумном оскале различимы 32 уголовных дела, состав которых он готов реализовать прямо сейчас. Он изведен фильмом, бесконечным пением и скукой, что несовместимо с пульсом орущего на него мужика. Он наклоняет корпус вперед..
  </div>

  <div class="log-entry">
    <span class="time-badge">20:05</span>
   У Шона не более двух секунд, чтобы предотвратить убийство, и решение приходит вместе с тем, как он вплетает свои пальцы в волосы Клайда, поворачивает его к себе, и, не давая опомниться, целует. Сминает губы яростно и порывисто, заставляет забыть обо всем, даже себя, почти рычит, дыхание в дыхание, прямо перед шокированным зрителем. <br>
В конце-концов, это ведь свидание?
  </div>

  <div class="log-entry">
    <span class="time-badge">20:06</span>
   Расслабившись всем телом, Клайд смакует чужой язык, утрудив себя разве что демонстрацией среднего пальца заткнувшемуся зрителю. На экран с неохотой выползают титры. Клайд уже знает, какое желание потребует за чудом выигранное пари.

  </div>

  <div class="log-entry">
    <span class="time-badge">20:30</span>
   Зал пуст и темен
  </div>

  <div class="log-entry">
    <span class="time-badge">20:31</span>
   Прибыл Годжо Сатору
  </div>

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

    <img src="https://upforme.ru/uploads/001c/82/f2/62/569682.png" class="cinema-img">

  </div>

</div>

<style>

/* === ОБЁРТКА === */
.cinema-wrapper{
  display:flex;
  justify-content:center;
  margin:40px 0;
}

/* === КАРТОЧКА === */
.cinema-card{
  position:relative;
  display:inline-block;
  width:100%;
  max-width:700px;
}

/* картинка кинотеатра */
.cinema-img{
  width:100%;
  height:auto;
  display:block;
  position:relative;
  z-index:2;
  pointer-events:none;
}

/* === ЭКРАН === */
.cinema-screen{
  position:absolute;

  inset: 2% 8% 54% 8%;
  /* top right bottom left */

  padding:4%;

  z-index:1;
  overflow:visible;

  display:flex;
  flex-direction:column;

  background:
    linear-gradient(to right, rgba(160,160,160,.95), transparent 18%, transparent 82%, rgba(160,160,160,.95)),
    linear-gradient(to bottom, rgba(170,170,170,.25), transparent 25%),
    #fff;

  transition:.5s ease;
}

/* включение экрана */
.cinema-card:hover .cinema-screen {
  background:
    radial-gradient(
      ellipse at center,
      #151515 0%,
      #0f0f0f 55%,
      #0a0a0a 100%
    );
}

/* === ТЕКСТ === */
.cinema-text{

  display:flex;
  flex-direction:column;
  height:100%;
  opacity:0;
  color:#f2f2f2;
font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  transition:.5s;
}

.cinema-card:hover .cinema-text{
  opacity:1;
}

/* заголовок */
.cinema-title{
  font-size:20px;
  letter-spacing:3px;
  margin-bottom:20px;
  text-align:center;
}

/* СКРОЛЛ — самое важное */
.cinema-content{
  flex:1;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;

  font-size:16px;
  line-height:1.6;
  padding-right:6px;
}

/* красивый скролл */
.cinema-content::-webkit-scrollbar{
  width:6px;
}
.cinema-content::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.3);
  border-radius:4px;
}

/* записи */
.log-entry{
  margin-bottom:17px;
}

/* время */
.time-badge{
  display:inline-block;
  margin-right:8px;
  padding:2px 7px;
  font-size:15px;
  color:#ccc;
  background:#3a3a3a;
  border-radius:4px;
}

/* === МОБИЛКИ === */
/* на телефоне hover нет → экран всегда включён */
@media (max-width:768px){

  .cinema-screen{
    background:
      radial-gradient(
        ellipse at center,
        #151515 0%,
        #0f0f0f 55%,
        #0a0a0a 100%
      );

    overflow:hidden; /* экран фиксируем */
  }

  .cinema-text{
    opacity:1;
  }

  .cinema-title{
    font-size:16px;
  }

  .cinema-content{
    font-size:13px;

    height:100%;                /* вместо flex-растяжения */
    overflow-y:auto;
    -webkit-overflow-scrolling: touch; /* плавный iOS-скролл */
    overscroll-behavior: contain;      /* не дёргает страницу */
  }

}

</style>

[/html]

+7

5

✦ ✧ ✦ Прочитать предсказания ✦ ✧ ✦

[html]

<div class="tarot-layout">

  <!-- ====== РАСКЛАД 1 ====== -->
  <div class="tarot-spread">

    <div class="tarot-title-spread">
      Клайд Стил
    </div>

    <div class="tarot-cards">
      <div class="tarot-tab active" data-tab="r1c1">
        <img src="https://upforme.ru/uploads/001c/82/f2/62/237701.jpg" alt="">
      </div>
      <div class="tarot-tab" data-tab="r1c2">
        <img src="https://upforme.ru/uploads/001c/82/f2/62/931423.png" alt="">
      </div>
      <div class="tarot-tab" data-tab="r1c3">
        <img src="https://upforme.ru/uploads/001c/82/f2/62/735168.png" alt="">
      </div>
    </div>

    <div class="tarot-content">
      <div class="tarot-panel active" id="r1c1">
        <div class="tarot-scroll">
    <p>Прямо: новые идеи, обучение, ум, активность, стремление к знаниям, наблюдательность.</p>

<p>Нейронный двигатель Клайда пусть и черпал энергию в девиантных склонностях, все же активно толкал его вперед, к развитию и раскрытию своего магического потенциала. Ему было мало просто утолять свои изуверские потребности, ему хотелось познать свой дар, познать себя в видоизмененной форме "черни", стать максимально искусным в управлении ею. Пусть и не на благо людям, не назло скверне, но ради собственного греховного удовольствия. Именно это полоумное стремление в свое время сподвигло его сделать шаг к своему фамильяру, отыскать способы наладить с ним связь, невзирая на разногласия и разницу их характеров. </p>
        </div>
      </div>
      <div class="tarot-panel" id="r1c2">
        <div class="tarot-scroll">
          <p>Перевернуто: нерелигиозность, отсутствие моральных принципов, дезорганизация, недостаток авторитета, индивидуализм.</p>
<p>Его настоящее уже не пышет прежним когнитивным запалом, он достиг добротного уровня связи с Шоном и, следовательно, неплохо обвыкся со своим даром, что позволяет ему с головой окунаться в реализацию своих извращенных страстей. Его не заботят нормы морали, он ни в ком не видит авторитета, не топит ни за какую идею, его колышет только гедонизм и угождение своей плоти. Работая в границах "системы", по факту он использует ее для безопасного и удобного утоления своих низменных желаний. </p>
        </div>
      </div>
      <div class="tarot-panel" id="r1c3">
        <div class="tarot-scroll">
          <p>Перевернуто: дисбаланс, несмирение, неумеренность, неправильное взаимодействие, конфликт, беспокойство.</p>

<p>Рано или поздно его гедонистическая стагнация может коллапсировать во что-то крайне нестабильное. Аппетиты будут расти, потребность в чужих страданиях тоже, с каждым годом ему будет все голоднее и голоднее, и обычных инквизиторских вылазок в роли палача ему будет уже не хватать. Он захочет достигнуть "дна" греховности, поставить на кон все, лишь бы снова почувствовать девственный кайф первого убийства, первой затяжки и первой дозы чужого страдания. По итогу только Шон, его фамильяр, способен хоть как-то на это повлиять, сменить его курс, помочь избежать детонации, уберечь их обоих от гибели. Но получится ли у него обезвредить своего ведьмака?</p>
        </div>
      </div>
    </div>

  </div>

  <!-- ====== РАСКЛАД 2 ====== -->
  <div class="tarot-spread">

    <div class="tarot-title-spread">
      Шон Боунс
    </div>

    <div class="tarot-cards">
      <div class="tarot-tab active" data-tab="r2c1">
        <img src="https://upforme.ru/uploads/001c/82/f2/62/183313.png" alt="">
      </div>
      <div class="tarot-tab" data-tab="r2c2">
        <img src="https://upforme.ru/uploads/001c/82/f2/62/969527.png" alt="">
      </div>
      <div class="tarot-tab" data-tab="r2c3">
        <img src="https://upforme.ru/uploads/001c/82/f2/62/701345.png" alt="">
      </div>
    </div>

    <div class="tarot-content">
      <div class="tarot-panel active" id="r2c1">
        <div class="tarot-scroll">
          <p>Прошлое: Надежда, вера в предназначение, духовное обновление, идеализм, светлая цель.</p>
<p>В прошлом Шон верил, что сможет стать сильным. Верил в незыблемую связь ведьмака и фамильяра, предавался идеалистическим мечтам о том, как найдет своего соулмейта в Академии и навсегда объединится с ним. Жизнь казалась новой, а цель светила недостижимая, но яркая, указывая путь на борьбу со скверной и злом. Шон - человек принципов и идеалов, он целеустремлен, и готов действовать ради общего блага, взваливать на себя миссию рыцаря, и по юности это проявлялось много ярче, чем сейчас.</p>

        </div>
      </div>
      <div class="tarot-panel" id="r2c2">
        <div class="tarot-scroll">
        <p>Перевернуто: внутренний дисбаланс, крайности, утрата самоконтроля, искажение гармонии, излишества.</p>
<p>Но рядом с Клайдом идеалы и мечты, как и высшие цели, были разрушены почти мгновенно. Баланс рядом с его ведьмаком невозможен, как и крепкий с ним мир - зачастую их удел это постоянные споры, падения в крайности и полнейший дисбаланс. Даже сейчас, когда они привыкли друг к другу и к своей нестабильной связи - покой, умеренность и гармония Шону только снятся. Он балансирует уже даже не ради сохранения целостности, а ради того, чтобы не разрушиться окончательно, и эта шаткость становится его новым способом выживания.</p>

        </div>
      </div>
      <div class="tarot-panel" id="r2c3">
        <div class="tarot-scroll">
          <p>Неизбежная трансформация, завершение этапа, разрушение старой идентичности, радикальный перелом.</p>
<p>Карта смерти редко означает реальную гибель, однако в случае Шона ее можно трактовать и в этом ключе. Рядом с Клайдом он имеет все шансы умереть либо очень быстро и легко, либо долго и мучительно, если его соул погибнет первым, как всегда ринувшись в бой без оглядки на благоразумие. Но, вполне возможно, Шона ждет вовсе не гибель, а  радикальные перемены в жизни, где все, что было и есть - канет в Лету. Вероятно, он изменится внутренне и внешне, станет абсолютно другим человеком. Ведь, если долго жить на надломах и надрывах, в один день все привычное может окончательно сломаться, взорвав за собой все, за что разум цеплялся ранее. Придется отстраивать себя заново и учиться жить по новому.
<br> Шон уже однажды проходил нечто подобное, когда потерял руку. И вряд ли хотел бы переживать это вновь. Но будущее редко спрашивает дозволения прежде, чем произойти.

</p>

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

  </div>

  <!-- ====== РАСКЛАД 3 ====== -->
  <div class="tarot-spread">

    <div class="tarot-title-spread">
      Отношения
    </div>

    <div class="tarot-cards">
      <div class="tarot-tab active" data-tab="r3c1">
        <img src="https://upforme.ru/uploads/001c/82/f2/62/49555.png" alt="">
      </div>
      <div class="tarot-tab" data-tab="r3c2">
        <img src="https://upforme.ru/uploads/001c/82/f2/62/406863.png" alt="">
      </div>
      <div class="tarot-tab" data-tab="r3c3">
        <img src="https://upforme.ru/uploads/001c/82/f2/62/723688.png" alt="">
      </div>
    </div>

    <div class="tarot-content">
      <div class="tarot-panel active" id="r3c1">
        <div class="tarot-scroll">
         <p><b>Шон:</b> задержка в развитии, конфликты, препятствия на пути к успеху</p>
         <p>Зачастую Шон чувствует себя заложником ситуации, где ситуация - Клайд. Так часто сложности, конфликты и ссоры откидывают назад не только мотивацию, но даже эмоции и настроение, что Боунс периодически тонет в ощущении общего пиздеца. Не спорить и не конфликтовать с Клайдом невозможно, как и невозможно найти компромисс, способ сделать все мирно и спокойно. Раз за разом легкие пути блокируются или обходятся, но, каким-то чудом, они оба все равно остаются живы и целы. Шон не опускает руки, он вообще на редкость упрям, но не ощущать утомление от постоянных препятствий и проблем он не может.</p>
        </div>
      </div>
      <div class="tarot-panel" id="r3c2">
        <div class="tarot-scroll">
          <p><b>Клайд:</b> преодоление трудностей, новый зароботок, преодоление испытаний</p>
<p>В отношениях с Шоном Клайд частенько сталкивается с трудностями, причиной которых нередко является он сам. Ловя кайф от конфликтных ситуаций, от негативных реакций Шона, от их ссор и разногласий, он постоянно забывает, что его фамильяр - иной психологической породы, и со всего перечисленного если и прется, то явно в куда меньшей степени. Клайду хочется всего и сразу - и с фамильяром быть в умопомрачительных дрязгах, и иметь высокий уровень магических сил, однако первое и второе, увы, редко когда удается совмещать. Это влияет на их отношения, на их связь и на их магию, и Клайду каждый раз приходится поступаться со своими деструктивными желаниями, усмирять свою страсть и любовь к негативу, периодически быть "паинькой", играть по правилам Шона, чтобы они могли вновь все наладить и сблизиться.</p>
        </div>
      </div>
      <div class="tarot-panel" id="r3c3">
        <div class="tarot-scroll">
          <p><b>Исход:</b> Процветание, стабильность, материальная безопасность, практичность, честность и щедрость</p>

<p>Шон тянется к стабильности, надежности и безопасности. Клайд - к раздраям, страстям и конфликтам. Несмотря на кардинально разные потребности и мотивы, они, тем не менее, прекрасно дополняют друг друга и уравновешивают. Клайд дает Шону "толчок", некую искру, не позволяя ему застояться, увязнуть в рутине, помогая раскрыть свои сильные качества через преодоление испытаний. Шон же, в свою очередь, открывает для Клайда другую область удовольствий и интересов, показывает ему мир, находящийся за пределами извечных жестокостей и садизма, раскрывает в нем спектр чувств и переживаний, которые ранее были Клайду недоступны. Каждый из них будто бы говорит второму: "Да, ты такой. Но, вместе с тем, ты куда больше, чем только такой". Все это вкупе провоцирует их взаимный интерес друг к другу, как к чему-то максимально противоположному и влекущему, их глубинное доверие, ощущение инаковости, но, вместе с тем, родственности через принятие этой инаковости.</p>
        </div>
      </div>
    </div>

  </div>

</div>

<style>

/* === ОБЩИЙ КОНТЕЙНЕР === */
.tarot-layout{
  width:100%;
  max-width:760px;
  margin:40px auto;
  display:flex;
  flex-direction:column;
  gap:60px;
  font-family:Georgia, serif;
  box-sizing:border-box;
}

/* === ЗАГОЛОВОК === */
.tarot-title-spread{
  text-align:center;
  font-size:26px;
  letter-spacing:4px;
  margin-bottom:35px;
  color:#e6c76a;
  position:relative;
  text-transform:uppercase;
  text-shadow:
    0 0 8px rgba(212,175,55,0.6),
    0 0 18px rgba(212,175,55,0.3);
}

/* звёздные линии остаются */
.tarot-title-spread::before,
.tarot-title-spread::after{
  content:"✦ ✧ ✦";
  position:absolute;
  left:0;
  right:0;
  text-align:center;
  font-size:14px;
  letter-spacing:6px;
  color:rgba(212,175,55,0.6);
}

.tarot-title-spread::before{ top:-18px; }
.tarot-title-spread::after{ bottom:-18px; }

/* === ОСНОВА РАСКЛАДА (БЕЗ ФОНА) === */
.tarot-spread{
  width:100%;
  padding:30px;
  border-radius:22px;
  border:3px solid #c7a84f;
  background:linear-gradient(#111,#111);
  box-shadow:
    0 0 25px rgba(212,175,55,0.25),
    inset 0 0 30px rgba(0,0,0,0.85);
  box-sizing:border-box;
}

/* === КАРТЫ === */
.tarot-cards{
  display:flex;
  gap:3%;
  justify-content:space-between;
  align-items:flex-start;
  margin-bottom:30px;
}

.tarot-tab{
  flex:1 1 0;
  max-width:32%;
  position:relative;
  cursor:pointer;
  transition:0.4s ease;
  border-radius:18px;
  overflow:hidden;
  border:3px solid rgba(199,168,79,0.4);
  box-shadow:0 0 12px rgba(0,0,0,0.7);
}

/* пропорции 1:1.7 */
.tarot-tab::before{
  content:"";
  display:block;
  padding-top:170%;
}

.tarot-tab img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:15px;
}

.tarot-tab:hover{
  transform:translateY(-6px);
  box-shadow:0 0 20px rgba(212,175,55,0.6);
}

.tarot-tab.active{
  border:3px solid #e6c76a;
  box-shadow:0 0 25px rgba(212,175,55,0.8);
}

/* === ПОЛЕ ПРЕДСКАЗАНИЯ (БЕЗ ФОНА) === */
.tarot-panel{ display:none; }
.tarot-panel.active{ display:block; }

.tarot-scroll{
  max-height:260px;
  overflow-y:auto;
  padding:22px;
  border-radius:16px;
  background:rgba(20,16,8,0.92);
  border:1px solid rgba(212,175,55,0.5);
  color:#f0e6c8;
  line-height:1.7;
  font-size:15px;
  box-shadow:
    inset 0 0 15px rgba(212,175,55,0.25);
}

/* красивый скролл */
.tarot-scroll::-webkit-scrollbar{
  width:6px;
}

.tarot-scroll::-webkit-scrollbar-thumb{
  background:rgba(212,175,55,0.6);
  border-radius:4px;
}

.tarot-scroll::-webkit-scrollbar-track{
  background:transparent;
}

</style>

<script>

document.querySelectorAll(".tarot-tab").forEach(tab=>{
  tab.addEventListener("click", function(){

    const spread = this.closest(".tarot-spread");
    if(!spread) return;

    spread.querySelectorAll(".tarot-tab").forEach(t=>{
      t.classList.remove("active");
    });

    spread.querySelectorAll(".tarot-panel").forEach(p=>{
      p.classList.remove("active");
    });

    this.classList.add("active");

    const target = spread.querySelector("#"+this.dataset.tab);
    if(target) target.classList.add("active");

  });
});

</script>

[/html]

Отредактировано Sean Bones (02-03-2026 23:58:30)

+6

6

[html]<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes">
    <title>Дневник · Шон и Клайд</title>
    <!-- Подключаем шрифты -->
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Caveat:wght@400;600;700&family=Literata:opsz,wght@7..72,400;7..72,500;7..72,600;7..72,700&family=Cormorant:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap" rel="stylesheet">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            user-select: none;
        }

        body {
            min-height: 100vh;
            background: #1c1410;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 15px;
            perspective: 2600px;
        }

        .book-wrapper {
            width: 100%;
            max-width: 800px;
            border-radius: 8px 24px 24px 8px;
            background: #2b1b12;
            padding: 14px 14px 14px 10px;
            background-image: linear-gradient(145deg, #3f2a1b 0%, #1f130b 80%);
        }

        .book-interior {
            background: #2b1d13;
            border-radius: 6px 20px 20px 6px;
            padding: 20px 20px 20px 14px;
            box-shadow: inset 0 0 15px #0a0603, inset 0 0 0 1px #63482e;
        }

        .flip-scene {
            position: relative;
            width: 100%;
            height: 650px;
            display: flex;
            align-items: center;
            justify-content: center;
            background: transparent;
            transform-style: preserve-3d;
        }

        .page {
            position: absolute;
            width: 90%;
            max-width: 620px;
            height: 620px;
            border-radius: 0 8px 8px 0;
            box-shadow:
                0 10px 20px rgba(0,0,0,0.7),
                -10px 6px 18px rgba(0,0,0,0.8),
                inset 0 -3px 8px rgba(0,0,0,0.6);
            padding: 35px 30px 30px 40px;
            border-left: 4px solid #4f3824;
            border-right: 1px solid #4d3621;
            font-weight: 400;
            line-height: 1.7;
            word-break: break-word;
            backface-visibility: hidden;
            transform-style: preserve-3d;
            transition: transform 0.8s cubic-bezier(0.45, 0.05, 0.2, 0.95);
            cursor: default;
            transform-origin: left center;
            display: flex;
            flex-direction: column;
        }

        /* Тип первый (Шон — зелёный) — Literata + клетка */
        .page.character-one {
            background:
                radial-gradient(circle at 25% 25%, rgba(50, 80, 50, 0.4), transparent 60%),
                linear-gradient(160deg, #3b2f25, #1f3a2a);
            color: #e4dbc6;
            font-family: 'Literata', serif;
            border-left-color: #5b6e4b;
        }

        .page.character-one .page-lines {
            background-image:
                repeating-linear-gradient(transparent 0px, transparent 29px, #9b8a6b 29px, #9b8a6b 30px),
                repeating-linear-gradient(90deg, transparent 0px, transparent 29px, #9b8a6b 29px, #9b8a6b 30px);
            background-size: 30px 30px;
            opacity: 0.25;
        }

        /* Тип второй (Клайд — красный) — Cormorant */
        .page.character-two {
            background:
                radial-gradient(circle at 70% 30%, rgba(120, 0, 0, 0.25), transparent 60%),
                linear-gradient(#130c0c, #0b0505);
            color: #f1e7e7;
            font-family: 'Cormorant', serif;
            border-left-color: #7a3a3a;
        }

        .page.character-two .page-lines {
            background-image: repeating-linear-gradient(transparent 0px, transparent 30px, #a55a5a 30px, #a55a5a 31px);
            opacity: 0.2;
        }

        .page-content {
            position: relative;
            z-index: 5;
            width: 100%;
            flex: 1;
            display: flex;
            flex-direction: column;
            min-height: 0;
            height: 100%;
        }

        /* Верхняя плашка с датой и именем */
        .page-header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 15px;
            flex-shrink: 0;
        }

        /* Дата — с бабблом, как было */
        .date-plate {
            font-size: 25px;
            padding: 8px 24px;
            display: inline-block;
            letter-spacing: 2px;
            text-transform: uppercase;
            background: rgba(0,0,0,0.3);
            backdrop-filter: blur(2px);
            border: 1px solid currentColor;
            font-family: 'Caveat', cursive;
        }

        .character-one .date-plate {
            background: rgba(50,70,40,0.5);
            border-color: rgba(100,120,80,0.8);
            color: #f1f0e6;
            box-shadow: 0 6px 18px rgba(0,0,0,0.12);
        }

        .character-two .date-plate {
            background: linear-gradient(90deg, #6e0f0f, #9b1c1c);
            border: none;
            color: #fff;
            box-shadow: 0 0 20px rgba(180,0,0,0.4), 0 10px 30px rgba(0,0,0,0.6);
        }

        /* Имена — без бабблов */
        .character-name {
            font-size: 30px;
            padding: 8px 24px;
            font-family: 'Caveat', cursive;
            text-transform: uppercase;
            letter-spacing: 3px;
            /* Убираем все стили баббла */
            background: none;
            backdrop-filter: none;
            border: none;
            box-shadow: none;
            border-radius: 0;
        }

        .character-one .character-name {
            color: #d4c5a6;
            text-shadow: 0 0 10px rgba(100, 150, 100, 0.5);
        }

        .character-two .character-name {
            color: #ffd7d7;
            text-shadow: 0 0 15px rgba(180, 0, 0, 0.5);
        }

        .entry-bubble {
            flex: 1 1 auto;
            min-height: 0;
            border-radius: 26px;
            padding: 25px 30px;
            overflow-y: auto;
            scrollbar-width: thin;
            box-sizing: border-box;
           
            &::-webkit-scrollbar {
                width: 8px;
            }
           
            &::-webkit-scrollbar-track {
                background: rgba(0, 0, 0, 0.2);
                border-radius: 10px;
            }
           
            &::-webkit-scrollbar-thumb {
                background: rgba(200, 180, 150, 0.3);
                border-radius: 10px;
                border: 2px solid rgba(0, 0, 0, 0.2);
            }
           
            &::-webkit-scrollbar-thumb:hover {
                background: rgba(200, 180, 150, 0.5);
            }
        }

        .character-one .entry-bubble {
            background: #3a4a36;
            box-shadow: 0 12px 28px rgba(0,0,0,0.2), inset 0 0 35px rgba(0,0,0,0.08);
            color: #e4dbc6;
            scrollbar-color: #9b8a6b #2a3a26;
        }

        .character-two .entry-bubble {
            background: rgba(15,0,0,0.6);
            border: 1px solid rgba(255,255,255,0.08);
            box-shadow: 0 20px 50px rgba(0,0,0,0.8), inset 0 0 50px rgba(150,0,0,0.15);
            color: #f1e7e7;
            scrollbar-color: #a55a5a #2a0a0a;
        }

        .entry {
            font-size: 18px;
            line-height: 1.7;
            white-space: pre-wrap;
            user-select: text;
            padding-right: 5px;
        }

        .character-one .entry {
            font-weight: 400;
            font-size: 18px;
        }

        .character-two .entry {
            font-weight: 500;
            font-size: 22px;
            letter-spacing: 0.2px;
        }

        /* текстурный слой */
        .page::before {
            content: '';
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="160" height="160" viewBox="0 0 160 160"><filter id="noise2"><feTurbulence baseFrequency="0.9 1.2" numOctaves="2" /><feColorMatrix values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0.25 0"/></filter><rect width="160" height="160" filter="url(%23noise2)" opacity="0.25"/></svg>');
            opacity: 0.2;
            pointer-events: none;
            border-radius: inherit;
            mix-blend-mode: multiply;
        }

        .page-lines {
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            pointer-events: none;
            z-index: 2;
        }

        .page-num, .page::after {
            display: none;
        }

        .page.flipped-left {
            transform: rotateY(-170deg) translateZ(8px);
            box-shadow: -20px 8px 30px rgba(0,0,0,0.9);
            filter: brightness(0.75) sepia(0.3);
            z-index: 5;
        }

        .page.front-right {
            transform: rotateY(0deg) translateZ(30px);
            z-index: 30;
            box-shadow: 0 15px 35px rgba(0,0,0,0.9), -10px 10px 25px rgba(0,0,0,0.8);
        }

        .page.stack-left {
            transform: rotateY(0deg) translateX(-100%) translateZ(1px);
            opacity: 0;
            pointer-events: none;
            transition: none;
            box-shadow: none;
        }

        .gutter {
            position: absolute;
            width: 14px;
            height: 100%;
            left: 45%;
            top: 0;
            background: radial-gradient(ellipse at center, #3a281c 0%, #1b110a 100%);
            transform: translateX(-50%) rotateY(20deg);
            box-shadow: -3px 0 12px #0f0803, inset 0 0 6px #634b33;
            z-index: 50;
            pointer-events: none;
            border-radius: 20%;
        }

        .nav-panel {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 40px;
            margin-top: 30px;
            margin-bottom: 10px;
        }

        .nav-btn {
            background: #6b1e1e;
            border: 3px solid #2f140e;
            font-size: 2.1rem;
            font-weight: bold;
            width: 70px;
            height: 70px;
            border-radius: 50%;
            cursor: pointer;
            box-shadow: 0 8px 0 #2e110b, 0 0 15px #520000;
            transition: 0.08s linear;
            color: #f0cfb0;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            font-family: 'Caveat', monospace;
            text-shadow: 0 0 5px #ffb273;
        }

        .nav-btn:active {
            transform: translateY(6px);
            box-shadow: 0 2px 0 #2e110b, 0 0 20px #a13030;
        }

        .nav-btn.disabled {
            opacity: 0.3;
            pointer-events: none;
            box-shadow: 0 4px 0 #2e110b;
            transform: translateY(4px);
            filter: grayscale(0.7);
        }

        .page-indicator {
            background: #281e16;
            padding: 12px 32px;
            border-radius: 60px;
            font-size: 2rem;
            font-weight: bold;
            color: #dbbc96;
            box-shadow: inset 0 3px 10px #0e0804, 0 8px 0 #3e261b, 0 0 15px #4d1f1f;
            font-family: 'Caveat', cursive;
            border: 1px solid #7b4f31;
            min-width: 170px;
            text-align: center;
            text-shadow: 0 0 8px #ab5f2c;
        }

        .footer-note {
            text-align: center;
            color: #ac8a67;
            margin-top: 12px;
            font-family: 'Caveat';
            font-size: 1.4rem;
            letter-spacing: 2px;
            text-shadow: 0 0 8px #3b1c0c;
        }

        @media (max-width: 600px) {
            .book-wrapper {
                padding: 8px;
                border-radius: 4px 16px 16px 4px;
            }
           
            .flip-scene {
                height: 550px;
            }
           
            .page {
                height: 520px;
                padding: 20px 20px 20px 25px;
            }
           
            .page-header {
                flex-direction: column;
                gap: 10px;
                align-items: flex-start;
            }
           
            .entry-bubble {
                padding: 15px;
            }
           
            .nav-btn {
                width: 55px;
                height: 55px;
                font-size: 1.8rem;
            }
           
            .page-indicator {
                padding: 8px 16px;
                font-size: 1.5rem;
                min-width: 130px;
            }
           
            .date-plate {
                font-size: 20px;
                padding: 5px 18px;
            }
           
            .character-name {
                font-size: 24px;
                padding: 5px 18px;
            }
           
            .character-one .entry {
                font-size: 16px;
            }
           
            .character-two .entry {
                font-size: 18px;
            }
        }

        @media (max-width: 400px) {
            .flip-scene {
                height: 500px;
            }
           
            .page {
                height: 470px;
                padding: 15px;
            }
           
            .entry-bubble {
                padding: 12px;
            }
           
            .character-one .entry {
                font-size: 15px;
            }
           
            .character-two .entry {
                font-size: 16px;
            }
        }
    </style>
</head>
<body>
    <div class="book-wrapper">
        <div class="book-interior">
            <div class="flip-scene" id="flipScene">
                <div class="gutter"></div>
            </div>
            <div class="nav-panel">
                <button class="nav-btn" id="prevPageBtn" aria-label="предыдущая страница">◀</button>
                <span class="page-indicator" id="indicator">стр. 1 / 10</span>
                <button class="nav-btn" id="nextPageBtn" aria-label="следующая страница">▶</button>
            </div>
            <div class="footer-note">✦  Steel Boner  ✦</div>
        </div>
    </div>

    <script>
        (function() {
            const pagesData = [
                               
                {
                    type: 'character-two',
                    name: 'КЛАЙД',
                    date: '13 октября',
                    text: `Сегодня ночью спал просто отвратительно. По ощущениям будто кто-то подкинул мне в голову взрывчатку - подкрался, пока я дремал, открыл черепную крышку, сбросил туда всякой дряни, закрыл и убежал со всех ног. Какой-то ментальный подкидыш. Взрывоопасная бредятина. <br>
Причем сон начинался просто чудесно - я, кажется, был на задании или просто развлекался славной "охотой", я отчетливо помню, как пролезал в чье-то тело, подслушивал чужой пульс, окунался в чужие крики, но потом.. потом я полностью потерял контроль над собой. Нет, я продолжил начатое, но будто бы уже не по своей воле, я наносил своей жертве увечья, но не там, где хотел их нанести, и пытал ее не теми способами, которыми предпочитал. Из дирижёра я превратился в обычного зрителя, пусть и посаженного в первых рядах. Очень гадкое ощущение, когда ты, вроде бы, делаешь все то, что хотел изначально, но по чьей-то указке, по чьему-то велению, в совершенно ином, не согласованном с тобой, виде. <br>
Я потратил три тысячелетия на то, чтобы двинуть хотя бы пальцем, чтобы сделать хоть что-то самостоятельно, а не лицезреть парализованным истуканом, как льются реки крови из вспоротых глоток. Творить нечто настолько живодерское и безжалостное, но не по доброй воле - самое мерзкое, самое унизительное и святотатственное, что можно придумать. Грешить нужно осознанно. По велению своего выбора, своего решения, своей тяги, иначе это просто кукольная постановка, где ты нелепо болтаешься на невидимых ниточках, где ты и не убийца даже, а лишь инструмент того, кто в действительности убийцей является. Заснуть снова я так и не смог, однако днем был весьма бодр. <br>
Подумаешь, скверный сон. И не такое случалось.`
                },
               
                {
                   type: 'character-one',
                   name: 'ШОН',
                   date: '16 октября',
                   text: `Дни сейчас – какая-то сплошная суета. Ни секунды присесть и ни единого  дельного воспоминания чтобы записать. Вроде работал, вроде был в зале, даже кого-то видел и с кем-то переговаривался. На обеде вчера снова общался с присланным из Инквизиции работником. <br>
После последнего нашего дела, вызывают на разговоры снова и снова, что-то уточняют, расспрашивают каждый раз как в первый. И я раз за разом им повторяю всю ту же череду событий, будто могу сказать что-то новое. Они, кажется, даже надеются, что скажу. У них, у всех этих вежливых клерков, записывающих в свои блокнотики все те же слова, взгляды хищные, скучно-дотошные до деталей, бесчувственные бусинки вместо зрачков. “Мистер Боунс, 12 числа вы сказали, что закрыли дверь и потом проверили оружие, а сейчас говорите, что проверили оружие, закрыли дверь… так что же правда? Хорошо… старайтесь больше не сбиваться в показаниях и очередности событий”. <br>
Господи, какой же бред. Клайда они опросили всего раз или два, меня донимают уже в четвертый. Что-то у них там не сходится, а я спокойно им отвечу, в отличии от соула, способного вывести своей улыбкой и наглостью даже самых непрошибаемых зануд. Вот и вызывают меня к ним опять и опять. Надеюсь, этот раз был последним.<br>
Впрочем, Клайд вчера тоже был куда менее самоуверенным, чем обычно. Даже усталым. На вопросы послал к черту, но выглядел так, что хоть тут ему чай с валерьяной выдавай под колыбельную. Сегодня ему, кажется, еще хуже, но в каждую попытку заговорить об этом я будто сталкиваюсь со стеной, за которую меня не пускают дальше. Видел, как он клюет носом, пока думает, что никто не смотрит. Он явно херово спит.` },
               
                {
                   type: 'character-two',
                   name: 'КЛАЙД',
                   date: '18 октября',
                   text: `Ебаные кошмары.<br>
Ебаные кошмары изводят и истачивают мой мозг уже третью ночь подряд. Затравливают меня, словно зверя, загоняют в угол, тычут копьями, заставляя злобно скалиться, тянуть улыбку наперекор неотступным нападкам. Каждая попытка уснуть - все равно что выход на поле боя, где у меня с порога отбирают все оружие, крепко связывают и бросают под ноги врага. Что-то не так. Что-то выходит из-под контроля, допиливает меня, досверливает, пытается продырявить мой череп, чтобы я вытек наружу. <br>
Вычитал в интернете про сонный паралич, и это правда нечто схожее - во сне я начисто теряю возможность двигаться самостоятельно, однако я шевелюсь, я делаю очень много вещей, но притом не имею к ним никакого отношения. Мои руки движутся сами собой, мои ноги делают шаг за шагом - сами собой, я дышу, слизываю кровь, вгрызаюсь в чье-то мясо, рву кого-то на части, но все удовольствие от процесса переводится на чей-то чужой счет, пополняет чью-то чужую казну. Совершать столько упоительных злодейств и притом не являться их автором - что за ебаное гадство? И голос.. Я слышу чей-то голос, отдаленный и размытый эхом, который наговаривает мне - учись, как надо.. учись у скверны как надо.. Неужели она снова пытается пробраться в мою башку? Устроиться в ней непрошенной квартиранткой? Хоо, какая же ты наглая сучка, приходишь во снах, чтобы учить меня, как следует обходиться с чужой уязвимой плотью? Тупая ты мразь, мне не нужны твои уроки, я не стремлюсь стать твоим преданным подданным, это тебя волнует насколько темен мрак и насколько низок грех, я же ношу жертвы к алтарю своего стояка, и в рот я ебал, чему ты хочешь меня научить. Появись передо мной в реальности, блядская ты подстилка, подступись ко мне вне снов, преподай мне урок с глазу на глаз.<br>
Раздражение копится вместе с продуктами распада моего терпения. То, что ранее меня ничуть не напрягало, теперь становится вполне объективной причиной для линчевания. Еще и Шон внезапно решил изобразить мистера заботу, уже который раз делает в мой адрес очаровательные комплименты, подмечая темные круги под моими глазами и помятый внешний вид. "Ты выглядишь просто кошмарно. Что с тобой? Дрочишь ночами напролет и потому не высыпаешься?". Я улыбаюсь ему, почти щерюсь, обороняюсь от его вопросов стиснутыми в оскале зубами, цедя сквозь них, что все в порядке. Настаивая: "Отъебись)))". Ох уж эти его ебаные игры в участие и сострадание. Ну разумеется все должно идти по твоему сценарию, тигренок, разумеется мы должны сесть за чашечкой кофе и обсудить, как хуево я сплю в последнее время. Чтобы ты посмотрел на меня своими щенячьими глазками, сказал что-то типа "очень плохо" или "жаль" или "тебе нужно обратиться ко врачу, сходить с тобой?", а я конечно же отвечу тебе "да, пупсик, своди меня к дяде доктору, пусть он пропишет мне таблеточки, а потом мы вернемся в спаленку и я отсосу у тебя за то, какой ты у меня заботливый", ну да, ага, все ведь так и должно быть, ебаная ты паскудина с ебаными твоими "с тобой что-то не так", пошел нахуй, Шон, пошли нахуй, кошмары, и скверна - тебе персональное ПОШЛА НАХУЙ.<br>
Я слышу как смеюсь. Но я уже не уверен, что делаю это сам.` },
               
                {
                   type: 'character-one',
                   name: 'ШОН',
                   date: '19 октября',
                   text: `Если бы я мог сдавать пространство, принадлежащее моему соулу, то в мешках под глазами Клайда поселил бы несколько квартирантов. Жить там можно на широкую ногу, большой семьей, помешает разве что не очень удачное соседство с его ртом, из которого круглосуточно извергаются всякие гадости.<br>
А кроме шуток, это начинает серьезно беспокоить. Рядом со мной не соул, а его тень, и надо сказать, что я уже просчитываю пути насильного причинения добра на пару с врачом. Я слежу за его мимикой, движениями, и они все более нервные, порой он медлителен как человек в полусне, порой – куда ярче реагирует, резко подкидывается. И неизменно посылает меня нахуй, стоит указать на проблему и ее симптомы. Складываю даты и когда примерно это все могло с ним начаться, и, кажется, начинаю догадываться о причинах происходящего.<br>
Какое удивительное чувство находить уязвимости психики в том, в ком, казалось бы, их и не могло быть ввиду изначально покореженной ментальности. Чем дольше об этом думаю, чем больше смотрю, тем больше понимаю, что Клайду нужна помощь и это почти физически больно – сталкиваться с тем, что я эту помощь оказать нормально не могу. Видно же, как ему хреново, и мне его все более и более жалко. Ловлю себя на том, что хочу его порой просто обнять, но отлично знаю как далеко и как весело пойду с такими желаниями.<br>
Вместо этого заживо варю себя в чувстве вины. Потому что, кажется, мог предотвратить все, что он сейчас испытывает, еще в зачатке, но просто и очень тупо не успел. А потом уже был зациклен на своих собственных страхах.<br>
Забил, забыл, не подумал. И хуя с два теперь проберусь через все эти защиты и его панцири, чтобы успокоить то, что мог бы просто не допустить.<br>
Клайд клюет носом даже на обходе. По сути провел его один, с плетущимся сзади ведьмаком. В полутьме ночных коридоров он просто порой свешивает подбородок к груди, позволяя длинным волосам закрыть лицо и я слышу, как меняется его дыхание, как оно замирает, пытается замедлится. Внутри что-то древнее говорит, что надо его окружить собой, согреть и защитить в уязвимой фазе сна. На деле только замедляюсь в такт его шагам, иногда чуть придерживаю, позволяю ему очнуться самому и так до следующего поворота, где все повторяется. Обычный обход занимает на час больше, а во мне сжимается сердце из-за волнения за него.` },
               
                {
                   type: 'character-two',
                   name: 'КЛАЙД',
                   date: '19 октября',
                   text: `Из-за недосыпа в моем теле становится все меньше места для меня. Нет, я пытаюсь с этим совладать, пытаюсь просто расслабиться, отпустить ситуацию, вроде как - подумаешь, я вижу сон, в котором кто-то управляет моим телом и делает всякие безбожные вещи. Почему мне так принципиально чинить вред самому? Ведь тело во сне двигается, боль причиняется, я вижу, как страдают люди, множество людей, но почему-то меня это совсем не радует, не возбуждает, не приводит в экстаз. Не я их мучитель. Не я их палач. Не я их возлюбленный. Это как наблюдать чужой пир со стороны, видеть, как кто-то лакомится вкуснейшей амброзией, сидя при этом так близко, что видишь текстуру еды, чуешь ее запах, но сам угоститься не можешь, как и пришить все увиденное к себе, сделать происходящее частью себя. Я не знаю, как долго это будет продолжаться. Нужно что-то делать. Нужно как-то это решать.<br>
Получил от врача таблетки. Они проходят мое тело транзитом, ничего не привнося, ничего не меняя и не вправляя на место. Мое внутричерепное страдание не поддается никаким химическим соединениям, никакому фармакологическому волшебству. Проверка на заражение скверной тоже ничего не дала - я не нуждаюсь ни в каком очистительном ритуале, я даже не проклят, черт возьми. Тогда что это? Я устал листать интернет. В нем сотни тысяч незнакомых мне людей в сотнях тысячах непонятных мне статей твердят в один голос, что мне пизда. Или, как вариант, острая непереносимость лактозы.<br>
Сегодня, обойдя периметр Академии, мы заскочили с Шоном в общий кабинет, чтобы заполнить отчеты и разойтись по делам. Если первые дни Шон меня раздражал, то сейчас у меня нет сил даже отталкивать его, когда он спешит меня поддержать и подставить свое стальное плечо. Касаюсь пальцами прохладного металла, мягко стучу по нему ногтями, медленно моргаю, чувствуя его дыхание на щеке. Глупый, безнадежный Шон, сладенький ты сучоныш, знал бы ты, как я хочу оторвать тебе и вторую руку, и ноги, и член, оставить от тебя только голову и туловище, превратить тебя в идеальный инструмент для восприятия той боли, которую я для тебя приготовил. Я бы сделал это с тобой, я бы услаждался этим, я бы смеялся, смотря на твое изумительное лицо, а ты, даже зная об этом, все равно обнимаешь меня, придерживаешь за талию, как только замечаешь шаткость в моей походке. Ты безумен, Шон.. Безумен... Шон...<br>
Сидя за письменным столом, я медленно закрываю глаза. Я знаю, что, стоит мне отключиться, как я снова глотну этой отравы, но выбора у меня нет, я слишком измотан. Придется снова испить этой пытки - так же, как умирающему от обезвоживания приходится пить свою мочу, чтобы не сойти с ума от жажды. Я просто хочу спать. Я снова смеюсь. Мне почему-то не жалко себя. Мне почему-то.. никогда по-настоящему.. не жалко себя..` },
               
                {
                   type: 'character-one',
                   name: 'ШОН',
                   date: '19 октября',
                   text: `Он засыпает прямо в кабинете, за столом, после очередной моей безуспешной попытки поговорить обо всем, что с ним происходит. И первые секунды я даже радуюсь, что он спит наконец-то, потому что могу ненадолго отпустить свое за него беспокойство, подумать, что, может, сейчас все наладится и ему станет лучше. Почти довольный заполняю отчет до конца, вытаскиваю из под его щеки лист, и поглядываю на чуть дрожащие черные ресницы, кажется, что его глазные яблоки мечутся из стороны в сторону под плотно сомкнутыми веками, но дыхание пока спокойно. <br>
В его бланке полная билиберда сонного мозга, путающего буквы и слова, поэтому беру новый лист и пишу все заново, имитирую его почерк и подпись, когда рядом что-то странно чавкает, а потом резко бьет в стену. Вскидываюсь разом, только чтобы увидеть, как мой ведьмак расползается на щупы и отростки, которые дергаются, пытаются сквозь сон, кажется, поразить невидимые цели. Его фигура чуть оплывает, а на лице удивительно непривычное мне выражение искреннего противления, муки и беспомощности. Я видел лишь ноты похожей гримасы, однажды, совсем недавно. Меня снова заполоняет чувство вины.<br>
Осторожно подхожу к нему, хотя уворачиваться от атак его щупов не сложно. То что во сне мощный удар, на деле всегда лишь легкое подергивание рукой. Так и тут способность бьет, но сражается с чем-то там, внутри своего сознания, и я вижу в движениях силы лишь слабое эхо той битвы, тревожной, неприятной и явно делающей моего ведьмака несчастным. Когда поднимаю его на руки, между бровей Клайда хмурая складка и я чую запах его злости и недовольства. Надо унести его в безопасность, подальше от случайных свидетелей.` },
               
                {
                   type: 'character-two',
                   name: 'КЛАЙД',
                   date: '19 октября',
                   text: `Из сна меня снова вытурили, как оборзевшего пьянчугу из бара. Вход в здоровый сон теперь платный, судя по всему, и меня в нем не ждут. Открыв глаза, я далеко не сразу вкурил, где нахожусь, но физиономия Шона, сидевшего на стуле перед кроватью, быстро подкинула пару идей - я, вероятно, в его комнате. Я, вероятно.. отключился где-то в кабинете и сам не заметил, как меня перетащили сюда. <i>Он</i> перетащил. "Ты отключился и начал.. превращаться" - заметив, что я прочухался, тут же известил меня Шон. "Ты даже способность свою теперь не контролируешь, не то, что разум". Ох Шон, ты всегда смотришь на меня именно так - упрямо и немного тоскливо одновременно. Не выпускаешь меня из вида. Так навязчиво. Так вызывающе. Сколько наглости и бесстрашия нужно иметь, чтобы смотреть на меня с таким отчаянным беспокойством? Чтобы так настойчиво превращать мою проблему в нашу общую? Ты даже сам не представляешь, как оскорбляешь меня своей абсурдной заботой. Как унижаешь меня своей потребностью ее мне всучить. Не потому, что я в своих глазах слишком сильный, чтобы нуждаться в поддержке, а потому что ты в самом деле хочешь ее оказать, а ведь ты - часть меня, МЕНЯ, откуда вообще это в тебе взялось? Это вариант твоей похоти? Ты ловишь с этого кайф, да? У тебя стояк на то, чтобы печься о тех, кто хочет тебя обглодать? <br>
"Я посплю у себя))" - пытаюсь подняться, но Шон тут же оказывается рядом, чтобы уложить меня обратно на простыни. "Ты не поспишь у себя. Ты нигде не поспишь, Клайд. Сколько ты уже толком не спал? Неделю?". Отвечаю, улыбаясь через силу: "Да, был слишком занят тем, что ебал твою мамашу))". Шутка тупая. Я знаю. Но оттого она и кажется мне максимально уместной и даже жизненно необходимой сейчас. Шону ожидаемо не смешно. "Мне кажется я знаю, почему ты не спишь". <br>
"Хоо, да ты ж мой Эркюль Пуаро. Распутал это дело наконец-то))Давай закажем шлюх и пиццы, и отметим это как следует)))".<br>
"После того задания, да? Когда оскверненный использовал против тебя магию контроля. А я не успел вовремя..".<br>
"Шон, тшшшш, если ты будешь много говорить, то пропустишь важный момент, когда тебе будет пора пойти нахуй))".<br>
"Клайд, хватит улыбаться, хватит шутить и посылать меня! Это не скверна, а психосоматика. Ты же сам понимаешь, что все это связано с тем заданием. Оскверненный мертв, мы убили его, но твоим телом управляли какое-то время, и теперь ты не можешь уснуть из-за того, что потерял над собой контроль. Все ведь так??".<br>
"Ну конечно же, я ведь такой впечатлительный))"<br>
"Дело не в этом. Ты легко переносишь боль и поражение, но.. даже у тебя есть то, что способно тебя задеть. Что тебе снится, Клайд?".<br>
Я ощущаю, как слипается каждая клетка моего тела. Как мембраны залипают, точно клавиши, и превращают сигналы моей нервной системы в полнейший хаос. Я сдаюсь.<br>
Я признаюсь: "Мне снится.. что я убиваю людей. Но не по своей воле".<br>
"Разве ты не хотел бы их убивать?"<br>
"Ахаха.. хотел бы, конечно, но не по чужой указке. Во снах.. я убиваю лучше и слаще, но при этом.. Это не я. Я там вообще не при чем".<br>
"Лучше и слаще?"<br>
"Именно))Ощущение такое, будто кто-то умудряется.. быть мной, но притом быть мной лучше, чем я сам могу собой быть.. Короче, полная параша".<br>
"Хм.. но ведь, если это снится тебе, точнее.. если ты сам это снишь, значит, это все тоже ты сам. Лучше и слаще - это ведь не кто-то другой, потому что внутри тебя не может быть кто-то, кроме тебя"<br>
"Ахахаххахаах!"<br>
"Клайд)"<br>
"Ну да, блядь, не может))Только если будет оооочень настойчив)))"` },
               
                {
                   type: 'character-one',
                   name: 'ШОН',
                   date: '19 февраля',
                   text: `Я впервые в ситуации, когда не знаю, что милосерднее – дать человеку поспать или разбудить от терзающих его кошмаров. Клайд беспокойно мечется на кровати, расплескивая по подушке черноту волос, его тело – изломанные углы, пока он не замирает и вмиг разрешает мою дилемму, проснувшись сам.
Настаиваю, чтобы он остался, пробиваюсь сквозь его попытки послать меня и отшутиться, и, наконец, действительно с ним говорю. Впрочем, озвучить причину, понять её и овеществлить – одно, но внятного решения проблемы так и нет, и я нажимаю на его плечо, гася новую попытку встать. <br>
“Все, попиздели и хватит, я к себе))” <br>
“Слушай, у себя ты спать уже пытался, не сработало. Ты там один на один” Смотрю на его лицо в полумраке и удивленно отмечаю, что он действительно позволяет мне удержать его на кровати, и снова ложится. Насколько же тебя покинули силы, если ты не противишься этому жесту, как минимум, из принципов? Не отпускаю ладонь, как-то интуитивно оставляя эффект своего присутствия с ним рядом, чутко вслушиваюсь в его дыхание и подмечаю темп выдохов, и глубину вдохов. И мне кажется, что он чуть успокаивается. Внутренности сжимаются неуместной здесь, да и вообще по отношению к Клайду, нежностью. Но я позволяю чувству быть и надеюсь создать из него что-то, что сможет ему помочь.<br>
“Оскверненный правда мертв, я его убил, помнишь? Перекусил ему нахер глотку, он сдох и все закончилось.”<br>
“Не поверишь, но помню)) Надо было отрезать сученышу его конечности, взбить их в блендере и влить это “смузи” ему в очко))) Ты как всегда милосерден))”<br>
“Прости, на скоростях не доработал. Надо как-то… как-то убедить твой разум, что все прошло, понимаешь? Твой мозг все еще там, воспроизводит это ощущение снова и снова, пытаясь придумать решение, сценарий, как справится с таким страхом. А в итоге только изматывает тебя раз за разом. Это жутко – терять контроль над своим “Я”” <br>
Устраиваюсь удобнее на краю кровати, не убирая ладони, и чувствую как в мою кожу толкается его беспокойный пульс. Сердце Клайда еще там, в ошметках беспокойного сна, но он сам, кажется, снова начинает проваливаться в новую бездну кошмара. Речь его становится медленнее.<br>
“Раз отдаешь свою кровать, пиздуй тогда))”<br>
Со стола на пол спрыгивает Коф, и я смотрю на белую шерстку во тьме. Думаю об успокаивающем кошачьем мурлыканье, но кот не переносит Клайда, кажется, чувствуя, что тот не прочь бы его прикончить. И едва ли согласился бы лечь с ним рядом, чтобы согреть и успокоить. Впрочем, в этой комнате есть и кот побольше.
“Давай вместе ляжем? Ты будешь там не один. Я прикончил его в жизни, прикончу и у тебя во сне. Все закончится”<br>
“Или я испотрошу тебя чернью, пока сплю)))”<br>
“Или так” легко соглашаюсь, но придвигаюсь ближе.<br>
“Даже не знаю, мы так редко с тобой спим)))”<br>
Улыбаюсь снова, подмечая очередную двусмысленность фразы. И действительно задумываюсь, почему мне так понравилась идея. Из-за уже потихоньку хронического беспокойства за него, или из-за редкой возможности побыть с ним так близко и до странности не опасно, мать его… доверительно? Думаю о том, что, может, это я эгоист, и хочу видеть способ помощи в том, что, скорее, просто приятно мне самому.<br>
“Во всех смыслах)))”<br>
Он медленно моргает, потом с явным усилием возвращает осмысленность взгляду, и я задумываюсь, обнимал ли кто-то его когда-то во сне вообще. Тепло и любяще. В детстве? После?<br>
“Слушай, в крайнем случае, ты просто поспишь в обнимку с теплой мохнатой грелкой”<br>
Легко залезаю в кровать, чувствуя боком его тепло и уже там оборачиваюсь зверем, приваливаясь ближе к нему. На кровати маловато места для взрослого мужика и тигра, и я надеюсь, что он сам догадается использовать меня как большую подушку. Улыбаюсь про себя и выдыхаю с клекотом невысказанного довольства в легких, когда он закидывает на меня руку и чуть сжимает в пальцах шерсть.` },
               
                {
                   type: 'character-two',
                   name: 'КЛАЙД',
                   date: '19 октября',
                   text: `Мы лежим на его кровати. Шон обратился тигром - видимо, чтобы, засыпая, я чувствовал под пальцами его плотную и утешающе теплую шкуру. Как же тяжело признать, что мой враг - не болезнь и не скверна, а я сам, мой долбанный разум, которому, оказывается, крепко досталось от магии контроля. Шон назвал это психосоматикой. Я бы назвал это "ебаной психосоматикой". Мне тяжело признать, что подсознание способно так сильно влиять на мое тело. Что мысли и чувства, которых я не вижу, которые я не могу осязать, все эти призрачные импульсы в моем сером веществе горазды поставить меня и мое здоровье на колени, заставить меня не спать и толком не есть целую неделю. <br>
Мой разум для меня - зашифрованный черный ящик, в который я сам предпочитаю не соваться, не распутывать кабели и провода, чтобы не ударило током, не заклинило еще сильнее, не погасло. Пусть работает, как работает, лучше не трогать и не вносить изменения. Почему Шон не боится совать туда руку? Почему так бесстрашно перебирает нейронные петли моего межполушарного хаоса, даже получая в ответ лучевые ожоги? "Я буду спать с тобой, а завтра отведу тебя к психологу, понял?". Я ничего не ответил, даже не улыбнулся. <br>
Какой психолог, Шон? Ты - единственный, перед кем я бы порезал свой мозг на тонкие ломтики и кому показал бы срез каждой извилины. Я не могу дать себе права довериться кому-либо добровольно, но к близости с тобой меня принудила сама природа, сделав тебя моим соулом, и спасибо ей, что принудила, слава ей, что заставила, что дала достойное оправдание тому доверию, что я испытываю к тебе, сучоныш.. О каком психологе ты говоришь.. <br>
Сжимаю полосатую шкуру, проваливаюсь в заросли черно-рыжей шерсти, впускаю в себя низкочастотный тигриный клекот, это мерное шершавое дыхание, эту сильную и неукротимую жизнь. В моей голове не может быть кого-то еще, кроме меня самого. Все, что я делаю во снах, я делаю сам и никто другой. Ты ведь напомнишь мне это там, во сне, Шон? <br>
Ты ведь не опоздаешь..?` }
            ];

            const totalPages = pagesData.length;
            let currentPageIndex = 0;

            const scene = document.getElementById('flipScene');
            const indicator = document.getElementById('indicator');
            const prevBtn = document.getElementById('prevPageBtn');
            const nextBtn = document.getElementById('nextPageBtn');

            function buildPages() {
                scene.innerHTML = '';
                const gutterDiv = document.createElement('div');
                gutterDiv.className = 'gutter';
                scene.appendChild(gutterDiv);

                pagesData.forEach((data, index) => {
                    const pageDiv = document.createElement('div');
                    pageDiv.className = `page ${data.type}`;
                    pageDiv.setAttribute('data-index', index);

                    const lines = document.createElement('div');
                    lines.className = 'page-lines';
                   
                    const contentDiv = document.createElement('div');
                    contentDiv.className = 'page-content';
                   
                    // Создаём верхнюю плашку с датой и именем
                    const headerDiv = document.createElement('div');
                    headerDiv.className = 'page-header';
                   
                    const datePlate = document.createElement('div');
                    datePlate.className = 'date-plate';
                    datePlate.innerText = data.date;
                   
                    const namePlate = document.createElement('div');
                    namePlate.className = 'character-name';
                    namePlate.innerText = data.name;
                   
                    headerDiv.appendChild(datePlate);
                    headerDiv.appendChild(namePlate);
                   
                    const bubbleDiv = document.createElement('div');
                    bubbleDiv.className = 'entry-bubble';
                   
                    const textDiv = document.createElement('div');
                    textDiv.className = 'entry';
                    textDiv.innerHTML = data.text;

                    bubbleDiv.appendChild(textDiv);
                    contentDiv.appendChild(headerDiv);
                    contentDiv.appendChild(bubbleDiv);

                    pageDiv.appendChild(lines);
                    pageDiv.appendChild(contentDiv);

                    scene.appendChild(pageDiv);
                });

                updatePagesState();
            }

            function updatePagesState() {
                const pages = document.querySelectorAll('.page');
                pages.forEach((page, idx) => {
                    page.classList.remove('front-right', 'flipped-left', 'stack-left');

                    if (idx === currentPageIndex) {
                        page.classList.add('front-right');
                    } else if (idx < currentPageIndex) {
                        page.classList.add('flipped-left');
                    } else {
                        page.classList.add('stack-left');
                    }
                });
                indicator.innerText = `стр. ${currentPageIndex + 1} / ${totalPages}`;
                prevBtn.classList.toggle('disabled', currentPageIndex === 0);
                nextBtn.classList.toggle('disabled', currentPageIndex === totalPages - 1);
            }

            function nextPage() {
                if (currentPageIndex >= totalPages - 1) return;

                const currentPage = document.querySelector(`.page[data-index="${currentPageIndex}"]`);
                const nextPageElem = document.querySelector(`.page[data-index="${currentPageIndex + 1}"]`);

                if (!currentPage || !nextPageElem) return;

                nextPageElem.classList.remove('stack-left');
                void currentPage.offsetWidth;

                currentPage.classList.remove('front-right');
                currentPage.classList.add('flipped-left');

                nextPageElem.classList.remove('stack-left');
                nextPageElem.classList.add('front-right');

                currentPageIndex++;

                const pages = document.querySelectorAll('.page');
                pages.forEach((page, idx) => {
                    if (idx < currentPageIndex) {
                        page.classList.remove('front-right', 'stack-left');
                        page.classList.add('flipped-left');
                    } else if (idx === currentPageIndex) {
                        // уже обработано
                    } else {
                        page.classList.remove('front-right', 'flipped-left');
                        page.classList.add('stack-left');
                    }
                });

                indicator.innerText = `стр. ${currentPageIndex + 1} / ${totalPages}`;
                prevBtn.classList.toggle('disabled', currentPageIndex === 0);
                nextBtn.classList.toggle('disabled', currentPageIndex === totalPages - 1);
            }

            function prevPage() {
                if (currentPageIndex <= 0) return;

                const currentPage = document.querySelector(`.page[data-index="${currentPageIndex}"]`);
                const prevPageElem = document.querySelector(`.page[data-index="${currentPageIndex - 1}"]`);

                if (!currentPage || !prevPageElem) return;

                prevPageElem.classList.remove('flipped-left', 'stack-left');
                void currentPage.offsetWidth;

                currentPage.classList.remove('front-right');
                currentPage.classList.add('flipped-left');

                prevPageElem.classList.remove('flipped-left', 'stack-left');
                prevPageElem.classList.add('front-right');

                currentPageIndex--;

                const pages = document.querySelectorAll('.page');
                pages.forEach((page, idx) => {
                    if (idx < currentPageIndex) {
                        page.classList.remove('front-right', 'stack-left');
                        page.classList.add('flipped-left');
                    } else if (idx === currentPageIndex) {
                        // front-right
                    } else if (idx > currentPageIndex) {
                        page.classList.remove('front-right', 'flipped-left');
                        page.classList.add('stack-left');
                    }
                });

                indicator.innerText = `стр. ${currentPageIndex + 1} / ${totalPages}`;
                prevBtn.classList.toggle('disabled', currentPageIndex === 0);
                nextBtn.classList.toggle('disabled', currentPageIndex === totalPages - 1);
            }

            buildPages();

            prevBtn.addEventListener('click', prevPage);
            nextBtn.addEventListener('click', nextPage);
        })();
    </script>
</body>
</html>[/html]

+5

7

[html]
<div class="story-container">
    <h2>✧ РАЗГОВОР В ТЕМНОТЕ ✧</h2>
    <div class="constellation-sign">⋆・゚:⋆・゚ наведи, чтобы подслушать ⋆・゚:⋆・゚</div>
   
    <div class="star-rules">
        <div class="rule-item">
            <span class="rule-star">✧</span>
            <span class="rule-text">Все реплики (прямая речь) персонажей — ложь. Нельзя произносить фразы, которые соответствуют реальным чувствам или намерениям.</span>
        </div>
        <div class="rule-item">
            <span class="rule-star">✧</span>
            <span class="rule-text">В тексте нельзя называть чувства напрямую — то есть, использовать такие слова как «люблю», «страшно», «счастлив» и подобные даже в словах автора.</span>
        </div>
        <div class="rule-item">
            <span class="rule-star">✧</span>
            <span class="rule-text">Темнота. Сцена происходит без света — ориентироваться можно не на зрение, а другие чувства. Например, на голос, дыхание, звук, тепло.</span>
        </div>
    </div>
   
    <div class="bubbles-container">
        <div class="paragraph-list">
            <div class="p-item">
                <div class="p-text">
Темнота не оставляет ничего за собой, очертания предметов прячутся в ней, смазываются, теряются, рассыпаются, как труха. Остается только теплая кожа под пальцами и звук дыхания – своего и чужого.<br>
– Я пойду к себе. – Голос Клайда звучит над самым ухом, и Шон улыбается, роняя на его живот руку – живую, но будто столь же тяжелую, как и стальная.<br>
– Ну так уходи.
                </div>
            </div>
            <div class="p-item">
                <div class="p-text">
Слышен шорох одеяла, скрип кровати, но ведьмак так и не скидывает с себя объятия, не уходит прочь, заново учиться спать в одиночестве без кошмаров, а опаляет своим дыханием – слишком близким, прямо у скулы, вжатой в подушку. Остается лишь замереть и притаиться, постараться не спугнуть и в полной мере осознать, что вот он тут, на расстоянии нескольких миллиметров. Повернулся и делит с ним одну подушку, и тело его, замершее под рукой, абсолютно расслабленное – самое ему там и место. Думать, как ненароком прижаться еще теснее и кто первый это сделает, кто решится прильнуть всем собой. Если решится.
                </div>
            </div>
            <div class="p-item">
                <div class="p-text">
Что открытые глаза, что закрытые – ночь крадет образы, прячет за собой Клайда, выражение его лица и мысли. Улыбку или сведенные брови, каждый жест и намек. По телу поднимается жар, и то ли это так ускорилось сердце, то ли нужно отбросить одеяло прочь.<br>
– Убери руку, мешает. – Ворчание Клайда тихое, слишком тихое, но в густой тишине отчетливо обманчивое, а каждое слово касается щеки на излете.
                </div>
            </div>
            <div class="p-item">
                <div class="p-text">
Когда он рядом, все внутри тянет и надрывается, пытается поймать его и удержать в руках, защитить и забрать себе. Вопреки всякому здравому смыслу.<br>
– Ладно, уберу. – Шон пропускает удар сердца, когда тянет его к себе ближе и находит поцелуем его подбородок, а после сухие губы, жесткие и властные, пытающиеся получить преимущество, с первой секунды завладеть, отвоевать и выиграть. Хотя по итогу выигрывают оба – до сбитого дыхания и нехватки воздуха. Будто борются за то, кто дольше продержится или кто первый задохнется.
                </div>
            </div>
            <div class="p-item">
                <div class="p-text">
– Лучше бы ты меня не целовал, сучоныш))) <br>
Клайд быстро оказывается сверху, выпутывается в одно неуловимое движение и седлает, прижимая собой. Он почти шипит и, скорее всего, скалится своей вечной улыбкой за пологом черноты.
                </div>
            </div>
            <div class="p-item">
                <div class="p-text">
Сейчас в тишине есть только собственное сердце, забывшее выверенный ритм, бьющееся о ребра, пока пальцы не путаются в волосах ведьмака, а стальная ладонь плотно усаживается на бедре, как влитая, недвижимая. Шон чувствует, как чужие длинные пальцы ощупывают его кожу, касаются и гладят, вызывая острые иголочки мурашек вверх по телу, он чувствует, как они угрожающе медленно давят на уязвимые места, проверяют – не дернется ли тот зверем прочь. Примеряются, как бы удобнее выпотрошить его тушку.
                </div>
            </div>
            <div class="p-item">
                <div class="p-text">
Шон тянет своего соула ближе и вновь впивается в его губы, рискует и получает новый поцелуй-катарсис, неизбежный в том, как заставляет продлевать себя снова и снова, пока не оттолкнут и не протянут с деланной ленцой у самого уха:<br>
– Я бы уже с десяток снов у себя пересмотрел, пока здесь с тобой вожусь, тупое ты зверье)))
                </div>
            </div>
            <div class="p-item">
                <div class="p-text">
– Прости, мне не стоило этого всего делать.<br>
В кровати снова революция, и Шон стягивает Клайда вниз, к себе, ближе, всего его пытается объять, трогает и оглаживает. Прикосновения жадные, голодные, без зрения запечатлеваются в разуме яркими тактильными фейверками.
                </div>
            </div>
            <div class="p-item">
                <div class="p-text">
Им, на деле, совсем не нужны слова, чтобы прижимать, кусать, касаться и гладить. Не нужны слова, чтобы тянуть ближе, отталкивать в самый последний момент, но не отпускать, и во всем этом, в бездне черноты вокруг, разделять одну жизнь на две примагниченные половины.
                </div>
            </div>
        </div>
    </div>
</div>

<style>
    * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
    }

    body {
        min-height: 100%;
        background: radial-gradient(ellipse at top, #0b0f2a, #020617);
        display: flex;
        align-items: center;
        justify-content: center;
        font-family: 'Georgia', 'Times New Roman', serif;
        padding: 1.5rem;
        margin: 0;
    }

    .story-container {
        position: relative;
        max-width: 760px;
        width: 100%;
        background: radial-gradient(circle at 30% 40%, #1a1f3a, #030514 90%);
        box-shadow: inset 0 0 60px rgba(255, 215, 150, 0.15);
        border: 1px solid rgba(255, 240, 200, 0.1);
        border-radius: 3rem 1.5rem 3rem 1.5rem;
        padding: 3rem 2.5rem;
        backdrop-filter: blur(1px);
        background-image:
            radial-gradient(white 0.8px, transparent 0.8px),
            radial-gradient(rgba(255, 255, 255, 0.4) 0.5px, transparent 0.5px),
            radial-gradient(circle at 30% 40%, #1a1f3a, #030514 90%);
        background-size: 40px 40px, 80px 80px, 100% 100%;
        background-position: 0 0, 20px 30px, 0 0;
        background-blend-mode: overlay, screen, normal;
        z-index: 10;
    }

    .story-container::before {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border-radius: inherit;
        background: radial-gradient(circle at 15% 70%, rgba(255, 240, 180, 0.1) 0%, transparent 25%),
                    radial-gradient(circle at 80% 20%, rgba(200, 220, 255, 0.1) 0%, transparent 30%),
                    repeating-linear-gradient(45deg, rgba(255, 255, 255, 0.01) 0px, rgba(255, 255, 255, 0.01) 2px, transparent 2px, transparent 6px);
        pointer-events: none;
        z-index: 1;
    }

    .story-container::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        pointer-events: none;
        background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><circle cx="12" cy="25" r="0.7" fill="white" opacity="0.6"/><circle cx="88" cy="41" r="1" fill="white" opacity="0.8"/><circle cx="44" cy="82" r="0.8" fill="white" opacity="0.5"/><circle cx="71" cy="8" r="0.6" fill="white" opacity="0.9"/><circle cx="29" cy="68" r="0.9" fill="white" opacity="0.4"/><circle cx="5" cy="92" r="0.5" fill="white" opacity="0.7"/><circle cx="60" cy="55" r="1.1" fill="white" opacity="0.5"/><circle cx="92" cy="78" r="0.8" fill="white" opacity="0.7"/></svg>');
        background-size: 200px 200px;
        background-repeat: repeat;
        mix-blend-mode: screen;
        opacity: 0.2;
        border-radius: inherit;
        z-index: 2;
    }

    /* Звездные правила */
    .star-rules {
        position: relative;
        z-index: 30;
        margin-bottom: 2.5rem;
        display: flex;
        flex-direction: column;
        gap: 1.2rem;
    }

    .rule-item {
        display: flex;
        align-items: flex-start;
        gap: 1rem;
        color: rgba(255, 240, 190, 0.85);
        font-size: 1.3rem;
        line-height: 1.6;
        text-shadow: 0 0 12px rgba(255, 215, 150, 0.3);
        letter-spacing: 0.4px;
        border-left: 2px solid rgba(255, 215, 150, 0.25);
        padding-left: 1.2rem;
    }

    .rule-star {
        color: rgba(255, 215, 150, 0.8);
        font-size: 1.3rem;
        line-height: 1.6;
        text-shadow: 0 0 15px #ffb86b;
        flex-shrink: 0;
    }

    .rule-text {
        font-style: italic;
        font-weight: 300;
    }

    /* Контейнер с красивым скроллом */
    .bubbles-container {
        position: relative;
        z-index: 5;
        max-height: 500px;
        overflow-y: auto;
        padding: 10px 25px 10px 10px;
        margin: -10px -25px -10px -10px;
        scroll-behavior: smooth;
    }

    /* Стилизация скроллбара */
    .bubbles-container::-webkit-scrollbar {
        width: 8px;
    }

    .bubbles-container::-webkit-scrollbar-track {
        background: rgba(10, 15, 30, 0.5);
        border-radius: 10px;
        border: 1px solid rgba(255, 215, 150, 0.1);
        margin: 10px 0;
    }

    .bubbles-container::-webkit-scrollbar-thumb {
        background: linear-gradient(145deg, rgba(255, 215, 150, 0.3), rgba(200, 160, 100, 0.2));
        border-radius: 10px;
        border: 1px solid rgba(255, 240, 200, 0.2);
        box-shadow: inset 0 0 6px rgba(255, 230, 170, 0.3);
    }

    .bubbles-container::-webkit-scrollbar-thumb:hover {
        background: linear-gradient(145deg, rgba(255, 225, 170, 0.5), rgba(220, 180, 120, 0.3));
    }

    .bubbles-container {
        scrollbar-width: thin;
        scrollbar-color: rgba(255, 215, 150, 0.3) rgba(10, 15, 30, 0.5);
    }

    .paragraph-list {
        display: flex;
        flex-direction: column;
        gap: 2rem;
    }

    .p-item {
        margin: 0;
        padding: 1rem 1.5rem;
        color: rgba(255, 255, 240, 0.9);
        background: transparent;
        border-radius: 2rem 0.8rem 2rem 0.8rem;
        line-height: 1.8;
        font-size: 1.3rem;
        text-shadow: 0 2px 5px rgba(0,0,0,0.7);
        border: 1px solid rgba(255, 220, 150, 0.03);
        box-shadow: 0 4px 12px rgba(0,0,0,0.6);
        letter-spacing: 0.3px;
        backdrop-filter: blur(1px);
        word-break: break-word;
       
        transition: opacity 0.2s cubic-bezier(0.1, 0.8, 0.2, 1),
                    filter 0.2s cubic-bezier(0.1, 0.8, 0.2, 1),
                    transform 0.15s ease,
                    box-shadow 0.2s ease,
                    text-shadow 0.2s ease,
                    background 0.2s ease;
       
        opacity: 0.2;
        filter: brightness(0.2) blur(0.6px);
        transform: scale(0.98);
        will-change: opacity, filter, transform;
    }

    .p-text {
        font-weight: 300;
    }

    .p-text br {
        content: '';
        display: block;
        margin-bottom: 0.4rem;
    }

    .paragraph-list:hover .p-item {
        opacity: 0.1;
        filter: brightness(0.1) blur(1px);
        transform: scale(0.97);
        transition: opacity 0.15s ease,
                    filter 0.15s ease,
                    transform 0.15s ease;
    }

.p-item:hover {
    opacity: 1 !important;
    filter: brightness(1.12) drop-shadow(0 0 3px rgba(255, 235, 150, 0.25)) !important;
    transform: scale(1.02) translateY(-2px);

    /* Фон стал глубже и темнее */
    background: radial-gradient(circle at 30% 40%, rgba(255, 245, 210, 0.12) 0%, rgba(18, 16, 32, 0.96) 75%),
                radial-gradient(circle at 70% 60%, rgba(240, 210, 150, 0.08), transparent 65%);
    background-blend-mode: overlay, normal;

    box-shadow:
        0 0 12px rgba(255, 230, 170, 0.18),
        0 0 25px rgba(250, 210, 120, 0.12),
        inset 0 0 40px rgba(0, 0, 0, 0.55),
        0 12px 28px rgba(0, 0, 0, 0.75);

    border-color: rgba(255, 215, 140, 0.35);

    /* Более аккуратная читаемость */
    color: #fdfbf4;
    text-shadow:
        0 2px 4px rgba(0, 0, 0, 0.85),
        0 0 12px rgba(255, 210, 150, 0.25);

    transition: opacity 0.1s ease,
                filter 0.1s ease,
                transform 0.1s ease,
                box-shadow 0.15s ease,
                text-shadow 0.15s ease,
                background 0.15s ease;

    cursor: pointer;
}

    h2 {
        text-align: center;
        margin-bottom: 1.25rem;
        font-weight: 300;
        color: #fff8e7;
        letter-spacing: 5px;
        font-size: 20px;
        text-transform: uppercase;
        text-shadow:
            0 0 20px #ffeedd,
            0 0 40px #ffb86b,
            2px 2px 4px rgba(0,0,0,0.5);
        position: relative;
        z-index: 30;
    }

    .constellation-sign {
        text-align: center;
        margin-bottom: 2.5rem;
        color: rgba(255, 240, 190, 0.75);
        font-size: 1.2rem;
        letter-spacing: 3px;
        position: relative;
        z-index: 30;
        text-shadow: 0 0 15px #ffb86b;
        font-weight: 300;
    }

    @media (max-width: 550px) {
        .story-container {
            padding: 2rem 1.2rem;
        }
        h2 {
            font-size: 1.6rem;
            letter-spacing: 5px;
            margin-bottom: 1rem;
        }
        .constellation-sign {
            font-size: 1rem;
            letter-spacing: 2px;
            margin-bottom: 2rem;
        }
        .bubbles-container {
            max-height: 400px;
            padding: 8px 20px 8px 8px;
            margin: -8px -20px -8px -8px;
        }
        .p-item {
            font-size: 1rem;
            padding: 0.8rem 1.2rem;
        }
        .rule-item {
            font-size: 1rem;
            gap: 0.8rem;
        }
        .rule-star {
            font-size: 1.1rem;
        }
    }
</style>

<script>
    (function() {
        const container = document.querySelector('.story-container');
        if(container) {
            container.style.boxShadow = 'inset 0 0 60px rgba(255, 215, 150, 0.15)';
        }
    })();
</script>
[/html]

+5

8

https://upforme.ru/uploads/001c/82/f2/61/679025.jpg

#p108076,Clyde Steel написал(а):

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

+11

9

Honey, I'm home~
https://upforme.ru/uploads/001c/82/f2/61/973609.png

+9

10

Иногда все складывается очень даже неплохо. Пусть и недолго
https://upforme.ru/uploads/001c/82/f2/61/438018.jpg

Отредактировано Clyde Steel (03-03-2026 16:41:05)

+12

11

https://upforme.ru/uploads/001c/82/f2/61/479718.jpg

#p109065,Clyde Steel написал(а):

«Мы стали ближе, Шон, мы принесли твою руку в жертву и дьявол принял наше подношение, теперь ты ненавидишь меня так же сильно, как и я тебя, теперь ты презираешь меня так же сильно, как и я тебя презираю. Теперь мы вместе в этом отчаянии, в этой свирепой безнадеге, теперь ты понимаешь меня, как никто другой. Теперь ты такой же калека, как и я, которого еще при рождении поделили надвое, на себя и тебя. У тебя будет протез. А у меня будешь ты. Чудесно же, правда???».

+15

12

https://upforme.ru/uploads/001c/82/f2/61/910001.jpg

#p108871,Sean Bones написал(а):

Заливается просто так, насмешливо, жестоко, потому что эмпатии у Клайда нет. И Шон снова, снова, снова, снова… сталкивается с этим лбом. Сколько раз можно ошибаться в одном и том же месте? Сколько можно обманывать себя, искать любви в том, что любви испытывать не может? Одни и те же грабли раз за разом.

+12

13

Когда ты предлагал провести вечер вместе, я рассчитывал немного на другое
https://upforme.ru/uploads/001c/82/f2/61/821592.jpg

Отредактировано Clyde Steel (08-03-2026 00:55:29)

+11

14

Он красив так, что за него не жаль и умереть
https://upforme.ru/uploads/001c/82/f2/62/210150.png

+10

15

С другой стороны, никто кроме тебя не мог бы быть моей частичкой души
https://upforme.ru/uploads/001c/82/f2/62/405083.png

+10

16

- Красивый..
- Пошел нахуй)))
- Когда молчишь.

https://upforme.ru/uploads/001c/82/f2/61/348006.jpg

+8

17

[html]<!DOCTYPE html>
<html lang="ru">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <title>Instagram Gallery</title>
  <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;1,400&family=DM+Sans:wght@300;400;500&display=swap" rel="stylesheet"/>
  <style>

    .ig-root {
      --ig-pink:    #e1306c;
      --ig-orange:  #f77737;
      --ig-yellow:  #fcaf45;
      --ig-purple:  #833ab4;
      --ig-dark:    #0a0a0a;
      --ig-card-bg: #111111;
      --ig-border:  #2a2a2a;
      --ig-text:    #fafafa;
      --ig-muted:   #a8a8a8;
      --gradient:   linear-gradient(45deg, var(--ig-purple), var(--ig-pink), var(--ig-orange), var(--ig-yellow));

      background-color: #0a0a0a !important;
      color: #fafafa !important;
      font-family: 'DM Sans', sans-serif !important;
      font-size: 16px !important;
      line-height: 1.5 !important;
      min-height: 100vh;
      width: 100%;
      display: block;
      position: relative;
      isolation: isolate;
      -webkit-font-smoothing: antialiased;
    }

    .ig-root *, .ig-root *::before, .ig-root *::after {
      box-sizing: border-box !important;
    }

    .ig-root::before {
      content: '';
      position: absolute; inset: 0;
      background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
      opacity: .03;
      pointer-events: none;
      z-index: 0;
    }

    /* TOP BAR */
    .ig-root .topbar {
      position: sticky; top: 0; z-index: 100;
      display: flex; align-items: center; justify-content: space-between;
      padding: 12px 24px;
      background: rgba(10,10,10,.92) !important;
      backdrop-filter: blur(20px);
      border-bottom: 1px solid #2a2a2a;
    }
    .ig-root .topbar-logo {
      font-family: 'Playfair Display', serif;
      font-style: italic;
      font-size: 1.6rem;
      background: var(--gradient);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
    }
    .ig-root .topbar-icons { display: flex; gap: 20px; }
    .ig-root .topbar-icons svg {
      width: 24px; height: 24px;
      stroke: #fafafa; fill: none; stroke-width: 1.8;
      cursor: pointer; transition: stroke .2s;
    }
    .ig-root .topbar-icons svg:hover { stroke: #e1306c; }

    /* PROFILE */
    .ig-root .profile {
      display: flex; align-items: center; gap: 32px;
      max-width: 900px; margin: 48px auto 0;
      padding: 0 24px;
      position: relative; z-index: 1;
    }
    .ig-root .avatar-wrap {
      flex-shrink: 0;
      width: 90px; height: 90px;
      border-radius: 50%;
      padding: 3px;
      background: var(--gradient);
    }
    .ig-root .avatar-inner {
      width: 100%; height: 100%;
      border-radius: 50%;
      background: #111111 !important;
      border: 3px solid #0a0a0a;
      display: flex; align-items: center; justify-content: center;
      font-size: 2rem;
      overflow: hidden;
    }
    .ig-root .avatar-inner img {
      width: 100%; height: 100%;
      object-fit: cover;
      border-radius: 50%;
      display: block;
    }
    .ig-root .profile-info h2 {
      font-size: 1.25rem; font-weight: 500;
      letter-spacing: .02em;
      color: #fafafa !important;
      margin: 0;
    }
    .ig-root .profile-info p {
      color: #a8a8a8 !important;
      font-size: .85rem; margin-top: 4px;
    }
    .ig-root .profile-stats { display: flex; gap: 28px; margin-top: 14px; }
    .ig-root .profile-stats span { font-size: .85rem; color: #a8a8a8 !important; }
    .ig-root .profile-stats strong { color: #fafafa !important; font-weight: 500; }
    .ig-root .follow-btn {
      margin-top: 14px;
      padding: 7px 22px;
      border: none; border-radius: 8px;
      background: #e1306c !important;
      color: #fff !important;
      font-size: .85rem; font-weight: 500;
      cursor: pointer; font-family: inherit;
      transition: opacity .2s, transform .1s;
    }
    .ig-root .follow-btn:hover { opacity: .88; transform: scale(1.03); }

    /* DIVIDER / TABS */
    .ig-root .divider {
      max-width: 900px; margin: 32px auto 0;
      padding: 0 24px; position: relative; z-index: 1;
    }
    .ig-root .divider hr { border: none; border-top: 1px solid #2a2a2a; }
    .ig-root .tabs { display: flex; justify-content: center; gap: 40px; margin-top: -1px; }
    .ig-root .tab {
      display: flex; align-items: center; gap: 6px;
      padding: 12px 0;
      font-size: .78rem; font-weight: 500;
      letter-spacing: .1em; text-transform: uppercase;
      color: #a8a8a8 !important;
      cursor: pointer;
      border-top: 2px solid transparent;
      transition: color .2s, border-color .2s;
    }
    .ig-root .tab.active { color: #fafafa !important; border-color: #fafafa; }
    .ig-root .tab svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 2; }

    /* GALLERY */
    .ig-root .gallery-wrap {
      max-width: 900px; margin: 0 auto;
      padding: 24px 24px 80px;
      position: relative; z-index: 1;
    }
    .ig-root .gallery {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 4px;
    }

    /* CARD */
    .ig-root .card {
      position: relative;
      aspect-ratio: 9 / 16;
      border-radius: 4px;
      overflow: hidden;
      cursor: pointer;
      transition: transform .5s cubic-bezier(.22,1,.36,1), box-shadow .5s cubic-bezier(.22,1,.36,1), z-index 0s .5s;
      will-change: transform;
      background: #111111 !important;
    }
    .ig-root .card::before {
      content: '';
      position: absolute; inset: 0; border-radius: 4px;
      box-shadow: 0 0 0 2px transparent;
      transition: box-shadow .4s;
      z-index: 3; pointer-events: none;
    }
    .ig-root .card:hover::before { box-shadow: 0 0 0 2px #e1306c; }
    .ig-root .card:hover {
      transform: translateY(-14px) scale(1.06);
      box-shadow: 0 30px 60px rgba(0,0,0,.7), 0 0 40px rgba(225,48,108,.18);
      z-index: 10;
      transition: transform .5s cubic-bezier(.22,1,.36,1), box-shadow .5s cubic-bezier(.22,1,.36,1), z-index 0s 0s;
    }
    .ig-root .card img {
      width: 100%; height: 100%; object-fit: cover; display: block;
      transition: transform .7s cubic-bezier(.22,1,.36,1);
    }
    .ig-root .card:hover img { transform: scale(1.08); }

    .ig-root .card-placeholder {
      width: 100%; height: 100%;
      display: flex; align-items: center; justify-content: center;
      font-size: 4rem;
      transition: transform .7s cubic-bezier(.22,1,.36,1);
    }
    .ig-root .card:hover .card-placeholder { transform: scale(1.08); }
    .ig-root .card:nth-child(1) .card-placeholder { background: linear-gradient(160deg, #1a1a2e 0%, #16213e 40%, #0f3460 70%, #533483 100%); }
    .ig-root .card:nth-child(2) .card-placeholder { background: linear-gradient(160deg, #0d0d0d 0%, #1a0a00 30%, #3d0000 60%, #7a0026 100%); }
    .ig-root .card:nth-child(3) .card-placeholder { background: linear-gradient(160deg, #001a00 0%, #003300 40%, #005500 70%, #007744 100%); }

    .ig-root .card-overlay {
      position: absolute; inset: 0;
      background: linear-gradient(to top, rgba(0,0,0,.8) 0%, rgba(0,0,0,.1) 50%, transparent 100%);
      opacity: 0; transition: opacity .35s;
      z-index: 2; display: flex; align-items: flex-end; padding: 16px;
    }
    .ig-root .card:hover .card-overlay { opacity: 1; }
    .ig-root .card-meta { display: flex; gap: 16px; color: #fff; font-size: .82rem; font-weight: 500; }
    .ig-root .card-meta span { display: flex; align-items: center; gap: 5px; }
    .ig-root .card-meta svg { width: 15px; height: 15px; fill: #fff; stroke: #fff; }

    /* BADGE */
    @keyframes ig-pulse {
      0%   { box-shadow: 0 0 0 0 rgba(225,48,108,.6); }
      70%  { box-shadow: 0 0 0 10px rgba(225,48,108,0); }
      100% { box-shadow: 0 0 0 0 rgba(225,48,108,0); }
    }
    .ig-root .live-badge {
      display: inline-flex; align-items: center; gap: 5px;
      background: #e1306c !important;
      color: #fff !important; font-size: .65rem; font-weight: 600;
      letter-spacing: .06em; text-transform: uppercase;
      padding: 3px 8px; border-radius: 4px;
      position: absolute; top: 10px; left: 10px; z-index: 4;
      animation: ig-pulse 1.8s infinite;
    }
    .ig-root .live-dot { width: 6px; height: 6px; border-radius: 50%; background: #fff; }

    /* BOTTOM NAV */
    .ig-root .bottom-nav {
      position: sticky; bottom: 0;
      display: flex; justify-content: space-around; align-items: center;
      padding: 12px 0 20px;
      background: rgba(10,10,10,.96) !important;
      backdrop-filter: blur(20px);
      border-top: 1px solid #2a2a2a;
      z-index: 100;
    }
    .ig-root .nav-item {
      display: flex; flex-direction: column; align-items: center; gap: 4px;
      cursor: pointer; color: #a8a8a8 !important;
      transition: color .2s, transform .2s;
    }
    .ig-root .nav-item:hover { color: #fafafa !important; transform: translateY(-2px); }
    .ig-root .nav-item.active { color: #fafafa !important; }
    .ig-root .nav-item svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 1.8; }
    .ig-root .nav-item.active svg.filled { fill: currentColor; }
    .ig-root .nav-label { font-size: .6rem; letter-spacing: .05em; }

  </style>
</head>
<body>

<div class="ig-root">

  <!-- TOP BAR -->
  <header class="topbar">
    <div class="topbar-logo">Instagram</div>
    <div class="topbar-icons">
      <svg viewBox="0 0 24 24"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9M13.73 21a2 2 0 0 1-3.46 0"/></svg>
      <svg viewBox="0 0 24 24"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
    </div>
  </header>

  <!-- PROFILE -->
  <section class="profile">
    <div class="avatar-wrap">
      <div class="avatar-inner">
        <!-- Вставь <img src="avatar.jpg" alt="avatar"/> сюда -->
        https://upforme.ru/uploads/001c/82/f2/61/214784.jpg
      </div>
    </div>
    <div class="profile-info">
      <h2>Steel_Bones</h2>
      <p>Holy Inquisition</p>
      <div class="profile-stats">
        <span><strong>49</strong> posts</span>
        <span><strong>12.4K</strong> followers</span>
        <span><strong>841</strong> following</span>
      </div>
      <button class="follow-btn">Follow</button>
    </div>
  </section>

  <!-- TABS -->
  <div class="divider">
    <hr/>
    <div class="tabs">
      <div class="tab active">
        <svg viewBox="0 0 24 24"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/></svg>
        Posts
      </div>
      <div class="tab">
        <svg viewBox="0 0 24 24"><polygon points="5 3 19 12 5 21 5 3"/></svg>
        Reels
      </div>
      <div class="tab">
        <svg viewBox="0 0 24 24"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>
        Tagged
      </div>
    </div>
  </div>

  <!-- GALLERY -->
  <main class="gallery-wrap">
    <div class="gallery">

      <div class="card" id="card1">
        <div class="live-badge"><span class="live-dot"></span>New</div>
        <!-- <img src="photo1.jpg" alt="Photo 1"/> -->
        <div class="card-placeholder">https://upforme.ru/uploads/001c/82/f2/61/385891.jpg
</div>
        <div class="card-overlay">
          <div class="card-meta">
            <span><svg viewBox="0 0 24 24"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>4.2K</span>
            <span><svg viewBox="0 0 24 24"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>128</span>
          </div>
        </div>
      </div>

      <div class="card" id="card2">
        <!-- <img src="photo2.jpg" alt="Photo 2"/> -->
        <div class="card-placeholder">https://upforme.ru/uploads/001c/82/f2/61/337378.jpg
</div>
        <div class="card-overlay">
          <div class="card-meta">
            <span><svg viewBox="0 0 24 24"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>7.8K</span>
            <span><svg viewBox="0 0 24 24"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>314</span>
          </div>
        </div>
      </div>

      <div class="card" id="card3">
        <!-- <img src="photo3.jpg" alt="Photo 3"/> -->
        <div class="card-placeholder">https://upforme.ru/uploads/001c/82/f2/61/878797.jpg
</div>
        <div class="card-overlay">
          <div class="card-meta">
            <span><svg viewBox="0 0 24 24"><path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>2.1K</span>
            <span><svg viewBox="0 0 24 24"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>76</span>
          </div>
        </div>
      </div>

    </div>
  </main>

  <!-- BOTTOM NAV -->
  <nav class="bottom-nav">
    <div class="nav-item active">
      <svg class="filled" viewBox="0 0 24 24"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
      <span class="nav-label">Home</span>
    </div>
    <div class="nav-item">
      <svg viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
      <span class="nav-label">Search</span>
    </div>
    <div class="nav-item">
      <svg viewBox="0 0 24 24"><rect x="3" y="3" width="18" height="18" rx="3"/><line x1="12" y1="8" x2="12" y2="16"/><line x1="8" y1="12" x2="16" y2="12"/></svg>
      <span class="nav-label">New</span>
    </div>
    <div class="nav-item">
      <svg viewBox="0 0 24 24"><polygon points="5 3 19 12 5 21 5 3"/></svg>
      <span class="nav-label">Reels</span>
    </div>
    <div class="nav-item">
      <svg viewBox="0 0 24 24"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
      <span class="nav-label">Profile</span>
    </div>
  </nav>

</div>

<script>
  document.querySelectorAll('.ig-root .card').forEach(card => {
    card.addEventListener('mousemove', e => {
      const r = card.getBoundingClientRect();
      const x = (e.clientX - r.left) / r.width  - .5;
      const y = (e.clientY - r.top)  / r.height - .5;
      card.style.transform =
        `translateY(-14px) scale(1.06) rotateY(${x * 8}deg) rotateX(${-y * 8}deg)`;
    });
    card.addEventListener('mouseleave', () => {
      card.style.transform = '';
    });
  });
</script>
</body>
</html>[/html]

Отредактировано Clyde Steel (14-03-2026 15:13:36)

+11

18

- А инквизиторам хорошо платят?
- На пачку чипсов хватает)))

https://upforme.ru/uploads/001c/82/f2/61/495117.jpg

+8

19

А что если бы мы были персонажами старенькой полигональной игрушки)))
https://upforme.ru/uploads/001c/82/f2/61/483615.jpg

+9

20

[html]
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }

.win95-monitor {
  background: #444;
  padding: 20px;
  border-radius: 20px;
  border: 12px solid #2a2a2a;
  box-shadow: inset 0 0 15px #000;
  max-width: 950px;
  margin: 20px auto;
}
.win95-screen {
  background-color: #008080;
  height: 550px;
  position: relative;
  overflow: hidden;
  font-family: "MS Sans Serif", Arial, sans-serif;
  font-size: 12px;
}
.w95-desktop-icons {
  padding: 15px;
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: 10px;
  height: calc(550px - 32px);
}
.w95-icon {
  width: 72px;
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: pointer;
  color: white;
  font-size: 11px;
  text-align: center;
  user-select: none;
  padding: 4px;
  border-radius: 2px;
}
.w95-icon:hover { background: rgba(255,255,255,0.15); }
.w95-icon.w95-active { background: rgba(0,0,128,0.5); }
.w95-icon img { width: 32px; height: 32px; image-rendering: pixelated; margin-bottom: 4px; }
.w95-icon span { word-break: break-all; line-height: 1.2; }

.w95-window {
  display: none;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: #c0c0c0;
  border: 2px solid;
  border-color: #dfdfdf #808080 #808080 #dfdfdf;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.5);
  padding: 2px;
  z-index: 100;
  width: 92%;
  max-width: 820px;
}
.w95-window.w95-open {
  display: block;
  animation: w95Open 0.15s ease-out;
}
@keyframes w95Open {
  from { transform: translate(-50%, -50%) scale(0.92); opacity: 0; }
  to   { transform: translate(-50%, -50%) scale(1); opacity: 1; }
}
.w95-title-bar {
  background: linear-gradient(90deg, #000080, #1084d0);
  color: white;
  padding: 3px 5px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: bold;
  font-size: 12px;
}
.w95-title-text { flex: 1; }
.w95-win-btns { display: flex; gap: 2px; }
.w95-win-btn {
  background: #c0c0c0;
  color: black;
  border: 1px solid;
  border-color: #fff #444 #444 #fff;
  width: 18px;
  height: 16px;
  text-align: center;
  line-height: 14px;
  cursor: pointer;
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.w95-win-btn:active { border-color: #444 #fff #fff #444; }

.w95-window-content {
  background: #222;
  border: 2px inset #dfdfdf;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  height: 430px;
}
.w95-content-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}
.w95-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.45);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.3);
  width: 32px;
  height: 48px;
  cursor: pointer;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 10;
  user-select: none;
}
.w95-nav-btn:hover { background: rgba(0,0,0,0.7); }
.w95-nav-prev { left: 4px; }
.w95-nav-next { right: 4px; }
.w95-nav-counter {
  position: absolute;
  bottom: 5px;
  right: 8px;
  color: rgba(255,255,255,0.7);
  font-size: 11px;
  background: rgba(0,0,0,0.4);
  padding: 1px 5px;
}
.w95-taskbar {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 30px;
  background: #c0c0c0;
  border-top: 2px solid #dfdfdf;
  display: flex;
  align-items: center;
  padding: 0 5px;
  z-index: 200;
}
.w95-start-btn {
  display: flex;
  align-items: center;
  gap: 4px;
  border: 1px solid;
  border-color: #fff #444 #444 #fff;
  padding: 2px 8px;
  cursor: pointer;
  font-weight: bold;
  font-size: 12px;
}
.w95-divider { width: 2px; height: 20px; background: #808080; border-right: 1px solid #fff; margin: 0 4px; }
.w95-system-tray { margin-left: auto; border: 2px inset #dfdfdf; padding: 0 10px; font-size: 12px; }
</style>

<div class="win95-monitor">
  <div class="win95-screen">

    <div class="w95-desktop-icons" id="w95Icons"></div>

    <div class="w95-window" id="w95Window">
      <div class="w95-title-bar">
        <div class="w95-title-text" id="w95Title">—</div>
        <div class="w95-win-btns">
          <div class="w95-win-btn" id="w95PrevBtn">◄</div>
          <div class="w95-win-btn" id="w95NextBtn">►</div>
          <div class="w95-win-btn" id="w95CloseBtn">×</div>
        </div>
      </div>
      <div class="w95-window-content">
        <div class="w95-nav-btn w95-nav-prev" id="w95NavPrev">‹</div>
        <img id="w95Img" class="w95-content-img" src="" alt="">
        <div class="w95-nav-btn w95-nav-next" id="w95NavNext">›</div>
        <div class="w95-nav-counter" id="w95Counter"></div>
      </div>
    </div>

    <div class="w95-taskbar">
      <div class="w95-start-btn"><b>Start</b></div>
      <div class="w95-divider"></div>
      <div class="w95-system-tray" id="w95Clock">12:00</div>
    </div>
  </div>
</div>

<script>
(function() {
  var files = [
    { name: "clyde-swearing.gif",           src: "https://i.ibb.co/mVzkb0vX/clyde-swearing.gif" },
    { name: "clyde-complements.gif",        src: "https://i.ibb.co/k6vxMXvM/clyde-complements.gif" },
    { name: "clyde-comp-roting.gif",        src: "https://i.ibb.co/gM2V9wNv/clyde-complements-roting.gif" },
    { name: "clyde-date.gif",               src: "https://i.ibb.co/GQfp6NCX/clyde-date.gif" },
    { name: "clyde-good-boy.gif",           src: "https://i.ibb.co/qY7B0Q1r/clyde-good-boy.gif" },
    { name: "clyde-thank-you.gif",          src: "https://i.ibb.co/GQR48CfV/clyde-thank-you-for-dying.gif" },
    { name: "sean-addiction.gif",           src: "https://i.ibb.co/pjBnpwVW/sean-addiction.gif" },
    { name: "sean-economy.gif",             src: "https://i.ibb.co/hR6PgZKy/sean-economy.gif" },
    { name: "sean-instructions.gif",        src: "https://i.ibb.co/q6zMNVv/sean-instructions.gif" },
    { name: "sean-take-off.gif",            src: "https://i.ibb.co/T56bS2c/sean-take-off.gif" },
    { name: "sean-tired.gif",               src: "https://i.ibb.co/bjnzt1J0/sean-tired.gif" }
  ];

  var ICON_IMG = "https://i.ibb.co/L8m7X9p/image.png";
  var currentIndex = -1;

  var win = document.getElementById("w95Window");
  var winTitle = document.getElementById("w95Title");
  var mainImg = document.getElementById("w95Img");
  var navCounter = document.getElementById("w95Counter");
  var iconsEl = document.getElementById("w95Icons");

  function openAt(idx) {
    currentIndex = idx;
    var f = files[idx];
    winTitle.textContent = f.name + " \u2014 \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440";
    mainImg.src = f.src;
    navCounter.textContent = (idx + 1) + " / " + files.length;
    var icons = document.querySelectorAll(".w95-icon");
    for (var i = 0; i < icons.length; i++) {
      icons[i].classList.toggle("w95-active", i === idx);
    }
    if (!win.classList.contains("w95-open")) {
      win.classList.remove("w95-open");
      void win.offsetWidth;
      win.classList.add("w95-open");
    }
  }

  function closeWin() {
    win.classList.remove("w95-open");
    var icons = document.querySelectorAll(".w95-icon");
    for (var i = 0; i < icons.length; i++) icons[i].classList.remove("w95-active");
    currentIndex = -1;
  }

  function prevImg() {
    openAt(currentIndex > 0 ? currentIndex - 1 : files.length - 1);
  }
  function nextImg() {
    openAt(currentIndex < files.length - 1 ? currentIndex + 1 : 0);
  }

  files.forEach(function(f, i) {
    var div = document.createElement("div");
    div.className = "w95-icon";
    var img = document.createElement("img");
    img.src = ICON_IMG;
    var span = document.createElement("span");
    span.textContent = f.name;
    div.appendChild(img);
    div.appendChild(span);

    var clickTimer = null;
    div.addEventListener("click", function() {
      var icons = document.querySelectorAll(".w95-icon");
      for (var j = 0; j < icons.length; j++) icons[j].classList.remove("w95-active");
      div.classList.add("w95-active");
      if (clickTimer) { clearTimeout(clickTimer); clickTimer = null; openAt(i); }
      else { clickTimer = setTimeout(function() { clickTimer = null; }, 300); }
    });
    iconsEl.appendChild(div);
  });

  document.getElementById("w95CloseBtn").addEventListener("click", closeWin);
  document.getElementById("w95PrevBtn").addEventListener("click", prevImg);
  document.getElementById("w95NextBtn").addEventListener("click", nextImg);
  document.getElementById("w95NavPrev").addEventListener("click", prevImg);
  document.getElementById("w95NavNext").addEventListener("click", nextImg);

  function updateClock() {
    var now = new Date();
    document.getElementById("w95Clock").textContent =
      now.getHours().toString().padStart(2,"0") + ":" +
      now.getMinutes().toString().padStart(2,"0");
  }
  setInterval(updateClock, 10000);
  updateClock();
})();
</script>
[/html]

+6

21

https://upforme.ru/uploads/001c/82/f2/61/258124.png

+12

22

https://upforme.ru/uploads/001c/82/f2/61/25202.png

+9

23

https://upforme.ru/uploads/001c/82/f2/61/16404.png

+10

24

+14

25

https://upforme.ru/uploads/001c/82/f2/61/504535.png

+15

26

AU! The Devil Wears Prada

https://upforme.ru/uploads/001c/82/f2/62/866762.png

+18

27

Еще одно нагенеренное АУ, теперь уже игры в доктора)))
https://upforme.ru/uploads/001c/82/f2/61/730500.png

+17

28

Продолжение стоматологической АУшки, по просьбам трудящихся))

https://upforme.ru/uploads/001c/82/f2/61/602630.png
https://upforme.ru/uploads/001c/82/f2/61/422433.png

Отредактировано Clyde Steel (12-06-2026 12:12:37)

+17

29

Продолжение АУ. Милашка Шон переходит в наступление))И давно пора на самом деле))
https://upforme.ru/uploads/001c/82/f2/61/743060.png
https://upforme.ru/uploads/001c/82/f2/61/263038.png

+17

30

Продолжение все того же АУ. Теперь уже Клайд появляется в вотчине рабочих обязанностей Шона(который оказался тренером).

https://upforme.ru/uploads/001c/82/f2/61/730158.png

+17


Вы здесь » Kindred Spirits » Блоги » Steel Bones


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