/* site_kit/scenes/_kit/tokens.css — токены единого семейства сцен «Антенка AI News» (набор стилей сцен,
   24.09.2026; каталог стилей и правила — docs/news-page.md, раздел «Сцены»).
   Всё — ВНУТРИ .nx-scene: глобальных переменных нет. Значения — с портала (site_kit/antenka/news.css, полоса
   плеера, карточки, плашки), размеры — в единицах контейнера (cqw: 1cqw = 1 % ширины сцены), поэтому сцена
   одинакова в ряду 880 px, в ролике 1600–3400 px и на телефоне 390 px.
   Две темы: «бумага» (по умолчанию) и «чернила» — .nx-scene[data-scene-theme="ink"] (или тот же атрибут на
   внутренней .nxs-stage, если корень строит ядро без атрибута). Пересчёт px → cqw: px / 8.8 (сцена 880 px).

   Глобальны только регистрации @property (так устроен CSS): имена с префиксом --nxs-, наследование выключено,
   никто, кроме сцен, их не использует. */

@property --nxs-cx { syntax: '<number>'; inherits: false; initial-value: 50; }
@property --nxs-cy { syntax: '<number>'; inherits: false; initial-value: 31.25; }
@property --nxs-cz { syntax: '<number>'; inherits: false; initial-value: 1; }
@property --nxs-n  { syntax: '<integer>'; inherits: false; initial-value: 0; }   /* счётчик: всё число в младших разрядах */
@property --nxs-ci { syntax: '<integer>'; inherits: false; initial-value: 0; }   /* целая часть */
@property --nxs-cf { syntax: '<integer>'; inherits: false; initial-value: 0; }   /* дробная часть */
@property --nxs-ch { syntax: '<integer>'; inherits: false; initial-value: 0; }   /* сотые доли (3 знака) */
@property --nxs-cr { syntax: '<integer>'; inherits: false; initial-value: 0; }   /* остаток (3 знака) */
@property --nxs-p  { syntax: '<number>'; inherits: false; initial-value: 1; }

/* ───────── тема «бумага» (по умолчанию) ───────── */
.nx-scene {
  /* поверхности */
  --nxs-bg: #f4f3f0;            /* бумага — фон сцены (как фон ядра и секции .nx-alt) */
  --nxs-page: #fafafa;          /* фон страницы выпуска */
  --nxs-surface: #ffffff;       /* карточки, окна, плитки */
  --nxs-chrome: #efedea;        /* служебные полосы: шапка окна браузера, заголовки таблиц */
  --nxs-line: #e8e6e2;          /* линии и рамки */
  --nxs-line-2: #d5d3ce;        /* линии сильнее: оси, нейтральные столбцы */
  /* текст */
  --nxs-ink: #1d1d1b;           /* основной */
  --nxs-ink-2: #55534d;         /* вторичный */
  --nxs-ink-3: #7a7a74;         /* приглушённый: @ник · дата, метрики, оригинал под переводом */
  --nxs-ink-4: #a3a19a;         /* кикеры и метки (моно, капс) */
  /* акцент портала — слой Антенки: перевод, номера, «текущий» элемент, ключевой столбец */
  --nxs-accent: #1e6e52;
  --nxs-accent-2: #14503b;
  --nxs-accent-bg: #eef4f0;
  --nxs-accent-line: #d8e5dc;
  --nxs-accent-ink: #3f5a4c;
  --nxs-on-accent: #ffffff;
  --nxs-mint: #b9e0c6;          /* мятный — акцент полосы плеера и тёмной темы */
  /* маркер — «вот это в источнике»: один цвет во всех сценах и в снимках news_scene.py (--marker #ffe45c) */
  --nxs-marker: #ffe45c;
  --nxs-marker-ink: #1d1d1b;    /* текст над маркером — всегда тёмный, в обеих темах */
  /* заметка на полях (жёлтая плашка портала) и предупреждение (красное) */
  --nxs-note-bg: #fff7cc; --nxs-note-line: #e6d98a; --nxs-note-ink: #3a3320;
  --nxs-warn: #a8443a; --nxs-warn-bg: #fbeeec; --nxs-warn-line: #ecd4d0; --nxs-warn-ink: #74473f;
  /* эфирная / субтитровая плашка — как полоса плеера: чернила + белый + мятный */
  --nxs-strip: #1d1d1b; --nxs-strip-ink: #ffffff; --nxs-strip-ink-2: #a3a19a; --nxs-strip-accent: #b9e0c6;
  --nxs-scrim: rgba(29, 29, 27, .56);   /* затемнение вокруг фокуса */
  --nxs-dim: .32;                       /* непрозрачность «не в фокусе» (соседние ответы, строки) */

  /* типографика: Golos Text — всё, IBM Plex Mono — метки, домены, метрики, время */
  --nxs-font: 'Golos Text', Arial, sans-serif;
  --nxs-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --nxs-fs-kicker: 1.36cqw;   /* 12 px в 880 — моно капс .08em, как .nx-kicker */
  --nxs-fs-meta: 1.65cqw;     /* 14.5 px — @ник · дата, подписи, плашка источника (как .nx-caption) */
  --nxs-fs-body: 2.05cqw;     /* 18 px — текст поста, перевод (страница: 19 px) */
  --nxs-fs-lead: 2.5cqw;      /* 22 px — текст в фокусе, строка субтитра */
  --nxs-fs-title: 3.64cqw;    /* 32 px — заголовок внутри сцены (как .nx-h2) */
  --nxs-fs-num: 6.4cqw;       /* 56 px — цифра в карточке (как .nx-h1) */
  --nxs-fs-hero: 10cqw;       /* 88 px — кинетическая типографика */
  --nxs-fs-giant: 16cqw;      /* 141 px — одна цифра на весь кадр */
  --nxs-lh: 1.45; --nxs-lh-tight: 1.15; --nxs-lh-display: 1.02;
  --nxs-ls-kicker: .08em; --nxs-ls-display: -.02em; --nxs-ls-title: -.01em;

  /* форма */
  --nxs-hair: max(1px, .114cqw);      /* 1 px в 880, 2 px в ролике */
  --nxs-rule: max(2px, .34cqw);       /* 3 px — левая линейка «текущего» элемента и перевода */
  --nxs-r-xs: .68cqw;                 /* 6 px — метки .nx-fkind */
  --nxs-r-sm: .91cqw;                 /* 8 px — чипы, ячейки, плашка источника */
  --nxs-r: 1.36cqw;                   /* 12 px — рамки, карточки, окна (как у скриншотов) */
  --nxs-r-lg: 1.82cqw;                /* 16 px — крупные карточки (как плеер) */
  --nxs-r-pill: 99cqw;
  --nxs-shadow-sm: 0 .23cqw .9cqw rgba(0, 0, 0, .08);
  --nxs-shadow: 0 1.36cqw 3.64cqw rgba(0, 0, 0, .12);   /* 0 12px 32px — тень рамок портала */
  --nxs-shadow-lg: 0 2cqw 5cqw rgba(0, 0, 0, .16);

  /* отступы: шаг 4 px */
  --nxs-sp-1: .45cqw; --nxs-sp-2: .91cqw; --nxs-sp-3: 1.36cqw; --nxs-sp-4: 1.82cqw;
  --nxs-sp-5: 2.27cqw; --nxs-sp-6: 2.73cqw; --nxs-sp-8: 3.64cqw;
  --nxs-safe: 3.64cqw;                /* поле кадра: 32 px в 880 */
  --nxs-replay-zone: 7cqw;            /* левый нижний угол — кнопка ядра «проиграть ещё»: важное туда не ставить */

  /* движение: две кривые, стандартные длительности */
  --nxs-ease: cubic-bezier(.2, .8, .2, 1);        /* появления: чипы, карточки, перевод (как полоса плеера) */
  --nxs-ease-io: cubic-bezier(.65, 0, .35, 1);    /* перемещения: камера, протяжка маркера, столбцы */
  --nxs-t-fast: .3s;      /* гашение соседей, смена цвета */
  --nxs-t-in: .6s;        /* появление карточки, чипа, строки перевода */
  --nxs-t-mark: .5s;      /* маркер — на одну строку текста */
  --nxs-t-word: .07s;     /* шаг «слово за словом» */
  --nxs-t-count: 1.2s;    /* счётчик */
  --nxs-t-cam: 1.4s;      /* наезд / переезд камеры */
  --nxs-t-hold: 1.2s;     /* минимальная пауза на ключевом моменте */
}

/* ───────── тема «чернила»: одна тёмная тема для всех тёмных сцен (как полоса плеера и видеобокс) ───────── */
.nx-scene[data-scene-theme="ink"], .nx-scene [data-scene-theme="ink"] {
  --nxs-bg: #17181a;            /* видеобокс .nx-vbox */
  --nxs-page: #17181a;
  --nxs-surface: #232321;
  --nxs-chrome: #2b2b29;
  --nxs-line: #353532;
  --nxs-line-2: #4a4a46;
  --nxs-ink: #f4f3f0;           /* бумажный текст */
  --nxs-ink-2: #cdccc4;
  --nxs-ink-3: #a3a19a;
  --nxs-ink-4: #8a8983;
  --nxs-accent: #b9e0c6;        /* мятный — как кнопка и прогресс полосы плеера */
  --nxs-accent-2: #cdead6;
  --nxs-accent-bg: rgba(185, 224, 198, .12);
  --nxs-accent-line: rgba(185, 224, 198, .38);
  --nxs-accent-ink: #b9e0c6;
  --nxs-on-accent: #1d1d1b;
  --nxs-note-bg: #3a3320; --nxs-note-line: #5c5230; --nxs-note-ink: #fff7cc;
  --nxs-warn: #ff9b8f; --nxs-warn-bg: rgba(168, 68, 58, .22); --nxs-warn-line: rgba(255, 155, 143, .4); --nxs-warn-ink: #ffd9d3;
  --nxs-strip: #0f0f0e; --nxs-strip-ink: #f4f3f0; --nxs-strip-ink-2: #a3a19a; --nxs-strip-accent: #b9e0c6;
  --nxs-scrim: rgba(0, 0, 0, .6);
  --nxs-dim: .3;
  --nxs-shadow-sm: 0 .23cqw .9cqw rgba(0, 0, 0, .35);
  --nxs-shadow: 0 1.36cqw 3.64cqw rgba(0, 0, 0, .45);
  --nxs-shadow-lg: 0 2cqw 5cqw rgba(0, 0, 0, .55);
}
.nx-scene[data-scene-theme="ink"] { background: #17181a; }
