/* ============================================================================
   lines.css — тематический «кодекс» под каждую линейку, поверх style.css.
   Скоуп: body.line-changeling | line-vampire | line-mage | line-cod.
   Переопределяет шапку, раму, сайдбар, статью и контент-компоненты до уровня
   демо-прототипов. style.css не трогаем (база для главной/мобилки/поиска).
   ============================================================================ */

/* ------------------------------------------------------------- ТОКЕНЫ ------ */
body.line-changeling{
  --L-metal:#caa85f; --L-metal-1:#ecd7a0; --L-metal-2:#9a7d3e; --L-line:#b6924c;
  --L-accent:#5fb27e; --L-accent-1:#8fe0ad; --L-accent-deep:#1f5a36;
  --L-ink:#efe6cf; --L-text:#cfc8b4; --L-muted:#9aa491;
  --L-surface:rgba(12,19,15,.62); --L-sidebar:rgba(9,15,11,.34); --L-bd:#2b3a30; --L-bd-soft:#22302a;
  --L-active:linear-gradient(100deg,rgba(120,28,28,.85),rgba(90,22,26,.7)); --L-active-bd:#9a7d3e;
  --L-bg:
    radial-gradient(150% 95% at 80% -12%, rgba(70,125,90,.40), transparent 55%),
    radial-gradient(120% 80% at 5% 2%, rgba(45,95,80,.24), transparent 50%),
    radial-gradient(120% 120% at 50% 120%, rgba(5,14,10,.9), transparent 60%),
    linear-gradient(180deg,#0a130f 0%,#070d0b 60%,#05090700 100%), #06100c;
  --L-green-tint:rgba(70,140,95,.13); --L-green-bd:rgba(120,210,150,.32);
  --L-red-tint:rgba(150,45,40,.14); --L-red-bd:rgba(205,100,95,.32);
}
body.line-vampire{
  --L-metal:#aaa496; --L-metal-1:#d9d3c5; --L-metal-2:#6b665b; --L-line:#8c8676;
  --L-accent:#c8453b; --L-accent-1:#e3776e; --L-accent-deep:#7d1c1c;
  --L-ink:#ece2d3; --L-text:#c4c3c1; --L-muted:#928c84;
  --L-surface:rgba(17,11,11,.58); --L-sidebar:rgba(14,9,9,.34); --L-bd:#352928; --L-bd-soft:#2a2120;
  --L-active:linear-gradient(100deg,rgba(125,28,28,.92),rgba(80,18,18,.72)); --L-active-bd:#7d1c1c;
  --L-bg:
    radial-gradient(150% 90% at 50% -14%, rgba(165,35,32,.38), transparent 52%),
    radial-gradient(90% 70% at 92% 6%, rgba(110,22,22,.26), transparent 50%),
    radial-gradient(120% 120% at 50% 120%, rgba(10,3,3,.92), transparent 60%),
    linear-gradient(180deg,#110909 0%,#0a0606 60%,#06040400 100%), #0a0606;
}
body.line-mage{
  --L-metal:#c9b377; --L-metal-1:#ecdfb4; --L-metal-2:#857347; --L-line:#a8935a;
  --L-accent:#9c84e0; --L-accent-1:#c6b6f6; --L-accent-deep:#3a2f66;
  --L-ink:#eae6f4; --L-text:#c6c4d6; --L-muted:#8f8aa4;
  --L-surface:rgba(14,12,25,.6); --L-sidebar:rgba(11,9,20,.34); --L-bd:#2a2742; --L-bd-soft:#211e38;
  --L-active:linear-gradient(100deg,rgba(95,74,180,.6),rgba(60,48,120,.48)); --L-active-bd:#3a2f66;
  --L-bg:
    radial-gradient(150% 95% at 50% -14%, rgba(125,92,225,.34), transparent 52%),
    radial-gradient(80% 60% at 88% 2%, rgba(200,170,95,.14), transparent 50%),
    radial-gradient(120% 120% at 50% 120%, rgba(5,4,12,.92), transparent 60%),
    linear-gradient(180deg,#0e0c1c 0%,#0a0813 60%,#06051000 100%), #08070f;
  --L-green-tint:rgba(120,95,210,.13); --L-green-bd:rgba(150,125,230,.30);
}
body.line-cod{
  --L-metal:#8f9aa3; --L-metal-1:#cdd6dd; --L-metal-2:#566169; --L-line:#727d86;
  --L-accent:#b1453f; --L-accent-1:#d27a73; --L-accent-deep:#6e1f1c;
  --L-ink:#eef2f5; --L-text:#c2cbd2; --L-muted:#8a949c;
  --L-surface:rgba(17,23,29,.58); --L-sidebar:rgba(13,18,23,.34); --L-bd:#28323a; --L-bd-soft:#202931;
  --L-active:linear-gradient(100deg,rgba(120,40,36,.72),rgba(80,26,24,.56)); --L-active-bd:#6e1f1c;
  --L-bg:
    radial-gradient(150% 85% at 50% -16%, rgba(80,100,118,.26), transparent 54%),
    radial-gradient(120% 120% at 50% 120%, rgba(5,9,13,.88), transparent 60%),
    linear-gradient(180deg,#111922 0%,#0b1016 62%,#080b0f00 100%), #0a0f14;
}

/* маппинг глобальных токенов style.css → токены линейки: var-based компоненты
   (cl-*, ctl-*, blockquote, cod-*) перекрашиваются автоматически */
body[class*="line-"]{
  --surface: var(--L-surface);
  --surface-2: var(--L-surface);
  --surface-3: var(--L-surface);
  --border: var(--L-bd);
  --gold: var(--L-metal);
  --gold-soft: var(--L-metal-1);
  --accent-bright: var(--L-accent-1);
  --ink: var(--L-ink);
  --text-muted: var(--L-muted);
}

/* ------------------------------------------------------ ФОН + ОВЕРЛЕЙ ------ */
body[class*="line-"]{ background:var(--L-bg) !important; background-attachment:fixed !important; color:var(--L-text); }
body[class*="line-"]::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(85% 65% at 50% 32%, transparent 44%, rgba(2,4,3,.55) 100%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.02'/%3E%3C/svg%3E");
}
body[class*="line-"] .app{ position:relative; z-index:1; }

/* ---------------------------------------------------------------- ШАПКА ---- */
body[class*="line-"] .header{
  background:linear-gradient(180deg,rgba(0,0,0,.34),rgba(0,0,0,0));
  border-bottom:none; margin-bottom:0;
}
body[class*="line-"] .header__container{ padding:16px 0 0; align-items:center; }
body[class*="line-"] .logo__img{ display:none; }
body[class*="line-"] .logo__wordmark{ display:inline-flex; align-items:center; gap:11px; font-family:var(--second-family); font-size:23px; letter-spacing:.04em; line-height:1; color:var(--L-metal-1); text-decoration:none; white-space:nowrap; }
body[class*="line-"] .logo__wordmark:hover{ color:var(--L-metal); }
body[class*="line-"] .logo__emblem{ width:19px; height:19px; color:var(--L-metal); flex-shrink:0; filter:drop-shadow(0 0 6px color-mix(in srgb,var(--L-metal) 50%,transparent)); }
body[class*="line-"] .menu{ gap:6px; width:auto; }
body[class*="line-"] .menu__link{
  font-family:var(--second-family); font-size:15px; letter-spacing:.05em;
  color:#b9c1b8; padding:8px 14px; border-radius:6px; position:relative;
  background:transparent !important; transition:color .2s;
}
body[class*="line-"] .menu__link:hover{ color:var(--L-metal-1); background:rgba(255,255,255,.04) !important; }
body[class*="line-"] .menu__link.active,
body[class*="line-"] .current-page-ancestor>.menu__link,
body[class*="line-"] .current-menu-item>.menu__link{ color:var(--L-metal-1); background:transparent !important; }
body[class*="line-"] .menu__link.active::after,
body[class*="line-"] .current-page-ancestor>.menu__link::after,
body[class*="line-"] .current-menu-item>.menu__link::after{
  content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;
  background:linear-gradient(90deg,transparent,var(--L-metal),transparent);
}
/* орнамент-разделитель под шапкой */
.cdx-rule{ display:flex; align-items:center; gap:14px; max-width:1400px; margin:0 auto; padding:10px 24px 18px; }
.cdx-rule::before,.cdx-rule::after{ content:""; height:1px; flex:1; }
body[class*="line-"] .cdx-rule::before{ background:linear-gradient(90deg,transparent,var(--L-line)); }
body[class*="line-"] .cdx-rule::after{ background:linear-gradient(90deg,var(--L-line),transparent); }
.cdx-rule__d{ width:20px; height:20px; flex-shrink:0; }
body[class*="line-"] .cdx-rule__d{ color:var(--L-metal); filter:drop-shadow(0 0 8px color-mix(in srgb,var(--L-metal) 55%,transparent)); }
body:not([class*="line-"]) .cdx-rule{ display:none; }

/* бургер только на мобилке (на десктопе меню целиком) */
body[class*="line-"] .header__burger{ display:none; }
@media(max-width:760px){
  body[class*="line-"] .header__nav{ display:none; }
  body[class*="line-"] .header__burger{ display:block; }
}

/* ----------------------------------------------------- РАМА (.disciplines) -- */
body[class*="line-"] .disciplines-layout{
  position:relative; background:var(--L-surface); border:1px solid var(--L-metal-2);
  border-radius:0; box-shadow:0 30px 80px rgba(0,0,0,.5), inset 0 0 70px rgba(0,0,0,.3);
  margin-top:6px; overflow:visible;
}
body[class*="line-"] .disciplines-layout::before{
  content:""; position:absolute; inset:5px; pointer-events:none; z-index:2; border-radius:0;
  border:1px solid color-mix(in srgb,var(--L-line) 38%,transparent);
}
.codex-corner{ position:absolute; width:48px; height:48px; pointer-events:none; z-index:4; color:#8f9aa3; opacity:.95; }
body[class*="line-"] .codex-corner{ color:var(--L-metal); }
.codex-corner--tl{ top:-3px; left:-3px; }
.codex-corner--tr{ top:-3px; right:-3px; transform:scaleX(-1); }
.codex-corner--bl{ bottom:-3px; left:-3px; transform:scaleY(-1); }
.codex-corner--br{ bottom:-3px; right:-3px; transform:scale(-1); }
body:not([class*="line-"]) .codex-corner{ display:none; }

/* --------------------------------------------------------------- САЙДБАР ---- */
body[class*="line-"] .sidebar{ background:var(--L-sidebar); border-right:1px solid var(--L-bd); position:relative; }
body[class*="line-"] .sidebar__nav{ max-height:none; overflow-x:hidden; scrollbar-width:thin; scrollbar-color:var(--L-metal-2) transparent; }
/* десктоп: высота сайдбара = высоте контента (inner вынут из потока),
   список скроллится ВНУТРИ, только если длиннее контента — без растягивания страницы */
@media(min-width:821px){
  body[class*="line-"] .sidebar{ padding:0; }
  body[class*="line-"] .sidebar__inner{ position:absolute; inset:0; display:flex; flex-direction:column; }
  body[class*="line-"] .sidebar__nav{ flex:1 1 auto; min-height:0; overflow-y:auto; }
}
body[class*="line-"] .sidebar__nav::-webkit-scrollbar{ width:8px; height:0; }
body[class*="line-"] .sidebar__nav::-webkit-scrollbar-track{ background:transparent; }
body[class*="line-"] .sidebar__nav::-webkit-scrollbar-thumb{ background:var(--L-bd); border-radius:4px; border:2px solid transparent; background-clip:padding-box; }
body[class*="line-"] .sidebar__nav::-webkit-scrollbar-thumb:hover{ background:var(--L-metal-2); background-clip:padding-box; }
body[class*="line-"] .discipline-group__title,
body[class*="line-"] .discipline-group__word,
body[class*="line-"] .discipline-list__link,
body[class*="line-"] .sidebar__search-input,
body[class*="line-"] .sidebar__filter-select{ box-sizing:border-box; max-width:100%; }
body[class*="line-"] .sidebar__inner{ padding:32px 24px 26px; }
body[class*="line-"] .sidebar__back{ margin:0 0 10px; }
body[class*="line-"] .sidebar__inner h2,
body[class*="line-"] .sidebar__inner h2 a{ color:var(--L-metal-1); }
body[class*="line-"] .sidebar__back{ color:var(--L-muted); opacity:.9; font-family:var(--second-family); letter-spacing:.04em; }
body[class*="line-"] .sidebar__back:hover{ color:var(--L-accent-1); opacity:1; }
body[class*="line-"] .sidebar__search-input{ background:rgba(0,0,0,.32); border:1px solid var(--L-bd); color:var(--L-ink); border-radius:9px; padding:11px 14px; width:calc(100% - 6px); }
body[class*="line-"] .sidebar__filter-select{ background:rgba(0,0,0,.32); border:1px solid var(--L-bd); border-radius:9px; }
body[class*="line-"] .discipline-group{ margin-top:18px; }
body[class*="line-"] .discipline-group__word{
  background:rgba(0,0,0,.28); color:var(--L-muted); border:1px solid var(--L-bd-soft);
  border-radius:6px; letter-spacing:.08em; font-family:var(--second-family);
}
body[class*="line-"] .discipline-group__title{
  position:relative; border:1px solid var(--L-bd); border-radius:11px; background:rgba(0,0,0,.2);
  color:#d8d1c2; padding:12px 16px 12px 40px; margin-bottom:8px;
  font-family:var(--second-family); font-size:16px; letter-spacing:.01em;
  transition:border-color .2s, background .2s, color .2s;
}
/* глиф линейки слева у пунктов сайдбара */
body[class*="line-"] .discipline-group__title::before{
  content:""; position:absolute; left:15px; top:50%; width:11px; height:11px; transform:translateY(-50%) rotate(45deg);
  border:1px solid var(--L-metal-2); background:color-mix(in srgb,var(--L-metal) 18%,transparent);
}
body[class*="line-"] .discipline-group__title:hover{ background:rgba(255,255,255,.04); border-color:var(--L-metal-2); color:var(--L-metal-1); }
body[class*="line-"] .discipline-group__title.active,
body[class*="line-"] .discipline-list__link.active{
  background:var(--L-active) !important; border-color:var(--L-active-bd); color:#f3e9d8;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--L-metal) 22%,transparent);
}
body[class*="line-"] .discipline-group__title.active::before{ border-color:var(--L-metal-1); background:var(--L-metal); }
body[class*="line-"] .discipline-group__points{ background:rgba(0,0,0,.4); color:var(--L-metal-1); }
body[class*="line-"] .discipline-group__req{ color:var(--L-muted); }
body[class*="line-"] .discipline-list__link{ color:#cfc9bb; font-family:var(--second-family); }

/* --------------------------------------------------------------- СТАТЬЯ ---- */
body[class*="line-"] .main-content{ background:transparent; }
body[class*="line-"] article h1{ color:var(--L-ink); text-shadow:0 2px 34px color-mix(in srgb,var(--L-accent) 24%,transparent); }
body[class*="line-"] article h2, body[class*="line-"] article h3{ color:var(--L-metal-1); }
body[class*="line-"] article p, body[class*="line-"] article ul, body[class*="line-"] article ol{ color:var(--L-text); }
body[class*="line-"] article a{ color:var(--L-accent-1); border-bottom-color:color-mix(in srgb,var(--L-accent) 45%,transparent); }
body[class*="line-"] article a:hover{ color:var(--L-accent-1); border-bottom-color:var(--L-accent-1); }
body[class*="line-"] article li::marker{ color:var(--L-metal); }
body[class*="line-"] .child-pages-links{ border-top:1px solid var(--L-bd); }
body[class*="line-"] .child-pages-links a{ color:var(--L-accent-1); }

/* пилюли: уровень дисциплины / тег линейки */
body[class*="line-"] .discipline-title{
  display:inline-flex; align-items:center; gap:8px; font-family:var(--second-family);
  font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--L-metal-1);
  border:1px solid var(--L-metal-2); background:color-mix(in srgb,var(--L-metal) 8%,transparent);
  padding:6px 14px; border-radius:999px; margin-bottom:16px;
}
body[class*="line-"] .line-game-tag{ border-radius:999px; padding:5px 14px; font-family:var(--second-family); letter-spacing:.04em; }

/* ---- CHANGELING: обличья (.ctl-*) — без двойного канта, панели с медальоном */
body.line-changeling .ctl-block{ background:rgba(9,15,11,.5); border:1px solid var(--L-bd); border-left:1px solid var(--L-bd); border-radius:12px; }
body.line-changeling .ctl-subtitle{ color:var(--L-metal-1); }
body.line-changeling .ctl-regalia{ color:#e9c9a3; border:1px solid var(--L-accent-deep); background:linear-gradient(100deg,rgba(110,30,30,.4),rgba(80,24,24,.3)); border-radius:999px; padding:5px 14px; }
body.line-changeling .ctl-rows{ gap:16px; }
body.line-changeling .ctl-row--blessing, body.line-changeling .ctl-row--curse{
  border-left:none; padding:16px 18px 16px 58px; border-radius:12px; border:1px solid; position:relative; grid-template-columns:150px 1fr;
}
body.line-changeling .ctl-row--blessing{ background:var(--L-green-tint); border-color:var(--L-green-bd); }
body.line-changeling .ctl-row--curse{ background:var(--L-red-tint); border-color:var(--L-red-bd); }
body.line-changeling .ctl-row--blessing .ctl-row__key{ color:var(--L-accent-1); }
body.line-changeling .ctl-row--curse .ctl-row__key{ color:#e89a93; }
body.line-changeling .ctl-row--blessing::before, body.line-changeling .ctl-row--curse::before{
  content:""; position:absolute; left:14px; top:15px; width:32px; height:32px; border-radius:50%;
  border:1px solid; background-repeat:no-repeat; background-position:center; background-size:18px 18px;
}
body.line-changeling .ctl-row--blessing::before{ border-color:var(--L-green-bd);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238fe0ad' stroke-width='1.3' stroke-linejoin='round'%3E%3Cpath d='M5 9l3-4h8l3 4-7 10L5 9z'/%3E%3Cpath d='M5 9h14M9 5l3 14M15 5l-3 14'/%3E%3C/svg%3E"); }
body.line-changeling .ctl-row--curse::before{ border-color:var(--L-red-bd);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e89a93' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5c5 1 11 1 16 0 0 7-3 14-8 14S4 12 4 5z'/%3E%3Cpath d='M9 10c.7-.8 1.8-.8 2.5 0M12.5 10c.7-.8 1.8-.8 2.5 0M10 15c1 .8 3 .8 4 0'/%3E%3C/svg%3E"); }

/* литеральные цвета прочих changeling-блоков → токены линейки */
body.line-changeling .ctl-kith-blessing{
  background:var(--L-surface); border:1px solid var(--L-bd);
  border-left:3px solid var(--L-metal); color:var(--L-text);
}
body.line-changeling .cl-bc__row{ border-left-color:var(--L-metal); }
body.line-changeling .cl-bc__row--blessing{ border-left-color:var(--L-accent); }
body.line-changeling .cl-bc__row--curse{ border-left-color:#cf6a64; }
body.line-changeling .cl-bc__row--blessing .cl-bc__label{ color:var(--L-accent-1); }
body.line-changeling .cl-court__crown{ color:#0d1410; }
body.line-changeling .ctl-court--spring{ border-left-color:var(--L-accent); }

/* ---- VAMPIRE: статблок силы (blockquote) ---- */
body.line-vampire article blockquote{ background:rgba(11,7,7,.5); border:1px solid var(--L-bd); border-radius:12px; }
body.line-vampire article blockquote strong, body.line-vampire article blockquote .fontstyle2{ color:var(--L-accent-1); }

/* ---- MAGE: статблок заклинания (strong-метки) ---- */
body.line-mage article strong, body.line-mage article b{ color:var(--L-accent-1); }

/* ---- CoD: карточки (.cod-*) ---- */
body.line-cod .cod-card{ background:rgba(11,16,21,.5); border:1px solid var(--L-bd); border-left:1px solid var(--L-bd); border-radius:12px; }
body.line-cod .cod-card--flaw.cod-card--env{ border-left:1px solid var(--L-bd); }
body.line-cod .cod-row__key{ color:var(--L-muted); }

/* ----------------------------------------------------------------- ФУТЕР ---- */
body[class*="line-"] .footer{ background:transparent; border-top:1px solid var(--L-metal-2); position:relative; }
body[class*="line-"] .footer__container{ flex-direction:column; gap:7px; padding-top:6px; }
body[class*="line-"] .footer__emblem{ width:18px; height:18px; color:var(--L-metal); flex-shrink:0; filter:drop-shadow(0 0 6px color-mix(in srgb,var(--L-metal) 45%,transparent)); }
body[class*="line-"] .footer__copy{ color:var(--L-muted); font-family:var(--second-family); letter-spacing:.04em; margin:0; }

/* ------------------------------------------------ ГЛАВНАЯ: рама + карточки -- */
body[class*="line-"] .info-block{
  position:relative; background:var(--L-surface); border:1px solid var(--L-metal-2);
  border-radius:0; padding:42px 48px; margin-top:24px;
  box-shadow:0 26px 70px rgba(0,0,0,.45), inset 0 0 70px rgba(0,0,0,.28);
}
body[class*="line-"] .info-block::before{
  content:""; position:absolute; inset:6px; pointer-events:none; border-radius:0;
  border:1px solid color-mix(in srgb,var(--L-line) 38%,transparent);
}
body[class*="line-"] .info-block__title,
body[class*="line-"] .info-block__content{ position:relative; z-index:1; }
body[class*="line-"] .info-block__title{ color:var(--L-ink); text-shadow:0 2px 30px color-mix(in srgb,var(--L-accent) 22%,transparent); }
body[class*="line-"] .info-block__content{ color:var(--L-text); }
body[class*="line-"] .info-block__content h2,
body[class*="line-"] .info-block__content h3{ color:var(--L-metal-1); }
body[class*="line-"] .info-block__content li::marker{ color:var(--L-metal); }
body[class*="line-"] .info-block .codex-corner{ width:48px; height:48px; }

/* карточки разделов */
body[class*="line-"] .card{ border:1px solid var(--L-bd); border-radius:0; box-shadow:0 8px 24px rgba(0,0,0,.35); transition:border-color .2s, box-shadow .2s, transform .2s; }
body[class*="line-"] .card:hover{ border-color:var(--L-metal-2); box-shadow:0 14px 36px rgba(0,0,0,.5), 0 0 0 1px color-mix(in srgb,var(--L-metal) 25%,transparent); transform:translateY(-2px); }
body[class*="line-"] .card:hover .codex-corner{ color:var(--L-metal-1); }
/* виньетки внутри карточки (overflow:hidden обрезает внешние) */
body[class*="line-"] .card .codex-corner{ width:30px; height:30px; z-index:2; opacity:.92; }
body[class*="line-"] .card .codex-corner--tl{ top:5px; left:5px; }
body[class*="line-"] .card .codex-corner--tr{ top:5px; right:5px; }
body[class*="line-"] .card .codex-corner--bl{ bottom:5px; left:5px; }
body[class*="line-"] .card .codex-corner--br{ bottom:5px; right:5px; }
body[class*="line-"] .card__title{ color:var(--L-metal-1); text-shadow:0 2px 12px rgba(0,0,0,.7); }
body[class*="line-"] .card::before{ background:linear-gradient(200deg, color-mix(in srgb,var(--L-surface) 30%,transparent) 40%, rgba(4,7,6,.92) 88%); }

/* ===================== Страница «Стремления» (page-stremleniya) ============= */
.codex-page{ position:relative; max-width:1200px; margin:6px auto 54px; padding:46px 52px 54px; }
body[class*="line-"] .codex-page{ background:var(--L-surface); border:1px solid var(--L-metal-2);
  box-shadow:0 30px 80px rgba(0,0,0,.5), inset 0 0 80px rgba(0,0,0,.3); }
body[class*="line-"] .codex-page::before{ content:""; position:absolute; inset:6px; pointer-events:none;
  border:1px solid color-mix(in srgb,var(--L-line) 38%,transparent); }
.codex-page>.asp{ position:relative; z-index:1; }
.codex-page>.codex-corner{ z-index:4; }

.asp__back{ display:inline-flex; align-items:center; gap:6px; font-family:var(--second-family); font-size:14px; letter-spacing:.04em; text-decoration:none; margin-bottom:8px; }
body[class*="line-"] .asp__back{ color:var(--L-muted); }
body[class*="line-"] .asp__back:hover{ color:var(--L-metal-1); }
.asp__title{ font-family:var(--second-family); font-size:clamp(2.4rem,4vw,3.4rem); line-height:1.05; margin:0 0 18px; letter-spacing:.02em; }
body[class*="line-"] .asp__title{ color:var(--L-ink); text-shadow:0 2px 30px color-mix(in srgb,var(--L-accent) 20%,transparent); }
.asp__intro{ max-width:76ch; }
body[class*="line-"] .asp__intro{ color:var(--L-text); font-size:18px; line-height:1.78; }
body[class*="line-"] .asp__intro p{ margin:0 0 1em; }
body[class*="line-"] .asp__intro strong, body[class*="line-"] .asp__intro em{ color:var(--L-metal-1); font-style:normal; }

.asp__section{ margin-top:44px; }
.cdx-section-rule{ display:flex; align-items:center; gap:18px; margin:0 0 28px; }
.cdx-section-rule span{ height:1px; flex:1; }
body[class*="line-"] .cdx-section-rule span:first-child{ background:linear-gradient(90deg,transparent,var(--L-line)); }
body[class*="line-"] .cdx-section-rule span:last-child{ background:linear-gradient(90deg,var(--L-line),transparent); }
.cdx-section-rule h2{ font-family:var(--second-family); font-size:clamp(1.3rem,2vw,1.7rem); letter-spacing:.05em; margin:0; white-space:nowrap; }
body[class*="line-"] .cdx-section-rule h2{ color:var(--L-metal-1); }

.asp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.asp-card{ margin:0; }
.asp-card__media{ position:relative; aspect-ratio:1/1; overflow:hidden; transition:border-color .2s; }
body[class*="line-"] .asp-card__media{ border:1px solid var(--L-bd); box-shadow:0 8px 24px rgba(0,0,0,.4); }
body[class*="line-"] .asp-card:hover .asp-card__media{ border-color:var(--L-metal-2); box-shadow:0 14px 34px rgba(0,0,0,.55); }
.asp-card__img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.asp-card:hover .asp-card__img{ transform:scale(1.05); }
.asp-card__media::after{ content:""; position:absolute; inset:0; pointer-events:none; z-index:1; }
body[class*="line-"] .asp-card__media::after{ background:linear-gradient(180deg, transparent 58%, rgba(4,7,6,.5)); }
.asp-card .codex-corner{ width:24px; height:24px; z-index:3; opacity:.85; }
.asp-card .codex-corner--tl{ top:8px; left:8px; } .asp-card .codex-corner--tr{ top:8px; right:8px; }
.asp-card .codex-corner--bl{ bottom:8px; left:8px; } .asp-card .codex-corner--br{ bottom:8px; right:8px; }
.asp-card__cap{ margin-top:15px; font-family:var(--second-family); font-size:16px; line-height:1.45; text-align:center; }
body[class*="line-"] .asp-card__cap{ color:var(--L-metal-1); }

@media(max-width:1000px){ .asp-grid{ grid-template-columns:repeat(2,1fr); gap:20px; } .codex-page{ padding:34px 26px 40px; } }
@media(max-width:560px){ .asp-grid{ grid-template-columns:1fr; } }

/* ===================== Страница «Оружие и Броня» + cod-таблицы ============== */
.wpn__search{ position:relative; max-width:540px; margin:26px 0 6px; }
.wpn__search svg{ position:absolute; left:16px; top:50%; transform:translateY(-50%); width:18px; height:18px; }
body[class*="line-"] .wpn__search svg{ color:var(--L-muted); }
.wpn__search input{ width:100%; box-sizing:border-box; padding:13px 18px 13px 46px; font-family:inherit; font-size:16px; border-radius:9px; }
body[class*="line-"] .wpn__search input{ background:rgba(0,0,0,.32); border:1px solid var(--L-bd); color:var(--L-ink); }
body[class*="line-"] .wpn__search input::placeholder{ color:var(--L-muted); }
body[class*="line-"] .wpn__search input:focus{ outline:none; border-color:var(--L-metal-2); box-shadow:0 0 0 3px color-mix(in srgb,var(--L-metal) 14%,transparent); }
.wpn__empty{ margin:14px 0; font-size:16px; }
body[class*="line-"] .wpn__empty{ color:var(--L-muted); }
body[class*="line-"] .wpn__empty .wpn__term{ color:var(--L-metal-1); }

body[class*="line-"] .cod-section-title{ font-family:var(--second-family); color:var(--L-metal-1); border-bottom:1px solid var(--L-bd); margin:34px 0 14px; }
body[class*="line-"] .cod-table-wrap{ border:1px solid var(--L-bd); border-radius:0; background:var(--L-surface); }
body[class*="line-"] .cod-table thead th{ background:rgba(0,0,0,.34); color:var(--L-metal-1); border-bottom:1px solid var(--L-metal-2); }
body[class*="line-"] .cod-table th, body[class*="line-"] .cod-table td{ border-bottom:1px solid var(--L-bd-soft); }
body[class*="line-"] .cod-table tbody tr:nth-child(even){ background:rgba(0,0,0,.20); }
body[class*="line-"] .cod-table tbody tr:hover{ background:color-mix(in srgb,var(--L-metal) 12%, transparent); }
body[class*="line-"] .cod-table td:first-child{ color:var(--L-ink); }
body[class*="line-"] .cod-table__group td{ background:rgba(0,0,0,.34); color:var(--L-metal); }
body[class*="line-"] .cod-legend{ color:var(--L-text); margin-top:18px; }
body[class*="line-"] .cod-legend summary{ color:var(--L-metal); }
body[class*="line-"] .cod-legend summary:hover{ color:var(--L-metal-1); }
body[class*="line-"] .cod-legend strong{ color:var(--L-metal-1); }

/* ----------------------------------- МОБИЛЬНОЕ МЕНЮ-САЙДБАР (оверлей) ------- */
@media(max-width:768px){
  body[class*="line-"] .sidebar__nav.active{ background:var(--L-bg); padding:16px 16px 30px; }
  body[class*="line-"] .sidebar__nav.active .discipline-group{ display:block; width:100%; margin:0 0 4px; }
  body[class*="line-"] .sidebar__nav.active .discipline-group__title{ width:100% !important; box-sizing:border-box; float:none; margin:0 0 8px; }
  body[class*="line-"] .sidebar__nav.active .discipline-group__word{ margin-top:10px; }
  body[class*="line-"] .sidebar__nav.active .sidebar__search-input{ width:100%; }
  body[class*="line-"] .sidebar__search-btn-close.btn,
  body[class*="line-"] .sidebar__search-btn.btn{ background:var(--L-active); border:1px solid var(--L-active-bd); color:#f3e9d8; border-radius:9px; padding:9px 20px; font-family:var(--second-family); letter-spacing:.03em; }
}

/* --------------------------------------------------------------- МОБИЛКА ---- */
@media(max-width:820px){
  body[class*="line-"] .codex-corner{ width:34px; height:34px; }
  body[class*="line-"] .disciplines-layout{ margin-left:6px; margin-right:6px; }
  body.line-changeling .ctl-row--blessing, body.line-changeling .ctl-row--curse{ padding-left:18px; }
  body.line-changeling .ctl-row--blessing::before, body.line-changeling .ctl-row--curse::before{ display:none; }
}

/* ============================================================================
   HUNTER: THE VIGIL — скин «Пепел и Уголёк» (body.line-hunter).
   Пепельно-оловянный металл + янтарный уголёк-акцент на угле; отсвет костра снизу.
   ============================================================================ */
body.line-hunter{
  --L-metal:#a89a86; --L-metal-1:#e3d8c3; --L-metal-2:#6b5d49; --L-line:#867860;
  --L-accent:#e0863a; --L-accent-1:#f4ab5c; --L-accent-deep:#7a3413;
  --L-ink:#f5eee1; --L-text:#cec2ac; --L-muted:#9d917c;
  --L-surface:rgba(23,17,11,.6); --L-sidebar:rgba(17,12,7,.34); --L-bd:#3d3122; --L-bd-soft:#2f2617;
  --L-active:linear-gradient(100deg,rgba(201,105,35,.6),rgba(126,58,20,.46)); --L-active-bd:#7a3413;
  --L-bg:
    radial-gradient(125% 80% at 50% 122%, rgba(228,138,60,.34), transparent 56%),
    radial-gradient(95% 60% at 50% -12%, rgba(150,84,36,.15), transparent 55%),
    radial-gradient(120% 120% at 50% 120%, rgba(6,4,2,.92), transparent 60%),
    linear-gradient(180deg,#110c07 0%,#0b0805 60%,#07050300 100%), #0b0806;
  --L-green-tint:rgba(70,140,95,.12); --L-green-bd:rgba(120,205,150,.30);
  --L-red-tint:rgba(160,60,40,.14); --L-red-bd:rgba(210,115,80,.32);
}

/* строка бейджей под заголовком: ярус / Достижение / источник-дополнение */
.htv-meta{ display:flex; flex-wrap:wrap; gap:9px; align-items:center; margin:0 0 22px; }
.htv-pill{ display:inline-flex; align-items:center; gap:7px; font-family:var(--second-family);
  font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; padding:5px 13px; border-radius:999px;
  border:1px solid currentColor; white-space:nowrap; line-height:1.1; }
body.line-hunter .htv-tier{ color:var(--L-metal-1); border-color:var(--L-metal-2);
  background:color-mix(in srgb,var(--L-metal) 9%,transparent); }
body.line-hunter .htv-tier--conspiracy{ color:#f4c089; border-color:var(--L-accent-deep);
  background:linear-gradient(100deg,rgba(184,86,28,.30),rgba(120,52,18,.22)); }
body.line-hunter .htv-endow{ color:var(--L-accent-1); border-color:color-mix(in srgb,var(--L-accent) 48%,transparent);
  background:color-mix(in srgb,var(--L-accent) 9%,transparent); }
body.line-hunter .htv-source{ color:#e8d0a6; border-color:color-mix(in srgb,var(--L-accent) 42%,transparent);
  background:color-mix(in srgb,var(--L-accent) 8%,transparent); }
.htv-source::before{ content:""; width:11px; height:13px; flex-shrink:0; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4c3.4 4.1 5.2 7 5.2 10a5.2 5.2 0 0 1-10.4 0c0-1.8.7-3.4 1.9-4.9-.3 1.9.5 3 1.7 3.4-.9-2.6.4-5 1.6-8.5z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.4c3.4 4.1 5.2 7 5.2 10a5.2 5.2 0 0 1-10.4 0c0-1.8.7-3.4 1.9-4.9-.3 1.9.5 3 1.7 3.4-.9-2.6.4-5 1.6-8.5z'/%3E%3C/svg%3E") center/contain no-repeat; }

/* блок Статуса организации (уровни •/•••/•••••) */
.htv-status{ margin:28px 0 6px; border:1px solid var(--L-bd); border-radius:12px; overflow:hidden; }
body.line-hunter .htv-status{ background:var(--L-surface); }
.htv-status__h{ margin:0; padding:12px 18px; font-family:var(--second-family); font-size:16px; letter-spacing:.04em; }
body.line-hunter .htv-status__h{ color:var(--L-metal-1); background:rgba(0,0,0,.28); border-bottom:1px solid var(--L-bd); }
.htv-status__row{ display:grid; grid-template-columns:70px 1fr; gap:14px; padding:13px 18px; align-items:start; }
.htv-status__row + .htv-status__row{ border-top:1px solid var(--L-bd-soft); }
.htv-status__dots{ font-size:15px; letter-spacing:2px; }
body.line-hunter .htv-status__dots{ color:var(--L-accent-1); }
body.line-hunter .htv-status__row p{ margin:0; color:var(--L-text); }

/* статблоки Достижений и Тактик — панель blockquote + метки-уголёк */
body.line-hunter article blockquote{ background:rgba(18,12,7,.5); border:1px solid var(--L-bd); border-radius:12px; }
body.line-hunter article blockquote strong, body.line-hunter article blockquote .fontstyle2{ color:var(--L-accent-1); }
body.line-hunter .cod-card{ background:rgba(20,14,8,.5); border:1px solid var(--L-bd); border-left:1px solid var(--L-bd); border-radius:12px; }
body.line-hunter .cod-row__key{ color:var(--L-muted); }

/* чипы (Профессии: Навыки; мета тактик) */
.htv-chips{ display:flex; flex-wrap:wrap; gap:8px; margin:2px 0 14px; }
.htv-chip{ display:inline-flex; font-size:13px; letter-spacing:.02em; padding:5px 12px; border-radius:8px;
  font-family:var(--second-family); }
body.line-hunter .htv-chip{ color:var(--L-metal-1); border:1px solid var(--L-bd); background:rgba(0,0,0,.24); }
body.line-hunter .htv-chip b{ color:var(--L-accent-1); font-weight:600; }

/* статблок-таблица Тактики (ключ/значение) */
.htv-stat{ margin:0 0 18px; border:1px solid var(--L-bd); border-radius:12px; overflow:hidden; }
body.line-hunter .htv-stat{ background:var(--L-surface); }
.htv-stat__row{ display:grid; grid-template-columns:160px 1fr; gap:14px; padding:11px 18px; }
.htv-stat__row + .htv-stat__row{ border-top:1px solid var(--L-bd-soft); }
.htv-stat__k{ font-family:var(--second-family); letter-spacing:.03em; }
body.line-hunter .htv-stat__k{ color:var(--L-accent-1); }
body.line-hunter .htv-stat__v{ color:var(--L-text); }
@media(max-width:560px){ .htv-stat__row{ grid-template-columns:1fr; gap:3px; } }
