/* ============================================================================
 * @erubl-net/tokens — tokens.css
 * Источник: https://erub.site (Vite SPA, build 0.44, бандл /0.44/assets/_j4HQ-FG.css)
 * Извлечено 2026-08-01. Сверено с бандлом 2026-08-01 (сверка трёх форматов).
 *
 * Значения без пометки — дословно из :root бандла.
 * Пометка "+ours" — токена нет в :root бандла; значение поднято из правил
 * компонентов (тени, стекло, блюры, высоты, раскладка) и дословно есть в CSS.
 * Пометка "+ours, вычислено" — дословно в бандле значения нет, оно выведено
 * из формулы или из границы медиазапроса. Таких токенов 7, все помечены.
 *
 * Все 53 цвета из этого файла проверены в бандле — выдуманных нет.
 *
 * Запись цветов приведена к длинной форме: бандл пишет #06f и #fff,
 * здесь всегда #0066ff и #ffffff. Цвет тот же.
 * Вложенных CSS-комментариев в файле быть не должно — они убивают разбор.
 * ========================================================================== */

:root {
  /* --- Палитра: чернила / тёмные --- */
  --color-ink-1000: #001533;
  --color-ink-950: #090d22;        /* +ours: старт градиента page-wallet */
  --color-ink-900: #0b102a;
  --color-ink-700: #001f4d;

  /* --- Палитра: серые --- */
  --color-gray-500: #6b7280;
  --color-gray-400: #8a9cbf;
  --color-gray-300: #d1d5db;
  --color-gray-200: #e7e8ea;
  --color-gray-150: #f0f3f7;
  --color-gray-100: #f5f5f5;
  --color-gray-50: #f5f7fa;
  --color-page-fade: #f4f4f4;
  --color-section-alt: #f9fafb;
  --color-hero-tint: #f5fbff;      /* +ours: подложка hero под картинкой */
  --color-white: #ffffff;          /* в бандле записан как #fff */

  /* --- Палитра: акцент (синий) --- */
  --color-blue-700: #0059ff;
  --color-blue-600: #0066ff;       /* главный акцент; в бандле записан как #06f */
  --color-blue-grad-from: #1e64ff;
  --color-blue-grad-to: #00cbef;
  --color-blue-100: #dbeafe;
  --color-blue-050: #e6f0ff;

  /* --- Палитра: состояния --- */
  --color-success-600: #00a63e;
  --color-success-050: #dcfce7;
  --color-danger-050: #ffe2e2;
  /* danger-600 в :root бандла отсутствует; в правилах форм жёстко зашит #ef4444 */
  --color-danger-600: #ef4444;     /* +ours: подняли хардкод из .Field в токен */
  --color-danger-700: #b91c1c;     /* +ours: подняли хардкод из баннеров ошибок */

  /* --- Палитра: прозрачные слои / стекло --- */
  /* Имена по назначению слоя, а не по цвету: это накладки, блики и разделители. */
  --color-border-10: #0b102a1a;
  --color-glass-white-10: #ffffff1a;
  --color-glass-white-20: #f6f6f633;
  --color-glass-border-bright: #ffffffb8;
  --color-glass-balance-border: #b9bbc247;
  --color-glass-action-border: #dfe0e375;
  --color-overlay-strong: #0b102a99;

  /* Прозрачные слои, поднятые из компонентов (в :root бандла их нет) */
  --color-border-20: #0b102a33;               /* +ours: рамка карточки в hover */
  --color-border-footer-divider: #6b728066;   /* +ours: разделитель в подвале */
  --color-overlay-menu: #0b102a73;            /* +ours: подложка мобильного меню */
  --color-glass-header-bg: #e4f0ff70;         /* +ours: фон плавающей шапки */
  --color-glass-header-scrolled-bg: #ffffffeb;/* +ours: фон шапки после скролла */
  --color-glass-header-border: #ffffffcc;     /* +ours: рамка шапки, в бандле #fffc */
  --color-glass-header-inset: #ffffff59;      /* +ours: внутренний блик шапки */
  --color-glass-inset-highlight: #ffffffc7;   /* +ours: блик inset в elevation-blue */
  --color-glass-blue-from: #ffffffe0;         /* +ours: стоп 0% surface-glass-blue */
  --color-glass-blue-mid: #e6f0ffc2;          /* +ours: стоп 62% surface-glass-blue */
  --color-glass-blue-to: #ffffffe6;           /* +ours: стоп 100% surface-glass-blue */
  --color-text-inverse-soft: #ffffffd1;       /* +ours: вторичный текст на тёмном */

  /* Цвета теней и фокус-колец, вынесенные отдельно от самих теней */
  --color-shadow-elevation: #00000040;        /* +ours: shadow-elevation-1 */
  --color-shadow-blue: #0059ff1a;             /* +ours: shadow-elevation-blue */
  --color-shadow-soft: #0b102a14;             /* +ours: мягкие тени карточек и шапки */
  --color-shadow-raised: #0b102a1a;           /* +ours: тень приподнятой карточки */
  --color-shadow-deep: #0b102a38;             /* +ours: глубокая тень карточки */
  --color-focus-ring-accent: #0066ff26;       /* +ours: кольцо фокуса, акцент */
  --color-focus-ring-danger: #ef444426;       /* +ours: кольцо фокуса, ошибка */
  --color-pulse-accent-50: #0066ff80;         /* +ours: старт roadmap-pulse */
  --color-pulse-accent-00: #0066ff00;         /* +ours: финиш roadmap-pulse, в бандле #06f0 */

  /* --- Семантика: текст --- */
  --color-text-primary: var(--color-ink-900);
  --color-text-secondary: var(--color-gray-500);
  --color-text-mono: var(--color-gray-400);
  --color-text-inverse: var(--color-white);
  --color-text-success: var(--color-success-600);
  --color-text-accent: var(--color-blue-600);
  --color-text-inverse-secondary: var(--color-text-inverse-soft);  /* +ours */

  /* --- Семантика: фоны --- */
  --color-bg-page: var(--color-white);
  --color-bg-section-alt: var(--color-section-alt);
  --color-bg-surface: var(--color-white);
  --color-bg-surface-soft: var(--color-gray-50);
  --color-bg-surface-muted: var(--color-gray-150);
  --color-bg-surface-highlight: var(--color-blue-050);
  --color-bg-glass: var(--color-glass-white-10);
  --color-bg-glass-strong: var(--color-glass-white-20);
  --color-bg-chip-dark: var(--color-ink-1000);
  --color-bg-icon-success: var(--color-success-050);
  --color-bg-icon-danger: var(--color-danger-050);
  --color-bg-icon-info: var(--color-blue-100);
  --color-bg-icon-neutral: var(--color-gray-100);
  --color-bg-icon-soft: var(--color-gray-50);
  --color-bg-icon-accent: var(--color-blue-050);
  --color-bg-hero: var(--color-hero-tint);              /* +ours */
  --color-bg-header: var(--color-glass-header-bg);      /* +ours */
  --color-bg-header-scrolled: var(--color-glass-header-scrolled-bg); /* +ours */
  --color-bg-menu-backdrop: var(--color-overlay-menu);  /* +ours */

  /* --- Семантика: границы --- */
  --color-border-default: var(--color-border-10);
  --color-border-strong: var(--color-ink-900);
  --color-border-accent: var(--color-blue-600);
  --color-border-hover: var(--color-border-20);                    /* +ours */
  --color-border-header: var(--color-glass-header-border);         /* +ours */
  --color-border-footer: var(--color-border-footer-divider);       /* +ours */

  /* --- Градиенты --- */
  --gradient-cta-primary: linear-gradient(90deg, var(--color-blue-grad-from), var(--color-blue-grad-to));
  --gradient-cta-dark: linear-gradient(167.91deg, var(--color-ink-900) 0%, var(--color-blue-600) 100%);
  --gradient-page-wallet: linear-gradient(170deg, #090d22 9.63%, var(--color-blue-600) 33.18%, var(--color-page-fade) 57.72%);
  --gradient-surface-glass-blue: linear-gradient(112deg, #ffffffe0 0%, #e6f0ffc2 62%, #ffffffe6 100%);

  /* --- Шрифты --- */
  --font-sans: "Geologica", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: ui-monospace, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;

  /* --- Типографическая шкала --- */
  --text-display-1-size: 60px;
  --text-display-1-lh: 75px;
  --text-display-2-size: 48px;
  --text-display-2-lh: 48px;
  --text-display-3-size: 48px;
  --text-display-3-lh: 48px;
  --text-display-3-tracking: -1.2px;
  --text-display-4-size: 36px;
  --text-display-4-lh: 40px;
  --text-display-4-tracking: -0.9px;
  --text-display-counter-size: 72px;
  --text-display-counter-lh: 80px;

  --text-heading-2-size: 36px;
  --text-heading-2-lh: 40px;
  --text-heading-3-size: 20px;
  --text-heading-3-lh: 28px;
  --text-heading-3-card-lh: 30px;
  --text-heading-3-sm-size: 18px;
  --text-heading-3-sm-lh: 28px;
  --text-heading-4-size: 16px;
  --text-heading-4-lh: 24px;

  --text-body-lg-size: 20px;
  --text-body-lg-lh: 28px;
  --text-body-md-size: 16px;
  --text-body-md-lh: 24px;
  --text-body-sm-size: 14px;
  --text-body-sm-lh: 20px;

  --text-label-lg-size: 18px;
  --text-label-lg-lh: 28px;
  --text-label-md-size: 16px;
  --text-label-md-lh: 24px;
  --text-label-cta-size: 18px;
  --text-label-cta-lh: 28px;
  --text-label-xs-size: 12px;
  --text-label-xs-lh: 16px;

  --text-logo-size: 24px;
  --text-logo-lh: 32px;
  --text-mono-sm-size: 14px;
  --text-mono-sm-lh: 20px;

  /* --- Начертания (variable font, диапазон 200..700) --- */
  --fw-extralight: 200;
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;

  /* --- Трекинг (в :root бандла нет, кроме display-3/4; вынесли фактические значения) --- */
  --tracking-eyebrow: 0.08em;      /* +ours: из .SectionHeading__eyebrow */
  --tracking-counter: -0.035em;    /* +ours: из .counter (счётчик предпродажи) */

  /* --- Шкала отступов --- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --space-20: 80px;
  --space-32: 128px;

  /* --- Контейнеры --- */
  --container-narrow: 896px;
  --container-medium: 1024px;
  --container-wide: 1152px;
  --container-gutter-sm: 16px;   /* +ours: фактический padding-inline контейнера < 640px */
  --container-gutter-md: 24px;   /* +ours: >= 640px */
  --container-gutter-lg: 32px;   /* +ours: >= 1024px */
  --container-max-extra: 64px;   /* +ours: max-width = calc(container + 64px) */
  --container-narrow-max: 960px; /* +ours, вычислено: 896 + 64 */
  --container-medium-max: 1088px;/* +ours, вычислено: 1024 + 64 */
  --container-wide-max: 1216px;  /* +ours, вычислено: 1152 + 64 */

  /* --- Брейкпоинты --- */
  --bp-sm: 640px;
  --bp-md: 1024px;
  --bp-lg: 1280px;
  /* Ниже — границы из медиазапросов бандла. В бандле они записаны как max-width
     на пиксель меньше, здесь приведены к min-width, как sm/md/lg выше. */
  --bp-xxs: 421px;     /* +ours, вычислено: @media (width <= 420px) */
  --bp-xs: 480px;      /* +ours, вычислено: @media (width <= 479px) */
  --bp-tablet: 768px;  /* +ours, вычислено: @media (width <= 767px) */
  --bp-header: 1200px; /* +ours, вычислено: @media (width <= 1199px), шапка в бургер */

  /* --- Радиусы --- */
  --radius-card-sm: 14px;
  --radius-card-md: 16px;
  --radius-card-lg: 24px;
  --radius-card-action: 15px;
  --radius-pill: 9999px;
  --radius-input: 10px;   /* +ours: фактический border-radius инпутов */
  --radius-xs: 4px;       /* +ours: фактический радиус мелких фокус-рамок */
  --radius-header-desktop: 90px; /* +ours: плавающая шапка */
  --radius-header-mobile: 60px;  /* +ours: шапка ниже bp-header */

  /* --- Границы --- */
  --border-default: 1px solid var(--color-border-default);
  --border-strong: 2px solid var(--color-border-strong);
  --border-accent: 2px solid var(--color-border-accent);

  /* --- Тени --- */
  --shadow-elevation-1: 0 4px 4px 0 #00000040;
  --shadow-elevation-blue: 0 24px 80px #0059ff1a, inset 0 1px 0 #ffffffc7;
  /* ниже — фактические тени из компонентов, в :root бандла их нет */
  --shadow-header-scrolled: 0 6px 24px #0b102a14;   /* +ours */
  --shadow-card-soft: 0 12px 32px #0b102a14;        /* +ours */
  --shadow-card-raised: 0 18px 54px #0b102a1a;      /* +ours */
  --shadow-card-deep: 0 24px 60px #0b102a38;        /* +ours */
  --shadow-focus-accent: 0 0 0 3px #0066ff26;       /* +ours */
  --shadow-focus-danger: 0 0 0 3px #ef444426;       /* +ours */
  --shadow-header-glass-inset: inset 0 0 17.8px #ffffff59; /* +ours */

  /* --- Размытие (backdrop-filter) --- */
  --blur-glass-sm: 3px;    /* +ours */
  --blur-glass: 6px;       /* +ours: самый частый */
  --blur-glass-md: 8px;    /* +ours */
  --blur-glass-lg: 10px;   /* +ours */
  --blur-glass-xl: 18px;   /* +ours */

  /* --- Движение: длительности переходов --- */
  --duration-instant: 0.1s; /* +ours */
  --duration-fast: 0.15s;   /* +ours: базовая длительность интерактива */
  --duration-quick: 0.18s;  /* +ours */
  --duration-base: 0.2s;    /* +ours */
  --duration-medium: 0.22s; /* +ours */
  --duration-slow: 0.25s;   /* +ours: выезд мобильного меню */

  /* --- Движение: длительности анимаций --- */
  --duration-spin: 0.7s;                /* +ours: спиннер */
  --duration-spin-reduced: 1.6s;        /* +ours: спиннер под reduced-motion */
  --duration-to-top-enter: 0.2s;        /* +ours: появление кнопки «наверх» */
  --duration-roadmap-pulse: 2.2s;       /* +ours */
  --duration-pulse-flow: 5.2s;          /* +ours */
  --duration-pulse-flow-reverse: 4.4s;  /* +ours */
  --duration-pulse-dot: 2.4s;           /* +ours */

  /* --- Движение: кривые --- */
  --ease-out: ease-out;     /* +ours */
  --ease-in-out: ease-in-out; /* +ours */
  --ease-linear: linear;    /* +ours */

  /* --- Высоты интерактивных элементов --- */
  --control-h-sm: 32px;   /* +ours: Button size-sm */
  --control-h-md: 44px;   /* +ours: Button size-md */
  --control-h-lg: 60px;   /* +ours: Button size-lg */
  --control-h-xl: 64px;   /* +ours: Button size-xl */
  --control-h-input: 52px;/* +ours: Input */
  --control-h-burger: 44px;/* +ours: кнопка бургера, 44x44 */

  /* --- Раскладка страницы --- */
  --header-h: 76px;                   /* +ours: высота шапки на десктопе */
  --header-h-mobile: 64px;            /* +ours: ниже bp-header */
  --header-offset-top: 40px;          /* +ours: отступ плавающей шапки сверху */
  --header-offset-top-mobile: 16px;   /* +ours: ниже bp-header */
  --header-max-width: 1495px;         /* +ours */
  --scroll-padding-top: 132px;        /* +ours: якоря на десктопе */
  --scroll-padding-top-mobile: 96px;  /* +ours: ниже bp-md */
  --section-padding-block: 80px;      /* +ours: вертикальный ритм секции */
  --section-padding-block-md: 64px;   /* +ours: <= 1023px */
  --section-padding-block-sm: 48px;   /* +ours: <= 639px */

  /* --- Слои --- */
  --z-header: 50;          /* +ours */
  --z-menu-backdrop: 40;   /* +ours */
}

/* ---------------------------------------------------------------------------
 * Кейфреймы бандла. Имена с префиксом erubl-, чтобы не столкнуться с классами
 * сайтов-спутников. Пока не вызваны в animation — на страницу не влияют.
 * ------------------------------------------------------------------------- */

@keyframes erubl-spin360 {
  to { transform: rotate(360deg); }
}

@keyframes erubl-to-top-enter {
  0% { opacity: 0; transform: translateY(12px); }
}

@keyframes erubl-roadmap-pulse {
  0% { box-shadow: 0 0 #0066ff80; }
  70% { box-shadow: 0 0 0 18px #0066ff00; }
  to { box-shadow: 0 0 #0066ff00; }
}

@keyframes erubl-pulse-flow {
  to { stroke-dashoffset: -641px; }
}

@keyframes erubl-pulse-flow-reverse {
  to { stroke-dashoffset: 515px; }
}

@keyframes erubl-pulse-dot {
  0%, 100% { opacity: 0.72; }
  50% { opacity: 1; }
}

/* Тёмная темы в бандле erub.site НЕТ:
   ни prefers-color-scheme, ни data-theme, ни .dark в CSS/JS не встречаются.
   Сайт работает только в светлой схеме (meta theme-color = #ffffff). */
