/* Тайган · Animations */

/* ── Scroll reveal ── */
[data-anim] {
  transition:
    opacity   var(--dur-s) var(--ease-out),
    transform var(--dur-s) var(--ease-out);
}
[data-anim]:not(.visible)         { opacity: 0; }
[data-anim="up"]:not(.visible)    { transform: translateY(44px); }
[data-anim="left"]:not(.visible)  { transform: translateX(-44px); }
[data-anim="right"]:not(.visible) { transform: translateX(44px); }
[data-anim="scale"]:not(.visible) { transform: scale(.92); }
[data-anim].visible               { opacity: 1; transform: none; }

/* ── Stagger delays ── */
[data-delay="1"] { transition-delay: .10s; }
[data-delay="2"] { transition-delay: .20s; }
[data-delay="3"] { transition-delay: .32s; }
[data-delay="4"] { transition-delay: .44s; }
[data-delay="5"] { transition-delay: .56s; }
[data-delay="6"] { transition-delay: .68s; }

/* ── Hero entrance keyframes ── */
@keyframes heroSlide {
  from { opacity: 0; transform: translateY(56px) skewY(2deg); }
  to   { opacity: 1; transform: none; }
}
@keyframes heroFade {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: none; }
}
.hero-word { animation: heroSlide .75s var(--ease-out) both; }
.hero-sub  { animation: heroFade  .65s var(--ease-out) .25s both; }
.hero-cta  { animation: heroFade  .55s var(--ease-out) .45s both; }

/* ── Page enter ── */
@keyframes pageIn {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: none; }
}
.page-enter { animation: pageIn .55s var(--ease-out) both; }

/* ── Continuous ── */
@keyframes floatY {
  0%, 100% { transform: translateY(0px); }
  50%       { transform: translateY(-10px); }
}
@keyframes bounceDown {
  0%, 100% { transform: translateY(0); opacity: .5; }
  50%       { transform: translateY(6px); opacity: 1; }
}
@keyframes shimmer {
  from { background-position: -200% 0; }
  to   { background-position:  200% 0; }
}

/* ── Skeleton loading ── */
.skeleton {
  background: linear-gradient(90deg, var(--surf-2) 25%, var(--surf) 50%, var(--surf-2) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.4s ease infinite;
  border-radius: var(--r-sm);
}

/* ── Card hover lift ── */
.lift {
  transition: transform var(--dur-m) var(--ease-out), box-shadow var(--dur-m) var(--ease-out);
}
.lift:hover { transform: translateY(-6px); box-shadow: var(--sh-lg); }
