@keyframes cardDrop {
  0% {
    opacity: 0;
    transform: translateY(-180px) rotate(-4deg) scale(0.85);
  }
  55% {
    transform: translateY(14px) rotate(1.5deg) scale(1.02);
    opacity: 1;
  }
  75% {
    transform: translateY(-6px) rotate(-0.8deg) scale(0.99);
  }
  90% {
    transform: translateY(3px) rotate(0.4deg) scale(1.005);
  }
  100% {
    transform: translateY(0) rotate(var(--card-tilt, 0deg)) scale(1);
    opacity: 1;
  }
}

.stmt-card--1 { --card-tilt: -1.2deg; }
.stmt-card--2 { --card-tilt:  0.8deg; }
.stmt-card--3 { --card-tilt: -0.5deg; }

.stmt-card.drop-ready {
  opacity: 0;
}

.stmt-card.drop-go {
  animation: cardDrop 0.75s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.stmt-card--1.drop-go { animation-delay: 0.10s; }
.stmt-card--2.drop-go { animation-delay: 0.32s; }
.stmt-card--3.drop-go { animation-delay: 0.54s; }

.anim-fade-up {
  opacity: 0;
  transform: translateY(48px);
  transition: opacity 0.75s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.75s cubic-bezier(0.16, 1, 0.3, 1);
}

.anim-slide-left {
  opacity: 0;
  transform: translateX(-60px);
  transition: opacity 0.80s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.80s cubic-bezier(0.16, 1, 0.3, 1);
}

.anim-slide-right {
  opacity: 0;
  transform: translateX(60px);
  transition: opacity 0.80s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.80s cubic-bezier(0.16, 1, 0.3, 1);
}

.anim-scale-up {
  opacity: 0;
  transform: scale(0.88);
  transition: opacity 0.70s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.70s cubic-bezier(0.16, 1, 0.3, 1);
}

.anim-zoom-in {
  opacity: 0;
  transform: scale(0.80);
  transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
              transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
}

.anim-fade-up.in-view,
.anim-slide-left.in-view,
.anim-slide-right.in-view,
.anim-scale-up.in-view,
.anim-zoom-in.in-view {
  opacity: 1;
  transform: none;
}

.anim-d1 { transition-delay: 0.08s; }
.anim-d2 { transition-delay: 0.18s; }
.anim-d3 { transition-delay: 0.28s; }
.anim-d4 { transition-delay: 0.38s; }
.anim-d5 { transition-delay: 0.48s; }
.anim-d6 { transition-delay: 0.58s; }

.anim-heading-line::after {
  content: '';
  display: block;
  width: 0;
  height: 3px;
  background: var(--terra, #C84B2A);
  border-radius: 2px;
  margin-top: 10px;
  transition: width 0.9s cubic-bezier(0.16, 1, 0.3, 1) 0.3s;
}
.anim-heading-line.in-view::after { width: 100%; }

.room-circle.anim-zoom-in.in-view {
  animation: roomPulse 0.6s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes roomPulse {
  0%   { transform: scale(0.80); opacity: 0; }
  60%  { transform: scale(1.04); opacity: 1; }
  100% { transform: scale(1.00); opacity: 1; }
}

.ticker-bar.anim-fade-up {
  transition-delay: 0.1s;
}

.rv-card.anim-scale-up.in-view {
  animation: cardFlip 0.65s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes cardFlip {
  0%   { opacity: 0; transform: scale(0.85) translateY(20px); }
  100% { opacity: 1; transform: scale(1) translateY(0); }
}

.val-card.anim-fade-up { will-change: opacity, transform; }

.day-row.anim-slide-left,
.day-row.anim-slide-right {
  transition-duration: 0.85s;
}
