/* Reveal anim */
.reveal { opacity: 0; transform: translateY(14px); transition: 700ms ease; }
.reveal.is-in { opacity: 1; transform: translateY(0); }

/* Paket hover */
.package-card { transition: 220ms ease; }
.package-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0,0,0,.12); }

/* Hero floating */
.floating-hearts{
  position:absolute; inset:-40px;
  background-image:
    radial-gradient(circle at 10% 20%, rgba(255,255,255,.35) 0 2px, transparent 3px),
    radial-gradient(circle at 70% 40%, rgba(255,255,255,.25) 0 2px, transparent 3px),
    radial-gradient(circle at 40% 80%, rgba(255,255,255,.22) 0 2px, transparent 3px);
  animation: floatHearts 8s linear infinite;
  filter: blur(.2px);
}
@keyframes floatHearts{
  0%{ transform: translateY(0); opacity:.55; }
  50%{ transform: translateY(-10px); opacity:.75; }
  100%{ transform: translateY(0); opacity:.55; }
}

/* Video tile micro interaction */
.video-tile { transition: 200ms ease; }
.video-tile:hover { transform: translateY(-2px); }
.video-tile video { transform: scale(1); transition: 260ms ease; }
.video-tile:hover video { transform: scale(1.03); }
.video-tile:active { transform: scale(.99); }
