/* Animations and helpers */
:root {
  --anim-fast: 200ms;
  --anim-normal: 400ms;
  --anim-slow: 800ms;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

.fade-in {
  animation: fadeIn var(--anim-normal) var(--ease-out) both;
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.scale-in {
  animation: scaleIn var(--anim-normal) var(--ease-out) both;
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.98); }
  to { opacity: 1; transform: scale(1); }
}

.float-y {
  animation: floatY 6s ease-in-out infinite;
}
@keyframes floatY {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

/* Utility to delay animation */
.anim-delay-1 { animation-delay: .1s; }
.anim-delay-2 { animation-delay: .2s; }
.anim-delay-3 { animation-delay: .3s; }
.anim-delay-4 { animation-delay: .4s; }
