Стальные Пустоши: Код Распада

Объявление

Наша гордость
Текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста текст лучшего поста
С пробуждением, Герой!
Мир, что ты знал, превратился в Стальные Пустоши. Его плоть и металл поглотил Технофагис! Теперь тут правят ржавеющие – зомби, порожденные биотехногенной чумой: гибриды, кошмары инженера-извращенца (плоть + ржавый хлам + голод). Их скрежет – твой новый гимн. Хочешь выжить? Рви когтями, пали из всего, что стреляет, беги, если ноги целы! Или... Впутайся в адскую авантюру! Найди "Сердце Пустошей" – артефакт древних придурков, сотню лет назад устроивших апокалипсис. Может, оно перезапустит этот ад? Или порвёт весь мир в клочья, ко всем чертям собачьим?! Выбор за тобой, Герой... Слава, добыча или смерть? В Пустошах ставки очень высоки!
Архитекторы Порядка
Текст текст текст Текст текст текст Текст текст текстТекст текст текст Текст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текст
Синдикат Поглощения
Текст текст текст Текст текст текст Текст текст текстТекст текст текст Текст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текст
Бродяги Пустошей
Текст текст текст Текст текст текст Текст текст текстТекст текст текст Текст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текстТекст текст текст
Заголовок новости
какой-то там очень чрезвычайно крайне важный текст новости
Заголовок новости
какой-то там очень чрезвычайно крайне важный текст новости
Заголовок новости
какой-то там очень чрезвычайно крайне важный текст новости

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

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



Метки Смерти

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

1

СИСТЕМА "МЕТКИ СМЕРТИ" (ИЛИ "ЧЬИ-ТО ЩУПАЛЬЦА В ТВОЕЙ ЗАДНИЦЕ")

Суть: За определенные действия игрок получает "Внимание" могущественных (или просто очень злых) сил мира. Когда "Внимание" достигает максимума – на его голову объявляется "Охота". В ветку, где находится персонаж, врывается спец-NPC (Охотник) с конкретной миссией: поймать, убить, наказать или... предложить сделку.

Ключевые Элементы Системы:

Источники "Внимания" (Как нарываться):

"Чистка" (Дети Прометея): Слишком часто взламываешь их терминалы? Крадешь голубые принты? Убиваешь их патрули "во имя свободы"? Они заметят. Их Охотники – методичные и безжалостные.

"Осквернение" (Синдикат Поглощения): Уничтожаешь их алтари из ржавого хлама? Воруешь священные пси-кристаллы? Смеешься над Великой Ржавчиной? Они ОБЯЗАТЕЛЬНО пошлют за тобой своих фанатиков.

"Кровавый Шум" (Ржавеющие): Убиваешь их ОЧЕНЬ много и ОЧЕНЬ жестоко на одной локации? Особенно "важных" мутантов? Твоя резня создает "кровавый резонанс". Это привлекает альфа-хищника или особо мерзкого биомеханического уродца, который считает тебя ДОБЫЧЕЙ.

"Нарушение Правил" (Серые Кардиналы Свалки): Обманул НЕ ТОГО торговца? Забыл заплатить "крышевание" местному авторитету? Слишком громко хвастался добычей? За тобой выйдет профессиональный головорез или хитрая тварь из теневого мира Бродяг.

"Интерес Артефакта" (Нейтральные Силы/ГМ): Активировал что-то древнее и страшное? Достал уникальный пси-кристалл? Теперь за тобой могут охотиться загадочные коллекционеры, безумные ученые-одиночки или древние машины, проснувшиеся от твоих действий.

"Охотники" (Кто придет):

Стальной Судья (Дети Прометея): Киборг в безупречно чистом, но пугающе поврежденном костюме. Вооружен точным энергооружием и устройствами подавления. Цель: Задержание, "чистка" (стирание данных или... личности). Без эмоций. Без переговоров.

Плавящийся Фанатик (Синдикат Поглощения): Мутировавший культист, чье тело слилось с ржавой броней и пси-кристаллами. Изрыгает кислоту, использует грубую пси-магию истечения. Цель: Забрать "оскверненное" (артефакты, части тела), принести в жертву Ржавчине, или... обратить в свою веру (добровольно или нет).

Кислотный Альфа (Ржавеющие): Гигантский, покрытый шипами и капающей жижей мутант. Невероятно живуч, яростен, может звать "стаю". Цель: Сожрать. Или разорвать. Или сначала разорвать, потом сожрать. Без сложностей.

Тень Свалки (Бродяги/Серые Кардиналы): Призрачный убийца с Свалки. Может быть киллером-невидимкой, ядовитой дивой, псиоником-манипулятором или просто чуваком с ОЧЕНЬ большим молотком. Цель: Наказать (убить, покалечить, ограбить до нитки), вернуть долг, или преподать урок.

Древний Мусорщик (Нейтральные/ГМ): Странная машина доколлапсовой эры, искаженный пси-излучением ученый в скафандре, или что-то совершенно неописуемое. Цель: Забрать артефакт, заполучить "образец" (вас), или использовать вас в своих непостижимых целях.

Механика Появления:

"Шкала Внимания": Скрытый счетчик у игрока. За определенные действия (триггеры) он растет. При достижении порога – АКТИВАЦИЯ ОХОТЫ. Счетчик сбрасывается.

Случайность (С Приоритетом): ГМ выбирает подходящего Охотника (по фракции, стилю игрока), но момент появления может быть случайным или в самый неподходящий для игрока момент (после тяжелого боя, при попытке скрыться).

Вторжение в Тему: ГМ публикует пост от лица Охотника в текущую активную ветку игрока. Описание должно быть эпичным и пугающим: "Сквозь дождь из искр и копоти, раздвигая груду хлама могучими щупальцами из ржавых труб и плоти, в ваш укрытие вваливается ПЛАВЯЩИЙСЯ ФАНАТИК. Его единственный глаз, вставленный в шестерню, пылает фиолетовым ненавистью. 'ВЕРНИ КРИСТАААААЛЛ... ИЛИ СТАНЬ ИМ!'".

Цель Охоты Четко Озвучена: Охотник сразу заявляет, что он здесь (забрать кристалл, убить, покалечить и т.д.).

Что Делать Игроку:

БЕЙ ИЛИ БЕГИ! Игрок обязан отреагировать на появление Охотника в своем следующем посте. Игнорирование = гарантированный плохой исход (смерть, плен, тяжелые увечья по решению ГМ).

Бой: Эпичная схватка! Исход определяет ГМ, основываясь на логике, силе персонажа, его состоянии, действиях и удаче. Возможна смерть, серьезные раны, потеря снаряжения.

Побег: Сложный, но возможный. Требует креативного описания и удачи. Неудача может привести к преследованию или ухудшению ситуации.

Переговоры: Иногда возможно (особенно с Тенью Свалки или Древним Мусорщиком). Может стоить дорого (отдать артефакт, выполнить задание, отдать почку) или быть ловушкой.

Плен/Поражение: Это НЕ конец! Это новая сюжетная ветка: попытка сбежать из цитадели Прометеев, выжить в лаборатории Синдиката, выбраться из желудка Кислотного Альфы (шанс: 0.01%).

Награды за Выживание/Победу:

Легендарная Добыча: Уникальный модуль оружия, редкий чертеж, мощный артефакт, связка чистой воды/патронов.

"Слава Пустошей": Значительный рост репутации (или страха) на Свалке. Уникальный титул ("Переживший Стального Судью", "Плюнувший в Лицо Фанатику").

Данные/Информация: Голографическая карта, пароли к терминалам, компромат на врага.

Временная Передышка: "Шкала Внимания" этой фракции обнуляется надолго.

Сюжетный Толчок: Контакт с новой силой, раскрытие тайны, ключ к большему приключению.

Визуализация на Форуме:

Иконка "Метки": Рядом с ником игрока появляется маленькая, но заметная иконка (стилизованный прицел, окровавленный нож, щупальце, шестерня с глазом) при высоком уровне "Внимания" от какой-то фракции. Иконка мигает красным, когда Охота АКТИВНА.

"Досье Охотника": В разделе "Энциклопедия" или профиле игрока может быть скрытая запись, появляющаяся после встречи, с кратким описанием Охотника и его целей (обновляется после новых встреч).

Тема "Легенды Охоты": Закрепленная OOC-тема, где игроки хвастаются победами или эпичными побегами от Охотников.

Правила Системы ("Кодекс Добычи"):

"Не Жди Милости": Охотник пришел ВЫПОЛНИТЬ работу. Он силен, умен (или очень яростен) и НЕ будет "филонить". ГМ играет его жестко и по-настоящему.

"Выбор За Тобой": Бой, бегство, переговоры – твой путь. Но помни: каждое решение имеет вес. Сдался Прометеям? Готовься к "чистке". Договорился с Тенью? Жди расплаты.

"Не Один в Бездне": Другие игроки в ветке могут помочь! Но это привлечет внимание Охотника (или его хозяев) и к НИМ. Рискованная солидарность.

"Судьба Решается Свинцом и Волей": Исход боя/побега решает ГМ на основе логики, действий игрока и удачи (может использоваться скрытый бросок "куба" для драмы, но не афишироваться). Никаких гарантий победы!

"Метка - Не Проклятье, а ШАНС": Выжил? Получил добычу? Твоя легенда растет! Сдох? Новая анкета, новый шанс. Или... попробуй сбежать!

Почему это Работает в "Стальных Руинах":

Усиливает Атмосферу Опасности: Мир реагирует на действия игрока лично и беспощадно.

Создает Персональные Истории: Встреча с Охотником – это личная сага каждого выжившего (или не выжившего).

Поощряет Отыгрыш: Страх, ярость, отчаяние или холодная решимость перед лицом личной угрозы – мощный драйвер РП.

Дарит Эпичные Моменты: Победа над легендарным Охотником – история, которую будут рассказывать на Свалке.

Интегрируется в Лор: Охотники – не абстракция, а часть фракций и сил мира (Прометеи, Синдикат, Ржавеющие, Тени Свалки).

Добавляет Слой Стратегии: Игроки могут сознательно избегать триггеров "Внимания" или... нарываться на них ради вызова и награды!

Пример Триггеров:

Прометеи: Уничтожить 5+ их роботов/патрулей; Взломать 3+ их терминала уровня "Секретно"; Убить ученого Прометея.

Синдикат: Осквернить алтарь/святыню; Украсть "освященный" пси-кристалл; Убить высокопоставленного культиста.

Ржавеющие: Убить 10+ Ржавеющих за 1 "вылазку"; Убить уникального "именного" мутанта; Использовать мощную пси-энергию рядом с их гнездом.

Свалка: Не выплатить крупный долг; Обмануть влиятельного торговца/авторитета; Публично оскорбить лидера банды; Найти и применить уникальный доколлапсовый артефакт.

Итог: Система "Меток Смерти" превращает игрока из статиста в живую мишень и потенциальную легенду. Она впрыскивает адреналин в рутину форума, заставляя Бродяг оглядываться через плечо и крепче сжимать ствол. Ведь в Стальных Руинах за тобой всегда может идти Охота... Удачи не свернуть шею!

0

2

[html]<div class="deathmark-tracker">
    <style>
        .deathmark-tracker {
            font-family: 'Segoe UI', Tahoma, sans-serif;
            background: #1a1a2e;
            background: linear-gradient(to bottom, #16213e, #1a1a2e);
            color: #ecf0f1;
            padding: 25px;
            border-radius: 15px;
            border: 2px solid #2c3e50;
            max-width: 1000px;
            margin: 25px auto;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.8);
        }
       
        .tracker-header {
            text-align: center;
            margin-bottom: 30px;
            padding-bottom: 25px;
            border-bottom: 2px solid #2980b9;
        }
       
        .tracker-title {
            color: #e74c3c;
            text-shadow: 0 0 15px rgba(231, 76, 60, 0.7);
            margin: 0 0 20px 0;
            font-size: 2.5rem;
            letter-spacing: 1.5px;
        }
       
        .tracker-subtitle {
            font-size: 1.2rem;
            opacity: 0.9;
            max-width: 800px;
            margin: 0 auto;
        }
       
        .bosses-info {
            display: flex;
            justify-content: space-between;
            flex-wrap: wrap;
            gap: 20px;
            margin-bottom: 35px;
        }
       
        .boss-card {
            flex: 1;
            min-width: 220px;
            background: rgba(0, 0, 0, 0.4);
            border-radius: 12px;
            padding: 20px 18px;
            text-align: center;
            border-top: 5px solid;
            box-shadow: 0 6px 15px rgba(0, 0, 0, 0.5);
        }
       
        .boss-card.order { border-color: #3498db; }
        .boss-card.mutant { border-color: #27ae60; }
        .boss-card.wasteland { border-color: #e74c3c; }
       
        .boss-name {
            font-weight: 800;
            font-size: 1.5rem;
            margin: 0 0 10px 0;
            text-transform: uppercase;
        }
       
        .boss-desc {
            font-size: 1.1rem;
            opacity: 0.9;
            margin-bottom: 10px;
            min-height: 50px;
        }
       
        .threshold {
            background: rgba(0, 0, 0, 0.5);
            padding: 8px 15px;
            border-radius: 25px;
            font-size: 1.1rem;
            display: inline-block;
            margin-top: 10px;
            font-weight: 600;
        }
       
        .threat-table {
            width: 100%;
            border-collapse: separate;
            border-spacing: 0;
            margin-top: 20px;
            background: rgba(30, 40, 62, 0.6);
            border-radius: 12px;
            overflow: hidden;
        }
       
        .threat-table th {
            background: rgba(44, 62, 80, 0.95);
            padding: 18px 15px;
            text-align: center;
            font-weight: 700;
            font-size: 1.1rem;
            text-transform: uppercase;
            letter-spacing: 1px;
        }
       
        .threat-table td {
            padding: 16px 15px;
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
            text-align: center;
            position: relative;
        }
       
        .threat-table tr:last-child td {
            border-bottom: none;
        }
       
        .threat-table tr:nth-child(even) {
            background: rgba(255, 255, 255, 0.05);
        }
       
        .player-name {
            font-weight: 700;
            color: #3498db;
            min-width: 160px;
            font-size: 1.2rem;
            text-align: left;
            padding-left: 20px;
        }
       
        .threat-value {
            display: block;
            font-weight: 800;
            font-size: 1.8rem;
            margin-bottom: 10px;
        }
       
        .threat-bar {
            height: 12px;
            background: rgba(255, 255, 255, 0.15);
            border-radius: 6px;
            overflow: hidden;
            margin: 0 auto;
            width: 90%;
        }
       
        .threat-fill {
            height: 100%;
            border-radius: 6px;
        }
       
        /* Цвета заполнения прогресс-баров */
        .threat-low .threat-fill { background: #2ecc71; width: 30%; }
        .threat-medium .threat-fill { background: #f39c12; width: 65%; }
        .threat-high .threat-fill { background: #e74c3c; width: 100%; }
       
        /* Визуальное обозначение активной метки */
        .active-mark {
            position: absolute;
            top: 5px;
            right: 5px;
            width: 20px;
            height: 20px;
            background: #e74c3c;
            border-radius: 50%;
            animation: pulse-alert 2s infinite;
            box-shadow: 0 0 10px rgba(231, 76, 60, 0.7);
        }
       
        .active-mark::after {
            content: "!";
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: white;
            font-weight: bold;
            font-size: 14px;
        }
       
        @keyframes pulse-alert {
            0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.6); }
            70% { transform: scale(1.2); box-shadow: 0 0 0 10px rgba(231, 76, 60, 0); }
            100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(231, 76, 60, 0); }
        }
       
        .threat-info {
            margin-top: 25px;
            padding: 15px;
            background: rgba(0, 0, 0, 0.3);
            border-radius: 10px;
            font-size: 0.95rem;
            text-align: center;
            border: 1px solid #3498db;
        }
       
        @media (max-width: 800px) {
            .bosses-info {
                flex-direction: column;
                align-items: center;
            }
           
            .boss-card {
                width: 100%;
                max-width: 300px;
            }
           
            .threat-table {
                display: block;
                overflow-x: auto;
            }
           
            .player-name {
                min-width: 140px;
                font-size: 1.1rem;
            }
           
            .threat-value {
                font-size: 1.5rem;
            }
        }
    </style>

    <div class="tracker-header">
        <h1 class="tracker-title">СИСТЕМА МЕТОК СМЕРТИ</h1>
        <p class="tracker-subtitle">Отслеживание уровня угрозы игроков</p>
    </div>
   
    <div class="bosses-info">
        <div class="boss-card order">
            <div class="boss-name">Стальной Судья</div>
            <div class="boss-desc">Охотится за нарушителями порядка</div>
            <div class="threshold">Порог: 20 очков</div>
        </div>
       
        <div class="boss-card mutant">
            <div class="boss-name">Токсичный Мутант</div>
            <div class="boss-desc">Приходит за техно-вандалами</div>
            <div class="threshold">Порог: 18 очков</div>
        </div>
       
        <div class="boss-card wasteland">
            <div class="boss-name">Зверь Пустошей</div>
            <div class="boss-desc">Наказывает за нарушение законов пустошей</div>
            <div class="threshold">Порог: 15 очков</div>
        </div>
    </div>
   
    <table class="threat-table">
        <thead>
            <tr>
                <th>Игрок</th>
                <th>Стальной Судья</th>
                <th>Токсичный Мутант</th>
                <th>Зверь Пустошей</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="player-name">Джек "Пулемёт"</td>
                <td class="threat-cell threat-high">
                    <div class="threat-value">24</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                    <!-- Активная метка для Стального Судьи -->
                    <div class="active-mark"></div>
                </td>
                <td class="threat-cell threat-medium">
                    <div class="threat-value">12</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                </td>
                <td class="threat-cell threat-low">
                    <div class="threat-value">8</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                </td>
            </tr>
            <tr>
                <td class="player-name">Лена "Тень"</td>
                <td class="threat-cell threat-low">
                    <div class="threat-value">5</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                </td>
                <td class="threat-cell threat-high">
                    <div class="threat-value">22</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                    <!-- Активная метка для Токсичного Мутанта -->
                    <div class="active-mark"></div>
                </td>
                <td class="threat-cell threat-medium">
                    <div class="threat-value">14</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                </td>
            </tr>
            <tr>
                <td class="player-name">Макс "Рейдер"</td>
                <td class="threat-cell threat-medium">
                    <div class="threat-value">10</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                </td>
                <td class="threat-cell threat-low">
                    <div class="threat-value">7</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                </td>
                <td class="threat-cell threat-high">
                    <div class="threat-value">18</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                    <!-- Активная метка для Зверя Пустошей -->
                    <div class="active-mark"></div>
                </td>
            </tr>
            <tr>
                <td class="player-name">Сара "Техник"</td>
                <td class="threat-cell threat-medium">
                    <div class="threat-value">15</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                </td>
                <td class="threat-cell threat-medium">
                    <div class="threat-value">16</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                </td>
                <td class="threat-cell threat-low">
                    <div class="threat-value">4</div>
                    <div class="threat-bar">
                        <div class="threat-fill"></div>
                    </div>
                </td>
            </tr>
        </tbody>
    </table>

    <div class="threat-info">
        <strong>Инструкция для Мастера:</strong><br>
        1. Для обновления очков угрозы отредактируйте числовые значения внутри тегов &lt;div class="threat-value"&gt;<br>
        2. Для изменения уровня угрозы (цвета прогресс-бара) измените класс threat-cell на:<br>
        &nbsp;&nbsp;- <span style="color:#2ecc71">threat-low</span> (0-7 очков)<br>
        &nbsp;&nbsp;- <span style="color:#f39c12">threat-medium</span> (8-14 очков)<br>
        &nbsp;&nbsp;- <span style="color:#e74c3c">threat-high</span> (15+ очков)<br>
        3. Для обозначения активной метки добавьте элемент &lt;div class="active-mark"&gt;&lt;/div&gt; внутри ячейки босса
    </div>
</div>[/html]

0

3

[html]<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Архив персонажей | Borderlands/Warframe</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Rajdhani', 'Segoe UI', Tahoma, sans-serif;
        }
       
        body {
            background: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
            color: #ecf0f1;
            min-height: 100vh;
            padding: 20px;
            overflow-x: hidden;
            background-attachment: fixed;
        }
       
        @font-face {
            font-family: 'Rajdhani';
            src: url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@400;500;600;700&display=swap');
        }
       
        .container {
            max-width: 1400px;
            margin: 0 auto;
            padding: 20px;
        }
       
        header {
            text-align: center;
            margin-bottom: 40px;
            padding: 30px;
            background: rgba(0, 0, 0, 0.5);
            border-radius: 20px;
            border: 3px solid #3498db;
            box-shadow: 0 0 30px rgba(52, 152, 219, 0.4);
            position: relative;
            overflow: hidden;
        }
       
        header::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 5px;
            background: linear-gradient(90deg, #3498db, #e74c3c, #2ecc71, #f39c12);
            animation: scanline 8s linear infinite;
        }
       
        h1 {
            font-size: 3.8rem;
            margin-bottom: 15px;
            color: #fff;
            text-shadow: 0 0 15px rgba(231, 76, 60, 0.8);
            letter-spacing: 3px;
            font-weight: 800;
            text-transform: uppercase;
            background: linear-gradient(to right, #3498db, #e74c3c, #2ecc71);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
       
        .subtitle {
            font-size: 1.5rem;
            color: #bdc3c7;
            max-width: 800px;
            margin: 0 auto;
            text-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
        }
       
        .filters {
            display: flex;
            justify-content: center;
            flex-wrap: wrap;
            gap: 15px;
            margin-bottom: 40px;
            padding: 20px;
            background: rgba(0, 0, 0, 0.4);
            border-radius: 15px;
            border: 2px solid #2c3e50;
            box-shadow: 0 5px 20px rgba(0, 0, 0, 0.6);
        }
       
        .filter-btn {
            padding: 14px 30px;
            background: rgba(52, 152, 219, 0.15);
            border: 2px solid #3498db;
            border-radius: 8px;
            color: #ecf0f1;
            font-size: 1.2rem;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
            text-transform: uppercase;
            letter-spacing: 1px;
            position: relative;
            overflow: hidden;
            z-index: 1;
        }
       
        .filter-btn::before {
            content: "";
            position: absolute;
            top: 0;
            left: -100%;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(52, 152, 219, 0.4), transparent);
            transition: 0.5s;
            z-index: -1;
        }
       
        .filter-btn:hover::before {
            left: 100%;
        }
       
        .filter-btn:hover, .filter-btn.active {
            background: #3498db;
            transform: translateY(-5px);
            box-shadow: 0 8px 20px rgba(52, 152, 219, 0.5);
            text-shadow: 0 0 10px white;
        }
       
        .characters-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(350px, 1fr));
            gap: 35px;
            margin-top: 20px;
        }
       
        .character-card {
            background: linear-gradient(145deg, #1e2a47, #121a30);
            border-radius: 20px;
            overflow: hidden;
            position: relative;
            box-shadow: 0 15px 35px rgba(0, 0, 0, 0.6);
            transition: all 0.5s ease;
            border: 3px solid #2c3e50;
            transform-style: preserve-3d;
            perspective: 1000px;
        }
       
        .character-card:hover {
            transform: translateY(-15px) rotateX(5deg);
            box-shadow: 0 20px 40px rgba(231, 76, 60, 0.5);
            border-color: #e74c3c;
        }
       
        .character-image {
            width: 100%;
            height: 320px;
            overflow: hidden;
            position: relative;
            border-bottom: 4px solid #3498db;
        }
       
        .character-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.7s ease;
        }
       
        .character-card:hover .character-image img {
            transform: scale(1.15) rotate(1deg);
        }
       
        .faction-badge {
            position: absolute;
            top: 20px;
            right: 20px;
            background: rgba(0, 0, 0, 0.8);
            padding: 10px 20px;
            border-radius: 25px;
            font-weight: 800;
            font-size: 1rem;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            z-index: 2;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
        }
       
        .order-badge {
            background: linear-gradient(to right, #3498db, #2980b9);
            border: 1px solid #1f618d;
        }
       
        .mutant-badge {
            background: linear-gradient(to right, #27ae60, #219653);
            border: 1px solid #1e8449;
        }
       
        .wasteland-badge {
            background: linear-gradient(to right, #e74c3c, #c0392b);
            border: 1px solid #922b21;
        }
       
        .neutral-badge {
            background: linear-gradient(to right, #9b59b6, #8e44ad);
            border: 1px solid #6c3483;
        }
       
        .character-info {
            padding: 30px;
            position: relative;
        }
       
        .character-name {
            font-size: 2.2rem;
            margin-bottom: 20px;
            color: #fff;
            font-weight: 800;
            text-shadow: 0 0 15px rgba(52, 152, 219, 0.7);
            position: relative;
            display: inline-block;
        }
       
        .character-name::after {
            content: "";
            position: absolute;
            bottom: -8px;
            left: 0;
            width: 100%;
            height: 4px;
            background: linear-gradient(90deg, #3498db, #e74c3c);
            border-radius: 2px;
        }
       
        .character-details {
            display: grid;
            grid-template-columns: 1fr;
            gap: 15px;
            margin-bottom: 25px;
        }
       
        .detail-item {
            display: flex;
            align-items: flex-start;
            padding: 12px 0;
            border-bottom: 2px dashed rgba(255, 255, 255, 0.15);
        }
       
        .detail-icon {
            width: 40px;
            height: 40px;
            background: rgba(52, 152, 219, 0.2);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            margin-right: 15px;
            flex-shrink: 0;
            font-size: 1.2rem;
            border: 1px solid #3498db;
        }
       
        .detail-text {
            flex: 1;
        }
       
        .detail-title {
            font-weight: 600;
            color: #bdc3c7;
            font-size: 1rem;
            text-transform: uppercase;
            letter-spacing: 1px;
        }
       
        .detail-value {
            font-size: 1.3rem;
            margin-top: 8px;
            font-weight: 700;
            color: #fff;
            text-shadow: 0 0 8px rgba(52, 152, 219, 0.5);
        }
       
        .status-badge {
            position: absolute;
            top: -25px;
            right: 25px;
            padding: 10px 25px;
            border-radius: 25px;
            font-weight: 800;
            font-size: 1rem;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
            z-index: 2;
        }
       
        .active-status {
            background: linear-gradient(to right, #2ecc71, #27ae60);
            border: 2px solid #1e8449;
        }
       
        .inactive-status {
            background: linear-gradient(to right, #e74c3c, #c0392b);
            border: 2px solid #922b21;
        }
       
        .mission-status {
            background: linear-gradient(to right, #f39c12, #e67e22);
            border: 2px solid #b9770e;
        }
       
        .card-footer {
            display: flex;
            justify-content: space-between;
            padding-top: 20px;
            border-top: 2px solid rgba(255, 255, 255, 0.1);
        }
       
        .action-btn {
            padding: 12px 25px;
            border-radius: 10px;
            font-size: 1.1rem;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
            display: flex;
            align-items: center;
            gap: 10px;
            border: 2px solid;
        }
       
        .action-btn.view {
            background: rgba(52, 152, 219, 0.15);
            border-color: #3498db;
            color: #3498db;
        }
       
        .action-btn.edit {
            background: rgba(46, 204, 113, 0.15);
            border-color: #2ecc71;
            color: #2ecc71;
        }
       
        .action-btn:hover {
            transform: translateY(-5px);
            box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
        }
       
        .action-btn.view:hover {
            background: #3498db;
            color: white;
            text-shadow: 0 0 10px white;
        }
       
        .action-btn.edit:hover {
            background: #2ecc71;
            color: white;
            text-shadow: 0 0 10px white;
        }
       
        .glitch-effect {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(231, 76, 60, 0.05);
            z-index: 1;
            opacity: 0;
            transition: opacity 0.3s ease;
            pointer-events: none;
        }
       
        .character-card:hover .glitch-effect {
            opacity: 1;
        }
       
        .glitch-effect::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 3px;
            background: #e74c3c;
            animation: glitch-line 3s infinite;
        }
       
        @keyframes glitch-line {
            0% { top: 0; opacity: 0.8; }
            25% { top: 30%; opacity: 0.4; }
            50% { top: 60%; opacity: 0.8; }
            75% { top: 90%; opacity: 0.2; }
            100% { top: 100%; opacity: 0.8; }
        }
       
        @keyframes scanline {
            0% { transform: translateX(-100%); }
            100% { transform: translateX(100%); }
        }
       
        .no-characters {
            grid-column: 1 / -1;
            text-align: center;
            padding: 50px;
            font-size: 1.5rem;
            color: #e74c3c;
            text-shadow: 0 0 10px rgba(231, 76, 60, 0.5);
        }
       
        @media (max-width: 1200px) {
            .characters-grid {
                grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
            }
        }
       
        @media (max-width: 768px) {
            h1 {
                font-size: 2.8rem;
            }
           
            .subtitle {
                font-size: 1.2rem;
            }
           
            .filters {
                flex-direction: column;
                align-items: center;
            }
           
            .filter-btn {
                width: 100%;
                text-align: center;
            }
           
            .character-image {
                height: 280px;
            }
        }
       
        @media (max-width: 480px) {
            h1 {
                font-size: 2.2rem;
            }
           
            .character-name {
                font-size: 1.8rem;
            }
           
            .character-card {
                border-radius: 15px;
            }
           
            .character-info {
                padding: 20px;
            }
           
            .card-footer {
                flex-direction: column;
                gap: 15px;
            }
           
            .action-btn {
                justify-content: center;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>АРХИВ ПЕРСОНАЖЕЙ</h1>
            <p class="subtitle">База данных активных оперативников во вселенной Borderlands/Warframe</p>
        </header>
       
        <div class="filters">
            <button class="filter-btn active" data-filter="all">Все персонажи</button>
            <button class="filter-btn" data-filter="order">Архитекторы Порядка</button>
            <button class="filter-btn" data-filter="mutant">Синдикат Поглощения</button>
            <button class="filter-btn" data-filter="wasteland">Бродяги Пустошей</button>
            <button class="filter-btn" data-filter="neutral">Независимые</button>
        </div>
       
        <div class="characters-grid">
            <!-- Персонаж 1 -->
            <div class="character-card" data-faction="order">
                <div class="character-image">
                    <img src="https://images.unsplash.com/photo-1534528741775-53994a69daeb?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Рейдер">
                    <div class="faction-badge order-badge">Порядок</div>
                    <div class="glitch-effect"></div>
                </div>
                <div class="character-info">
                    <div class="status-badge active-status">Активен</div>
                    <h2 class="character-name">Джек "Пулемёт"</h2>
                    <div class="character-details">
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-user"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Внешность</div>
                                <div class="detail-value">Крис Хемсворт</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-heart"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Семейное положение</div>
                                <div class="detail-value">Холост</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-shield-alt"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Фракция</div>
                                <div class="detail-value">Архитекторы Порядка</div>
                            </div>
                        </div>
                    </div>
                    <div class="card-footer">
                        <button class="action-btn view"><i class="fas fa-eye"></i> Профиль</button>
                        <button class="action-btn edit"><i class="fas fa-edit"></i> Редактировать</button>
                    </div>
                </div>
            </div>
           
            <!-- Персонаж 2 -->
            <div class="character-card" data-faction="mutant">
                <div class="character-image">
                    <img src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Техник">
                    <div class="faction-badge mutant-badge">Мутант</div>
                    <div class="glitch-effect"></div>
                </div>
                <div class="character-info">
                    <div class="status-badge mission-status">На задании</div>
                    <h2 class="character-name">Сара "Техник"</h2>
                    <div class="character-details">
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-user"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Внешность</div>
                                <div class="detail-value">Эмма Уотсон</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-heart"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Семейное положение</div>
                                <div class="detail-value">В отношениях</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-shield-alt"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Фракция</div>
                                <div class="detail-value">Синдикат Поглощения</div>
                            </div>
                        </div>
                    </div>
                    <div class="card-footer">
                        <button class="action-btn view"><i class="fas fa-eye"></i> Профиль</button>
                        <button class="action-btn edit"><i class="fas fa-edit"></i> Редактировать</button>
                    </div>
                </div>
            </div>
           
            <!-- Персонаж 3 -->
            <div class="character-card" data-faction="wasteland">
                <div class="character-image">
                    <img src="https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Следопыт">
                    <div class="faction-badge wasteland-badge">Пустоши</div>
                    <div class="glitch-effect"></div>
                </div>
                <div class="character-info">
                    <div class="status-badge active-status">Активен</div>
                    <h2 class="character-name">Макс "Рейдер"</h2>
                    <div class="character-details">
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-user"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Внешность</div>
                                <div class="detail-value">Том Харди</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-heart"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Семейное положение</div>
                                <div class="detail-value">Женат</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-shield-alt"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Фракция</div>
                                <div class="detail-value">Бродяги Пустошей</div>
                            </div>
                        </div>
                    </div>
                    <div class="card-footer">
                        <button class="action-btn view"><i class="fas fa-eye"></i> Профиль</button>
                        <button class="action-btn edit"><i class="fas fa-edit"></i> Редактировать</button>
                    </div>
                </div>
            </div>
           
            <!-- Персонаж 4 -->
            <div class="character-card" data-faction="neutral">
                <div class="character-image">
                    <img src="https://images.unsplash.com/photo-1489424731084-a5d8b219a5bb?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Тень">
                    <div class="faction-badge neutral-badge">Независимый</div>
                    <div class="glitch-effect"></div>
                </div>
                <div class="character-info">
                    <div class="status-badge inactive-status">Неактивен</div>
                    <h2 class="character-name">Лена "Тень"</h2>
                    <div class="character-details">
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-user"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Внешность</div>
                                <div class="detail-value">Зои Салдана</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-heart"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Семейное положение</div>
                                <div class="detail-value">Вдовец</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-shield-alt"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Фракция</div>
                                <div class="detail-value">Независимый агент</div>
                            </div>
                        </div>
                    </div>
                    <div class="card-footer">
                        <button class="action-btn view"><i class="fas fa-eye"></i> Профиль</button>
                        <button class="action-btn edit"><i class="fas fa-edit"></i> Редактировать</button>
                    </div>
                </div>
            </div>
           
            <!-- Персонаж 5 -->
            <div class="character-card" data-faction="mutant">
                <div class="character-image">
                    <img src="https://images.unsplash.com/photo-1567532939604-b6b5b0e16019?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Механик">
                    <div class="faction-badge mutant-badge">Мутант</div>
                    <div class="glitch-effect"></div>
                </div>
                <div class="character-info">
                    <div class="status-badge mission-status">На задании</div>
                    <h2 class="character-name">Виктор "Механик"</h2>
                    <div class="character-details">
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-user"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Внешность</div>
                                <div class="detail-value">Идрис Эльба</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-heart"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Семейное положение</div>
                                <div class="detail-value">Разведён</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-shield-alt"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Фракция</div>
                                <div class="detail-value">Синдикат Поглощения</div>
                            </div>
                        </div>
                    </div>
                    <div class="card-footer">
                        <button class="action-btn view"><i class="fas fa-eye"></i> Профиль</button>
                        <button class="action-btn edit"><i class="fas fa-edit"></i> Редактировать</button>
                    </div>
                </div>
            </div>
           
            <!-- Персонаж 6 -->
            <div class="character-card" data-faction="order">
                <div class="character-image">
                    <img src="https://images.unsplash.com/photo-1544005313-94ddf0286df2?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Снайпер">
                    <div class="faction-badge order-badge">Порядок</div>
                    <div class="glitch-effect"></div>
                </div>
                <div class="character-info">
                    <div class="status-badge active-status">Активен</div>
                    <h2 class="character-name">Анна "Орлиный Глаз"</h2>
                    <div class="character-details">
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-user"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Внешность</div>
                                <div class="detail-value">Скарлетт Йоханссон</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-heart"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Семейное положение</div>
                                <div class="detail-value">Замужем</div>
                            </div>
                        </div>
                        <div class="detail-item">
                            <div class="detail-icon"><i class="fas fa-shield-alt"></i></div>
                            <div class="detail-text">
                                <div class="detail-title">Фракция</div>
                                <div class="detail-value">Архитекторы Порядка</div>
                            </div>
                        </div>
                    </div>
                    <div class="card-footer">
                        <button class="action-btn view"><i class="fas fa-eye"></i> Профиль</button>
                        <button class="action-btn edit"><i class="fas fa-edit"></i> Редактировать</button>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script>
        // Фильтрация персонажей
        document.querySelectorAll('.filter-btn').forEach(button => {
            button.addEventListener('click', function() {
                // Удаляем активный класс у всех кнопок
                document.querySelectorAll('.filter-btn').forEach(btn => {
                    btn.classList.remove('active');
                });
               
                // Добавляем активный класс текущей кнопке
                this.classList.add('active');
               
                // Получаем значение фильтра
                const filter = this.dataset.filter;
               
                // Перебираем все карточки
                const characterCards = document.querySelectorAll('.character-card');
                let visibleCount = 0;
               
                characterCards.forEach(card => {
                    if (filter === 'all' || card.dataset.faction === filter) {
                        card.style.display = 'block';
                        visibleCount++;
                        // Анимация появления
                        card.style.animation = 'fadeIn 0.7s forwards';
                    } else {
                        // Анимация скрытия
                        card.style.animation = 'fadeOut 0.5s forwards';
                        setTimeout(() => {
                            card.style.display = 'none';
                        }, 500);
                    }
                });
               
                // Показываем сообщение, если нет персонажей
                const noCharactersMsg = document.querySelector('.no-characters');
                if (visibleCount === 0) {
                    if (!noCharactersMsg) {
                        const grid = document.querySelector('.characters-grid');
                        const msg = document.createElement('div');
                        msg.className = 'no-characters';
                        msg.innerHTML = '<i class="fas fa-exclamation-triangle"></i> Нет персонажей в этой фракции';
                        grid.appendChild(msg);
                    }
                } else if (noCharactersMsg) {
                    noCharactersMsg.remove();
                }
            });
        });
       
        // Добавляем CSS для анимаций
        const style = document.createElement('style');
        style.innerHTML = `
            @keyframes fadeIn {
                from { opacity: 0; transform: translateY(20px) scale(0.95); }
                to { opacity: 1; transform: translateY(0) scale(1); }
            }
           
            @keyframes fadeOut {
                from { opacity: 1; transform: translateY(0) scale(1); }
                to { opacity: 0; transform: translateY(20px) scale(0.95); }
            }
        `;
        document.head.appendChild(style);
       
        // Анимация карточек при загрузке
        document.querySelectorAll('.character-card').forEach((card, index) => {
            card.style.opacity = "0";
            card.style.transform = "translateY(30px)";
            card.style.animation = `fadeIn 0.7s forwards ${index * 0.1}s`;
        });
    </script>
</body>
</html>[/html]

0

4

[html]<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Архив Лора | Borderlands/Warframe</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: 'Orbitron', 'Segoe UI', sans-serif;
        }
       
        body {
            background: linear-gradient(135deg, #0a0818 0%, #1a152e 50%, #0d0b16 100%);
            color: #ecf0f1;
            min-height: 100vh;
            padding: 20px;
            overflow-x: hidden;
            background-attachment: fixed;
            background-size: 400% 400%;
            animation: gradientBG 20s ease infinite;
        }
       
        @keyframes gradientBG {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }
       
        .container {
            max-width: 1400px;
            margin: 0 auto;
            padding: 20px;
        }
       
        header {
            text-align: center;
            margin-bottom: 40px;
            padding: 30px;
            background: rgba(0, 0, 0, 0.6);
            border-radius: 20px;
            border: 3px solid #3498db;
            box-shadow: 0 0 40px rgba(52, 152, 219, 0.5);
            position: relative;
            overflow: hidden;
            z-index: 10;
        }
       
        header::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 5px;
            background: linear-gradient(90deg, #3498db, #e74c3c, #2ecc71, #f39c12);
            animation: scanline 8s linear infinite;
        }
       
        @keyframes scanline {
            0% { transform: translateX(-100%); }
            100% { transform: translateX(100%); }
        }
       
        h1 {
            font-size: 4rem;
            margin-bottom: 20px;
            color: #fff;
            text-shadow: 0 0 20px rgba(231, 76, 60, 0.9);
            letter-spacing: 3px;
            font-weight: 800;
            text-transform: uppercase;
            background: linear-gradient(to right, #3498db, #e74c3c, #2ecc71);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }
       
        .subtitle {
            font-size: 1.6rem;
            color: #bdc3c7;
            max-width: 900px;
            margin: 0 auto;
            text-shadow: 0 0 10px rgba(0, 0, 0, 0.8);
            line-height: 1.6;
        }
       
        /* Система вкладок */
        .lore-system {
            background: rgba(0, 0, 0, 0.5);
            border-radius: 20px;
            border: 3px solid #2c3e50;
            box-shadow: 0 15px 40px rgba(0, 0, 0, 0.7);
            overflow: hidden;
            margin-bottom: 50px;
        }
       
        .tabs-container {
            display: flex;
            background: rgba(20, 25, 45, 0.9);
            border-bottom: 3px solid #3498db;
            overflow-x: auto;
            padding: 0 10px;
        }
       
        .tab {
            padding: 20px 30px;
            font-size: 1.4rem;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            color: #bdc3c7;
            border-bottom: 3px solid transparent;
            position: relative;
            white-space: nowrap;
        }
       
        .tab:hover {
            color: #3498db;
            background: rgba(52, 152, 219, 0.1);
        }
       
        .tab.active {
            color: #fff;
            background: rgba(52, 152, 219, 0.2);
            border-bottom: 3px solid #e74c3c;
        }
       
        .tab.active::after {
            content: "";
            position: absolute;
            bottom: -3px;
            left: 0;
            width: 100%;
            height: 3px;
            background: #e74c3c;
            animation: tab-glow 1.5s infinite;
        }
       
        @keyframes tab-glow {
            0% { box-shadow: 0 0 5px rgba(231, 76, 60, 0.5); }
            50% { box-shadow: 0 0 20px rgba(231, 76, 60, 0.9); }
            100% { box-shadow: 0 0 5px rgba(231, 76, 60, 0.5); }
        }
       
        .tab-content {
            display: none;
            padding: 40px;
            min-height: 500px;
            background: rgba(10, 15, 30, 0.7);
        }
       
        .tab-content.active {
            display: block;
            animation: fadeIn 0.8s ease;
        }
       
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(20px); }
            to { opacity: 1; transform: translateY(0); }
        }
       
        .lore-section {
            margin-bottom: 40px;
            background: rgba(0, 0, 0, 0.3);
            border-radius: 15px;
            padding: 30px;
            border-left: 5px solid #3498db;
            position: relative;
            overflow: hidden;
        }
       
        .lore-section::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(52, 152, 219, 0.05), transparent);
            opacity: 0.3;
            z-index: 0;
        }
       
        .lore-title {
            font-size: 2.2rem;
            margin-bottom: 25px;
            color: #3498db;
            text-shadow: 0 0 15px rgba(52, 152, 219, 0.7);
            position: relative;
            display: flex;
            align-items: center;
        }
       
        .lore-title i {
            margin-right: 15px;
            font-size: 2rem;
            color: #e74c3c;
        }
       
        .lore-text {
            font-size: 1.2rem;
            line-height: 1.8;
            margin-bottom: 25px;
            position: relative;
            z-index: 1;
            text-align: justify;
        }
       
        .lore-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 30px;
            margin-top: 30px;
        }
       
        .lore-card {
            background: linear-gradient(145deg, #1a243f, #0f1429);
            border-radius: 15px;
            padding: 25px;
            border: 2px solid #2c3e50;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
            transition: all 0.4s ease;
            position: relative;
            overflow: hidden;
        }
       
        .lore-card:hover {
            transform: translateY(-10px);
            border-color: #e74c3c;
            box-shadow: 0 15px 35px rgba(231, 76, 60, 0.4);
        }
       
        .lore-card::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 5px;
            background: linear-gradient(90deg, #3498db, #e74c3c);
        }
       
        .card-title {
            font-size: 1.6rem;
            margin-bottom: 15px;
            color: #e74c3c;
            display: flex;
            align-items: center;
        }
       
        .card-title i {
            margin-right: 10px;
            font-size: 1.4rem;
        }
       
        .card-content {
            font-size: 1.1rem;
            line-height: 1.7;
        }
       
        .glitch-box {
            position: relative;
            padding: 20px;
            margin: 30px 0;
            background: rgba(0, 0, 0, 0.4);
            border: 2px solid #e74c3c;
            border-radius: 10px;
            overflow: hidden;
        }
       
        .glitch-box::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: repeating-linear-gradient(
                0deg,
                rgba(231, 76, 60, 0.1) 0px,
                rgba(231, 76, 60, 0.1) 1px,
                transparent 1px,
                transparent 20px
            );
            animation: glitch-anim 5s infinite linear;
            pointer-events: none;
        }
       
        @keyframes glitch-anim {
            0% { transform: translateY(0); }
            100% { transform: translateY(-20px); }
        }
       
        .quote {
            font-style: italic;
            padding: 20px 30px;
            border-left: 4px solid #3498db;
            background: rgba(52, 152, 219, 0.1);
            margin: 25px 0;
            position: relative;
        }
       
        .quote::before {
            content: """;
            position: absolute;
            top: -20px;
            left: 10px;
            font-size: 5rem;
            color: rgba(52, 152, 219, 0.2);
            font-family: Georgia, serif;
        }
       
        .timeline {
            position: relative;
            padding-left: 30px;
            margin: 40px 0;
        }
       
        .timeline::before {
            content: "";
            position: absolute;
            left: 0;
            top: 0;
            height: 100%;
            width: 4px;
            background: linear-gradient(to bottom, #3498db, #e74c3c);
        }
       
        .timeline-event {
            margin-bottom: 40px;
            position: relative;
            padding-left: 30px;
        }
       
        .timeline-event::before {
            content: "";
            position: absolute;
            left: -38px;
            top: 5px;
            width: 20px;
            height: 20px;
            border-radius: 50%;
            background: #e74c3c;
            box-shadow: 0 0 15px rgba(231, 76, 60, 0.7);
        }
       
        .event-title {
            font-size: 1.5rem;
            color: #3498db;
            margin-bottom: 10px;
        }
       
        .event-date {
            display: inline-block;
            background: rgba(231, 76, 60, 0.2);
            padding: 5px 15px;
            border-radius: 20px;
            margin-bottom: 15px;
            font-weight: 700;
        }
       
        /* Адаптивность */
        @media (max-width: 1200px) {
            .lore-grid {
                grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
            }
        }
       
        @media (max-width: 992px) {
            h1 {
                font-size: 3rem;
            }
           
            .subtitle {
                font-size: 1.3rem;
            }
           
            .tab {
                padding: 15px 20px;
                font-size: 1.2rem;
            }
        }
       
        @media (max-width: 768px) {
            .tabs-container {
                flex-direction: column;
            }
           
            .tab {
                width: 100%;
                text-align: center;
                border-bottom: 2px solid rgba(52, 152, 219, 0.3);
            }
           
            .tab.active {
                border-bottom: 3px solid #e74c3c;
            }
           
            .tab-content {
                padding: 25px;
            }
           
            .lore-section {
                padding: 20px;
            }
        }
       
        @media (max-width: 576px) {
            h1 {
                font-size: 2.5rem;
            }
           
            .subtitle {
                font-size: 1.1rem;
            }
           
            .lore-title {
                font-size: 1.8rem;
            }
           
            .lore-text {
                font-size: 1.1rem;
            }
        }
    </style>
</head>
<body>
    <div class="container">
        <header>
            <h1>АРХИВ ЛОРА МИРА</h1>
            <p class="subtitle">Полное собрание истории, фракций и ключевых событий вселенной Borderlands/Warframe</p>
        </header>
       
        <div class="lore-system">
            <div class="tabs-container">
                <div class="tab active" data-tab="history"><i class="fas fa-book"></i> История мира</div>
                <div class="tab" data-tab="factions"><i class="fas fa-flag"></i> Фракции</div>
                <div class="tab" data-tab="characters"><i class="fas fa-users"></i> Персонажи</div>
                <div class="tab" data-tab="locations"><i class="fas fa-map"></i> Локации</div>
                <div class="tab" data-tab="technology"><i class="fas fa-microchip"></i> Технологии</div>
                <div class="tab" data-tab="events"><i class="fas fa-history"></i> События</div>
            </div>
           
            <!-- Вкладка История мира -->
            <div class="tab-content active" id="history">
                <div class="lore-section">
                    <h2 class="lore-title"><i class="fas fa-universe"></i> Зарождение мира</h2>
                    <p class="lore-text">
                        В далёком будущем человечество колонизировало сотни планет, создав Галактическую Конфедерацию.
                        Но всё изменилось с открытием Экзо-материи - вещества, способного искривлять пространство-время.
                        Первые эксперименты привели к Катаклизму: пространственные разрывы, появление аномальных зон
                        и мутация живых существ. Конфедерация пала, уступив место новым силам.
                    </p>
                   
                    <div class="glitch-box">
                        <p class="lore-text">
                            "Мы думали, что контролируем силы природы. Как же мы ошибались. Экзо-материя не просто
                            изменила наш мир - она переписала саму ткань реальности. Теперь мы пожинаем плоды
                            своего высокомерия." <br>- Доктор Арлан Торн, последняя запись перед исчезновением
                        </p>
                    </div>
                   
                    <p class="lore-text">
                        Последующие столетия известны как Эра Разлома. Планеты оказались изолированными,
                        технологии утеряны, а выжившие сформировали новые общества среди руин великой цивилизации.
                        Три основные силы сформировали послекатастрофический мир...
                    </p>
                </div>
               
                <div class="lore-grid">
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-atom"></i> Великий Катаклизм</h3>
                        <p class="card-content">
                            Год 2247. Эксперимент с Экзо-материей на орбитальной станции "Прометей" вышел из-под контроля.
                            Цепная реакция разорвала пространство, создав Пустотные Разломы по всей галактике.
                        </p>
                    </div>
                   
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-hourglass-half"></i> Эра Разлома</h3>
                        <p class="card-content">
                            2247-2541. Период хаоса и изоляции. Планеты отрезаны друг от друга. Технологическая регрессия.
                            Формирование первых послекатастрофических обществ.
                        </p>
                    </div>
                   
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-handshake"></i> Пакт Трех Звезд</h3>
                        <p class="card-content">
                            2541 год. Лидеры трех выживших цивилизаций подписывают хрупкое соглашение о сотрудничестве.
                            Начало восстановления межпланетных путешествий через стабилизированные разломы.
                        </p>
                    </div>
                </div>
            </div>
           
            <!-- Вкладка Фракции -->
            <div class="tab-content" id="factions">
                <div class="lore-section">
                    <h2 class="lore-title"><i class="fas fa-chess-rook"></i> Основные силы галактики</h2>
                    <p class="lore-text">
                        В постапокалиптической галактике доминируют три основные фракции, каждая со своей идеологией,
                        технологиями и видением будущего. Их противостояние определяет политический ландшафт и судьбы
                        миллиардов существ.
                    </p>
                </div>
               
                <div class="lore-grid">
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-gavel"></i> Архитекторы Порядка</h3>
                        <p class="card-content">
                            Технократы, стремящиеся восстановить галактическую цивилизацию через строгий контроль и
                            передовые технологии. Используют роботизированные армии и психо-инженерию для поддержания порядка.
                        </p>
                    </div>
                   
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-dna"></i> Синдикат Поглощения</h3>
                        <p class="card-content">
                            Приверженцы симбиоза с Экзо-материей. Развивают биотехнологии и кибернетические импланты.
                            Верят, что будущее за слиянием органического и синтетического.
                        </p>
                    </div>
                   
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-wind"></i> Бродяги Пустошей</h3>
                        <p class="card-content">
                            Кочевые кланы, освоившие выживание в самых опасных регионах. Мастера импровизации и ремонта.
                            Чтут древние технологии как "реликвии предков". Свободолюбивы и независимы.
                        </p>
                    </div>
                </div>
               
                <div class="lore-section">
                    <h2 class="lore-title"><i class="fas fa-star"></i> Независимые группы</h2>
                    <p class="lore-text">
                        Помимо основных фракций, в галактике существуют многочисленные независимые группы:
                        наёмные кланы, культы Экзо-материи, торговые синдикаты и пиратские объединения.
                        Они играют ключевую роль в балансе сил, часто выступая катализаторами конфликтов.
                    </p>
                </div>
            </div>
           
            <!-- Вкладка Персонажи -->
            <div class="tab-content" id="characters">
                <div class="lore-section">
                    <h2 class="lore-title"><i class="fas fa-crown"></i> Легендарные фигуры</h2>
                    <p class="lore-text">
                        История галактики полна ярких личностей, чьи решения и поступки определяли судьбы целых миров.
                        От безумных учёных до харизматичных лидеров повстанцев - их наследие живет в памяти поколений.
                    </p>
                </div>
               
                <div class="lore-grid">
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-robot"></i> Стальной Судья</h3>
                        <p class="card-content">
                            Легендарный охотник Архитекторов Порядка. Бывший судья Верховного Трибунала,
                            ставший символом неумолимого правосудия. Его настоящее имя и происхождение окутаны тайной.
                        </p>
                    </div>
                   
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-virus"></i> Токсичный Мутант</h3>
                        <p class="card-content">
                            Живое оружие Синдиката Поглощения. Результат эксперимента по слиянию с чистой Экзо-материей.
                            Способен контролировать биотех-вирусы и перестраивать свою форму.
                        </p>
                    </div>
                   
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-paw"></i> Зверь Пустошей</h3>
                        <p class="card-content">
                            Таинственный защитник законов Пустошей. Согласно легендам, это бывший вождь кочевников,
                            слившийся с древним техно-хищником. Появляется только когда нарушены священные законы выживания.
                        </p>
                    </div>
                </div>
            </div>
           
            <!-- Вкладка Локации -->
            <div class="tab-content" id="locations">
                <div class="lore-section">
                    <h2 class="lore-title"><i class="fas fa-globe-americas"></i> Знаковые места</h2>
                    <p class="lore-text">
                        Галактика после Катаклизма полна удивительных и опасных мест: от покрытых руинами мегаполисов
                        древней Конфедерации до аномальных зон, где законы физики работают иначе. Каждая локация хранит
                        тайны прошлого и ключи к будущему.
                    </p>
                </div>
               
                <div class="lore-grid">
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-city"></i> Некрополис-7</h3>
                        <p class="card-content">
                            Руины планетарной столицы Конфедерации. Город-призрак, где время течёт неравномерно.
                            Полон автономных боевых дронов и артефактов древних технологий.
                        </p>
                    </div>
                   
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-tree"></i> Живые Джунгли Вердиана</h3>
                        <p class="card-content">
                            Планета, где флора мутировала под воздействием Экзо-материи. Растения охотятся на животных,
                            а древние руины полностью поглощены биотех-лесом. База Синдиката Поглощения.
                        </p>
                    </div>
                   
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-sun"></i> Пылающие Пустоши Ксероса</h3>
                        <p class="card-content">
                            Бескрайняя пустыня с движущимися дюнами и кислотными озёрами. Дом кочевых кланов Бродяг.
                            Под песками скрыты древние бункеры и космопорты Конфедерации.
                        </p>
                    </div>
                </div>
            </div>
           
            <!-- Вкладка Технологии -->
            <div class="tab-content" id="technology">
                <div class="lore-section">
                    <h2 class="lore-title"><i class="fas fa-cogs"></i> Наследие и инновации</h2>
                    <p class="lore-text">
                        Технологический прогресс после Катаклизма пошёл разными путями. Фракции развивают уникальные
                        направления, основанные на их философии и доступных ресурсах. Некоторые технологии настолько
                        продвинуты, что кажутся магией, другие - жуткими порождениями безумной науки.
                    </p>
                   
                    <div class="quote">
                        "Любая достаточно развитая технология неотличима от магии. Но магия,
                        основанная на Экзо-материи, неотличима от безумия." <br>- Надпись в лаборатории "Прометея"
                    </div>
                </div>
               
                <div class="lore-grid">
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-shield-alt"></i> Силовые поля</h3>
                        <p class="card-content">
                            Разработаны Архитекторами Порядка. Создают многослойные энергетические барьеры,
                            способные адаптироваться к разным видам атак. Требуют огромных источников энергии.
                        </p>
                    </div>
                   
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-dna"></i> Биотех-симбиоз</h3>
                        <p class="card-content">
                            Технология Синдиката Поглощения. Позволяет интегрировать органические и синтетические
                            компоненты на клеточном уровне. Дарует улучшенные способности ценой потери человечности.
                        </p>
                    </div>
                   
                    <div class="lore-card">
                        <h3 class="card-title"><i class="fas fa-wrench"></i> Техношаманизм</h3>
                        <p class="card-content">
                            Уникальный подход Бродяг Пустошей. Сочетает древние ритуалы с ремонтом и модификацией
                            технологий. Позволяет "оживлять" даже безнадёжно сломанные машины.
                        </p>
                    </div>
                </div>
            </div>
           
            <!-- Вкладка События -->
            <div class="tab-content" id="events">
                <div class="lore-section">
                    <h2 class="lore-title"><i class="fas fa-hourglass-end"></i> Хронология ключевых событий</h2>
                    <p class="lore-text">
                        История галактики - это череда великих свершений и ужасающих катастроф. От расцвета Конфедерации
                        до Эры Разлома и формирования новых фракций - каждое событие оставило шрам на лице галактики и
                        определило её настоящее.
                    </p>
                </div>
               
                <div class="timeline">
                    <div class="timeline-event">
                        <div class="event-date">2231</div>
                        <h3 class="event-title">Открытие Экзо-материи</h3>
                        <p class="card-content">
                            Учёные Конфедерации обнаруживают неизвестное вещество, способное искривлять пространство-время.
                            Начало золотой эры технологий.
                        </p>
                    </div>
                   
                    <div class="timeline-event">
                        <div class="event-date">2247</div>
                        <h3 class="event-title">Катаклизм "Прометея"</h3>
                        <p class="card-content">
                            Катастрофа на орбитальной станции. Разрушение пространственно-временного континуума.
                            Начало Эры Разлома.
                        </p>
                    </div>
                   
                    <div class="timeline-event">
                        <div class="event-date">2389</div>
                        <h3 class="event-title">Образование Архитекторов Порядка</h3>
                        <p class="card-content">
                            Группа учёных и военных объединяется для восстановления цивилизации через строгий контроль
                            и технологический прогресс.
                        </p>
                    </div>
                   
                    <div class="timeline-event">
                        <div class="event-date">2515</div>
                        <h3 class="event-title">Рождение Синдиката Поглощения</h3>
                        <p class="card-content">
                            Раскол среди Архитекторов. Группа биотехнологов уходит, чтобы посвятить себя симбиозу
                            с Экзо-материей.
                        </p>
                    </div>
                   
                    <div class="timeline-event">
                        <div class="event-date">2541</div>
                        <h3 class="event-title">Пакт Трех Звезд</h3>
                        <p class="card-content">
                            Первое соглашение между основными фракциями. Начало хрупкого сотрудничества и возобновление
                            межпланетных путешествий.
                        </p>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script>
        // Переключение вкладок
        document.querySelectorAll('.tab').forEach(tab => {
            tab.addEventListener('click', function() {
                // Удаляем активный класс у всех вкладок
                document.querySelectorAll('.tab').forEach(t => {
                    t.classList.remove('active');
                });
               
                // Добавляем активный класс текущей вкладке
                this.classList.add('active');
               
                // Скрываем все контенты
                document.querySelectorAll('.tab-content').forEach(content => {
                    content.classList.remove('active');
                });
               
                // Показываем соответствующий контент
                const tabId = this.dataset.tab;
                document.getElementById(tabId).classList.add('active');
            });
        });
       
        // Анимация карточек при загрузке
        document.querySelectorAll('.lore-card').forEach((card, index) => {
            card.style.opacity = "0";
            card.style.transform = "translateY(30px)";
            card.style.animation = `fadeIn 0.7s forwards ${index * 0.2}s`;
        });
       
        // Добавляем CSS для анимаций
        const style = document.createElement('style');
        style.innerHTML = `
            @keyframes fadeIn {
                from { opacity: 0; transform: translateY(30px); }
                to { opacity: 1; transform: translateY(0); }
            }
        `;
        document.head.appendChild(style);
    </script>
</body>
</html>[/html]

0

5

[html]<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Denizen of the Void</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&family=Press+Start+2P&family=Rubik+Glitch&display=swap');
       
        :root {
            --neon-pink: #ff00ff;
            --neon-green: #39ff14;
            --neon-blue: #00ffff;
            --neon-orange: #ff5e1a;
            --dark-bg: #0a0a14;
        }
       
        body {
            background:
                radial-gradient(circle at center, #1a1a2e 0%, var(--dark-bg) 70%),
                url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><rect width="100" height="100" fill="%230a0a14"/><path d="M0,50 L100,50 M50,0 L50,100" stroke="%23333" stroke-width="0.5"/></svg>');
            font-family: 'Orbitron', sans-serif;
            color: white;
            overflow-x: hidden;
            padding: 20px;
            min-height: 100vh;
        }
       
        .hologram-container {
            max-width: 700px;
            margin: 0 auto;
            position: relative;
            padding: 30px;
            background: rgba(10, 10, 20, 0.85);
            border: 3px solid var(--neon-blue);
            box-shadow:
                0 0 25px var(--neon-blue),
                inset 0 0 15px rgba(0, 255, 255, 0.3);
            border-image:
                linear-gradient(45deg, var(--neon-blue), var(--neon-pink)) 1;
            clip-path: polygon(
                0 20px, 20px 0, calc(100% - 20px) 0, 100% 20px,
                100% calc(100% - 20px), calc(100% - 20px) 100%, 20px 100%, 0 calc(100% - 20px)
            );
        }
       
        .hologram-container::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background:
                url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" opacity="0.15"><path d="M20,20 Q40,5 60,20 T100,20 Q115,40 100,60 T100,100 Q80,115 60,100 T20,100 Q5,80 20,60 T20,20Z" fill="none" stroke="%2300ffff" stroke-width="1"/></svg>'),
                url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" opacity="0.2"><rect x="10" y="10" width="80" height="80" fill="none" stroke="%23ff00ff" stroke-width="2" stroke-dasharray="4 4"/></svg>');
            background-size: 200px, 100px;
            pointer-events: none;
            z-index: -1;
        }
       
        .scan-line {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(to right, transparent, var(--neon-green), transparent);
            box-shadow: 0 0 10px var(--neon-green);
            animation: scan 4s linear infinite;
        }
       
        @keyframes scan {
            0% { top: 0; opacity: 0.8; }
            50% { top: 100%; opacity: 0.2; }
            100% { top: 100%; opacity: 0; }
        }
       
        .title {
            font-family: 'Rubik Glitch', cursive;
            text-align: center;
            font-size: 3rem;
            margin: 20px 0 40px;
            text-transform: uppercase;
            color: var(--neon-pink);
            text-shadow:
                0 0 10px var(--neon-pink),
                0 0 20px var(--neon-pink),
                0 0 30px rgba(255, 0, 255, 0.5);
            letter-spacing: 2px;
            transform: skewX(-5deg);
        }
       
        .form-group {
            margin-bottom: 25px;
            position: relative;
        }
       
        .form-label {
            display: block;
            margin-bottom: 10px;
            font-size: 1.2rem;
            color: var(--neon-green);
            text-shadow: 0 0 5px var(--neon-green);
            position: relative;
            padding-left: 30px;
        }
       
        .form-label::before {
            content: "▶";
            position: absolute;
            left: 0;
            color: var(--neon-orange);
            text-shadow: 0 0 8px var(--neon-orange);
        }
       
        input, textarea, select {
            width: 100%;
            padding: 12px 15px;
            background: rgba(0, 10, 20, 0.7);
            border: 2px solid var(--neon-blue);
            color: white;
            font-family: 'Orbitron', sans-serif;
            font-size: 1rem;
            box-shadow:
                0 0 10px var(--neon-blue),
                inset 0 0 5px rgba(0, 255, 255, 0.3);
            transition: all 0.3s ease;
        }
       
        input:focus, textarea:focus, select:focus {
            outline: none;
            border-color: var(--neon-pink);
            box-shadow:
                0 0 15px var(--neon-pink),
                inset 0 0 8px rgba(255, 0, 255, 0.4);
        }
       
        textarea {
            min-height: 100px;
            resize: vertical;
        }
       
        .submit-btn {
            display: block;
            margin: 40px auto 20px;
            padding: 15px 50px;
            background: linear-gradient(45deg, var(--neon-blue), var(--neon-pink));
            border: none;
            color: black;
            font-family: 'Press Start 2P', cursive;
            font-size: 1.2rem;
            text-transform: uppercase;
            cursor: pointer;
            position: relative;
            overflow: hidden;
            transition: all 0.3s ease;
            box-shadow:
                0 0 15px var(--neon-blue),
                0 0 25px var(--neon-pink);
        }
       
        .submit-btn:hover {
            transform: translateY(-3px);
            box-shadow:
                0 0 25px var(--neon-blue),
                0 0 35px var(--neon-pink);
            animation: pulse 1.5s infinite;
        }
       
        .submit-btn::before {
            content: "";
            position: absolute;
            top: -10px;
            left: -10px;
            right: -10px;
            bottom: -10px;
            background: linear-gradient(45deg,
                transparent, transparent,
                rgba(255, 255, 255, 0.2),
                transparent, transparent);
            z-index: 1;
            animation: shine 3s infinite;
        }
       
        @keyframes pulse {
            0% { box-shadow: 0 0 25px var(--neon-blue), 0 0 35px var(--neon-pink); }
            50% { box-shadow: 0 0 35px var(--neon-blue), 0 0 45px var(--neon-pink); }
            100% { box-shadow: 0 0 25px var(--neon-blue), 0 0 35px var(--neon-pink); }
        }
       
        @keyframes shine {
            0% { transform: translateX(-100%) rotate(25deg); }
            100% { transform: translateX(100%) rotate(25deg); }
        }
       
        .glitch {
            position: relative;
        }
       
        .glitch::after {
            content: attr(data-text);
            position: absolute;
            left: 2px;
            top: 0;
            color: var(--neon-green);
            background: var(--dark-bg);
            overflow: hidden;
            clip-path: polygon(0 25%, 100% 65%, 100% 100%, 0% 100%);
            animation: glitch 5s infinite;
            opacity: 0.7;
        }
       
        @keyframes glitch {
            0%, 100% { transform: translate(0); }
            20% { transform: translate(-3px, 3px); }
            40% { transform: translate(-3px, -3px); }
            60% { transform: translate(3px, 3px); }
            80% { transform: translate(3px, -3px); }
        }
       
        .corner-decor {
            position: absolute;
            width: 40px;
            height: 40px;
            border: 2px solid var(--neon-orange);
            box-shadow: 0 0 10px var(--neon-orange);
        }
       
        .corner-tl {
            top: -5px;
            left: -5px;
            border-right: none;
            border-bottom: none;
        }
       
        .corner-tr {
            top: -5px;
            right: -5px;
            border-left: none;
            border-bottom: none;
        }
       
        .corner-bl {
            bottom: -5px;
            left: -5px;
            border-right: none;
            border-top: none;
        }
       
        .corner-br {
            bottom: -5px;
            right: -5px;
            border-left: none;
            border-top: none;
        }
       
        .static-effect {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background:
                repeating-linear-gradient(0deg, rgba(0, 255, 255, 0.1) 0px,
                rgba(0, 255, 255, 0.1) 1px,
                transparent 1px,
                transparent 2px);
            pointer-events: none;
            opacity: 0.3;
            z-index: 2;
            animation: static 0.1s infinite;
        }
       
        @keyframes static {
            0% { background-position: 0 0; }
            100% { background-position: 0 10px; }
        }
    </style>
</head>
<body>
    <div class="hologram-container">
        <div class="scan-line"></div>
        <div class="static-effect"></div>
       
        <div class="corner-decor corner-tl"></div>
        <div class="corner-decor corner-tr"></div>
        <div class="corner-decor corner-bl"></div>
        <div class="corner-decor corner-br"></div>
       
        <h1 class="title glitch" data-text="АНКЕТА: ОБИТАТЕЛЬ БЕЗДНЫ">АНКЕТА: ОБИТАТЕЛЬ БЕЗДНЫ</h1>
       
        <form id="denizen-form">
            <div class="form-group">
                <label class="form-label">ИМЯ / КЛИЧКА</label>
                <input type="text" placeholder="РЕВЕНАНТ-66 / ДОКТОР ЗАРАЗА" required>
            </div>
           
            <div class="form-group">
                <label class="form-label">ЛИК / ОБЛИК</label>
                <input type="text" placeholder="БИОМЕХАНИЧЕСКИЙ КОШМАР / НЕОНОВЫЙ ПРИЗРАК">
            </div>
           
            <div class="form-group">
                <label class="form-label">ФРАКЦИЯ</label>
                <select>
                    <option>Корпорация DAHL</option>
                    <option>Банда Психов</option>
                    <option>Тенно Ордена</option>
                    <option>Культ Огня</option>
                    <option>Вольные Наемники</option>
                    <option>Дети Войны</option>
                    <option>Охотники за Головами</option>
                    <option>Техно-Еретики</option>
                </select>
            </div>
           
            <div class="form-group">
                <label class="form-label">СЕМЕЙНОЕ ПОЛОЖЕНИЕ</label>
                <select>
                    <option>Холост(а) и готов(а) к взрывам</option>
                    <option>В разводе с гранатомётом</option>
                    <option>В поисках сокровищ и любви</option>
                    <option>Обручён(а) с пушкой</option>
                    <option>Вдовец/Вдова космического пирата</option>
                    <option>Усыновил(а) боевого дрона</option>
                    <option>Роман с искусственным интеллектом</option>
                </select>
            </div>
           
            <div class="form-group">
                <label class="form-label">ИЗНАЧАЛЬНЫЙ ДАР / СПОСОБНОСТИ</label>
                <textarea placeholder="ФАЗОВЫЙ РЫВОК / ТЕЛЕКИНЕЗ ОРУЖИЯ / КОНТРОЛЬ СТИХИЙ..."></textarea>
            </div>
           
            <div class="form-group">
                <label class="form-label">ГЛАВНАЯ ЦЕЛЬ / ЖАЖДА</label>
                <input type="text" placeholder="МЕСТЬ КОРПОРАЦИЯМ / ВСЕ ДЕНЬГИ ВСЕЛЕННОЙ">
            </div>
           
            <div class="form-group">
                <label class="form-label">ЗНАК / ОСОБАЯ МЕТКА</label>
                <input type="text" placeholder="ГЛАЗ СВЕТИТСЯ ЯДОВИТО-ЗЕЛЕНЫМ / ШРАМ В ВИДЕ КАРТЫ СОКРОВИЩ">
            </div>
           
            <div class="form-group">
                <label class="form-label">КРАТКАЯ БИОГРАФИЯ</label>
                <textarea placeholder="БЫВШИЙ ИНЖЕНЕР МАЛИВАН, ПОТЕРЯЛ ВСЁ В РЕЗУЛЬТАТЕ КОРПОРАТИВНОЙ ВОЙНЫ..."></textarea>
            </div>
           
            <button type="submit" class="submit-btn">АКТИВИРОВАТЬ РЕКВИЗИЦИЮ</button>
        </form>
    </div>

    <script>
        // Голографический эффект мерцания
        const container = document.querySelector('.hologram-container');
        setInterval(() => {
            const intensity = Math.random() * 0.3;
            container.style.boxShadow = `
                0 0 ${15 + intensity * 10}px var(--neon-blue),
                inset 0 0 ${5 + intensity * 5}px rgba(0, 255, 255, 0.3)
            `;
        }, 300);
       
        // Эффект при наведении на поля ввода
        const inputs = document.querySelectorAll('input, textarea, select');
        inputs.forEach(input => {
            input.addEventListener('focus', function() {
                this.style.boxShadow = `0 0 20px var(--neon-pink), inset 0 0 10px rgba(255, 0, 255, 0.5)`;
            });
           
            input.addEventListener('blur', function() {
                this.style.boxShadow = `0 0 10px var(--neon-blue), inset 0 0 5px rgba(0, 255, 255, 0.3)`;
            });
        });
       
        // Анимация кнопки при отправке
        const form = document.getElementById('denizen-form');
        form.addEventListener('submit', function(e) {
            e.preventDefault();
            const btn = document.querySelector('.submit-btn');
            btn.textContent = "РЕКВИЗИЦИЯ АКТИВИРОВАНА!";
            btn.style.background = 'linear-gradient(45deg, var(--neon-green), var(--neon-orange))';
           
            // Эффект "загрузки данных"
            setTimeout(() => {
                alert('Персонаж зарегистрирован в Архиве Бездны!');
                btn.textContent = "АКТИВИРОВАТЬ РЕКВИЗИЦИЮ";
                btn.style.background = 'linear-gradient(45deg, var(--neon-blue), var(--neon-pink))';
            }, 1500);
        });
    </script>
</body>
</html>[/html]

0

6

[html]<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Рукописная анкета Borderlands x Warframe</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&family=Press+Start+2P&family=Rubik+Glitch&family=Rock+Salt&display=swap');
       
        body {
            background: #1a1a2e;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            margin: 0;
            padding: 20px;
        }
       
        .handwritten-form {
            width: 800px;
            background: #0a0a14;
            border: 6px solid #00ffff;
            position: relative;
            padding: 40px;
            box-shadow:
                0 0 30px #00ffff,
                inset 0 0 20px rgba(0, 255, 255, 0.3);
            clip-path: polygon(
                0 30px, 30px 0, calc(100% - 30px) 0, 100% 30px,
                100% calc(100% - 30px), calc(100% - 30px) 100%, 30px 100%, 0 calc(100% - 30px)
            );
            background-image:
                radial-gradient(circle at 20% 30%, rgba(255, 0, 255, 0.05) 0%, transparent 20%),
                radial-gradient(circle at 80% 70%, rgba(57, 255, 20, 0.05) 0%, transparent 20%),
                repeating-linear-gradient(45deg, rgba(0, 0, 0, 0.1) 0px, rgba(0, 0, 0, 0.1) 1px, transparent 1px, transparent 11px);
        }
       
        .handwritten-form::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" opacity="0.1"><path d="M20,20 Q40,5 60,20 T100,20 Q115,40 100,60 T100,100 Q80,115 60,100 T20,100 Q5,80 20,60 T20,20Z" fill="none" stroke="%2300ffff" stroke-width="2"/></svg>');
            pointer-events: none;
            z-index: 0;
        }
       
        .title {
            font-family: 'Rubik Glitch', cursive;
            text-align: center;
            font-size: 3.5rem;
            margin: 10px 0 40px;
            color: #ff00ff;
            text-shadow:
                0 0 15px #ff00ff,
                0 0 25px #ff00ff,
                0 0 35px rgba(255, 0, 255, 0.5);
            letter-spacing: 3px;
            position: relative;
            z-index: 2;
        }
       
        .title::after {
            content: "DENIZEN OF THE VOID";
            position: absolute;
            bottom: -25px;
            left: 0;
            right: 0;
            font-family: 'Orbitron', sans-serif;
            font-size: 1.2rem;
            color: #00ffff;
            text-shadow: 0 0 10px #00ffff;
            letter-spacing: 2px;
        }
       
        .form-section {
            margin-bottom: 30px;
            position: relative;
            z-index: 2;
        }
       
        .section-title {
            font-family: 'Press Start 2P', cursive;
            font-size: 1.1rem;
            color: #39ff14;
            text-shadow: 0 0 8px #39ff14;
            margin-bottom: 15px;
            border-bottom: 2px dashed #ff5e1a;
            padding-bottom: 5px;
            display: flex;
            align-items: center;
        }
       
        .section-title::before {
            content: "◆";
            margin-right: 10px;
            color: #ff5e1a;
            text-shadow: 0 0 8px #ff5e1a;
        }
       
        .handwritten-field {
            display: flex;
            margin-bottom: 20px;
            align-items: flex-start;
        }
       
        .field-label {
            font-family: 'Rock Salt', cursive;
            font-size: 1.1rem;
            color: #ffffff;
            min-width: 180px;
            padding-right: 15px;
            text-shadow: 0 0 5px rgba(255, 255, 255, 0.7);
            position: relative;
        }
       
        .field-label::after {
            content: ":";
            position: absolute;
            right: 10px;
        }
       
        .field-space {
            flex-grow: 1;
            min-height: 30px;
            border-bottom: 2px dashed #00ffff;
            position: relative;
            padding-bottom: 5px;
        }
       
        .field-space.large {
            min-height: 100px;
            border: 2px dashed #ff00ff;
            padding: 10px;
            background: rgba(0, 10, 20, 0.3);
        }
       
        .field-space.x-large {
            min-height: 150px;
            border: 2px dashed #ff5e1a;
            padding: 15px;
            background: rgba(20, 0, 10, 0.3);
        }
       
        .example-text {
            font-family: 'Rock Salt', cursive;
            font-size: 0.9rem;
            color: #aaaaaa;
            margin-top: 5px;
            font-style: italic;
            text-shadow: none;
        }
       
        .handwritten-note {
            font-family: 'Rock Salt', cursive;
            color: #ff5e1a;
            margin-top: 30px;
            padding: 15px;
            border: 1px dashed #39ff14;
            background: rgba(0, 20, 10, 0.2);
            text-align: center;
            text-shadow: 0 0 5px rgba(255, 94, 26, 0.5);
        }
       
        .corner-decor {
            position: absolute;
            width: 40px;
            height: 40px;
        }
       
        .corner-tl {
            top: 15px;
            left: 15px;
            border-top: 3px solid #ff00ff;
            border-left: 3px solid #ff00ff;
        }
       
        .corner-tr {
            top: 15px;
            right: 15px;
            border-top: 3px solid #ff00ff;
            border-right: 3px solid #ff00ff;
        }
       
        .corner-bl {
            bottom: 15px;
            left: 15px;
            border-bottom: 3px solid #ff00ff;
            border-left: 3px solid #ff00ff;
        }
       
        .corner-br {
            bottom: 15px;
            right: 15px;
            border-bottom: 3px solid #ff00ff;
            border-right: 3px solid #ff00ff;
        }
       
        .stamp {
            position: absolute;
            bottom: 30px;
            right: 30px;
            width: 120px;
            height: 120px;
            border: 4px dashed #ff5e1a;
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            transform: rotate(15deg);
            font-family: 'Press Start 2P', cursive;
            color: #ff5e1a;
            font-size: 0.7rem;
            text-align: center;
            padding: 10px;
            text-transform: uppercase;
            opacity: 0.7;
        }
       
        .handwritten-logo {
            position: absolute;
            top: 20px;
            left: 20px;
            font-family: 'Orbitron', sans-serif;
            font-size: 0.9rem;
            color: #00ffff;
            writing-mode: vertical-lr;
            text-orientation: mixed;
            transform: rotate(180deg);
            letter-spacing: 2px;
        }
       
        .grid-lines {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-image:
                repeating-linear-gradient(to bottom, rgba(0, 255, 255, 0.05) 0px, rgba(0, 255, 255, 0.05) 1px, transparent 1px, transparent 24px);
            pointer-events: none;
            z-index: 1;
        }
    </style>
</head>
<body>
    <div class="handwritten-form">
        <div class="grid-lines"></div>
        <div class="corner-decor corner-tl"></div>
        <div class="corner-decor corner-tr"></div>
        <div class="corner-decor corner-bl"></div>
        <div class="corner-decor corner-br"></div>
        <div class="stamp">Одобрено<br>Архивом<br>Бездны</div>
        <div class="handwritten-logo">BL x WF</div>
       
        <h1 class="title">АНКЕТА ОБИТАТЕЛЯ БЕЗДНЫ</h1>
       
        <!-- Личные данные -->
        <div class="form-section">
            <div class="section-title">ЛИЧНЫЕ ДАННЫЕ</div>
           
            <div class="handwritten-field">
                <div class="field-label">Имя / Кличка</div>
                <div class="field-space"></div>
            </div>
            <div class="example-text">Пример: "РЕВЕНАНТ-66", "СОПЛЕХЛЕБАТЕЛЬ", "ДОКТОР ЗАРАЗА"</div>
           
            <div class="handwritten-field">
                <div class="field-label">Лик / Облик</div>
                <div class="field-space"></div>
            </div>
            <div class="example-text">Пример: "БИОМЕХАНИЧЕСКИЙ КОШМАР", "НЕОНОВЫЙ ПРИЗРАК", "ЗАКЛЕПОЧНЫЙ ТАНК"</div>
           
            <div class="handwritten-field">
                <div class="field-label">Фракция</div>
                <div class="field-space"></div>
            </div>
            <div class="example-text">Пример: КОРПОРАЦИЯ DAHL, БАНДА ПСИХОВ, ТЕННО ОРДЕНА, ВОЛЬНЫЕ НАЕМНИКИ</div>
           
            <div class="handwritten-field">
                <div class="field-label">Семейное положение</div>
                <div class="field-space"></div>
            </div>
            <div class="example-text">Пример: "ХОЛОСТ(А) И ГОТОВ(А) К ВЗРЫВАМ", "ОБРУЧЁН(А) С ПУШКОЙ", "ВДОВЕЦ КОСМИЧЕСКОГО ПИРАТА"</div>
        </div>
       
        <!-- Способности -->
        <div class="form-section">
            <div class="section-title">СПОСОБНОСТИ И ОСОБЫЕ МЕТКИ</div>
           
            <div class="handwritten-field">
                <div class="field-label">Изначальный дар</div>
                <div class="field-space"></div>
            </div>
            <div class="example-text">Пример: "ФАЗОВЫЙ РЫВОК", "ВЗРЫВНОЙ ПСИОННЫЙ ВОПЛЬ", "ТЕЛЕПОРТАЦИЯ САБЛИ"</div>
           
            <div class="handwritten-field">
                <div class="field-label">Ключевые способности</div>
                <div class="field-space large"></div>
            </div>
           
            <div class="handwritten-field">
                <div class="field-label">Знак / Особая метка</div>
                <div class="field-space"></div>
            </div>
            <div class="example-text">Пример: "ГЛАЗ СВЕТИТСЯ ЯДОВИТО-ЗЕЛЕНЫМ", "ШРАМ В ВИДЕ КАРТЫ СОКРОВИЩ", "ПЛАЩ ИЗ ОТЖИВШИХ МИКРОСХЕМ"</div>
        </div>
       
        <!-- Цели и история -->
        <div class="form-section">
            <div class="section-title">ЦЕЛИ И ИСТОРИЯ</div>
           
            <div class="handwritten-field">
                <div class="field-label">Главная цель / Жажда</div>
                <div class="field-space"></div>
            </div>
            <div class="example-text">Пример: "МЕСТЬ КОРПОРАЦИЯМ", "ВСЕ ДЕНЬГИ ВСЕЛЕННОЙ", "НАЙТИ ПУШКУ БОГОВ"</div>
           
            <div class="handwritten-field">
                <div class="field-label">Краткая биография</div>
                <div class="field-space x-large"></div>
            </div>
        </div>
       
        <div class="handwritten-note">
            ◆ Заполните анкету разборчивым почерком ◆<br>
            ◆ Используйте неоновые маркеры для выделения ◆<br>
            ◆ Приложите фото/рисунок персонажа к обратной стороне ◆
        </div>
    </div>
</body>
</html>[/html]

0

7

[html]<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Orokin Dossier - Анкета Тенно</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700&family=Exo+2:wght@300;400;600&display=swap');
       
        :root {
            --void-dark: #12121c;
            --void-gray: #1e1e2e;
            --orokin-gold: #c8a951;
            --tenno-purple: #6d3bbf;
            --energy-orange: #ff7b00;
            --tech-blue: #00b4d8;
        }
       
        body {
            background:
                radial-gradient(circle at center, #0a0a15 0%, var(--void-dark) 100%),
                url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" opacity="0.05"><path d="M20,20 Q40,5 60,20 T100,20 Q115,40 100,60 T100,100 Q80,115 60,100 T20,100 Q5,80 20,60 T20,20Z" fill="none" stroke="%236d3bbf" stroke-width="2"/></svg>');
            font-family: 'Exo 2', sans-serif;
            color: #e0e0e0;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            margin: 0;
            padding: 20px;
            overflow-x: hidden;
        }
       
        .orokin-dossier {
            width: 800px;
            background: var(--void-gray);
            border: 1px solid rgba(200, 169, 81, 0.3);
            position: relative;
            padding: 40px 50px;
            box-shadow:
                0 0 40px rgba(109, 59, 191, 0.3),
                inset 0 0 30px rgba(0, 0, 0, 0.7);
            clip-path: polygon(
                0 40px, 40px 0, calc(100% - 40px) 0, 100% 40px,
                100% calc(100% - 40px), calc(100% - 40px) 100%, 40px 100%, 0 calc(100% - 40px)
            );
            overflow: hidden;
        }
       
        .orokin-dossier::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background:
                linear-gradient(135deg, transparent 49.5%, rgba(200, 169, 81, 0.1) 50%, transparent 50.5%),
                linear-gradient(45deg, transparent 49.5%, rgba(200, 169, 81, 0.1) 50%, transparent 50.5%);
            background-size: 40px 40px;
            pointer-events: none;
            z-index: 0;
        }
       
        .orokin-dossier::after {
            content: "";
            position: absolute;
            top: 10px;
            left: 10px;
            right: 10px;
            bottom: 10px;
            border: 1px solid rgba(200, 169, 81, 0.2);
            pointer-events: none;
        }
       
        .dossier-header {
            text-align: center;
            margin-bottom: 40px;
            position: relative;
            z-index: 2;
        }
       
        .dossier-title {
            font-family: 'Orbitron', sans-serif;
            font-weight: 700;
            font-size: 2.8rem;
            text-transform: uppercase;
            color: var(--orokin-gold);
            letter-spacing: 6px;
            margin-bottom: 10px;
            text-shadow: 0 0 15px rgba(200, 169, 81, 0.7);
        }
       
        .dossier-subtitle {
            font-family: 'Exo 2', sans-serif;
            font-weight: 300;
            font-size: 1.2rem;
            color: var(--tech-blue);
            letter-spacing: 3px;
            position: relative;
            display: inline-block;
        }
       
        .dossier-subtitle::before,
        .dossier-subtitle::after {
            content: "◆";
            margin: 0 15px;
            color: var(--tenno-purple);
            position: relative;
            top: -3px;
        }
       
        .dossier-section {
            margin-bottom: 35px;
            position: relative;
            z-index: 2;
        }
       
        .section-header {
            display: flex;
            align-items: center;
            margin-bottom: 25px;
            padding-bottom: 10px;
            border-bottom: 1px solid rgba(200, 169, 81, 0.4);
        }
       
        .section-icon {
            width: 40px;
            height: 40px;
            background: rgba(109, 59, 191, 0.2);
            border: 1px solid var(--tenno-purple);
            display: flex;
            justify-content: center;
            align-items: center;
            margin-right: 15px;
            font-size: 1.4rem;
            color: var(--energy-orange);
        }
       
        .section-title {
            font-family: 'Orbitron', sans-serif;
            font-size: 1.4rem;
            color: var(--tech-blue);
            text-transform: uppercase;
            letter-spacing: 2px;
        }
       
        .form-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 25px 40px;
        }
       
        .form-field {
            position: relative;
        }
       
        .field-label {
            display: block;
            margin-bottom: 8px;
            font-family: 'Orbitron', sans-serif;
            font-size: 0.9rem;
            color: var(--orokin-gold);
            text-transform: uppercase;
            letter-spacing: 1px;
        }
       
        .field-label::after {
            content: ":";
        }
       
        .field-space {
            min-height: 30px;
            border-bottom: 1px solid rgba(200, 169, 81, 0.3);
            padding: 8px 0;
            position: relative;
        }
       
        .field-space::before {
            content: "";
            position: absolute;
            bottom: -1px;
            left: 0;
            width: 0;
            height: 2px;
            background: var(--energy-orange);
            transition: width 0.5s ease;
        }
       
        .field-space:hover::before {
            width: 100%;
        }
       
        .field-space.large {
            min-height: 100px;
            border: 1px solid rgba(109, 59, 191, 0.3);
            padding: 15px;
            background: rgba(30, 30, 46, 0.5);
        }
       
        .field-space.x-large {
            min-height: 150px;
            border: 1px solid rgba(200, 169, 81, 0.3);
            padding: 15px;
            background: rgba(30, 30, 46, 0.5);
        }
       
        .full-width {
            grid-column: span 2;
        }
       
        .orokin-decoration {
            position: absolute;
            z-index: 1;
        }
       
        .decoration-1 {
            top: 20%;
            right: -30px;
            width: 120px;
            height: 120px;
            background: linear-gradient(45deg, transparent 49.5%, rgba(200, 169, 81, 0.1) 50%, transparent 50.5%);
            background-size: 20px 20px;
            transform: rotate(15deg);
            opacity: 0.3;
        }
       
        .decoration-2 {
            bottom: 10%;
            left: -50px;
            width: 200px;
            height: 200px;
            border-radius: 50%;
            border: 1px solid rgba(109, 59, 191, 0.2);
            box-shadow: 0 0 50px rgba(109, 59, 191, 0.1);
        }
       
        .decoration-3 {
            top: -20px;
            left: 50%;
            transform: translateX(-50%);
            width: 80%;
            height: 2px;
            background: linear-gradient(to right, transparent, var(--tenno-purple), transparent);
            box-shadow: 0 0 15px var(--tenno-purple);
        }
       
        .dossier-footer {
            margin-top: 40px;
            text-align: center;
            position: relative;
            z-index: 2;
        }
       
        .orokin-seal {
            display: inline-block;
            width: 120px;
            height: 120px;
            border: 2px solid var(--orokin-gold);
            border-radius: 50%;
            position: relative;
            margin-bottom: 20px;
        }
       
        .orokin-seal::before {
            content: "";
            position: absolute;
            top: 10px;
            left: 10px;
            right: 10px;
            bottom: 10px;
            border: 1px solid var(--tenno-purple);
            border-radius: 50%;
        }
       
        .seal-symbol {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-size: 2.5rem;
            color: var(--energy-orange);
        }
       
        .dossier-note {
            font-family: 'Exo 2', sans-serif;
            font-size: 0.9rem;
            color: #aaa;
            max-width: 600px;
            margin: 20px auto 0;
            line-height: 1.6;
        }
       
        .void-animation {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: radial-gradient(circle at var(--x) var(--y), rgba(255, 123, 0, 0.05) 0%, transparent 15%);
            pointer-events: none;
            z-index: 1;
        }
    </style>
</head>
<body>
    <div class="orokin-dossier">
        <div class="void-animation" id="voidEffect"></div>
       
        <div class="orokin-decoration decoration-1"></div>
        <div class="orokin-decoration decoration-2"></div>
        <div class="orokin-decoration decoration-3"></div>
       
        <div class="dossier-header">
            <div class="dossier-title">Тенно Досье</div>
            <div class="dossier-subtitle">Архив Ордин</div>
        </div>
       
        <div class="dossier-section">
            <div class="section-header">
                <div class="section-icon">⛤</div>
                <div class="section-title">Идентификация</div>
            </div>
           
            <div class="form-grid">
                <div class="form-field">
                    <div class="field-label">Кодовое имя</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field">
                    <div class="field-label">Рамка Варфрейма</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field">
                    <div class="field-label">Изначальный Элемент</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field">
                    <div class="field-label">Призван из</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field">
                    <div class="field-label">Фракция</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field">
                    <div class="field-label">Оператор / Дрифтер</div>
                    <div class="field-space"></div>
                </div>
            </div>
        </div>
       
        <div class="dossier-section">
            <div class="section-header">
                <div class="section-icon">⚡</div>
                <div class="section-title">Способности</div>
            </div>
           
            <div class="form-grid">
                <div class="form-field full-width">
                    <div class="field-label">Сигнатурная способность</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field">
                    <div class="field-label">Боевой стиль</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field">
                    <div class="field-label">Фокус Школы</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field full-width">
                    <div class="field-label">Особые модификации</div>
                    <div class="field-space large"></div>
                </div>
            </div>
        </div>
       
        <div class="dossier-section">
            <div class="section-header">
                <div class="section-icon">⌖</div>
                <div class="section-title">Вооружение</div>
            </div>
           
            <div class="form-grid">
                <div class="form-field">
                    <div class="field-label">Основное оружие</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field">
                    <div class="field-label">Вторичное оружие</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field">
                    <div class="field-label">Ближний бой</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field">
                    <div class="field-label">Спутник / Сентия</div>
                    <div class="field-space"></div>
                </div>
               
                <div class="form-field full-width">
                    <div class="field-label">Избранные моды</div>
                    <div class="field-space"></div>
                </div>
            </div>
        </div>
       
        <div class="dossier-section">
            <div class="section-header">
                <div class="section-icon">⌛</div>
                <div class="section-title">Происхождение</div>
            </div>
           
            <div class="form-grid">
                <div class="form-field full-width">
                    <div class="field-label">Ключевые события</div>
                    <div class="field-space large"></div>
                </div>
               
                <div class="form-field full-width">
                    <div class="field-label">Психологический профиль</div>
                    <div class="field-space large"></div>
                </div>
               
                <div class="form-field full-width">
                    <div class="field-label">Цель пробуждения</div>
                    <div class="field-space"></div>
                </div>
            </div>
        </div>
       
        <div class="dossier-footer">
            <div class="orokin-seal">
                <div class="seal-symbol">⯍</div>
            </div>
            <div class="dossier-note">
                Данный документ является собственностью Ордин. Любое несанкционированное копирование или распространение карается нейтрализацией.
                Внесите данные разборчивым почерком с использованием энергетических чернил. Обязательно приложите голографическую проекцию вашего варфрейма.
            </div>
        </div>
    </div>

    <script>
        // Анимация пульсации энергии
        const voidEffect = document.getElementById('voidEffect');
        document.addEventListener('mousemove', (e) => {
            const x = e.clientX / window.innerWidth * 100;
            const y = e.clientY / window.innerHeight * 100;
            voidEffect.style.setProperty('--x', `${x}%`);
            voidEffect.style.setProperty('--y', `${y}%`);
        });
       
        // Плавное появление элементов
        document.addEventListener('DOMContentLoaded', () => {
            const sections = document.querySelectorAll('.dossier-section');
            sections.forEach((section, index) => {
                setTimeout(() => {
                    section.style.opacity = 1;
                    section.style.transform = 'translateY(0)';
                }, 300 * index);
            });
        });
    </script>
</body>
</html>[/html]

0

8

[html]<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Карточка Тенно - Warframe</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700&family=Exo+2:wght@300;400;600&display=swap');
       
        :root {
            --void-dark: #12121c;
            --void-gray: #1e1e2e;
            --tenno-purple: #6d3bbf;
            --energy-red: #ff3b3b;
            --critical-orange: #ff7b00;
            --tech-blue: #00b4d8;
            --orokin-gold: #c8a951;
        }
       
        body {
            background:
                radial-gradient(circle at center, #0a0a15 0%, var(--void-dark) 100%),
                url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" opacity="0.05"><path d="M20,20 Q40,5 60,20 T100,20 Q115,40 100,60 T100,100 Q80,115 60,100 T20,100 Q5,80 20,60 T20,20Z" fill="none" stroke="%236d3bbf" stroke-width="2"/></svg>');
            font-family: 'Exo 2', sans-serif;
            color: #e0e0e0;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            margin: 0;
            padding: 20px;
            overflow-x: hidden;
        }
       
        .tenno-card {
            width: 900px;
            display: grid;
            grid-template-columns: 1fr 1.2fr;
            gap: 20px;
            background: var(--void-gray);
            border: 1px solid rgba(200, 169, 81, 0.3);
            box-shadow:
                0 0 40px rgba(109, 59, 191, 0.3),
                inset 0 0 30px rgba(0, 0, 0, 0.7);
            position: relative;
            overflow: hidden;
        }
       
        /* Общие стили для обеих колонок */
        .card-section {
            padding: 25px;
            position: relative;
            z-index: 2;
        }
       
        .section-header {
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            padding-bottom: 10px;
            border-bottom: 1px solid rgba(200, 169, 81, 0.4);
        }
       
        .section-icon {
            width: 36px;
            height: 36px;
            background: rgba(109, 59, 191, 0.2);
            border: 1px solid var(--tenno-purple);
            display: flex;
            justify-content: center;
            align-items: center;
            margin-right: 15px;
            font-size: 1.2rem;
            color: var(--energy-red);
        }
       
        .section-title {
            font-family: 'Orbitron', sans-serif;
            font-size: 1.3rem;
            color: var(--tech-blue);
            text-transform: uppercase;
            letter-spacing: 2px;
        }
       
        /* Левая колонка - Способности и артефакты */
        .abilities-section {
            background: rgba(30, 10, 20, 0.6);
            border-right: 2px solid var(--energy-red);
        }
       
        .character-profile {
            display: flex;
            margin-bottom: 25px;
            gap: 20px;
        }
       
        .character-photo {
            width: 150px;
            height: 180px;
            background: linear-gradient(135deg, rgba(30, 30, 46, 0.8), rgba(109, 59, 191, 0.3));
            border: 1px solid var(--orokin-gold);
            position: relative;
            overflow: hidden;
        }
       
        .character-photo::before {
            content: "ФОТО ВАРФРЕЙМА";
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            color: rgba(255, 255, 255, 0.2);
            font-family: 'Orbitron', sans-serif;
            font-size: 0.8rem;
            text-align: center;
            width: 100%;
        }
       
        .appearance-info {
            flex: 1;
        }
       
        .appearance-title {
            font-family: 'Orbitron', sans-serif;
            color: var(--orokin-gold);
            font-size: 1rem;
            margin-bottom: 8px;
            text-transform: uppercase;
        }
       
        .appearance-description {
            font-size: 0.9rem;
            line-height: 1.5;
            color: #ccc;
        }
       
        .abilities-list {
            margin-bottom: 25px;
        }
       
        .ability-item {
            display: flex;
            margin-bottom: 15px;
            padding: 12px;
            background: rgba(20, 10, 15, 0.5);
            border-left: 3px solid var(--energy-red);
            transition: all 0.3s ease;
        }
       
        .ability-item:hover {
            background: rgba(40, 15, 25, 0.7);
            border-left-width: 5px;
            transform: translateX(5px);
        }
       
        .ability-icon {
            width: 40px;
            height: 40px;
            background: rgba(255, 59, 59, 0.1);
            border: 1px solid var(--energy-red);
            display: flex;
            justify-content: center;
            align-items: center;
            margin-right: 15px;
            font-size: 1.2rem;
            color: var(--energy-red);
        }
       
        .ability-info {
            flex: 1;
        }
       
        .ability-name {
            font-family: 'Orbitron', sans-serif;
            color: var(--energy-red);
            margin-bottom: 5px;
            font-size: 1.1rem;
        }
       
        .ability-desc {
            font-size: 0.85rem;
            color: #aaa;
            line-height: 1.4;
        }
       
        .artifacts-grid {
            display: grid;
            grid-template-columns: repeat(2, 1fr);
            gap: 15px;
        }
       
        .artifact-card {
            background: rgba(30, 20, 30, 0.6);
            border: 1px solid var(--tenno-purple);
            padding: 15px;
            position: relative;
            overflow: hidden;
        }
       
        .artifact-card::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 3px;
            background: linear-gradient(to right, var(--tenno-purple), var(--energy-red));
        }
       
        .artifact-name {
            font-family: 'Orbitron', sans-serif;
            color: var(--orokin-gold);
            margin-bottom: 8px;
            font-size: 1rem;
        }
       
        .artifact-desc {
            font-size: 0.8rem;
            color: #bbb;
            line-height: 1.4;
        }
       
        /* Правая колонка - Инвентарь */
        .inventory-section {
            background: rgba(15, 15, 30, 0.6);
        }
       
        .inventory-category {
            margin-bottom: 25px;
        }
       
        .category-header {
            display: flex;
            align-items: center;
            margin-bottom: 15px;
        }
       
        .category-icon {
            width: 30px;
            height: 30px;
            background: rgba(0, 180, 216, 0.1);
            border: 1px solid var(--tech-blue);
            display: flex;
            justify-content: center;
            align-items: center;
            margin-right: 12px;
            font-size: 1rem;
            color: var(--tech-blue);
        }
       
        .category-title {
            font-family: 'Orbitron', sans-serif;
            color: var(--critical-orange);
            font-size: 1.1rem;
            text-transform: uppercase;
        }
       
        .inventory-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
            gap: 12px;
        }
       
        .inventory-item {
            background: rgba(25, 25, 40, 0.7);
            border: 1px solid rgba(200, 169, 81, 0.2);
            padding: 12px;
            text-align: center;
            position: relative;
            overflow: hidden;
            transition: all 0.2s ease;
        }
       
        .inventory-item:hover {
            transform: translateY(-3px);
            border-color: var(--critical-orange);
            box-shadow: 0 0 10px rgba(255, 123, 0, 0.3);
        }
       
        .item-icon {
            width: 50px;
            height: 50px;
            background: rgba(109, 59, 191, 0.1);
            border: 1px solid var(--tenno-purple);
            margin: 0 auto 8px;
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 1.5rem;
            color: var(--tech-blue);
        }
       
        .item-name {
            font-family: 'Orbitron', sans-serif;
            font-size: 0.8rem;
            color: white;
            margin-bottom: 5px;
        }
       
        .item-stats {
            font-size: 0.75rem;
            color: #aaa;
        }
       
        .rarity-indicator {
            position: absolute;
            top: 0;
            right: 0;
            width: 8px;
            height: 100%;
            background: var(--energy-red);
        }
       
        .legendary .rarity-indicator { background: #ffd700; }
        .rare .rarity-indicator { background: #9b59b6; }
        .uncommon .rarity-indicator { background: #3498db; }
       
        /* Декоративные элементы */
        .card-decoration {
            position: absolute;
            z-index: 1;
            pointer-events: none;
        }
       
        .decoration-1 {
            top: -50px;
            right: -50px;
            width: 200px;
            height: 200px;
            border: 2px solid var(--energy-red);
            border-radius: 50%;
            opacity: 0.1;
        }
       
        .decoration-2 {
            bottom: 20px;
            left: 50%;
            transform: translateX(-50%);
            width: 80%;
            height: 1px;
            background: linear-gradient(to right, transparent, var(--tenno-purple), transparent);
            box-shadow: 0 0 15px var(--tenno-purple);
            opacity: 0.3;
        }
       
        .decoration-3 {
            top: 30%;
            left: -30px;
            width: 100px;
            height: 100px;
            background: linear-gradient(45deg, transparent 49.5%, rgba(255, 59, 59, 0.1) 50%, transparent 50.5%);
            background-size: 20px 20px;
            transform: rotate(25deg);
            opacity: 0.2;
        }
       
        .void-pulse {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: radial-gradient(circle at var(--x) var(--y), rgba(255, 59, 59, 0.05) 0%, transparent 15%);
            pointer-events: none;
            z-index: 1;
        }
       
        .card-footer {
            grid-column: span 2;
            background: rgba(10, 10, 20, 0.8);
            padding: 15px;
            text-align: center;
            border-top: 1px solid var(--orokin-gold);
            font-family: 'Orbitron', sans-serif;
            font-size: 0.8rem;
            color: var(--critical-orange);
            letter-spacing: 1px;
        }
    </style>
</head>
<body>
    <div class="tenno-card">
        <div class="void-pulse" id="pulseEffect"></div>
       
        <div class="card-decoration decoration-1"></div>
        <div class="card-decoration decoration-2"></div>
        <div class="card-decoration decoration-3"></div>
       
        <!-- Левая колонка: Способности и Артефакты -->
        <div class="card-section abilities-section">
            <div class="section-header">
                <div class="section-icon">⚡</div>
                <div class="section-title">БОЕВОЙ ПРОФИЛЬ</div>
            </div>
           
            <div class="character-profile">
                <div class="character-photo"></div>
                <div class="appearance-info">
                    <div class="appearance-title">ЭКСКАЛИБУР УМБРА</div>
                    <div class="appearance-description">
                        Модифицированная версия с усиленным бронированием и теневой энергетикой.
                        Черно-красная схема с золотыми акцентами. Повреждения на шлеме свидетельствуют о многочисленных битвах.
                    </div>
                </div>
            </div>
           
            <div class="abilities-list">
                <div class="ability-item">
                    <div class="ability-icon">1</div>
                    <div class="ability-info">
                        <div class="ability-name">ПРОВАЛ СЛАБОСТИ</div>
                        <div class="ability-desc">Обнажает слабые места противников в радиусе 15м. Критические удары по отмеченным целям наносят дополнительный урон.</div>
                    </div>
                </div>
               
                <div class="ability-item">
                    <div class="ability-icon">2</div>
                    <div class="ability-info">
                        <div class="ability-name">ИСКАЖАЮЩИЙ ЩИТ</div>
                        <div class="ability-desc">Создает защитное поле, отражающее входящие атаки и усиливающее исходящие снаряды.</div>
                    </div>
                </div>
               
                <div class="ability-item">
                    <div class="ability-icon">3</div>
                    <div class="ability-info">
                        <div class="ability-name">РАДИАЛЬНАЯ ВОЛНА</div>
                        <div class="ability-desc">Испускает волну чистой энергии, наносящей 800 урона и оглушающей противников на 4 сек.</div>
                    </div>
                </div>
               
                <div class="ability-item">
                    <div class="ability-icon">4</div>
                    <div class="ability-info">
                        <div class="ability-name">КЛИНКИ ИСКАЖЕНИЯ</div>
                        <div class="ability-desc">Призывает 4 энергетических меча, автономно атакующих врагов в радиусе 20м с шансом критического удара 35%.</div>
                    </div>
                </div>
            </div>
           
            <div class="section-header">
                <div class="section-icon">⌖</div>
                <div class="section-title">ДРЕВНИЕ АРТЕФАКТЫ</div>
            </div>
           
            <div class="artifacts-grid">
                <div class="artifact-card">
                    <div class="artifact-name">СЕРДЦЕ НУЛИФИКАТОРА</div>
                    <div class="artifact-desc">Поглощает 40% входящего урона и преобразует его в энергию. Активируется при здоровье ниже 25%.</div>
                </div>
               
                <div class="artifact-card">
                    <div class="artifact-name">КОРАЛЛОВЫЙ КЛЮЧ</div>
                    <div class="artifact-desc">Открывает порталы в скрытые измерения Орокин. Позволяет находить реликвии эпохи Расцвета.</div>
                </div>
               
                <div class="artifact-card">
                    <div class="artifact-name">ОСКОЛОК ВОЙНЫ</div>
                    <div class="artifact-desc">Увеличивает урон оружия на 60% против Сентиентов. Накладывает эффект коррозии при каждом попадании.</div>
                </div>
               
                <div class="artifact-card">
                    <div class="artifact-name">ЯДРО БЕЗДНЫ</div>
                    <div class="artifact-desc">Стабилизирует варп-поле, уменьшая стоимость способностей на 30% в зоне действия 15м.</div>
                </div>
            </div>
        </div>
       
        <!-- Правая колонка: Инвентарь -->
        <div class="card-section inventory-section">
            <div class="section-header">
                <div class="section-icon">⛋</div>
                <div class="section-title">АРСЕНАЛ И РЕСУРСЫ</div>
            </div>
           
            <div class="inventory-category">
                <div class="category-header">
                    <div class="category-icon">🔫</div>
                    <div class="category-title">ОСНОВНОЕ ОРУЖИЕ</div>
                </div>
                <div class="inventory-grid">
                    <div class="inventory-item legendary">
                        <div class="item-icon">Ƒ</div>
                        <div class="item-name">ФулмиНАТОР</div>
                        <div class="item-stats">Урон: 350 | Крит: 32%</div>
                        <div class="rarity-indicator"></div>
                    </div>
                   
                    <div class="inventory-item rare">
                        <div class="item-icon">Ʃ</div>
                        <div class="item-name">СиМУЛОР</div>
                        <div class="item-stats">Урон: 280 | Скорость: 1.2</div>
                        <div class="rarity-indicator"></div>
                    </div>
                </div>
            </div>
           
            <div class="inventory-category">
                <div class="category-header">
                    <div class="category-icon">🔫</div>
                    <div class="category-title">ВТОРИЧНОЕ ОРУЖИЕ</div>
                </div>
                <div class="inventory-grid">
                    <div class="inventory-item rare">
                        <div class="item-icon">Ƨ</div>
                        <div class="item-name">АТОМОС</div>
                        <div class="item-stats">Урон: 420 | Радиус: 8м</div>
                        <div class="rarity-indicator"></div>
                    </div>
                   
                    <div class="inventory-item uncommon">
                        <div class="item-icon">Ɣ</div>
                        <div class="item-name">КСАКУС</div>
                        <div class="item-stats">Урон: 180 | Крит: 25%</div>
                        <div class="rarity-indicator"></div>
                    </div>
                </div>
            </div>
           
            <div class="inventory-category">
                <div class="category-header">
                    <div class="category-icon">⚔</div>
                    <div class="category-title">БЛИЖНИЙ БОЙ</div>
                </div>
                <div class="inventory-grid">
                    <div class="inventory-item legendary">
                        <div class="item-icon">Ɗ</div>
                        <div class="item-name">СКИАДЖАТИ</div>
                        <div class="item-stats">Урон: 450 | Атака: 1.15</div>
                        <div class="rarity-indicator"></div>
                    </div>
                   
                    <div class="inventory-item rare">
                        <div class="item-icon">Ɓ</div>
                        <div class="item-name">ГРАМ ПРАЙМ</div>
                        <div class="item-stats">Урон: 380 | Радиус: 3м</div>
                        <div class="rarity-indicator"></div>
                    </div>
                </div>
            </div>
           
            <div class="inventory-category">
                <div class="category-header">
                    <div class="category-icon">🛡</div>
                    <div class="category-title">СПУТНИКИ</div>
                </div>
                <div class="inventory-grid">
                    <div class="inventory-item rare">
                        <div class="item-icon">Ɖ</div>
                        <div class="item-name">ХЕЛЬМИНТ</div>
                        <div class="item-stats">Лечение + Урон</div>
                        <div class="rarity-indicator"></div>
                    </div>
                   
                    <div class="inventory-item uncommon">
                        <div class="item-icon">Ɲ</div>
                        <div class="item-name">НАУТИЛУС</div>
                        <div class="item-stats">Сбор ресурсов</div>
                        <div class="rarity-indicator"></div>
                    </div>
                </div>
            </div>
           
            <div class="inventory-category">
                <div class="category-header">
                    <div class="category-icon">📦</div>
                    <div class="category-title">РЕСУРСЫ</div>
                </div>
                <div class="inventory-grid">
                    <div class="inventory-item">
                        <div class="item-icon">⦻</div>
                        <div class="item-name">НЕЙРОДЫ</div>
                        <div class="item-stats">x 1245</div>
                    </div>
                   
                    <div class="inventory-item">
                        <div class="item-icon">⦻</div>
                        <div class="item-name">ОРОКИН ЯЧЕЙКА</div>
                        <div class="item-stats">x 12</div>
                    </div>
                   
                    <div class="inventory-item">
                        <div class="item-icon">⦻</div>
                        <div class="item-name">АРГОН КРИСТАЛЛ</div>
                        <div class="item-stats">x 8</div>
                    </div>
                   
                    <div class="inventory-item">
                        <div class="item-icon">⦻</div>
                        <div class="item-name">КУБОИДЫ</div>
                        <div class="item-stats">x 5600</div>
                    </div>
                </div>
            </div>
        </div>
       
        <div class="card-footer">
            СТАТУС: АКТИВЕН | ОПАСНОСТЬ: УРОВЕНЬ 5 | ПОСЛЕДНЯЯ АКТИВНОСТЬ: 48 ЧАСОВ НАЗАД
        </div>
    </div>

    <script>
        // Анимация пульсации энергии
        const pulseEffect = document.getElementById('pulseEffect');
        document.addEventListener('mousemove', (e) => {
            const x = e.clientX / window.innerWidth * 100;
            const y = e.clientY / window.innerHeight * 100;
            pulseEffect.style.setProperty('--x', `${x}%`);
            pulseEffect.style.setProperty('--y', `${y}%`);
        });
       
        // Анимация при наведении на способности
        const abilities = document.querySelectorAll('.ability-item');
        abilities.forEach(ability => {
            ability.addEventListener('mouseenter', function() {
                const icon = this.querySelector('.ability-icon');
                icon.style.boxShadow = '0 0 15px var(--energy-red)';
                icon.style.transform = 'scale(1.1)';
            });
           
            ability.addEventListener('mouseleave', function() {
                const icon = this.querySelector('.ability-icon');
                icon.style.boxShadow = 'none';
                icon.style.transform = 'scale(1)';
            });
        });
    </script>
</body>
</html>[/html]

0

9

[html]<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Neural Nexus - Карта отношений</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700&family=Exo+2:wght@300;400;600&display=swap');
       
        :root {
            --void-dark: #12121c;
            --void-gray: #1e1e2e;
            --tenno-purple: #6d3bbf;
            --energy-red: #ff3b3b;
            --alliance-blue: #00b4d8;
            --rival-orange: #ff7b00;
            --neutral-gold: #c8a951;
        }
       
        body {
            background:
                radial-gradient(circle at center, #0a0a15 0%, var(--void-dark) 100%),
                url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" opacity="0.03"><path d="M20,20 Q40,5 60,20 T100,20 Q115,40 100,60 T100,100 Q80,115 60,100 T20,100 Q5,80 20,60 T20,20Z" fill="none" stroke="%236d3bbf" stroke-width="2"/></svg>');
            font-family: 'Exo 2', sans-serif;
            color: #e0e0e0;
            margin: 0;
            padding: 20px;
            overflow: hidden;
            min-height: 100vh;
        }
       
        .nexus-container {
            max-width: 1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 300px 1fr;
            gap: 20px;
            height: 85vh;
        }
       
        /* Панель управления */
        .control-panel {
            background: rgba(30, 30, 46, 0.8);
            border: 1px solid rgba(200, 169, 81, 0.3);
            padding: 20px;
            border-radius: 8px;
            box-shadow: 0 0 20px rgba(109, 59, 191, 0.3);
            overflow-y: auto;
        }
       
        .panel-title {
            font-family: 'Orbitron', sans-serif;
            color: var(--alliance-blue);
            text-align: center;
            font-size: 1.4rem;
            margin-bottom: 25px;
            text-transform: uppercase;
            letter-spacing: 2px;
            position: relative;
        }
       
        .panel-title::after {
            content: "";
            position: absolute;
            bottom: -10px;
            left: 25%;
            width: 50%;
            height: 2px;
            background: linear-gradient(to right, transparent, var(--alliance-blue), transparent);
        }
       
        .filter-section {
            margin-bottom: 25px;
            padding-bottom: 15px;
            border-bottom: 1px dashed rgba(200, 169, 81, 0.3);
        }
       
        .filter-title {
            font-family: 'Orbitron', sans-serif;
            font-size: 1rem;
            color: var(--neutral-gold);
            margin-bottom: 12px;
            display: flex;
            align-items: center;
        }
       
        .filter-title::before {
            content: "◆";
            margin-right: 8px;
            color: var(--tenno-purple);
        }
       
        .filter-tags {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }
       
        .tag {
            padding: 6px 12px;
            background: rgba(109, 59, 191, 0.2);
            border: 1px solid var(--tenno-purple);
            border-radius: 4px;
            font-size: 0.85rem;
            cursor: pointer;
            transition: all 0.3s ease;
        }
       
        .tag:hover {
            background: rgba(109, 59, 191, 0.4);
            transform: translateY(-2px);
        }
       
        .tag.active {
            background: var(--tenno-purple);
            box-shadow: 0 0 10px var(--tenno-purple);
        }
       
        .relation-types {
            display: grid;
            grid-template-columns: 1fr;
            gap: 10px;
        }
       
        .relation-type {
            display: flex;
            align-items: center;
            padding: 10px;
            background: rgba(20, 20, 30, 0.6);
            border-radius: 4px;
            border-left: 4px solid;
            transition: all 0.3s ease;
            cursor: pointer;
        }
       
        .relation-type:hover {
            background: rgba(30, 30, 46, 0.8);
        }
       
        .relation-type.alliance { border-color: var(--alliance-blue); }
        .relation-type.rivalry { border-color: var(--rival-orange); }
        .relation-type.neutral { border-color: var(--neutral-gold); }
        .relation-type.complex { border-color: var(--tenno-purple); }
        .relation-type.romance { border-color: #ff4d94; }
       
        .relation-icon {
            width: 30px;
            height: 30px;
            display: flex;
            justify-content: center;
            align-items: center;
            margin-right: 12px;
            font-size: 1.2rem;
        }
       
        /* Карта отношений */
        .nexus-map {
            background: rgba(10, 10, 20, 0.7);
            border: 1px solid rgba(200, 169, 81, 0.2);
            border-radius: 8px;
            position: relative;
            overflow: hidden;
            box-shadow:
                inset 0 0 50px rgba(0, 0, 0, 0.5),
                0 0 30px rgba(109, 59, 191, 0.3);
        }
       
        .map-grid {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-image:
                linear-gradient(rgba(109, 59, 191, 0.05) 1px, transparent 1px),
                linear-gradient(90deg, rgba(109, 59, 191, 0.05) 1px, transparent 1px);
            background-size: 40px 40px;
        }
       
        .character-node {
            position: absolute;
            width: 120px;
            height: 140px;
            display: flex;
            flex-direction: column;
            align-items: center;
            z-index: 10;
            transition: all 0.4s ease;
            cursor: pointer;
        }
       
        .node-avatar {
            width: 80px;
            height: 80px;
            border-radius: 50%;
            background: linear-gradient(135deg, #2c1b47, #1e1e2e);
            border: 2px solid var(--neutral-gold);
            position: relative;
            overflow: hidden;
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 2rem;
            margin-bottom: 10px;
            box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
            transition: all 0.3s ease;
        }
       
        .character-node:hover .node-avatar {
            transform: scale(1.1);
            box-shadow: 0 0 20px var(--tenno-purple);
            border-color: var(--tenno-purple);
        }
       
        .node-name {
            font-family: 'Orbitron', sans-serif;
            font-size: 0.9rem;
            text-align: center;
            text-shadow: 0 0 5px black;
            padding: 3px 8px;
            background: rgba(0, 0, 0, 0.6);
            border-radius: 4px;
            max-width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
       
        .relation-line {
            position: absolute;
            height: 3px;
            transform-origin: 0 0;
            z-index: 5;
            transition: all 0.4s ease;
        }
       
        .relation-line.alliance {
            background: linear-gradient(to right, var(--alliance-blue), transparent);
            box-shadow: 0 0 10px var(--alliance-blue);
        }
       
        .relation-line.rivalry {
            background: linear-gradient(to right, var(--rival-orange), transparent);
            box-shadow: 0 0 10px var(--rival-orange);
        }
       
        .relation-line.neutral {
            background: linear-gradient(to right, var(--neutral-gold), transparent);
            box-shadow: 0 0 10px var(--neutral-gold);
        }
       
        .relation-line.complex {
            background: linear-gradient(to right, var(--tenno-purple), transparent);
            box-shadow: 0 0 10px var(--tenno-purple);
        }
       
        .relation-line.romance {
            background: linear-gradient(to right, #ff4d94, transparent);
            box-shadow: 0 0 10px #ff4d94;
        }
       
        .relation-label {
            position: absolute;
            background: rgba(30, 30, 46, 0.9);
            border: 1px solid;
            border-radius: 15px;
            padding: 4px 12px;
            font-size: 0.8rem;
            transform: translate(-50%, -50%);
            white-space: nowrap;
            z-index: 6;
            transition: all 0.3s ease;
            cursor: pointer;
        }
       
        .relation-label:hover {
            transform: translate(-50%, -50%) scale(1.1);
            box-shadow: 0 0 15px currentColor;
        }
       
        .relation-label.alliance { border-color: var(--alliance-blue); color: var(--alliance-blue); }
        .relation-label.rivalry { border-color: var(--rival-orange); color: var(--rival-orange); }
        .relation-label.neutral { border-color: var(--neutral-gold); color: var(--neutral-gold); }
        .relation-label.complex { border-color: var(--tenno-purple); color: var(--tenno-purple); }
        .relation-label.romance { border-color: #ff4d94; color: #ff4d94; }
       
        .nexus-center {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            width: 100px;
            height: 100px;
            background: rgba(109, 59, 191, 0.1);
            border: 2px solid var(--tenno-purple);
            border-radius: 50%;
            display: flex;
            justify-content: center;
            align-items: center;
            z-index: 2;
            box-shadow:
                0 0 40px rgba(109, 59, 191, 0.3),
                inset 0 0 20px rgba(109, 59, 191, 0.2);
            animation: pulse 3s infinite;
        }
       
        .nexus-center::before {
            content: "NEURAL NEXUS";
            position: absolute;
            font-family: 'Orbitron', sans-serif;
            color: var(--alliance-blue);
            font-size: 0.7rem;
            text-align: center;
            width: 140%;
            text-transform: uppercase;
            letter-spacing: 2px;
        }
       
        @keyframes pulse {
            0% { box-shadow: 0 0 40px rgba(109, 59, 191, 0.3), inset 0 0 20px rgba(109, 59, 191, 0.2); }
            50% { box-shadow: 0 0 60px rgba(109, 59, 191, 0.5), inset 0 0 30px rgba(109, 59, 191, 0.3); }
            100% { box-shadow: 0 0 40px rgba(109, 59, 191, 0.3), inset 0 0 20px rgba(109, 59, 191, 0.2); }
        }
       
        .details-panel {
            position: absolute;
            bottom: 20px;
            left: 20px;
            right: 20px;
            background: rgba(20, 20, 30, 0.9);
            border: 1px solid var(--neutral-gold);
            border-radius: 8px;
            padding: 15px;
            z-index: 20;
            transform: translateY(120%);
            transition: transform 0.4s ease;
            box-shadow: 0 0 20px rgba(0, 0, 0, 0.7);
        }
       
        .details-panel.active {
            transform: translateY(0);
        }
       
        .details-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 15px;
            padding-bottom: 10px;
            border-bottom: 1px solid rgba(200, 169, 81, 0.3);
        }
       
        .details-title {
            font-family: 'Orbitron', sans-serif;
            color: var(--alliance-blue);
            font-size: 1.2rem;
        }
       
        .close-details {
            background: none;
            border: none;
            color: var(--rival-orange);
            font-size: 1.5rem;
            cursor: pointer;
        }
       
        .relation-history {
            max-height: 200px;
            overflow-y: auto;
            padding-right: 10px;
        }
       
        .history-item {
            margin-bottom: 10px;
            padding-bottom: 10px;
            border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
        }
       
        .history-event {
            font-size: 0.9rem;
            margin-bottom: 5px;
            color: #ccc;
        }
       
        .history-date {
            font-size: 0.8rem;
            color: var(--neutral-gold);
            text-align: right;
        }
       
        /* Анимации */
        @keyframes float {
            0% { transform: translateY(0); }
            50% { transform: translateY(-10px); }
            100% { transform: translateY(0); }
        }
       
        .character-node {
            animation: float 6s infinite ease-in-out;
        }
       
        .character-node:nth-child(2n) {
            animation-delay: 1s;
        }
       
        .character-node:nth-child(3n) {
            animation-delay: 2s;
        }
    </style>
</head>
<body>
    <div class="nexus-container">
        <!-- Панель управления -->
        <div class="control-panel">
            <div class="panel-title">НЕЙРОННЫЙ ИНТЕРФЕЙС</div>
           
            <div class="filter-section">
                <div class="filter-title">ФИЛЬТР ОТНОШЕНИЙ</div>
                <div class="filter-tags">
                    <div class="tag active">Все</div>
                    <div class="tag">Союзники</div>
                    <div class="tag">Противники</div>
                    <div class="tag">Нейтральные</div>
                    <div class="tag">Сложные</div>
                    <div class="tag">Романтика</div>
                </div>
            </div>
           
            <div class="filter-section">
                <div class="filter-title">ТИПЫ СВЯЗЕЙ</div>
                <div class="relation-types">
                    <div class="relation-type alliance">
                        <div class="relation-icon">🤝</div>
                        <div>Союзники / Альянс</div>
                    </div>
                    <div class="relation-type rivalry">
                        <div class="relation-icon">⚔️</div>
                        <div>Конфликт / Соперничество</div>
                    </div>
                    <div class="relation-type neutral">
                        <div class="relation-icon">🔄</div>
                        <div>Нейтральные / Деловые</div>
                    </div>
                    <div class="relation-type complex">
                        <div class="relation-icon">🌀</div>
                        <div>Сложные / Неоднозначные</div>
                    </div>
                    <div class="relation-type romance">
                        <div class="relation-icon">💖</div>
                        <div>Романтика / Семейные</div>
                    </div>
                </div>
            </div>
           
            <div class="filter-section">
                <div class="filter-title">ФРАКЦИИ</div>
                <div class="filter-tags">
                    <div class="tag active">Все</div>
                    <div class="tag">Тенно Орден</div>
                    <div class="tag">Корпорация DAHL</div>
                    <div class="tag">Банда Психов</div>
                    <div class="tag">Охотники за Головами</div>
                    <div class="tag">Дети Войны</div>
                    <div class="tag">Вольные Наемники</div>
                </div>
            </div>
           
            <div class="filter-section">
                <div class="filter-title">СТАТУС</div>
                <div class="filter-tags">
                    <div class="tag active">Все</div>
                    <div class="tag">Живые</div>
                    <div class="tag">Мертвые</div>
                    <div class="tag">Пропавшие</div>
                    <div class="tag">В изгнании</div>
                </div>
            </div>
        </div>
       
        <!-- Карта отношений -->
        <div class="nexus-map" id="nexusMap">
            <div class="map-grid"></div>
            <div class="nexus-center"></div>
           
            <!-- Примеры персонажей -->
            <div class="character-node" style="top: 20%; left: 30%;" data-id="1">
                <div class="node-avatar">⚔️</div>
                <div class="node-name">КАЙЛ "ШТОРМ" РЕННЕР</div>
            </div>
           
            <div class="character-node" style="top: 40%; left: 70%;" data-id="2">
                <div class="node-avatar">🔫</div>
                <div class="node-name">ДОКТОР ЗАРАЗА</div>
            </div>
           
            <div class="character-node" style="top: 70%; left: 40%;" data-id="3">
                <div class="node-avatar">👁️</div>
                <div class="node-name">СИРИУС "ПРИЗРАК" ВЕЛЕС</div>
            </div>
           
            <div class="character-node" style="top: 30%; left: 50%;" data-id="4">
                <div class="node-avatar">🛡️</div>
                <div class="node-name">ЛИРА ОРОКИН</div>
            </div>
           
            <!-- Примеры связей -->
            <div class="relation-line rivalry" style="width: 300px; top: 100px; left: 200px; transform: rotate(30deg);"></div>
            <div class="relation-label rivalry" style="top: 150px; left: 350px;">Соперничество за ресурсы</div>
           
            <div class="relation-line alliance" style="width: 250px; top: 250px; left: 500px; transform: rotate(-20deg);"></div>
            <div class="relation-label alliance" style="top: 280px; left: 630px;">Совместная миссия на Эриду</div>
           
            <div class="relation-line complex" style="width: 200px; top: 400px; left: 400px; transform: rotate(45deg);"></div>
            <div class="relation-label complex" style="top: 450px; left: 500px;">Бывшие напарники</div>
           
            <div class="relation-line romance" style="width: 280px; top: 180px; left: 400px; transform: rotate(-10deg);"></div>
            <div class="relation-label romance" style="top: 200px; left: 540px;">Романтическое напряжение</div>
           
            <!-- Панель деталей -->
            <div class="details-panel" id="detailsPanel">
                <div class="details-header">
                    <div class="details-title">ОТНОШЕНИЯ: КАЙЛ "ШТОРМ" РЕННЕР ↔ ДОКТОР ЗАРАЗА</div>
                    <button class="close-details">&times;</button>
                </div>
                <div class="relation-history">
                    <div class="history-item">
                        <div class="history-event">Доктор Зараза похитила экспериментальное оружие Шторма во время рейда на лабораторию DAHL</div>
                        <div class="history-date">23.08.3025</div>
                    </div>
                    <div class="history-item">
                        <div class="history-event">Шторм уничтожил лабораторию Заразы на Пандоре в ответной атаке</div>
                        <div class="history-date">15.09.3025</div>
                    </div>
                    <div class="history-item">
                        <div class="history-event">Временное перемирие для борьбы с общим врагом - Корпорацией Маливан</div>
                        <div class="history-date">03.11.3025</div>
                    </div>
                    <div class="history-item">
                        <div class="history-event">Зараз спасла Шторма после падения с утеса Эдем-6, несмотря на вражду</div>
                        <div class="history-date">19.12.3025</div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script>
        // Инициализация карты
        const nexusMap = document.getElementById('nexusMap');
        const detailsPanel = document.getElementById('detailsPanel');
        const closeButton = document.querySelector('.close-details');
       
        // Анимация линий отношений
        const relationLines = document.querySelectorAll('.relation-line');
        relationLines.forEach(line => {
            setInterval(() => {
                const intensity = 0.2 + Math.random() * 0.3;
                line.style.opacity = intensity;
            }, 1000);
        });
       
        // Взаимодействие с персонажами
        const characterNodes = document.querySelectorAll('.character-node');
        characterNodes.forEach(node => {
            node.addEventListener('click', function() {
                // Сброс выделения
                characterNodes.forEach(n => n.classList.remove('selected'));
               
                // Выделение текущего
                this.classList.add('selected');
               
                // Показ деталей (в реальной реализации здесь бы загружались данные)
                detailsPanel.classList.add('active');
               
                // Пример динамического изменения заголовка
                const characterName = this.querySelector('.node-name').textContent;
                document.querySelector('.details-title').textContent =
                    `ОТНОШЕНИЯ: ${characterName} ↔ ДОКТОР ЗАРАЗА`;
            });
        });
       
        // Закрытие панели деталей
        closeButton.addEventListener('click', function() {
            detailsPanel.classList.remove('active');
            characterNodes.forEach(n => n.classList.remove('selected'));
        });
       
        // Перетаскивание персонажей (базовый функционал)
        let draggedNode = null;
       
        characterNodes.forEach(node => {
            node.setAttribute('draggable', true);
           
            node.addEventListener('dragstart', function(e) {
                draggedNode = this;
                setTimeout(() => this.style.opacity = "0.7", 0);
            });
           
            node.addEventListener('dragend', function() {
                this.style.opacity = "1";
                draggedNode = null;
            });
        });
       
        nexusMap.addEventListener('dragover', function(e) {
            e.preventDefault();
        });
       
        nexusMap.addEventListener('drop', function(e) {
            e.preventDefault();
            if (!draggedNode) return;
           
            const rect = nexusMap.getBoundingClientRect();
            const x = e.clientX - rect.left - 60;
            const y = e.clientY - rect.top - 70;
           
            draggedNode.style.left = `${x}px`;
            draggedNode.style.top = `${y}px`;
        });
       
        // Фильтрация
        const tags = document.querySelectorAll('.tag');
        tags.forEach(tag => {
            tag.addEventListener('click', function() {
                tags.forEach(t => t.classList.remove('active'));
                this.classList.add('active');
               
                // В реальной реализации здесь бы обновлялась карта
                // по выбранным фильтрам
            });
        });
    </script>
</body>
</html>[/html]

0

10

[html]<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Система Отношений - Warframe Style</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700&family=Exo+2:wght@300;400;600&display=swap');
       
        :root {
            --void-dark: #12121c;
            --void-gray: #1e1e2e;
            --tenno-purple: #6d3bbf;
            --energy-red: #ff3b3b;
            --alliance-blue: #00b4d8;
            --rival-orange: #ff7b00;
            --neutral-gold: #c8a951;
        }
       
        body {
            background:
                radial-gradient(circle at center, #0a0a15 0%, var(--void-dark) 100%),
                url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" opacity="0.03"><path d="M20,20 Q40,5 60,20 T100,20 Q115,40 100,60 T100,100 Q80,115 60,100 T20,100 Q5,80 20,60 T20,20Z" fill="none" stroke="%236d3bbf" stroke-width="2"/></svg>');
            font-family: 'Exo 2', sans-serif;
            color: #e0e0e0;
            margin: 0;
            padding: 20px;
            min-height: 100vh;
        }
       
        .relations-system {
            max-width: 1200px;
            margin: 0 auto;
            display: grid;
            grid-template-columns: 350px 1fr;
            gap: 20px;
            height: 85vh;
        }
       
        /* Блок персонажей */
        .characters-panel {
            background: rgba(30, 30, 46, 0.8);
            border: 1px solid rgba(200, 169, 81, 0.3);
            border-radius: 8px;
            box-shadow: 0 0 20px rgba(109, 59, 191, 0.3);
            overflow-y: auto;
            padding: 15px;
        }
       
        .panel-title {
            font-family: 'Orbitron', sans-serif;
            color: var(--alliance-blue);
            text-align: center;
            font-size: 1.4rem;
            margin-bottom: 25px;
            text-transform: uppercase;
            letter-spacing: 2px;
            position: relative;
            padding-bottom: 15px;
        }
       
        .panel-title::after {
            content: "";
            position: absolute;
            bottom: 0;
            left: 25%;
            width: 50%;
            height: 2px;
            background: linear-gradient(to right, transparent, var(--alliance-blue), transparent);
        }
       
        .character-list {
            display: flex;
            flex-direction: column;
            gap: 15px;
        }
       
        .character-card {
            background: rgba(20, 20, 30, 0.6);
            border: 1px solid rgba(109, 59, 191, 0.3);
            border-radius: 6px;
            padding: 15px;
            display: flex;
            gap: 15px;
            cursor: pointer;
            transition: all 0.3s ease;
            position: relative;
        }
       
        .character-card:hover {
            border-color: var(--neutral-gold);
            transform: translateX(5px);
        }
       
        .character-card.selected {
            border-color: var(--alliance-blue);
            box-shadow: 0 0 15px rgba(0, 180, 216, 0.4);
            background: rgba(10, 30, 40, 0.7);
        }
       
        .character-card.double-selected {
            border-color: var(--rival-orange);
            box-shadow: 0 0 15px rgba(255, 123, 0, 0.4);
        }
       
        .character-avatar {
            width: 70px;
            height: 70px;
            border-radius: 50%;
            background: linear-gradient(135deg, #2c1b47, #1e1e2e);
            border: 2px solid var(--neutral-gold);
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 1.5rem;
            flex-shrink: 0;
        }
       
        .character-info {
            flex: 1;
        }
       
        .character-name {
            font-family: 'Orbitron', sans-serif;
            font-size: 1.1rem;
            color: white;
            margin-bottom: 5px;
        }
       
        .character-faction {
            font-size: 0.85rem;
            color: var(--neutral-gold);
            margin-bottom: 8px;
            display: flex;
            align-items: center;
        }
       
        .character-faction::before {
            content: "◆";
            margin-right: 5px;
            color: var(--tenno-purple);
        }
       
        .character-status {
            font-size: 0.8rem;
            padding: 3px 8px;
            border-radius: 12px;
            display: inline-block;
        }
       
        .status-alive { background: rgba(0, 180, 216, 0.2); color: var(--alliance-blue); border: 1px solid var(--alliance-blue); }
        .status-dead { background: rgba(255, 59, 59, 0.2); color: var(--energy-red); border: 1px solid var(--energy-red); }
        .status-missing { background: rgba(200, 169, 81, 0.2); color: var(--neutral-gold); border: 1px solid var(--neutral-gold); }
       
        /* Блок отношений */
        .relations-panel {
            background: rgba(30, 30, 46, 0.8);
            border: 1px solid rgba(200, 169, 81, 0.3);
            border-radius: 8px;
            box-shadow: 0 0 20px rgba(109, 59, 191, 0.3);
            padding: 25px;
            display: flex;
            flex-direction: column;
        }
       
        .relations-header {
            margin-bottom: 25px;
            text-align: center;
        }
       
        .relations-title {
            font-family: 'Orbitron', sans-serif;
            font-size: 1.6rem;
            color: var(--rival-orange);
            text-transform: uppercase;
            letter-spacing: 2px;
            margin-bottom: 10px;
        }
       
        .relations-subtitle {
            font-size: 1.1rem;
            color: var(--neutral-gold);
        }
       
        .relations-content {
            flex: 1;
            overflow-y: auto;
            padding: 15px;
            background: rgba(10, 10, 20, 0.5);
            border-radius: 6px;
            border: 1px solid rgba(109, 59, 191, 0.2);
        }
       
        .no-relations {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            height: 100%;
            text-align: center;
            color: #aaa;
            font-size: 1.2rem;
        }
       
        .no-relations-icon {
            font-size: 3rem;
            margin-bottom: 20px;
            color: var(--tenno-purple);
        }
       
        .relations-list {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 20px;
        }
       
        .relation-card {
            background: rgba(20, 20, 30, 0.7);
            border-left: 4px solid;
            padding: 15px;
            border-radius: 4px;
            transition: all 0.3s ease;
        }
       
        .relation-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
        }
       
        .relation-card.alliance { border-color: var(--alliance-blue); }
        .relation-card.rivalry { border-color: var(--rival-orange); }
        .relation-card.neutral { border-color: var(--neutral-gold); }
        .relation-card.complex { border-color: var(--tenno-purple); }
        .relation-card.romance { border-color: #ff4d94; }
       
        .relation-type {
            font-family: 'Orbitron', sans-serif;
            font-size: 0.9rem;
            text-transform: uppercase;
            margin-bottom: 10px;
            display: inline-block;
            padding: 3px 10px;
            border-radius: 12px;
        }
       
        .alliance .relation-type { background: rgba(0, 180, 216, 0.2); color: var(--alliance-blue); }
        .rivalry .relation-type { background: rgba(255, 123, 0, 0.2); color: var(--rival-orange); }
        .neutral .relation-type { background: rgba(200, 169, 81, 0.2); color: var(--neutral-gold); }
        .complex .relation-type { background: rgba(109, 59, 191, 0.2); color: var(--tenno-purple); }
        .romance .relation-type { background: rgba(255, 77, 148, 0.2); color: #ff4d94; }
       
        .relation-parties {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 15px;
        }
       
        .relation-character {
            display: flex;
            align-items: center;
            gap: 10px;
        }
       
        .relation-avatar {
            width: 40px;
            height: 40px;
            border-radius: 50%;
            background: linear-gradient(135deg, #2c1b47, #1e1e2e);
            border: 1px solid var(--neutral-gold);
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 1rem;
        }
       
        .relation-arrow {
            font-size: 1.5rem;
            color: var(--neutral-gold);
            margin: 0 10px;
        }
       
        .relation-description {
            font-size: 0.9rem;
            line-height: 1.5;
            color: #ccc;
            border-top: 1px dashed rgba(255, 255, 255, 0.1);
            padding-top: 10px;
        }
       
        .single-relation {
            background: rgba(20, 20, 30, 0.7);
            border-left: 4px solid var(--tenno-purple);
            padding: 20px;
            border-radius: 4px;
            margin-bottom: 20px;
        }
       
        .single-relation-header {
            display: flex;
            align-items: center;
            margin-bottom: 15px;
            gap: 15px;
        }
       
        .single-relation-avatar {
            width: 60px;
            height: 60px;
            border-radius: 50%;
            background: linear-gradient(135deg, #2c1b47, #1e1e2e);
            border: 2px solid var(--neutral-gold);
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 1.5rem;
        }
       
        .single-relation-info {
            flex: 1;
        }
       
        .single-relation-name {
            font-family: 'Orbitron', sans-serif;
            font-size: 1.3rem;
            color: white;
            margin-bottom: 5px;
        }
       
        .single-relation-faction {
            font-size: 0.9rem;
            color: var(--neutral-gold);
        }
       
        .single-relation-content {
            padding-left: 75px;
        }
       
        /* Анимации */
        @keyframes fadeIn {
            from { opacity: 0; transform: translateY(10px); }
            to { opacity: 1; transform: translateY(0); }
        }
       
        .relation-card {
            animation: fadeIn 0.5s ease forwards;
        }
       
        /* Инструкция */
        .instructions {
            margin-top: 20px;
            padding: 15px;
            background: rgba(109, 59, 191, 0.1);
            border: 1px solid var(--tenno-purple);
            border-radius: 6px;
            font-size: 0.9rem;
            color: #aaa;
        }
       
        .instructions-title {
            color: var(--alliance-blue);
            margin-bottom: 10px;
            font-family: 'Orbitron', sans-serif;
        }
    </style>
</head>
<body>
    <div class="relations-system">
        <!-- Блок персонажей -->
        <div class="characters-panel">
            <div class="panel-title">Архив Персонажей</div>
            <div class="character-list" id="characterList">
                <!-- Персонажи будут добавлены через JS -->
            </div>
        </div>
       
        <!-- Блок отношений -->
        <div class="relations-panel">
            <div class="relations-header">
                <div class="relations-title" id="relationsTitle">Карта Отношений</div>
                <div class="relations-subtitle" id="relationsSubtitle">Выберите одного или двух персонажей</div>
            </div>
           
            <div class="relations-content" id="relationsContent">
                <div class="no-relations">
                    <div class="no-relations-icon">⇄</div>
                    <div>Для просмотра отношений выберите персонажа в левой панели</div>
                    <div style="font-size: 0.9rem; margin-top: 10px; color: var(--neutral-gold);">
                        Выберите одного персонажа, чтобы увидеть все его связи<br>
                        Выберите двух персонажей, чтобы увидеть их взаимные отношения
                    </div>
                </div>
            </div>
           
            <div class="instructions">
                <div class="instructions-title">Как использовать систему:</div>
                <div>1. <strong>Один персонаж</strong> - просмотр всех его отношений</div>
                <div>2. <strong>Два персонажа</strong> - детализация их взаимосвязи</div>
                <div>3. <strong>Сбросить выбор</strong> - клик вне персонажей</div>
            </div>
        </div>
    </div>

    <script>
        // Данные персонажей
        const characters = [
            {
                id: 1,
                name: "КАЙЛ 'ШТОРМ' РЕННЕР",
                avatar: "⚔️",
                faction: "Охотники за Головами",
                status: "alive",
                bio: "Бывший солдат DAHL, эксперт по тактике и выживанию. Носит модифицированный штурмовой костюм."
            },
            {
                id: 2,
                name: "ДОКТОР ЗАРАЗА",
                avatar: "☣️",
                faction: "Вольные Наемники",
                status: "alive",
                bio: "Гениальный и безумный ученый, специалист по биологическому оружию. Имеет множество клонов."
            },
            {
                id: 3,
                name: "СИРИУС 'ПРИЗРАК' ВЕЛЕС",
                avatar: "👁️",
                faction: "Тенно Орден",
                status: "alive",
                bio: "Тайный агент с псионикными способностями. Мастер скрытности и инфильтрации."
            },
            {
                id: 4,
                name: "ЛИРА ОРОКИН",
                avatar: "🛡️",
                faction: "Тенно Орден",
                status: "alive",
                bio: "Потомок древней расы Орокин. Владеет уникальными технологиями и артефактами."
            },
            {
                id: 5,
                name: "БРАККУС ЖЕСТОКИЙ",
                avatar: "💀",
                faction: "Банда Психов",
                status: "dead",
                bio: "Бывший главарь банды Психов. Убит во время рейда на Цитадель Скорпио."
            },
            {
                id: 6,
                name: "НИКС 'ТИШИНА'",
                avatar: "🔇",
                faction: "Корпорация DAHL",
                status: "missing",
                bio: "Элитный наемник-невидимка. Пропал без вести после миссии на Эриду."
            }
        ];

        // Данные отношений
        const relations = [
            { id1: 1, id2: 2, type: "rivalry", description: "Соперничество за ресурсы и контракты. Шторм считает Заразу безответственным безумцем, а Заза презирает 'военную дисциплину' Шторма." },
            { id1: 1, id2: 3, type: "alliance", description: "Временные союзники в борьбе против Корпорации Маливан. Шторм уважает навыки Призрака, но не доверяет его скрытности." },
            { id1: 1, id2: 4, type: "neutral", description: "Деловые отношения. Шторм иногда нанимает Лиру для доступа к орокинским технологиям, но держится на расстоянии." },
            { id1: 2, id2: 4, type: "complex", description: "Заза восхищается технологиями Лиры и пытается их изучить, но Лира считает ее методы варварскими и опасными." },
            { id1: 2, id2: 5, type: "rivalry", description: "Заза и Браккус были заклятыми врагами. Она разработала вирус, который уничтожил половину его банды." },
            { id1: 3, id2: 4, type: "alliance", description: "Члены одного ордена Тенно. Работают вместе на регулярной основе, доверяют друг другу в бою." },
            { id1: 3, id2: 6, type: "rivalry", description: "Заклятые враги с тех пор, как НИКС убил наставника Призрака. Их противостояние длится уже 5 лет." },
            { id1: 4, id2: 6, type: "complex", description: "Лиру наняли для поиска НИКСА, но во время последней встречи она спасла ему жизнь по неизвестным причинам." }
        ];

        // Инициализация системы
        const characterList = document.getElementById('characterList');
        const relationsTitle = document.getElementById('relationsTitle');
        const relationsSubtitle = document.getElementById('relationsSubtitle');
        const relationsContent = document.getElementById('relationsContent');
       
        let selectedCharacters = [];
       
        // Отрисовка списка персонажей
        function renderCharacters() {
            characterList.innerHTML = '';
           
            characters.forEach(character => {
                const isSelected = selectedCharacters.includes(character.id);
                const isDoubleSelected = selectedCharacters.length === 2 && selectedCharacters.includes(character.id);
               
                const card = document.createElement('div');
                card.className = `character-card ${isSelected ? 'selected' : ''} ${isDoubleSelected ? 'double-selected' : ''}`;
                card.dataset.id = character.id;
               
                card.innerHTML = `
                    <div class="character-avatar">${character.avatar}</div>
                    <div class="character-info">
                        <div class="character-name">${character.name}</div>
                        <div class="character-faction">${character.faction}</div>
                        <div class="character-status status-${character.status}">
                            ${character.status === 'alive' ? 'Жив' :
                              character.status === 'dead' ? 'Мёртв' : 'Пропал без вести'}
                        </div>
                    </div>
                `;
               
                card.addEventListener('click', (e) => {
                    e.stopPropagation();
                    selectCharacter(character.id);
                });
               
                characterList.appendChild(card);
            });
        }
       
        // Выбор персонажа
        function selectCharacter(id) {
            const index = selectedCharacters.indexOf(id);
           
            if (index === -1) {
                // Добавляем персонажа, но не более двух
                if (selectedCharacters.length < 2) {
                    selectedCharacters.push(id);
                } else {
                    // Если уже выбрано два, заменяем второго
                    selectedCharacters[1] = id;
                }
            } else {
                // Удаляем персонажа из выбранных
                selectedCharacters.splice(index, 1);
            }
           
            renderCharacters();
            renderRelations();
        }
       
        // Отрисовка отношений
        function renderRelations() {
            // Сбрасываем выделение при клике вне карточек
            document.addEventListener('click', (e) => {
                if (!e.target.closest('.character-card')) {
                    selectedCharacters = [];
                    renderCharacters();
                    renderRelations();
                }
            }, { once: true });
           
            if (selectedCharacters.length === 0) {
                relationsTitle.textContent = "Карта Отношений";
                relationsSubtitle.textContent = "Выберите одного или двух персонажей";
                relationsContent.innerHTML = `
                    <div class="no-relations">
                        <div class="no-relations-icon">⇄</div>
                        <div>Для просмотра отношений выберите персонажа в левой панели</div>
                        <div style="font-size: 0.9rem; margin-top: 10px; color: var(--neutral-gold);">
                            Выберите одного персонажа, чтобы увидеть все его связи<br>
                            Выберите двух персонажей, чтобы увидеть их взаимные отношения
                        </div>
                    </div>
                `;
                return;
            }
           
            if (selectedCharacters.length === 1) {
                const character = characters.find(c => c.id === selectedCharacters[0]);
                relationsTitle.textContent = `Отношения: ${character.name}`;
                relationsSubtitle.textContent = `Фракция: ${character.faction}`;
               
                // Находим все отношения этого персонажа
                const characterRelations = relations.filter(r =>
                    r.id1 === character.id || r.id2 === character.id
                );
               
                if (characterRelations.length === 0) {
                    relationsContent.innerHTML = `
                        <div class="no-relations">
                            <div class="no-relations-icon">🚫</div>
                            <div>У ${character.name} не зарегистрировано значимых отношений</div>
                            <div style="font-size: 0.9rem; margin-top: 10px; color: var(--neutral-gold);">
                                Отношения будут добавлены по мере развития истории
                            </div>
                        </div>
                    `;
                    return;
                }
               
                let html = `<div class="relations-list">`;
               
                characterRelations.forEach(rel => {
                    // Определяем второго участника отношения
                    const otherId = rel.id1 === character.id ? rel.id2 : rel.id1;
                    const otherCharacter = characters.find(c => c.id === otherId);
                   
                    // Определяем направление отношения
                    const isOutgoing = rel.id1 === character.id;
                   
                    html += `
                        <div class="relation-card ${rel.type}">
                            <div class="relation-type">${getRelationTypeName(rel.type)}</div>
                            <div class="relation-parties">
                                <div class="relation-character">
                                    <div class="relation-avatar">${character.avatar}</div>
                                    <div>${character.name}</div>
                                </div>
                                <div class="relation-arrow">${isOutgoing ? '→' : '←'}</div>
                                <div class="relation-character">
                                    <div class="relation-avatar">${otherCharacter.avatar}</div>
                                    <div>${otherCharacter.name}</div>
                                </div>
                            </div>
                            <div class="relation-description">${rel.description}</div>
                        </div>
                    `;
                });
               
                html += `</div>`;
                relationsContent.innerHTML = html;
            }
           
            if (selectedCharacters.length === 2) {
                const [id1, id2] = selectedCharacters;
                const char1 = characters.find(c => c.id === id1);
                const char2 = characters.find(c => c.id === id2);
               
                relationsTitle.textContent = `Отношения: ${char1.name} ↔ ${char2.name}`;
                relationsSubtitle.textContent = `Детализация взаимосвязи`;
               
                // Находим отношение между этими двумя персонажами
                const relation = relations.find(r =>
                    (r.id1 === id1 && r.id2 === id2) ||
                    (r.id1 === id2 && r.id2 === id1)
                );
               
                if (!relation) {
                    relationsContent.innerHTML = `
                        <div class="no-relations">
                            <div class="no-relations-icon">🚫</div>
                            <div>Отношения между ${char1.name} и ${char2.name} не установлены</div>
                            <div style="font-size: 0.9rem; margin-top: 10px; color: var(--neutral-gold);">
                                Эти персонажи еще не взаимодействовали напрямую<br>
                                или их отношения не задокументированы
                            </div>
                        </div>
                    `;
                    return;
                }
               
                // Определяем направление отношения
                const isDirect = relation.id1 === id1 && relation.id2 === id2;
               
                relationsContent.innerHTML = `
                    <div class="single-relation">
                        <div class="single-relation-header">
                            <div class="single-relation-avatar">${char1.avatar}</div>
                            <div class="single-relation-info">
                                <div class="single-relation-name">${char1.name}</div>
                                <div class="single-relation-faction">${char1.faction}</div>
                            </div>
                        </div>
                       
                        <div class="single-relation-header">
                            <div class="single-relation-avatar">${char2.avatar}</div>
                            <div class="single-relation-info">
                                <div class="single-relation-name">${char2.name}</div>
                                <div class="single-relation-faction">${char2.faction}</div>
                            </div>
                        </div>
                       
                        <div class="single-relation-content">
                            <div class="relation-type ${relation.type}">${getRelationTypeName(relation.type)}</div>
                            <div class="relation-description">${relation.description}</div>
                            <div style="margin-top: 20px; font-size: 0.9rem; color: var(--neutral-gold);">
                                <strong>Направление:</strong> ${isDirect ? 'Исходящее от ' + char1.name : 'Входящее к ' + char1.name}
                            </div>
                        </div>
                    </div>
                `;
            }
        }
       
        // Получение названия типа отношения
        function getRelationTypeName(type) {
            const names = {
                alliance: "Альянс",
                rivalry: "Соперничество",
                neutral: "Нейтралитет",
                complex: "Сложные отношения",
                romance: "Романтические отношения"
            };
            return names[type] || type;
        }
       
        // Инициализация
        renderCharacters();
    </script>
</body>
</html>[/html]

0



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