/* Core animations for contact page */
:root{
  --brand-glow: 0 10px 40px rgba(16,185,129,0.12);
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .reveal, .float { animation: none !important; transition: none !important; }
}

/* Fade + slight zoom (used on hero bg image) */
@keyframes fadeZoomIn {
  from { opacity: 0; transform: scale(1.03); }
  to   { opacity: 1; transform: scale(1); }
}
.animate-fadeZoomIn, .animate-fadeZoomIn.hero-parallax { animation: fadeZoomIn 900ms cubic-bezier(.22,.9,.3,1) both; }
.animate-fadeZoomIn { /* fallback class if used */ }

/* Reveal from below */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
.reveal.in { opacity: 1; transform: translateY(0); }

/* Stagger helper */
.reveal.delay-200 { transition-delay: .2s; }
.reveal.delay-350 { transition-delay: .35s; }
.reveal.delay-500 { transition-delay: .5s; }

/* Floating micro animation */
@keyframes floaty {
  0% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
  100% { transform: translateY(0); }
}
.float { animation: floaty 6s ease-in-out infinite; }

/* Soft glow used for CTA */
.pulse-glow {
  box-shadow: var(--brand-glow);
  transition: box-shadow .25s ease, transform .18s ease;
}
.pulse-glow:hover { transform: translateY(-3px); box-shadow: 0 18px 60px rgba(16,185,129,0.16); }

/* Sparkle text (subtle horizontal shimmer) */
.sparkle-text {
  position: relative;
  overflow: hidden;
}
.sparkle-text::after{
  content: "";
  position: absolute;
  top: -30%;
  left: -60%;
  width: 40%;
  height: 160%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.06), transparent);
  transform: rotate(12deg);
  transition: transform .8s ease;
}
.sparkle-text:hover::after{ transform: translateX(220%) rotate(12deg); }

/* small card shadow */
.shadow-card { box-shadow: 0 8px 30px rgba(2,6,23,0.6); border-radius: 16px; }

/* parallax allow */
.hero-parallax { transform: translateZ(0); will-change: transform; }