
/* metric-matched fallbacks, preview/main/font_fallback.py */
@font-face{font-family:"Literata Fallback";font-style:normal;font-weight:400;src:local("Georgia");size-adjust:106.6%;ascent-override:110.7%;descent-override:29.1%;line-gap-override:0%}
@font-face{font-family:"Literata Fallback";font-style:normal;font-weight:700;src:local("Georgia Bold"),local("Georgia-Bold");size-adjust:97.6%;ascent-override:120.9%;descent-override:31.8%;line-gap-override:0%}
@font-face{font-family:"Golos Fallback";font-style:normal;font-weight:400;src:local("Arial"),local("ArialMT");size-adjust:106.4%;ascent-override:92.1%;descent-override:20.7%;line-gap-override:0%}
@font-face{font-family:"Golos Fallback";font-style:normal;font-weight:600;src:local("Arial Bold"),local("Arial-BoldMT");size-adjust:101.5%;ascent-override:96.6%;descent-override:21.7%;line-gap-override:0%}
@font-face{font-family:"Literata";font-style:normal;font-weight:400 700;font-display:swap;src:url("fonts/literata-cyr.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Literata";font-style:normal;font-weight:400 700;font-display:swap;src:url("fonts/literata-lat.woff2") format("woff2");unicode-range:U+0020-007E,U+00A0-00BB,U+00D7,U+2009-2014,U+2018-201E,U+2026,U+202F,U+2190-2193,U+20BD,U+2116,U+2212,U+2248;}
@font-face{font-family:"Literata";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/literata-italic-cyr.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Literata";font-style:italic;font-weight:400;font-display:swap;src:url("fonts/literata-italic-lat.woff2") format("woff2");unicode-range:U+0020-007E,U+00A0-00BB,U+00D7,U+2009-2014,U+2018-201E,U+2026,U+202F,U+2190-2193,U+20BD,U+2116,U+2212,U+2248;}
@font-face{font-family:"Golos Text";font-style:normal;font-weight:400 600;font-display:swap;src:url("fonts/golos-cyr.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:"Golos Text";font-style:normal;font-weight:400 600;font-display:swap;src:url("fonts/golos-lat.woff2") format("woff2");unicode-range:U+0020-007E,U+00A0-00BB,U+00D7,U+2009-2014,U+2018-201E,U+2026,U+202F,U+2190-2193,U+20BD,U+2116,U+2212,U+2248;}

*{box-sizing:border-box}html{--gutter:20px;background:var(--bg);color:var(--ink);font-synthesis:none}body{margin:0;font:400 16px/24px "Golos Text","Golos Fallback",sans-serif}a{color:var(--ink);text-decoration-color:var(--accent);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}a:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:4px}.wrap{max-width:1240px;margin:auto;padding:0 var(--gutter)}header{display:grid;grid-template-columns:1fr 44px;grid-template-rows:48px 40px;border-bottom:2px solid var(--ink);align-items:center}.brand{text-decoration:none;display:block;max-width:max-content}.wordmark{display:block;font:600 24px/30px "Golos Text","Golos Fallback",sans-serif;letter-spacing:-.01em}.tagline{display:block;font:500 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-2);white-space:nowrap}header nav{grid-row:2;grid-column:1/-1;display:flex;gap:24px;height:40px;align-items:center}header nav a{display:flex;align-items:center;min-height:40px;text-decoration:none;font-size:14px}header nav a[aria-current]{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px}.service{max-width:720px;margin:0 auto;padding:24px var(--gutter) 64px}.breadcrumbs{font-size:13px;line-height:18px;color:var(--ink-3);margin-bottom:32px}.kicker{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}h1{font:700 32px/38px Literata,"Literata Fallback",serif;letter-spacing:-.01em;margin:0 0 24px;text-wrap:balance}h2{font:700 24px/30px Literata,"Literata Fallback",serif;letter-spacing:-.01em;margin:48px 0 24px;text-wrap:balance;scroll-margin-top:24px}p{margin:0 0 24px}ul{padding-left:24px;margin:0 0 24px}li{margin-bottom:12px}section{overflow-wrap:anywhere}.meta{font-size:13px;line-height:18px;color:var(--ink-3)}.toc{border-top:2px solid var(--ink);border-bottom:1px solid var(--rule);padding:24px 0 12px;margin-top:32px}.toc ul{list-style:none;padding:0;margin:12px 0 0}.toc li{margin:0}.toc a{display:inline-flex;align-items:center;min-height:44px}.directory{border-top:2px solid var(--ink)}.directory>a{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 0;border-bottom:1px solid var(--rule);text-decoration:none}.directory>a:hover span:first-child{text-decoration:underline;text-decoration-color:var(--accent)}footer{border-top:2px solid var(--ink);display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px;padding-top:24px!important;padding-bottom:32px!important}footer div{font-size:13px;line-height:18px;color:var(--ink-3)}footer div a{display:inline-flex;align-items:center;min-height:44px}footer p{margin:8px 0}.skip{position:absolute;left:-10000px;top:8px}.skip:focus{left:20px;background:var(--bg);padding:12px;z-index:2}@media(min-width:960px){html{--gutter:32px}header{height:66px;grid-template-columns:1fr auto 44px;grid-template-rows:64px;gap:32px}header nav{grid-row:1;grid-column:2}header nav a{min-height:44px}.service{max-width:744px;padding-top:48px}.tagline,.meta,.breadcrumbs{font-size:14px;line-height:20px}.kicker{font-size:13px}h1{font-size:44px;line-height:50px}h2{font-size:30px;line-height:36px}}
/* Preview-only adaptation of the project's existing shell; tokens unchanged. */
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/jetbrains-mono-lat.woff2") format("woff2");unicode-range:U+0020-007E,U+00A0-00BB,U+00D7,U+2009-2014,U+2018-201E,U+2026,U+202F,U+2190-2193,U+20BD,U+2116,U+2212,U+2248}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/jetbrains-mono-cyr.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
header nav{gap:24px;overflow-x:auto;white-space:nowrap}
header nav a{font:400 16px/24px "Golos Text","Golos Fallback",sans-serif}
footer .service-nav{display:grid;gap:0;grid-template-columns:1fr}
footer .service-nav a{font-size:14px;line-height:20px}
.article{max-width:984px;margin:auto;padding:24px var(--gutter) 64px;overflow-wrap:anywhere}
.article article>*{max-width:680px;margin-left:auto;margin-right:auto}
.article article>p,.article blockquote,.article ol,.article article>ul{font:400 18px/28px Literata,"Literata Fallback",Georgia,serif}
.article article>p.meta{font:500 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3)}
.article blockquote{padding:24px;background:var(--surface)}.article blockquote li.cond>strong:first-child{display:block}
.article article>.table-scroll{max-width:920px}
.table-scroll{overflow-x:auto;margin:24px 0;border-top:2px solid var(--ink)}
.table-scroll:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
table{border-collapse:collapse;min-width:680px;width:100%;font:400 14px/20px "Golos Text","Golos Fallback",sans-serif;font-variant-numeric:tabular-nums}
th,td{text-align:left;vertical-align:top;padding:16px 12px;border-bottom:1px solid var(--rule);min-width:7ch;overflow-wrap:break-word;hyphens:manual}
:is(th,td):first-child:nth-last-child(2){width:1%;min-width:180px}
:is(th,td):first-child:nth-last-child(3),:is(th,td):first-child:nth-last-child(3)~:is(th,td){width:33.333%}
@media(min-width:600px){.test-file :is(td,th){min-width:12ch}}
@media(max-width:599px){.table-scroll table:not(:has(tr>:nth-child(3))){min-width:0}
.table-scroll table:not(:has(tr>:nth-child(3))) thead{display:none}
.table-scroll table:not(:has(tr>:nth-child(3))) tr{display:block;padding:12px 0;border-bottom:1px solid var(--rule)}
.table-scroll table:not(:has(tr>:nth-child(3))) :is(th,td){display:block;width:auto;padding:0;border:0}
.table-scroll table:not(:has(tr>:nth-child(3))) :is(th,td):first-child{font-weight:600;margin-bottom:4px}}
th{font-weight:600}tbody tr:nth-child(even){background:var(--surface)}
code{font:400 14px/22px "JetBrains Mono",monospace;overflow-wrap:anywhere}
.table-hint{font-size:13px;line-height:18px;color:var(--ink-3)}
.home{padding-top:32px;padding-bottom:64px}.home h1 a{text-decoration:none}.home h1 a:hover{text-decoration:underline;text-decoration-color:var(--accent)}
.home .kicker{color:var(--accent)}.lead{font:400 19px/28px Literata,"Literata Fallback",Georgia,serif;color:var(--ink-2)}
.home-grid{display:grid;gap:32px}.evidence{border-top:2px solid var(--ink);padding-top:16px}.evidence h2{margin-top:0}.evidence blockquote{font:600 19px/26px Literata,"Literata Fallback",Georgia,serif;margin:24px 0}.home-table{margin-top:32px;border-top:2px solid var(--ink)}.home-table h2{margin-top:24px}.home-table h3{margin:24px 0 8px;font:600 18px/24px Literata,"Literata Fallback",Georgia,serif}.home-table h3 a{text-decoration:none}.home-table h3 a:hover{text-decoration:underline;text-decoration-color:var(--accent)}.home-table>p{max-width:680px}@media(min-width:960px){.home-table h3{font-size:19px;line-height:26px}}
@media(min-width:640px){footer .service-nav{grid-template-columns:1fr 1fr;column-gap:32px}}
@media(min-width:960px){.article{padding-top:48px}.article article>p,.article blockquote,.article ol,.article article>ul{font-size:19px;line-height:30px}.article article>p.meta{font-size:14px;line-height:20px}table{font-size:15px;line-height:22px}code{font-size:15px;line-height:24px}.home{padding-top:48px}.home-grid{grid-template-columns:2fr 1fr;gap:48px}.lead{font-size:22px;line-height:32px}}
/* DG4/DG5 24.09: no Golos 700 in ДН; wordmark on h3 token until the SVG logo (ДН § 9); footer is meta 14/20 on desktop */
strong,b{font-weight:600}.wordmark{font-size:19px;line-height:26px}
@media(min-width:960px){.wordmark{font-size:21px;line-height:28px}footer div,.table-hint{font-size:14px;line-height:20px}}
/* Design review r0 24.09 (DA3/DA10, DA5/DA7): first-screen proof module on home, scroll hint below 768, readable column at 768 */
.proof{margin:32px 0 0;border-top:2px solid var(--ink);padding-top:16px}.home .proof .kicker{color:var(--ink-2)}
.proof-table{min-width:0;margin:8px 0 0;font:400 14px/20px "Golos Text","Golos Fallback",sans-serif}.proof-table th,.proof-table td{border-bottom:1px solid var(--rule);padding:12px 12px 12px 0;width:auto;vertical-align:baseline}.proof-table tbody tr:nth-child(even){background:none}
.proof-table tbody td{font:600 19px/26px "Golos Text","Golos Fallback",sans-serif;font-variant-numeric:tabular-nums}.proof-table tbody td code{font:400 14px/22px "JetBrains Mono",monospace}.proof-table td.proof-to{color:var(--accent)}
.proof-table thead th{color:var(--ink-3);font:500 13px/18px "Golos Text","Golos Fallback",sans-serif}.proof-table tbody th{width:34%;font-weight:400;color:var(--ink-2)}.proof .meta{margin-top:12px}
@media(min-width:768px){.table-hint{display:none}}
@media(max-width:959px){.home-grid>section,.home-grid>aside,.home-table>h2,.home-table>.meta{max-width:680px}}
@media(min-width:960px){.proof-table{font-size:14px;line-height:20px}.proof-table thead th{font-size:14px;line-height:20px}.proof-table tbody td{font-size:21px;line-height:28px}.proof-table tbody td code{font-size:15px;line-height:24px}}
.proof-table code{overflow-wrap:anywhere}
/* Design review r1 24.09 (DA6/DA7/DA10/DA2) */
header{grid-template-columns:1fr 44px}.search-link{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:center;width:44px;height:44px;color:var(--ink)}
header nav{grid-column:1/-1;position:relative;padding-right:24px}header nav::after{content:"";position:sticky;right:-24px;flex:0 0 24px;align-self:stretch;margin-left:-24px;background:var(--bg)}
.home h1{font-size:40px;line-height:44px}
.inverse{margin-top:48px;padding:24px var(--gutter);margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));background:var(--ink);color:var(--bg)}
.inverse a{color:var(--bg)}.inverse :focus-visible{outline-color:var(--bg)}
.inverse-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}.inverse h2{margin:0;color:var(--bg)}
.inverse-head a{font:500 14px/20px "Golos Text","Golos Fallback",sans-serif;display:inline-flex;align-items:center;min-height:44px}
.inverse>p{font:400 14px/20px "Golos Text","Golos Fallback",sans-serif;margin:8px 0 16px;max-width:680px}
.inverse ol{list-style:none;margin:0;padding:0;border-top:2px solid var(--bg)}
.inverse li{display:grid;gap:4px;padding:12px 0;border-bottom:1px solid var(--bg);font:400 14px/20px "Golos Text","Golos Fallback",sans-serif}
.inverse li a{display:grid;gap:4px;text-decoration:none}.inverse li .name{font:600 18px/24px Literata,"Literata Fallback",Georgia,serif}.inverse li a:hover{text-decoration:underline}
.inverse .checked{font:500 13px/18px "Golos Text","Golos Fallback",sans-serif;font-variant-numeric:tabular-nums}
@media(min-width:640px){.home-grid{grid-template-columns:3fr 2fr;gap:24px}.home-grid>section,.home-grid>div{min-width:0}
 .inverse li{grid-template-columns:3fr 5fr 2fr;gap:24px;align-items:baseline}.inverse li a{grid-column:span 2;grid-template-columns:3fr 5fr;gap:24px;align-items:baseline}}
@media(min-width:960px){header{grid-template-columns:1fr auto 44px}header nav{grid-column:2;padding-right:0}header nav::after{display:none}.search-link{grid-column:3}
 .home h1{font-size:44px;line-height:50px}.home-grid{grid-template-columns:2fr 1fr;gap:48px}.inverse{margin-left:0;margin-right:0;padding:32px}
 .inverse li .name{font-size:19px;line-height:26px}.inverse li,.inverse .checked{font-size:14px;line-height:20px}}
/* r1 fixes: below 640 the inverse module rises to the 2nd screen of 390 (DA10); nav edge mask is a solid 24 px block, no gradient (DA6) */
@media(max-width:639px){.home{display:flex;flex-direction:column}.home-grid,.home .home-side{display:contents}.fresh,.evidence{margin-top:32px}
 .home-grid>section{order:1}.inverse{order:2}.fresh{order:3}.evidence{order:4}.home-table{order:5}}
@media(max-width:959px){header{position:relative}header nav::after{display:none}header::after{content:"";position:absolute;right:var(--gutter);bottom:2px;width:24px;height:40px;background:var(--bg);pointer-events:none}}
/* Design review r2 24.09 fixes: below 640 nav wraps instead of a cut «О пр» (DA6) and h1 32/38 lifts the proof table above the cookie bar (DA10); from 640 the checked-services register moves under the proof in the left column, no empty space under the intro table (DA2) */
@media(max-width:639px){header{grid-template-rows:48px auto}header nav{height:auto;flex-wrap:wrap;column-gap:20px;row-gap:0;overflow-x:visible;padding-right:0}header::after{display:none}.home h1{font-size:32px;line-height:38px}}
@media(min-width:640px){.home{display:grid;grid-template-columns:3fr 2fr;column-gap:24px;align-items:start}.home-grid{display:contents}
 .home-grid>section{grid-column:1;grid-row:1}.home .home-side{grid-column:2;grid-row:1/span 2}.inverse{grid-column:1;grid-row:2;margin:32px 0 0;padding:24px}.home-table{grid-column:1/-1;grid-row:3}
 .inverse li{grid-template-columns:1fr auto;gap:16px}.inverse li a{grid-column:auto;grid-template-columns:1fr;gap:4px}}
@media(min-width:960px){.home{grid-template-columns:2fr 1fr;column-gap:48px}}
/* Раунд 3 по 0019: логотип «Ценник» (SVG в кривых, цвета — токены), главная «лид с обложкой + Свежее + строки с миниатюрами» */
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.logo{display:block;height:24px;width:auto;flex:none}.lg-p{fill:var(--brand)}.lg-k{fill:var(--brand-ink)}.lg-t{fill:var(--ink)}
/* 320–399: знак и подпись в строку шире колонки шапки (знак 88 + подпись ~160 + поиск и тема 88) — подпись под знаком. */
@media(max-width:399px){.brand{flex-direction:column;align-items:flex-start;gap:2px}}
@media(min-width:960px){.logo{height:28px}}
.cover{margin:24px 0 0}.cover img,.thumb img{display:block;width:100%;height:auto;border:1px solid var(--rule)}
.cover figcaption{margin-top:8px;font:400 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3)}
.home-top{display:grid;gap:32px}.fresh{padding-top:0}.fresh h2{margin:0 0 8px;font:700 13px/18px "Golos Text","Golos Fallback",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.fresh ol,.home-rows ol{list-style:none;margin:0;padding:0}.fresh li{padding:16px 0;border-bottom:1px solid var(--rule);display:grid;gap:4px}
.fresh li a,.home-rows .row a{font:600 18px/24px Literata,"Literata Fallback",Georgia,serif;text-decoration:none}.fresh li a:hover,.home-rows .row a:hover{text-decoration:underline;text-decoration-color:var(--accent)}
.fresh .kicker,.home-rows .kicker{font:500 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3)}
.home-rows{margin-top:48px;border-top:2px solid var(--ink)}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px}.section-head h2{margin:16px 0 4px}
.section-head a{font:500 14px/20px "Golos Text","Golos Fallback",sans-serif;display:inline-flex;align-items:center;min-height:44px}
.home-rows .row{display:grid;grid-template-columns:1fr 128px;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule);align-items:start}.row-text{display:grid;gap:4px}.row-text .meta{margin:4px 0 0}
@media(min-width:960px){.home-top{grid-template-columns:2fr 1fr;gap:48px}.home-v3 h1{font-size:48px;line-height:54px}.fresh li a,.home-rows .row a{font-size:19px;line-height:26px}.home-rows .row{grid-template-columns:1fr 240px;gap:32px;padding:24px 0}}
.home-v3{display:block}.home-v3 .home-rows,.home-v3 .inverse{grid-column:1/-1}
/* Раунд 4 по reference lock 24.09: витрина лид ~780 + «Свежее» ~360 с миниатюрами 112×84, ряд из 3 карточек 16:10 (Pocket), без провала под колонкой */
.home-v4{display:block}.home-v4 .home-top{display:grid;gap:32px}
/* C-0033 26.09 → владелец 26.09 msg 890: обложка E без рамки сливалась со страницей — тонкая рамка rule, как у остальных изображений */
.home-v4 h1{font-size:32px;line-height:38px;margin:4px 0 0;text-wrap:balance}.home-v4 .cover{margin:16px 0 0}.home-v4 .cover img{border:1px solid var(--rule)}.home-v4 .cover .art{border:1px solid var(--rule)}.cover-art{position:relative}.cover-art .art{position:absolute;inset:0;width:100%;height:100%;border:1px solid transparent}
.home-v4 .lead{margin:16px 0 0}.home-v4 .more{margin:8px 0 0;font:500 14px/20px "Golos Text","Golos Fallback",sans-serif}
.home-v4 .fresh li{grid-template-columns:1fr 112px;gap:16px;align-items:start;padding:16px 0}.home-v4 .fresh h3{margin:4px 0 0;font:600 17px/23px Literata,"Literata Fallback",Georgia,serif}
.home-v4 .fresh h3 a,.home-cards h3 a{text-decoration:none}.home-v4 .fresh h3 a:hover,.home-cards h3 a:hover{text-decoration:underline;text-decoration-color:var(--accent)}
.art{display:block;width:100%;height:auto;border:1px solid var(--rule)}.a-bg{fill:var(--surface)}.a-ln{fill:none;stroke:var(--ink-2);stroke-width:2}.a-ac{fill:var(--accent)}.a-ac-f{fill:var(--accent)}.a-fill{fill:var(--rule)}
.a-mark{fill:var(--ink);font:600 20px "Golos Text","Golos Fallback",sans-serif}.a-cap,.a-cap text{fill:var(--ink-2);font:500 13px "Golos Text","Golos Fallback",sans-serif}
/* 3 карточки в ряд на 640–959: 13 ед. viewBox дают ~9 px — поднимаем до ≥12 px (DG5). */
@media(min-width:640px) and (max-width:959px){.a-cap,.a-cap text{font-size:18px}}
.home-cards{margin-top:40px;border-top:2px solid var(--ink)}.home-cards ol{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:24px}
.card{display:grid;gap:8px;align-content:start}.card-art img,.card-art .art{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;object-position:top left;border:1px solid var(--rule)}
.card .kicker{font:500 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3)}.card h3{margin:0;font:600 19px/26px Literata,"Literata Fallback",Georgia,serif}
.home-v4 .inverse{margin-top:48px}
@media(min-width:640px){.home-cards ol{grid-template-columns:repeat(3,minmax(0,1fr))}.home-cards .card{grid-row:span 3;grid-template-rows:subgrid}.home-v4 h1{font-size:40px;line-height:44px}}
@media(min-width:960px){.home-v4 .home-top{grid-template-columns:minmax(0,780px) minmax(0,360px);justify-content:space-between;gap:32px}
 .home-v4 h1{font-size:44px;line-height:50px}.home-v4 .more{font-size:15px;line-height:22px}.home-v4 .cover figcaption{font-size:14px;line-height:20px}
 .home-v4 .fresh .kicker,.home-cards .kicker{line-height:16px}.home-v4 .fresh{align-self:start}.home-cards{margin-top:48px}.home-cards ol{gap:32px}}
.card-art img{height:auto}.home-v4 .lead-story>.meta{margin:8px 0 0}
/* Критик р4 (gpt-6-astra, 4/10): мобильный лид компактнее — «Свежее» в первом экране 390; лента справа короче */
@media(max-width:639px){.home-v4{padding-top:20px}.home-v4 h1{font-size:32px;line-height:38px}.home-v4 .cover{margin-top:12px}.home-v4 .cover figcaption{margin-top:6px}
 .home-v4 .lead{font-size:18px;line-height:28px;margin-top:12px}.home-v4 .lead-story>.meta,.home-v4 .more{display:none}.home-v4 .fresh{margin-top:0}
 .home-v4 .fresh li{grid-template-columns:1fr 104px;padding:12px 0}}
.home-v4 .fresh h3{font-size:18px;line-height:24px}
.pair-cap{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0 0;font:400 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3)}
.home-v4 .fresh .thumb{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--rule)}
.a-paper{fill:var(--bg)}
/* Раунд 4c: схема лида «читать / менять» (28 ед. ≈ 16 px на 350 px ширины) */
.a-t{fill:var(--ink);font:400 28px "Golos Text","Golos Fallback",sans-serif}.a-b{font-weight:600}.a-mute{fill:var(--ink-2)}.a-ac-ln{fill:none;stroke:var(--accent);stroke-width:3}
/* inbox 25.09 13:25 п.5: меню в одну строку на 390 на всех шаблонах (было только во внутренних, inner_v1.NAV_CSS) */
@media(max-width:419px){header nav{column-gap:14px}}

/* inbox 25.09 13:25 п.2: таблицы 3+ колонок на телефоне — стопкой с подписью поля (stack_tables.py) */
@media(max-width:599px){main .table-scroll table.stack{min-width:0}main .table-scroll table.stack thead{display:none}
main .table-scroll table.stack tr{display:block;padding:12px 0;border-bottom:1px solid var(--rule)}
main .table-scroll table.stack :is(th,td){display:block;width:auto;padding:0 0 8px;border:0}
main .table-scroll table.stack :is(th,td):first-child{font-weight:600}
main .table-scroll table.stack :is(th,td):not(:first-child)::before{content:attr(data-label);display:block;font:500 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3)}
main .table-scroll table.stack.compact :is(th,td):not(:first-child){display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding-bottom:4px}
main .table-scroll table.stack.compact :is(th,td):not(:first-child)::before{flex:1 1 auto}
/* Q-N2 п. 3 (критик 29.09): по ячейке — короткий результат в строку с подписью, пояснение ниже (stack_tables.cells) */
main .table-scroll table.stack :is(th,td).kv{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;column-gap:16px;padding-bottom:4px}
main .table-scroll table.stack :is(th,td).kv::before{flex:1 1 auto}
main .table-scroll table.stack .kv .more{flex:0 0 100%;font:400 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3)}main .table-scroll table.stack .kv .sep{display:none}main .table-scroll table.stack .kv.split{padding-bottom:8px}
.table-hint:has(+.table-scroll table.stack){display:none}
/* владелец 26.09 msg 905: в стопке зебра упирала текст в край заливки — строки разделяет линейка, без заливки */
main .table-scroll table:is(.stack,:not(:has(tr>:nth-child(3)))) tbody tr:nth-child(even){background:none}}
/* inbox 25.09 14:25 (msg 700): подпись — по базовой линии вордмарка (у SVG базовая линия = нижний край margin-box, глифы стоят на y=0 из viewBox 0 −870 3834 1040, ниже — 170/1040 высоты); 390 — поиск и тема по центру строки логотипа; подвал — логотип к верху, центр знака = центр строки первой ссылки (44 px − 28 px) / 2. */
@media(min-width:400px){.brand{align-items:baseline}.brand .tagline{transform:translateY(calc(-24px*170/1040))}}
@media(min-width:960px){.brand .tagline{transform:translateY(calc(-28px*170/1040))}footer .brand{margin-top:8px}}
@media(max-width:399px){header .brand{align-self:start;margin-top:1px}header .search-link{align-self:start;margin-top:-9px}}
footer{align-items:flex-start}footer .brand{align-self:flex-start}
/* QA-гейт 25.09 (visual-review B, D, G, K) */
.article li ol,.article li ul{font:inherit;padding-left:20px;margin:8px 0 0}.article li li+li{margin-top:4px}
@media(max-width:599px){.table-hint:has(+.table-scroll table.pair){display:none}}
main h1,main h2{text-wrap:balance}main h3,.feed li{text-wrap:pretty}
/* «Свежее»: дата с годом под заголовком (владелец 26.09, msg 890) */
.home-v4 .fresh .date{display:block;margin-top:4px;font:400 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3)}

/* /about/: блок «Бортовой журнал» (владелец 26.09, msg 955); картинка во всю колонку, линия сверху — снизу её даёт оглавление */
.live-promo{margin:32px 0 40px;padding-top:24px;border-top:1px solid var(--rule)}
.live-promo-img{display:block}.live-promo img{display:block;width:100%;height:auto;border:1px solid var(--rule)}
.live-promo .kicker{margin:20px 0 8px}.live-promo h2{margin:0 0 12px}.live-promo p{margin:0 0 12px}.live-promo p:last-child{margin:0}

/* T02 v2: картинки статьи не шире колонки; галерея слайдов на индексе файлов теста */
.article article img{max-width:100%;height:auto}
.slides{list-style:none;padding:0;margin:16px 0 32px;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}
.test-file pre,.article article pre{max-width:100%;overflow-x:auto;white-space:pre-wrap;overflow-wrap:break-word;font:400 13px/20px ui-monospace,Menlo,monospace}
.article article>pre{max-width:680px;box-sizing:border-box;padding:16px 18px;border:1px solid var(--rule);background:var(--surface);font-size:14px;line-height:22px}
.slides li{margin:0}.slides a{display:block}.slides img{display:block;width:100%;height:auto;border:1px solid var(--rule)}
.slides span{display:block;margin-top:4px;font:400 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3);overflow-wrap:anywhere}

/* T31: график-пауза «без ошибок из 12» (design-direction § 8): HTML-столбцы, подписи напрямую, главная серия — c-1 */
.article article>.chart{max-width:680px;margin-top:32px;margin-bottom:32px;font-family:"Golos Text","Golos Fallback",sans-serif}
.chart-title{margin:0;font:600 18px/26px "Golos Text","Golos Fallback",sans-serif;color:var(--ink)}
.chart-sub{margin:4px 0 16px;font:400 13px/16px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3)}
.chart-bars{border-bottom:1px solid var(--ink);padding-bottom:8px}
.chart-row{display:grid;grid-template-columns:160px 1fr;column-gap:16px;align-items:center;padding:8px 0;border-top:1px solid var(--rule)}
.chart-label{grid-row:span 2;font:400 14px/20px "Golos Text","Golos Fallback",sans-serif;color:var(--ink)}
.chart-bar{display:flex;align-items:center;gap:8px;min-height:20px;font:400 14px/20px "Golos Text","Golos Fallback",sans-serif;font-variant-numeric:tabular-nums}
.chart-bar .bar{display:block;height:12px;flex:none}
.chart .bar.main{background:var(--c-1)}.chart .bar.muted{background:var(--c-muted)}
.chart .val{flex:none;white-space:nowrap;color:var(--ink);font-weight:500}.chart-series{flex:none;white-space:nowrap;font-size:13px;line-height:16px;color:var(--ink-3)}
.chart figcaption{margin-top:8px;font:400 13px/18px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3)}
.chart details{margin-top:8px;font:400 14px/20px "Golos Text","Golos Fallback",sans-serif}.chart summary{cursor:pointer;color:var(--ink-2)}
.chart details table{margin-top:8px;min-width:0;font-variant-numeric:tabular-nums}
.chart .w0{width:0}.chart .w1{width:calc((100% - 164px) * 1 / 12)}.chart .w2{width:calc((100% - 164px) * 2 / 12)}.chart .w3{width:calc((100% - 164px) * 3 / 12)}.chart .w4{width:calc((100% - 164px) * 4 / 12)}.chart .w5{width:calc((100% - 164px) * 5 / 12)}.chart .w6{width:calc((100% - 164px) * 6 / 12)}.chart .w7{width:calc((100% - 164px) * 7 / 12)}.chart .w8{width:calc((100% - 164px) * 8 / 12)}.chart .w9{width:calc((100% - 164px) * 9 / 12)}.chart .w10{width:calc((100% - 164px) * 10 / 12)}.chart .w11{width:calc((100% - 164px) * 11 / 12)}.chart .w12{width:calc((100% - 164px) * 12 / 12)}
@media(max-width:599px){.chart-row{grid-template-columns:1fr}.chart-label{grid-row:auto;margin-bottom:4px}}
/* C-0109 r6: the mobile mask sits outside the keyboard-scroll viewport. */
header nav a{height:40px;min-height:40px;flex:0 0 auto;padding:0 4px}
header nav a:focus-visible{outline-offset:-2px}
@media(max-width:959px){header nav{height:40px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;margin-right:24px;padding-right:4px}header::after{display:block}}
@media(min-width:960px) and (max-width:1100px){header nav{gap:6px}}
header nav{scroll-snap-type:x mandatory}
header nav a:focus-visible{scroll-snap-align:center;scroll-snap-stop:always}
.test-file[data-record] td code{overflow-wrap:normal;word-break:normal}
.test-file[data-record] p>code{display:inline-block;max-width:100%;overflow-x:auto;white-space:nowrap;vertical-align:bottom}

/* C0109 initial two whole labels, no JS/gradient; third begins beyond viewport */
@media(max-width:639px){header nav a:first-child{flex:0 0 76px}header nav a:nth-child(2){flex:0 0 calc(100% - 100px)}}

/* C0109 mobile scroll cue: neutral, noninteractive, empty accessible alternative */
@media(max-width:639px){header::after{content:"↔" / "";font:400 16px/40px "Golos Text","Golos Fallback",sans-serif;color:var(--ink-3);text-align:center}}

/* CSP: pandoc alignment as a class, no inline styles */
:is(th,td).num{text-align:right}

.ym-pixel{position:absolute;left:-9999px}
.cookie-notice{position:fixed;inset:auto 0 0;z-index:10;background:var(--bg);color:var(--ink);border-top:2px solid var(--ink);padding:8px 12px;display:flex;gap:12px;align-items:center;font:400 16px/24px "Golos Text","Golos Fallback",sans-serif}
.cookie-notice p{margin:0;flex:1;min-width:0;font:inherit}
.cookie-notice button{flex:none;min-height:44px;padding:0 4px;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;text-decoration:underline;cursor:pointer}
.cookie-notice a{color:inherit;text-decoration:underline}
.cookie-full{display:none}
@media(min-width:600px){.cookie-full{display:inline}.cookie-short{display:none}}
.cookie-notice button:focus-visible,.cookie-notice a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
body{padding-bottom:var(--cookie-height,96px)}
html.cookie-seen body{padding-bottom:0}
html.cookie-seen .cookie-notice{display:none}
