/* Khronika Media — «редакционный брутализм» (spec 0009, 2026-06-28)
   Дисциплина Swiss-grid (хайрлайны, ноль теней, плотность) + лицо Хроники
   (сериф в заголовках, печатная машинка в лейблах, один красный акцент).
   Sans-слой UI — системный (OPSEC: без Google Fonts).
*/

:root{
  --paper:#f4f0e6;       /* холст */
  --raised:#fbf8f1;      /* приподнятая поверхность / карточки */
  --ink:#16140f;         /* основной графит */
  --ink-soft:#403c34;    /* вторичный тёмный */
  --muted:#6f6a5d;       /* приглушённый текст */
  --line:#ddd6c5;        /* хайрлайн — несущая структура */
  --line-2:#c7bea9;      /* акцентный разделитель */
  --rule:#16140f;        /* тяжёлая линия (3px) */
  --accent:#c4362e;      /* единственный акцент */
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --serif:"EB Garamond",Georgia,serif;
  --type:"Special Elite","Courier New",monospace;
  --mono:"IBM Plex Mono",Menlo,monospace;
}

*{ box-sizing:border-box; }

html,body{
  margin:0; padding:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
body{ max-width:680px; margin:0 auto; padding:0 22px 64px; }
body.layout-wide{ max-width:1120px; }

a{ color:var(--ink); text-decoration:none; }
a:hover{ color:var(--accent); }

.mono{ font-family:var(--mono); }
.muted{ color:var(--muted); }
.kicker{
  font-family:var(--type); font-size:11px; text-transform:uppercase;
  letter-spacing:.16em; color:var(--muted);
}
.tick{ display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--accent); }

/* ───── Top utility band (чёрная служебная полоса, в край колонки) ───── */
.site-band{
  background:var(--ink); color:#e9e4d7; font-family:var(--mono); font-size:11px; letter-spacing:.04em;
  display:flex; align-items:center; justify-content:space-between; text-transform:uppercase;
  height:30px; padding:0 22px; margin:0 -22px 0;
}
.site-band .live{ display:inline-flex; align-items:center; gap:8px; }
.site-band b{ color:#fff; font-weight:500; }
.site-band .band-r{ color:#b3ad9d; }
.dot-live{
  width:7px; height:7px; border-radius:50%; background:var(--accent);
  animation:pulse 1.6s infinite;
}
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(196,54,46,.55); }
  70%{ box-shadow:0 0 0 6px rgba(196,54,46,0); }
  100%{ box-shadow:0 0 0 0 rgba(196,54,46,0); }
}

/* ───── Header / masthead ───── */
.site-header{
  display:flex; justify-content:space-between; align-items:flex-end;
  padding:16px 0 12px; margin-bottom:28px;
  border-bottom:3px solid var(--rule);
}
.logo{
  font-family:var(--type); color:var(--ink);
  display:inline-flex; flex-direction:column; gap:4px; line-height:1;
}
.logo-row{ display:inline-flex; align-items:baseline; gap:8px; font-size:28px; }
.logo-x{ letter-spacing:0; }
.logo-cursor{ color:var(--accent); animation:blink 1.1s step-end infinite; }
.logo-text{ font-size:17px; margin-left:2px; }
.logo-tag{
  display:block; font-family:var(--type); font-size:10px; text-transform:uppercase;
  letter-spacing:.2em; color:var(--muted); margin-top:4px;
}
@keyframes blink{ 50%{ opacity:0; } }

.site-nav{ display:flex; align-items:center; gap:18px; padding-bottom:3px; }
.site-nav a{
  font-family:var(--sans); font-size:13px; font-weight:600;
  text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft);
  padding-bottom:3px;
}
.site-nav a:hover{ color:var(--accent); }
.site-nav a.is-active{ color:var(--ink); border-bottom:3px solid var(--accent); }

.nav-toggle{ display:none; background:none; border:none; font-size:22px; color:var(--ink); cursor:pointer; }

/* ───── Headings ───── */
h1,h2,h3{
  font-family:var(--serif); font-weight:600; line-height:1.12;
  margin:1.4em 0 .4em; letter-spacing:-.01em;
}
h1{ font-size:34px; margin-top:0; font-weight:700; }
h2{ font-size:23px; }
h3{ font-size:18px; }
p{ margin:0 0 1em; }

/* Универсальный ярлык секции — инвертированная плашка (печатная машинка) */
.label-chip,
.home-section-title,
.dossier-section-title,
.home-feed-title,
.status-label{
  display:inline-block;
  font-family:var(--type); font-weight:400; font-size:10px;
  text-transform:uppercase; letter-spacing:.12em;
  background:var(--ink); color:var(--paper);
  padding:3px 8px; margin:0;
}

/* ───── Buttons ───── */
.btn{
  display:inline-flex; align-items:center; gap:7px; line-height:1;
  font-family:var(--sans); font-size:13px; font-weight:700;
  text-transform:uppercase; letter-spacing:.04em;
  padding:10px 18px; border:1.5px solid var(--ink); background:transparent; color:var(--ink);
  cursor:pointer;
}
.btn:hover{ background:var(--ink); color:var(--paper); }
.btn-tg{ background:var(--ink); color:var(--paper); }
.btn-tg:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }
.btn-secondary{ background:transparent; color:var(--ink); }
.btn-primary{ background:var(--ink); color:var(--paper); }
.btn-primary:hover{ background:var(--accent); border-color:var(--accent); color:#fff; }

/* ───── Home: hero ───── */
.home-hero{ padding:6px 0 0; border:none; margin-bottom:0; }
.home-hero .kicker{ display:block; margin-bottom:10px; }
.home-hero-title{
  font-family:var(--serif); font-weight:700; font-size:46px; line-height:1.0;
  letter-spacing:-.02em; margin:0 0 10px;
}
.home-hero-sub{ font-size:16px; color:var(--ink-soft); max-width:600px; margin:0 0 20px; line-height:1.45; }
.home-hero-links{ display:flex; flex-wrap:wrap; gap:10px; }

/* ───── Monument — живые счётчики ───── */
.monument{
  display:grid; grid-template-columns:repeat(3,1fr);
  border-top:3px solid var(--rule); border-bottom:3px solid var(--rule);
  margin:26px 0 0;
}
.stat{ padding:18px 22px; border-left:1px solid var(--line-2); }
.stat:first-child{ border-left:none; padding-left:0; }
.stat-label{
  font-family:var(--type); font-size:10px; text-transform:uppercase; letter-spacing:.12em;
  color:var(--muted); margin-bottom:10px; display:flex; align-items:center; gap:7px;
}
.stat-num{ font-family:var(--mono); font-weight:600; font-size:40px; line-height:.95; letter-spacing:-.02em; }
.stat-num.red{ color:var(--accent); }
.stat-meta{ font-size:12px; color:var(--muted); margin-top:6px; line-height:1.35; }

/* ───── Status / Footer ───── */
.status{ margin-top:56px; padding-top:20px; border-top:3px solid var(--rule); }

.site-footer{
  margin-top:64px; padding-top:20px; border-top:3px solid var(--rule);
  font-size:13px; color:var(--muted); font-family:var(--mono);
}
.site-footer p{ margin:0 0 .5em; }
.site-footer a{ color:var(--ink-soft); }

/* ───── Section header (generic, на главной/листингах) ───── */
.home-section{ margin-bottom:26px; }
.home-section-articles{ margin-top:30px; }
.home-section-header{
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:14px; padding-bottom:0; border:none;
}
.home-section-more,
.home-feed-more{
  font-family:var(--sans); font-size:11px; font-weight:600; text-transform:uppercase;
  letter-spacing:.05em; color:var(--muted);
}
.home-section-more:hover{ color:var(--accent); }

/* ───── Two-column above-the-fold ───── */
.home-twocol{
  display:grid; grid-template-columns:1.1fr 1fr; gap:0;
  border-top:1px solid var(--line-2); margin:28px 0;
  padding-top:18px;
}
.home-twocol > .home-section{ padding-right:28px; }
.home-twocol > .home-section + .home-section{
  padding-right:0; padding-left:28px; border-left:1px solid var(--line-2);
}

/* ───── Rank list (Лица режима) ───── */
.home-rank-list{ list-style:none; padding:0; margin:0; }
.home-rank-item{ border-bottom:1px solid var(--line); }
.home-rank-item:last-child{ border-bottom:none; }
.home-rank-link{
  display:grid; grid-template-columns:26px 1fr auto; gap:12px; align-items:center;
  padding:8px 0; color:var(--ink); line-height:1.2;
}
.home-rank-link:hover .home-rank-name{ color:var(--accent); }
.home-rank-num{ font-family:var(--mono); font-weight:600; font-size:12px; color:var(--ink); text-align:right; }
.home-rank-name{ font-family:var(--serif); font-size:18px; font-weight:600; }
.home-rank-father{ font-family:var(--serif); font-weight:400; font-size:12px; color:var(--muted); }
.home-rank-meta{ display:inline-flex; align-items:center; gap:8px; font-size:11px; }

/* ───── Mentions list ───── */
.home-mentions-list{ list-style:none; padding:0; margin:0; }
.home-mention{ padding:10px 0 11px; border-bottom:1px solid var(--line); }
.home-mention:last-child{ border-bottom:none; }
.home-mention-meta{
  margin:0 0 3px; font-family:var(--mono); font-size:11px; text-transform:uppercase;
  letter-spacing:.03em; color:var(--muted);
}
.home-mention-meta .cat{ color:var(--accent); font-weight:600; }
.home-mention-meta .dot{ margin:0 5px; }
.home-mention-title{
  margin:0 0 2px; font-family:var(--serif); font-size:16px; font-weight:600; line-height:1.22;
}
.home-mention-title a{ color:var(--ink); }
.home-mention-title a:hover{ color:var(--accent); }
.home-mention-lead{ margin:0; font-size:13px; line-height:1.4; color:var(--muted); }
.ext-link-icon{ font-size:.72em; color:var(--accent); margin-left:3px; vertical-align:super; }

/* ───── Article list (home feed + /news/) ───── */
.home-feed{ margin-top:40px; padding-top:18px; border-top:3px solid var(--rule); }
.article-list{ list-style:none; padding:0; margin:0; }
.article-item{ padding:16px 0; border-bottom:1px solid var(--line); }
.article-item:first-child{ padding-top:6px; }
.article-item:last-child{ border-bottom:none; }
.article-meta{
  font-family:var(--mono); font-size:11px; color:var(--muted); margin:0 0 5px;
  text-transform:uppercase; letter-spacing:.04em;
}
.article-meta .cat{ color:var(--accent); font-weight:600; }
.article-meta .dot{ margin:0 6px; }
.article-meta .ai-mark{ color:var(--muted); }
.article-meta a:hover{ color:var(--accent); }
.article-item-title{
  font-family:var(--serif); font-weight:600; font-size:21px; line-height:1.2; margin:0 0 5px;
}
.article-item-title a{ color:var(--ink); }
.article-item-title a:hover{ color:var(--accent); }
.article-item-subtitle{ font-size:14px; color:var(--muted); margin:0 0 6px; }
.article-item-lead{ margin:0; color:var(--ink-soft); font-size:14px; line-height:1.5; }

/* ───── Filters (news / dossier) ───── */
.newslist-title{ margin-bottom:10px; }
.newslist-intro{ margin-bottom:26px; color:var(--muted); }
.newslist-filters{
  margin:0 0 24px; padding:10px 0; border-top:1px solid var(--line-2); border-bottom:1px solid var(--line-2);
  font-family:var(--sans); font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.03em;
  display:flex; flex-wrap:wrap; gap:6px 16px;
}
.newslist-filters a{ color:var(--muted); }
.newslist-filters a.is-active,
.newslist-filters a:hover{ color:var(--accent); }

/* ───── Article (single) — длинный текст серифом ───── */
.article-header{ margin-bottom:26px; }
.article-hero{ margin:18px 0 22px; }
.article-hero img{ max-width:100%; height:auto; display:block; }
.article-title{ font-size:32px; margin:0 0 8px; }
.article-subtitle{ font-size:17px; color:var(--muted); font-style:italic; margin:0 0 18px; font-family:var(--serif); }
.article-lead{
  font-family:var(--serif); font-size:19px; line-height:1.5;
  border-left:3px solid var(--accent); padding-left:16px; margin:18px 0 30px; color:var(--ink);
}
.article-body{ font-family:var(--serif); font-size:19px; line-height:1.7; }
.article-body > *{ margin-bottom:1em; }
.block-paragraph{ font-size:1em; }
.block-heading{ font-family:var(--type); font-weight:400; font-size:15px; text-transform:uppercase; letter-spacing:.08em; margin:1.8em 0 .6em; }
.block-quote{ border-left:3px solid var(--line-2); padding:4px 0 4px 18px; margin:1.5em 0; font-style:italic; }
.block-quote-attr{ margin-top:8px; font-size:.8em; color:var(--muted); font-style:normal; font-family:var(--mono); }
.block-source{ font-family:var(--mono); font-size:.8em; color:var(--muted); border-left:2px solid var(--line-2); padding-left:14px; }
.block-source a{ color:var(--ink); }
.block-factbox{ background:var(--raised); border-left:3px solid var(--accent); padding:14px 18px; margin:1.5em 0; }
.block-factbox-title{ font-family:var(--type); font-size:10px; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); margin:0 0 6px; }
.block-factbox-body{ font-family:var(--serif); }
.block-factbox-body p:last-child{ margin-bottom:0; }
.block-image{ margin:1.5em 0; }
.block-image img{ max-width:100%; height:auto; display:block; }
.block-image figcaption{ font-size:.7em; color:var(--muted); margin-top:6px; font-style:italic; font-family:var(--sans); }

.article-tags{ margin-top:36px; padding-top:14px; border-top:1px solid var(--line-2); font-family:var(--mono); font-size:12px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.article-tags a{ color:var(--ink); }
.article-back{ margin-top:22px; font-family:var(--sans); font-weight:600; text-transform:uppercase; font-size:12px; letter-spacing:.05em; }
.pagination{ margin-top:36px; padding-top:14px; border-top:1px solid var(--line-2); display:flex; justify-content:space-between; align-items:center; font-family:var(--sans); font-weight:600; text-transform:uppercase; font-size:12px; letter-spacing:.04em; }

/* ───── Dossier ───── */
.dossier-section{ margin:30px 0; }
.dossier-section-title{ margin:0 0 14px; }
.dossier-photo{ margin:0 0 22px; max-width:240px; }
.dossier-photo img{ max-width:100%; height:auto; display:block; border:1px solid var(--line-2); }
.dossier-photo figcaption{ font-size:.8em; margin-top:4px; text-align:center; font-style:italic; color:var(--muted); }
.dossier-identifiers{ font-family:var(--mono); font-size:.8em; color:var(--muted); margin:-6px 0 16px; }

.dossier-positions,.dossier-sanctions{ list-style:none; padding:0; margin:0; }
.dossier-positions li,.dossier-sanctions li{ padding:8px 0; border-bottom:1px solid var(--line); font-size:14px; }
.dossier-positions li:last-child,.dossier-sanctions li:last-child{ border-bottom:none; }
.block-position-dates{ font-family:var(--mono); font-size:.85em; color:var(--muted); min-width:100px; display:inline-block; }
.block-position-title{ font-weight:600; }
.block-position-org{ color:var(--ink); }
.block-position-notes{ font-size:.88em; color:var(--muted); margin-left:6px; }
.block-sanction-juris{ display:inline-block; min-width:48px; font-family:var(--mono); font-weight:600; background:var(--ink); color:var(--paper); padding:1px 6px; text-align:center; font-size:.8em; margin-right:10px; }
.block-sanction-date{ font-family:var(--mono); color:var(--muted); margin-right:10px; font-size:.85em; }
.block-sanction-designation{ font-weight:600; }
.block-sanction-reason{ color:var(--ink); }
.block-sanction-link{ font-size:.8em; color:var(--muted); margin-left:8px; }
.block-sanction-link:hover{ color:var(--accent); }
.dossier-source-list{ padding-left:0; list-style:none; }
.dossier-source-list li{ padding:6px 0; border-bottom:1px solid var(--line); font-family:var(--mono); font-size:13px; }

/* Dossier index — поиск */
.dossier-search{ margin:12px 0 22px; display:flex; gap:0; border:1.5px solid var(--ink); max-width:520px; }
.dossier-search input{
  flex:1; padding:9px 12px; border:none; background:var(--paper); color:var(--ink);
  font-family:var(--mono); font-size:14px; outline:none;
}
.dossier-search button{
  padding:9px 18px; background:var(--ink); color:var(--paper); border:none; cursor:pointer;
  font-family:var(--sans); font-weight:700; text-transform:uppercase; font-size:12px; letter-spacing:.05em;
}
.dossier-search button:hover{ background:var(--accent); }
.dossier-spheres{ font-size:13px; }

/* Badges */
.dossier-badges{ margin:5px 0 0; font-size:13px; line-height:1.7; }
.dossier-badge{
  display:inline-block; padding:2px 8px; margin-right:6px;
  font-family:var(--type); font-size:11px; text-transform:uppercase; letter-spacing:.04em;
  border:1px solid var(--line-2); background:var(--paper); color:var(--ink);
}
.dossier-badge-cat{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.dossier-badge-role{ background:var(--paper); color:var(--muted); }
.dossier-categories,.dossier-sort{ display:flex; flex-wrap:wrap; gap:10px; font-family:var(--sans); font-weight:600; text-transform:uppercase; font-size:12px; letter-spacing:.03em; }
.dossier-categories a,.dossier-sort a{ white-space:nowrap; color:var(--muted); }
.dossier-categories a.is-active,.dossier-sort a.is-active,
.dossier-categories a:hover,.dossier-sort a:hover{ color:var(--accent); }

/* Dossier index — compact grid */
.dossier-grid{ list-style:none; padding:0; margin:16px 0 0; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.dossier-card{ background:var(--raised); }
.dossier-card-link{ display:flex; flex-direction:column; gap:2px; padding:10px 12px; color:var(--ink); line-height:1.25; min-height:86px; }
.dossier-card-link:hover .dossier-card-name{ color:var(--accent); }
.dossier-card-name{ font-family:var(--serif); font-weight:600; font-size:16px; line-height:1.2; }
.dossier-card-father{ font-family:var(--mono); font-size:11px; color:var(--muted); }
.dossier-card-meta{ font-size:11px; color:var(--muted); margin-top:auto; padding-top:4px; }
.dossier-card-badges{ display:inline-flex; flex-wrap:wrap; gap:4px; }

/* ───── Entity card ───── */
.entity-twocol{ display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:12px; border-top:1px solid var(--line-2); }
.entity-twocol > *:nth-child(odd){ padding-right:28px; }
.entity-twocol > *:nth-child(even){ padding-left:28px; border-left:1px solid var(--line-2); }
.entity-block{ margin:14px 0; }
.entity-block h2{
  display:inline-block; font-family:var(--type); font-weight:400; font-size:10px;
  text-transform:uppercase; letter-spacing:.12em; background:var(--ink); color:var(--paper);
  padding:3px 8px; margin:0 0 10px; line-height:1.2; border:none;
}
.entity-block .article-list{ padding-left:0; list-style:none; margin:0; }
.entity-block .article-item{ padding:3px 0; font-size:13px; line-height:1.4; border:none; }
.entity-rel-group{ margin:6px 0 12px; }
.entity-rel-group-title{ font-weight:600; font-size:14px; margin:0 0 3px; color:var(--ink); }
.entity-source-row{ display:flex; justify-content:space-between; padding:3px 0; border-bottom:1px solid var(--line); font-size:13px; }
.entity-source-row .ds{ font-size:.9em; }
.entity-source-row .ds-count{ font-family:var(--mono); color:var(--muted); }
.entity-graph-neighbors{ font-size:13px; list-style:none; padding:0; margin:0; }
.entity-graph-neighbors li{ padding:3px 0; border-bottom:1px solid var(--line); }
.entity-graph-neighbors .edge-type{ font-family:var(--type); color:var(--muted); font-size:11px; margin-left:6px; }

/* ───── /news/ — compact mention list ───── */
.news-feed{ list-style:none; padding:0; margin:14px 0 0; }
.news-item{ padding:10px 0 11px; border-bottom:1px solid var(--line); }
.news-item:last-child{ border-bottom:none; }
.news-item-meta{ margin:0 0 3px; font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.03em; display:flex; flex-wrap:wrap; gap:5px; align-items:baseline; color:var(--muted); }
.news-item-meta .cat,.news-item-meta .src{ color:var(--accent); font-weight:600; }
.news-item-title{ font-family:var(--serif); font-size:18px; font-weight:600; line-height:1.22; margin:0 0 3px; }
.news-item-title a{ color:var(--ink); }
.news-item-title a:hover{ color:var(--accent); }
.news-item-lead{ margin:0; font-size:14px; color:var(--muted); line-height:1.45; }
.news-item-entities{ font-size:12px; margin-top:4px; }
.news-item-entities a{ color:var(--muted); border-bottom:1px dotted var(--line-2); }
.news-item-entities a:hover{ color:var(--accent); border-color:var(--accent); }

/* ───── Mobile ───── */
@media (max-width:900px){
  .dossier-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:680px){
  body{ font-size:15px; padding:14px 16px 56px; }
  body.layout-wide{ padding:14px 16px 56px; }
  .site-band{ font-size:10px; padding:0 16px; margin:0 -16px; }
  .site-band .band-r{ display:none; }
  .site-header{ flex-wrap:wrap; align-items:center; gap:10px; }
  .site-nav{ flex-wrap:wrap; gap:12px; }
  .home-hero-title{ font-size:30px; }
  .home-hero-sub{ font-size:14px; }
  .monument{ grid-template-columns:1fr; }
  .stat{ border-left:none; border-top:1px solid var(--line); padding:14px 0; }
  .stat:first-child{ border-top:none; }
  .stat-num{ font-size:34px; }
  .home-twocol{ grid-template-columns:1fr; gap:0; }
  .home-twocol > .home-section + .home-section{ padding-left:0; border-left:none; border-top:1px solid var(--line-2); padding-top:18px; margin-top:6px; }
  .entity-twocol{ grid-template-columns:1fr; }
  .entity-twocol > *:nth-child(even){ padding-left:0; border-left:none; }
  .entity-twocol > *:nth-child(odd){ padding-right:0; }
  .dossier-grid{ grid-template-columns:1fr; }
  .article-body,.article-lead{ font-size:17px; }
  h1{ font-size:26px; } h2{ font-size:19px; }
}
