@keyframes fadeInUpBlur {
  0% { opacity: 0; transform: translateY(20px); filter: blur(10px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0); }
}
.animate-entry {
  animation: fadeInUpBlur 1s cubic-bezier(0.2,0.8,0.2,1) both;
}
.delay-75 { animation-delay: 75ms; }
.delay-100 { animation-delay: 100ms; }
.delay-150 { animation-delay: 150ms; }
.delay-200 { animation-delay: 200ms; }
.delay-300 { animation-delay: 300ms; }
.delay-500 { animation-delay: 500ms; }
.delay-700 { animation-delay: 700ms; }

@keyframes animationIn {
  0% { opacity: 0; transform: translateY(30px); filter: blur(8px); }
  100% { opacity: 1; transform: translateY(0); filter: blur(0px); }
}

@keyframes flow {
  from { stroke-dashoffset: 24; }
  to { stroke-dashoffset: 0; }
}
.animate-flow {
  animation: flow 1s linear infinite;
}

.animate-on-scroll { animation-play-state: paused !important; }
.animate-on-scroll.animate { animation-play-state: running !important; }
