@font-face{font-family:'Neucha';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/neucha-cyrillic.woff2) format('woff2');unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'Neucha';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/neucha-latin.woff2) format('woff2');unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* Портал Лиги — прототип по дизайн-киту Кирилла (13.10.2026), v11 (14.10): инверсия полотен, проявления, обложки-схемы.
   Токены и шрифт — liga-design/tokens.css (подключается первым, своих значений не заводим).
   Блок «С сайта Лиги 1:1» — CSS компонентов из components.html кита без изменений.
   Блок «Портал» — страниц портала в ките нет (С9): собраны из тех же компонентов и токенов,
   до выкладки — снимками на сверку Кириллу. */
/* ══ С сайта Лиги 1:1 ══ */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:"Onest",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg);color:var(--ink);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit}
a:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.brand{display:inline-flex;align-items:baseline;text-decoration:none;white-space:nowrap}
.brand .name{font-size:24px;font-weight:700;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.brand .sub{font-size:13px;font-weight:400;line-height:1;color:var(--muted);letter-spacing:0;transition:opacity 250ms ease-out}
.brand .sub b{font-weight:600}
.mark{font-size:var(--fs-mark);font-weight:800;letter-spacing:-.04em;line-height:.95;color:var(--ink);
  width:fit-content;margin:0 auto clamp(14px,2.4vh,28px);}
.act{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:clamp(22px,3.4vh,34px)}
.act .btn{min-width:11em}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 26px;border-radius:4px;
  font-size:16px;font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;
  transition:background-color 140ms ease-out,color 140ms ease-out,border-color 140ms ease-out;}
.btn .ic{width:18px;height:18px;flex:none;fill:currentColor}
.btn-1{background:var(--gold);color:var(--bg);border:1px solid var(--gold)}
.btn-1:hover{background:var(--gold-hi);border-color:var(--gold-hi)}
.btn-2{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn-2:hover{border-color:var(--ink)}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 16px)}
button{font:inherit;cursor:pointer;color:inherit}
button:focus-visible,.btn:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.btn[disabled]{opacity:.6;cursor:progress}
.lu{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad)}
.sec{position:relative;padding:var(--sec-y) 0}
.g12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.g12>*{grid-column:1/-1;min-width:0}
main p{max-width:62ch;text-wrap:pretty}
main h1,main h2,main h3,main h4{text-wrap:balance;overflow-wrap:break-word}
.h2{font-size:var(--fs-h2);font-weight:800;letter-spacing:-.035em;line-height:1.02;color:var(--ink);max-width:20ch}
.h3{font-size:var(--fs-l);font-weight:700;letter-spacing:-.02em;line-height:1.18;color:var(--ink)}
.h4{font-size:var(--fs-h4);font-weight:700;letter-spacing:-.01em;line-height:1.25;color:var(--ink)}
.lead{font-size:var(--fs-lead);line-height:1.45;letter-spacing:-.01em;color:var(--ink)}
.lead.soft{color:var(--soft)}
.txt{font-size:var(--fs-body);line-height:1.6;color:var(--soft)}
.em{color:var(--ink);font-weight:600}
.tlink{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--ink);text-decoration:none}
.tlink .t{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.24em}
.tlink:hover .t{text-decoration-thickness:2px}
.tlink .ic{width:18px;height:18px;flex:none;fill:currentColor}
.lib-l{list-style:none;border-bottom:1px solid var(--hair)}
.lib-i{position:relative;display:grid;grid-template-columns:104px minmax(0,1fr) 200px 28px;grid-template-areas:"k b v g";column-gap:20px;align-items:start;padding:20px 0;border-top:1px solid var(--hair);transition:background-color 160ms ease-out}
.lib-i:hover{background:var(--tint)}
.lib-i{scroll-margin-block:24px}
.lib-k{grid-area:k;font-size:var(--fs-sm);font-weight:600;line-height:1.35;color:var(--muted)}
.lib-tag{display:table;margin-top:8px;padding:4px 7px;border:1px solid var(--line);border-radius:2px;font-size:12px;font-weight:600;line-height:1;color:var(--soft)}
.lib-b{grid-area:b}
.lib-t{font-size:var(--fs-h4);font-weight:700;letter-spacing:-.01em;line-height:1.3;color:var(--ink)}
.lib-t a{text-decoration:none}
.lib-t a::after{content:"";position:absolute;inset:0}
.lib-t a:focus-visible{outline:none}
.lib-t a:focus-visible::after{outline:2px solid var(--focus);outline-offset:3px}
.lib-d{margin-top:8px;font-size:15px;line-height:1.5;color:var(--soft)}
.lib-v{grid-area:v;padding-top:4px}
.lib-go{grid-area:g;color:var(--ink);padding-top:2px;pointer-events:none}   /* стрелка — только знак: нажатие уходит в ссылку строки (замечание Романа 14.10) */
.lib-go .lu{width:22px;height:22px;transition:transform 260ms var(--ease-out)}
.lib-i:hover .lib-go .lu,.lib-i:focus-within .lib-go .lu{transform:translate(3px,-3px)}
.fld{margin-top:28px;border:0;padding:0;min-width:0}
.fld>label,.fld>legend{display:block;padding:0;margin-bottom:10px;font-size:15px;font-weight:600;line-height:1.4;color:var(--ink)}
.inp{display:block;width:100%;height:52px;padding:0 16px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);font:inherit;font-size:16px;line-height:1.3;-webkit-appearance:none;appearance:none;transition:border-color 140ms ease-out}
.inp::placeholder{color:var(--muted);opacity:1}
.inp:hover{border-color:rgba(241,239,248,.62)}
.inp:focus{border-color:var(--ink);outline:2px solid var(--focus);outline-offset:3px}
.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tile{position:relative;display:block;min-width:0;cursor:pointer}
.tile input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.tile span{display:flex;align-items:center;gap:12px;min-height:52px;height:100%;padding:12px 16px;border:1px solid var(--line);border-radius:4px;font-size:16px;line-height:1.3;color:var(--ink);overflow-wrap:anywhere;transition:border-color 140ms ease-out,background-color 140ms ease-out}
.tile span::before{content:"";flex:none;width:16px;height:16px;border-radius:50%;border:1px solid var(--muted);box-shadow:inset 0 0 0 3px var(--canvas);transition:background-color 140ms ease-out,border-color 140ms ease-out}
.tile:hover span{border-color:rgba(241,239,248,.62)}
.tile input:checked+span{border-color:var(--acc);background:var(--tint)}
.tile input:checked+span::before{border-color:var(--acc);background:var(--acc)}
.tile input:focus-visible+span{outline:2px solid var(--focus);outline-offset:3px}
.btn-ink{background:var(--ink);color:var(--bg);border:1px solid var(--ink)}
.btn-ink:hover{background:var(--soft);border-color:var(--soft)}
.btn-t{background:transparent;color:var(--ink);border:1px solid transparent;padding:0 16px}
.btn-t:hover{border-color:var(--line)}

/* ══ Портал: собрано из компонентов и токенов кита ══ */
.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ic.tg{fill:currentColor;stroke:none}
.skip{position:absolute;left:-9999px;top:8px;z-index:30}
.skip:focus{left:var(--pad);background:var(--bg);padding:8px 16px;border-radius:4px}
main{display:block;outline:none}
.num{font-variant-numeric:tabular-nums}

/* полотна страниц: первый экран страницы отодвинут от шапки */
/* v12: меньше пустоты (замечание Романа) — воздух портала плотнее, чем у лендинга */
.sec.tight{padding:clamp(48px,5vw,80px) 0}
.sec.pg-top{padding-top:calc(var(--hdr) + clamp(28px,3vw,48px))}
.sec.end{padding-bottom:clamp(64px,6vw,104px)}
.sec.tight.pg-top:not(.end){padding-bottom:clamp(32px,3.5vw,56px)}
.sh{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 24px;margin-bottom:28px}
.sh .tlink{min-height:0}
.pg-h{margin-bottom:28px}
.pg-h .lead{margin-top:20px;max-width:46ch}

/* первый экран главной — по центру, как на сайте */
.hero{min-height:min(100svh,880px);display:flex;align-items:center;text-align:center;padding:calc(var(--hdr) + 48px) 0 96px}
.hero .wrap{width:100%}
.type{font-size:var(--fs-type);line-height:1.25;letter-spacing:-.01em;color:var(--soft);max-width:22em;margin:0 auto}
.type .acc{font-weight:600}
.only{font-size:var(--fs-only);font-weight:700;line-height:1.4;color:var(--ink);max-width:30em;margin:16px auto 0}

/* строки списка: портальные дополнения к .lib-i */
.lib-k .when{display:block;color:var(--ink)}
.lib-k .lu{width:14px;height:14px;vertical-align:-2px;margin-right:4px}
.lib-who{margin-top:12px;font-size:var(--fs-sm);color:var(--soft)}
.lib-who a{position:relative;z-index:1;color:var(--ink);text-underline-offset:.24em}
.lib-v{display:flex;flex-direction:column;align-items:flex-start;gap:10px;font-size:var(--fs-sm);line-height:1.4;color:var(--soft)}
.lib-v b{font-size:var(--fs-h4);font-weight:700;color:var(--ink);line-height:1.2}
.lib-v s{color:var(--muted)}
.lib-v .row{display:inline-flex;align-items:center;gap:6px}
.lib-v .lu{width:16px;height:16px}
.lib-v .btn,.lib-v button{position:relative;z-index:1}
.lib-v .btn{min-height:38px;padding:0 14px;font-size:14px;gap:8px}
.lib-v .btn .ic{width:16px;height:16px}
.fav{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;margin:4px 0 0 -10px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--muted)}
.fav:hover{border-color:var(--line);color:var(--ink)}
.fav[aria-pressed="true"]{color:var(--ink)}
.fav[aria-pressed="true"] .lu{fill:currentColor}
.ok{display:inline-flex;align-items:center;gap:6px;color:var(--ink);font-weight:600}
.lib-i.lead-row .lib-t{font-size:var(--fs-l);letter-spacing:-.02em;line-height:1.18}

@keyframes run{to{transform:translateX(-50%)}}

/* голосование: до голоса — плитки формы (выбор до трёх), после — итоги полосами */
.vote{margin-top:var(--g-out);display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gut)}
.vote-h{grid-column:1/5}
.vote-h .h4{max-width:16ch}
.vote-h p{margin-top:12px;font-size:var(--fs-sm);color:var(--soft)}
.vote-b{grid-column:5/13}
.vote .tiles{grid-template-columns:1fr}
.vote .tile span::before{border-radius:2px}
.vote .tile input:disabled+span{opacity:.5;cursor:not-allowed}
.vote-nav{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:24px}
.vote-nav .note{font-size:var(--fs-sm);color:var(--soft)}
.vres{list-style:none;border-bottom:1px solid var(--hair)}
.vres li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;align-items:baseline;padding:16px 0;border-top:1px solid var(--hair)}
.vres .t{font-size:16px;line-height:1.4;color:var(--soft)}
.vres .my .t{color:var(--ink);font-weight:600}
.vres .n{font-size:var(--fs-sm);font-weight:700;color:var(--ink)}
.vres .bar6{grid-column:1/-1;height:6px;background:var(--hair);border-radius:1px;overflow:hidden}
.vres .bar6 i{display:block;height:100%;background:var(--muted);transform-origin:0 50%;border-radius:1px}
.vres .my .bar6 i{background:var(--ink)}
.vres .k{font-size:12px;font-weight:600;color:var(--muted);margin-left:8px}
.sugg{display:flex;gap:8px;margin-top:20px}
.sugg .inp{flex:1;min-width:0}

/* страница ведущего */
.prof{align-items:end;row-gap:40px}
.prof img{grid-column:1/5;display:block;width:min(100%,260px);height:auto;border-bottom:1px solid var(--line)}
.prof-b{grid-column:5/13}
.prof .vn{font-size:clamp(32px,calc(16px + 2.6vw),52px);font-weight:800;letter-spacing:-.035em;line-height:1.02;color:var(--ink)}
.prof .rl{margin-top:12px;font-size:var(--fs-body);color:var(--soft)}
.prof .txt{margin-top:20px}
.stats{display:flex;flex-wrap:wrap;gap:16px 48px;margin-top:28px}
.stats div{font-size:var(--fs-sm);color:var(--soft)}
.stats b{display:block;font-size:var(--fs-l);font-weight:800;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}

/* календарь: таблица на тонких линиях, знаки — легенда схемы ритма кита: эфир — точка --ink,
   запись — малая точка --muted, курс и инструмент — квадрат-контур; золотой узел — только живая встреча */
.kal-top{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:28px}
.month{display:flex;align-items:center;gap:6px}
.month b{min-width:112px;text-align:center;font-size:15px;font-weight:700}
.month button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:4px;background:transparent}
.month button:hover:not(:disabled){border-color:var(--ink)}
.month button:disabled{opacity:.35;cursor:default}
.kal-n{margin:12px 0 24px;max-width:72ch;font-size:var(--fs-sm);line-height:1.5;color:var(--soft)}
.legend{margin-bottom:28px}
.legend button{display:inline-flex;align-items:center;gap:8px}
.mk{flex:none;display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ink)}
.mk.rec{width:6px;height:6px;background:var(--muted)}
.mk.tool{width:9px;height:9px;border-radius:1px;background:transparent;border:1px solid var(--muted)}
.mk.course{width:9px;height:9px;border-radius:1px;background:transparent;border:1px solid var(--ink)}
.mk.join{width:9px;height:9px;border-radius:1px;background:transparent;border:1px dashed var(--muted)}
.kal{border-bottom:1px solid var(--hair)}
.kh,.kw{display:grid;grid-template-columns:160px repeat(7,minmax(0,1fr))}
.kh div{padding:0 8px 12px;font-size:12px;font-weight:600;color:var(--muted)}
.kw{border-top:1px solid var(--hair)}
.kl{padding:16px 16px 16px 0}
.kl .nn{font-size:12px;font-weight:600;color:var(--muted)}
.kl .tt{margin-top:6px;font-size:15px;font-weight:700;line-height:1.3;color:var(--ink)}
.kl .dt{margin-top:6px;font-size:12px;color:var(--muted)}
.kd{min-height:132px;padding:12px 8px;border-left:1px solid var(--hair);display:flex;flex-direction:column;gap:8px}
.kd.out .dn,.kd.past .dn{color:var(--muted)}
.kd .dn{display:flex;align-items:baseline;gap:6px;font-size:var(--fs-sm);font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.kd .dn small{font-size:12px;font-weight:600;color:var(--muted)}
.kd.today{background:var(--tint)}
.kd.today .dn small{color:var(--ink)}
.kd .dw{display:none}
.kc{display:block;text-decoration:none;font-size:13px;font-weight:600;line-height:1.3;color:var(--ink);transition:opacity 200ms ease-out}
.kc .tm{display:flex;align-items:center;gap:6px;margin-bottom:2px;font-size:12px;font-weight:600;color:var(--muted)}
.kc .tm .lu{width:12px;height:12px}
a.kc:hover .tt{text-decoration:underline;text-underline-offset:.2em}
.kc.dim{opacity:.25}
.week{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-bottom:1px solid var(--hair);border-top:1px solid var(--hair)}
.week .kd:first-child{border-left:0;padding-left:0}

/* окно: подробности курса или сервиса, вход */
.scrim{position:fixed;inset:0;z-index:40;background:rgba(22,20,31,.8);display:none;align-items:center;justify-content:center;padding:16px}
.scrim.on{display:flex}
.modal{position:relative;width:min(100%,560px);max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;padding:40px 28px 28px}
.modal .x{position:absolute;right:12px;top:12px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:4px;background:transparent}
.modal .x:hover{border-color:var(--line)}
.modal .h3{padding-right:40px}
.modal .k{font-size:var(--fs-sm);font-weight:600;color:var(--muted);margin-bottom:8px}
.modal .sub{margin-top:8px;font-size:var(--fs-lead);line-height:1.45;color:var(--ink)}
.modal p{margin-top:16px;font-size:var(--fs-body);line-height:1.6;color:var(--soft)}
.modal .fmt{margin-top:16px;font-size:var(--fs-sm);color:var(--muted)}
.modal .price{margin-top:24px;font-size:var(--fs-l);font-weight:800;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.modal .price s{margin-left:12px;font-size:var(--fs-body);font-weight:400;color:var(--muted)}
.modal .price.t{font-size:var(--fs-h4);font-weight:700}
.perk{margin-top:20px;padding:16px 0;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);font-size:15px;color:var(--soft);display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.perk b{color:var(--ink);font-weight:600}
.perk .lu{width:16px;height:16px}
.code{display:inline-flex;align-items:center;gap:12px;font-weight:700;color:var(--ink);letter-spacing:.02em}
.code button{min-height:38px;padding:0 14px;border:1px solid var(--line);border-radius:4px;background:transparent;font-size:14px;font-weight:600}
.code button:hover{border-color:var(--ink)}
.modal .btn{margin-top:28px;width:100%}

/* блог */
.post{grid-column:1/9}
.toc{grid-column:9/13;position:sticky;top:calc(var(--hdr) + 32px);align-self:start}
.toc .k{font-size:var(--fs-sm);font-weight:600;color:var(--muted);margin-bottom:12px}
.toc ol{list-style:none;counter-reset:t;border-bottom:1px solid var(--hair)}
.toc li{counter-increment:t;border-top:1px solid var(--hair)}
.toc a{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;padding:12px 0;font-size:var(--fs-sm);line-height:1.4;color:var(--soft);text-decoration:none}
.toc a::before{content:counter(t);color:var(--muted);font-weight:600;font-variant-numeric:tabular-nums}
.toc a:hover,.toc a.on{color:var(--ink)}
.post>p,.post li{font-size:var(--fs-body);line-height:1.6;color:var(--soft)}
.post>p{margin-top:20px}
.post>p.lead{color:var(--ink);margin-top:0}
.post strong{color:var(--ink);font-weight:600}
.post h2{margin-top:var(--g-out);font-size:var(--fs-l);font-weight:700;letter-spacing:-.02em;line-height:1.18;color:var(--ink);scroll-margin-top:calc(var(--hdr) + 32px)}
.post ul{margin-top:20px;padding-left:20px}
.post li{margin-top:8px}
.post li::marker{color:var(--muted)}
.post .upd{font-size:var(--fs-sm);color:var(--muted)}
.post blockquote{margin-top:28px;padding-left:20px;border-left:2px solid var(--acc);font-size:clamp(20px,calc(16px + .5vw),24px);line-height:1.4;color:var(--ink)}
.twrap{margin-top:28px;overflow-x:auto}
.twrap table{width:100%;border-collapse:collapse;font-size:15px;font-variant-numeric:tabular-nums}
.twrap th{text-align:left;padding:0 16px 12px 0;font-size:12px;font-weight:600;color:var(--muted)}
.twrap td{padding:14px 16px 14px 0;border-top:1px solid var(--hair);color:var(--soft)}
.twrap td:first-child{color:var(--ink);font-weight:600}
.inset{margin-top:40px;padding:28px;border:1px solid var(--line);border-radius:4px}
.inset .h4{margin-bottom:8px}
.inset p{font-size:15px;color:var(--soft);margin-bottom:20px}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:0 24px;margin-top:40px;padding-top:20px;border-top:1px solid var(--hair);font-size:var(--fs-sm);color:var(--muted)}
.pager{display:flex;gap:24px;margin-top:40px}

/* ── v11: полотна — компоненты на светлом и золотом полотне (токены полотна, своих значений нет) ── */
.c-paper .inp:hover,.c-paper .tile:hover span,.c-gold .inp:hover,.c-gold .tile:hover span{border-color:var(--ink)}
.c-paper .btn-ink{color:var(--paper)}
.c-gold .btn-ink{background:#16141F;color:#C79A3E;border-color:#16141F}   /* на золоте — как .btn-dark кита */
.c-gold .btn-ink:hover{background:#2A2316;border-color:#2A2316}
.c-gold .vote{margin-top:0}
.c-gold .vote .tile input:disabled+span{opacity:.6}
/* тёмная обложка внутри светлого полотна: возвращаем токены ночи */
.c-night.cv,.c-night2.cv{--ink:#F1EFF8;--soft:#BEBBCC;--muted:#9C99AE;--line:rgba(241,239,248,.40);--hair:rgba(241,239,248,.08);--acc:#C79A3E;color:var(--ink)}
.c-paper.cv,.c-paper.player{color:var(--ink)}
/* превью-картинка по фреймворку Кирилла: всегда целиком (на телефоне строка 2:1 — по бокам бумага того же цвета, что
   полотно картинки, обрезать нельзя: подписи схемы стоят у нижнего поля) */
.cv.prevyu{padding:0;gap:0;background:#F2EEE6}
.cv.prevyu img{display:block;width:100%;height:100%;object-fit:contain}

/* ── обложки: схема-объяснение на полотне (С11), без картинок ── */
.cv{container-type:inline-size;position:relative;display:flex;flex-direction:column;gap:12px;aspect-ratio:16/10;padding:14px 16px 18px;border-radius:4px;overflow:hidden;background:var(--canvas)}
.cv-k{font-size:12px;font-weight:600;line-height:1.3;color:var(--muted)}
.cv-s{flex:1;display:flex;align-items:center;min-width:0}
.lg-num b{display:block;font-size:clamp(24px,13cqi,64px);font-weight:800;letter-spacing:-.04em;line-height:.95;color:var(--acc);font-variant-numeric:tabular-nums}
.lg-num span{display:block;margin-top:8px;font-size:clamp(12px,5cqi,16px);line-height:1.35;color:var(--soft);max-width:24ch}
.lg-logo{font-size:clamp(24px,12cqi,60px);font-weight:800;letter-spacing:-.035em;line-height:1;color:var(--ink);overflow-wrap:anywhere}
.lg-frm{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;font-size:clamp(13px,6cqi,24px);font-weight:700;line-height:1.2}
.lg-frm s{color:var(--muted);font-weight:600;text-decoration-thickness:1px}
.lg-frm .ar{color:var(--muted)}
.lg-frm b{padding:6px 10px;border:1px solid var(--acc);border-radius:4px;color:var(--ink)}
.lg-chain{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);width:100%}
.lg-chain .node{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;font-size:clamp(12px,4.4cqi,16px);font-weight:600;line-height:1.25;color:var(--soft);padding:0 2px}
.lg-chain .node i{position:relative;z-index:1;width:11px;height:11px;border-radius:50%;border:1px solid var(--ink);background:var(--canvas)}
.lg-chain .node+.node::before{content:"";position:absolute;top:5px;right:50%;width:100%;height:1px;background:var(--line);transform-origin:0 50%}
.lg-chain .node.key{color:var(--ink)}
.lg-chain .node.key i{background:var(--accf);border-color:var(--accf)}
.lg-chain .node.gap::before{background:none;border-top:1px dashed var(--line)}
.lg-chain .node.gap i{border-style:dashed}

/* строки с обложкой: обложка · тело · действие · стрелка */
.lib-i.wc{grid-template-columns:288px minmax(0,1fr) 256px 28px;grid-template-areas:"c b v g"}
.lib-c{grid-area:c}
.lib-m{display:flex;flex-wrap:wrap;align-items:center;gap:0 12px;margin:-6px 0 6px;font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
.lib-m .when{color:var(--ink)}
.lib-m .fav{margin:0}

/* «Новое в базе» — три обложки крупно */
.feat{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gut)}
.ft{position:relative;min-width:0}
.ft>a{display:block;text-decoration:none}
.ft>a::after{content:"";position:absolute;inset:0}
.ft>a:focus-visible{outline:none}
.ft>a:focus-visible::after{outline:2px solid var(--focus);outline-offset:3px}
.ft .cv{transition:transform 260ms var(--ease-out)}
.ft:hover .cv{transform:translateY(-3px)}
.ft-m{display:flex;align-items:center;gap:4px;margin-top:16px;font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
.ft-m .lu{width:14px;height:14px}
.ft-t{display:block;margin-top:8px;font-size:var(--fs-h4);font-weight:700;letter-spacing:-.01em;line-height:1.3;color:var(--ink)}
.ft:hover .ft-t{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}

.lnk{margin-top:16px;padding-left:0}
.modal .lnk{width:auto;margin-top:12px}
.half{grid-column:1/8}

/* календарь: имена ведущих */
.kc .hn{display:block;margin-top:2px;font-size:12px;font-weight:400;color:var(--soft)}

/* промокоды и условия партнёров */
.pks{list-style:none;border-bottom:1px solid var(--hair)}
.pk{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr);gap:12px var(--gut);align-items:center;padding:20px 0;border-top:1px solid var(--hair)}
.pk-t b{display:block;font-size:var(--fs-h4);font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.pk-t span{display:block;margin-top:4px;font-size:15px;color:var(--soft)}
.pk-c{display:flex;align-items:center;gap:8px;font-size:var(--fs-body);font-weight:600;color:var(--ink)}
.pk-c .lu{width:16px;height:16px;color:var(--muted)}
.pk-x{display:flex;flex-direction:column;align-items:flex-start;gap:4px;font-size:var(--fs-sm);color:var(--soft)}
.pk-x .tlink{min-height:0}

/* проявления (С6) — код сайта; схемы прорисовываются после проявления */
html.rv .up,html.rv .stg>*{opacity:0;transform:translateY(14px);transition:opacity 700ms var(--ease-out),transform 700ms var(--ease-out);transition-delay:calc(var(--i,0) * 90ms)}
html.rv .up.in,html.rv .stg.in>*{opacity:1;transform:none}
html.rv .up .node+.node::before,html.rv .stg .node+.node::before{transform:scaleX(0);transition:transform 900ms var(--ease-move);transition-delay:calc(var(--i,0) * 90ms + 300ms + var(--n) * 170ms)}
html.rv .up.in .node+.node::before,html.rv .stg.in .node+.node::before{transform:none}
html.rv .up .node.key i,html.rv .stg .node.key i{transform:scale(.5);opacity:0;transition:transform 500ms var(--ease-out),opacity 500ms var(--ease-out);transition-delay:calc(var(--i,0) * 90ms + 500ms + var(--n) * 170ms)}
html.rv .up.in .node.key i,html.rv .stg.in .node.key i{transform:none;opacity:1}

/* ── v12 ── */
.c-night.tl-r{--ink:#F1EFF8;--soft:#BEBBCC;--muted:#9C99AE;--line:rgba(241,239,248,.40);--hair:rgba(241,239,248,.08);--acc:#C79A3E;--focus:#F1EFF8;color:var(--ink)}
/* обложка-заголовок: крючок крупно, ведущие маленькой подписью внизу */
.cv.tc{gap:0;padding:clamp(10px,6cqi,22px);overflow:visible}   /* пропорция — нижняя граница: длинный крючок растит обложку, а не обрезается */
.tc .cv-k{font-size:clamp(10px,4.6cqi,13px)}
.tc .cv-k b{font-weight:700;color:var(--ink)}
.tc-h{flex:1;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:6px 0}
.tc-h.n b{font-size:clamp(24px,19cqi,76px);font-weight:800;letter-spacing:-.045em;line-height:.9;color:var(--acc);font-variant-numeric:tabular-nums}
.tc-h.n span{margin-top:clamp(4px,2cqi,10px);max-width:24ch;font-size:clamp(11px,5.6cqi,18px);font-weight:600;line-height:1.25;color:var(--ink)}
.tc-h.q{font-size:clamp(13px,8.4cqi,32px);font-weight:800;letter-spacing:-.025em;line-height:1.08;color:var(--ink);max-width:16ch;text-wrap:balance}
.tc-f{display:flex;align-items:center;gap:8px;min-width:0;font-size:clamp(11px,4.6cqi,13px);color:var(--soft)}
.tc-f .av{display:flex;flex:none}
.tc-f .av img{width:clamp(20px,10cqi,28px);height:clamp(20px,10cqi,28px);border-radius:50%;object-fit:cover;object-position:50% 12%;background:var(--hair);box-shadow:0 0 0 2px var(--canvas)}
.tc-f .av img+img{margin-left:-6px}
.tc-f .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tc-f .sr{margin-left:auto;white-space:nowrap;color:var(--muted)}
/* полосы «было / стало» */
.lg-bars{display:flex;flex-direction:column;gap:14px;width:100%}
.lg-bars .bt{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:clamp(12px,4.6cqi,16px);font-weight:600;color:var(--soft)}
.lg-bars .bt b{color:var(--ink)}
.lg-bars i{display:block;height:10px;border-radius:2px;background:var(--soft);transform-origin:0 50%;transform:scaleX(var(--w))}
.lg-bars .key i{background:var(--accf)}
.lg-bars .key .bt b{color:var(--acc)}
html.rv .up .lg-bars i,html.rv .stg .lg-bars i{transform:scaleX(0);transition:transform 900ms var(--ease-move);transition-delay:calc(var(--i,0) * 90ms + 300ms)}
html.rv .up.in .lg-bars i,html.rv .stg.in .lg-bars i{transform:scaleX(var(--w))}

/* календарь без значков: тип — словом и полосой слева */
.kc{padding-left:10px;border-left:2px solid var(--line)}
.kc.live{border-left-color:var(--ink)}
.kc.live.open{border-left-color:var(--acc)}
.kc.rec{border-left-color:var(--muted)}
.kc.join{border-left-style:dashed}
.kc.tg{border-left-style:dotted}

/* описание «для кого / что делает / что получите» */
.desc{display:grid;gap:0;margin-top:20px}
.desc>div{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--hair)}
.desc dt{font-size:var(--fs-sm);font-weight:600;line-height:1.5;color:var(--muted)}
.desc dd{font-size:var(--fs-body);line-height:1.5;color:var(--soft)}
.desc dd.em{color:var(--ink);font-weight:600}
.desc dd ul{list-style:none}
.desc dd li{position:relative;padding-left:16px}
.desc dd li+li{margin-top:6px}
.desc dd li::before{content:"";position:absolute;left:0;top:.75em;width:7px;height:1px;background:var(--muted)}
.desc.row2{grid-template-columns:1fr 1fr;column-gap:24px;margin-top:14px}
.desc.row2>div{grid-template-columns:1fr;gap:2px;padding:10px 0 0}
.desc.row2 dd{font-size:15px}
.desc.hd{max-width:880px;margin-top:28px}
.desc.sm>div{grid-template-columns:1fr;gap:4px}

/* сервисы — широкие блоки */
.svcs{border-bottom:1px solid var(--hair)}
.svc{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--gut);padding:40px 0;border-top:1px solid var(--hair)}
.svc-c{display:block;text-decoration:none}
.svc-c .cv{aspect-ratio:4/3;padding:24px}
.svc-c:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.svc-b .h3{margin-top:2px;font-size:var(--fs-h2)}
.svc-b .lib-m{margin:0}
.svc-f{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:24px}
.svc-f .pr{font-size:var(--fs-h4);font-weight:700;color:var(--ink)}
.svc-f .row{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--soft)}
.svc-f .row .lu{width:16px;height:16px}
.svc-f .btn{margin-left:auto}

/* страница инструмента: форма и итог */
.tl{align-items:start;row-gap:40px}
.tl-f{grid-column:1/8}
.tl-r{grid-column:8/13;position:sticky;top:calc(var(--hdr) + 24px);padding:28px;border-radius:4px}
.tl-r .k{font-size:var(--fs-sm);font-weight:600;line-height:1.4;color:var(--muted)}
.tl-r .k+.big,.tl-r .big+.k{margin-top:4px}
.tl-r .big{display:block;margin:6px 0 20px;font-size:clamp(40px,calc(20px + 3vw),64px);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--acc);font-variant-numeric:tabular-nums}
.tl-r .res2{margin-top:4px;font-size:var(--fs-l);font-weight:700;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.tl-r .h4{margin:28px 0 8px}
.dayb,.cmp{list-style:none}
.dayb li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;padding:10px 0;border-top:1px solid var(--hair);font-size:15px;color:var(--soft)}
.dayb b,.cmp b{color:var(--ink);font-weight:700}
.dayb i{grid-column:1/-1;height:6px;border-radius:1px;background:var(--muted);transform-origin:0 50%}
.dayb li:last-child i{background:var(--accf)}
.cmp{margin-top:20px}
.cmp li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--hair);font-size:15px;color:var(--soft)}
.cmp .my span{color:var(--ink);font-weight:600}
.cmp .my b{color:var(--acc)}
.pv{margin-top:8px;font-size:var(--fs-lead);line-height:1.45;color:var(--ink)}
.tl-r .lnk{margin-top:20px}
.grp{border:0;padding:0;margin:0 0 48px;min-width:0}
.grp>legend{padding:0;margin-bottom:4px}
.grp .fld{margin-top:20px}
.grp .tiles{margin-top:16px}
.tl-f .inp{max-width:320px}
.fld .u{font-weight:400;color:var(--muted)}
.hint{margin-top:8px;font-size:var(--fs-sm);line-height:1.4;color:var(--muted)}
.works{list-style:none;margin-top:16px;border-bottom:1px solid var(--hair)}
.works li{display:grid;grid-template-columns:minmax(0,1fr) 88px 14px;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--hair)}
.works .u{font-size:var(--fs-sm);color:var(--muted)}
.chk{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:var(--fs-body);line-height:1.4;color:var(--ink)}
.chk input{flex:none;width:18px;height:18px;margin-top:3px;accent-color:#16141F}
.chk small{display:block;font-size:12px;color:var(--muted)}
.tl-f .inp.sm{height:44px;text-align:right}
.inp.ta{height:auto;min-height:150px;max-width:none!important;padding:14px 16px;line-height:1.5;resize:vertical}
.step .prog{height:2px;margin:12px 0 28px;background:var(--hair)}
.step .prog i{display:block;height:100%;background:var(--ink);transform-origin:0 50%;transition:transform 350ms var(--ease-move)}
.step .txt{margin-top:12px}
.nav2{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:32px}

/* переключатель прототипа — не часть портала */
.proto{position:fixed;left:16px;bottom:16px;z-index:30;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;background:var(--paper);color:var(--ink-d);border-radius:4px;font-size:14px}
.proto .seg{display:flex;border:1px solid rgba(22,20,31,.55);border-radius:4px;overflow:hidden}
.proto .seg button{min-height:36px;padding:0 14px;border:0;background:transparent;color:var(--ink-d);font-weight:600;font-size:14px}
.proto .seg button[aria-pressed="true"]{background:var(--ink-d);color:var(--paper)}

/* ══ Адаптив: брейкпоинты кита 999 и 639 ══ */
@media screen and (max-width:999px){
  .sec.pg-top{padding-top:calc(var(--hdr) + 44px + 28px)}
  .hero{padding-top:calc(var(--hdr) + 92px)}
  .lib-i{grid-template-columns:104px minmax(0,1fr) 28px;grid-template-areas:"k b g" "k v g"}
  .lib-i.wc{grid-template-columns:180px minmax(0,1fr) 28px;grid-template-areas:"c b g" "c v g"}
  .feat{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feat .ft:nth-child(3){display:none}
  .pk{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .svc{grid-template-columns:1fr}
  .svc-c .cv{aspect-ratio:2/1}
  .tl-f,.tl-r{grid-column:1/-1}
  .tl-r{position:static}
  .desc.row2{grid-template-columns:1fr}
  .pk-x{grid-column:1/-1}
  .half{grid-column:1/-1}
  .lib-v{padding-top:14px}
  .vote-h,.vote-b,.post,.toc,.prof img,.prof-b{grid-column:1/-1}
  .vote-b{margin-top:24px}
  .toc{position:static;order:-1;margin-bottom:28px}
  .kh{display:none}
  .kw{grid-template-columns:repeat(7,minmax(0,1fr))}
  .kl{grid-column:1/-1;border-bottom:1px solid var(--hair);padding:16px 0}
  .kd{min-height:96px;padding:8px 4px;font-size:12px}
  .kd:nth-child(2){border-left:0}
  .kc{font-size:12px}
  .week{grid-template-columns:1fr}
  .week .kd{border-left:0;border-top:1px solid var(--hair);min-height:0;padding:16px 0}
  .week .kd:first-child{border-top:0}
}
/* обложка сервиса в строке (Навигация, 640–999): в 180 px полоса «Продали» и подписи цепочки не помещались —
   обложка шире и по высоте содержимого, подписи цепочки мельче */
@media screen and (min-width:640px) and (max-width:999px){
  .lib-i.wc:has(.svc-cv){grid-template-columns:220px minmax(0,1fr) 28px}
  .lib-c .svc-cv{aspect-ratio:auto;align-self:start}
  .lib-c .svc-cv .lg-chain .node{font-size:11px;padding:0}
}
@media screen and (max-width:639px){
  .lib-i{grid-template-columns:minmax(0,1fr) 24px;grid-template-areas:"k g" "b g" "v g";row-gap:6px}
  .lib-i.wc{grid-template-columns:minmax(0,1fr) 24px;grid-template-areas:"c c" "b g" "v g";row-gap:14px}
  .lib-c .cv{aspect-ratio:2/1}
  .lib-m{margin-top:0}
  .feat{grid-template-columns:1fr;row-gap:40px}
  .feat .ft:nth-child(3){display:block}
  .pk{grid-template-columns:1fr}
  .desc>div{grid-template-columns:1fr;gap:4px}
  .svc-f .btn{margin-left:0}
  .tl-r{padding:20px}
  .brand .name{font-size:22px}
  .brand .sub{font-size:12px}
  .btn{padding:0 20px;min-height:48px}
  .act{width:100%;flex-wrap:nowrap;max-width:24em;margin-left:auto;margin-right:auto}
  .act .btn{min-width:0;flex:1 1 0;padding:0 12px}
  .kw{display:block}
  .kd{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:4px 16px;min-height:0;border-left:0;border-top:1px solid var(--hair);padding:12px 0}
  .kd.none{display:none}
  .kd .dn{width:64px}
  .kd .dw{display:inline}
  .kd .kc{flex:1 1 60%}
  .kd .kc+.kc{margin-left:80px}
  .kl{border-bottom:0}
  .sugg{flex-direction:column}
  .proto{left:8px;right:8px;bottom:8px;justify-content:space-between}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* встроенные инструменты Yavo (tools/*.html): фрейм без своей прокрутки, высоту ставит связка */
.yt .wrap{padding:0 calc(var(--pad) - 4px)}
.yt-f{display:block;width:100%;height:1400px;border:0;background:var(--paper)}
.sec.yt{padding-top:0;background:var(--paper)}
.yt-hd.sec{padding-bottom:clamp(40px,4vw,64px)}
.yt-hd .crumbs{color:var(--soft);font-size:var(--fs-sm)}
.yt-h{margin-top:24px;max-width:22ch}
.yt-lid{margin:20px 0 0;max-width:720px}

/* ── v15: обложка-схема от руки (реф — t.me/temno) ── */
.cv.sk{padding:4px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--sep)}
.cv.sk svg{display:block;width:100%;height:100%}
.cv.sk text{font-family:"Onest",sans-serif;font-weight:800;fill:var(--ink);text-anchor:middle;dominant-baseline:central;letter-spacing:-.01em}
.cv.sk path,.cv.sk circle,.cv.sk rect{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter}
.cv.sk rect{stroke-width:1.2}
.cv.sk .sk-k{stroke:var(--acc);stroke-width:2}
.cv.sk text{stroke:none}
.cv.sk text.sk-k{fill:var(--acc);stroke:none}
.cv.sk text.sk-x{fill:var(--muted);font-weight:600;stroke:none}
.cv.sk .sk-xl{stroke:var(--muted);stroke-width:1.5}
.cv.sk .sk-u{stroke-width:2}
.cv.sk .sk-f{fill:var(--ink);stroke:none}
.cv.sk .sk-kf{fill:var(--acc);stroke:none}
.cv.sk rect.sk-kb{stroke:var(--ink);stroke-width:1.6}

/* ── v16: обложка сервиса — фирменное полотно и настоящий логотип ── */
.svc-cv{gap:16px}
.svc-yavo{--canvas:#F0EEF7;background:#F0EEF7;--ink:#1A1A22;--soft:#5B5B6B;--muted:#5B5B6B;--line:#E9E7F2;--acc:#6C47FF;color:#1A1A22}
.svc-pl{--canvas:#EFEAE1;background:#EFEAE1;--ink:#14161A;--soft:#605C53;--muted:#605C53;--line:#DAD2C4;--acc:#2a7541;color:#14161A}
.svc-yavo .lg-bars .br.key i,.svc-yavo .lg-bars i{background:#C9BEFF}
.svc-yavo .lg-bars .br.key i{background:#6C47FF}
.lgo{display:inline-flex;align-items:center;font-size:clamp(22px,10cqi,40px);line-height:1;color:var(--ink);white-space:nowrap}
.lgo-yavo{font-weight:800;letter-spacing:-.02em;align-items:baseline}
.lgo-yavo svg{width:.66em;height:.82em;align-self:center;margin:0 1px}
.lgo-yavo svg path{stroke:#6C47FF;stroke-width:4.4;fill:none;stroke-linecap:round;stroke-linejoin:round}
.lgo-yavo em{font-style:normal;font-size:.45em;font-weight:600;color:var(--soft);margin-left:.6em;letter-spacing:0}
.lgo-pl{gap:.45em;font-weight:700;letter-spacing:-.015em}
.lgo-pl svg{width:.95em;height:.95em}
.lgo-pl i{font-style:normal;font-weight:400}
.pts{margin:10px 0 0;padding:0;list-style:none;display:grid;gap:6px;font-size:var(--fs-sm);line-height:1.45;color:var(--soft)}
.pts li{position:relative;padding-left:16px}
.pts li::before{content:"";position:absolute;left:0;top:.62em;width:7px;height:1px;background:var(--acc)}
.sub-l{color:var(--ink);font-weight:600}

/* ══ Календарь = страница «Расписание встреч» Кирилла (15.10, макет A «Срез») — перенесена 1:1, v21.
   Стили — из его файла, заперты в .rs: токены тёмной темы по умолчанию, светлая — .rs.lt (переключатель в первом экране).
   Отличия от его страницы: шапка и подвал — портальные; плитки и строки повестки ведут на страницу встречи. ══ */
.rs{--bg:#16141F;--ink:#F1EFF8;--soft:#BEBBCC;--muted:#9C99AE;--gold:#C79A3E;--gold-hi:#D4AB55;
  --line:rgba(241,239,248,.40);--sep:rgba(241,239,248,.24);--hair:rgba(241,239,248,.08);
  --pad:28px;--wrap:1200px;--gut:clamp(16px,2.5vw,32px);
  --bg-2:#221F2F;--paper:#F2EEE6;--ink-d:#16141F;--soft-d:#4A4658;--muted-d:#625E70;--gold-d:#805C1C;
  --acc:var(--gold);--accf:var(--gold);--focus:var(--ink);
  --gx:max(var(--pad),calc((100vw - var(--wrap)) / 2 + var(--pad)));
  background:var(--bg);color:var(--ink);font-variant-numeric:tabular-nums;padding-top:var(--hdr)}
.rs.lt{background:var(--paper)}
.rs a{text-decoration:none;color:inherit}
.rs .nw{white-space:nowrap}
.rs .a-hero{min-height:calc(100svh - var(--hdr))}
.rs .a-g,.rs .a-n{padding-top:96px}
.rs a.a-d{cursor:pointer;transition:background-color 140ms ease-out}
.rs a.a-d.ev:hover{background:var(--gold-hi)}
.rs a.a-d.mrk:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.rs .a-at a:hover,.rs .a-at a:focus-visible{text-decoration:underline 2px;text-underline-offset:5px}
.rs .a-d:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
@media screen and (max-width:999px){ .rs .a-n{padding-top:72px} .rs .a-g{padding-top:40px} }
@media screen and (max-width:600px){ .rs{--pad:16px} }
/* знаки форматов — цвет из текущего текста (на золоте тёмные, на ночи светлые) */
.rs .fk{display:inline-block;flex:none}
.rs .fk-1{width:10px;height:10px;border-radius:50%;background:currentColor}
.rs .fk-2{width:7px;height:7px;margin:0 1.5px;border-radius:50%;background:currentColor}
.rs .fk-4{width:10px;height:10px;border-radius:2px;border:1.5px solid currentColor}
.rs .fk-5{width:10px;height:10px;border-radius:50%;border:1.5px solid currentColor}
.rs .fk-6{width:9px;height:9px;margin:0 .5px;border-radius:1px;background:currentColor}
.rs .fk-j{width:12px;height:2px;border-radius:1px;background:currentColor}
.rs .fk-tg{width:12px;height:12px;fill:currentColor}
/* легенда */
.rs .lgd{list-style:none;display:flex;flex-wrap:wrap;gap:10px 28px;font-size:14px;line-height:1.4;color:var(--soft)}
.rs .lgd li{display:inline-flex;align-items:center;gap:8px}
/* повестка под сеткой (телефон) — на токенах полотна */
.rs .g-ag{list-style:none;border-top:3px solid var(--ink)}
.rs .g-i{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:16px;padding:14px 0;border-bottom:1px solid var(--sep)}
.rs .g-d{line-height:1}
.rs .g-d b{display:block;font-size:30px;font-weight:800;letter-spacing:-.04em;color:var(--ink)}
.rs .g-d span{display:block;margin-top:5px;font-size:13px;color:var(--muted)}
.rs .g-b{min-width:0}
.rs .g-x{display:block;margin-bottom:3px;font-size:12px;font-weight:700;line-height:1.3;color:var(--acc)}
.rs .g-t{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:700;line-height:1.4;color:var(--ink)}
.rs .g-n{display:block;margin-top:2px;font-size:18px;font-weight:800;letter-spacing:-.01em;line-height:1.2;color:var(--ink)}
.rs .g-w{display:block;margin-top:3px;font-size:14px;line-height:1.4;color:var(--muted)}
.rs .g-i.next .g-d b{color:var(--acc)}
.rs .g-i.past{--ink:var(--muted);--acc:var(--muted)}
.rs .g-i.mrk{padding:10px 0}
.rs .g-i.mrk .g-d b{font-size:18px}
.rs .g-i.mrk .g-n{display:flex;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;color:var(--soft)}

/* ══════════════════════════════════════════════════════════════
   Лига — страница «Расписание встреч» · макет A «Срез» (выбор Кирилла 15.10), язык дека открытия
   Первый экран — вертикальный нож: золото слева (ближайшая дата — цифра-герой), справа заголовок и анкета.
   Ниже — два месяца-постера (встречи — золотые плитки, метки — контурные плитки со значком), повестка строками, форматы.
   ТЕМА (Кирилл 15.10: «обе с переключателем»): по умолчанию тёмная, как сайт; светлая — класс lt на .rs.
   Кнопка в углу золотого полотна; выбор — localStorage 'liga-theme'.
   prefers-color-scheme не учитываем.
   ══════════════════════════════════════════════════════════════ */
.rs .a-hero{position:relative;display:grid;grid-template-columns:minmax(0,46fr) 3px minmax(0,54fr);grid-template-rows:1fr auto;
  grid-template-areas:"g k n" "g k r";min-height:100vh;min-height:100svh}
.rs .a-g{grid-area:g;background:var(--gold);color:#16141F;display:flex;flex-direction:column;justify-content:flex-end;padding:112px 48px 64px var(--gx)}
.rs .a-k{grid-area:k;background:var(--ink)}
.rs .a-n{grid-area:n;display:flex;flex-direction:column;justify-content:flex-end;padding:112px var(--gx) 0 56px}
.rs .a-r{grid-area:r;padding:40px var(--gx) 64px 56px}
.rs .a-nk{font-size:clamp(18px,1.6vw,24px);font-weight:700;line-height:1.2;color:#2A2316}
.rs .a-num{display:block;margin:18px 0 0 -.04em;font-size:clamp(150px,19vw,290px);font-weight:800;letter-spacing:-.06em;line-height:.8}
.rs .a-mon{display:block;margin-top:14px;font-size:clamp(40px,4.4vw,68px);font-weight:800;letter-spacing:-.04em;line-height:1}
.rs .a-nw{margin-top:14px;font-size:clamp(19px,1.8vw,26px);font-weight:600;line-height:1.3;color:#2A2316}
.rs .a-nn{display:flex;align-items:center;gap:14px;margin-top:32px;padding-top:18px;border-top:3px solid #16141F;font-size:clamp(26px,2.7vw,42px);font-weight:800;letter-spacing:-.025em;line-height:1.08}
.rs .a-nn .fk{transform:scale(1.6)}
.rs .a-nn .fk-tg{transform:none;width:28px;height:28px}
.rs .a-na{margin-top:8px;font-size:18px;font-weight:600;line-height:1.4;color:#2A2316}
.rs .a-h1{font-size:clamp(46px,6.6vw,106px);font-weight:800;letter-spacing:-.055em;line-height:.9}
.rs .a-lead{margin-top:28px;font-size:clamp(20px,1.9vw,28px);font-weight:600;letter-spacing:-.01em;line-height:1.3;color:var(--soft);max-width:22em}
.rs .a-meta{font-size:17px;line-height:1.5;color:var(--soft);max-width:34em}
.rs .a-act{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:28px}

.rs .a-cal{background:var(--bg-2);padding:clamp(72px,8vw,128px) 0}
.rs .a-ms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 64px;margin-top:48px}
.rs .a-mh{font-size:clamp(48px,6vw,96px);font-weight:800;letter-spacing:-.055em;line-height:.9}
.rs .a-mh span{margin-left:14px;font-size:.3em;font-weight:600;letter-spacing:0;color:var(--muted)}
.rs .a-g7{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:28px}
.rs .a-wd{padding:0 0 6px 8px;font-size:13px;font-weight:600;line-height:1.3;color:var(--muted)}
.rs .a-d{min-width:0;min-height:clamp(52px,5.6vw,84px);padding:8px;border-radius:4px;display:flex;flex-direction:column;justify-content:space-between;gap:6px}
.rs .a-dn{font-size:clamp(16px,1.7vw,24px);font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--soft)}
.rs .a-d.past .a-dn{color:var(--muted);font-weight:600}
.rs .a-d.today .a-dn{text-decoration:underline 2px;text-underline-offset:5px}
.rs .a-d.ev{background:var(--gold);color:#16141F}
.rs .a-d.ev .a-dn{color:#16141F;font-weight:800}
.rs .a-d.ev.past{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--muted)}
.rs .a-d.ev.past .a-dn{color:var(--muted)}
.rs .a-d.next{outline:3px solid var(--ink);outline-offset:3px}
.rs .a-dt{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;line-height:1.2;white-space:nowrap}
/* метки (не встречи): контурная плитка + значок 14px — вступление (Lucide user-plus), старт в Телеграме (знак Telegram) */
.rs .a-d.mrk{box-shadow:inset 0 0 0 1px var(--sep)}
.rs .a-d.mrk .a-dt{color:var(--ink)}
.rs .a-d.mrk .fk-tg{width:14px;height:14px}
.rs .a-d.mrk.past .a-dt{color:var(--muted)}
.rs .lgd .fk-tg{width:14px;height:14px}

.rs .a-ag{list-style:none;margin-top:clamp(64px,7vw,112px);border-top:3px solid var(--ink)}
.rs .a-ai{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2.4fr) minmax(0,5fr);column-gap:32px;align-items:baseline;padding:18px 0;border-bottom:1px solid var(--sep)}
.rs .a-ad{font-size:clamp(24px,2.4vw,36px);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.rs .a-aw{font-size:clamp(16px,1.4vw,20px);line-height:1.35;color:var(--soft)}
.rs .a-at{font-size:clamp(20px,1.8vw,28px);font-weight:800;letter-spacing:-.02em;line-height:1.15}
.rs .a-at .fk{margin-right:12px;vertical-align:.15em}
.rs .a-at .fk-tg{width:16px;height:16px;vertical-align:-.1em}
.rs .a-at small{display:block;margin-top:4px;font-size:15px;font-weight:600;letter-spacing:0;line-height:1.4;color:var(--muted)}
.rs .a-ai.next .a-ad{color:var(--acc)}
.rs .a-ai.past .a-ad,.rs .a-ai.past .a-at{color:var(--muted)}
.rs .a-ai.past .a-aw{color:var(--muted)}
.rs .a-ai.mrk{padding:12px 0}
.rs .a-ai.mrk .a-ad{font-size:clamp(18px,1.6vw,22px);color:var(--soft)}
.rs .a-ai.mrk .a-at{font-size:clamp(16px,1.4vw,19px);font-weight:600;color:var(--soft)}
.rs .a-ai.mrk.past .a-ad,.rs .a-ai.mrk.past .a-at{color:var(--muted)}

/* форматы — строками, как повестка (сл. 7 дека): название крупно со знаком, описание тихо */
.rs .a-fm{background:var(--bg);padding:clamp(72px,8vw,128px) 0}
.rs .a-fl{list-style:none;margin-top:clamp(40px,4.5vw,64px);border-top:3px solid var(--ink)}
.rs .a-fi{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:var(--gut);row-gap:10px;align-items:baseline;padding:24px 0;border-bottom:1px solid var(--sep)}
.rs .a-fn{display:flex;align-items:flex-start;gap:14px;font-size:clamp(22px,2.4vw,34px);font-weight:800;letter-spacing:-.025em;line-height:1.1}
.rs .a-fn>.fk{margin-top:.42em}
.rs .a-fn small{display:block;margin-top:6px;font-size:15px;font-weight:600;letter-spacing:0;line-height:1.4;color:var(--muted)}
.rs .a-fd{font-size:clamp(16px,1.3vw,19px);line-height:1.55;color:var(--soft);max-width:62ch}

/* кнопка темы: рядом с бренд-локом, 38px видимо / 44px зона касания; иконка — Lucide sun (на тёмной) / moon (на светлой) */
.rs .a-th{position:relative;display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid rgba(22,20,31,.55);border-radius:4px;background:transparent;color:#16141F;cursor:pointer;transition:border-color 140ms ease-out}
.rs .a-th::after{content:"";position:absolute;inset:-4px}
.rs .a-th:hover{border-color:#16141F}
.rs .a-th:focus-visible{outline:2px solid #16141F;outline-offset:3px}
.rs .a-th svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rs .a-th .i-moon,.rs .rs.lt .a-th .i-sun{display:none}
.rs.lt .a-th .i-moon{display:block}

/* дверь в конце (сл. 9 дека): горизонтальный нож — «0 рублей.» тёмным по золоту, ниже на ночи «Но не для всех.» и анкета */
.rs .a-eg{background:var(--gold);color:#16141F;padding:clamp(72px,8vw,128px) 0 clamp(28px,3vw,44px)}
.rs .a-eh{font-size:clamp(52px,14vw,216px);font-weight:800;letter-spacing:-.06em;line-height:.86}
.rs .a-ek{height:3px;background:var(--ink)}
.rs .a-eb{background:var(--bg);padding:clamp(28px,3vw,44px) 0 clamp(72px,8vw,128px)}
.rs .a-e2{font-size:clamp(36px,5.2vw,80px);font-weight:800;letter-spacing:-.05em;line-height:.95}
.rs .a-ea{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px;margin-top:clamp(32px,3.5vw,48px)}

@media screen and (max-width:1199px){
  .rs .a-ms{grid-template-columns:minmax(0,1fr);gap:64px}   /* два месяца рядом — только от 1200: уже клетка не держит время */
}
@media screen and (max-width:999px){
  .rs .a-hero{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 3px auto auto;grid-template-areas:"n" "k" "g" "r";min-height:0}
  .rs .a-th{border-color:var(--line);color:var(--ink)}
  .rs .a-th:hover{border-color:var(--ink)}
  .rs .a-th:focus-visible{outline-color:var(--focus)}
  .rs .a-d.next{outline:none;box-shadow:inset 0 0 0 3px var(--ink)}   /* зазор плиток 2–4px — кольцо внутрь, не на соседнюю */
  .rs .a-n{padding:104px var(--pad) 40px}
  .rs .a-g{padding:40px var(--pad) 48px}
  .rs .a-r{padding:40px var(--pad) 56px}
  .rs .a-ms{grid-template-columns:minmax(0,1fr);gap:64px}
  .rs .a-g7{gap:4px}
  .rs .a-d{min-height:52px;padding:6px 0;align-items:center}
  .rs .a-wd{padding:0 0 6px;text-align:center}
  .rs .a-dt span{display:none}
  .rs .a-ai{grid-template-columns:minmax(0,1fr);row-gap:4px}
  .rs .a-at{margin-top:4px}
  .rs .a-fi{grid-template-columns:minmax(0,1fr)}
}
@media screen and (max-width:359px){
  .rs .a-g7{gap:2px}
  .rs .a-dn{font-size:15px}
}

/* ══ светлая тема (html.lt): полотно paper Лиги (DESIGN.md С2), токены текста — набор paper.
   Золото: заливкой — левое полотно, плитки встреч, кнопка (тёмный текст #16141F, 7,0:1); текстом на paper — только --gold-d (5,2:1) ══ */
.rs.lt{--ink:#16141F;--soft:#4A4658;--muted:#625E70;--line:rgba(22,20,31,.55);--sep:rgba(22,20,31,.24);--hair:rgba(22,20,31,.14);--acc:#805C1C;--focus:#16141F}
.rs.lt .a-cal,.rs.lt .a-fm{background:var(--paper);border-top:3px solid #16141F}   /* шов-нож вместо смены полотна */
.rs.lt .a-eb{background:var(--paper)}
/* кнопка темы — в углу золотого полотна (у Кирилла она в баре рядом с бренд-локом, бренд-лок у нас — в шапке портала) */
.rs .a-th{position:absolute;top:24px;left:var(--gx);z-index:2}
@media screen and (max-width:999px){ .rs .a-th{top:20px;left:auto;right:var(--pad);border-color:var(--line);color:var(--ink)} }
@media screen and (max-width:999px){ .rs{padding-top:calc(var(--hdr) + 44px)} }   /* на узком экране у шапки вторая строка — разделы */

/* ══ Портал на ligalegal.ru — дополнения к прототипу v22 ══ */
/* строка списка нажимается целиком (обработчик в app.js): растянутая ссылка заголовка не перекрывает описание,
   ведущих и кнопки строки — по ним можно нажимать и выделять текст */
.lib-i[data-material]{cursor:pointer}
.lib-t a::after{content:none}
.lib-t a:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
/* поле-ловушка для ботов — невидимо людям и программам чтения экрана */
.lovushka{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none}
/* ссылка-кнопка («Ещё … и своя тема») — как ссылка .tlink, без оформления кнопки браузера */
button.tlink{background:none;border:0;padding:0;font:inherit;cursor:pointer;text-align:left}
/* логотипы сервисов (настоящие, картинкой) — размер как у текстового логотипа прототипа, по ширине обложки */
.lgo-img{display:block;width:auto;max-width:100%;height:clamp(22px,10cqi,40px);object-fit:contain;object-position:left center}
/* окно согласия на Метрику — компактная плашка в левом нижнем углу; страницу не перекрывает (нажатия мимо кнопок
   проходят насквозь) */
.soglasie{position:fixed;left:16px;bottom:16px;z-index:40;width:min(400px,calc(100vw - 32px));display:flex;flex-direction:column;
  gap:12px;padding:14px 16px;background:#1E1B29;border:1px solid var(--line);border-radius:4px;color:var(--soft);
  font-size:13px;line-height:1.45;pointer-events:none}
.soglasie a,.soglasie button{pointer-events:auto}
.soglasie a{color:var(--ink)}
.soglasie-b{display:flex;gap:8px}
.soglasie-b .btn{min-height:40px;flex:1}
@media screen and (max-width:639px){ .soglasie{left:8px;bottom:8px;width:calc(100vw - 16px)} }
/* неделя на телефоне: «сегодня» переносится под число, а не налезает на плитки */
.week .kd .dn{flex-wrap:wrap;row-gap:0}
