/* Design tokens. Every colour here is redefined in night-vision.css — keep names
   semantic (surface/line/text) rather than literal so the night mode can remap them.
   2026-09-12: repalette to match project-chimera.ru's return to its black-emerald
   colours (see 10-assets/REDESIGN-BRIEF-emerald.md) — same token names/structure
   as the 2026-09-06 campfire repalette, emerald/gold values instead of warm
   ember/gold, so the rest of the CSS (base/layout/typography/components/
   site-chrome/astronomy) needed no changes beyond this file + one literal hex
   in base.css's body background. `--azure*` names are historical (pre-campfire
   cold palette) — kept as-is on purpose, only values change. */

:root {
  /* 2026-09-13, финальная редакция: обсерватория приведена к системе
     сайта целиком, а не только по ступеням текста. Акцент — латунь,
     как на главной; изумруд (--signal-good) остаётся ровно там, где
     означает «работает сейчас». Подложка снова с градиентом: это
     требование чеклиста владельца, а не украшение. Вес текста берётся
     вариативный — на тёмном фоне светлые буквы оптически тоньше. */
  --w-body:  420;
  --w-label: 520;
  --w-data:  450;

/* 2026-09-13, редизайн: половина правок 007–011 существовала, чтобы
   компенсировать фотографию под текстом — глубокий скрим, поднятые
   ступени текста, градиент в панелях. Фотографии больше нет: фон
   рисуется процедурно и ровен (L 0.0046, размах внутри строки 0.0003).
   Поэтому ступени вернулись к значениям системы (10-assets/
   redesign-2026-09/css/tokens.css), панель стала плоской, а радиусы —
   одним значением 2px на весь сайт. Контраст самого тихого уровня
   #7e968e на новом фоне — 6.08:1 при норме 4.5. */

  /* --- Ground: near-black with a green cast, never warm --- */
  --ink-900: #060d0b;
  --ink-850: #0b1512;
  --ink-800: #0e1a16;
  --ink-750: #101f1b;
  --ink-700: #142722;
  --ink-600: #17302a;

  /* --- Text: cool paper, softer than the emerald accent.
         Every step clears WCAG AA (4.5:1) against the darkest surface, so the
         small mono labels are readable and not just decorative. --- */
  --paper:      #f2eee4;
  /* 2026-09-12, инкремент 008: тот же токен на WordPress-стороне (muted
     в theme.json) поднят в инкременте 007 — там это цвет ОСНОВНОГО текста
     (лид, карточки), а не подписей, и он читался как приглушённо-серый.
     Красит не только текст: освещённую часть лунного диска (.moon-disc
     .disc-lit) и значения в spec-list тоже — дизайн-сессия просила
     свериться глазами на "Небо в фокусе", не стало ли слишком светло. */
  --paper-dim:  #ddd8cb;
  /* 2026-09-12, инкремент 009: --fog-deep был на 38% темнее порога
     чеклиста владельца (мелкий текст не тусклее --faint темы WordPress,
     #7e968e, L 0.282) — использовался 51 раз (подписи, spec-list dt,
     футер, метки в астроблоках). Обе ступени подняты, нижняя ложится
     точно на порог; иерархия из двух ступеней сохранена.
     2026-09-13, инкремент 010 (доп. ревью): порог сам поднялся — фон
     сменился на искры (светлее тумана местами), и на мобильном вьюпорте
     нашёлся честный худший случай (подпись у верхней кромки экрана,
     где скрим слабее всего даже после усиления в 010): #7e968e там давал
     3.70:1, ниже нормы. Тот же принцип, что и в 009 — фон изменился,
     порог пересчитан, не подобран на глаз. Синхронно с faint/dim в
     палитре темы WordPress. */
  --fog:        #bdb8a9;
  --fog-deep:   #8c8a7c;

  /* --- Accent: one emerald green. Data, links, focus, selection. Nothing else. --- */
  --azure:        #c9a227;
  --azure-bright: #dcb43a;
  --azure-deep:   #6b5316;

  /* --- Semantic status. Used only where a value carries a judgement. --- */
  --signal-good:  #35d49d;
  --signal-fair:  #d9b44a;
  --signal-poor:  #b8433a;

  /* --- Surfaces & lines --- */
  /* 2026-09-12, дизайн-ревью (инкремент 001): было плоской заливкой —
     единая точка правки на все панели/карточки сайта (десятки мест
     ссылаются на --surface в background:), поэтому вместо правки
     каждого файла меняем сам токен на градиент. Значения — те же, что
     в .panel темы WordPress, для единообразия между WP и обсерваторией.
     Три места (astronomy.css, components.css, pages/article.css), где
     --surface уже был ОДНИМ из стопов ВНУТРИ другого gradient() —
     градиент внутри стопа невалиден, там заменено на var(--ink-850)
     (тот же плоский цвет, которым --surface был раньше). */
  /* 2026-09-12, инкремент 008: тот же токен на стороне WordPress
     (.panel/.has-panel-background-color) поднят в 007 — панель едва
     отличалась от фона (L 0.019 против 0.012 у фона, разница глазом не
     видна). Насыщенность и альфа стопов подняты так же, здесь тоже. */
  --surface:        linear-gradient(158deg, rgba(42,78,68,.40) 0%, rgba(20,40,34,.30) 52%, rgba(10,20,17,.44) 100%);
  --surface-raised: var(--ink-800);
  --surface-sunken: #030a08;
  --line:           #1e2a26;
  --line-strong:    #1f4238;
  --line-hair:      #141d1a;

  /* --- Type --- */
  --font-display: "Cormorant SC", "Cormorant", Georgia, serif;
  --font-ui: "Golos Text", -apple-system, "Segoe UI", "Helvetica Neue", sans-serif;
  /* 2026-09-13. Токен назывался mono, а указывал на Golos Text —
     то есть все данные обсерватории (координаты, времена, проценты,
     звёздные величины) набирались обычным шрифтом. Настоящий
     моноширинный с табличными цифрами — то, ради чего этот токен и
     заводился: цифры в столбцах встают друг под друга, а показания
     читаются как приборные, а не как проза. */
  --font-mono: "JetBrains Mono", ui-monospace, monospace;

  --step--2: 0.6875rem;
  --step--1: 0.8125rem;
  --step-0:  0.9375rem;
  --step-1:  1.0625rem;
  --step-2:  clamp(1.25rem, 0.4vw + 1.15rem, 1.4375rem);
  --step-3:  clamp(1.5rem, 1vw + 1.25rem, 2rem);
  --step-4:  clamp(1.875rem, 2vw + 1.375rem, 2.875rem);
  --step-5:  clamp(2.5rem, 4vw + 1.5rem, 4.5rem);
  --step-6:  clamp(3rem, 7vw + 1.25rem, 7rem);

  --leading-tight: 1.08;
  --leading-snug: 1.28;
  --leading-body: 1.62;

  /* Cyrillic caps need looser tracking than Latin at small sizes */
  --track-label: 0.14em;
  --track-caps: 0.08em;

  /* --- Space: 4px base, named by role rather than t-shirt size --- */
  --space-2xs: 0.25rem;
  --space-xs:  0.5rem;
  --space-sm:  0.75rem;
  --space-md:  1.25rem;
  --space-lg:  2rem;
  --space-xl:  2.75rem;
  --space-2xl: 4rem;
  --space-3xl: 6rem;

  /* --- Measure & gutters --- */
  --measure: 68ch;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --page-max: 1500px;
  --editorial-max: 1280px;

  /* --- Radii: deliberately varied. Photos get none. --- */
  --radius-control: 2px;
  --radius-panel: 2px;
  --radius-pill: 2px;

  --border: 1px solid var(--line);
  --border-strong: 1px solid var(--line-strong);

  --ease-out: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur-fast: 120ms;
  --dur: 220ms;
  --dur-slow: 480ms;

  --header-h: 64px;
  color-scheme: dark;
}

@media (min-width: 60rem) {
  :root { --header-h: 72px; }
}

/* Табличные цифры везде, где моноширинный означает данные. */
[class*="spec"] dd, [class*="value"], [class*="num"],
.sky-value, .moon-value, .metric, time, output {
  font-variant-numeric: tabular-nums;
}
