/* =========================================================
   ДАРСИ — лёгкие анимации появления.
   Классы навешивает reveal.js, чтобы не засорять разметку.
   ========================================================= */

.r-anim{
  opacity:0;
  transform:translate3d(0,18px,0);
  transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.3,1);
}
.r-in{opacity:1; transform:none}

/* ---------- первый экран: мягкий вход при загрузке ---------- */
@keyframes heroUp{
  from{opacity:0; transform:translate3d(0,22px,0)}
  to{opacity:1; transform:none}
}
.hero__title,.hero__sub,.hero__cta,.hero__badges .badge,.facts__item{
  animation:heroUp .9s cubic-bezier(.2,.7,.3,1) both;
}
.hero__title{animation-delay:.05s}
.hero__sub{animation-delay:.15s}
.hero__cta{animation-delay:.25s}
.hero__badges .badge:nth-child(1){animation-delay:.30s}
.hero__badges .badge:nth-child(2){animation-delay:.38s}
.facts__item:nth-child(1){animation-delay:.34s}
.facts__item:nth-child(2){animation-delay:.40s}
.facts__item:nth-child(3){animation-delay:.46s}
.facts__item:nth-child(4){animation-delay:.52s}

/* ---------- микро-отклик на наведение ---------- */
.nav__link,.icon-btn,.phone{transition:background .25s ease, color .25s ease, transform .25s ease}
.nav__link:hover,.icon-btn:hover,.phone:hover{transform:translateY(-1px)}
.btn,.qform__btn,.fmt-card__btn,.mobile-bar__btn--primary{will-change:transform}
.qopt,.tag{backface-visibility:hidden}
.tag{transition:transform .3s ease}

@media (prefers-reduced-motion:reduce){
  .r-anim,.hero__title,.hero__sub,.hero__cta,.hero__badges .badge,.facts__item{
    opacity:1 !important; transform:none !important; animation:none !important;
  }
  .nav__link:hover,.icon-btn:hover,.phone:hover{transform:none}
}
