@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-18px); }
}

@keyframes heroIn {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes heroImgIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* ── Wolf image: fade in first, then float ── */
.wolf-img {
  animation: heroImgIn 0.8s ease 0.1s both,
             float 6s ease-in-out 1s infinite !important;
}

/* ── Hero text entrance ── */
.hero-tag               { animation: heroIn 0.6s ease 0.35s both; }
.hero-title             { animation: heroIn 0.6s ease 0.55s both; }
.hero-sub               { animation: heroIn 0.6s ease 0.75s both; }
#home .btn-primary-custom { animation: heroIn 0.6s ease 0.9s  both; }
#home .btn-outline-custom { animation: heroIn 0.6s ease 1.05s both; }

/* ── Scroll reveals ── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal.visible { opacity: 1; transform: translateY(0); }

.reveal-left {
  opacity: 0;
  transform: translateX(-50px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal-right {
  opacity: 0;
  transform: translateX(50px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal-left.visible  { opacity: 1; transform: translateX(0); }
.reveal-right.visible { opacity: 1; transform: translateX(0); }

.reveal-scale {
  opacity: 0;
  transform: scale(0.93) translateY(20px);
  transition: opacity 0.75s ease, transform 0.75s ease;
}
.reveal-scale.visible { opacity: 1; transform: scale(1) translateY(0); }

/* ── Stagger delays ── */
.delay-1 { transition-delay: 0.1s;  }
.delay-2 { transition-delay: 0.25s; }
.delay-3 { transition-delay: 0.42s; }
.delay-4 { transition-delay: 0.58s; }
.delay-5 { transition-delay: 0.75s; }
