[html]
<div class="fp-wrap">
  <div class="fp-bg"></div>

  <div class="fp-body">
    <div class="fp-title fp-title--ms" style="text-align: center">New Arrival's Dossier</div>
    <div class="fp-divider-soft"></div>
    <p>Для гостей представляем возможность собрать персонажа по конструктору. Нажимаете на стрелки, подбираете себе образ, имя, черты характера и фракцию. О том, что проходите по конструктору, важно указать в анкете и дописать в дополнительное все факты из разделов. На старте такая сборка даст вам <b>70 галлеонов</b> в профиль (и артефакт в анкету из списка ниже). Чтобы получить монеты, важно использовать все пункты из всех слайдеров (изменить на свой вкус можно только имя и внешность).</p>
  </div>

<div class="cc-root">
  <div class="cc-bg"></div>
  <div class="cc-in">

    <div class="cc-cover">
      <div class="cc-deco"><div class="ln"></div><div class="dm"></div><div class="ln"></div></div>
      <h1>Character Constructor</h1>
    </div>

    <!-- FACE ZONE -->
    <div class="fc-zone">
      <div class="fc-prev" id="fp">
        <div class="fc-emp" id="fe">
          <svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5">
            <rect x="3" y="3" width="18" height="18" rx="3"></rect>
            <circle cx="8.5" cy="8.5" r="1.5"></circle>
            <path d="M21 15l-5-5L5 21"></path>
          </svg>
          выберите<br>внешность
        </div>
        <img id="fi" style="display:none" alt="">
        <div class="fc-tag hid" id="ft"><span id="ftt"></span></div>
      </div>

      <div class="fc-gw">
        <div class="fc-gl">Внешности</div>
        <div class="fc-gr" id="fg"></div>
      </div>
    </div>

    <!-- NAME + BLOODLINE ROW -->
    <div class="cc-topgrid">

      <!-- NAME -->
      <div class="cc-topcell">
        <div class="pg-h">
          <div class="pg-i">
            <svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="1.5">
              <path d="M12 12a5 5 0 100-10 5 5 0 000 10z"></path>
              <path d="M4 22a8 8 0 0116 0"></path>
            </svg>
          </div>
          <div class="pg-ht">
            <div class="pg-l">Имя персонажа</div>
            <div class="pg-s">выбор имени персонажа</div>
          </div>
          <div class="pg-nav" id="nav_nmw">
            <button type="button" class="ca" onclick="ccCarGo('nmw',-1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M15 18l-6-6 6-6"></path></svg></button>
            <button type="button" class="ca" onclick="ccCarGo('nmw',1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 18l6-6-6-6"></path></svg></button>
          </div>
        </div>
        <div class="pg-c">
          <div id="nmw"></div>
        </div>
      </div>

      <!-- RACE -->
      <div class="cc-topcell">
        <div class="pg-h">
          <div class="pg-i">
            <svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="1.5">
              <path d="M12 3c-1.5 2-4 4-4 7a4 4 0 008 0c0-3-2.5-5-4-7z"></path>
              <path d="M12 17v4"></path>
            </svg>
          </div>
          <div class="pg-ht">
            <div class="pg-l">Раса</div>
            <div class="pg-s">выберите расу персонажа</div>
          </div>
          <div class="pg-nav">
            <button type="button" class="ca" onclick="ccCarGo('rBlood',-1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M15 18l-6-6 6-6"></path></svg></button>
            <button type="button" class="ca" onclick="ccCarGo('rBlood',1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 18l6-6-6-6"></path></svg></button>
          </div>
        </div>
        <div class="pg-c" id="rRace"></div>
      </div>
    </div>

    <div class="cc-sep"><span class="arr">&larr;</span><div class="rl"></div><span class="arr">&rarr;</span></div>

    <!-- STACKED SECTIONS -->
    <div class="cc-stack">

      <div class="sl-p">
        <div class="pg-h">
          <div class="pg-i">
            <svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="1.5">
              <path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"></path>
              <line x1="4" y1="22" x2="4" y2="15"></line>
            </svg>
          </div>
          <div class="pg-ht">
            <div class="pg-l">Фракция</div>
            <div class="pg-s">лояльность и сторона конфликта</div>
          </div>
          <div class="pg-nav">
            <button type="button" class="ca" onclick="ccCarGo('wFac',-1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M15 18l-6-6 6-6"></path></svg></button>
            <button type="button" class="ca" onclick="ccCarGo('wFac',1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 18l6-6-6-6"></path></svg></button>
          </div>
        </div>
        <div class="pg-c" id="wFac"></div>
      </div>

      <div class="sl-p">
        <div class="pg-h">
          <div class="pg-i">
            <svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="1.5">
              <path d="M4 19.5A2.5 2.5 0 016.5 17H20"></path>
              <path d="M6.5 2H20v20H6.5A2.5 2.5 0 014 19.5v-15A2.5 2.5 0 016.5 2z"></path>
            </svg>
          </div>
          <div class="pg-ht">
            <div class="pg-l">Профессия</div>
            <div class="pg-s">род занятий в магическом мире</div>
          </div>
          <div class="pg-nav">
            <button type="button" class="ca" onclick="ccCarGo('wPro',-1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M15 18l-6-6 6-6"></path></svg></button>
            <button type="button" class="ca" onclick="ccCarGo('wPro',1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 18l6-6-6-6"></path></svg></button>
          </div>
        </div>
        <div class="pg-c" id="wPro"></div>
      </div>

      <div class="sl-p">
        <div class="pg-h">
          <div class="pg-i">
            <svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="1.5">
              <path d="M20.84 4.61a5.5 5.5 0 00-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 00-7.78 7.78L12 21.23l8.84-8.84a5.5 5.5 0 000-7.78z"></path>
            </svg>
          </div>
          <div class="pg-ht">
            <div class="pg-l">Черта характера</div>
            <div class="pg-s">что определяет персонажа</div>
          </div>
          <div class="pg-nav">
            <button type="button" class="ca" onclick="ccCarGo('wTra',-1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M15 18l-6-6 6-6"></path></svg></button>
            <button type="button" class="ca" onclick="ccCarGo('wTra',1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 18l6-6-6-6"></path></svg></button>
          </div>
        </div>
        <div class="pg-c" id="wTra"></div>
      </div>

      <div class="sl-p">
        <div class="pg-h">
          <div class="pg-i">
            <svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="1.5">
              <polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"></polygon>
            </svg>
          </div>
          <div class="pg-ht">
            <div class="pg-l">Артефакт</div>
            <div class="pg-s">магический предмет</div>
          </div>
          <div class="pg-nav">
            <button type="button" class="ca" onclick="ccCarGo('wArt',-1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M15 18l-6-6 6-6"></path></svg></button>
            <button type="button" class="ca" onclick="ccCarGo('wArt',1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 18l6-6-6-6"></path></svg></button>
          </div>
        </div>
        <div class="pg-c" id="wArt"></div>
      </div>

      <div class="sl-p">
        <div class="pg-h">
          <div class="pg-i">
            <svg viewBox="0 0 24 24" fill="none" stroke="#fff" stroke-width="1.5">
              <circle cx="12" cy="12" r="10"></circle>
              <path d="M12 6v6l4 2"></path>
            </svg>
          </div>
          <div class="pg-ht">
            <div class="pg-l">Факт из жизни</div>
            <div class="pg-s">нечто странное, мистическое, забавное</div>
          </div>
          <div class="pg-nav">
            <button type="button" class="ca" onclick="ccCarGo('wFct',-1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M15 18l-6-6 6-6"></path></svg></button>
            <button type="button" class="ca" onclick="ccCarGo('wFct',1)"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><path d="M9 18l6-6-6-6"></path></svg></button>
          </div>
        </div>
        <div class="pg-c" id="wFct"></div>
      </div>

    </div>

    <div style="height:20px"></div>

  </div>
</div>

</div>

<script>
var ccFaces = [
  {n:"victoria pedretti",u:"https://i.pinimg.com/originals/c1/2e/d9/c12ed9304f5ceb22ed8097469bad5756.gif"},
  {n:"elizabeth olsen",u:"https://i.pinimg.com/originals/d1/1b/35/d11b3564dd6c136fefaad6ff295442b4.gif"},
  {n:"aaron taylor johnson",u:"https://64.media.tumblr.com/04e8e6614daeae167bc33be05a3855cd/344f140417d96f0c-2d/s540x810/7f52e9661254484e28652f574ff204547767cfc9.gif"},
  {n:"elizabeth lail",u:"https://i.pinimg.com/originals/5b/05/a9/5b05a902f75068d5f572370261398383.gif"},
  {n:"joe keery",u:"https://i.pinimg.com/originals/b3/80/89/b38089f5a4b7493c22035ddb03cc894b.gif"},
  {n:"elle fanning",u:"https://i.pinimg.com/originals/81/af/70/81af702323a6e452ea680e0357a49d68.gif"},
  {n:"dylan o'brien",u:"https://64.media.tumblr.com/6f64f9d9e46d4fc7f3cc423f573e1669/730df7531a5c7708-93/s540x810/1750aa2518259ead060da707628c3ec3f6d9707a.gif"},
  {n:"jensen ackles",u:"https://i.pinimg.com/originals/ea/08/08/ea08086a44d190bb80feba31db611878.gif"},
  {n:"margaret qualley ",u:"https://64.media.tumblr.com/3b269b9174e974726cd92e93cfa1ebd8/85f001c32c07fea3-af/s540x810/67d5031c245cf98c98c9e6884a2be43a02c1b9ee.gif"},
];

var ccNames = [
  "Elara Blackwood","Caspian Ashford","Morgana Whitmore","Dorian Graves",
  "Isolde Ravenscroft","Theron Nightshade","Lydia Thornwell","Percival Crane",
  "Rowena Sinclair","Alaric Voss","Dorian Holloway","Rowena Thistlecroft",
  "Septimus Vane","Tiberius Crowley","Mara Ellington","Adrian Whitlock",
];

var ccBlood = ["Полукровный","Магглорождённый","Сквиб","Маггл, знающий о мире","Оборотень","Вампир","Вейла","Полувейла"];

var ccFac = [
  {t:"Орден Феникса",d:"Сопротивление под руководством Дамблдора. Идеалисты, загнанные в угол."},
  {t:"Пожиратели Смерти",d:"Террористическая организация Волдеморта. Боевики, агенты влияния."},
  {t:"Министерство Магии",d:"Коррумпированная структура. Внешне правительство, внутри — гниль."},
  {t:"Чёрный рынок",d:"Нейтральная криминальная территория Лютного под контролем Скорпиуса."},
  {t:"Серые Плащи",d:"Дезертиры с обеих сторон. Те, кто бежал от войны."},
  {t:"Осквернители",d:"Радикализированные магглорождённые и полукровки. Ответ террором на террор."},
  {t:"Изгои",d:"Стая Фенрира и одиночки. Те, кого отвергло общество."},
  {t:"Нейтралитет",d:"Не примкнувшие ни к одной стороне. Молчание — тоже выбор."},
];

var ccPro = [
  {t:"Аврор",d:"Боевая единица Отдела магического правопорядка. Потери среди авроров — каждую неделю новые имена в некрологах."},
  {t:"Ликвидатор проклятий",d:"Гринготтс или ММ. Разбирается в тёмной магии — от родовых проклятий и защиты гробниц до артефактов, оставшихся после рейдов."},
  {t:"Колдомедик",d:"Мунго, полевой госпиталь, подпольная практика. Раненых всё больше, а сил каждый день видеть кровь на руках — гораздо меньше."},
  {t:"Невыразимец",d:"Отдел тайн. О характере работы не говорят — особенно сейчас, когда исследования переведены в закрытый режим."},
  {t:"Преподаватель",d:"Хогвартс, Гебриды, частное репетиторство. Учить детей в военное время — отдельное искусство."},
  {t:"Журналист",d:"Пророк или Придира, вольный пересмешник. Одно неудачное слово — и перо переломят вместе с пальцами."},
{t:"Портретист",d:"Пишет волшебные портреты — от парадных для Министерства до посмертных по заказу семей. Каждый холст требует месяцев работы и фрагмента памяти самого натурщика. В последние годы заказов на посмертные стало больше, чем на прижизненные."},
{t:"Создатель бытовых предметов",d:"Самомоющаяся посуда, сумки с чарами незримого расширения, самогладящееся бельё, котлы с автоподогревом. Работа кропотливая, клиентура — от домохозяек до министерских чиновников. Изделия мастеров этого цеха десятилетиями передают по наследству."},
{t:"Сотрудник Портального управления",d:"Отдел магического транспорта. Рассчитывает координаты, активирует порт-ключи, ведёт реестр. С начала войны половина маршрутов закрыта или под контролем — а начальство требует не задавать вопросов о том, кому и куда выдаются экстренные разрешения."},
{t:"Заклинатель тканей",d:"Мантии, меняющие цвет по настроению, плащи с чарами водоотталкивания, парадные одежды для балов. Ателье в Косом переулке или частный мастер. Последний год идет волна заказов на траурные мантии и на подклад с защитными рунами."},
{t:"Семейный поверенный",d:"Ведёт дела чистокровных родов: завещания, брачные контракты, родовые артефакты, споры о наследстве. Хранит столько чужих тайн, что сам стал ходячим компроматом. С начала войны переписывает завещания по три раза в месяц."},
{t:"Ритуалист",d:"Специалист по старой обрядовой магии — родовые клятвы, обручения, именования, погребальные обряды. Министерство относится с подозрением, чистокровные семьи с почтением. Практика держится на репутации и рекомендациях."},
{t:"Переводчик древних текстов",d:"Руны, древнегреческий, гоблинский. Работает с частными библиотеками, иногда с Отделом тайн. Знает слишком много, чтобы спать спокойно."},
{t:"Составитель маршрутов",d:"Сопровождающий для путешествий через зачарованные территории — от леса Дин до румынских драконьих заповедников. Совмещает роли проводника, охранника и переговорщика. В военное время работа резко разделилась: легальные туры почти исчезли, зато выросли заказы на «тихий вывоз»."},
{t:"Оценщик артефактов",d:"Гринготтс, аукционные дома, страховые конторы. Определяет подлинность, возраст, проклятия, рыночную стоимость. За последний год через руки прошло подозрительно много предметов с гербами «пропавших без вести» семей."},
{t:"Травник",d:"Выращивает редкие ингредиенты для зельеваров и Мунго. Имеет собственные теплицы и контракт с крупными аптеками. Один сезон неурожая — и на чёрном рынке цены взлетают втрое."},
{t:"Архивариус",d:"Министерский архив, библиотека Хогвартса, частные собрания чистокровных родов. Знает, где лежит каждая бумажка за последние триста лет. С начала войны участились «пропажи» документов — и запросы на их срочное восстановление."},
{t:"Специалист по магическим замкам",d:"Взломщик или, если угодно, «консультант по безопасности». Официально работает на страховые компании и банки, неофициально берёт частные заказы. В военное время разница между двумя занятиями почти стёрлась."},
{t:"Фотограф-колдохудожник",d:"Семейные портреты, свадьбы, репортажи для «Пророка». Знает, как заставить человека на фотографии улыбаться, даже если натурщик не хочет. За последний год всё чаще зовут снимать не свадьбы, а похороны (но непонятно — зачем)."},
{t:"Гробовщик",d:"Погребальные обряды, зачарованные гробы, семейные склепы. Непопулярная профессия в мирное время и одна из самых востребованных сейчас. Знает все чистокровные семьи по их потерям."},
  {t:"Наёмник",d:"Телохранитель, охотник, исполнитель заказов. Сторон в этой войне больше двух, и у каждой есть кошелёк."},
  {t:"Контрабандист",d:"Перевозит запрещённые ингредиенты, артефакты, документы, иногда связанных людей. Свой в Лютном, владеет порт-ключами в обход Министерства, есть международные связи на чёрных рынках."},
  {t:"Информатор",d:"Умеет слушать и слышать, разговорить собеседника. И потом торгует не товаром, а сведениями. Работает сразу на всех, пока еще получается."},
  {t:"Домовладелец поместья",d:"Содержание родового имения как основное занятие. Владеет землями, собирает выплаты с арендаторов. Бережет семейные архивы  и политические связи."},
  {t:"Безработный",d:"Война, чистки, закрытые отделы, сожжённые лавки тому виной. Средства есть, пока терпят родственники."},
  {t:"Бродяга",d:"Ни дома, ни работы, ни планов дальше завтрашнего дня. Кто-то пьёт, кто-то прячется, кто-то ждёт счастливого часа."},
];

var ccTra = [
  {t:"Паранойя",d:"Не доверяет никому. Проверяет выходы, спит лицом к двери, и это уже не похоже на здоровую черту."},
  {t:"Идеализм",d:"Верит, что мир можно изменить. Даже когда всё горит, сохраняет веру в ценности и идеалы добра."},
  {t:"Жестокость",d:"Война обнажила то, что пряталось внутри — и портрет этого нового лица совсем не приятный."},
  {t:"Двуличность",d:"Носит маску для каждого. Никто не знает его настоящей натуры, но многие догадываются, что он хитрый лис."},
  {t:"Верность",d:"До последнего вздоха, даже если объект того не заслуживает, он будет рядом. Цена всегда высока."},
  {t:"Чувство вины",d:"Груз чужих смертей напоминает камень, тянущий ко дну. Каждую ночь он видит лица тех, кого не спас."},
  {t:"Амбиции",d:"Война — это лестница. Кто-то падает, кто-то карабкается вверх по чужим головам или трупам."},
  {t:"Сострадание",d:"Не различает цвета флагов и значки на мантиях, защищает всех, кому может помочь."},
{t:"Цинизм",d:"Верил — но обжёгся. Теперь в каждым красивом слове видит расчёт, а в героизме чей-то интерес. Иногда ошибается."},
{t:"Отрешённость",d:"Смотрит на происходящее будто через мутное стекло — сработал защитный механизм. Включиться обратно получается не сразу и не всегда."},
{t:"Одержимость",d:"Есть одна идея, одно имя, одна цель — и всё остальное меркнет. Сон, еда, близкие — уже не приоритет. Война даёт одержимости слишком много пищи."},
{t:"Гордость",d:"Не переступит через принципы даже ради спасения себя или близкого, а извинения даются ему тяжело. Родовая черта или приобретённая — не имеет значения."},
{t:"Трусость",d:"Замечает за собой и ненавидит себя за это. Каждый раз обещает себе в следующий раз не отступить — и отступает. Живёт с этим как может."},
{t:"Азартность",d:"Живёт на грани — иначе скучно. Ставит на кон то, что ставить нельзя, даже если шанс выиграть мал. Война для таких — худшее из возможных казино."},
{t:"Сентиментальность",d:"Хранит письма, засушенные цветы, пуговицы. За внешней твёрдостью прячет целый архив из чужих голосов, строчек, безделушек, которые не может выбросить."},
{t:"Упрямство",d:"Сказал — сделает, решил — не свернёт. Окружающие называют это то стойкостью, то тупостью, в зависимости от результата."},
{t:"Ирония",d:"Шутит на похоронах, шутит в бою, шутит когда страшно. Многие путают с нервозностью — либо защита, либо диагноз, либо и то и другое."},
{t:"Импульсивность",d:"Сначала действует, потом думает, иногда жалеет о быстром выборе. Спас нескольких именно так, но погубил нескольких тоже."},
{t:"Мстительность",d:"Не забывает ни обид, ни долгов. Ведёт внутренний список — и он длинный. Война добавляет в него имена всё быстрее, и не все из них получается вычёркивать."},
{t:"Сдержанность",d:"Не повышает голос, не показывает боль, не плачет при свидетелях. Внутри может быть что угодно — снаружи всегда тишь да гладь."},
{t:"Великодушие",d:"Прощает там, где прощать необязательно. Делится тем, чего самому не хватает. Иногда от этого становится только хуже — причём всем."},
{t:"Самопожертвование",d:"Всегда готов встать под удар первым. Красиво со стороны, но изматывающе изнутри. Часто путают со смелостью, хотя корни бывают совсем другие."},
{t:"Прагматизм",d:"Выбирает то, что работает, а не то, что правильно. Неудобная черта для идеалистов рядом — и крайне полезная, когда надо выжить."},
{t:"Меланхолия",d:"Грусть как вечный фон. Красиво пишет, долго молчит и горестно вздыхает, глядя в окно с чашкой чая. Любит дожди и старые вещи."},
{t:"Харизма",d:"За ним идут, ему верят, его слушают — иногда против собственной воли. Дар обоюдоострый: война любит таких и быстро их сжигает."},
{t:"Недоверчивость",d:"Пока еще не паранойя — но вечно требует доказательств. Дружбу с ним заслуживают годами, а теряют за один неверный шаг."},
{t:"Перфекционизм",d:"Делает либо идеально, либо никак. В мирной профессии — достоинство мастера. В военное время — источник постоянного чувства провала."},
{t:"Романтизм",d:"Видит в происходящем сюжет. Ищет красоту в поступках, смысл в совпадениях, судьбу в случайностях. Реальность регулярно эту веру испытывает."},
{t:"Беспринципность",d:"Нет линии, которую он не переступит. С такими легко договориться и невозможно предсказать, кому они продадут тебя завтра."},
];

var ccArt = [
{t:"Кольцо-предвестник",d:"Нагревается перед опасностью. Подвох в том, что «опасность» оно определяет по собственной логике: иногда предупреждает о проклятом письме, иногда молчит под прицелом палочки. Доверять можно, полагаться не стоит."},
{t:"Парное зеркало",d:"Одно из пары для связи на расстоянии. Второе осталось у того, кого больше нет — и иногда поверхность всё равно мутнеет, как будто кто-то пытается выйти на связь с той стороны. Владелец старается не смотреть в него после полуночи."},
{t:"Стрелка тревоги",d:"Карманные часы без цифр — единственная стрелка указывает в сторону ближайшей угрозы и дрожит тем сильнее, чем ближе источник. Определять природу угрозы часы не умеют."},
{t:"Запечатанный фиал",d:"Флакон с чьим-то воспоминанием. Владелец сам его туда поместил — и сам же не помнит, что именно извлёк. Разбить печать можно в любой момент. Пока не разбил, спится спокойнее."},
{t:"Костяной нож",d:"Ритуальный клинок старой работы. Каждое серьёзное использование оставляет на владельце шрам — и не всегда там, где ожидаешь."},
{t:"Медальон-тень",d:"На нем чары отвода глаз: взгляд окружающих соскальзывает с владельца, внимание рассеивается, имя забывается. Работает около 5 минут, но не против того, кто знает, кого ищет."},
{t:"Перо-самописец",d:"Записывает речь на расстоянии слышимости — а в умелых руках улавливает и обрывки мыслей. Чернила проявляются не сразу, иногда через сутки."},
{t:"Чернильница наследника",d:"Семейная вещь — чернила в ней не кончаются, пока жив последний носитель фамилии. Удобный индикатор: проверил утром уровень — узнал, жив ли ещё кто-то из родни. В военное время смотреть туда страшно."},
{t:"Брошь-хранительница",d:"Старая серебряная брошь с камнем, меняющим цвет от прозрачного к чёрному. Темнеет от близости тёмной магии, использованной с намерением причинить вред. В Лютном переулке носить её бессмысленно — чернеет постоянно."},
{t:"Портсигар-укрытие",d:"На вид обычный серебряный портсигар. Но внутри размещён пространственный карман размером с небольшую комнату. Доступ туда только у владельца по ключевому слову. Хранят там всё: от контрабандных товаров до заключенных людей."},
{t:"Монета связи",d:"Одна из пары или группы. Нагревается и проявляет надпись, когда другой владелец активирует свою. Чары просты, но надёжны — и, в отличие от сов, не перехватываются."},
{t:"Фляга трезвости",d:"Любая жидкость, налитая внутрь, очищается от зелий, ядов, сывороток правды и прочих примесей. Вкус при этом становится отвратительным, но живым остаёшься."},
{t:"Перчатки мастера",d:"Тонкие кожаные перчатки, позволяющие касаться проклятых предметов без последствий — один раз. После каждого использования одна нить в шве перчатки чернеет, и когда шов чернеет полностью, перчатки рассыпаются."},
{t:"Платок с монограммой",d:"Обычный на вид платок с вышитыми инициалами. Приложенный к ране, останавливает кровь и затягивает её, но забирает у владельца ровно столько сил, сколько нужно для исцеления. Быстрое восстановление стоит нескольких часов слабости."},
{t:"Компас верности",d:"Стрелка указывает не на север, а на того, кого владелец считает самым дорогим человеком. Проблема в том, что компас читает подсознание — и иногда показывает совсем не того, кого ожидаешь."},
{t:"Книга-дневник",d:"Обычная записная книжка, которая копирует записи в парную — у того, кому подарена. Проблема только в том, что носитель забыл, кому дарил вторую или как первая оказалась у него."},
{t:"Венец невесты",d:"Диадема, передающаяся в семье. Женщина, надевшая его, на одну ночь видит во сне тех, кто носил его до неё. Иногда получает от них совет или предостережение."},
{t:"Свеча поминовения",d:"Горит ровно столько, пока жив тот, чьё имя было произнесено при зажжении. Погасла — значит, всё кончилось. Именно потому многие не зажигают такие свечи из суеверия."},
];

var ccFct = [
  {t:"Видит тени",d:"Каждое полнолуние замечает невнятные чёрные силуэты, но пока не выяснил, что его преследует."},
  {t:"Ложные воспоминания",d:"Сирота помнит детство в доме, который по документам никогда не существовал. Обливиаторы не видят изменений в сознании."},
  {t:"Говорит во сне",d:"Ночами выдает случайный набор фраз на языке, которого не знает — старогэльском. Близкие записывают эти слова по просьбе"},
  {t:"Незаживающий рубец",d:"Рана от тёмного проклятия периодически кровоточит, целители перепробовали всё, чтобы это остановить, но борьба продолжается."},
  {t:"Доппельгангер",d:"Есть родственник-близнец со стороны магглов или сквибов, обиженный на несправедливость судьбы. Они не общаются, но волшебник боится мести."},
  {t:"Запах пепла",d:"После инцидента 1978-го постоянно чувствует вокруг запах гари. Боится огня, но его чары порой сбоят и поджигают предметы."},
  {t:"Письмо без отправителя",d:"Каждый месяц, уже шесть лет подряд, к дому прилетает сова и приносит чистый пергамент. Ждет, когда там появится хотя бы слово."},
  {t:"Боггарт изменился",d:"Раньше боялся высоты, а теперь закрытую дверь. Причину не понимает и о смене узнал случайно."},
  {t:"Колдует без палочки",d:"Не проходил стажировку в Африке, но одно конкретное заклинание получается без палочки — и только оно. Откуда научился — не помнит."},
{t:"Семь лет удачи",d:"С определённого дня — помнит его точно — ему везёт в мелочах. Мелкие лотерейные билеты, ставки в Яме, чудом пролетевший мимо кирпич или проклятье, падающая чашка не разбивается. Семь лет закончатся этой осенью."},
{t:"Фамильное проклятие",d:"В роду через поколение кто-то умирает в тридцать три. Случайности, болезни, несчастные случаи — но всегда в этом возрасте. Сейчас ему тридцать два."},
{t:"Животные сторонятся",d:"Кошки шипят, собаки отступают, совы не садятся на предплечье. В Мунго не нашли следов тёмной магии, хотя главный целительно долго записывал что-то в отдельную тетрадь."},
{t:"Тёзка в списках",d:"В архиве Министерства числится волшебник с тем же именем, фамилией и датой рождения. Погиб при невыясненных обстоятельствах несколько лет назад. Запрос на уточнение остался без ответа."},
{t:"Запретная секция",d:"В школьные годы получал разрешения на посещение Запретной секции библиотеки чаще других — стояли подписи разных преподавателей, и темы были не всегда связанные с учёбой. Мадам Пинс до сих пор помнит его фамилию."},
{t:"Любимый преподаватель",d:"Один из школьных учителей выделял его среди других — дополнительные занятия, личные разговоры. Шли неприличные шепотки об их связи. Преподаватель покинул Хогвартс при странных обстоятельствах на его выпускном курсе."},
{t:"Должник",d:"Однажды спас незнакомца, а тот пообещал однажды вернуть долг и ушёл. Прошло несколько лет, на пороге стали появляться мелкие подарки без записки."},
{t:"Письма из прошлого",d:"Периодически получает письма с датами отправления десятилетней давности. Содержание актуальное — текущие события, упоминает людей, которых владелец встретил недавно. Почерк разный в каждом письме."},
{t:"Угадывает погоду",d:"За несколько часов до дождя, грозы или снега точно знает, что он будет. Не может объяснить, как именно — по ломоте в костях, как старики, или иначе."},
];

var ccCarStates = {};

/* ── face grid ── */
function ccPickFC(i) {
  var thumbs = document.getElementById("fg").children;
  for (var j = 0; j < thumbs.length; j++) thumbs[j].className = "fc-th";
  thumbs[i].className = "fc-th on";
  var img = document.getElementById("fi");
  img.src = ccFaces[i].u;
  img.style.display = "block";
  document.getElementById("fe").style.display = "none";
  document.getElementById("ftt").textContent = ccFaces[i].n;
  document.getElementById("ft").className = "fc-tag";
}

function ccInitFC() {
  var g = document.getElementById("fg");
  if (!g) return;
  var html = "";
  for (var i = 0; i < ccFaces.length; i++) {
    html += '<div class="fc-th" onclick="ccPickFC(' + i + ')"><img src="' + ccFaces[i].u + '" alt="' + ccFaces[i].n + '"></div>';
  }
  g.innerHTML = html;
}

/* ── race slider — same pattern as name carousel ── */
function ccMkInline(id, items) {
  var w = document.getElementById("rRace");
  if (!w) return;
  ccCarStates[id] = {idx: 0, items: items.map(function(n){return {t:n};})};

  var html = '<div class="cv"><div class="ct" id="ct_' + id + '">';
  for (var i = 0; i < items.length; i++) {
    html += '<div class="ci"><div class="cm">' + items[i] + '</div></div>';
  }
  html += '</div></div>';
  html += '<div class="cds" id="cd_' + id + '">';
  for (var j = 0; j < items.length; j++) {
    html += '<button type="button" class="cdt' + (j===0?" on":"") + '" onclick="ccCarTo(\'' + id + '\',' + j + ')"></button>';
  }
  html += '</div>';
  w.innerHTML = html;
}

/* ── card carousel (no nav in markup — nav is in pg-h) ── */
function ccMkCar(id, items) {
  var w = document.getElementById(id);
  if (!w) return;
  ccCarStates[id] = {idx: 0, items: items};

  var html = '<div class="cv"><div class="ct" id="ct_' + id + '">';
  for (var i = 0; i < items.length; i++) {
    html += '<div class="ci"><div class="cm">' + items[i].t + '</div>';
    html += '<div class="cd">' + items[i].d + '</div>';
    html += '</div>';
  }
  html += '</div></div>';
  html += '<div class="cds" id="cd_' + id + '">';
  for (var j = 0; j < items.length; j++) {
    html += '<button type="button" class="cdt' + (j===0?" on":"") + '" onclick="ccCarTo(\'' + id + '\',' + j + ')"></button>';
  }
  html += '</div>';

  w.innerHTML = html;
}

/* ── name carousel (no desc, nav in pg-h) ── */
function ccMkNameCar(id, names) {
  var w = document.getElementById(id);
  if (!w) return;
  ccCarStates[id] = {idx: 0, items: names.map(function(n){return {t:n};})};

  var html = '<div class="cv"><div class="ct" id="ct_' + id + '">';
  for (var i = 0; i < names.length; i++) {
    html += '<div class="ci"><div class="cm">' + names[i] + '</div></div>';
  }
  html += '</div></div>';
  html += '<div class="cds" id="cd_' + id + '">';
  for (var j = 0; j < names.length; j++) {
    html += '<button type="button" class="cdt' + (j===0?" on":"") + '" onclick="ccCarTo(\'nmw\',' + j + ')"></button>';
  }
  html += '</div>';

  w.innerHTML = html;
}

function ccCarGo(id, dir) {
  var s = ccCarStates[id];
  if (!s) return;
  var n = s.idx + dir;
  if (n < 0) n = s.items.length - 1;
  if (n >= s.items.length) n = 0;
  ccCarTo(id, n);
}

function ccCarTo(id, n) {
  var s = ccCarStates[id];
  if (!s) return;
  s.idx = n;

  var track = document.getElementById("ct_" + id);
  var dotsWrap = document.getElementById("cd_" + id);
  if (track) track.style.transform = "translateX(-" + (n * 100) + "%)";
  if (dotsWrap) {
    var ds = dotsWrap.children;
    for (var j = 0; j < ds.length; j++) ds[j].className = (j===n)?"cdt on":"cdt";
  }
}

function ccBoot() {
  ccInitFC();
  ccMkNameCar("nmw", ccNames);
  ccMkInline("rBlood", ccBlood);
  ccMkCar("wFac", ccFac);
  ccMkCar("wPro", ccPro);
  ccMkCar("wTra", ccTra);
  ccMkCar("wArt", ccArt);
  ccMkCar("wFct", ccFct);
}

ccBoot();
</script>

<style>
.cc-root {
  --fp-bg: #E2E2E2;
  --fp-stroke: #C2C2C2;
  --fp-ink: #151515;
  --fp-muted: #777777;
  --fp-green: #606C57;
  --fp-lt: #909A89;
  --fp-tan: #B2A186;
  --fp-r: 14px;
  --fp-deep: #D6D6D4;
  --fp-parchment: #E8E6E0;
  font-family: "Manrope", sans-serif;
  color: var(--fp-ink);
  position: relative;
  width: 100%;
  max-width: 850px;
  margin: 0 auto;
  border-radius: var(--fp-r);
  border: 1px solid var(--fp-stroke);
  overflow: hidden;
  background: var(--fp-bg);
  box-sizing: border-box;
}

.cc-root *, .cc-root *::before, .cc-root *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.cc-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(160deg, rgba(226,226,226,.88) 0%, rgba(222,222,222,.82) 40%, rgba(210,215,205,.75) 100%);
  pointer-events: none;
  z-index: 0;
}

.cc-in {
  position: relative;
  z-index: 1;
}

/* ── cover ── */
.cc-cover {
  text-align: center;
  padding: 36px 30px 12px;
}

.cc-deco {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 6px;
}

.cc-deco .ln { width: 70px; height: 1px; background: var(--fp-lt); }
.cc-deco .dm { width: 6px; height: 6px; background: var(--fp-lt); transform: rotate(45deg); flex-shrink: 0; }

.cc-cover h1 {
  font-family: "Playfair Display", serif;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 5px;
  text-transform: uppercase;
  color: var(--fp-green);
}

.cc-csub {
  font-size: 11px;
  color: var(--fp-muted);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-top: 4px;
}

/* ── face zone ── */
.fc-zone {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 16px;
  padding: 12px 30px 20px;
}

.fc-prev {
  /* fixed height so image never changes the layout */
  height: 300px;
  border-radius: 10px;
  overflow: hidden;
  background: var(--fp-deep);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.fc-prev img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(25%) contrast(1.05);
  mix-blend-mode: multiply;
  mask-image: radial-gradient(ellipse 90% 85% at 50% 40%, black 50%, transparent 100%);
  -webkit-mask-image: radial-gradient(ellipse 90% 85% at 50% 40%, black 50%, transparent 100%);
}

.fc-emp {
  position: relative;
  z-index: 1;
  color: var(--fp-muted);
  font-size: 11px;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.6;
}

.fc-emp svg { display: block; margin: 0 auto 8px; opacity: .35; }

.fc-tag {
  position: absolute;
  bottom: 12px;
  left: 0;
  right: 0;
  text-align: center;
  z-index: 2;
}

.fc-tag span {
  display: inline-block;
  padding: 5px 18px;
  background: rgba(226,226,226,.82);
  backdrop-filter: blur(4px);
  border: 1px solid var(--fp-stroke);
  border-radius: 6px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--fp-green);
}

.fc-tag.hid { display: none; }

.fc-gw {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fc-gl {
  font-family: "Playfair Display", serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 2px;
  text-transform: uppercase;
  color: var(--fp-green);
  text-align: center;
}

.fc-gr {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 6px;
  height: 280px;
  padding: 4px;
  overflow: hidden;
}

.fc-th {
  border-radius: 6px;
  border: 2px solid transparent;
  overflow: hidden;
  cursor: pointer;
  background: var(--fp-deep);
  transition: border-color .25s, transform .2s;
}

.fc-th:hover { border-color: var(--fp-lt); transform: scale(1.04); }
.fc-th.on { border-color: var(--fp-green); }

.fc-th img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: grayscale(30%) contrast(1.05);
  mix-blend-mode: multiply;
  display: block;
}

/* ── top grid: name + race ── */
.cc-topgrid {
  display: flex;
  gap: 16px;
  padding: 0 30px 6px;
  align-items: stretch;
}

.cc-topcell {
  flex: 1 1 0;
  min-width: 0;
  border: 1px solid var(--fp-stroke);
  border-radius: 10px;
  padding: 16px 20px;
}

/* ── pg-h with nav inline ── */
.pg-h {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.pg-ht { flex: 1; min-width: 0; }

.pg-nav {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}

.pg-i {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--fp-green);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.pg-i svg { width: 15px; height: 15px; }

.pg-l {
  font-family: "Playfair Display", serif;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 3px;
  color: var(--fp-green);
}

.pg-s {
  font-size: 10px;
  color: var(--fp-muted);
  letter-spacing: 1px;
  margin-top: 1px;
}

/* ── pg-c card body ── */
.pg-c {
  background: var(--fp-parchment);
  border: 1px solid var(--fp-stroke);
  border-radius: 10px;
  padding: 14px 18px;
}

/* ── carousel track ── */
.cv { overflow: hidden; }

.ct {
  display: flex;
  transition: transform .35s cubic-bezier(.4,0,.2,1);
}

.ci {
  min-width: 100%;
  text-align: center;
  padding: 4px 2px;
}

.cm {
  font-family: "Playfair Display", serif;
  font-size: 17px;
  font-weight: 600;
  color: var(--fp-ink);
  letter-spacing: .5px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 26px;
}

.cd {
  font-size: 11px;
  color: var(--fp-muted);
  margin-top: 5px;
  line-height: 1.5;
}

/* ── inline race slider ── */
.rs-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.rs-lbl {
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--fp-muted);
}

.rs-mid {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rs-val {
  flex: 1;
  font-family: "Playfair Display", serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--fp-ink);
  letter-spacing: .3px;
  text-align: center;
}

/* ── dots ── */
.cds {
  display: flex;
  justify-content: center;
  gap: 4px;
  margin-top: 6px;
  flex-wrap: wrap;
}

.cds.sm { gap: 3px; margin-top: 3px; }

.cdt {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--fp-stroke);
  transition: all .2s;
  border: none;
  padding: 0;
  cursor: pointer;
}

.cdt.on { background: var(--fp-green); transform: scale(1.3); }

/* ── buttons ── */
.ca {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--fp-stroke);
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--fp-muted);
  transition: all .2s;
  flex-shrink: 0;
}

.ca:hover { border-color: var(--fp-green); color: var(--fp-green); }
.ca svg { width: 13px; height: 13px; }

.ca.sm {
  width: 22px;
  height: 22px;
}

.ca.sm svg { width: 11px; height: 11px; }

/* ── sep ── */
.cc-sep {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 40px;
}

.cc-sep .arr { color: var(--fp-lt); font-size: 13px; }
.cc-sep .rl { flex: 1; height: 1px; background: var(--fp-stroke); }

/* ── stacked sections ── */
.cc-stack {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.sl-p {
  padding: 0 30px 16px;
}

/* ── scrollbar ── */
.cc-root ::-webkit-scrollbar { width: 4px; }
.cc-root ::-webkit-scrollbar-track { background: transparent; }
.cc-root ::-webkit-scrollbar-thumb { background: var(--fp-lt); border-radius: 10px; }

@media (max-width: 600px) {
  .cc-topgrid { flex-direction: column; }
  .fc-zone { grid-template-columns: 1fr; }
}
</style>

[/html]

[sign]          [/sign]