/* === Вторые руки — «банковская» анимация (сдержанная, строгая) ===
   Общие ассеты для дашборда, аналитики, отзывов и др.
   Всё уважает prefers-reduced-motion. */

:root{ --vr-anim-ease:cubic-bezier(.2,.8,.2,1); }

/* Плавное «всплывание» блоков при появлении в поле зрения */
.vr-reveal{
  opacity:0;
  transform:translateY(12px);
  transition:opacity .55s var(--vr-anim-ease), transform .55s var(--vr-anim-ease);
  will-change:opacity, transform;
}
.vr-reveal.vr-in{ opacity:1; transform:none; }

/* Растущие полоски/столбцы (ширина или высота задаётся из JS по data-grow) */
[data-grow]{
  transition:width .9s var(--vr-anim-ease), height .9s var(--vr-anim-ease) !important;
}

/* Число в процессе набегания — чуть плотнее межбуквенное, «табличные» цифры */
.vr-counting{ font-variant-numeric:tabular-nums; }

/* Мягкий ховер-подъём для карточек-плиток на кастомных страницах */
.vr-lift{ transition:transform .18s var(--vr-anim-ease), box-shadow .18s ease; }
.vr-lift:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(0,0,0,.10); }

/* Деликатная пульсация «живого» индикатора (напр., автообновление чата) */
@keyframes vrPulse{ 0%,100%{opacity:.35;} 50%{opacity:1;} }
.vr-live{ animation:vrPulse 1.8s ease-in-out infinite; }

@media (prefers-reduced-motion: reduce){
  .vr-reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
  [data-grow]{ transition:none !important; }
  .vr-live{ animation:none !important; }
  .vr-lift:hover{ transform:none !important; }
}
