/* Animasi halus; otomatis dikurangi jika pengunjung mengaktifkan reduced motion. */
.reveal {
  opacity:0;
  transform:translateY(18px);
  transition:opacity .65s ease,transform .65s ease
}
.reveal.is-visible {
  opacity:1;
  transform:translateY(0)
}
.hero-frame {
  animation:float-frame 7s ease-in-out infinite
}
.floating-chip {
  animation:float-chip 5s ease-in-out infinite
}
.chip-bottom {
  animation-delay:-2s
}
@keyframes float-frame {
  0%,100% {
    transform:translateY(0) rotate(2deg)
  }
  50% {
    transform:translateY(-10px) rotate(1deg)
  }
}
@keyframes float-chip {
  0%,100% {
    translate:0 0
  }
  50% {
    translate:0 -7px
  }
}
@media (prefers-reduced-motion:reduce) {
  .reveal,.hero-frame,.floating-chip {
    opacity:1;
    transform:none;
    animation:none;
    transition:none
  }
}
