:root{--s-ink:#585858;--s-ink2:#636363;--s-ink3:#6A6A6A;--s-chrome:#787878;--s-coral:#FF8562;--s-peach:#FFBE98;--s-bg:#FAFAFA;--s-white:#FFFFFF;--s-line:#EEEEEE;--s-line2:#E3E3E3;--s-green:#2F875C}
:root{--l-acc:#FF8562;--l-peach:#FFBE98;--l-tx:#787878;--l-hd:#5f5f5f;--l-pg:#fafafa;--l-white:#ffffff;--l-ln:#ece7e3;--l-tint:#fff4ec;--l-edge1:#ead9cd;--l-edge2:#e6d9cf;--l-edge3:#ecdccf;--l-hover:#fffaf6;--l-mark:#ffe3d1;--l-nddd:#dddddd;--l-nbbb:#bbbbbb;--l-nb5b5b5:#b5b5b5;--l-naaa:#aaaaaa;--l-na0a0a0:#a0a0a0;--l-n9a9a9a:#9a9a9a;--l-n999:#999999;--l-n8a8a8a:#8a8a8a;--l-n888:#888888;--l-n6b6b6b:#6b6b6b;--l-n666:#666666;--l-n5d5d5d:#5d5d5d}
/* F449/T001 — шапка и подвал сайта по замеру САЙТА projects.familyland.ru (getComputedStyle, 09.10): ОДНИ стили для /start/ и /library/
   (разметка — `site-chrome.tsx`, оживление — `site-chrome.js`). Генератор каждого сайта кладёт в версию `siteCssVars()` (пролог `--s-*`),
   затем этот файл, затем свои стили. Цвета только `var(--s-*)`; ассеты (шрифт WorkSans) подключает файл стилей сайта своим `@font-face`.
   Значения ниже — только замеры сайта; своих промежуточных нет. */
:root { --site-hd: 143px; }
/* Сетка сайта: 1322 px (поля 59 px при 1440, замер шапки и подвала). */
.site-wrap { max-width: 1322px; margin: 0 auto; padding: 0 20px; }
@media (min-width: 1362px) { .site-wrap { padding: 0; } }

/* ── шапка сайта (замер 1440: высота 143, фон var(--s-peach), лого 200×93 @59,20; пункты WorkSans 20/500 var(--s-white)
      @x 377/544/745/932 (= +318/+485/+686/+873 от сетки), y 61; кнопка 252×55 @1130,44, 16/600 var(--s-chrome),
      фон var(--s-white), 1px solid var(--s-chrome), radius 0).
      F449 C1 (владелец 09.11, кадр f10): шапка прилипает к верху на компьютере и телефоне (на Тильде она фиксирована); после прокрутки под ней
      тень карточки подвала (класс `is-scrolled` ставит site-chrome.js), 150 мс, без анимации при prefers-reduced-motion ── */
.site-header { position: sticky; top: 0; z-index: 30; background: var(--s-peach); font-family: "WorkSans", Arial, sans-serif; transition: box-shadow 150ms ease-in-out; }
.site-header.is-scrolled { box-shadow: 10px 10px 30px 0 rgba(232, 202, 202, 0.5); }
.site-header-row { position: relative; height: 143px; }
.site-logo { position: absolute; left: 0; top: 20px; display: block; }
.site-logo img { width: 200px; height: 93px; object-fit: contain; display: block; }
.site-nav a { position: absolute; top: 61px; color: var(--s-white); text-decoration: none; font-size: 20px; font-weight: 500; line-height: 24px; white-space: nowrap; }
.site-nav a:nth-child(1) { left: 318px; } .site-nav a:nth-child(2) { left: 485px; } .site-nav a:nth-child(3) { left: 686px; } .site-nav a:nth-child(4) { left: 873px; }
.site-cta { position: absolute; right: 0; top: 44px; width: 252px; height: 55px; display: flex; align-items: center; justify-content: center;
  background: var(--s-white); color: var(--s-chrome); border: 1px solid var(--s-chrome); border-radius: 0; font-size: 16px; font-weight: 600; text-decoration: none; white-space: nowrap; }
.site-burger { display: none; }
.site-burger > summary:focus-visible { outline: 2px solid var(--s-coral); outline-offset: 2px; }

/* ── мобильная шапка (замер 390: полоса 87 px var(--s-peach), лого 100×47 @20,20, бургер 22×14 @348,36 — 3 белые линии;
      меню: панель var(--s-peach) во всю ширину под полосой, пункты по центру WorkSans 18/400 var(--s-white) шаг 42 px,
      кнопка 14/600 var(--s-chrome) на var(--s-white), 1px solid var(--s-chrome), поля 11.7×30; открытая — бургер становится ✕) ── */
@media (max-width: 979px) {
  :root { --site-hd: 87px; }
  .site-header-row { height: 87px; }
  .site-logo { top: 20px; left: 20px; }
  .site-logo img { width: 100px; height: 47px; }
  .site-nav, .site-cta { display: none; }
  .site-burger { display: block; position: absolute; right: 0; top: 0; height: 87px; width: 62px; }
  .site-burger > summary { list-style: none; cursor: pointer; position: absolute; right: 10px; top: 26px; width: 42px; height: 34px; padding: 10px; }
  .site-burger > summary::-webkit-details-marker { display: none; }
  .site-burger > summary span { position: absolute; left: 10px; width: 22px; height: 2px; background: var(--s-white); transition: transform .2s, opacity .2s; }
  .site-burger > summary span:nth-child(1) { top: 10px; } .site-burger > summary span:nth-child(2) { top: 16px; } .site-burger > summary span:nth-child(3) { top: 22px; }
  .site-burger[open] > summary span:nth-child(1) { top: 16px; transform: rotate(45deg); }
  .site-burger[open] > summary span:nth-child(2) { opacity: 0; }
  .site-burger[open] > summary span:nth-child(3) { top: 16px; transform: rotate(-45deg); }
  .site-burger > nav { position: fixed; left: 0; right: 0; top: 87px; background: var(--s-peach); padding: 21px 0 53px; display: flex; flex-direction: column; align-items: center; }
  .site-burger > nav a { color: var(--s-white); text-decoration: none; font-size: 18px; font-weight: 400; line-height: 42px; }
  .site-burger > nav a.site-burger-cta { margin-top: 29px; color: var(--s-chrome); background: var(--s-white); border: 1px solid var(--s-chrome); border-radius: 0; font-size: 14px; font-weight: 600; line-height: 1.55; padding: 11.7px 30px; }
}
@media (max-width: 1361px) and (min-width: 980px) {
  /* между 980 и 1322 сайт масштабирует зеро-блок; держим пропорции сетки 1322 */
  .site-nav a:nth-child(1) { left: 24%; } .site-nav a:nth-child(2) { left: 36.7%; } .site-nav a:nth-child(3) { left: 51.9%; } .site-nav a:nth-child(4) { left: 66%; }
  .site-nav a { font-size: 18px; } .site-cta { width: 230px; font-size: 15px; }
}

/* ── якоря и цели прокрутки («Сбросить», оглавление) не прячутся под прилипшей шапкой: отступ сверху 150 px, на телефоне 100 px (кадр f10) ── */
[id] { scroll-margin-top: 150px; }
@media (max-width: 979px) { [id] { scroll-margin-top: 100px; } }

/* ── подвал (замер 1440: артборд var(--s-bg); два белых блока 867×408 @59 и 416×408 @965, тень 10px 10px 30px rgba(232,202,202,.5),
      radius 0; заголовки WorkSans 17/600 uppercase var(--s-chrome) @y39, ссылки 16/400 var(--s-chrome) lh 24.8 шаг ~37 с y102;
      колонки @+39/+316/+593; лого 195×63 @+41,273; соцсети 58×58 @y276 шаг 72;
      ниже @y525 15/400 var(--s-chrome); дисклеймер 9/400 var(--s-chrome), ссылка var(--s-coral)) ── */
.site-footer { margin-top: 0; padding: 0 0 48px; background: var(--s-bg); font-family: "WorkSans", Arial, sans-serif; color: var(--s-chrome); }
.foot-boxes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 39px; }  /* та же сетка: блок навигации 2, контакты 1 */
.foot-box-nav { grid-column: span 2; }
.foot-box { background: var(--s-white); border-radius: 0; box-shadow: 10px 10px 30px 0 rgba(232, 202, 202, 0.5); min-height: 408px; padding: 39px 39px 32px; position: relative; }
.foot-cols { display: grid; grid-template-columns: 277px 277px 1fr; }
.foot-h { margin: 0 0 37px; font-size: 17px; font-weight: 600; line-height: 26.35px; text-transform: uppercase; color: var(--s-chrome); }
.site-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; font-size: 16px; line-height: 24.8px; }
.site-footer a { color: var(--s-chrome); text-decoration: none; }
.foot-cols .foot-col:nth-child(3) li:nth-child(n+5) { font-size: 17px; line-height: 26.35px; }
.foot-logo { position: absolute; left: 41px; top: 273px; width: 195px; height: 63px; }
.foot-org { font-weight: 600; }
.foot-box-contacts { padding-right: 20px; } /* у сайта строка «Институт…» 354 px заходит в правое поле блока */
.foot-social { display: flex; gap: 14px; margin-top: 39px; }
.foot-social img { width: 58px; height: 58px; display: block; }
.foot-legal { padding-top: 107px; }
.foot-legal-links { margin: 0 0 13px 39px; font-size: 15px; line-height: 23.25px; }
.foot-legal-links a + a { margin-left: 70px; }  /* вторая ссылка строки (у библиотеки: «Версия для слабовидящих» + политика) */
.foot-legal-links a { margin-left: 0; }  /* как у сайта: первый пункт строки по полю блока (x 98 = 59 + 39); «Версии для слабовидящих» у нас нет */
.foot-disclaimer { margin: 0 0 0 38px; font-size: 9px; line-height: 13.95px; color: var(--s-chrome); max-width: 1281px; }
.foot-disclaimer a { color: var(--s-coral); }

@media (max-width: 1361px) {
  .foot-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
}
/* ── подвал 390 (замер: блоки 327 px @x31, сначала «Контакты» (h212), через 31 — навигация (h515);
      заголовки 17–18/600, ссылки 13/400 lh 20.15, шаг 22; соцсети 29; лого 80×26; ниже 12/400, дисклеймер 9) ── */
@media (max-width: 979px) {
  .foot-boxes { grid-template-columns: minmax(0, 1fr); gap: 31px; padding: 0 31px; }
  .foot-box-nav { grid-column: auto; }
  .foot-box-contacts { order: -1; min-height: 212px; padding: 26px 32px 21px; }
  .foot-box-nav { min-height: 515px; padding: 30px 32px 24px; }
  .foot-cols { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .foot-h { margin: 0 0 13px; font-size: 17px; }
  .foot-box-contacts .foot-h { font-size: 18px; line-height: 27.9px; margin-bottom: 9px; }
  .site-footer ul { font-size: 13px; line-height: 20.15px; gap: 2px; }
  .foot-cols .foot-col:nth-child(3) li:nth-child(n+5) { font-size: 13px; line-height: 20.15px; }
  .foot-org { font-size: 13px; }
  .foot-social { margin-top: 9px; gap: 6px; }
  .foot-social img { width: 29px; height: 29px; }
  .foot-logo { position: static; display: block; width: 80px; height: 26px; margin-top: 16px; }
  .foot-legal { padding: 54px 63px 0; }
  .foot-legal-links { margin: 0 0 18px; font-size: 12px; line-height: 18.6px; }
  .foot-legal-links a { margin-left: 0; }
  .foot-legal-links a + a { margin-left: 24px; }
  .foot-disclaimer { margin: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header { transition: none; }
}
/* F438/T007 (/library/) — стили публичной библиотеки: порт CSS кадров раунда 3 (mockup/library-site.html), владелец 08.11.
   Цвета только var(--l-*) (палитра — `LIBRARY_COLORS` в render.tsx), как у start.css; токены движения --ss-dur-* / --ss-ease-* —
   значения кабинета (src/app/globals.css), на статичном сайте кабинетные стили не грузятся. */
@font-face{font-family:WorkSans;font-weight:400;font-display:swap;src:url(/library/assets/WorkSans-Regular.woff) format('woff')}
@font-face{font-family:WorkSans;font-weight:500;font-display:swap;src:url(/library/assets/WorkSans-Medium.woff) format('woff')}
@font-face{font-family:WorkSans;font-weight:600;font-display:swap;src:url(/library/assets/WorkSans-Semibold.woff) format('woff')}
:root{--ss-ease-primary:cubic-bezier(0.32,0.72,0,1);--ss-ease-secondary:cubic-bezier(0.16,1,0.3,1);--ss-dur-quick:140ms;--ss-dur-standard:240ms;--ss-dur-deliberate:420ms;
--sh:0 10px 30px rgba(255,170,130,.16),0 2px 6px rgba(0,0,0,.04)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
/* F449 C22: якоря и «Сбросить» прокручивают плавно (300 мс по умолчанию браузера), с отступом шапки (scroll-margin-top); reduced motion — сразу (правило в конце) */
html{scroll-behavior:smooth}
body{margin:0;background:var(--l-pg);color:var(--l-tx);font:400 16px/1.55 'WorkSans',Arial,sans-serif;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{max-width:100%}
/* F449 C3: поля страницы — сетка сайта (как `.site-wrap` шапки и подвала): 1322, по 20 px, от 1362 без полей (59 px при 1440, в линию с лого шапки); место под подвалом — как у .main /start/ */
.wrap{max-width:1322px;margin:0 auto;padding:0 20px}@media(min-width:1362px){.wrap{padding:0}}
main.wrap{padding-bottom:64px}
h1,h2,h3,h4,h5{color:var(--l-hd);margin:0;font-weight:500;letter-spacing:-.01em}
.card{background:var(--l-white);box-shadow:var(--sh)}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--l-acc);outline-offset:2px}
.skip{position:absolute;left:-9999px;top:0;background:var(--l-white);padding:10px 16px;z-index:50}.skip:focus{left:12px;top:12px}
[hidden]{display:none!important}
.btn-lib{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--l-tx);background:var(--l-white);color:var(--l-n666);padding:12px 22px;font:inherit;font-size:15px;cursor:pointer;transition:all .2s ease-in-out;white-space:nowrap}
.btn-lib:hover{background:var(--l-peach);border-color:var(--l-peach);color:var(--l-white)}.btn-lib.pri{background:var(--l-acc);border-color:var(--l-acc);color:var(--l-white)}.btn-lib.pri:hover{background:var(--l-peach);border-color:var(--l-peach)}
.crumbs{padding:26px 0 0;font-size:14px;color:var(--l-n6b6b6b)}.crumbs ol{display:flex;flex-wrap:wrap;gap:12px;list-style:none;margin:0;padding:0}.crumbs li{display:flex;gap:12px}.crumbs li:not(:last-child)::after{content:"—"}.crumbs .cur{color:var(--l-n999)}
.hero{padding:34px 0 0;max-width:900px}.hero h1{font-size:60px;line-height:1.08;font-weight:600}.hero.sm{padding-bottom:0}.hero.sm h1{font-size:40px}.hero.sm+.sbwrap{margin-bottom:20px}
.lead{font-size:21px;line-height:1.55;font-weight:400;margin:20px 0 0;max-width:760px}
.sbwrap{margin-top:30px;max-width:900px}.sb{display:flex;align-items:center;gap:16px;background:var(--l-white);box-shadow:var(--sh);border:1px solid var(--l-edge1);padding:0 24px;height:72px;font-size:21px;color:var(--l-hd)}.sb svg{color:var(--l-acc);flex:none}
.sbin{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;color:inherit;padding:0;height:100%;appearance:none;-webkit-appearance:none}.sbin::placeholder{color:var(--l-naaa);opacity:1}.sbin::-webkit-search-cancel-button{display:none}
.sb:focus-within{border-color:var(--l-acc)}.sb:focus-within .sbin{outline:0}
.sb kbd{border:1px solid var(--l-nddd);padding:2px 9px;font:inherit;font-size:15px;color:var(--l-naaa)}.sb:has(.sbin:not(:placeholder-shown)) kbd{display:none}
.clr{color:var(--l-n999);background:none;border:0;padding:6px;cursor:pointer;line-height:0}
.try{margin:14px 0 40px;font-size:15px;display:flex;flex-wrap:wrap;gap:6px 18px}.try a{color:var(--l-acc)}
.auds{display:grid;grid-template-columns:1fr 1fr;gap:38px;margin-top:10px}
.aud{border-top:4px solid var(--l-peach);padding:34px 36px 26px}.eyebrow{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--l-na0a0a0);font-weight:500}
.aud h2{font-size:34px;margin:8px 0 8px}.lead2{margin:0 0 20px;font-size:16px}
.crow a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid var(--l-ln)}.crow a:hover b{color:var(--l-acc)}
.crow b{display:block;font-weight:500;color:var(--l-hd);font-size:18px}.crow small{display:block;font-size:14px;color:var(--l-n999);margin-top:2px}.crow em{font-style:normal;color:var(--l-acc);font-weight:500;font-size:18px}
.more{display:inline-flex;gap:8px;align-items:center;color:var(--l-acc);margin-top:10px;font-size:15px}
.ev{margin-top:38px;padding:26px 36px;display:grid;grid-template-columns:1fr 2fr;gap:36px;align-items:center;border-top:4px solid var(--l-peach)}.ev h3{font-size:24px;margin-top:6px}.evr{display:grid;grid-template-columns:1fr 1fr;gap:0 36px}.evr a{border-top:0;border-left:1px solid var(--l-ln);padding-left:24px}
.sec{margin-top:72px}.sech{display:flex;justify-content:space-between;align-items:baseline}.sec h2{font-size:32px;margin-bottom:24px}.sech h2{margin-bottom:24px}
.covers{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.covers.c4{grid-template-columns:repeat(4,1fr)}
.cover{display:flex;flex-direction:column;min-height:170px;padding:20px 20px 18px;background:var(--l-white);box-shadow:var(--sh);transition:box-shadow .2s ease-in-out}
.cover:hover{box-shadow:0 14px 34px rgba(255,170,130,.28)}.cover:hover .cv-t{color:var(--l-acc)}
.cv-f{font-size:12px;letter-spacing:.07em;text-transform:uppercase;font-weight:600;color:var(--l-acc)}.cv-t{margin:12px 0 auto;font-size:18px;line-height:1.3;color:var(--l-hd);font-weight:500;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word;hyphens:manual}.cv-c{font-size:13px;line-height:1.5;color:var(--l-n999);margin-top:16px}
.chips{display:flex;flex-wrap:wrap;gap:10px}.chip{display:inline-flex;gap:10px;align-items:center;background:var(--l-white);border:1px solid var(--l-edge2);padding:9px 16px;font-size:16px;color:var(--l-hd);transition:background-color 150ms ease-in-out,color 150ms ease-in-out,border-color 150ms ease-in-out}.chip:hover{background:var(--l-peach);color:var(--l-white);border-color:var(--l-peach)}.chip em{font-style:normal;color:var(--l-acc);font-size:14px}.chip:hover em{color:var(--l-white)}
.fline{margin:56px 0 0;font-size:15px;display:flex;flex-wrap:wrap;gap:8px 22px;color:var(--l-n9a9a9a)}.fline a{color:var(--l-hd)}.fline a:hover{color:var(--l-acc)}.fline em{font-style:normal;color:var(--l-nb5b5b5);margin-left:5px;font-size:13px}
.chead{padding:30px 0 6px}.chead h1{font-size:46px;font-weight:600}
.tabs{display:flex;gap:8px;overflow-x:auto;padding:14px 0 18px;scrollbar-width:none}.tab{white-space:nowrap;padding:9px 16px;border:1px solid var(--l-edge2);background:var(--l-white);color:var(--l-hd);font-size:15px;transition:background-color 150ms ease-in-out,color 150ms ease-in-out,border-color 150ms ease-in-out}.tab em{font-style:normal;color:var(--l-acc);margin-left:8px;font-size:13px}.tab.on{background:var(--l-peach);border-color:var(--l-peach);color:var(--l-white)}.tab.on em{color:var(--l-white)}
/* F449 C22: наведение на вкладку — как у плашки (.chip:hover), 150 мс */
.tab:hover{background:var(--l-peach);border-color:var(--l-peach);color:var(--l-white)}.tab:hover em{color:var(--l-white)}
/* F449 C5/C6: компактное «Искать в подборке» (.mb-s, правила те же, что у поля телефона) — на правом краю строки вкладок от 761 px: 270x43, вкладки переносятся;
   полоса поиска раздела (.mbar) и полоса полки под вкладками (.shelf-find) на десктопе не показываются, на телефоне поля в строке вкладок нет */
.shelf-find{display:none}
@media(min-width:761px){.tabs{flex-wrap:wrap;overflow:visible}
.mb-s{display:flex;align-items:center;gap:10px;background:var(--l-white);border:1px solid var(--l-edge2);padding:0 8px 0 14px;color:var(--l-naaa);font:inherit;font-size:15px;min-width:0}.mb-s svg{color:var(--l-acc);width:20px;flex:none}
.mb-s input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;color:var(--l-hd);padding:0;-webkit-appearance:none;appearance:none}.mb-s input::placeholder{color:var(--l-naaa);opacity:1}.mb-s input::-webkit-search-decoration,.mb-s input::-webkit-search-cancel-button{display:none}
.tabs .mb-s{flex:0 0 270px;height:43px;margin-left:auto}}
/* F449 C6/C20: сетка сайта в 1322 — три колонки по 414,7 с промежутком 39: фильтры одна колонка, список две (колонка фильтров только когда значений больше 8 — `data-facets=column`,
   правило считает pages.tsx `facetMode`); до 8 значений фильтры — один ряд плашек над списком на всю ширину; без скрипта (фильтры скрыты) список на всю ширину */
.clayout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:39px;align-items:start;margin-top:8px}.clayout>section{grid-column:1/-1}
.lib-js .clayout[data-facets=column]>.facets{grid-column:1}.lib-js .clayout[data-facets=column]>section{grid-column:2/4}
@media(min-width:761px){.clayout[data-facets=chips]{row-gap:20px}
.clayout[data-facets=chips]>.facets{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;padding:0;background:none;box-shadow:none;border:0}
.clayout[data-facets=chips] .fg{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0}.clayout[data-facets=chips] .fg+.fg{margin:0}.clayout[data-facets=chips] .fg h4{margin:0 4px 0 0}
.clayout[data-facets=chips] .fo{padding:9px 16px;font-size:16px;gap:10px;background:var(--l-white);border:1px solid var(--l-edge2);transition:background-color 150ms ease-in-out,color 150ms ease-in-out,border-color 150ms ease-in-out}
.clayout[data-facets=chips] .fo:hover{background:var(--l-peach);border-color:var(--l-peach);color:var(--l-white)}.clayout[data-facets=chips] .fo:hover em{color:var(--l-white)}
.clayout[data-facets=chips] .fo .cb{display:none}
.clayout[data-facets=chips] .fo.on{background:var(--l-acc);border-color:var(--l-acc);color:var(--l-white)}.clayout[data-facets=chips] .fo.on em{color:var(--l-white)}
.clayout[data-facets=chips] .fo:has(input:focus-visible){outline:2px solid var(--l-acc);outline-offset:2px}}
.facets{padding:22px 24px}.fg+.fg{margin-top:24px}.fg h4{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--l-na0a0a0);margin-bottom:10px;font-weight:500}
.fo{display:flex;align-items:center;gap:11px;padding:6px 0;font-size:15px;color:var(--l-hd);cursor:pointer}.fo input{position:absolute;opacity:0;width:0;height:0}.fo .cb{width:18px;height:18px;border:1px solid var(--l-nbbb);display:inline-flex;align-items:center;justify-content:center;flex:none;transition:background var(--ss-dur-quick) var(--ss-ease-primary),border-color var(--ss-dur-quick) var(--ss-ease-primary)}.fo.on .cb{background:var(--l-acc);border-color:var(--l-acc)}.fo .cb{color:var(--l-white)}.fo .cb svg{opacity:0;transition:opacity var(--ss-dur-quick) var(--ss-ease-primary)}.fo.on .cb svg{opacity:1}.fo input:focus-visible+.cb{outline:2px solid var(--l-acc);outline-offset:2px}.fo .fl2{flex:1}.fo em{font-style:normal;color:var(--l-naaa);font-size:13px}
.ctools{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:16px;font-size:15px}.cnt b{font-size:22px;color:var(--l-hd);font-weight:500}.active{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.achip{display:inline-flex;gap:8px;align-items:center;background:var(--l-peach);color:var(--l-white);padding:5px 12px;font-size:14px;border:0;font-family:inherit;cursor:pointer;animation:libChipIn var(--ss-dur-quick) var(--ss-ease-primary) both;transition:opacity var(--ss-dur-quick) var(--ss-ease-primary),transform var(--ss-dur-quick) var(--ss-ease-primary)}
.achip.is-out{animation:libChipOut var(--ss-dur-quick) var(--ss-ease-primary) both;pointer-events:none}@keyframes libChipOut{from{opacity:1;transform:none}to{opacity:0;transform:scale(.96)}}
.reset{color:var(--l-acc);padding:5px 6px;font-size:14px;background:none;border:0;font-family:inherit;cursor:pointer}.sort{color:var(--l-tx)}.sort button{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline}.sort button.on{color:var(--l-acc);font-weight:500;text-decoration:none}
/* F449 C8/C9: строка на всю ширину карточки (поля списка нет — подсветка до края, линия-разделитель подсвеченной строки её не режет); отдельной колонки формата нет:
   рыжий формат справа от названия в строке `.rtl` (на телефоне под названием); переходы наведения 150 мс ease-in-out (f11) */
.list{padding:0}.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:start;padding:20px 22px;border-top:1px solid var(--l-ln);transition:background-color 150ms ease-in-out,border-color 150ms ease-in-out}.list>.row:first-child{border-top:0}
.row:hover{background:var(--l-hover);border-top-color:transparent}.row:hover .rt{color:var(--l-acc)}
.rf{font-size:12px;letter-spacing:.07em;text-transform:uppercase;font-weight:600;color:var(--l-acc);padding-top:5px}
.rtl{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:14px;row-gap:2px}.rtl .rt{min-width:0}.rtl .rf{padding-top:0;white-space:nowrap}
.rt{display:block;color:var(--l-hd);font-size:19px;line-height:1.35;font-weight:500;transition:color 150ms ease-in-out}.rs{display:block;margin-top:2px}.rm{display:block;font-size:13.5px;color:var(--l-na0a0a0);margin-top:6px}
.rget{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:260px}.get{font-size:12.5px;border:1px solid var(--l-edge3);padding:3px 10px;color:var(--l-n8a8a8a);white-space:nowrap}
mark{background:var(--l-mark);color:inherit;padding:0 1px}.rcount{font-size:16px;margin:0 0 16px;padding-top:10px;min-height:1.6em;font-variant-numeric:tabular-nums}
.list>.sn:first-child .row{border-top:0}.snip{margin:-8px 22px 16px 22px;font-size:14.5px;color:var(--l-n8a8a8a)}.sub3{font-size:22px;margin:34px 0 14px}
.tload{margin:18px 0;font-size:15px;color:var(--l-na0a0a0);animation:libFade var(--ss-dur-standard) var(--ss-ease-secondary) both}
.empty{padding:40px 44px;animation:libFade var(--ss-dur-standard) var(--ss-ease-secondary) both}.empty h2{font-size:30px}.empty p{max-width:640px;margin:14px 0 26px}.empty .eyebrow{margin:20px 0 10px}
.none{padding:30px 22px;margin:0}
.mbar,.sheet,.scrim{display:none}
/* F449 C22: цели прокрутки («Сбросить» возвращает к вкладкам и счёту) не прячутся под прилипшей шапкой: 150 px, телефон 100 px (`[id]` — в site-chrome.css) */
.tabs,.ctools,.clayout{scroll-margin-top:150px}
.morebtn{text-align:center;margin-top:24px}
.mlayout{display:grid;grid-template-columns:minmax(0,740px) 1fr;gap:64px;margin-top:34px;align-items:start}
.mkicker{display:flex;gap:16px;align-items:center;font-size:14px}.mkicker a{color:var(--l-n999)}.mt{font-size:46px;line-height:1.14;font-weight:600;margin-top:16px}.msub{font-size:22px;font-weight:400;margin:14px 0 0;color:var(--l-tx)}
.mmeta{display:flex;flex-wrap:wrap;gap:8px 32px;margin:24px 0 0;padding:16px 0;border-top:1px solid var(--l-ln);border-bottom:1px solid var(--l-ln);font-size:15px;color:var(--l-hd)}.mmeta i{display:block;font-style:normal;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--l-naaa)}
.actbar{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0 0}.tchips{margin-top:20px}.tchips .chip{font-size:14px;padding:6px 13px}
.prose{margin-top:34px;font-size:18px;line-height:1.7;color:var(--l-n5d5d5d);overflow-wrap:break-word}.prose li,.prose p,.prose td,.prose th{font-size:inherit}.prose p{margin:0 0 1.05em}.prose h2,.prose h3,.prose h4{margin:1.7em 0 .6em;line-height:1.3}.prose h2{font-size:27px}.prose h3{font-size:21px;font-weight:600}.prose h2,.prose h3{color:var(--l-hd)}
.prose a{color:var(--l-acc);border-bottom:1px solid rgba(255,133,98,.35)}.prose a.fl{border:1px solid var(--l-peach);padding:2px 9px}.prose ul,.prose ol{padding-left:1.4em;margin:0 0 1.1em}.prose li{margin:.25em 0}.prose li>ul,.prose li>ol{margin:.3em 0}
.prose img{display:block;margin:1em 0}.tblwrap{overflow-x:auto;margin:1.2em 0}table{border-collapse:collapse;font-size:15px;min-width:100%}td,th{border:1px solid var(--l-ln);padding:8px 12px;text-align:left;vertical-align:top}th{background:var(--l-tint);color:var(--l-hd)}.prose blockquote{margin:1em 0;padding-left:20px;border-left:3px solid var(--l-peach)}
.aside{position:sticky;top:calc(var(--site-hd) + 24px);display:flex;flex-direction:column;gap:22px}.aside .card{padding:22px 24px}.aside h4{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--l-na0a0a0);margin-bottom:12px;font-weight:500}
.toc a{display:block;font-size:14.5px;padding:5px 0 5px 12px;border-left:2px solid var(--l-ln);color:var(--l-hd)}.toc a:first-of-type{border-color:var(--l-acc)}.toc a.l3{padding-left:26px;color:var(--l-n888)}
.about dl{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;margin:0 0 18px;font-size:15px}.about dt{color:var(--l-na0a0a0)}.about dd{margin:0;color:var(--l-hd)}.cite p{font-size:14px;line-height:1.55;margin:0 0 14px}
.state{display:grid;grid-template-columns:230px 1fr;margin-top:28px;border-top:4px solid var(--l-peach)}.stcov{background:var(--l-tint);padding:22px;min-height:240px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.ext{font-size:56px;font-weight:600;color:var(--l-acc);letter-spacing:-.02em;margin-top:30px}.play{width:72px;height:72px;border-radius:50%;background:var(--l-white);color:var(--l-acc);display:flex;align-items:center;justify-content:center;margin-top:28px;box-shadow:var(--sh)}.play svg{width:30px;height:30px}
.stbody{padding:30px 34px}.stbody h3{font-size:26px}.stbody p{margin:10px 0 0;overflow-wrap:anywhere}.stact{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.sm2{font-size:14px;color:var(--l-n999)}
.nf{padding:60px 0 20px}.nf-h{font-size:46px;font-weight:600}.nf-p{font-size:19px;margin-top:16px}.nf-p a{color:var(--l-acc)}
.soon{padding:40px 44px;margin-top:10px}.soon h2{font-size:30px}.soon p{margin:12px 0 0}
.aside .card,.mmeta,.mt,.rt,.rm{overflow-wrap:anywhere}.aside,.mlayout>*{min-width:0}
.sech{gap:8px 20px;flex-wrap:wrap}.sech .more{white-space:nowrap;margin:0 0 24px}
h1,h2,h3{line-height:1.18}
/* поиск на месте (владелец 08.11): блоки главной уходят вверх-вниз на 8px и схлопываются, строка поиска поднимается, выдача появляется рядами */
.clp{display:grid;grid-template-rows:1fr;opacity:1;transform:none;visibility:visible;transition:grid-template-rows var(--ss-dur-quick) var(--ss-ease-primary),opacity var(--ss-dur-quick) var(--ss-ease-primary),transform var(--ss-dur-quick) var(--ss-ease-primary),visibility 0s linear 0s}
.clp>.clp-in{min-height:0;overflow:hidden;padding:20px 24px 40px;margin:-20px -24px -40px}
@media(max-width:760px){.clp>.clp-in{padding-left:12px;padding-right:12px;margin-left:-12px;margin-right:-12px}}
.clp.clp-lead{transition-duration:var(--ss-dur-standard),var(--ss-dur-quick),var(--ss-dur-quick),0s;transition-timing-function:var(--ss-ease-secondary),var(--ss-ease-primary),var(--ss-ease-primary),linear}
.is-searching .clp{grid-template-rows:0fr;opacity:0;transform:translateY(8px);visibility:hidden;transition-delay:0s,0s,0s,var(--ss-dur-quick)}
.is-searching .clp.clp-lead{transition-delay:0s,0s,0s,var(--ss-dur-standard)}
.crumbs .cr-lnk,.crumbs li.cr-s{display:none}.crumbs li.cr-lib::after{content:none}
.is-searching .crumbs .cr-idle{display:none}.is-searching .crumbs .cr-lnk{display:inline}.is-searching .crumbs li.cr-s{display:flex}.is-searching .crumbs li.cr-lib::after{content:"—"}
.is-searching .hero{padding-bottom:20px}.hero{transition:padding var(--ss-dur-standard) var(--ss-ease-secondary)}
.is-searching .sbwrap{margin-top:12px}.sbwrap{transition:margin var(--ss-dur-standard) var(--ss-ease-secondary)}
.res{opacity:1;transition:opacity var(--ss-dur-quick) var(--ss-ease-primary)}.res.is-off{opacity:0}
.res-row{animation:libRise var(--ss-dur-standard) var(--ss-ease-secondary) both;animation-delay:calc(var(--i,0)*30ms)}
@keyframes libRise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes libFade{from{opacity:0}to{opacity:1}}
@keyframes libChipIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
.js-only{display:none}.lib-js .js-only{display:block}.lib-js .js-only.flex{display:flex}
.lib-js .row.over{display:none}
/* F449 C22 (f11): список после фильтра, поиска, сортировки — первые строки проявляются со ступенью 30 мс, 200 мс ease-out (класс ставит library.js) */
.row.is-in{animation:libFade 200ms ease-out both;animation-delay:calc(var(--i,0)*30ms)}
@media(max-width:1100px){.mlayout{grid-template-columns:minmax(0,1fr)}.aside{position:static}}
@media(max-width:760px){body{font-size:15.5px}
.hero{padding-top:20px}.hero h1{font-size:40px}.lead{font-size:17.5px}.sbwrap.stk{position:sticky;top:87px;z-index:5;margin:22px -20px 0;padding:10px 20px;background:rgba(250,250,250,.96)}.is-searching .sbwrap.stk{margin-top:12px}.sb{height:58px;font-size:17px;padding:0 16px;gap:12px}.sb kbd{display:none}
.auds{grid-template-columns:1fr;gap:24px}.aud{padding:26px 22px 20px}.aud h2{font-size:28px}.ev{grid-template-columns:1fr;padding:22px;gap:10px;margin-top:24px}.evr{grid-template-columns:1fr}.evr a{border-left:0;padding-left:0;border-top:1px solid var(--l-ln)}
.sec{margin-top:52px}.sec h2{font-size:26px}.covers,.covers.c4{display:flex;overflow-x:auto;gap:14px;padding:4px 0 18px;scrollbar-width:none}.cover{flex:0 0 240px;min-height:170px}
.fline{margin-top:40px}.chip{font-size:15px;padding:8px 13px}
.chead h1{font-size:34px}.facets{display:none!important}.clayout{display:block}.mbar{display:flex;gap:10px;position:sticky;top:87px;z-index:5;background:rgba(250,250,250,.97);margin:0 -20px;padding:10px 20px;transition:box-shadow 150ms ease-in-out}.mbar.is-stuck{box-shadow:var(--sh)}.mb-s,.mb-f{display:flex;align-items:center;gap:10px;height:48px;background:var(--l-white);border:1px solid var(--l-edge2);padding:0 14px;color:var(--l-hd);font:inherit;font-size:15px}.mb-s{flex:1;color:var(--l-naaa);min-width:0}.mb-s svg{color:var(--l-acc);width:20px;flex:none}.mb-s input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;color:var(--l-hd)}.mb-s input::placeholder{color:var(--l-naaa);opacity:1}.mb-f{cursor:pointer}.mb-f em{font-style:normal;background:var(--l-acc);color:var(--l-white);font-size:12px;padding:1px 7px}
.ctools{flex-direction:column;align-items:flex-start;gap:8px;margin-top:6px}.sort{font-size:14px}.achip{padding:7.5px 12px}.mb-s input{padding:0;-webkit-appearance:none;appearance:none}.mb-s input::-webkit-search-decoration,.mb-s input::-webkit-search-cancel-button{display:none}.mb-s{padding-right:8px}
.row{grid-template-columns:1fr;gap:6px;padding:18px 16px}.rf{padding-top:0}.rtl{flex-direction:column;align-items:flex-start;row-gap:4px}.rt{font-size:18px}.rget{justify-content:flex-start;max-width:none;margin-top:8px}
.empty{padding:26px 20px}.empty h2{font-size:24px}.snip{margin:-6px 16px 14px}
.mt{font-size:32px}.msub{font-size:19px}.mmeta{gap:10px 24px}.prose{font-size:17.5px;line-height:1.68}.prose h2{font-size:24px}.actbar .btn-lib,.stact .btn-lib{width:100%;justify-content:center}.state{grid-template-columns:1fr}.stcov{min-height:130px;flex-direction:row;align-items:flex-end}.ext{font-size:44px;margin:0}.play{margin:0}.stbody{padding:24px 20px}
.mlayout{margin-top:22px}.tabs,.ctools,.clayout{scroll-margin-top:100px}
.tabs .mb-s{display:none}.shelf-find{display:block;margin:0 0 16px}
/* F449 C7: лента вкладок одна, затухает у правого края (library.js открывает её прокрученной к активной вкладке) */
.tabs{-webkit-mask-image:linear-gradient(90deg,black calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,black calc(100% - 36px),transparent)}
/* F449 C22 (f11): лист выезжает 250 мс ease-out, закрывается 200 мс */
.scrim{display:block;position:fixed;inset:0;background:rgba(90,90,90,.38);z-index:20;opacity:0;visibility:hidden;transition:opacity 200ms ease-out,visibility 0s linear 200ms}
.sheet{display:flex;flex-direction:column;position:fixed;left:0;right:0;bottom:0;max-height:78%;background:var(--l-white);z-index:30;box-shadow:0 -10px 40px rgba(0,0,0,.18);transform:translateY(100%);visibility:hidden;transition:transform 200ms ease-out,visibility 0s linear 200ms}
.sheet-open{overflow:hidden}.sheet-open .scrim{opacity:1;visibility:visible;transition:opacity 250ms ease-out,visibility 0s}.sheet-open .sheet{transform:none;visibility:visible;transition:transform 250ms ease-out,visibility 0s}
.grab{width:44px;height:4px;background:var(--l-nddd);margin:10px auto 0}.sheeth{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;font-size:19px;color:var(--l-hd)}.sheeth button{background:none;border:0;padding:6px;cursor:pointer;color:inherit;line-height:0}.sheetb{overflow:auto;padding:0 20px 8px;flex:1}.fo{padding:11px 0;font-size:16px}.fo .cb{width:22px;height:22px}.sheetf{display:flex;gap:10px;padding:14px 20px 20px;border-top:1px solid var(--l-ln)}.sheetf .btn-lib{flex:1;justify-content:center}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
