/* ===== Digital Crystal Motion — premium smooth scroll ===== */

/* Учитываем системное "уменьшить анимацию" */
@media (prefers-reduced-motion: reduce) {
  .dc-anim,
  .dc-anim.dc-anim--visible {
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}

/* Базовая анимация: мягкий fade + лёгкий подъём + micro-scale */
.dc-anim {
  opacity: 0;
  transform: translate3d(0, 26px, 0) scale(0.985);
  will-change: opacity, transform;
  transition:
    opacity 1s cubic-bezier(0.26, 0.84, 0.44, 1),
    transform 1s cubic-bezier(0.26, 0.84, 0.44, 1);
}

/* Видимое состояние */
.dc-anim.dc-anim--visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

/* Герой — чуть более "глубокий" вход */
.dc-anim--hero {
  transform: translate3d(0, 40px, 0) scale(0.98);
  transition-duration: 1.25s;
}

/* Быстрее для мелких элементов (бейджи, кнопки и т.п.) */
.dc-anim--fast {
  transition-duration: 0.75s;
}

/* Вариации направления — можно использовать точечно */
.dc-anim--left {
  transform: translate3d(-30px, 10px, 0) scale(0.985);
}
.dc-anim--right {
  transform: translate3d(30px, 10px, 0) scale(0.985);
}
.dc-anim--left.dc-anim--visible,
.dc-anim--right.dc-anim--visible {
  transform: translate3d(0, 0, 0) scale(1);
}

/* На мобиле — чуть меньше сдвиг и короче по времени */
@media screen and (max-width: 640px) {
  .dc-anim {
    transform: translate3d(0, 20px, 0) scale(0.985);
    transition-duration: 0.9s;
  }

  .dc-anim--hero {
    transform: translate3d(0, 30px, 0) scale(0.985);
    transition-duration: 1.05s;
  }
}

/* Ручной выключатель, если где-то нужно совсем без анимации */
.dc-noanim,
.dc-noanim * {
  opacity: 1 !important;
  transform: none !important;
  transition: none !important;
}
