[html]<style>
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;700&family=Cinzel+Decorative:wght@700&family=EB+Garamond:ital,wght@0,400;0,600;1,400&display=swap');
.viv-wrap {
box-sizing: border-box;
--ink: #e7e1d4;
--ink-dim: #948a78;
--bg-card: #201e1c;
--bg-card-2: #2a2724;
--bg-card-3: #141312;
--brass: #c9a15f;
--brass-dim: #6e5c39;
--blood: #5c1a1f;
--blood-br: #b0403f;
font-family: 'EB Garamond', Georgia, serif;
color: var(--ink);
padding: 20px 12px;
}
.viv-wrap *, .viv-wrap *::before, .viv-wrap *::after {
box-sizing: border-box;
margin: 0;
padding: 0;
list-style: none;
text-decoration: none;
line-height: normal;
}
.viv-wrap .viv-texture {
background-color: var(--bg-card);
background-image:
url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E"),
radial-gradient(ellipse at 18% 12%, rgba(255,255,255,0.05), transparent 55%),
radial-gradient(ellipse at 88% 95%, rgba(0,0,0,0.55), transparent 60%),
linear-gradient(160deg, var(--bg-card-2), var(--bg-card) 55%, var(--bg-card-3) 100%);
background-blend-mode: overlay, soft-light, multiply, normal;
background-repeat: repeat, no-repeat, no-repeat, no-repeat;
background-size: 140px 140px, cover, cover, cover;
}
.viv-wrap .viv-banner {
max-width: 900px;
margin: 0 auto 20px;
text-align: center;
border: 1px solid var(--brass-dim);
padding: 26px 20px 22px;
position: relative;
}
.viv-wrap .viv-banner::before,
.viv-wrap .viv-banner::after {
content: "";
position: absolute;
width: 18px; height: 18px;
border: 1px solid var(--brass);
opacity: 0.6;
}
.viv-wrap .viv-banner::before { top: 8px; left: 8px; border-right: none; border-bottom: none; }
.viv-wrap .viv-banner::after { bottom: 8px; right: 8px; border-left: none; border-top: none; }
.viv-wrap .viv-title {
font-family: 'Cinzel Decorative', 'Cinzel', serif;
font-weight: 700;
font-size: 32px;
letter-spacing: 4px;
color: var(--brass);
text-shadow: 0 0 18px rgba(201,161,95,0.25);
}
.viv-wrap .viv-subtitle {
color: var(--ink-dim);
font-size: 14px;
letter-spacing: 0.3px;
margin-top: 8px;
max-width: 640px;
margin-left: auto;
margin-right: auto;
line-height: 1.6;
}
.viv-wrap .viv-body { max-width: 900px; margin: 0 auto; }
.viv-wrap .viv-panel-inner {
border: 1px solid var(--brass-dim);
padding: 26px 26px 22px;
box-shadow: 0 14px 30px rgba(0,0,0,0.55), inset 0 0 80px rgba(0,0,0,0.5);
}
.viv-wrap .viv-h2 {
font-family: 'Cinzel', serif;
font-weight: 700;
font-size: 20px;
letter-spacing: 1px;
color: var(--brass);
margin-bottom: 14px;
padding-bottom: 8px;
border-bottom: 1px solid var(--brass-dim);
}
.viv-wrap .viv-h3 {
font-family: 'Cinzel', serif;
font-weight: 600;
font-size: 15px;
letter-spacing: 0.5px;
color: var(--ink);
margin: 16px 0 8px;
}
.viv-wrap .viv-h3:first-child { margin-top: 0; }
.viv-wrap .viv-text {
font-size: 15px;
line-height: 1.72;
text-align: justify;
color: var(--ink);
margin-bottom: 12px;
}
.viv-wrap .viv-text:last-child { margin-bottom: 0; }
.viv-wrap .viv-text b { color: var(--brass); font-weight: 600; }
.viv-wrap .viv-divider {
height: 1px;
background: linear-gradient(90deg, transparent, var(--brass-dim), var(--blood), var(--brass-dim), transparent);
margin: 18px 0;
}
.viv-wrap .viv-draft {
border: 1px dashed var(--brass-dim);
background: rgba(201,161,95,0.06);
padding: 10px 14px;
margin: 10px 0;
font-size: 13px;
line-height: 1.55;
color: var(--ink-dim);
}
.viv-wrap .viv-draft b {
color: var(--brass);
font-family: 'Cinzel', serif;
font-size: 10.5px;
letter-spacing: 0.5px;
text-transform: uppercase;
display: block;
margin-bottom: 4px;
}
/* карточки по государствам */
.viv-wrap .viv-rel-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
margin-top: 10px;
}
.viv-wrap .viv-rel {
border: 1px solid var(--brass-dim);
background: rgba(0,0,0,0.2);
padding: 14px 16px;
}
.viv-wrap .viv-rel-name {
font-family: 'Cinzel', serif;
font-size: 14.5px;
color: var(--brass);
margin-bottom: 6px;
}
.viv-wrap .viv-rel-desc {
font-size: 14px;
color: var(--ink);
line-height: 1.6;
}
.viv-wrap .viv-rel-desc:not(:last-child) { margin-bottom: 8px; }
.viv-wrap .viv-rel-note {
font-size: 12.5px;
color: var(--ink-dim);
margin-top: 8px;
padding-top: 8px;
border-top: 1px dashed var(--brass-dim);
}
.viv-wrap .viv-city-tbd {
color: var(--blood-br);
font-style: normal;
border-bottom: 1px dashed var(--blood-br);
}
/* сворачиваемые блоки */
.viv-wrap details.viv-fold {
border: 1px solid var(--brass-dim);
margin-bottom: 12px;
}
.viv-wrap details.viv-fold > summary {
cursor: pointer;
list-style: none;
padding: 12px 16px;
font-family: 'Cinzel', serif;
font-size: 14px;
letter-spacing: 0.5px;
color: var(--brass);
background: var(--bg-card-2);
display: flex;
align-items: center;
gap: 8px;
}
.viv-wrap details.viv-fold > summary::-webkit-details-marker { display: none; }
.viv-wrap details.viv-fold > summary::before {
content: "▸";
color: var(--blood-br);
transition: transform 0.15s;
}
.viv-wrap details.viv-fold[open] > summary::before { transform: rotate(90deg); }
.viv-wrap details.viv-fold > .viv-fold-body {
padding: 16px 18px 4px;
border-top: 1px solid var(--brass-dim);
}
/* карточка-досье — по образцу «Варианта 3» бестиария */
.viv-wrap .viv-v3 {
border: 1px solid var(--brass-dim);
box-shadow: 0 10px 22px rgba(0,0,0,0.5), inset 0 0 40px rgba(0,0,0,0.35);
overflow: hidden;
margin-bottom: 14px;
}
.viv-wrap .viv-v3-top {
display: flex;
align-items: center;
gap: 12px;
padding: 14px 16px;
background: var(--bg-card-2);
border-bottom: 1px solid var(--brass-dim);
}
.viv-wrap .viv-v3-thumb {
width: 46px; height: 46px;
border-radius: 50%;
object-fit: cover;
border: 1px solid var(--brass);
flex-shrink: 0;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
background: var(--bg-card-3);
}
.viv-wrap .viv-v3-name {
font-family: 'Cinzel', serif;
font-weight: 700;
font-size: 16px;
color: var(--ink);
letter-spacing: 0.3px;
}
.viv-wrap .viv-v3-sub {
margin-top: 3px;
display: flex;
gap: 10px;
flex-wrap: wrap;
}
.viv-wrap .viv-v3-tag {
display: inline-flex;
align-items: center;
gap: 5px;
font-size: 11px;
letter-spacing: 0.3px;
text-transform: uppercase;
color: var(--ink-dim);
}
.viv-wrap .viv-v3-tag::before { content: "◆"; font-size: 7px; color: var(--blood-br); }
.viv-wrap .viv-v3-body { padding: 14px 16px 16px; }
.viv-wrap .viv-v3-mini-facts {
display: flex;
gap: 14px;
margin-bottom: 10px;
flex-wrap: wrap;
}
.viv-wrap .viv-v3-mini-fact { font-size: 12px; color: var(--ink-dim); }
.viv-wrap .viv-v3-mini-fact b { color: var(--brass); font-family: 'Cinzel', serif; font-weight: 600; }
.viv-wrap .viv-v3-desc {
font-size: 13.5px;
line-height: 1.6;
color: var(--ink);
margin-bottom: 10px;
}
.viv-wrap .viv-v3-link {
font-size: 11.5px;
color: var(--ink-dim);
margin-top: 10px;
padding-top: 9px;
border-top: 1px dashed var(--brass-dim);
display: flex;
align-items: center;
gap: 5px;
}
.viv-wrap .viv-v3-link a {
color: var(--brass);
cursor: pointer;
}
.viv-wrap .viv-v3-link a:hover { color: var(--ink); }
.viv-wrap .viv-v3-link a::after { content: " ↗"; font-size: 10px; }
.viv-wrap details.viv-v3-fold {
border: 1px solid var(--brass-dim);
margin-top: 8px;
}
.viv-wrap details.viv-v3-fold > summary {
cursor: pointer;
list-style: none;
padding: 8px 13px;
font-family: 'Cinzel', serif;
font-size: 11.5px;
letter-spacing: 0.5px;
text-transform: uppercase;
color: var(--brass);
background: var(--bg-card-2);
display: flex;
align-items: center;
gap: 8px;
}
.viv-wrap details.viv-v3-fold > summary::-webkit-details-marker { display: none; }
.viv-wrap details.viv-v3-fold > summary::before { content: "▸"; color: var(--blood-br); transition: transform 0.15s; }
.viv-wrap details.viv-v3-fold[open] > summary::before { transform: rotate(90deg); }
.viv-wrap details.viv-v3-fold > div {
padding: 11px 13px 12px;
border-top: 1px solid var(--brass-dim);
font-size: 13px;
line-height: 1.6;
color: var(--ink-dim);
}
.viv-wrap details.viv-v3-fold ul { margin-top: 3px; }
.viv-wrap details.viv-v3-fold li {
position: relative;
padding-left: 13px;
margin-bottom: 5px;
}
.viv-wrap details.viv-v3-fold li:last-child { margin-bottom: 0; }
.viv-wrap details.viv-v3-fold li::before {
content: "◆";
position: absolute;
left: 0; top: 4px;
font-size: 6px;
color: var(--blood-br);
}
.viv-wrap details.viv-v3-fold li b { color: var(--ink); }
/* заготовки под будущее наполнение */
.viv-wrap .viv-stub-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 10px;
margin-top: 10px;
}
.viv-wrap .viv-stub-card {
border: 1px dashed var(--brass-dim);
padding: 18px 12px;
text-align: center;
min-height: 90px;
display: flex;
align-items: center;
justify-content: center;
}
.viv-wrap .viv-stub-text {
font-family: 'Cinzel', serif;
font-size: 12px;
letter-spacing: 0.5px;
color: var(--ink-dim);
}
/* мобильная адаптация */
@media (max-width: 700px) {
.viv-wrap { padding: 14px 8px; }
.viv-wrap .viv-title { font-size: 22px; letter-spacing: 2px; }
.viv-wrap .viv-banner { padding: 18px 14px 16px; }
.viv-wrap .viv-panel-inner { padding: 18px 14px 16px; }
.viv-wrap .viv-h2 { font-size: 17px; }
.viv-wrap .viv-text { font-size: 14px; text-align: left; }
.viv-wrap .viv-rel-grid { grid-template-columns: 1fr; }
.viv-wrap .viv-stub-grid { grid-template-columns: 1fr; }
}
</style>
<div class="viv-wrap">
<div class="viv-banner viv-texture">
<div class="viv-title">Вивисекторы</div>
<div class="viv-subtitle">Люди, занимающиеся приручением, дрессировкой и/или разведением тварей — одна из старейших профессий Севиктуса.</div>
</div>
<div class="viv-body">
<div class="viv-panel-inner viv-texture">
<div class="viv-h2">Кто такие вивисекторы</div>
<p class="viv-text">Вивисектор считается одной из старейших профессий Севиктуса: в древности речь шла лишь о поимке и дрессировке, а в нынешнее время вивисекторы в своём большинстве ориентированы на выведение новых видов — иногда в сотрудничестве с алхимиками.</p>
<p class="viv-text">Единственное подтверждение квалификации, которое признают во всех землях без исключения, — это <b>лицензия Анклава</b>, выданная кафедрой вивисекции. Но получить её удаётся немногим: слишком дорого, слишком долго, слишком хлопотно. Поэтому в каждом королевстве вивисекторы преимущественно работают по местным правилам — свои разрешения, свои пошлины, свои границы дозволенного.</p>
<div class="viv-divider"></div>
<div class="viv-h2">Правила по землям</div>
<div class="viv-rel-grid">
<div class="viv-rel">
<div class="viv-rel-name">Империя Саргос</div>
<div class="viv-rel-desc">Вивисекция — узаконенный и уважаемый промысел. Разрешительную грамоту выдаёт императорский двор под печать старших советников, что ведают податями и делами гильдий. Раз в два года грамоту нужно подтверждать за отдельную пошлину — если только вивисектор не принадлежит к профильному роду.</div>
<div class="viv-rel-desc">Лишить грамоты могут за оставление опасной твари в городе без присмотра или за частую порчу городского имущества. Смерти в зубах тварей рассматриваются как форма убийства по неосторожности.</div>
<div class="viv-rel-desc">Вивисекторы селятся в предместьях столицы или в Суре, где и пошлины меньше, и надзора куда меньше. Одни держат «фермы», другие оказывают дворянам частные услуги по дрессировке, третьи служат при знатных домах постоянно, занимаясь селекцией тварей для боёв и других нужд. Если тварей в распоряжении независимого вивисектора больше десяти и он держит свой виварий в черте города — с него берут отдельный поголовный налог.</div>
</div>
<div class="viv-rel">
<div class="viv-rel-name">Республика Фортида</div>
<div class="viv-rel-desc">Чтобы стать вивисектором, нужно получить Патент. Его выдаёт Торговая палата Республики через локальных представителей. Пошлины и требования определяются и оспариваются на ежегодных собраниях.</div>
<div class="viv-rel-desc">Крупнейший город с вивисекторами — <span class="viv-city-tbd">город уточняется</span>.</div>
</div>
<div class="viv-rel">
<div class="viv-rel-name">Ландвиди</div>
<div class="viv-rel-desc">Разведением и приручением тварей в основном занимается Дом Свартгом. Какие-то особи выпускаются на вольные хлеба, какие-то держатся в изоляции. Охотники держат популяцию хищников в узде и занимаются разведением принципиально новых видов — по итогу бескрайние священные рощи диких лесов Ландвиди служат домом большому числу самых невероятных тварей и гибридов.</div>
<div class="viv-rel-desc">Чтобы разводить тварей в Ландвиди, требуется разрешение владельца отдельно взятой земли — как правило, одного из восьми глав правящих домов.</div>
</div>
<div class="viv-rel">
<div class="viv-rel-name">Моленгард</div>
<div class="viv-rel-desc">Вивисекция здесь не запрещена — тут и там выводятся породистые создания, которые подчёркивают статус их хозяина не хуже полного латного доспеха.</div>
<div class="viv-rel-desc">Промысел имеет статус сельского хозяйства и особых разрешений не требует, пока выводок созданий не начнёт представлять угрозу.</div>
<div class="viv-rel-desc">За небрежное обращение с созданиями предусмотрено наказание. Если тварь убивает человека, дальнейшее зависит от происхождения владельца: благородный расплачивается компенсацией семье погибшего, а безродный владелец приговаривается к смерти немедленно.</div>
</div>
</div>
<div class="viv-divider"></div>
<div class="viv-h2">Известные угодья, породы и вивисекторы</div>
<p class="viv-text">Раздел зарезервирован под дальнейшее наполнение — конкретные фермы и вивариумы, выведенные породы тварей и именитых мастеров ремесла. Пока разделы пусты, их можно свернуть.</p>
<details class="viv-fold">
<summary>Известные угодья</summary>
<div class="viv-fold-body">
<div class="viv-v3 viv-texture">
<div class="viv-v3-top">
<div class="viv-v3-thumb">🏚</div>
<div>
<div class="viv-v3-name">Пример: Ферма Скального Уступа</div>
<div class="viv-v3-sub">
<span class="viv-v3-tag">Империя Саргос</span>
<span class="viv-v3-tag">виварий</span>
</div>
</div>
</div>
<div class="viv-v3-body">
<div class="viv-v3-mini-facts">
<span class="viv-v3-mini-fact"><b>—</b> голов</span>
<span class="viv-v3-mini-fact"><b>—</b> лицензия</span>
</div>
<p class="viv-v3-desc">Здесь будет краткое описание угодья — расположение, специализация, известные владельцы.</p>
<details class="viv-v3-fold">
<summary>Подробнее</summary>
<div>Полное описание угодья появится здесь.</div>
</details>
<div class="viv-v3-link">Профиль: <a href="#" target="_blank" rel="noopener">Ферма Скального Уступа — статья</a></div>
</div>
</div>
<div class="viv-stub-grid">
<div class="viv-stub-card"><span class="viv-stub-text">+ добавить угодье</span></div>
</div>
</div>
</details>
<details class="viv-fold">
<summary>Известные породы</summary>
<div class="viv-fold-body">
<div class="viv-v3 viv-texture">
<div class="viv-v3-top">
<div class="viv-v3-thumb">🐾</div>
<div>
<div class="viv-v3-name">Пример: Гнорн</div>
<div class="viv-v3-sub">
<span class="viv-v3-tag">повсеместно</span>
<span class="viv-v3-tag">рукотворный вид</span>
</div>
</div>
</div>
<div class="viv-v3-body">
<div class="viv-v3-mini-facts">
<span class="viv-v3-mini-fact"><b>—</b> размер</span>
<span class="viv-v3-mini-fact"><b>—</b> темперамент</span>
</div>
<p class="viv-v3-desc">Здесь будет краткое описание породы — источник свойств, где встречается, для чего разводится.</p>
<details class="viv-v3-fold">
<summary>Подробнее</summary>
<div>Полное описание породы появится здесь.</div>
</details>
<details class="viv-v3-fold">
<summary>Алхимия</summary>
<div>Что извлекают из этой твари — см. также каталог алхимических ингредиентов.</div>
</details>
<div class="viv-v3-link">Профиль: <a href="#" target="_blank" rel="noopener">Гнорн — бестиарий</a></div>
</div>
</div>
<div class="viv-stub-grid">
<div class="viv-stub-card"><span class="viv-stub-text">+ добавить породу</span></div>
</div>
</div>
</details>
<details class="viv-fold">
<summary>Известные вивисекторы</summary>
<div class="viv-fold-body">
<div class="viv-v3 viv-texture">
<div class="viv-v3-top">
<div class="viv-v3-thumb">👤</div>
<div>
<div class="viv-v3-name">Пример: Мастер Кассий</div>
<div class="viv-v3-sub">
<span class="viv-v3-tag">Империя Саргос</span>
<span class="viv-v3-tag">лицензия Анклава</span>
</div>
</div>
</div>
<div class="viv-v3-body">
<div class="viv-v3-mini-facts">
<span class="viv-v3-mini-fact"><b>—</b> лет практики</span>
<span class="viv-v3-mini-fact"><b>—</b> специализация</span>
</div>
<p class="viv-v3-desc">Здесь будет краткое досье персоны — чем известен, с кем сотрудничает, репутация.</p>
<details class="viv-v3-fold">
<summary>Подробнее</summary>
<div>Полная биография появится здесь.</div>
</details>
<div class="viv-v3-link">Профиль: <a href="#" target="_blank" rel="noopener">Мастер Кассий — анкета персонажа</a></div>
</div>
</div>
<div class="viv-stub-grid">
<div class="viv-stub-card"><span class="viv-stub-text">+ добавить персону</span></div>
</div>
</div>
</details>
</div>
</div>
</div>[/html]