/* Собрано tools/build_tokens.py из design/tokens.json. Не редактировать руками. */
:root {
  --snow: #eef2f7;
  --snow-raised: #fbfcfe;
  --snow-sunken: #e7ecf3;
  --line: #d6deea;
  --line-strong: #748aa8;
  --night: #0e1a2b;
  --night-muted: #495a72;
  --night-faint: #7b89a0;
  --current: var(--night);
  --current-edge: var(--night);
  --on-current: var(--snow);
  --aurora: #0b7a57;
  --aurora-strong: #086044;
  --aurora-on-current: #7ae6bf;
  --aurora-soft: #dcf4ea;
  --on-aurora: #ffffff;
  --cta: var(--night);
  --on-cta: var(--snow);
  --board: #0e1a2b;
  --on-board: #eef3fa;
  --board-muted: #a6b4ca;
  --board-line: var(--board);
  --dawn: #a94f0c;
  --dawn-soft: #fdeedc;
  --on-dawn: #ffffff;
  --danger: #c2362b;
  --danger-soft: #fdeae7;
  --on-danger: #ffffff;
  --ok: var(--piste-green);
  --ok-soft: #e6f4e8;
  --warn: var(--dawn);
  --warn-soft: var(--dawn-soft);
  --link: var(--night);
  --piste-green: #277d36;
  --piste-blue: #1f5fcf;
  --piste-red: #d12b2b;
  --piste-black: #0e1a2b;
  --piste-black-edge: var(--piste-black);
  --on-piste: #ffffff;
  --on-piste-black: #ffffff;
  --focus: #1f5fcf;
  --photo-edge: rgba(14, 26, 43, 0.14);
  --ridge: #8494ad;
  --scrim: rgba(14, 26, 43, 0.64);
  --shadow-float: 0 8px 24px rgba(14, 26, 43, 0.12);
  --shadow-bar: 0 -4px 16px rgba(14, 26, 43, 0.08);
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --gutter: 16px;
  --gutter-lg: 32px;
  --radius-xs: 4px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 20px;
  --radius-pill: 999px;
  --container-max: 1200px;
  --content-max: 680px;
  --card-min: 280px;
  --touch-min: 44px;
  --plate-h: 24px;
  --header-h: 64px;
  --ctabar-h: 72px;
  --tabbar-h: 56px;
  --ratio-card: 4 / 5;
  --ratio-hero: 16 / 9;
  --article-col: 720px;
  --toc-w: 260px;
  --font-display: "Geologica", "Golos Text", system-ui, sans-serif;
  --font-sans: "Golos Text", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: ui-monospace, "JetBrains Mono", "SF Mono", Menlo, monospace;
  --type-display-size: clamp(40px, 6vw, 64px); --type-display-lh: 1;
  --type-display-ls: -0.03em;
  --type-display: 700 var(--type-display-size)/var(--type-display-lh) var(--font-display);
  --type-h1-size: 32px; --type-h1-lh: 38px;
  --type-h1-ls: -0.015em;
  --type-h1: 700 var(--type-h1-size)/var(--type-h1-lh) var(--font-display);
  --type-h2-size: 22px; --type-h2-lh: 28px;
  --type-h2-ls: -0.01em;
  --type-h2: 700 var(--type-h2-size)/var(--type-h2-lh) var(--font-display);
  --type-h3-size: 22px; --type-h3-lh: 28px;
  --type-h3-ls: -0.01em;
  --type-h3: 600 var(--type-h3-size)/var(--type-h3-lh) var(--font-display);
  --type-h4-size: 17px; --type-h4-lh: 24px;
  --type-h4: 600 var(--type-h4-size)/var(--type-h4-lh) var(--font-display);
  --type-price-lg-size: 32px; --type-price-lg-lh: 38px;
  --type-price-lg-ls: -0.01em;
  --type-price-lg: 600 var(--type-price-lg-size)/var(--type-price-lg-lh) var(--font-display);
  --type-num-size: 14px; --type-num-lh: 20px;
  --type-num: 600 var(--type-num-size)/var(--type-num-lh) var(--font-display);
  --type-article-size: 17px; --type-article-lh: 28px;
  --type-article: 400 var(--type-article-size)/var(--type-article-lh) var(--font-sans);
  --type-lede-size: 17px; --type-lede-lh: 26px;
  --type-lede: 400 var(--type-lede-size)/var(--type-lede-lh) var(--font-sans);
  --type-body-size: 17px; --type-body-lh: 26px;
  --type-body: 400 var(--type-body-size)/var(--type-body-lh) var(--font-sans);
  --type-body-strong-size: 17px; --type-body-strong-lh: 26px;
  --type-body-strong: 600 var(--type-body-strong-size)/var(--type-body-strong-lh) var(--font-sans);
  --type-button-size: 15px; --type-button-lh: 20px;
  --type-button: 600 var(--type-button-size)/var(--type-button-lh) var(--font-sans);
  --type-note-size: 14px; --type-note-lh: 20px;
  --type-note: 400 var(--type-note-size)/var(--type-note-lh) var(--font-sans);
  --type-tab-size: 14px; --type-tab-lh: 16px;
  --type-tab-ls: -0.01em;
  --type-tab: 600 var(--type-tab-size)/var(--type-tab-lh) var(--font-sans);
  --type-code-size: 14px; --type-code-lh: 20px;
  --type-code: 400 var(--type-code-size)/var(--type-code-lh) var(--font-mono);
  color-scheme: light;
}
@media (max-width: 639px) {
  :root {
    --header-h: 52px;
    --type-h1-size: 28px; --type-h1-lh: 34px;
    --type-price-lg-size: 28px; --type-price-lg-lh: 34px;
  }
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --snow: #0d0b23;
    --snow-raised: #1e1b3c;
    --snow-sunken: #15132e;
    --line: #322f53;
    --line-strong: #777da4;
    --night: #eef0f8;
    --night-muted: #b5b9d1;
    --night-faint: #747892;
    --current: #3b3768;
    --current-edge: #cecbf2;
    --on-current: var(--night);
    --aurora: #70ec90;
    --aurora-strong: #a6fcbd;
    --aurora-on-current: var(--aurora);
    --aurora-soft: #0c3722;
    --on-aurora: #032110;
    --cta: var(--aurora-soft);
    --on-cta: var(--night);
    --board: #050414;
    --on-board: #eef3fa;
    --board-muted: #a6b4ca;
    --board-line: var(--line);
    --dawn: #f2a657;
    --dawn-soft: #3b2510;
    --on-dawn: #231200;
    --danger: #ff7d74;
    --danger-soft: #3f1613;
    --on-danger: #2a0806;
    --ok: #9cd5a3;
    --ok-soft: #163318;
    --warn: var(--dawn);
    --warn-soft: var(--dawn-soft);
    --link: var(--night);
    --piste-green: #5fd36f;
    --piste-blue: #7aa9ff;
    --piste-red: #ff6b6b;
    --piste-black: #040511;
    --piste-black-edge: var(--line-strong);
    --on-piste: var(--snow);
    --on-piste-black: var(--night);
    --focus: #8db4ff;
    --photo-edge: rgba(238, 240, 248, 0.1);
    --ridge: #5c6188;
    --scrim: rgba(4, 4, 19, 0.72);
    --shadow-float: 0 8px 24px rgba(0, 0, 0, 0.55);
    --shadow-bar: 0 -4px 16px rgba(0, 0, 0, 0.55);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --snow: #0d0b23;
  --snow-raised: #1e1b3c;
  --snow-sunken: #15132e;
  --line: #322f53;
  --line-strong: #777da4;
  --night: #eef0f8;
  --night-muted: #b5b9d1;
  --night-faint: #747892;
  --current: #3b3768;
  --current-edge: #cecbf2;
  --on-current: var(--night);
  --aurora: #70ec90;
  --aurora-strong: #a6fcbd;
  --aurora-on-current: var(--aurora);
  --aurora-soft: #0c3722;
  --on-aurora: #032110;
  --cta: var(--aurora-soft);
  --on-cta: var(--night);
  --board: #050414;
  --on-board: #eef3fa;
  --board-muted: #a6b4ca;
  --board-line: var(--line);
  --dawn: #f2a657;
  --dawn-soft: #3b2510;
  --on-dawn: #231200;
  --danger: #ff7d74;
  --danger-soft: #3f1613;
  --on-danger: #2a0806;
  --ok: #9cd5a3;
  --ok-soft: #163318;
  --warn: var(--dawn);
  --warn-soft: var(--dawn-soft);
  --link: var(--night);
  --piste-green: #5fd36f;
  --piste-blue: #7aa9ff;
  --piste-red: #ff6b6b;
  --piste-black: #040511;
  --piste-black-edge: var(--line-strong);
  --on-piste: var(--snow);
  --on-piste-black: var(--night);
  --focus: #8db4ff;
  --photo-edge: rgba(238, 240, 248, 0.1);
  --ridge: #5c6188;
  --scrim: rgba(4, 4, 19, 0.72);
  --shadow-float: 0 8px 24px rgba(0, 0, 0, 0.55);
  --shadow-bar: 0 -4px 16px rgba(0, 0, 0, 0.55);
  color-scheme: dark;
}
.t-display { font: var(--type-display); letter-spacing: var(--type-display-ls); }
.t-h1 { font: var(--type-h1); letter-spacing: var(--type-h1-ls); }
.t-h2 { font: var(--type-h2); letter-spacing: var(--type-h2-ls); }
.t-h3 { font: var(--type-h3); letter-spacing: var(--type-h3-ls); }
.t-h4 { font: var(--type-h4); }
.t-price-lg { font: var(--type-price-lg); letter-spacing: var(--type-price-lg-ls); }
.t-num { font: var(--type-num); }
.t-article { font: var(--type-article); }
.t-lede { font: var(--type-lede); }
.t-body { font: var(--type-body); }
.t-body-strong { font: var(--type-body-strong); }
.t-button { font: var(--type-button); }
.t-note { font: var(--type-note); }
.t-tab { font: var(--type-tab); letter-spacing: var(--type-tab-ls); }
.t-code { font: var(--type-code); }
