@keyframes fadeInUp {
  from { opacity:0; transform:translateY(30px); }
  to { opacity:1; transform:translateY(0); }
}
.anim-fade-up { animation:fadeInUp 0.8s ease-out both; }
.anim-delay-1 { animation-delay:0.1s; }
.anim-delay-2 { animation-delay:0.2s; }
.anim-delay-3 { animation-delay:0.3s; }

/* Floating shapes */
.floating-shapes { position:absolute; inset:0; pointer-events:none; z-index:0; overflow:hidden; }
.floating-shape {
  position:absolute; border-radius:50%; filter:blur(80px); opacity:0.3;
  animation:floatShape 12s ease-in-out infinite;
}
.floating-shape:nth-child(1) { width:300px; height:300px; background:#6c5ce7; top:10%; left:5%; }
.floating-shape:nth-child(2) { width:200px; height:200px; background:#06b6d4; top:50%; right:8%; animation-delay:-4s; }
.floating-shape:nth-child(3) { width:250px; height:250px; background:#f472b6; bottom:15%; left:30%; animation-delay:-8s; }
@keyframes floatShape {
  0%,100% { transform:translate(0,0) scale(1); }
  25% { transform:translate(40px,-30px) scale(1.1); }
  50% { transform:translate(-20px,20px) scale(0.9); }
  75% { transform:translate(-35px,-15px) scale(1.05); }
}