/* Duration Utilities */
.speedBlitz {
  animation-duration: 0.3s !important;
}

.speedQuick {
  animation-duration: 0.6s !important;
}

.speedChill {
  animation-duration: 1.2s !important;
}

.speedDrift {
  animation-duration: 2s !important;
}

.speedSnail {
  animation-duration: 3s !important;
}

/* Delay Utilities */
.delay1 {
  animation-delay: 0.25s !important;
}

.delay2 {
  animation-delay: 0.5s !important;
}

.delay3 {
  animation-delay: 1s !important;
}

.delay5 {
  animation-delay: 2s !important;
}

/* Easing Utilities */
.easeSmooth {
  animation-timing-function: ease-in-out !important;
}

.easeSnappy {
  animation-timing-function: cubic-bezier(0.5, 1.8, 0.5, 1) !important;
}

.easeChill {
  animation-timing-function: ease-in !important;
}

.easePunch {
  animation-timing-function: ease-out !important;
}

.easeLinear {
  animation-timing-function: linear !important;
}

.easeSoft {
  animation-timing-function: ease;
}

.easeInFast {
  animation-timing-function: ease-in;
}

.easeOutChill {
  animation-timing-function: ease-out;
}

.easeSnap {
  animation-timing-function: ease-in-out;
}

.easeBounce {
  animation-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
}

.easeElastic {
  animation-timing-function: cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

.easeSwoosh {
  animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.easeGlide {
  animation-timing-function: cubic-bezier(0.25, 1, 0.5, 1);
}

.easeStagger {
  animation-timing-function: step-end;
}

.easeDrift {
  animation-timing-function: cubic-bezier(0.55, 0.06, 0.68, 0.19);
}

.easeJelly {
  animation-timing-function: cubic-bezier(0.76, 0, 0.24, 1);
}

.easePop {
  animation-timing-function: cubic-bezier(0.3, 1.3, 0.3, 1);
}

.easeRocket {
  animation-timing-function: cubic-bezier(0.6, 0.05, 1, 0.95); /* Fast takeoff */
}

.easeGravity {
  animation-timing-function: cubic-bezier(0.8, 0, 0.2, 1); /* Slow rise, fast fall */
}

.easeRubber {
  animation-timing-function: cubic-bezier(0.36, 0.66, 0.04, 1); /* Elastic stretch */
}

.easeBoom {
  animation-timing-function: cubic-bezier(0.7, 0, 0.3, 1.5); /* Big bounce */
}

.easeSlideBack {
  animation-timing-function: cubic-bezier(0.33, 1, 0.68, 1); /* Nice backward drag */
}

.easeQuickStep {
  animation-timing-function: steps(3, end); /* Stepped flick */
}

.easeSnapBack {
  animation-timing-function: cubic-bezier(0.5, -0.5, 0.5, 1.5); /* Overstretch snap */
}

.easeWhip {
  animation-timing-function: cubic-bezier(0.6, -0.28, 0.735, 0.045); /* Whiplash exit */
}

.easeComet {
  animation-timing-function: cubic-bezier(0.2, 0.8, 0.4, 1.5); /* Tail-like motion */
}

.easeQuick {
  animation-timing-function: cubic-bezier(0.5, 0, 0.75, 0);
}

.easeGentle {
  animation-timing-function: cubic-bezier(0.25, 0.1, 0.25, 1);
}

.easeSling {
  animation-timing-function: cubic-bezier(0.6, -0.28, 0.74, 0.05);
}

.easeBounceHard {
  animation-timing-function: cubic-bezier(0.68, -0.6, 0.32, 1.6);
}

.easeOvershoot {
  animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
}

.easeSnapZoom {
  animation-timing-function: cubic-bezier(0.2, 0.85, 0.5, 1);
}

.easeRipple {
  animation-timing-function: cubic-bezier(0.65, 0.05, 0.36, 1);
}

.easePulse {
  animation-timing-function: cubic-bezier(0.47, 0, 0.745, 0.715);
}

.easeStepSmooth {
  animation-timing-function: steps(5, end);
}

.easeFlow {
  animation-timing-function: cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.easeWhiplash {
  animation-timing-function: cubic-bezier(0.3, 1.5, 0.8, 1);
}

.easePopIn {
  animation-timing-function: cubic-bezier(0.65, 0, 0.35, 1);
}

.easeDip {
  animation-timing-function: cubic-bezier(0.47, 1.64, 0.41, 0.8);
}

.easeBounceSoft {
  animation-timing-function: cubic-bezier(0.57, 1.45, 0.45, 1);
}

.easeZoomSnappy {
  animation-timing-function: cubic-bezier(0.3, 0, 0.3, 1.5);
}

.easeBackTwist {
  animation-timing-function: cubic-bezier(0.9, -0.6, 0.8, 1.8);
}

/* Repeating Utilities */
.loopOnce {
  animation-iteration-count: 1 !important;
}

.loopForever {
  animation-iteration-count: infinite !important;
}

.loopTriple {
  animation-iteration-count: 3 !important;
}

.loopBounce {
  animation-iteration-count: infinite !important;
  animation-direction: alternate !important;
}
