/* ============================================================
   Cuctus site — единая дизайн-система (theme.css v1)
   Подключается на каждой странице последним стилем в <head>,
   поэтому мягко выравнивает палитру, типографику и компоненты:
   один и тот же шрифт, один зелёный, одни скроллбары и фокус-ринги.
   Ничего не ломает: правки только добавляющие или через CSS-переменные.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Onest:wght@400;500;600;700;800;900&family=Unbounded:wght@500;600;700;800&display=swap');

:root {
  /* --- единая «кактусовая» палитра --- */
  --cc-bg: #09090b;
  --cc-surface: #0d0f12;
  --cc-line: rgba(255, 255, 255, .09);
  --cc-mint: #10b981;
  --cc-mint-2: #059669;
  --cc-mint-3: #34d399;
  --cc-mint-4: #6ee7b7;
  --cc-t1: #f4f4f5;
  --cc-t2: #a1a1aa;
  --cc-t3: #71717a;
  --cc-glow: 0 0 24px rgba(16, 185, 129, .25);

  /* --- одна типографика на весь сайт --- */
  --font: 'Onest', 'Segoe UI', system-ui, -apple-system, Roboto, Arial, sans-serif;
  --font-display: 'Onest', 'Segoe UI', system-ui, sans-serif;
  --font-mono: 'Fira Code', 'JetBrains Mono', Consolas, ui-monospace, monospace;

  /* --- лендинг: сводим зелёные к единой мяте --- */
  --accent: #10b981;
  --accent2: #34d399;
  --accent-deep: #059669;
  --accent-soft: rgba(16, 185, 129, .14);
}

/* ---------- база ---------- */
html { scroll-behavior: smooth; }
body { font-family: var(--font); }

::selection { background: rgba(16, 185, 129, .32); color: #fff; }

:focus-visible {
  outline: 2px solid rgba(52, 211, 153, .65);
  outline-offset: 2px;
  border-radius: 6px;
}

/* ---------- скроллбары: тонкие, мятные, везде одинаковые ---------- */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(16, 185, 129, .45) rgba(255, 255, 255, .04);
}
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: rgba(255, 255, 255, .03); }
*::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, rgba(52, 211, 153, .55), rgba(16, 185, 129, .35));
  border-radius: 8px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
*::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #34d399, #10b981);
  background-clip: padding-box;
}

/* ---------- ambient-слой всегда ПОД контентом ----------
    Слои effects3d опускаются на z-index:-1: они рисуются над фоном body,
    но под всем контентом — не нужно трогать позиционирование страниц
    (sticky/fixed шапки продолжают работать как раньше). */
body #cc3d-ambient,
body #cc3d-motes,
body #cc3d-sparks {
  z-index: -1;
}

/* Кубическая 3D-сцена на лендинге убрана — она перекрывала текст.
   Оставляем только амбиент (орбы, частицы), контент всегда сверху. */
.cc-landing #cc3d-biome {
  display: none !important;
}

/* ---------- навигация: единое стекло и мягкие ховеры ---------- */
header nav a,
header nav button {
  transition: color .25s ease, background .25s ease, opacity .25s ease, transform .25s ease;
}
header nav a:hover { transform: translateY(-1px); }

/* ---------- сообщения форм: единые цвета ---------- */
.msg.err { color: #f87171; }
.msg.ok  { color: var(--cc-mint-3); }

/* ---------- карточки: мягкий 3D-подъём там, где их не ведёт effects3d ---------- */
@supports (transform: perspective(1px)) {
  body:not([data-cc-ambient]) .card:hover {
    transform: translateY(-2px);
  }
}
