/* ==========================================================================
   Дневная тема (решение владельца): мел вместо сажи.
   Новых цветов нет — палитра та же: фон и текст меняются местами, линии и подписи
   берут производные «на меле» из tokens.css (--line-on-chalk, --ash-on-chalk).
   Тема — атрибут data-theme на <html>: 'dark' по умолчанию или 'light' (scripts/theme.ts).
   ========================================================================== */

:root {
  color-scheme: dark;
}

:root[data-theme='light'] {
  color-scheme: light;
  --soot: #f4f2ee;    /* фон — мел */
  --chalk: #111111;   /* текст и знак — сажа */
  --graphite: #dcd8d1; /* линии и рамки — --line-on-chalk */
  --ash: #6e6b66;     /* подписи — --ash-on-chalk, контраст AA */
  --orbit-strong: rgba(17, 17, 17, 0.2);
  --orbit: rgba(17, 17, 17, 0.12);
  --orbit-faint: rgba(17, 17, 17, 0.05);
  --header-bg: rgba(244, 242, 238, 0.92);
  --card-shadow: 0 0 20px rgb(17 17 17 / 0.04), 0 0 56px rgb(17 17 17 / 0.07);
}

/* Днём тонкий Tenor Sans рисуется тоньше, чем ночью: тёмный штрих на светлом сглаживание «съедает»,
   по замеру буквы закрашивают на 10–17 % меньше, и заголовки читаются бледно. Волосная обводка своего
   цвета (0,35 px) возвращает плотность ночной темы; начертание и вес шрифта не меняются */
:root[data-theme='light'] :is(h1, h2, h3, .h1, .h2, .h3, .display, .t-display, .t-h2, .menu__label) {
  -webkit-text-stroke: 0.35px currentColor;
}

/* Логотипы: в каждой теме — свой файл владельца (мел на тёмной, сажа на светлой) */
:root:not([data-theme='light']) .logo--for-light,
:root[data-theme='light'] .logo--for-dark {
  display: none !important;
}

/* Смена темы — цвета разом: без переходов цвета у ссылок, кнопок, карточек и полей.
   Иначе десятки элементов перекрашиваются по кадрам без видеоускорения — телефон дёргается.
   Тумблер не трогаем: его ручка в это время едет */
:root.theme-instant *:not(.theme-toggle, .theme-toggle *),
:root.theme-instant *::before,
:root.theme-instant *::after {
  transition: none !important;
}

/* Смена темы: старый снимок стоит, новый проявляется кругом или прозрачностью (scripts/theme.ts).
   Снимаем стандартный переход Astro — у <html> своё имя снимка, поэтому (*), а не (root);
   правила Astro лежат в @layer astro, эти — вне слоя и сильнее */
:root.theme-switching::view-transition-group(*),
:root.theme-switching::view-transition-old(*),
:root.theme-switching::view-transition-new(*) {
  animation: none;
  mix-blend-mode: normal;
}

/* Слой снимков не забирает касания: тумблер можно нажать ещё раз, пока круг растёт */
:root.theme-switching::view-transition {
  pointer-events: none;
}
