/* Landing (Figma template feel) — animations + small utilities.
   Keep it minimal and non-breaking: only adds rp-* helpers and a few generic animation classes used by our landing components. */

@keyframes rp-fade-up {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes rp-float {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, -14px, 0); }
}

@keyframes rp-float-slow {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50% { transform: translate3d(0, 10px, 0); }
}

.rp-anim-fadeup {
  animation: rp-fade-up 0.55s ease-out both;
}
.rp-delay-1 { animation-delay: 0.10s; }
.rp-delay-2 { animation-delay: 0.20s; }
.rp-delay-3 { animation-delay: 0.30s; }

/* Scroll reveal (template-like): add .rp-inview from JS observer */
.rp-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 520ms ease-out, transform 520ms ease-out;
  will-change: opacity, transform;
}
.rp-reveal.rp-inview {
  opacity: 1;
  transform: translateY(0);
}
.rp-reveal.rp-delay-1 { transition-delay: 90ms; }
.rp-reveal.rp-delay-2 { transition-delay: 180ms; }
.rp-reveal.rp-delay-3 { transition-delay: 270ms; }

/* Navbar dropdown: tiny enter animation (like template). */
@keyframes rp-menu-in {
  from { opacity: 0; transform: translateY(-12px); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-in { animation: rp-menu-in 0.18s ease-out both; }
.fade-in { }
.slide-in-from-top-4 { }
.duration-200 { }

/* Hero background blobs */
.rp-hero-blobs {
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}
.rp-hero-blob {
  position: absolute;
  width: 38vmin;
  height: 38vmin;
  border-radius: 9999px;
  filter: blur(120px);
  opacity: 0.60;
}
.rp-hero-blob-1 {
  top: -10%;
  left: -10%;
  background: rgba(99, 102, 241, 0.16); /* indigo */
  animation: rp-float 7s ease-in-out infinite;
}
.rp-hero-blob-2 {
  bottom: -10%;
  right: -10%;
  background: rgba(59, 130, 246, 0.12); /* blue */
  animation: rp-float-slow 9s ease-in-out infinite;
}

/* Section background accents */
.rp-section-soft {
  position: relative;
  overflow: hidden;
}
.rp-section-soft::before,
.rp-section-soft::after {
  content: "";
  position: absolute;
  width: 44vmin;
  height: 44vmin;
  border-radius: 9999px;
  filter: blur(120px);
  opacity: 0.55;
  pointer-events: none;
  z-index: 0;
}
.rp-section-soft::before {
  top: -18%;
  left: -14%;
  background: rgba(99, 102, 241, 0.10);
}
.rp-section-soft::after {
  bottom: -18%;
  right: -14%;
  background: rgba(59, 130, 246, 0.08);
}
.rp-section-inner {
  position: relative;
  z-index: 1;
}

@media (prefers-reduced-motion: reduce) {
  .rp-anim-fadeup,
  .animate-in,
  .rp-hero-blob-1,
  .rp-hero-blob-2 {
    animation: none !important;
  }
  .rp-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

