/*
 * tokens.css — v2 единый источник истины (CLAUDE_CODE_BRIEF.md §2).
 * Загружается ПЕРВЫМ, до inline/site CSS.
 * Accent #6C5CE7 зафиксирован — единственный; success #4ADE80 только для форм.
 */

:root {
  /* ========== ФОН И СТРУКТУРА ========== */
  --bg:           #0A0A0A;
  --bg-elev:      #101015;
  --bg-deep:      #16161D;

  /* ========== ТЕКСТ ========== */
  --ink:          #FFFFFF;
  --ink-muted:    rgba(255, 255, 255, 0.64);
  --ink-dim:      rgba(255, 255, 255, 0.40);
  --on-accent:    #FFFFFF;

  /* ========== ACCENT (единственный) ========== */
  --accent:        #6C5CE7;
  --accent-hover:  #5A4BD4;
  --accent-light:  #A29BFE;
  --accent-soft:   rgba(108, 92, 231, 0.15);
  --accent-ring:   rgba(108, 92, 231, 0.30);

  /* ========== СОСТОЯНИЯ (не accent) ========== */
  --success:       #4ADE80;
  --success-soft:  rgba(74, 222, 128, 0.15);
  --warn:          #F5A623;
  --warn-soft:     rgba(245, 166, 35, 0.15);
  --danger:        #EF4444;

  /* ========== ПОВЕРХНОСТИ ========== */
  --surface:       rgba(255, 255, 255, 0.04);
  --surface-hover: rgba(255, 255, 255, 0.06);
  --border:        rgba(255, 255, 255, 0.08);

  /* ========== ТИПОГРАФИКА ========== */
  --font-display:  "Inter Tight", "Inter", system-ui, -apple-system, sans-serif;
  --font-body:     "Inter", system-ui, -apple-system, sans-serif;

  /* ========== ТАЙМИНГИ ========== */
  --dur-hover:     0.35s;
  --dur-entrance:  1.00s;
  --dur-hero:      1.10s;
  --dur-snap:      0.12s;
  --dur-fast:      0.20s;

  /* ========== EASING ========== */
  --ease-brand:    cubic-bezier(0.22, 1, 0.36, 1);
  --ease-expo:     cubic-bezier(0.19, 1, 0.22, 1);
  --ease-quart:    cubic-bezier(0.25, 1, 0.5, 1);
  --ease-back:     cubic-bezier(0.34, 1.56, 0.64, 1);

  /* ========== РАДИУСЫ ========== */
  --r-sm:   8px;
  --r-md:   16px;
  --r-lg:   24px;
  --r-xl:   32px;
  --r-pill: 1000px;

  /* ========== ТЕНИ ========== */
  --shadow-cta:   0 8px 30px var(--accent-ring);
  --shadow-card:  0 20px 60px rgba(0, 0, 0, 0.30);
  --shadow-lift:  0 4px 16px rgba(0, 0, 0, 0.20);
  --shadow-nav:   0 4px 30px rgba(0, 0, 0, 0.30);

  /* ========== Z-INDEX ========== */
  --z-nav:     100;
  --z-fab:     90;
  --z-gdpr:    150;
  --z-modal:   200;
}

/* ========== ACCESSIBILITY ========== */

/* Focus-visible для клавиатурной навигации (§15 playbook). */
:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 4px;
}
:focus:not(:focus-visible) { outline: none; }

/* prefers-reduced-motion — уважаем выбор. */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* js-gated — элементы скрыты до инициализации GSAP (anti-FOUC).
   Снимается через gsap.set({visibility:'visible'}) в heroIn() (Phase 2).
   Safety-таймер 3с + <noscript> fallback гарантируют показ при сбое JS. */
.js-gated {
  visibility: hidden;
}
.hero-safe-fallback .js-gated {
  visibility: visible;
}
