@font-face{font-family:'Newsreader';font-style:normal;font-weight:400 700;font-display:swap;src:url('/type/newsreader.5d70b133.woff2') format('woff2')}@font-face{font-family:'Public Sans';font-style:normal;font-weight:400 600;font-display:swap;src:url('/type/publicsans.fd76a14f.woff2') format('woff2')}@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('/type/jetbrainsmono.35c2a72b.woff2') format('woff2')}
/* Yadis — журнал об идентичности и доверии в вебе.
   Палитра взята из исторического знака домена: чернила, янтарь, кармин, небо. */
:root{
  --stock:#ffffff;            /* лист */
  --board:#eeeae1;            /* полотно страницы */
  --wash:#f7f4ed;             /* врезка внутри листа */
  --type:#14161b;             /* чернила */
  --quiet:#5b6370;            /* служебный текст */
  --rule:#d8d2c5;             /* волосяная линейка */
  --rule-hard:#14161b;
  --signal:#c4143f;           /* кармин знака */
  --amber:#f0c419;
  --sky:#2a6ea8;
  --pad:20px;                 /* поле в полноширинных лентах */
  --gap:26px;                 /* поле вокруг листа */
  --sheet:44px;               /* рабочее поле внутри листа */
  --col:888px;                /* текстовая колонка */
  --wide:1120px;              /* мастхед и подвал */
  --serif:'Newsreader',Georgia,'Times New Roman',serif;
  --sans:'Public Sans',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Consolas,monospace;
}
html{-webkit-text-size-adjust:100%}
body.journal{margin:0;background:var(--board);color:var(--type);
  font-family:var(--sans);font-size:17px;line-height:1.68;}
body.journal *{box-sizing:border-box}
body.journal img{max-width:100%;height:auto}
body.journal a{color:var(--sky);text-underline-offset:2px}
body.journal a:hover{color:var(--signal)}

/* ---------------------------------------------------------------- мастхед */
.masthead{background:var(--stock);border-bottom:3px solid var(--rule-hard);margin:0}
.masthead__top{max-width:var(--wide);margin:0 auto;padding:18px var(--pad) 14px;
  display:flex;align-items:flex-end;gap:20px;flex-wrap:wrap}
/* ⚠️ body.journal a (0,1,1) специфичнее .nameplate (0,1,0) — без body нейм-плейт синел */
body.journal .nameplate{display:flex;align-items:center;gap:11px;text-decoration:none;
  color:var(--type)}
body.journal .nameplate:hover .nameplate__word{color:var(--signal)}
.nameplate__mark{display:block;line-height:0;flex:0 0 auto}
.nameplate__word{font-family:var(--serif);font-weight:700;font-size:40px;line-height:1;
  letter-spacing:-.018em}
.masthead__line{margin:0 0 5px auto;font-family:var(--mono);font-size:11.5px;line-height:1.5;
  color:var(--quiet);letter-spacing:.02em;text-align:right;max-width:430px}
.masthead__dot{padding:0 7px;color:var(--signal)}
.rubrics{max-width:var(--wide);margin:0 auto;padding:0 var(--pad);
  border-top:1px solid var(--rule)}
.rubrics ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}
.rubrics li{border-right:1px solid var(--rule)}
.rubrics li:first-child{border-left:1px solid var(--rule)}
.rubrics a{display:flex;align-items:baseline;gap:6px;padding:10px 13px;text-decoration:none;
  color:var(--type);font-size:12px;letter-spacing:.07em;text-transform:uppercase;font-weight:600;
  white-space:nowrap}
.rubrics a b{font-family:var(--mono);font-weight:500;font-size:10.5px;color:var(--signal)}
.rubrics a:hover{background:var(--wash);color:var(--type)}
.rubrics li.on a{background:var(--rule-hard);color:var(--stock)}
.rubrics li.on a b{color:var(--amber)}

/* ------------------------------------------------------------------- лист */
.sheet{max-width:calc(var(--col) + var(--sheet)*2);margin:var(--gap) auto;background:var(--stock);
  border:1px solid var(--rule);padding:var(--sheet)}
.sheet--wide{max-width:calc(var(--wide) + var(--sheet)*2)}
.sheet > *:first-child{margin-top:0}
.sheet > *:last-child{margin-bottom:0}

/* --------------------------------------------------------------- заголовки */
.journal h1,.journal h2,.journal h3,.journal h4{font-family:var(--serif);font-weight:600;
  line-height:1.2;letter-spacing:-.012em;color:var(--type)}
.journal h1{font-size:39px;margin:0 0 14px}
.journal h2{font-size:27px;margin:36px 0 12px;padding-bottom:7px;border-bottom:1px solid var(--rule)}
.journal h3{font-size:21px;margin:26px 0 8px}
.journal h4{font-size:18px;margin:20px 0 6px}
.journal p,.journal li,.journal dd,.journal dt,.journal td,.journal th{font-family:var(--sans)}
.journal p{margin:0 0 15px}

/* ------------------------------------------------------------ шапка статьи */
.kicker{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--signal);margin:0 0 9px;display:flex;align-items:center;gap:9px}
.kicker::after{content:"";flex:1;height:1px;background:var(--rule)}
.standfirst{font-family:var(--serif);font-size:20.5px;line-height:1.46;color:#333941;
  margin:0 0 18px}
.byline{font-family:var(--mono);font-size:11.5px;color:var(--quiet);letter-spacing:.03em;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:9px 0;margin:0 0 26px}
.byline b{font-weight:500;color:var(--type)}

/* ---------------------------------------------------- лид-блок на главной */
.lede{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:0;
  border-top:3px solid var(--rule-hard);border-bottom:1px solid var(--rule);margin:0 0 30px}
.lede__main{padding:22px 30px 24px 0;border-right:1px solid var(--rule)}
.lede__side{padding:22px 0 24px 30px;display:flex;flex-direction:column}
.lede__main h2{font-size:34px;margin:0 0 12px;padding:0;border:0;line-height:1.16}
/* ⚠️ body.journal a (0,1,1) бьёт .lede__main h2 a (0,2,1)? нет — но общее правило ссылок
   стоит НИЖЕ, поэтому заголовки-ссылки красим явно и специфичнее */
body.journal .lede__main h2 a,
body.journal .ribbon__name a{color:var(--type);text-decoration:none}
body.journal .lede__main h2 a:hover,
body.journal .ribbon__name a:hover{color:var(--signal)}
.lede__main .standfirst{font-size:19px}
.lede__fig{margin:0 0 16px;line-height:0}
.lede__fig img{width:100%;display:block;filter:saturate(.92)}
.lede__cap{font-family:var(--mono);font-size:10.5px;color:var(--quiet);line-height:1.5;
  margin:7px 0 0;line-height:1.5}
.dispatch{padding:14px 0;border-bottom:1px solid var(--rule)}
.dispatch:last-child{border-bottom:0;padding-bottom:0}
.dispatch:first-child{padding-top:0}
.dispatch h3{margin:0 0 5px;font-size:18.5px;line-height:1.26}
.dispatch h3 a{color:var(--type);text-decoration:none}
.dispatch h3 a:hover{color:var(--signal)}
.dispatch p{margin:0;font-size:14.5px;color:var(--quiet);line-height:1.55}
.dispatch .kicker{font-size:10px;margin-bottom:5px}
.dispatch .kicker::after{display:none}

/* --------------------------------------------------------- ленты рубрик */
.ribbon{margin:0 0 34px}
.ribbon__head{display:flex;align-items:baseline;gap:12px;border-bottom:2px solid var(--rule-hard);
  padding-bottom:8px;margin:0 0 18px}
.ribbon__num{font-family:var(--mono);font-size:12px;color:var(--signal);letter-spacing:.08em}
.ribbon__name{font-family:var(--serif);font-size:24px;font-weight:600;margin:0}
.ribbon__name a{color:var(--type);text-decoration:none}
.ribbon__more{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.06em;
  text-transform:uppercase}
/* ⚠️ фиксированные три колонки оставляли пустую треть у рубрик с двумя материалами */
.ribbon__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.ribbon__grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
/* один материал в рубрике — горизонтальная врезка, а не растянутое во всю ширину фото */
.ribbon__grid--1{grid-template-columns:minmax(0,1fr)}
.ribbon__grid--1 .entry{display:grid;grid-template-columns:minmax(0,330px) minmax(0,1fr);
  gap:0 26px;align-items:start}
.ribbon__grid--1 .entry__body{min-width:0}
.ribbon__grid--1 .entry__fig{margin:0}
.ribbon__grid--1 .entry h3{font-size:22px}
.ribbon__grid--1 .entry p{font-size:15px}
.ribbon__grid > *{padding:0 22px;border-left:1px solid var(--rule)}
.ribbon__grid > *:first-child{padding-left:0;border-left:0}
.ribbon__grid > *:last-child{padding-right:0}
.entry{display:block}
.entry__fig{margin:0 0 11px;line-height:0}
.entry__fig img{width:100%;display:block;aspect-ratio:16/10;object-fit:cover;filter:saturate(.92)}
.entry h3{margin:0 0 6px;font-size:17.5px;line-height:1.3}
.entry h3 a{color:var(--type);text-decoration:none}
.entry h3 a:hover{color:var(--signal)}
.entry p{margin:0;font-size:14px;line-height:1.55;color:var(--quiet)}

/* --------------------------------------------------------------- врезки */
.plinth{background:var(--wash);border-left:3px solid var(--amber);padding:22px 26px;margin:0 0 30px}
.plinth h2{margin:0 0 10px;font-size:22px;border:0;padding:0}
.plinth p:last-child{margin-bottom:0}
.plinth__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px 26px;
  margin:14px 0 0}
.plinth__grid p{margin:0;font-size:14.5px}
.spec-note{font-family:var(--mono);font-size:11.5px;color:var(--quiet);letter-spacing:.02em}

/* архивная строка-врезка: на главной архив имеет РОВНО одну строку */
.archive-line{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  padding:13px var(--pad);margin:0 0 30px;font-size:15px;background:var(--wash)}
.archive-line b{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--signal);font-weight:500}

/* -------------------------------------------------------- партнёрская полоса */
.partners{border-top:1px solid var(--rule);padding:22px var(--pad) 4px;margin:30px 0 0;
  background:var(--wash)}
.partners__head{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--quiet);margin:0 0 12px}
.partners ul{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px 26px}
.partners li{font-size:14.5px;line-height:1.55;color:var(--quiet);padding:0 0 14px}
.partners li a{font-weight:600}
/* Партнёрская полоса — ТОВАР (5а). Оформлена как выходные данные партнёрства,
   а не как «логотипы клиентов» подряд: подпись капителью + ряд знаков. */
.logo-strip{padding:18px var(--pad) 16px;background:var(--wash);
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:30px 0 0}
.logo-strip__head{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--quiet);margin:0 0 12px}
.logo-strip__row{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center}
.logo-strip img{max-height:32px;max-width:110px;width:auto;height:auto;
  filter:grayscale(1);opacity:.72;transition:opacity .2s,filter .2s}
.logo-strip a:hover img{filter:none;opacity:1}

/* ------------------------------------------------------------- индексы */
.index-list{list-style:none;margin:0;padding:0}
.index-list li{border-bottom:1px solid var(--rule);padding:11px 0;display:flex;
  gap:16px;align-items:baseline;flex-wrap:wrap}
.index-list li:last-child{border-bottom:0}
.index-list a{color:var(--type);text-decoration:none;font-weight:600;font-size:16px;
  flex:1 1 260px;min-width:0}
.index-list a:hover{color:var(--signal)}
.index-list .tag{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--quiet);white-space:nowrap}
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));
  gap:26px 24px;margin:0 0 8px;padding:0;list-style:none}
.card-grid li{min-width:0}
.card-grid .entry p{font-size:13.5px}
.count{font-family:var(--mono);font-size:11.5px;color:var(--quiet)}

/* --------------------------------------------------- содержимое старой вики */
/* Своё СВЁРНУТОЕ оглавление вместо донорского (donor-toc-forms-must-be-replaced-by-own-details).
   ⚠️ У MediaWiki оглавление — <table class="toc">, и общие правила таблиц рисовали ему
   рамку и растягивали на 100 %. */
.journal details.contents{background:var(--wash);border-left:3px solid var(--amber);
  padding:0;margin:0 0 26px}
.journal details.contents > summary{cursor:pointer;list-style:none;padding:12px 22px;
  font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--quiet);display:flex;align-items:center;gap:9px}
.journal details.contents > summary::-webkit-details-marker{display:none}
.journal details.contents > summary::after{content:"+";font-size:15px;color:var(--signal)}
.journal details.contents[open] > summary::after{content:"\2212"}
.journal details.contents > div{padding:0 22px 16px}
.journal details.contents ol,.journal details.contents ul{margin:0;padding-left:20px}
.journal details.contents li{margin:0 0 4px;font-size:15px}
.journal table.toc,.journal table.toc td,.journal table.toc th{border:0;width:auto;
  background:none;padding:0}
.journal pre{background:var(--wash);border-left:3px solid var(--rule);padding:16px 20px;
  overflow-x:auto;font-family:var(--mono);font-size:13.5px;line-height:1.6;margin:0 0 18px}
/* длинный инлайновый код (заголовок HTTP, URI) рвал мобильную ширину */
.journal code,.journal tt{font-family:var(--mono);font-size:.92em;background:var(--wash);
  padding:1px 5px;overflow-wrap:anywhere;word-break:break-word}
.journal blockquote{margin:0 0 18px;padding:4px 0 4px 22px;border-left:3px solid var(--amber);
  color:#333941}
/* широкая таблица прокручивается ВНУТРИ своей коробки, страницу не рвёт */
.journal .scroll{overflow-x:auto;margin:0 0 20px;border-left:3px solid var(--rule);
  padding-left:14px}
.journal .scroll table{margin:0;min-width:520px}
.journal table{border-collapse:collapse;width:100%;margin:0 0 20px;font-size:15px}
.journal th,.journal td{border:1px solid var(--rule);padding:9px 12px;text-align:left;
  vertical-align:top}
.journal th{background:var(--wash);font-weight:600}
.journal dl{margin:0 0 18px}
.journal dt{font-weight:600;margin-top:12px}
.journal dd{margin:0 0 6px 22px;color:#333941}
/* ⚠️ правило списков КОНТЕНТА стоит ниже своих компонентов и при равной специфичности
   возвращало им отступ 24px (полоса партнёров, каталог, карточки). Свои списки всегда
   с классом — исключаем их по :not([class]). */
.journal ul:not([class]),.journal ol:not([class]){margin:0 0 18px;padding-left:24px}
.journal ul:not([class]) li,.journal ol:not([class]) li{margin:0 0 6px}
.journal details.contents ul,.journal details.contents ol{padding-left:20px}
.journal hr{border:0;border-top:1px solid var(--rule);margin:26px 0}
.journal .redirectText{font-family:var(--mono);font-size:14px}
.journal a.new{color:var(--quiet);text-decoration:line-through}
.journal .external{word-break:break-word}
.wiki-note{background:var(--wash);border-left:3px solid var(--sky);padding:14px 20px;
  margin:0 0 26px;font-size:14.5px;line-height:1.6;color:#333941}
.wiki-note b{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--sky);display:block;margin-bottom:5px;font-weight:500}

/* --------------------------------------------------------------- подвал */
.colophon{background:var(--rule-hard);color:#d9d5cc;margin:36px 0 0;
  border-top:3px solid var(--amber)}
/* ⚠️ body.journal a — это (0,1,2), а .colophon a всего (0,1,1): без body ссылки
   подвала оставались синими на чернилах, контраст 3.36 (R3 гейта) */
body.journal .colophon a{color:#f0ece3}
body.journal .colophon a:hover{color:var(--amber)}
.colophon__in{max-width:var(--wide);margin:0 auto;padding:34px var(--pad);display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(0,1fr) minmax(0,1fr);gap:30px}
.colophon__word{font-family:var(--serif);font-size:27px;font-weight:700;margin:0 0 10px;
  color:#fff;line-height:1}
.colophon p{font-size:14.5px;line-height:1.62;margin:0 0 12px}
.colophon__fine{font-size:12.5px;color:#9aa0a8;line-height:1.6}
.colophon__head{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--amber);margin:0 0 10px}
.colophon__list{list-style:none;margin:0;padding:0}
.colophon__list li{margin:0 0 7px;font-size:14.5px}
.colophon__bottom{display:block;border-top:1px solid #2b2f37;padding-top:18px;padding-bottom:26px}
.colophon__bottom p{font-size:12.5px;color:#9aa0a8;margin:0 0 6px}

/* --------------------------------------------------------------- мобилка */
@media (max-width:900px){
  :root{--sheet:22px;--gap:14px;--pad:16px}
  .lede{grid-template-columns:minmax(0,1fr)}
  .lede__main{padding:20px 0;border-right:0;border-bottom:1px solid var(--rule)}
  .lede__side{padding:18px 0 20px}
  .ribbon__grid,.ribbon__grid--1,.ribbon__grid--2{grid-template-columns:minmax(0,1fr)}
  .ribbon__grid--1 .entry{grid-template-columns:minmax(0,1fr)}
  .ribbon__grid--1 .entry__fig{margin:0 0 11px}
  .ribbon__grid > *{padding:16px 0;border-left:0;border-top:1px solid var(--rule)}
  .ribbon__grid > *:first-child{padding-top:0;border-top:0}
  .colophon__in{grid-template-columns:minmax(0,1fr);gap:24px}
}
@media (max-width:640px){
  :root{--sheet:16px;--pad:14px}
  body.journal{font-size:16px}
  .journal h1{font-size:29px}
  .journal h2{font-size:22px}
  .lede__main h2{font-size:27px}
  .nameplate__word{font-size:32px}
  .masthead__top{align-items:center;gap:12px}
  .masthead__line{margin:0;text-align:left;max-width:none;font-size:11px;flex:1 1 100%}
  .rubrics a{padding:9px 11px;font-size:11.5px}
  .standfirst{font-size:18px}
  .card-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:20px 16px}
}
