/* ads.cab - публичный сайт. Канон: docs/DESIGN.md (токены --cb-*, тёмная по умолчанию, светлая -
   по переключателю или системной настройке; секции главной чередуют «ночь» и «день» принудительно). */

/* ---------- шрифты (свои файлы, без CDN) ---------- */
@font-face { font-family: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(/static/fonts/archivo-latin.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: "Archivo"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(/static/fonts/archivo-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, 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: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(/static/fonts/inter-latin.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: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(/static/fonts/inter-latin-ext.woff2) format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, 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: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(/static/fonts/inter-cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900;
  src: url(/static/fonts/inter-cyrillic-ext.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: "JetBrains Mono"; font-style: normal; font-display: swap; font-weight: 100 800;
  src: url(/static/fonts/jetbrains-mono-latin.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-display: swap; font-weight: 100 800;
  src: url(/static/fonts/jetbrains-mono-cyrillic.woff2) format("woff2");
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }

/* ---------- токены: тёмная (по умолчанию) ---------- */
:root, :root[data-theme="dark"], .cb-night {
  color-scheme: dark;
  --cb-bg: #0C0E12; --cb-panel: #141821; --cb-sunken: #090B0F; --cb-raised: #1B2029;
  --cb-glass: rgb(20 24 33 / .72);
  --cb-line: #242A35; --cb-line-strong: #323A48;
  --cb-ink: #F2F4F7; --cb-ink-2: #A9B1BF; --cb-ink-3: #6B7483;
  --cb-signal: #FFC933; --cb-on-signal: #15120A; --cb-signal-soft: #3A2F0C; --cb-signal-ink: #FFC933;
  --cb-signal-glow: 0 0 0 4px rgb(255 201 51 / .18);
  --cb-sky: #4FA8FF; --cb-sky-soft: #0F2440;
  --cb-amber: #FF8C42; --cb-amber-soft: #3A1F0E;
  --cb-coral: #FF5C5C; --cb-coral-soft: #3A1212;
  --cb-slate: #8A94A6;
  --cb-shadow: inset 0 1px 0 rgb(255 255 255 / .04), 0 12px 32px -16px rgb(0 0 0 / .6);
  --cb-shadow-deep: 0 48px 96px -48px rgb(0 0 0 / .85);
}
/* ---------- токены: светлая ---------- */
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    color-scheme: light;
    --cb-bg: #F4F5F7; --cb-panel: #FFFFFF; --cb-sunken: #ECEEF2; --cb-raised: #FFFFFF;
    --cb-glass: rgb(255 255 255 / .72);
    --cb-line: #E2E5EA; --cb-line-strong: #CBD0D8;
    --cb-ink: #12151A; --cb-ink-2: #4C5563; --cb-ink-3: #7B8494;
    --cb-signal: #FFC933; --cb-on-signal: #15120A; --cb-signal-soft: #FFF1C2; --cb-signal-ink: #8A6400;
    --cb-signal-glow: 0 0 0 4px rgb(255 201 51 / .28);
    --cb-sky: #1F7AE0; --cb-sky-soft: #E3EFFC;
    --cb-amber: #D9641E; --cb-amber-soft: #FCEBDD;
    --cb-coral: #D93636; --cb-coral-soft: #FBE3E3;
    --cb-slate: #7B8494;
    --cb-shadow: 0 1px 2px rgb(16 24 40 / .06), 0 8px 24px -12px rgb(16 24 40 / .12);
    --cb-shadow-deep: 0 40px 80px -40px rgb(16 24 40 / .35);
  }
}
:root[data-theme="light"], .cb-day {
  color-scheme: light;
  --cb-bg: #F4F5F7; --cb-panel: #FFFFFF; --cb-sunken: #ECEEF2; --cb-raised: #FFFFFF;
  --cb-glass: rgb(255 255 255 / .72);
  --cb-line: #E2E5EA; --cb-line-strong: #CBD0D8;
  --cb-ink: #12151A; --cb-ink-2: #4C5563; --cb-ink-3: #7B8494;
  --cb-signal: #FFC933; --cb-on-signal: #15120A; --cb-signal-soft: #FFF1C2; --cb-signal-ink: #8A6400;
  --cb-signal-glow: 0 0 0 4px rgb(255 201 51 / .28);
  --cb-sky: #1F7AE0; --cb-sky-soft: #E3EFFC;
  --cb-amber: #D9641E; --cb-amber-soft: #FCEBDD;
  --cb-coral: #D93636; --cb-coral-soft: #FBE3E3;
  --cb-slate: #7B8494;
  --cb-shadow: 0 1px 2px rgb(16 24 40 / .06), 0 8px 24px -12px rgb(16 24 40 / .12);
  --cb-shadow-deep: 0 40px 80px -40px rgb(16 24 40 / .35);
}
:root {
  --cb-r-sm: 10px; --cb-r-md: 14px; --cb-r-lg: 20px;
  --cb-ease: cubic-bezier(.2, .8, .2, 1);
  --cb-in: 220ms; --cb-out: 120ms;
  --cb-head: "Archivo", "Inter", system-ui, sans-serif;
  --cb-text: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --cb-code: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --cb-mast-h: 64px;
}

/* ---------- база ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--cb-mast-h) + 16px); }
body { margin: 0; background: var(--cb-bg); color: var(--cb-ink); font: 400 16px/1.55 var(--cb-text); -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { margin: 0; font-family: var(--cb-head); font-weight: 700; letter-spacing: -.02em; line-height: 1.08; text-wrap: balance; }
h3 { font-size: 20px; }
p { margin: 0 0 1em; }
a { color: inherit; text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); text-underline-offset: .18em; }
a:hover { text-decoration-color: currentColor; }
code { font-family: var(--cb-code); font-size: .9em; background: var(--cb-sunken); border: 1px solid var(--cb-line); border-radius: 6px; padding: .1em .4em; }
ul, ol { padding-left: 1.3em; }
::selection { background: var(--cb-signal); color: var(--cb-on-signal); }
:focus-visible { outline: 2px solid var(--cb-signal); outline-offset: 3px; border-radius: 4px; }
svg { display: block; }

/* ---------- утилиты ---------- */
.cb-wrap { width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 clamp(16px, 3.5vw, 40px); }
.cb-cap { font: 600 11px/1.3 var(--cb-text); letter-spacing: .06em; text-transform: uppercase; color: var(--cb-ink-3); margin: 0; }
.cb-mono { font-family: var(--cb-code); font-variant-numeric: tabular-nums; }
.cb-muted { color: var(--cb-ink-2); }
.cb-small { font-size: 14px; }
.cb-narrow { max-width: 720px; }
.cb-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cb-pending { color: var(--cb-signal-ink); background: var(--cb-signal-soft); border: 1px dashed var(--cb-signal-ink); border-radius: 6px; padding: 0 .4em; font-size: .92em; }
.cb-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 8px; vertical-align: 1px; }
.cb-dot.is-sky { background: var(--cb-sky); box-shadow: 0 0 0 3px var(--cb-sky-soft); }
.cb-skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--cb-signal); color: var(--cb-on-signal); padding: 8px 12px; border-radius: var(--cb-r-sm); font-weight: 600; }
.cb-skip:focus { top: 12px; }

/* ---------- типографика ---------- */
.cb-display { font-size: clamp(44px, 7.2vw, 88px); line-height: .98; letter-spacing: -.03em; font-weight: 700; }
.cb-display-sm { font-size: clamp(36px, 5vw, 64px); }
html[lang="ru"] .cb-display { font-size: clamp(38px, 6vw, 76px); letter-spacing: -.025em; }
html[lang="ru"] .cb-display-sm { font-size: clamp(32px, 4.4vw, 56px); }
.cb-h1 { font-size: clamp(36px, 4.6vw, 56px); }
.cb-h2 { font-size: clamp(28px, 3.4vw, 44px); }
.cb-lead { font-size: clamp(17px, 1.4vw, 20px); line-height: 1.5; color: var(--cb-ink-2); max-width: 60ch; }
.cb-kicker { margin-bottom: 20px; display: flex; align-items: center; }
.cb-index { display: flex; align-items: baseline; gap: 12px; margin: 0 0 14px; }
.cb-num { font-family: var(--cb-code); color: var(--cb-signal-ink); font-size: 13px; }
.cb-sec-head { max-width: 760px; margin-bottom: 28px; }
.cb-sec-lead { color: var(--cb-ink-2); font-size: 17px; margin-top: 12px; }
.cb-more { margin-top: 20px; font-weight: 500; }
.cb-more a { color: var(--cb-signal-ink); }
.cb-ticks { list-style: none; padding: 0; margin: 18px 0 0; }
.cb-ticks li { position: relative; padding-left: 26px; margin: 0 0 8px; color: var(--cb-ink-2); }
.cb-ticks li::before { content: ""; position: absolute; left: 0; top: .5em; width: 14px; height: 8px; border-left: 2px solid var(--cb-signal); border-bottom: 2px solid var(--cb-signal); transform: rotate(-45deg) translateY(-2px); }
.cb-ticks-no li::before { width: 12px; height: 2px; border: 0; background: var(--cb-coral); transform: none; top: .7em; }

/* ---------- кнопки ---------- */
.cb-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 36px; padding: 0 16px; border-radius: var(--cb-r-sm); font: 600 14px/1 var(--cb-text); text-decoration: none; white-space: nowrap; border: 1px solid transparent; cursor: pointer; transition: background var(--cb-out), box-shadow var(--cb-out), border-color var(--cb-out), transform var(--cb-out); }
.cb-btn-solid { background: var(--cb-signal); color: var(--cb-on-signal); }
.cb-btn-solid:hover { box-shadow: var(--cb-signal-glow); }
.cb-btn-line { background: var(--cb-raised); color: var(--cb-ink); border-color: var(--cb-line-strong); }
.cb-btn-line:hover { border-color: var(--cb-ink-3); }
.cb-btn-ghost { background: transparent; color: var(--cb-ink); }
.cb-btn-ghost:hover { background: var(--cb-raised); }
.cb-btn-lg { height: 48px; padding: 0 24px; font-size: 16px; border-radius: 12px; }
.cb-btn:active { transform: translateY(1px); }
.cb-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--cb-r-sm); border: 1px solid var(--cb-line); background: var(--cb-raised); color: var(--cb-ink-2); cursor: pointer; }
.cb-iconbtn:hover { color: var(--cb-ink); border-color: var(--cb-line-strong); }
.cb-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 28px 0 0; }

/* ---------- словесный знак ---------- */
.cb-word { display: inline-flex; align-items: baseline; font-family: var(--cb-head); font-size: 20px; letter-spacing: -.02em; color: var(--cb-ink); line-height: 1; }
.cb-word b { font-weight: 800; }
.cb-word-dot { display: inline-block; width: .3em; height: .3em; border-radius: 50%; background: var(--cb-signal); margin: 0 .06em; transform: translateY(-.02em); }
.cb-word-lg { font-size: 26px; }
.cb-glyph { flex: none; }

/* ---------- шапка-стекло ---------- */
.cb-mast { position: sticky; top: 0; z-index: 50; background: var(--cb-glass); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); border-bottom: 1px solid var(--cb-line); }
.cb-mast-row { display: flex; align-items: center; gap: 28px; height: var(--cb-mast-h); }
.cb-home { text-decoration: none; display: inline-flex; }
.cb-nav { display: flex; gap: 4px; flex: 1; }
.cb-nav a { padding: 8px 12px; border-radius: var(--cb-r-sm); text-decoration: none; font-weight: 500; font-size: 15px; color: var(--cb-ink-2); }
.cb-nav a:hover { color: var(--cb-ink); background: var(--cb-raised); }
.cb-nav a[aria-current="page"] { color: var(--cb-ink); box-shadow: inset 0 -2px 0 var(--cb-signal); border-radius: var(--cb-r-sm) var(--cb-r-sm) 0 0; }
.cb-tools { display: flex; align-items: center; gap: 10px; margin-left: auto; }
.cb-lang { display: inline-flex; border: 1px solid var(--cb-line); border-radius: 999px; padding: 2px; background: var(--cb-sunken); }
.cb-lang a { padding: 4px 10px; border-radius: 999px; font: 600 12px/1.2 var(--cb-code); text-decoration: none; color: var(--cb-ink-3); }
.cb-lang a[aria-current="true"] { background: var(--cb-raised); color: var(--cb-ink); box-shadow: var(--cb-shadow); }
.cb-menu { position: relative; display: none; }
.cb-menu summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border: 1px solid var(--cb-line); border-radius: var(--cb-r-sm); background: var(--cb-raised); font-weight: 600; font-size: 14px; }
.cb-menu summary::-webkit-details-marker { display: none; }
.cb-menu-bars { width: 16px; height: 10px; border-top: 2px solid currentColor; border-bottom: 2px solid currentColor; }
.cb-menu-panel { position: absolute; right: 0; top: calc(100% + 10px); min-width: 240px; display: flex; flex-direction: column; gap: 4px; padding: 10px; background: var(--cb-panel); border: 1px solid var(--cb-line-strong); border-radius: var(--cb-r-lg); box-shadow: var(--cb-shadow); }
.cb-menu-panel a { padding: 10px 12px; border-radius: var(--cb-r-sm); text-decoration: none; font-weight: 500; }
.cb-menu-panel a:hover { background: var(--cb-raised); }
.cb-menu-actions { display: flex; gap: 8px; padding: 8px 4px 2px; }
.cb-menu-actions .cb-btn { flex: 1; }

/* ---------- подвал ---------- */
.cb-foot { border-top: 1px solid var(--cb-line); padding: 56px 0 32px; background: var(--cb-bg); }
.cb-foot-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 32px; }
.cb-foot-brand p { color: var(--cb-ink-2); max-width: 36ch; }
.cb-foot-mark { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.cb-foot-col { display: flex; flex-direction: column; gap: 8px; }
.cb-foot-col .cb-cap { margin-bottom: 6px; }
.cb-foot-col a { text-decoration: none; color: var(--cb-ink-2); font-size: 15px; }
.cb-foot-col a:hover { color: var(--cb-ink); }
.cb-foot-base { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--cb-line); color: var(--cb-ink-3); font-size: 13px; }
.cb-foot-base p { margin: 0 0 6px; }

/* ---------- секции ---------- */
.cb-scene { position: relative; padding: clamp(72px, 10vw, 128px) 0; background: var(--cb-bg); color: var(--cb-ink); overflow: hidden; }
.cb-night + .cb-night, .cb-day + .cb-day { border-top: 1px solid var(--cb-line); }
.cb-sec { padding: clamp(48px, 7vw, 88px) 0; }
.cb-sec-flush { padding-top: 0; }
.cb-sec-ruled { border-top: 1px solid var(--cb-line); }
.cb-hero-page { padding: clamp(56px, 8vw, 104px) 0 clamp(32px, 5vw, 56px); }
.cb-hero-page .cb-h1 { max-width: 20ch; }
.cb-hero-page .cb-lead { margin-top: 20px; }
.cb-doc-meta { margin-top: 20px; display: flex; gap: 10px; align-items: baseline; color: var(--cb-ink-2); }

/* ---------- герой: ночь в кабине ---------- */
.cb-hero { padding: clamp(48px, 7vw, 96px) 0 clamp(56px, 8vw, 112px); }
.cb-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(60% 50% at 78% 30%, rgb(255 201 51 / .10), transparent 70%),
    radial-gradient(40% 40% at 10% 90%, rgb(79 168 255 / .08), transparent 70%),
    repeating-linear-gradient(0deg, transparent 0 47px, rgb(255 255 255 / .025) 47px 48px),
    repeating-linear-gradient(90deg, transparent 0 47px, rgb(255 255 255 / .025) 47px 48px); }
.cb-hero-grid { position: relative; display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.cb-hero-copy .cb-lead { margin-top: 24px; }
.cb-facts { display: grid; grid-template-columns: repeat(3, auto); gap: 24px; margin: 36px 0 0; padding: 0; }
.cb-facts div { border-left: 2px solid var(--cb-line-strong); padding-left: 12px; }
.cb-facts dd { margin: 4px 0 0; font-weight: 500; font-size: 14px; }
.cb-hero-stage { perspective: 1600px; }

/* ---------- приборная панель ---------- */
.cb-stage { margin: 0; background: var(--cb-panel); border: 1px solid var(--cb-line-strong); border-radius: var(--cb-r-lg); box-shadow: var(--cb-shadow), var(--cb-shadow-deep); color: var(--cb-ink); overflow: hidden; font-size: 12px; line-height: 1.3; }
.cb-stage-top { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--cb-line); background: var(--cb-glass); }
.cb-stage-crumb { font-weight: 600; font-size: 13px; white-space: nowrap; }
.cb-stage-sep { color: var(--cb-ink-3); margin: 0 4px; }
.cb-stage-cmd { flex: 1; min-width: 0; display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 5px 10px; background: var(--cb-sunken); border: 1px solid var(--cb-line); border-radius: 999px; color: var(--cb-ink-3); white-space: nowrap; overflow: hidden; }
.cb-stage-cmd kbd { font: 500 10px/1.4 var(--cb-code); border: 1px solid var(--cb-line-strong); border-radius: 4px; padding: 0 5px; color: var(--cb-ink-2); }
.cb-stage-meta { display: flex; align-items: center; gap: 6px; color: var(--cb-ink-2); white-space: nowrap; }
.cb-stage-meta i { width: 7px; height: 7px; border-radius: 50%; background: var(--cb-sky); box-shadow: 0 0 0 3px var(--cb-sky-soft); }
.cb-stage-launch { background: var(--cb-signal); color: var(--cb-on-signal); font-weight: 600; padding: 5px 10px; border-radius: 8px; white-space: nowrap; }
.cb-stage-body { display: grid; grid-template-columns: repeat(12, 1fr); gap: 10px; padding: 12px; }
.cb-tiles { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.cb-tile { background: var(--cb-sunken); border: 1px solid var(--cb-line); border-radius: var(--cb-r-md); padding: 10px 12px; min-width: 0; }
.cb-tile-value { font: 700 22px/1.1 var(--cb-head); letter-spacing: -.02em; margin: 4px 0 2px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cb-tile-delta { font: 500 11px/1.2 var(--cb-code); margin: 0; }
.cb-tile-delta.is-up { color: var(--cb-sky); }
.cb-tile-delta.is-down { color: var(--cb-coral); }
.cb-gauges { grid-column: 1 / 8; display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.cb-gauge { --v: var(--to); text-align: center; background: var(--cb-sunken); border: 1px solid var(--cb-line); border-radius: var(--cb-r-md); padding: 8px 6px 10px; min-width: 0; }
.cb-gauge svg { width: 100%; max-width: 112px; margin: 0 auto; overflow: visible; }
.cb-gauge-track { fill: none; stroke: var(--cb-line-strong); stroke-width: 8; stroke-linecap: round; }
.cb-gauge-fill { fill: none; stroke: var(--cb-signal); stroke-width: 8; stroke-linecap: round; stroke-dasharray: 198; stroke-dashoffset: calc(198 * (1 - var(--v))); }
.cb-gauge-needle { transform-box: view-box; transform-origin: 60px 56px; transform: rotate(calc(-135deg + var(--v) * 270deg)); }
.cb-gauge-needle path { stroke: var(--cb-ink); stroke-width: 2; stroke-linecap: round; }
.cb-gauge-needle circle { fill: var(--cb-ink); }
.cb-gauge-value { font: 700 18px/1 var(--cb-head); letter-spacing: -.02em; margin: -10px 0 4px; font-variant-numeric: tabular-nums; }
.cb-gauge-label { font: 600 10px/1.3 var(--cb-text); letter-spacing: .06em; text-transform: uppercase; color: var(--cb-ink-3); margin: 0; }
.cb-gauge-sub { font: 400 10px/1.3 var(--cb-code); color: var(--cb-ink-3); margin: 2px 0 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cb-radar { grid-column: 8 / -1; display: flex; flex-direction: column; gap: 6px; background: var(--cb-sunken); border: 1px solid var(--cb-line); border-radius: var(--cb-r-md); padding: 10px 12px; min-width: 0; }
.cb-radar svg { width: 100%; max-height: 150px; flex: 1; }
.cb-radar-grid circle, .cb-radar-grid path { fill: none; stroke: var(--cb-line-strong); stroke-width: 1; }
.cb-radar-sweep { transform-box: view-box; transform-origin: 100px 100px; }
.cb-radar-sweep path:first-child { fill: var(--cb-signal); opacity: .18; }
.cb-radar-beam { stroke: var(--cb-signal); stroke-width: 1.5; stroke-linecap: round; }
.cb-blip { fill: var(--cb-sky); }
.cb-radar-read { margin: 0; color: var(--cb-ink-2); font-size: 11px; }
.cb-strip { grid-column: 1 / -1; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.cb-strip-track { display: flex; width: max-content; }
.cb-chip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; margin-right: 8px; border: 1px solid var(--cb-line); border-radius: 999px; background: var(--cb-sunken); white-space: nowrap; color: var(--cb-ink-2); }
.cb-chip b { color: var(--cb-ink); font-weight: 600; }
.cb-st { font: 500 10px/1.4 var(--cb-text); font-style: normal; padding: 1px 7px; border-radius: 999px; }
.cb-st.is-live { background: var(--cb-sky-soft); color: var(--cb-sky); }
.cb-st.is-review { background: var(--cb-amber-soft); color: var(--cb-amber); }
.cb-st.is-paused { background: var(--cb-raised); color: var(--cb-ink-3); }
.cb-stage-log { grid-column: 1 / -1; border-top: 1px solid var(--cb-line); padding-top: 8px; }
.cb-stage-log p { margin: 2px 0; color: var(--cb-ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cb-stage-log .cb-cap { margin-bottom: 4px; }
.cb-time { color: var(--cb-ink-3); margin-right: 8px; }
.cb-stage-caption { padding: 6px 14px 10px; color: var(--cb-ink-3); font-size: 11px; border-top: 1px solid var(--cb-line); }

/* ---------- сцены главной ---------- */
.cb-scene-grid { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.cb-scene-grid-rev { grid-template-columns: 7fr 5fr; }
.cb-scene-copy > p { color: var(--cb-ink-2); font-size: 17px; }

/* сцена 2: раскладка креатива */
.cb-split { position: relative; aspect-ratio: 4 / 3; background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-lg); box-shadow: var(--cb-shadow); overflow: hidden; }
.cb-split-master { position: absolute; left: 6%; top: 22%; width: 34%; height: 56%; border-radius: var(--cb-r-md); border: 1px solid var(--cb-line-strong); overflow: hidden; background: #0C0E12; }
.cb-split-art, .cb-fmt-art { position: absolute; inset: 0; background: radial-gradient(circle at 28% 32%, #FFC933 0, #FFC933 10%, transparent 11%), linear-gradient(165deg, #1B2029 0%, #0C0E12 60%, #0F2440 100%); }
.cb-split-art::after, .cb-fmt-art::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 38%; background: linear-gradient(180deg, transparent, rgb(12 14 18 / .9)); }
.cb-cut { position: absolute; left: 0; right: 0; height: 1px; background: var(--cb-signal); transform-origin: left; }
.cb-cut-1 { top: 40%; } .cb-cut-2 { top: 70%; }
.cb-split-name { position: absolute; left: 10px; bottom: 8px; font: 500 12px/1.2 var(--cb-text); color: #F2F4F7; }
.cb-slot { position: absolute; left: 58%; width: 36%; height: 27%; border: 1px dashed var(--cb-line-strong); border-radius: var(--cb-r-md); }
.cb-slot-feed { top: 6%; } .cb-slot-stories { top: 37%; } .cb-slot-reels { top: 68%; }
.cb-slot-name { position: absolute; right: 12px; top: 10px; font: 600 11px/1.3 var(--cb-text); letter-spacing: .06em; text-transform: uppercase; color: var(--cb-ink-3); }
.cb-slot-sub { position: absolute; right: 12px; top: 28px; font: 400 10px/1.3 var(--cb-code); color: var(--cb-ink-3); }
.cb-fmt { position: absolute; border-radius: 8px; overflow: hidden; background: #0C0E12; box-shadow: var(--cb-shadow); border: 1px solid var(--cb-line-strong); }
.cb-fmt-1x1 { left: 61%; top: 9.5%; width: 15%; height: 20%; }
.cb-fmt-4x5 { left: 61%; top: 38.5%; width: 14%; height: 23.3%; }
.cb-fmt-9x16 { left: 62.5%; top: 68.5%; width: 11%; height: 26%; }
.cb-fmt-tag { position: absolute; left: 6px; bottom: 6px; font: 600 10px/1.4 var(--cb-code); background: var(--cb-signal); color: var(--cb-on-signal); padding: 0 6px; border-radius: 999px; }

/* сцена 3: кольца */
.cb-rings { position: relative; background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-lg); box-shadow: var(--cb-shadow); padding: 24px; }
.cb-rings svg { width: 100%; max-width: 440px; margin: 0 auto; }
.cb-ring { transform-box: view-box; transform-origin: 200px 200px; }
.cb-ring circle { fill: none; stroke: var(--cb-sky); stroke-width: 1.25; opacity: calc(1 - var(--i) * .16); }
.cb-ring-label { fill: var(--cb-ink-2); font: 500 12px var(--cb-code); text-anchor: middle; }
.cb-seed circle { fill: var(--cb-signal); }
.cb-rings-read { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 16px 0 0; padding-top: 16px; border-top: 1px solid var(--cb-line); }
.cb-rings-read dd { margin: 4px 0 0; font: 700 22px/1.1 var(--cb-head); letter-spacing: -.02em; font-variant-numeric: tabular-nums; }

/* сцена 4: предполётная проверка */
.cb-preflight { background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-lg); box-shadow: var(--cb-shadow); padding: 20px 24px; }
.cb-preflight-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 0 0 8px; color: var(--cb-ink-2); font-size: 12px; }
.cb-checks { list-style: none; margin: 0; padding: 0; }
.cb-check { display: grid; grid-template-columns: 24px 1fr auto; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid var(--cb-line); }
.cb-check-mark { width: 24px; height: 24px; }
.cb-check-mark circle { fill: none; stroke: var(--cb-line-strong); stroke-width: 1.5; }
.cb-check-tick, .cb-check-bang { fill: none; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.cb-check-tick { stroke: var(--cb-sky); stroke-dasharray: 16; stroke-dashoffset: 0; }
.cb-check-bang { stroke: var(--cb-amber); }
.cb-check.is-pass .cb-check-mark circle { stroke: var(--cb-sky); }
.cb-check.is-pass .cb-check-bang { display: none; }
.cb-check.is-warn .cb-check-mark circle { stroke: var(--cb-amber); }
.cb-check.is-warn .cb-check-tick { display: none; }
.cb-check-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cb-check-text b { font-weight: 600; font-size: 15px; }
.cb-check-text .cb-mono { font-size: 12px; color: var(--cb-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cb-pill { display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px; border-radius: 999px; font: 600 11px/1.5 var(--cb-text); background: var(--cb-raised); color: var(--cb-ink-2); border: 1px solid var(--cb-line); }
.cb-pill.is-pass, .cb-check.is-pass .cb-pill { background: var(--cb-sky-soft); color: var(--cb-sky); border-color: transparent; }
.cb-pill.is-warn, .cb-check.is-warn .cb-pill { background: var(--cb-amber-soft); color: var(--cb-amber); border-color: transparent; }
.cb-preflight-foot { display: flex; align-items: center; gap: 8px; margin: 8px 0 0; padding-top: 12px; border-top: 1px solid var(--cb-line); }
.cb-preflight-ready { margin-left: auto; font-weight: 500; font-size: 13px; color: var(--cb-ink-2); }

/* сцена 5: цифры */
.cb-numbers { padding: clamp(56px, 7vw, 96px) 0; }
.cb-proof { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; margin: 0; padding: 0; }
.cb-proof div { border-top: 2px solid var(--cb-line-strong); padding-top: 16px; }
.cb-proof-n { font: 700 clamp(40px, 5vw, 64px)/1 var(--cb-head); letter-spacing: -.03em; color: var(--cb-signal); font-variant-numeric: tabular-nums; }
.cb-proof dd { margin: 10px 0 0; color: var(--cb-ink-2); font-size: 15px; }

/* тарифы на главной, колонки, призыв */
.cb-plan-strip { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; }
.cb-plan-mini { display: flex; flex-direction: column; gap: 8px; padding: 18px; background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-md); text-decoration: none; box-shadow: var(--cb-shadow); transition: border-color var(--cb-out), transform var(--cb-in) var(--cb-ease); }
.cb-plan-mini:hover { border-color: var(--cb-line-strong); transform: translateY(-2px); }
.cb-plan-mini.is-featured { border-color: var(--cb-signal); }
.cb-plan-mini-price { font: 700 28px/1 var(--cb-head); letter-spacing: -.02em; }
.cb-plan-mini-price small { font: 500 13px var(--cb-text); color: var(--cb-ink-3); margin-left: 4px; }
.cb-plan-mini-limits { color: var(--cb-ink-2); font-size: 13px; }
.cb-cols-3, .cb-cols-4 { display: grid; gap: 24px; }
.cb-cols-3 { grid-template-columns: repeat(3, 1fr); }
.cb-cols-4 { grid-template-columns: repeat(4, 1fr); }
.cb-col { border-top: 2px solid var(--cb-line-strong); padding-top: 16px; }
.cb-col h3 { margin-bottom: 8px; font-size: 18px; }
.cb-col p { color: var(--cb-ink-2); margin: 0; font-size: 15px; }
.cb-cta { margin-top: clamp(56px, 8vw, 112px); padding-top: clamp(40px, 5vw, 64px); border-top: 1px solid var(--cb-line); text-align: center; }
.cb-cta .cb-actions { justify-content: center; }

/* ---------- /platform ---------- */
.cb-jump { display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 24px; }
.cb-jump a { padding: 6px 12px; border: 1px solid var(--cb-line); border-radius: 999px; font: 500 13px/1.4 var(--cb-text); text-decoration: none; color: var(--cb-ink-2); background: var(--cb-panel); }
.cb-jump a:hover { color: var(--cb-ink); border-color: var(--cb-line-strong); }
.cb-module { padding: clamp(40px, 6vw, 80px) 0; border-top: 1px solid var(--cb-line); }
.cb-module-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.cb-module-rev .cb-module-copy { order: 2; }
.cb-module-copy > p { color: var(--cb-ink-2); font-size: 17px; }
.cb-module-path { display: flex; gap: 10px; align-items: baseline; margin-top: 18px; }
.cb-illu { background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-lg); box-shadow: var(--cb-shadow); padding: 16px; }
.cb-illu svg { width: 100%; height: auto; }
.cb-illu text { font-family: var(--cb-text); }
.cb-il-panel { fill: var(--cb-sunken); stroke: var(--cb-line); }
.cb-il-panel-s { fill: var(--cb-signal-soft); stroke: var(--cb-signal); }
.cb-il-cap { font-size: 9px; font-weight: 600; letter-spacing: 1px; fill: var(--cb-ink-3); }
.cb-il-num { font-family: var(--cb-head); font-size: 18px; font-weight: 700; letter-spacing: -.3px; fill: var(--cb-ink); }
.cb-il-ink { font-size: 11px; fill: var(--cb-ink); }
.cb-il-b { font-weight: 600; }
.cb-il-mono { font-family: var(--cb-code); font-size: 10px; fill: var(--cb-ink-2); }
.cb-il-sky { fill: var(--cb-sky); font-size: 10px; font-family: var(--cb-code); }
.cb-il-coral { fill: var(--cb-coral); font-size: 10px; font-family: var(--cb-code); }
.cb-il-sky-f { fill: var(--cb-sky); } .cb-il-coral-f { fill: var(--cb-coral); } .cb-il-amber-f { fill: var(--cb-amber); }
.cb-il-signal-f { fill: var(--cb-signal); } .cb-il-slate-f { fill: var(--cb-slate); }
.cb-il-signal-s { fill: var(--cb-signal-soft); stroke: var(--cb-signal); }
.cb-il-coral-s { fill: var(--cb-coral-soft); stroke: var(--cb-coral); }
.cb-il-amber-s { fill: var(--cb-amber-soft); stroke: var(--cb-amber); }
.cb-il-track { fill: var(--cb-line); }
.cb-il-track-s { fill: none; stroke: var(--cb-line-strong); }
.cb-il-line { fill: none; stroke: var(--cb-line-strong); }
.cb-il-grid path { fill: none; stroke: var(--cb-line); stroke-dasharray: 2 4; }
.cb-il-area { fill: var(--cb-signal); opacity: .12; }
.cb-il-plot { fill: none; stroke: var(--cb-signal); stroke-width: 1.5; stroke-linejoin: round; }
.cb-il-plot-2 { fill: none; stroke: var(--cb-sky); stroke-width: 1.5; stroke-linejoin: round; }
.cb-il-ring { fill: none; stroke: var(--cb-sky); }
.cb-il-on-signal { fill: none; stroke: var(--cb-on-signal); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- /pricing ---------- */
.cb-table-wrap { overflow-x: auto; }
.cb-rates { width: 100%; border-collapse: separate; border-spacing: 0; }
.cb-rates th, .cb-rates td { padding: 12px 14px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--cb-line); }
.cb-rates thead th, .cb-rates thead td { vertical-align: bottom; border-bottom: 1px solid var(--cb-line-strong); padding-top: 26px; }
.cb-rates tbody th { font-weight: 500; color: var(--cb-ink-2); white-space: nowrap; }
.cb-rates td.is-featured, .cb-rates th.is-featured { background: color-mix(in srgb, var(--cb-signal) 7%, transparent); }
.cb-plan { position: relative; min-width: 150px; }
.cb-plan > * { display: block; }
.cb-flag { position: absolute; top: 4px; left: 14px; font: 600 10px/1.6 var(--cb-text); letter-spacing: .06em; text-transform: uppercase; color: var(--cb-on-signal); background: var(--cb-signal); padding: 0 8px; border-radius: 999px; }
.cb-plan-name { font: 700 20px/1.2 var(--cb-head); margin: 8px 0 4px; }
.cb-plan-price { font: 700 30px/1 var(--cb-head); letter-spacing: -.02em; margin: 0 0 8px; }
.cb-plan-per { font: 500 13px/1 var(--cb-text); color: var(--cb-ink-3); margin-left: 4px; }
.cb-plan-for { font: 400 13px/1.4 var(--cb-text); color: var(--cb-ink-2); margin-bottom: 14px; }
.cb-yes { color: var(--cb-sky); font-weight: 500; }
.cb-plan-cards { display: none; gap: 12px; }
.cb-plan-card { background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-md); padding: 18px; box-shadow: var(--cb-shadow); }
.cb-plan-card.is-featured { border-color: var(--cb-signal); }
.cb-plan-card .cb-plan-price { margin-top: 6px; }
.cb-defs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px 40px; margin: 0; }
.cb-defs dt { font-weight: 600; margin-bottom: 4px; }
.cb-defs dd { margin: 0; color: var(--cb-ink-2); }

/* ---------- документы ---------- */
.cb-doc { display: grid; grid-template-columns: 260px 1fr; gap: 56px; align-items: start; padding-bottom: clamp(56px, 8vw, 96px); }
.cb-toc { position: sticky; top: calc(var(--cb-mast-h) + 24px); }
.cb-toc ol { list-style: none; padding: 0; margin: 12px 0 0; }
.cb-toc li a { display: flex; gap: 10px; padding: 6px 0; text-decoration: none; color: var(--cb-ink-2); font-size: 14px; }
.cb-toc li a:hover { color: var(--cb-ink); }
.cb-toc .cb-mono { color: var(--cb-ink-3); font-size: 12px; }
.cb-doc-body { max-width: 760px; }
.cb-clause { padding: 28px 0; border-top: 1px solid var(--cb-line); }
.cb-clause h2 { display: flex; gap: 14px; align-items: baseline; font-size: 24px; margin-bottom: 14px; scroll-margin-top: calc(var(--cb-mast-h) + 20px); }
.cb-clause-n { color: var(--cb-signal-ink); font-size: 14px; }
.cb-clause p, .cb-clause li { color: var(--cb-ink-2); }
.cb-clause strong { color: var(--cb-ink); }
.cb-clause a { color: var(--cb-ink); }
.cb-table { width: 100%; border-collapse: collapse; margin: 12px 0 20px; font-size: 14px; }
.cb-table th { text-align: left; font: 600 11px/1.4 var(--cb-text); letter-spacing: .06em; text-transform: uppercase; color: var(--cb-ink-3); padding: 8px 10px; border-bottom: 1px solid var(--cb-line-strong); }
.cb-table td { padding: 10px; border-bottom: 1px solid var(--cb-line); vertical-align: top; color: var(--cb-ink-2); }
.cb-table td:first-child { color: var(--cb-ink); }
.cb-cell-sub { display: block; margin-top: 4px; font-size: 11px; color: var(--cb-ink-3); }
.cb-note { padding: 12px 16px; border: 1px solid var(--cb-line-strong); border-left: 3px solid var(--cb-signal); background: var(--cb-panel); border-radius: var(--cb-r-sm); color: var(--cb-ink-2); margin: 0 0 24px; }
.cb-note-warn { border-left-color: var(--cb-amber); }
.cb-prose h2 { font-size: 22px; margin: 24px 0 10px; }
.cb-prose p { color: var(--cb-ink-2); }

/* ---------- /about, /contact ---------- */
.cb-two { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: start; }
.cb-ledger { margin: 0; display: grid; gap: 14px; background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-md); padding: 20px; box-shadow: var(--cb-shadow); }
.cb-ledger div { display: grid; grid-template-columns: 160px 1fr; gap: 12px; align-items: baseline; }
.cb-ledger dd { margin: 0; }
.cb-desks { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cb-desk { background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-md); padding: 20px; box-shadow: var(--cb-shadow); }
.cb-desk-link { font: 600 18px/1.3 var(--cb-head); margin: 8px 0 10px; word-break: break-all; }
.cb-desk p:last-child { margin: 0; }
.cb-desk > p:nth-of-type(3) { color: var(--cb-ink-2); font-size: 15px; }

/* ---------- удаление данных ---------- */
.cb-routes { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cb-route { background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-md); padding: 22px; box-shadow: var(--cb-shadow); }
.cb-route h2 { font-size: 20px; margin: 6px 0 12px; }
.cb-route-n { color: var(--cb-signal-ink); font-size: 14px; margin: 0; }
.cb-route ol { padding-left: 1.2em; color: var(--cb-ink-2); }
.cb-route ol li { margin-bottom: 6px; }
.cb-timeline-dl { margin: 0 0 20px; }
.cb-timeline-dl div { display: grid; grid-template-columns: 130px 1fr; gap: 12px; padding: 8px 0; border-top: 1px solid var(--cb-line); }
.cb-timeline-dl dd { margin: 0; color: var(--cb-ink-2); }
.cb-aside { background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-md); padding: 22px; box-shadow: var(--cb-shadow); position: sticky; top: calc(var(--cb-mast-h) + 24px); }
.cb-lookup { margin-top: 12px; }
.cb-lookup-row { display: flex; gap: 8px; margin-top: 8px; }
.cb-input { flex: 1; min-width: 0; height: 36px; padding: 0 12px; background: var(--cb-sunken); border: 1px solid var(--cb-line); border-radius: var(--cb-r-sm); color: var(--cb-ink); font-size: 14px; }
.cb-input:focus { outline: none; border-color: var(--cb-signal); box-shadow: var(--cb-signal-glow); }
.cb-field-error { color: var(--cb-coral); font-size: 13px; margin: 8px 0 0; }
.cb-receipt { background: var(--cb-panel); border: 1px solid var(--cb-line); border-radius: var(--cb-r-md); padding: 24px; box-shadow: var(--cb-shadow); }
.cb-receipt .cb-ledger { padding: 0; border: 0; box-shadow: none; background: none; margin-bottom: 20px; }
.cb-progress { list-style: none; margin: 0 0 20px; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.cb-progress li { display: flex; flex-direction: column; gap: 6px; padding-top: 10px; border-top: 2px solid var(--cb-line-strong); color: var(--cb-ink-3); font-size: 14px; }
.cb-progress li.is-done { border-top-color: var(--cb-sky); color: var(--cb-ink); }
.cb-progress li.is-now { border-top-color: var(--cb-signal); color: var(--cb-ink); }
.cb-progress .cb-mono { font-size: 12px; }
.cb-step-mark { display: none; }

/* ---------- моушен (только при .cb-motion на <html>, его ставит JS, если нет prefers-reduced-motion) ---------- */
.cb-motion [data-reveal] { opacity: 0; transform: translateY(16px); transition: opacity .7s var(--cb-ease), transform .7s var(--cb-ease); }
.cb-motion [data-reveal].is-in { opacity: 1; transform: none; }
.cb-w { display: inline-block; }
.cb-motion .cb-w { opacity: 0; transform: translateY(.35em); animation: cb-word .6s var(--cb-ease) forwards; animation-delay: calc(var(--i) * 40ms + 80ms); }
.cb-motion .cb-hero-stage { animation: cb-stage-in 1s var(--cb-ease) both; }
.cb-motion .cb-gauge:not(.is-in) { --v: 0; }
.cb-motion .cb-count:not(.is-in) { opacity: 0; }
.cb-motion .cb-count { transition: opacity .3s; }
.cb-motion .cb-radar-sweep { animation: cb-sweep 4s linear infinite; }
.cb-motion .cb-blip { animation: cb-blip 4s linear infinite; animation-delay: calc(var(--d) - 4s); }
.cb-motion .cb-strip-track { animation: cb-ticker 36s linear infinite; }
.cb-motion .cb-stage-meta i, .cb-motion .cb-dot.is-sky { animation: cb-pulse 2.4s ease-in-out infinite; }
.cb-motion .cb-split .cb-fmt { transition: left .9s var(--cb-ease), top .9s var(--cb-ease), width .9s var(--cb-ease), height .9s var(--cb-ease), opacity .5s var(--cb-ease); transition-delay: calc(.45s + var(--i) * .16s); }
.cb-motion .cb-split:not(.is-in) .cb-fmt { left: 6%; top: 22%; width: 34%; height: 56%; opacity: 0; }
.cb-motion .cb-split .cb-cut { transition: transform .45s var(--cb-ease); }
.cb-motion .cb-split .cb-cut-1 { transition-delay: .15s; } .cb-motion .cb-split .cb-cut-2 { transition-delay: .3s; }
.cb-motion .cb-split:not(.is-in) .cb-cut { transform: scaleX(0); }
.cb-motion .cb-split .cb-slot { transition: border-color .4s; transition-delay: calc(1.3s + var(--i, 0) * .1s); }
.cb-motion .cb-split:not(.is-in) .cb-slot { border-color: var(--cb-line); }
.cb-motion .cb-split.is-in .cb-slot { border-color: var(--cb-sky); }
.cb-motion .cb-ring { transition: transform 1.1s var(--cb-ease), opacity .7s var(--cb-ease); transition-delay: calc(.2s + var(--i) * .16s); }
.cb-motion .cb-rings:not(.is-in) .cb-ring { transform: scale(.04); opacity: 0; }
.cb-motion .cb-rings.is-in .cb-seed circle { animation: cb-seed 2.8s ease-in-out infinite; }
.cb-motion .cb-check .cb-check-tick { transition: stroke-dashoffset .5s var(--cb-ease) .12s; }
.cb-motion .cb-check .cb-check-mark circle { transition: stroke .3s; }
.cb-motion .cb-check .cb-check-bang { transition: opacity .3s .15s; }
.cb-motion .cb-check .cb-pill { transition: opacity .35s var(--cb-ease) .25s, transform .35s var(--cb-ease) .25s; }
.cb-motion .cb-check:not(.is-in) .cb-check-tick { stroke-dashoffset: 16; }
.cb-motion .cb-check:not(.is-in) .cb-check-bang { opacity: 0; }
.cb-motion .cb-check:not(.is-in) .cb-check-mark circle { stroke: var(--cb-line-strong); }
.cb-motion .cb-check:not(.is-in) .cb-pill { opacity: 0; transform: translateX(8px); }
.cb-motion .cb-preflight-foot { transition: opacity .5s var(--cb-ease) .3s; }
.cb-motion .cb-preflight:not(.is-in) .cb-preflight-foot { opacity: 0; }
@keyframes cb-word { to { opacity: 1; transform: none; } }
@keyframes cb-stage-in { from { opacity: 0; transform: translateY(24px) rotateX(6deg); } to { opacity: 1; transform: none; } }
@keyframes cb-sweep { to { transform: rotate(360deg); } }
@keyframes cb-blip { 0% { opacity: 1; r: 4; } 45% { opacity: .18; r: 3; } 100% { opacity: .18; r: 3; } }
@keyframes cb-ticker { to { transform: translateX(-50%); } }
@keyframes cb-pulse { 0%, 100% { box-shadow: 0 0 0 3px var(--cb-sky-soft); } 50% { box-shadow: 0 0 0 6px var(--cb-sky-soft); } }
@keyframes cb-seed { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cb-motion *, .cb-motion *::before, .cb-motion *::after { animation: none !important; transition: none !important; }
  .cb-motion [data-reveal], .cb-motion .cb-w, .cb-motion .cb-count { opacity: 1; transform: none; }
}

/* ---------- адаптив ---------- */
@media (max-width: 1100px) {
  .cb-proof { grid-template-columns: repeat(3, 1fr); }
  .cb-plan-strip { grid-template-columns: repeat(3, 1fr); }
  .cb-cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 960px) {
  .cb-hero-grid, .cb-scene-grid, .cb-scene-grid-rev, .cb-module-grid { grid-template-columns: 1fr; }
  .cb-scene-grid-rev .cb-rings { order: 2; }
  .cb-module-rev .cb-module-copy { order: 0; }
  .cb-doc { grid-template-columns: 1fr; gap: 24px; }
  .cb-toc { position: static; }
  .cb-toc ol { display: flex; flex-wrap: wrap; gap: 4px 16px; }
  .cb-two { grid-template-columns: 1fr; }
  .cb-foot-grid { grid-template-columns: 1fr 1fr; }
  .cb-rates-wrap { display: none; }
  .cb-plan-cards { display: grid; grid-template-columns: repeat(2, 1fr); }
  .cb-defs { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .cb-nav, .cb-hide-sm { display: none; }
  .cb-menu { display: block; }
  .cb-mast-row { gap: 16px; }
  .cb-desks, .cb-routes, .cb-cols-3 { grid-template-columns: 1fr; }
  .cb-aside { position: static; }
}
@media (max-width: 620px) {
  .cb-tiles { grid-template-columns: repeat(2, 1fr); }
  .cb-gauges { grid-column: 1 / -1; }
  .cb-radar { grid-column: 1 / -1; }
  .cb-stage-cmd { display: none; }
  .cb-facts { grid-template-columns: 1fr; gap: 12px; }
  .cb-proof { grid-template-columns: repeat(2, 1fr); }
  .cb-plan-strip, .cb-plan-cards, .cb-cols-4, .cb-rings-read { grid-template-columns: 1fr; }
  .cb-ledger div { grid-template-columns: 1fr; gap: 2px; }
  .cb-foot-grid { grid-template-columns: 1fr; }
  .cb-lang { display: none; }
  .cb-check { grid-template-columns: 24px 1fr; }
  .cb-check .cb-pill { grid-column: 2; justify-self: start; }
  .cb-progress { grid-template-columns: 1fr; }
}
