/*
 * Бинарность — дизайн-токены: шрифты, цвета, размеры.
 * Палитра в oklch; светлая и тёмная темы — через data-theme на <html>.
 * Класс .night включает тёмные токены для отдельной секции в светлой теме,
 * поэтому любой компонент внутри тёмного блока перекрашивается сам.
 */

/* ---------- Шрифты (self-hosted, OFL): Onest — текст и заголовки, JetBrains Mono — технические метки ---------- */
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest-cyrillic-omZrnh8.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest-cyrillic-ext-vxgYWTN.woff2") format("woff2");
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest-latin-OX8m3S5.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest-latin-ext-ZRW3gWu.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Onest"; font-style: normal; font-weight: 100 900; font-display: swap;
  src: url("../fonts/onest-symbols-9-rKhvC.woff2") format("woff2");
  unicode-range: U+2190, U+2192, U+2194-2199, U+2713, U+2717, U+25A0-25FF; }

@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 100 800; font-display: swap;
  src: url("../fonts/jetbrains-mono-cyrillic-NgJXiL4.woff2") format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 100 800; font-display: swap;
  src: url("../fonts/jetbrains-mono-latin-qI6BF9f.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 100 800; font-display: swap;
  src: url("../fonts/jetbrains-mono-latin-ext-5t87yUl.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  color-scheme: light;

  /* шрифты */
  --font-sans: "Onest", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  /* поверхности */
  --bg: oklch(0.985 0.004 262);
  --surface: oklch(1 0 0);
  --surface-2: oklch(0.972 0.007 262);
  --surface-3: oklch(0.948 0.012 262);

  /* текст */
  --ink: oklch(0.2 0.035 266);
  --ink-2: oklch(0.41 0.028 264);
  --ink-3: oklch(0.55 0.022 264);

  /* линии */
  --line: oklch(0.922 0.01 264);
  --line-2: oklch(0.862 0.015 264);

  /* фирменный синий */
  --accent: oklch(0.55 0.21 262);
  --accent-hover: oklch(0.49 0.21 262);
  --accent-text: oklch(0.47 0.2 262);
  --accent-soft: oklch(0.962 0.028 262);
  --accent-line: oklch(0.86 0.07 262);
  --on-accent: #fff;

  /* сигнальные */
  --ok: oklch(0.66 0.16 152);
  --ok-text: oklch(0.44 0.12 152);
  --ok-soft: oklch(0.955 0.045 152);
  --warn: oklch(0.78 0.15 75);
  --warn-text: oklch(0.48 0.11 62);
  --warn-soft: oklch(0.965 0.05 85);
  --danger: oklch(0.6 0.21 25);
  --danger-text: oklch(0.5 0.19 25);
  --danger-soft: oklch(0.965 0.025 25);

  /* тёмные «экраны» (hero, окна, подвал) — одинаковы в обеих темах */
  --night: oklch(0.165 0.032 268);
  --night-2: oklch(0.205 0.036 268);
  --night-3: oklch(0.255 0.04 268);
  --glow: oklch(0.64 0.2 262);
  --cyan: oklch(0.82 0.13 205);

  /* радиусы */
  --r-xs: 6px;
  --r-sm: 10px;
  --r: 14px;
  --r-lg: 20px;
  --r-xl: 28px;

  /* тени */
  --shadow-sm: 0 1px 2px oklch(0.3 0.05 264 / .06), 0 2px 8px oklch(0.3 0.05 264 / .04);
  --shadow: 0 2px 4px oklch(0.3 0.05 264 / .05), 0 16px 40px -8px oklch(0.3 0.08 264 / .14);
  --shadow-lg: 0 4px 8px oklch(0.3 0.05 264 / .05), 0 32px 72px -16px oklch(0.3 0.1 264 / .22);
  --shadow-accent: 0 10px 28px -10px oklch(0.55 0.21 262 / .6);

  /* сетка */
  --container: 1240px;
  --gutter: clamp(20px, 4vw, 40px);
  --section-y: clamp(64px, 8.5vw, 124px);
  --header-h: 68px;

  --ease: cubic-bezier(.2, .7, .2, 1);
}

/* Тёмная тема и тёмные секции делят один набор токенов. */
html[data-theme="dark"],
.night {
  color-scheme: dark;

  --bg: var(--night);
  --surface: oklch(0.215 0.036 268);
  --surface-2: oklch(0.245 0.038 268);
  --surface-3: oklch(0.29 0.04 268);

  --ink: oklch(0.965 0.007 264);
  --ink-2: oklch(0.79 0.02 264);
  --ink-3: oklch(0.63 0.025 264);

  --line: oklch(1 0 0 / .09);
  --line-2: oklch(1 0 0 / .17);

  --accent: oklch(0.58 0.21 262);
  --accent-hover: oklch(0.64 0.2 262);
  --accent-text: oklch(0.77 0.13 258);
  --accent-soft: oklch(0.58 0.21 262 / .16);
  --accent-line: oklch(0.58 0.21 262 / .45);

  --ok: oklch(0.76 0.17 152);
  --ok-text: oklch(0.82 0.15 152);
  --ok-soft: oklch(0.76 0.17 152 / .14);
  --warn-text: oklch(0.85 0.13 80);
  --warn-soft: oklch(0.78 0.15 75 / .15);
  --danger-text: oklch(0.78 0.15 25);
  --danger-soft: oklch(0.6 0.21 25 / .16);

  --shadow-sm: 0 1px 2px oklch(0 0 0 / .3), 0 2px 8px oklch(0 0 0 / .2);
  --shadow: 0 2px 4px oklch(0 0 0 / .25), 0 18px 44px -10px oklch(0 0 0 / .55);
  --shadow-lg: 0 4px 10px oklch(0 0 0 / .3), 0 36px 80px -18px oklch(0 0 0 / .7);
}

/* В тёмной теме «экраны» уходят чуть глубже фона страницы, чтобы секции читались. */
html[data-theme="dark"] {
  --night: oklch(0.15 0.03 268);
}
html[data-theme="dark"] .night {
  --bg: oklch(0.125 0.028 268);
}
