/* СГЕНЕРИРОВАНО tools/build_design_tokens.py из content/design-tokens.json.
   Руками не править: правка вернётся следующей сборкой (правило 8).
   Новый цвет или размер заводится в JSON, с полем use — для чего он.
   src-sha: a12f8e3b66a9 */
:root {
  /* color */
  --ink: #211A15;  /* текст, тёмные поверхности, выбранный вариант ответа */
  --ink-secondary: #6E6157;  /* вторичный текст (mute в v3); светлее для текста не берём */
  --ink-tertiary: #7A6B5E;  /* неактивные подписи, шевроны */
  --flag-it-green: #009246;  /* зелёная полоса флага Италии: подложка карточки экзамена в цветах флага (лендинг, выбор экзамена); только флаг, не краска интерфейса */
  --flag-it-red: #CE2B37;  /* красная полоса флага языка экзамена; прежний флаг из бирюзы и кораллов читался французским */
  --flag-nl-red: #AE1C28;  /* красная полоса флага Нидерландов: подложка карточки экзамена в цветах флага */
  --flag-nl-blue: #21468B;  /* синяя полоса флага Нидерландов: подложка карточки экзамена в цветах флага */
  --paper: #FBF6EF;  /* фон экрана — тёплая бумага, за ней два пятна света */
  --paper-warm: #F7F0E8;  /* вложенные плитки на стекле, где стекло поверх стекла ломало бы контраст */
  --paper-card: #FFFFFF;  /* белое: текст на тёмном, сплошные плашки */
  --line: #ECE2D6;  /* линии и разделители */
  --line-strong: #E4D8CB;  /* границы вложенных блоков, выключенный тумблер */
  --lip: #E6DCCF;  /* нижняя кромка у сплошных плашек (в v3 почти не встречается) */
  --accent: #F2652E;  /* действие: главная кнопка, одна на экран */
  --accent-from: #F2652E;  /* градиент главной кнопки, начало */
  --accent-to: #E14D18;  /* градиент главной кнопки, конец */
  --accent-lip: #A8360E;  /* нажатая главная кнопка */
  --accent-ink: #C43D12;  /* оранжевый текст: капслок внимания, ссылки, «Koi» в логотипе */
  --pass: #23AFC3;  /* над линией: графика, вода колбы, тумблер вкл */
  --pass-bg: #E3F4F6;  /* фон верного ответа и метки «over the line» */
  --pass-border: #AED1D8;  /* граница верного ответа (teal-ink 25% на фоне) */
  --pass-text: #0E6A80;  /* teal-ink: «над линией», верный ответ, значки строк списка */
  --fail: #E8582F;  /* под линией: кромка колбы 2px, полосы, кольца */
  --fail-ink: #C8321A;  /* short-ink: число части под линией, неверный ответ, ошибка; контраст 4.5:1 на светлом */
  --fail-bg: #FCE9E3;  /* фон неверного ответа */
  --fail-border: #EFBBB1;  /* граница неверного ответа (short-ink 25% на фоне) */
  --trap: #FFE0A3;  /* подсветка слова-ловушки, и только его */
  --panel-from: #2E251F;  /* тёмная поверхность, начало (сплошной аналог тёмного стекла) */
  --panel-to: #1A1410;  /* тёмная поверхность, конец */
  --track: #F0E8DE;  /* дорожка полос, пустые ячейки недели */
  --paper-bar: #FFFBF6;  /* светлая плашка поверх бумаги */
  --ink-warm: #5E5348;  /* текст на тёплой плашке: темнее вторичного */
  --accent-deep: #E14D18;  /* крупные денежные цифры */
  --ink-faint: #C9BBAC;  /* ещё не перенесённый кружок бланка — графика ожидания, не текст */
  --fail-lip: #F3D3CA;  /* тень плашки под линией */
  --spark: #FFB020;  /* искра у маскота на победе — только там */
  --panel-kicker: #B8AA9C;  /* капслок на тёмном стекле (v3: задача вечера, паузы записи, «Our part», «Bring») */
  --panel-accent: #FFB28A;  /* на тёмном: капслок идущей записи («Play 2 of 2») и «aim: 9 of 12» */
  --panel-rec: #FFB9A8;  /* на тёмном: капслок записи устной («Recording») */
  --panel-body: #CFC3B7;  /* текст на тёмной карточке */
  --panel-strong: #EFE6DC;  /* текст на тёмной карточке, который читается первым */
  --panel-sub: #C9BCB0;  /* подпись на тёмной карточке: месяц, срок записи */
  --panel-ring: #3A2E25;  /* дорожка на тёмном: пройденное видно, дорожка — нет */
  --screen-dark: #1A1411;  /* фон тёмного экрана задания (аудирование, устная) */
  --water-pass-top: #7FDDE7;  /* вода над линией, верх */
  --water-pass-mid: #2BB3C6;  /* вода над линией, середина */
  --water-pass-deep: #0F7F97;  /* вода над линией, дно */
  --water-short-top: #FFB892;  /* вода под линией, верх */
  --water-short-mid: #F2753F;  /* вода под линией, середина */
  --water-short-deep: #D4521E;  /* вода под линией, дно */
  --water-rec-top: #FF9A86;  /* запись устной, верх */
  --water-rec-mid: #EC4A33;  /* запись устной, середина */
  --water-rec-deep: #C22E1C;  /* запись устной, дно */
  --water-full-top: #9BE8F0;  /* полная колба (12 из 12), верх — вода светлее и светится */
  --water-full-mid: #35BED0;  /* полная колба, середина */
  --water-full-deep: #1289A2;  /* полная колба, дно */
  --teal-glow: #6ED8E3;  /* бирюзовый текст на тёмном стекле: «+1 clears the line» */
  --warm-bg: #FFF1E4;  /* v3 W28: баннер-предупреждение — срок записи, серия под угрозой */
  --on-dark-ok: #8FE3EA;  /* на тёмном: метка «Correct» у варианта (C02·6) */
  --on-dark-no: #FFB59E;  /* на тёмном: метка «Your answer» у неверного варианта (C02·6) */
  --cell-answered-rim: #D9CCBD;  /* v5 N7: rim of an answered cell in the Dutch overview (its fill is lip) */
  --portrait-top: #F7F0E8;  /* v5 N11: Spreken portrait circle, backdrop under the photo, top */
  --portrait-bottom: #E4D8CB;  /* v5 N11: Spreken portrait circle, backdrop under the photo, bottom */
  /* font */
  --font-display: 'Baloo 2', system-ui, sans-serif;  /* заголовки и подписи, начертание 800 */
  --font-body: 'Nunito', system-ui, sans-serif;  /* текст, начертание 600/700 */
  --font-rtl-display: 'Baloo Bhaijaan 2', 'Noto Naskh Arabic', 'Geeza Pro', 'Segoe UI Arabic', 'Baloo 2', sans-serif;  /* заголовки справа налево; системные арабские лица стоят ДО латинского отката — веб-шрифты RTL пока не грузятся, и без них латиница рисовала бы арабский подстановочными глифами */
  --font-rtl-body: 'Cairo', 'Noto Naskh Arabic', 'Geeza Pro', 'Segoe UI Arabic', 'Nunito', sans-serif;  /* текст справа налево; то же правило отката */
  /* size */
  --fs-headline: 28px;  /* заголовок экрана */
  --fs-headline-sm: 26px;  /* заголовок в узкой колонке */
  --fs-card-title: 22px;  /* заголовок карточки */
  --fs-logo: 18px;  /* слово в шапке */
  --fs-header: 17px;  /* строка шапки */
  --fs-body: 16px;  /* основной текст */
  --fs-body-sm: 15px;  /* текст в плотных блоках */
  --fs-secondary: 14px;  /* вторичный текст */
  --fs-secondary-sm: 13px;  /* подписи */
  --fs-kicker: 12px;  /* капслок над заголовком, разрядка .09em */
  --fs-min: 11px;  /* нижний предел; меньше не бывает нигде */
  --fs-display-web: 40px;  /* главный заголовок страницы в вебе */
  --fs-display-web-sm: 34px;  /* заголовок страницы в вебе, когда рядом тесно */
  --fs-h1-mobile: 30px;  /* заголовок экрана в телефоне, межбуквенный -.03em */
  /* radius */
  --r-screen: 42px;  /* скруг экрана в рамке устройства */
  --r-panel: 26px;  /* тёмная карточка */
  --r-panel-sm: 22px;  /* тёмная панель поменьше */
  --r-card: 26px;  /* карточка (стекло) */
  --r-card-sm: 22px;  /* карточка в плотной сетке */
  --r-input: 16px;  /* поле, плитка */
  --r-input-sm: 14px;  /* мелкая плитка */
  --r-pill: 999px;  /* пилюля */
  --r-card-md: 20px;  /* вариант ответа, плитка второго плана */
  --r-field: 18px;  /* поле ввода на бумаге (A11–A14): стекло */
  --r-row: 24px;  /* строка выбора сессии (A07, B06): тёмное стекло у выбранной */
  --r-tile: 12px;  /* значок строки списка в бирюзовой плитке */
  --r-bar-top: 9px;  /* верх столбика диаграммы гейтов (правило сдачи) */
  --r-answer: 20px;  /* вариант ответа */
  --r-dock: 24px;  /* v5 N6/N11: the listening transport and the Spreken dock (= row) */
  /* shadow */
  --shadow-card: 0 22px 44px -26px rgba(18,110,130,.38);  /* карточка: мягкая тень стекла */
  --shadow-card-sm: 0 8px 18px -10px rgba(18,110,130,.38);  /* пилюля и мелкая карточка */
  --shadow-button: 0 12px 24px -12px rgba(225,77,24,.7), inset 0 1px 0 rgba(255,255,255,.25);  /* главная кнопка */
  --shadow-panel: inset 0 1px 0 rgba(255,255,255,.18), 0 26px 50px -26px rgba(33,26,21,.75);  /* тёмная карточка */
  --shadow-portrait: 0 18px 36px -18px rgba(33,26,21,.5);  /* v5 N11: Spreken portrait circle, soft shadow, no border */
  --shadow-portrait-knob: 0 1px 3px rgba(0,0,0,.35);  /* v5 N11: Spreken portrait circle, the seek knob's drop shadow (a filter: one shadow, no spread) */
  /* space */
  --sp-screen: 18px;  /* поля экрана */
  --sp-card: 14px;  /* поля карточки на мобильном */
  --sp-card-web: 20px;  /* поля карточки в вебе */
  --sp-gap-xs: 8px;  /* щель между чипами */
  --sp-gap-sm: 10px;  /* щель в списке */
  --sp-gap: 12px;  /* щель между карточками */
  --sp-gap-lg: 14px;  /* щель между блоками */
  --sp-cue: 30px;  /* v5 N6: diameter of a cue dot on the lane (its target is a11y tap-target-min) */
  --sp-lane: 44px;  /* v5 N6: width of the lane column: the cue dot target, centred on the line */
  --sp-portrait: 220px;  /* v5 N11: Spreken portrait circle, diameter on the phone and narrow web */
  --sp-portrait-wide: 260px;  /* v5 N11: Spreken portrait circle, diameter on web from 1000 px */
  /* layout */
  --web-max: 1200px;  /* ширина оболочки в вебе (артборды W: 1204 при окне 1280) */
  --col-gap: 24px;  /* щель между колонками */
  --phone: 394px;  /* ширина телефона в макете */
  /* motion */
  --motion-fast: 110ms;  /* нажатие, наведение, фокус — отклик на палец */
  --motion-base: 200ms;  /* появление экрана и карточек */
  --motion-slow: 420ms;  /* полоса гейта, счётчик — движение, за которым следят */
  --motion-ease: cubic-bezier(.2,.7,.3,1);  /* вход: быстро стартует, мягко садится */
  --motion-ease-out: cubic-bezier(.4,0,1,1);  /* уход элемента */
  --motion-idle: 3400ms;  /* покачивание маскота и мерцание искр на победе — единственное бесконечное движение; prefers-reduced-motion его выключает */
  --motion-wave: 6s;  /* волна в колбе, ближний слой; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-wave-slow: 9s;  /* волна в колбе, дальний слой навстречу; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-swell: 3.4s;  /* вода покачивается; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-rise: 5s;  /* пузырёк поднимается от дна до поверхности; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-halo: 3.6s;  /* свечение полной колбы; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-sweep: 5.2s;  /* отблеск по полной колбе; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-enter: .6s;  /* v3: блок экрана поднимается при входе (прозрачность и сдвиг) */
  --motion-enter-shift: 14px;  /* v3: на сколько блок поднимается при входе */
  --motion-stagger: 55ms;  /* v3: шаг лесенки между блоками экрана; больше двенадцати ступеней не бывает */
  --motion-ease-enter: cubic-bezier(.2,.8,.2,1);  /* v3: вход блока, нажатие, подъём карточки */
  --motion-press: 180ms;  /* v3: отклик кнопки на палец и на наведение */
  --motion-press-scale: .97;  /* v3: насколько кнопка сжимается под пальцем */
  --motion-press-scale-card: .985;  /* v3: сжатие крупной цели под пальцем — строки, карточки, варианты ответа; .97 у них «прыгает» край */
  --motion-lift: 250ms;  /* v3: карточка приподнимается под курсором */
  --motion-fill: 1.1s;  /* v3: колба наливается снизу при входе экрана */
  --motion-fill-delay: .35s;  /* v3: налив начинается, когда блок уже поднялся */
  --motion-ease-fill: cubic-bezier(.3,.7,.2,1);  /* v3: налив колбы */
  --motion-shine: 5.5s;  /* v3: блик по оранжевой кнопке раз в цикл; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-shine-delay: 1.4s;  /* v3: первый блик не раньше, чем глаз нашёл кнопку */
  --motion-shine-sweep: 0.9s;  /* блик главной кнопки: сам проход, быстрый, с разгоном и торможением; остальное время цикла кнопка в покое */
  --motion-pulse: 2.4s;  /* v3: кольцо вокруг текущей отметки; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-sheet: .55s;  /* v3: лист выезжает снизу */
  --motion-ease-sheet: cubic-bezier(.2,.9,.25,1);  /* v3: лист, тост, значок-состояние */
  --motion-scrim: .35s;  /* v3: затемнение под листом */
  --motion-drop: .5s;  /* v3: тост и уведомление падают сверху */
  --motion-pop: .5s;  /* v3: значок-состояние появляется с отскоком */
  --motion-draw: .45s;  /* v3: галочка в значке прорисовывается */
  --motion-rec: 1.6s;  /* v3: кольцо вокруг точки записи; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-flame: 1.8s;  /* v3: пламя серии мерцает; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-blink: 1.05s;  /* v3: мигание курсора и точки «идёт» */
  --motion-caustic: 6s;  /* v3: блики света в полной колбе; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-glint: 2.6s;  /* v3: искры у поверхности полной колбы; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-sway: 2s;  /* v3: пузырёк покачивается на подъёме; бесконечное движение, prefers-reduced-motion его выключает */
  --motion-toast: 2.6s;  /* сколько тост держится на экране, прежде чем уйти сам */
  --motion-pop-delay: .2s;  /* v3: значок-состояние выскакивает, когда экран уже на месте */
  --motion-draw-delay: .55s;  /* v3: знак прорисовывается, когда значок уже выскочил */
  --motion-shake: .36s;  /* поле отказало: короткое качание «нет», один раз */
  --motion-eq: .9s;  /* v5 N6: playing bars inside a cue dot, middle bar (keyframe eq, alternate); reduced motion stands them still */
  --motion-eq-fast: .7s;  /* v5 N6: playing bars, fast bar */
  --motion-eq-slow: 1.1s;  /* v5 N6: playing bars, slow bar */
  --motion-talk: 1.9s;  /* v5 N11: Spreken portrait circle, halo swell while the person speaks (keyframe talk); reduced motion stands it still */
  --motion-talk-listen: 1.3s;  /* v5 N11: Spreken portrait circle, halo swell while the candidate records */
  --motion-ring-1: 1.6s;  /* v5 N11: Spreken portrait circle, ring 1 radiating (keyframe ring) */
  --motion-ring-2: 2.1s;  /* v5 N11: Spreken portrait circle, ring 2 radiating */
  --motion-ring-3: 2.7s;  /* v5 N11: Spreken portrait circle, ring 3 radiating */
  --motion-flow: 7s;  /* v5 decision 43: the slow drift of a live dock's gradient (recording red, playing transport); reduced motion stands it still */
  --motion-amp: 70ms;  /* v5 decision 43: how fast a sound-driven bar, halo or glow follows its level (the level itself is smoothed in code) */
  --motion-morph: 520ms;  /* v5 decision 43: a control turning into another (Record into the red recording dock, Stop into the recorded answer); web ease-enter, phone a spring of this response */
  /* tint */
  --tint-blob-teal: rgba(99,211,223,.45);  /* бирюзовое пятно вверху справа */
  --tint-blob-warm: rgba(255,150,95,.28);  /* тёплое пятно внизу слева */
  --tint-blob-teal-dark: rgba(99,211,223,.22);  /* то же на тёмном экране */
  --tint-blob-warm-dark: rgba(255,150,95,.18);  /* то же на тёмном экране */
  --tint-teal-tile: rgba(21,151,174,.09);  /* плитка значка в строке списка */
  --tint-line-dash: rgba(33,26,21,.3);  /* пунктир линии сдачи */
  --tint-on-dark: rgba(255,255,255,.72);  /* вторичный текст на тёмном стекле */
  --tint-on-dark-line: rgba(255,255,255,.16);  /* граница стеклянной кнопки на тёмном */
  --tint-on-dark-fill: rgba(255,255,255,.1);  /* заливка стеклянной кнопки на тёмном */
  --tint-ok-line: rgba(14,106,128,.25);  /* граница верного ответа на стекле */
  --tint-no-line: rgba(200,50,26,.25);  /* граница неверного ответа на стекле */
  --tint-glint: rgba(255,255,255,.95);  /* блик на стенке колбы */
  --tint-sheen: rgba(255,255,255,.26);  /* блик на поверхности воды */
  --tint-bubble: rgba(255,255,255,.9);  /* кольцо пузырька */
  --tint-bubble-core: rgba(255,255,255,.95);  /* блик внутри пузырька (Tube final) */
  --tint-bubble-mid: rgba(255,255,255,.18);  /* тело пузырька */
  --tint-bubble-edge: rgba(255,255,255,.05);  /* край пузырька */
  --tint-bubble-glow: rgba(255,255,255,.35);  /* свечение вокруг пузырька */
  --tint-surface: rgba(255,255,255,.75);  /* светлая полоска по поверхности воды (Tube final, 3 px) */
  --tint-sweep: rgba(255,255,255,.6);  /* отблеск, проходящий по полной колбе */
  --tint-state-halo: rgba(21,151,174,.12);  /* значок-состояние: мягкий ореол вокруг диска (v3, 116 из 148) */
  --tint-state-ring: rgba(21,151,174,.2);  /* значок-состояние: тонкое кольцо снаружи (148) */
  --tint-state-halo-warm: rgba(232,88,47,.14);  /* значок-состояние тревоги: ореол */
  --tint-state-ring-warm: rgba(232,88,47,.22);  /* значок-состояние тревоги: кольцо */
  --tint-state-halo-accent: rgba(242,101,46,.12);  /* значок-состояние денег и гарантии: ореол */
  --tint-state-ring-accent: rgba(242,101,46,.2);  /* значок-состояние денег и гарантии: кольцо */
  --tint-full-rim: rgba(53,190,208,.6);  /* стенка полной колбы */
  --tint-groove-shadow: rgba(14,80,98,.16);  /* тень под засечкой линии в колбе */
  --tint-groove: rgba(255,255,255,.9);  /* засечка линии в колбе */
  --tint-range-teal: rgba(110,216,227,.32);  /* полоса прикидки над линией */
  --tint-range-warm: rgba(255,179,138,.42);  /* полоса прикидки под линией */
  --tint-halo: rgba(99,211,223,.45);  /* свечение полной колбы */
  --tint-empty-tube: rgba(255,255,255,.4);  /* пустая колба: ещё не мерили */
  --tint-bar-line: rgba(236,226,214,.9);  /* разделитель внутри стекла */
  --tint-pulse: rgba(225,77,24,.45);  /* v3: кольцо вокруг текущей отметки в начале пульса */
  --tint-pulse-end: rgba(225,77,24,0);  /* v3: кольцо пульса растворилось */
  --tint-rec: rgba(217,54,31,.5);  /* v3: кольцо вокруг точки записи */
  --tint-rec-end: rgba(217,54,31,0);  /* v3: кольцо записи растворилось */
  --tint-scrim: rgba(33,26,21,.28);  /* v3: затемнение под листом и окном подтверждения */
  --tint-shine: rgba(255,255,255,.32);  /* v3: блик, проходящий по оранжевой кнопке */
  --tint-shine-core: rgba(255,248,240,.7);  /* блик главной кнопки: узкое светлое ядро (тёплый белый, складывается со светом кнопки) */
  --tint-shine-edge: rgba(255,248,240,.12);  /* блик главной кнопки: мягкие края ядра */
  --tint-caustic: rgba(255,255,255,.22);  /* v3: блики света в полной колбе */
  --tint-toast-shadow: rgba(33,26,21,.35);  /* v3: тень тоста над страницей */
  --tint-answer-right-dark: rgba(35,175,195,.22);  /* верный вариант на тёмном экране: заливка */
  --tint-answer-right-dark-line: rgba(110,216,227,.55);  /* верный вариант на тёмном экране: кромка */
  --tint-answer-wrong-dark: rgba(232,88,47,.22);  /* неверный вариант на тёмном экране: заливка */
  --tint-answer-wrong-dark-line: rgba(255,150,110,.55);  /* неверный вариант на тёмном экране: кромка */
  --tint-lane-on: rgba(35,175,195,.6);  /* v5 N6: the lane line between cue dots already heard; design v5 (design/brief-v5/design_handoff_prepkoi_v5/README.md, New tokens; source/_v5kit.js) */
  --tint-cue-halo: rgba(35,175,195,.28);  /* v5 N6: halo round the cue dot that is playing */
  --tint-cue-halo-soft: rgba(35,175,195,.16);  /* v5 N6: halo round a paused cue dot */
  --tint-cue-halo-read: rgba(35,175,195,.14);  /* v5 N6: halo round the dot of the reading time before a fragment */
  --tint-cue-heard-rim: rgba(14,106,128,.32);  /* v5 N6: rim of a cue dot already heard */
  --tint-key-rim: rgba(14,106,128,.5);  /* v5 N7: dashed rim of the correct answer when the person chose another (practice, review) */
  --tint-row-dim: rgba(255,255,255,.45);  /* v5 N7: an option dimmed after the verdict */
  --tint-pt-ring-1: rgba(35,175,195,.5);  /* v5 N11: Spreken portrait circle, ring 1 radiating while the person speaks */
  --tint-pt-ring-2: rgba(35,175,195,.35);  /* v5 N11: Spreken portrait circle, ring 2 radiating while the person speaks */
  --tint-pt-ring-3: rgba(35,175,195,.22);  /* v5 N11: Spreken portrait circle, ring 3 radiating while the person speaks */
  --tint-pt-rec-1: rgba(236,74,51,.5);  /* v5 N11: Spreken portrait circle, ring 1 radiating while the candidate records */
  --tint-pt-rec-2: rgba(236,74,51,.35);  /* v5 N11: Spreken portrait circle, ring 2 radiating while the candidate records */
  --tint-pt-rec-3: rgba(236,74,51,.22);  /* v5 N11: Spreken portrait circle, ring 3 radiating while the candidate records */
  --tint-pt-halo: rgba(35,175,195,.14);  /* v5 N11: Spreken portrait circle, halo that swells with the person's speech */
  --tint-pt-rec-halo: rgba(236,74,51,.14);  /* v5 N11: Spreken portrait circle, halo while the candidate records */
  --tint-pt-track: rgba(255,255,255,.55);  /* v5 N11: Spreken portrait circle, seek ring track over the photo edge */
  --tint-amp-glow: rgba(110,216,227,.32);  /* v5 decision 43: the teal glow in a dark dock that follows the playing file's loudness */
  --tint-mic-glow: rgba(255,214,200,.45);  /* v5 decision 43: the warm glow in the recording dock that follows the microphone */
  --tint-viewer: rgba(20,15,12,.92);  /* v5 N10·s7: behind a photo opened full screen (KNM, Spreken), dark so the photo alone reads */
  /* glass — только на перечисленных поверхностях */
  --glass-light: linear-gradient(155deg, rgba(255,255,255,.82), rgba(255,255,255,.5));  /* светлое стекло: карточки, стеклянные кнопки */
  --glass-light-blur: blur(26px) saturate(185%);
  --glass-light-border: rgba(255,255,255,.95);
  --glass-light-shadow: inset 0 1px 0 #FFFFFF, inset 0 -1px 0 rgba(21,151,174,.08), 0 22px 44px -26px rgba(18,110,130,.38);
  --glass-pill: linear-gradient(155deg, rgba(255,255,255,.82), rgba(255,255,255,.5));  /* пилюли и мелкие стеклянные элементы: та же толща, тень короче; тёплая волосяная кайма, чтобы элемент читался и на белой карточке */
  --glass-pill-blur: blur(26px) saturate(185%);
  --glass-pill-border: rgba(33,26,21,.12);
  --glass-pill-shadow: inset 0 1px 0 #FFFFFF, inset 0 -1px 0 rgba(21,151,174,.08), 0 3px 10px -4px rgba(18,110,130,.32);
  --glass-dark: linear-gradient(155deg, rgba(46,37,31,.86), rgba(26,20,16,.78));  /* тёмное стекло: задача вечера, гарантия, плеер */
  --glass-dark-blur: blur(26px) saturate(160%);
  --glass-dark-border: rgba(255,255,255,.14);
  --glass-dark-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 26px 50px -26px rgba(33,26,21,.75);
  --glass-tank: linear-gradient(90deg, rgba(21,151,174,.07), rgba(255,255,255,.78) 38%, rgba(21,151,174,.05));  /* стенка колбы (Tube final) */
  --glass-tank-blur: none;
  --glass-tank-border: rgba(21,151,174,.24);
  --glass-tank-shadow: none;
  --glass-nav: rgba(255,255,255,.72);  /* плавающая панель вкладок и полоса шапки веба */
  --glass-nav-blur: blur(26px) saturate(185%);
  --glass-scrim: rgba(33,26,21,.34);  /* затемнение под шитом оплаты */
  --glass-scrim-blur: blur(7px);
  --glass-lock: rgba(251,246,239,.9);  /* уведомления на локскрине */
  --glass-lock-blur: blur(22px);
  /* пороги доступности — числами, чтобы их можно было прочитать проверкой */
  --a11y-text-contrast-min: 4.5;  /* отношение для текста, сквозь все слои прозрачности */
  --a11y-large-text-contrast-min: 3;  /* для 24px и крупнее или 18.66px жирного */
  --a11y-tap-target-min: 44px;  /* минимальная цель нажатия */
  --a11y-font-size-min: 11px;  /* жёсткий пол размера шрифта */
  --a11y-rtl-line-height-min: 1.5;  /* арабские глифы вылезают из плотной интерлиньяжа */
}
