/* Внутренние страницы (22.10.2026): всё, что нужно только разделам, а не главной. Грузится после site.css на всех
   страницах, кроме главной (layout.mjs). Перенесено из site.css (предел 15 КБ в сжатом виде) без изменений — блок
   «21.10 разделы» — и дальше своё: короткий верх, живой испанский первого экрана, поворот вещи, цвет уровня. */
/* 22.10 (вечер, design 7): отступы и скругления — токены шкалы из site.css (--tw-s1…s9, --tw-r-s/l/pill), верх липких
   блоков — --tw-stick (inner.css); значения вне таблицы, 1–3 px, отрицательные и места, где сдвиг вышел бы больше 4 px, — числами */
/* ---------- 21.10 (Павел: «разделы — и удобство, и вид, и единая стилистика»; разбор work/sections-review-20261021.md) ---------- */
/* Г: текст гида, хабов и служебных — на листе со скотчем, как текст статьи; справа на компьютере — записка «On this page» */
.tw-desk>.tw-readsheet{max-width:820px;padding:0;background:none;box-shadow:none}
.tw-readsheet>.tw-lead>p:first-child{font-size:var(--tw-fs-lead)}
.tw-desk.has-toc{display:grid;grid-template-columns:minmax(0,820px) minmax(220px,280px);gap:clamp(28px,3.4vw,56px);align-items:start}
.tw-toc{position:sticky;top:var(--tw-stick);margin-top:var(--tw-s5);padding:var(--tw-s4) var(--tw-s5) var(--tw-s5);background:var(--tw-y);box-shadow:0 10px 18px -14px rgba(60,40,20,.6);transform:rotate(-1deg)}
.tw-toc-l{margin:0 0 var(--tw-s2);font-size:var(--tw-pen-fs-m);line-height:1.1;color:var(--tw-pen-ink)}
.tw-toc ol{list-style:none;padding:0;margin:0}
.tw-toc li+li{border-top:1px dashed rgba(23,20,15,.22)}
.tw-toc a{display:block;padding:var(--tw-s2) 0;font-size:var(--tw-fs-ui);font-weight:600;line-height:1.3;color:var(--tw-ink);text-decoration:none}
.tw-toc a:hover,.tw-toc a[aria-current]{text-decoration:underline;text-decoration-color:var(--tw-pen);text-decoration-thickness:2px;text-underline-offset:4px}
.tw-toc .tw-btn{margin-top:var(--tw-s4);min-height:44px;font-size:var(--tw-fs-ui)}
@media (max-width:999px){.tw-desk.has-toc{display:block}.tw-toc{display:none}}
/* 22.10: та же записка на телефоне — свёрнутой строкой после вступления листа (ui.mjs, toc mobile) */
.tw-toc-m{display:none}
@media (max-width:999px){
  .tw-toc-m{display:block;margin:var(--tw-s2) 0 var(--tw-s5);padding:0 var(--tw-s4);background:var(--tw-y);box-shadow:0 8px 14px -12px rgba(60,40,20,.6);transform:rotate(-.5deg)}
  .tw-toc-m summary{display:flex;align-items:center;justify-content:space-between;gap:var(--tw-s3);min-height:48px;cursor:pointer;list-style:none;font-size:var(--tw-pen-fs-m);line-height:1.1;color:var(--tw-pen-ink)}
  .tw-toc-m summary::-webkit-details-marker{display:none}
  .tw-toc-m summary::after{content:"";flex:none;width:9px;height:9px;margin-right:var(--tw-s1);border-right:2px solid var(--tw-ink);border-bottom:2px solid var(--tw-ink);transform:translateY(-3px) rotate(45deg)}
  .tw-toc-m[open] summary::after{transform:translateY(2px) rotate(-135deg)}
  .tw-toc-m summary:focus-visible{outline:2.5px solid var(--tw-ink);outline-offset:2px}
  .tw-toc-m ol{list-style:none;padding:0 0 var(--tw-s2);margin:0}
  .tw-toc-m li{border-top:1px dashed rgba(23,20,15,.22)}
  .tw-toc-m a{display:flex;align-items:center;min-height:44px;padding:var(--tw-s1) 0;font-size:var(--tw-fs-ui);font-weight:600;line-height:1.3;color:var(--tw-ink);text-decoration:none}
  .tw-toc-m .tw-btn{margin:var(--tw-s1) 0 var(--tw-s4);min-height:44px;font-size:var(--tw-fs-ui)}
}
/* один размер заголовков разделов на внутренних страницах; без висячего слова */
body:not(.tw-home) .tw-sec>h2{font-size:var(--tw-fs-h2);text-wrap:balance}
body:not(.tw-home) .tw-sec h3{text-wrap:balance}
/* списки — штрих карандашом вместо цветных кружков */
body:not(.tw-home) .tw-list li::before{width:12px;height:2.5px;top:.74em;border-radius:2px;background:var(--tw-pen);transform:rotate(-10deg);box-shadow:none}
/* 20 вопросов для разговора: перевод под испанским, ярлык варианта отдельно */
.tw-qlist{display:grid;gap:var(--tw-s3);margin-top:var(--tw-s3);padding-left:1.7em}
.tw-qlist small{display:block;margin-top:2px;font-size:var(--tw-fs-ui);line-height:1.4;color:var(--tw-ink-2)}
.tw-qlist .tw-badge{margin-left:var(--tw-s2)}
.tw-qv{display:block}
.tw-qv+.tw-qv{margin-top:var(--tw-s2)}
.tw-qlist .tw-qv .tw-badge{display:flex;margin:0 0 1px;font-size:var(--tw-fs-label);color:var(--tw-ink-3)}
/* Е: «Keep going» — как «Read next» статьи: первая — лист с кнопкой, ещё две строками, у каждой — о чём она */
.tw-go-main{position:relative;gap:6px;max-width:760px;margin-top:var(--tw-s5);padding:var(--tw-s6) var(--tw-s6) var(--tw-s5);background:var(--tw-sheet);box-shadow:var(--tw-sh-thing);color:var(--tw-ink);text-decoration:none;transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.tw-more a.tw-go-main{display:grid;justify-content:stretch;min-height:0;font-weight:400}
.tw-more a.tw-go-main::after{content:none}
.tw-go-t{font-size:var(--tw-fs-h3);font-weight:750;line-height:1.15;letter-spacing:-.02em}
.tw-go-h{font-size:var(--tw-fs-ui);line-height:1.45;color:var(--tw-ink-2)}
.tw-go-main .tw-btn{justify-self:start;margin-top:var(--tw-s3);min-height:var(--tw-btn-h)}
@media (hover:hover){.tw-go-main:hover{transform:translateY(-3px) rotate(-.35deg);box-shadow:0 0 0 1px rgba(23,20,15,.08),0 22px 30px -20px rgba(60,40,20,.6)}.tw-go-main:hover .tw-btn{background:#2C2720}}
.tw-go ul{margin-top:var(--tw-s4)}
.tw-go ul:not(.tw-rcards) li a{padding:var(--tw-s3) 0}
.tw-go ul:not(.tw-rcards) li a>span{display:grid;gap:3px}
.tw-go ul:not(.tw-rcards) li small{font-size:var(--tw-fs-small);font-weight:400;line-height:1.4;color:var(--tw-ink-2)}
/* якоря — не под шапкой (заголовки разделов, результат теста, вкладки уровней; 22.10, вечер, qa 5 — тренажёр
   после «One question at a time») */
body:not(.tw-home) h2[id],.tw-res,.tw-quiz,.tw-tabs,.tw-level[id],#tool,.tw-qt{scroll-margin-top:calc(var(--tw-stick) - 12px)}
.tw-table td{font-variant-numeric:tabular-nums}
/* шапка → первый блок: без пустой полосы (п. 8) */
.tw-head+.tw-desk{margin-top:clamp(12px,2vw,24px)}
.tw-head+.tw-desk.tw-field{padding-top:clamp(30px,3vw,46px)}
body:not(.tw-home) .tw-head+.tw-sec.tw-field{padding-top:clamp(22px,2.2vw,36px)}
@media (max-width:760px){
  .tw-head+.tw-desk,.tw-head+.tw-sec,.tw-head+.tw-tool{margin-top:0}
  .tw-head+.tw-desk:not(.tw-field){margin-top:var(--tw-s5)}
  .tw-head+.tw-sec:not(.tw-field),.tw-head+.tw-tool:not(.tw-field){padding-top:var(--tw-s5)}
  .tw-go-main{padding:var(--tw-s5) var(--tw-s5) var(--tw-s5)}
}
/* хаб /spanish/: пять шагов плана строками с вещью раздела, ниже — ещё гиды в две колонки */
body:not(.tw-home) .tw-sec>h2.tw-hubmore{margin-top:clamp(34px,4vw,52px);font-size:var(--tw-fs-h3)}
@media (min-width:900px){.tw-rows-2{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--tw-s7)}.tw-rows-2>li{grid-template-columns:minmax(0,1fr)}}
/* фразы (21.10): испанский крупно, перевод, пример и ссылка в текст или выпуск; на странице фраз — сеткой */
.tw-sec .tw-phrases{max-width:none;grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr))}
.tw-phrases>li{display:grid;align-content:start;gap:6px;padding:var(--tw-s4) var(--tw-s5) var(--tw-s4)}
.tw-phr b{display:block;font-size:var(--tw-fs-h3);font-weight:750;line-height:1.2;letter-spacing:-.015em}
.tw-phr span{color:var(--tw-ink-2)}
.tw-phr-ex{font-size:var(--tw-fs-ui);line-height:1.45}
.tw-phr-ex span+span{display:block;color:var(--tw-ink-3)}
.tw-phr-m{margin-top:2px;font-size:var(--tw-fs-small);color:var(--tw-ink-3)}
.tw-phr-go{display:flex;width:fit-content;align-items:center;min-height:44px;margin:-6px 0 -12px;font-weight:650;color:var(--tw-link)}
/* служебные (21.10, п. 25): вещь страницы над заголовком, ниже — «While you wait» */
.tw-util{min-height:0;padding-top:clamp(28px,6vh,72px)}
.tw-util-obj{width:min(170px,38vw);height:auto;margin:0 auto var(--tw-s4);transform:rotate(-8deg);filter:drop-shadow(0 18px 22px rgba(60,40,20,.25))}
/* 22.10 (design 2): на 761–1100 вещь шапки не уходит за край экрана */
@media (min-width:761px) and (max-width:1100px){.tw-head-obj{right:14px}
  /* 22.10 (вечер, design 16): длинная последняя крошка статьи не уходит под вещь шапки */
  .tw-head-o .tw-crumbs{padding-right:min(330px,23vw)}}

/* 22.10 (финальная проверка, design 19): служебные страницы (thanks, confirmed, 404) — нижний блок по центру, как шапка */
.tw-util~.tw-go{max-width:860px;margin-left:auto;margin-right:auto}
.tw-util~.tw-go>h2{text-align:center}
.tw-util~.tw-go .tw-go-main{max-width:none}

/* 22.10 (финальная проверка, design 22): шаги на /spanish/ — главная дверь раздела: один лист «план» со скотчем,
   номер шага карандашом (как подписи на главной); «More guides» ниже остаются строками на поле */
.tw-plan{position:relative;max-width:920px;margin-top:clamp(28px,3vw,42px)}
.tw-plan .tw-rows{margin-top:0;border-top:0}
.tw-plan .tw-rows>li:last-child{border-bottom:0}
.tw-plan .tw-rows-meta{font-family:var(--tw-pen-font,cursive);font-size:var(--tw-pen-fs-m,22px);font-weight:700;letter-spacing:0;text-transform:none;color:var(--tw-pen-ink,var(--tw-ink-2))}
.tw-plan .tw-rows-t{margin-top:2px}


/* ---------- 22.10 (сравнение с русскими разделами, план B и C): короткий верх, живой испанский, поворот вещи, цвет уровня ---------- */
/* цвет поля — только уровень (A1 зелёный, A2 синий, B1 сиреневый, B2 красный) или тёплая бумага; меняется плавно, как
   поле русских разделов (data-field-tc, ≈0,6 с): --lc зарегистрирован цветом, поэтому браузер ведёт его переход сам */
@property --lc{syntax:'<color>';inherits:true;initial-value:#A57F48}
.tw-live,.tq-field{--tc:var(--lc);transition:--lc .6s ease}

/* B2: короткий верх — H1 слева, одна строка справа (телефон — строка под H1, вещь рядом с ней) */
.tw-head-s{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);column-gap:clamp(32px,5vw,96px);align-items:end;padding-bottom:clamp(4px,1vw,14px)}
.tw-head-s>*{grid-column:1/-1}
.tw-head-s>h1{grid-column:1}
.tw-head-s>.tw-head-line{grid-column:2;align-self:end;margin:0 0 .45em;max-width:24em;font-size:var(--tw-fs-lead);line-height:1.45;color:var(--tw-ink-2)}
.tw-head-s.has-stage h1{max-width:15em}
.tw-head-m{display:none}
.tw-head-s:not(.has-stage){display:block}
.tw-head-s:not(.has-stage) .tw-head-line{margin-top:var(--tw-s4);max-width:30em}
.tw-head-s.tw-head-o:not(.has-stage) .tw-head-line{max-width:min(30em,calc(100% - min(330px,23vw)))}
/* начало листа: ответ-абзац и дата, которые раньше стояли в шапке */
.tw-intro{padding-top:clamp(24px,3vw,40px)}
.tw-intro .tw-answer{margin-top:0;max-width:none;font-size:var(--tw-fs-lead)}
.tw-intro .tw-date{margin-top:var(--tw-s3)}
.tw-intro+.tw-sec.tw-lead,.tw-intro+.tw-toc-m+.tw-sec{padding-top:var(--tw-s4)}

/* B3: вещь поворачивается к человеку (turn.js задаёт --rx, --ry); на телефоне — каждый кадр, без сглаживания */
.tw-head-obj{transform:translateY(-44%) perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(-8deg);transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.tw-tilt{display:block;transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(-7deg);transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.tw-tilt img{display:block;width:100%;height:auto;filter:drop-shadow(0 22px 26px rgba(60,40,20,.25));pointer-events:none;user-select:none}
.tw-touch .tw-tilt,.tw-touch .tw-head-obj{transition:none}

/* B1, B5: живой блок первого экрана — на поле цвета уровня; вещь справа, наполовину за краем, как у русских разделов */
.tw-live{padding-top:clamp(56px,6vw,96px);padding-bottom:clamp(80px,8vw,140px)}
body:not(.tw-home) .tw-head+.tw-live{padding-top:clamp(40px,4.6vw,76px)}
.tw-live-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.62fr);align-items:center;column-gap:clamp(24px,4vw,64px)}
.tw-live-main{position:relative;z-index:2;min-width:0;max-width:760px}
.tw-thing{justify-self:end;align-self:start;position:sticky;top:var(--tw-stick);width:min(440px,30vw);margin-right:calc(-1 * min(150px,7vw));pointer-events:none}
/* у короткой живой строки вещь — по центру блока; у высокого инструмента — сверху и едет рядом при прокрутке */
.tw-live[data-live] .tw-thing{align-self:center;position:static}
.tw-live-sw{margin-bottom:clamp(18px,2vw,26px)}
.tw-live-sw .tw-lvsw{align-items:center}
.tw-live-sw .tw-lvsw[hidden]{display:none}
.tw-live-test{display:inline-flex;align-items:center;min-height:44px;margin-left:var(--tw-s2);padding:0 var(--tw-s4) 0 var(--tw-s3);border-left:1px solid rgba(23,20,15,.18);font-size:var(--tw-fs-ui);font-weight:600;color:var(--tw-ink);text-decoration:underline dotted;text-underline-offset:4px}
.tw-live-pen{margin:var(--tw-s2) 0 -12px}
.tw-live-k{font-size:var(--tw-fs-label);font-weight:650;letter-spacing:.12em;text-transform:uppercase;color:var(--tw-ink-3)}
.tw-live-row{display:flex;align-items:flex-start;gap:var(--tw-s4);margin-top:var(--tw-s3)}
.tw-live-row .tw-clip-b{flex:none;margin-top:var(--tw-s2)}
.tw-live-es{font-size:var(--tw-fs-title);line-height:1.32;letter-spacing:-.015em;color:var(--tw-ink);text-wrap:pretty}
.tw-live-es .tw-w{background-size:4px 1.5px}
.tw-live-es mark{padding:0 2px;color:inherit;background:linear-gradient(transparent 55%,rgba(245,192,12,.55) 0)}
.tw-live-en{margin-top:var(--tw-s3);max-width:36em;font-size:var(--tw-fs-body);line-height:1.5;color:var(--tw-ink-2)}
.tw-live-go{display:flex;flex-wrap:wrap;align-items:center;gap:var(--tw-s2) var(--tw-s4);margin-top:var(--tw-s5)}
.tw-live-go .tw-btn{min-height:var(--tw-btn-h);background:rgba(255,253,248,.6)}
.tw-live-go .tw-note{margin:0}
.tw-live-it.is-in{animation:tw-live-in .5s cubic-bezier(.2,.8,.2,1)}
@keyframes tw-live-in{from{opacity:0;transform:translateY(8px)}}
/* поле под готовым инструментом (карточки, фразы, свежий выпуск): инструмент — во всю колонку */
.tw-live .tw-live-main>.tw-tsheet,.tw-live .tw-live-main>.tw-cards{margin-top:0}

@media (max-width:760px){
  /* A1: вещь шапки на телефоне — крупно справа у строки под H1, а не 62 px в углу у кнопки меню */
  .tw-head-o{padding-bottom:var(--tw-s4)}
  .tw-head-o .tw-crumbs{padding-right:0}
  .tw-head-obj{top:auto;bottom:0;right:-18px;width:clamp(116px,36vw,148px);height:clamp(116px,36vw,148px);transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(-8deg)}
  .tw-head-m{display:block}
  /* шапка без строки и ответа (о нас, конфиденциальность): рядом с вещью нечего поставить — на телефоне её нет */
  .tw-head-o:not(:has(.tw-head-line,.tw-answer)) .tw-head-obj{display:none}
  .tw-head-o .tw-head-line,.tw-head-o>.tw-answer:last-of-type{min-height:112px;padding-right:clamp(100px,32vw,136px)}
  .tw-head-s{display:block}
  .tw-head-s .tw-head-line{margin-top:var(--tw-s4);font-size:var(--tw-fs-body)}
  .tw-thing{display:none}
  .tw-live-in{display:block}
  .tw-live{padding-top:var(--tw-s7);padding-bottom:84px}
  body:not(.tw-home) .tw-head+.tw-live{padding-top:40px}
  .tw-live-sw .tw-lvsw{display:flex;width:100%}
  .tw-live-sw .tw-chip{flex:1}
  .tw-live-test{margin-left:0;padding:0 var(--tw-s3);font-size:var(--tw-fs-small)}
  .tw-live-es{font-size:var(--tw-fs-title)}
  .tw-live-row{gap:var(--tw-s3)}
}
@media (prefers-reduced-motion:reduce){.tw-live,.tq-field{transition:none}.tw-tilt,.tw-head-obj{transition:none;--rx:0deg;--ry:0deg}}
/* вещь теста в углу поля — тоже поворачивается; на телефоне крупнее */
.tq-th{transform:perspective(800px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(-16deg);transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.tw-touch .tq-th{transition:none}
@media (max-width:760px){.tq-th{top:-46px;right:-8px;width:112px}}

/* C3: фразы строками на одном поле; «Check yourself» прячет значения, касание — значение бумажной наклейкой */
.tw-phlist-top{display:flex;flex-wrap:wrap;align-items:center;gap:var(--tw-s2) var(--tw-s4);margin-bottom:var(--tw-s4)}
.tw-phlist-top [hidden]{display:none}
.tw-phlist-top .tw-btn{min-height:var(--tw-btn-h);background:rgba(255,253,248,.6)}
.is-quiz .tw-phlist-top .tw-btn{background:var(--tw-ink);color:var(--tw-paper)}
.tw-phlist-top .tw-note{margin:0}
.tw-phrows{list-style:none;padding:0;margin:0;border-top:1.5px solid rgba(27,38,56,.55)}
.tw-phrow{position:relative;padding:var(--tw-s4) 0 var(--tw-s4);border-bottom:1px solid rgba(23,20,15,.13)}
.tw-phrow-es{display:flex;flex-wrap:wrap;align-items:center;gap:var(--tw-s2) var(--tw-s4)}
.tw-phrow-es b{font-size:var(--tw-fs-read);font-weight:750;line-height:1.2;letter-spacing:-.015em}
.tw-phrow-en{margin-top:2px;font-size:var(--tw-fs-body);font-weight:600;color:var(--tw-ink)}
.tw-phrow-ex{margin-top:var(--tw-s2);max-width:44em;font-size:var(--tw-fs-ui);line-height:1.5;color:var(--tw-ink)}
.tw-phrow-ex mark{padding:0 2px;color:inherit;background:linear-gradient(transparent 55%,rgba(245,192,12,.55) 0)}
.tw-phrow-ext{display:block;color:var(--tw-ink-3)}
.tw-phrow-m{margin-top:var(--tw-s1);font-size:var(--tw-fs-small);color:var(--tw-ink-3)}
.tw-phrow-m a{display:inline-block;padding:var(--tw-s3) 0;margin:-12px 0;font-weight:600;color:var(--tw-ink-2)}
.tw-phrow-b{display:inline-flex;align-items:center;min-height:44px;padding:0 var(--tw-s4);border-radius:var(--tw-r-pill);font-size:var(--tw-fs-ui);font-weight:650;color:var(--tw-ink);box-shadow:inset 0 0 0 1.5px rgba(23,20,15,.3)}
.tw-phrow-b[hidden]{display:none}
.is-quiz .tw-phrow-en,.is-quiz .tw-phrow-ext{display:none}
.is-quiz .tw-phrow.is-open .tw-phrow-en{display:inline-block;margin-top:var(--tw-s2);padding:var(--tw-s3) var(--tw-s4) var(--tw-s3);background:linear-gradient(var(--tw-tape),var(--tw-tape)) 50% 0/46px 9px no-repeat,var(--tw-y);box-shadow:0 10px 18px -14px rgba(60,40,20,.65);transform:rotate(-1.4deg);animation:tw-stick .4s cubic-bezier(.2,1.4,.4,1)}
.is-quiz .tw-phrow.is-open .tw-phrow-ext{display:block}
.is-quiz .tw-phrow.is-open .tw-phrow-b{display:none}

/* D1: ссылка на следующий раздел под блоком — понятными словами, карандашная линия при наведении */
.tw-nextl{margin-top:var(--tw-s5)}
.tw-nextl a{display:inline-flex;align-items:center;min-height:44px;font-size:var(--tw-fs-lead);font-weight:650;color:var(--tw-ink);text-decoration:underline;text-decoration-thickness:1.5px;text-decoration-color:rgba(23,20,15,.35);text-underline-offset:5px}
.tw-nextl a:hover{text-decoration-color:var(--tw-pen);text-decoration-thickness:2px}
.tw-readsheet>.tw-nextl{margin-top:clamp(30px,3.4vw,44px)}
.tw-nextw{margin-top:clamp(18px,2vw,30px)}
.tw-nextw .tw-nextl{margin-top:var(--tw-s1)}

/* ---------- 22.10: система размеров и текст без рамок (решение Павла 22.10, как у русского site-x) ----------
   Размеры, отступы, ширина строки и кнопки — токены --tw-* (site.css :root). Текст лежит прямо на бумаге, части
   страницы делит цветное поле с мягким переходом. Бумажные вещи остаются вещами: карточка слова, жёлтая записка,
   чек с формой, карточки списков. Живой блок (инструмент, плеер, реплика Рамона, свежий выпуск, разговор-образец) —
   мягкий прямоугольник чуть темнее поля, без тени, скотча и наклона (как врезка Рамона у русских, .ns-field-box). */
:root{--tw-read:var(--tw-measure);
  /* 22.10 (вечер, design 18, 20): значок «+» раскрывашек — один размер; цвета окна чата — одним местом */
  --tw-fs-icon:30px;--tw-chat-bg:#F8F4EC;--tw-chat-me:#E0D4F7;
  /* design 7: верх липких блоков (записка, заголовок зоны, вещь, плеер) — одно число; якоря — на 12 px выше */
  --tw-stick:96px}
@media (max-width:760px){:root{--tw-fs-h1:clamp(32px,10vw,44px);--tw-fs-h2:clamp(28px,8vw,36px);--tw-fs-title:clamp(24px,6.6vw,30px)}}
.tw-tsheet,.tw-player,.tw-pod-sheet,.tw-talk-line{--tw-box-bg:color-mix(in srgb,var(--tc,#A57F48) 22%,var(--tw-paper))}
.tw-phrases{gap:0 var(--tw-s6)}
.tw-phrases>li{padding:var(--tw-s4) 0;background:none;box-shadow:none;border-bottom:1px solid rgba(23,20,15,.13)}

/* шрифт: 11 шагов */
body{font-size:var(--tw-fs-body)}
.tw-head h1{font-size:var(--tw-fs-h1)}
.tw-sec h3{margin:var(--tw-s6) 0 var(--tw-s2);font-size:var(--tw-fs-h3);line-height:var(--tw-lh-snug)}
body:not(.tw-home) .tw-more>h2,body:not(.tw-home) .tw-next>h2{font-size:var(--tw-fs-title)}
.tw-reader h2,.tw-ep h2,.tw-level .tw-ep h2{font-size:var(--tw-fs-title)}
.tw-answer,.tw-intro .tw-answer,.tw-wait-lead{font-size:var(--tw-fs-lead)}
.tw-small,.tw-date,.tw-note,.tw-form .tw-small,.tw-form label,.tw-crumbs ol,.tw-cues small{font-size:var(--tw-fs-small)}
.tw-badge,.tw-rows-meta,.tw-clip-mast,.tw-lvsw-l,.tw-table thead th,.tw-rhd,.tw-cues b{font-size:var(--tw-fs-label)}
.tw-tag,.tw-tab,.tw-chip,.tw-lvsw .tw-tab,.tw-lvsw .tw-chip,.tw-lvsw a,.tw-table,.tw-rows-sub,.tw-rows-end,.tw-gloss,.tw-en summary{font-size:var(--tw-fs-ui)}
.tw-en p,.tw-faq details p,.tw-form input[type="email"],.tw-prow p{font-size:var(--tw-fs-body)}
.tw-faq summary{font-size:var(--tw-fs-lead)}
.tw-rows-t{font-size:var(--tw-fs-h3)}
.tw-wait-h{font-size:var(--tw-fs-title)}
.tw-es,.tw-cues span{font-size:var(--tw-fs-read);line-height:var(--tw-lh-read)}
.tw-es{max-width:var(--tw-measure-es)}
.tw-sec>p,.tw-list li,.tw-faq details p,.tw-steps li{line-height:var(--tw-lh-body)}
.tw-btn{min-height:var(--tw-btn-h)}
.tw-btn-sun{min-height:var(--tw-btn-h);font-size:var(--tw-fs-body)}
/* мобильные размеры site.css (body 16,5, .tw-es 19, чат 16/13,5) перекрыты строками выше: inner.css грузится позже,
   а шкала сама сжимается на узком экране */

/* ширина строки и ритм: одна колонка около 65 знаков, один шаг между разделами */
.tw-sec>.tw-table-wrap{max-width:none}
.tw-level .tw-text{max-width:none}
.tw-faq details p,.tw-intro .tw-answer,.tw-src,.tw-phrow-ex,.tw-phrow-m,.tw-qs>li{max-width:var(--tw-measure)}
.tw-cues{max-width:calc(var(--tw-measure-es) + 24px)}
.tw-form input[type="email"]{min-height:var(--tw-btn-h)}
.tw-sec:not(.tw-field){padding-top:var(--tw-sec)}
.tw-readsheet .tw-sec+.tw-sec,.tw-readsheet .tw-toc-m+.tw-sec{padding-top:var(--tw-sec)}
.tw-sec>h2+p,.tw-sec>h2+div,.tw-sec>h2+ul{margin-top:var(--tw-s5)}

/* варианты ответа — строки с буквой в кружке, как в тесте; без коробок */
.tw-pq-o{counter-increment:o}
.tw-qopt::before,.tw-pq-o::before{content:counter(o,lower-alpha);flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1.5px rgba(27,38,56,.45);font-size:var(--tw-fs-small);font-weight:650;color:var(--tw-ink-2)}
.tw-qopt.is-ok::before,.tw-pq-o.is-right::before{content:"✓";background:var(--tw-ok);color:#fff;box-shadow:none}
.tw-qopt.is-no::before,.tw-pq-o.is-wrong::before{content:"✕";color:var(--tw-no);box-shadow:inset 0 0 0 1.5px var(--tw-no)}
@media (forced-colors:active){.tw-qopt::before,.tw-pq-o::before{border:1px solid CanvasText}}

/* одна концовка: «Keep going» слева, чек с формой справа (ui.mjs, ending) */
.tw-end{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,500px);gap:0 clamp(40px,6vw,96px);align-items:start;padding-top:var(--tw-sec)}
.tw-end>.tw-wrap{max-width:none;margin:0;padding-left:0;padding-right:0}
.tw-end>.tw-sec{padding-top:0}
.tw-end .tw-slotbar{margin-top:var(--tw-s2)}
@media (max-width:999px){.tw-end{display:block}.tw-end>.tw-wait{padding-top:var(--tw-sec)}}

/* ---------- 22.10: разговор-образец — окно мессенджера (parts.mjs convo; Павел: «формат сообщений из мессенджера») ----------
   Окно — мягкое поле (инструмент на месте): шапка с именем и строкой «ИИ-собеседник · вариант», Рамон — белые пузыри
   слева с голосовым сверху, человек — сиреневые справа, поправка ✏️ — строкой внизу ответа Рамона, как в чате приложения */
.tw-msgr{margin:var(--tw-s5) 0 0}
.tw-msgr-in{max-width:600px;border-radius:var(--tw-r-l);background:var(--tw-chat-bg);overflow:hidden}
.tw-msgr-top{display:flex;align-items:center;gap:var(--tw-s3);margin:0;padding:var(--tw-s3) var(--tw-s4);background:rgba(255,253,248,.6);box-shadow:0 1px 0 rgba(23,20,15,.08)}
.tw-msgr-top::before{content:attr(data-av);flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--tw-ink);color:var(--tw-paper);font-weight:750;font-size:var(--tw-fs-lead)}
.tw-msgr-name{display:block;font-weight:750;font-size:var(--tw-fs-body);line-height:1.2}
.tw-msgr-st{display:block;font-size:var(--tw-fs-small);line-height:1.3;color:var(--tw-ink-3)}
.tw-msgr-who{display:grid}
.tw-msgs{list-style:none;margin:0;padding:var(--tw-s4) var(--tw-s4) var(--tw-s4);display:flex;flex-direction:column;gap:var(--tw-s1)}
.tw-msg{position:relative;max-width:min(84%,460px);padding:9px 14px 9px;border-radius:18px 18px 18px 6px;background:var(--tw-sheet);box-shadow:0 1px 1px rgba(23,20,15,.1)}
.tw-msg.is-first{margin-top:var(--tw-s3)}
.tw-msg:first-child{margin-top:0}
.tw-msg-me{align-self:flex-end;border-radius:18px 18px 6px 18px;background:var(--tw-chat-me)}
.tw-msg-p{align-self:flex-start}
/* 22.10 (вечер, ux 3): имя говорящего не видно, но чтец экрана его слышит (раньше display:none) */
.tw-msg-who{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tw-msg-es{margin:0;font-size:var(--tw-fs-body);line-height:1.42;color:var(--tw-ink)}
.tw-msg-en{margin:var(--tw-s1) 0 0;font-size:var(--tw-fs-small);line-height:1.4;color:var(--tw-ink-2)}
.tw-msg-fix{margin:var(--tw-s2) 0 0;padding-top:var(--tw-s2);border-top:1px dashed rgba(23,20,15,.18);font-size:var(--tw-fs-small);line-height:1.45;color:var(--tw-ink-2)}
.tw-msg-fix b{font-weight:650;color:var(--tw-ink-3)}
.tw-msg-fix s{color:var(--tw-no);text-decoration-thickness:1.5px}
.tw-msg-fix strong{color:var(--tw-ok)}
.tw-msg-fix small{display:block;margin-top:2px;font-size:inherit}
.tw-msgr figcaption{max-width:600px;margin-top:var(--tw-s3);text-align:left}
/* голосовое: круглая кнопка, волна по громкости записи, время; без скрипта — родной плеер */
.tw-vm{display:flex;align-items:center;gap:10px;min-width:min(250px,100%);margin:2px 0 var(--tw-s2)}
.tw-vm audio{width:100%;height:40px}
.tw-js .tw-vm audio{display:none}
.tw-vm-b{flex:none;display:grid;place-items:center;width:var(--tw-btn-h-s);height:var(--tw-btn-h-s);border-radius:50%;background:var(--tw-ink);color:var(--tw-paper)}
.tw-vm-b svg{width:20px;height:20px}
.tw-vm-b .i-pause,.tw-vm.is-on .i-play{display:none}
.tw-vm.is-on .i-pause{display:block}
/* 22.10 (вечер, ux 11в): по волне касаются — поле 44 px, сама волна прежние 30 (полоски считают высоту от содержимого) */
.tw-vm-w{flex:1;display:flex;align-items:center;justify-content:space-between;height:var(--tw-btn-h-s);padding:7px 0;cursor:pointer}
.tw-vm-w i{flex:none;width:3px;height:calc(var(--h) * 100%);border-radius:2px;background:rgba(27,38,56,.28);transition:background .15s}
.tw-vm-w i.on{background:var(--tw-ink)}
.tw-vm-t{flex:none;min-width:2.6em;font-size:var(--tw-fs-small);font-variant-numeric:tabular-nums;color:var(--tw-ink-3)}
.tw-vm[data-draft] .tw-vm-t::after{content:" ·draft";color:#7A5E14}
@media (max-width:760px){.tw-msgs{padding:var(--tw-s3) var(--tw-s3) var(--tw-s4)}.tw-msg{max-width:88%}.tw-msgr-in{margin:0 -6px}}
@media (forced-colors:active){.tw-msg{border:1px solid CanvasText}}

/* ---------- 22.10, вечер: гид зонами, как русская «Говорить» (ui.mjs zones) ----------
   Зона — раздел во всю ширину; через одну — мягкое поле цвета страницы с переходом из бумаги и обратно. Две колонки:
   слева вопрос-заголовок (едет рядом, пока справа длинное), справа ответ и живой пример. Телефон — одна колонка */
.tw-zone-intro{padding-top:clamp(36px,4vw,64px)}
.tw-zone-intro .tw-answer{margin-top:0;max-width:var(--tw-measure)}
.tw-zone-intro>p:not(.tw-date){max-width:var(--tw-measure);color:var(--tw-ink-2)}
.tw-zone-intro>p+p{margin-top:var(--tw-s3)}
.tw-zone:not(.tw-field){padding-top:clamp(36px,4vw,64px);padding-bottom:clamp(36px,4vw,64px)}
.tw-zone.tw-field{--tc-in:min(150px,30%);--tc-out:min(150px,30%);padding-top:clamp(80px,8vw,128px);padding-bottom:clamp(80px,8vw,128px)}
.tw-zone-in{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(32px,5vw,88px);align-items:start}
.tw-zone-h{position:sticky;top:var(--tw-stick)}
.tw-zone-h h2{font-weight:780;font-size:var(--tw-fs-h2);line-height:1;letter-spacing:-.04em;text-wrap:balance}
.tw-zone-h h2 span{font-weight:300;letter-spacing:-.045em}
.tw-zone-h p{margin-top:var(--tw-s4);max-width:30em;color:var(--tw-ink-2)}
.tw-zone-h p+p{margin-top:var(--tw-s3)}
.tw-zone-b>p{max-width:var(--tw-measure);color:var(--tw-ink-2)}
.tw-zone-b>p+p{margin-top:var(--tw-s3)}
.tw-zone-b>:first-child,.tw-zone-b>.tw-table-wrap:first-child,.tw-zone-b>.tw-faq{margin-top:0}
.tw-zone-b>.tw-list,.tw-zone-b>.tw-steps{max-width:var(--tw-measure)}
.tw-zone-b>h3{margin:var(--tw-s6) 0 var(--tw-s2);font-size:var(--tw-fs-h3);line-height:var(--tw-lh-snug)}
.tw-zone-b>h3:first-child{margin-top:0}
.tw-zone-next{padding-top:var(--tw-s5)}
@media (max-width:900px){.tw-zone-in{display:block}.tw-zone-h{position:static}.tw-zone-b{margin-top:var(--tw-s5)}}
/* подразделы строками: номер, заголовок, текст — касанием */
.tw-accs{border-top:1.5px solid rgba(27,38,56,.6)}
.tw-acc{border-bottom:1px solid rgba(23,20,15,.16)}
.tw-acc summary{display:flex;align-items:center;gap:var(--tw-s4);min-height:64px;padding:var(--tw-s3) 0;cursor:pointer;list-style:none}
.tw-acc summary::-webkit-details-marker{display:none}
.tw-acc summary::after{content:"+";flex:none;margin-left:auto;font-size:var(--tw-fs-icon);font-weight:300;line-height:1;transition:transform .3s}
.tw-acc[open] summary::after{transform:rotate(45deg)}
.tw-acc summary:hover h3{text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--tw-pen);text-underline-offset:5px}
.tw-acc-n{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 1.5px rgba(27,38,56,.45);font-size:var(--tw-fs-ui);font-weight:700}
.tw-acc h3{margin:0;font-size:var(--tw-fs-h3);line-height:var(--tw-lh-snug)}
.tw-acc-b{padding:0 0 var(--tw-s5) 50px}
.tw-acc-b p{max-width:var(--tw-measure);color:var(--tw-ink-2)}
.tw-acc-b p+p{margin-top:var(--tw-s3)}
@media (max-width:760px){.tw-acc-b{padding-left:0}}
@media (prefers-reduced-motion:reduce){.tw-acc summary::after{transition:none}}

/* 20 вопросов — тренажёр (guide.mjs questionsList, turn.js п. 4): одна карточка на мягком поле, весь список — по кнопке */
.tw-qt{--tw-box-bg:color-mix(in srgb,var(--tc,#A57F48) 22%,var(--tw-paper))}
.tw-qt.is-js{padding:clamp(22px,3vw,34px);border-radius:var(--tw-r-l);background:var(--tw-box-bg)}
.tw-qt-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--tw-s3) var(--tw-s4);margin:0 0 var(--tw-s5)}
.tw-qt-n{font-size:var(--tw-fs-small);font-variant-numeric:tabular-nums;color:var(--tw-ink-3)}
/* 22.10 (вечер, qa 3, qa 6): режим одной карточки — только на экране (на бумаге — весь список, как «See all»).
   Вопросы выбранного уровня стоят в одной клетке сетки, клетка — по самому высокому: «Next» не прыгает от вопроса
   к вопросу; невидимые — visibility:hidden (ни Tab, ни чтец экрана их не находят) */
@media screen{
  .tw-qt.is-js:not(.is-all) .tw-qlist{display:grid;list-style:none;margin:0;padding:0}
  .tw-qt.is-js:not(.is-all) [data-qt-i]{grid-area:1/1}
  .tw-qt.is-js:not(.is-all) [data-qt-i]:not(.is-cur){visibility:hidden}
  .tw-qt.is-js:not(.is-all):has([data-qt-lv=A1][aria-pressed=true]) [data-qt-i]:not([data-level=A1]),
  .tw-qt.is-js:not(.is-all):has([data-qt-lv=A2][aria-pressed=true]) [data-qt-i]:not([data-level=A2]),
  .tw-qt.is-js:not(.is-all):has([data-qt-lv=B1][aria-pressed=true]) [data-qt-i]:not([data-level=B1]),
  .tw-qt.is-js:not(.is-all):has([data-qt-lv=B2][aria-pressed=true]) [data-qt-i]:not([data-level=B2]){display:none}
  .tw-qt.is-js:not(.is-all) [data-qt-i] .tw-es{font-size:var(--tw-fs-title);font-weight:700;line-height:1.2;letter-spacing:-.015em}
  .tw-qt.is-js:not(.is-all) .tw-qv+.tw-qv{margin-top:var(--tw-s3)}
  .tw-qt.is-js:not(.is-all):not(.is-en) [data-qt-i] small{display:none}
  .tw-qt.is-js:not(.is-all) [data-qt-i] small{margin-top:var(--tw-s2);font-size:var(--tw-fs-body)}
  .tw-qt.is-js:not(.is-all) .tw-qt-lv1::before{content:none}
  .tw-qt.is-js:not(.is-all) .tw-qt-lv1{margin-top:0}
}
.tw-qt-act{display:flex;flex-wrap:wrap;gap:var(--tw-s3);margin:var(--tw-s5) 0 0}
.tw-qt-act .tw-btn{min-height:var(--tw-btn-h-s);padding:0 20px;font-size:var(--tw-fs-ui)}
.tw-qt-all{margin:var(--tw-s3) 0 0}
.tw-qt.is-all .tw-qt-top,.tw-qt.is-all .tw-qt-act{display:none}
/* 22.10 (вечер, design 1, ux 9, qa 4): ярлык уровня — над пунктом, а не на строке номера («A11», «B114» в «See all»
   и без скрипта); в режиме одной карточки ярлыка и отступа нет (блок @media screen выше) */
.tw-qt-lv1{position:relative;margin-top:var(--tw-s6)}
.tw-qt-lv1:first-child{margin-top:var(--tw-s5)}
.tw-qt-lv1::before{content:attr(data-level);position:absolute;top:-26px;left:-1.7em;font-size:var(--tw-fs-label);font-weight:650;letter-spacing:.12em;color:var(--tw-ink-3)}
.tw-qt-au{display:flex;align-items:center;margin-top:var(--tw-s2)}
.tw-qt-au audio{height:36px;max-width:100%}
.tw-qt-play{display:inline-flex;align-items:center;gap:var(--tw-s3);min-height:44px;font-size:var(--tw-fs-ui);font-weight:650;color:var(--tw-ink)}
/* 22.10 (вечер, design 10): круглая кнопка звука — один размер 44 на всех страницах (был 40, 44 и 48) */
.tw-qt-pi{display:grid;place-items:center;width:var(--tw-btn-h-s);height:var(--tw-btn-h-s);border-radius:50%;background:var(--tw-ink);color:var(--tw-paper)}
.tw-qt-pi svg{width:20px;height:20px}
.tw-qt-play.is-on .tw-qt-pi{box-shadow:0 0 0 3px var(--tw-paper),0 0 0 5px var(--tw-ink)}
/* окно чата — светлая «обоина», как в мессенджере: и на цветном поле, и на бумаге пузыри читаются одинаково
   (22.10, вечер, design 20: цвета — --tw-chat-bg и --tw-chat-me в :root выше, повторы убраны) */
/* пара «Испания | Мексика» (две колонки текста) — во всю ширину под заголовком; 22.10 (вечер, design 4): у раздела
   с инструментом колонки те же 5/7, что у остальных зон (при 4/8 правая колонка прыгала, H2 слева ломался в 4 строки) */
.tw-zone-in.has-tool:has(.tw-pair){grid-template-columns:minmax(0,1fr)}
.tw-zone-in.has-tool:has(.tw-pair) .tw-zone-h{position:static;max-width:44em}
.tw-zone-in.has-tool:has(.tw-pair) .tw-zone-b{margin-top:var(--tw-s5)}

/* ---------- 22.10, вечер: проверка перед поэтапной выкладкой (work/stage-review-20261022, FIXES.md) ---------- */
/* ux 1: у статьи-пары вторая и третья вкладка уровня не наезжают на «Listen» — отрицательный шаг соседних полей
   (site.css, для зон гида) не для панелей вкладок: скрытая первая панель всё равно «соседняя» */
.tw-level.tw-field+.tw-level.tw-field{margin-top:0}
/* ux 2, qa 1: стрелка «Tap a word» лежит над первым словом — касание проходит сквозь неё к слову */
.tw-penhint,.tw-penhint svg,.tw-pen-svg{pointer-events:none}
/* qa 3, qa 13: печать — без кнопок и переключателей (работают только на экране); тренажёр — списком (@media screen выше) */
@media print{
  .tw-qt-top,.tw-qt-act,.tw-qt-all,.tw-qt-au,.tw-vm-b,.tw-vm-w,.tw-penhint,.tw-lvsw,.tw-live-go,.tw-live-sw,.tw-live-test,.tw-nextl{display:none!important}
  .tw-qt{padding:0!important;background:none!important}
  /* калькулятор на бумаге скрыт — поле живого блока не оставляет на его месте пустую треть страницы */
  .tw-live{padding-top:var(--tw-s5)!important;padding-bottom:0!important}
}
/* design 3: вещь живого блока не выше экрана (ключ на flashcards был 1068 px, инструмент уходил за первый экран) */
.tw-thing .tw-tilt img{max-height:min(560px,62vh);width:auto;max-width:100%;margin-left:auto}
/* design 5: у статьи-пары на телефоне вещь шапки стоит над вкладками, а не на «A2 · Mexico» */
@media (max-width:760px){.tw-head-o:has(>.tw-tabs) .tw-head-obj{bottom:70px}}
/* ux 6: высокий контраст Windows — кнопки и переключатели настоящими рамками, выбранное — системным выделением;
   :root — сильнее border:0 у тех же кнопок в CSS страниц (они грузятся после inner.css) */
@media (forced-colors:active){
  :root :is(.tw-btn,.tw-chip,.tw-tab,.tw-lvsw,.tw-pl-btn,.tw-pl-play,.tw-vm-b,.tw-clip-b,.tw-qt-play,.tw-dlg-who,.tw-dlg-enb,.tw-listen-b,.tw-entog-b,.tw-rc-tab,.tw-rc-link,.tw-lbar button){border:1px solid ButtonText}
  .tw-chip[aria-pressed="true"],.tw-tab[aria-selected="true"],.tw-rc-tab[aria-selected="true"],.tw-entog-b[aria-pressed="true"],.tw-pl-toggle[aria-pressed="true"]{background:Highlight!important;color:HighlightText!important;forced-color-adjust:none}
  .tw-vm-w i{background:GrayText;forced-color-adjust:none}.tw-vm-w i.on{background:CanvasText}
}
/* design 8: без одного слова в последней строке (строка у H1, вопросы, подразделы, заголовки текста и выпуска) */
.tw-head-line,.tw-faq summary,.tw-acc h3{text-wrap:pretty}
.tw-ep h2,.tw-reader h2{text-wrap:balance}
/* design 9: «Last updated» не прилипает к следующему абзацу */
.tw-zone-intro>.tw-intro+p{margin-top:var(--tw-s5)}
/* design 11: перед «Questions» — шаг раздела, и после зоны без поля (ссылка «… →» не выглядит частью вопросов) */
.tw-zone-next+.tw-zone:not(.tw-field){padding-top:var(--tw-sec)}
/* design 12: английская строка расшифровки — не шире 65 знаков */
.tw-cues small{max-width:var(--tw-measure)}
/* design 15: длинный ответ в шапке (о конфиденциальности) на телефоне — во всю ширину, вещи нет; класс is-long ставит
   pageHead (ui.mjs) по длине ответа, а сам ответ стоит в шапке не у всех страниц — поэтому :has(>.tw-answer) */
@media (max-width:760px){.tw-head-o.is-long:has(>.tw-answer) .tw-head-obj{display:none}.tw-head-o.is-long>.tw-answer{padding-right:0;min-height:0}}
/* design 17: конец выпуска — «Talk it over with Ramón» и «Facts come from» не крупнее «Keep going» */
body:not(.tw-home) :is(.tw-talk,.tw-sec[aria-labelledby="src-h"])>h2{font-size:var(--tw-fs-title)}
/* ux 20: «Home» в крошках — поле касания 44 px в ширину */
.tw-crumbs li:first-child a{min-width:44px;justify-content:center}
/* ux 24: мелкие серые подписи в ящиках цвета страницы — ink-2 (на синих и красных страницах ink-3 даёт 4,3–4,4 : 1) */
:root :is(.tw-qt,.tw-tsheet,.tw-player,.tw-pod-sheet,.tw-talk-line) :is(.tw-qt-n,.tw-badge:not(.tw-badge-draft),.tw-card-n,.tw-card-t,.tw-clip-m,.tw-pair-h,.tw-rows-meta,.tw-cue-link,th){color:var(--tw-ink-2)}
