/* Slide Up In (mac-like) */
@keyframes slide-up-in {
  0% {
    opacity: 0;
    transform: translateY(40px) scale(0.98);
  }
  60% {
    opacity: 1;
    transform: translateY(-2px) scale(1.01); /* slight overshoot */
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Blind Left In (mac-like) */
@keyframes blind-left-in {
  0% {
    opacity: 0;
    transform: translateX(-40px) scale(0.98);
  }
  60% {
    opacity: 1;
    transform: translateX(2px) scale(1.01);
  }
  100% {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

/* Blind Right In (mac-like) */
@keyframes blind-right-in {
  0% {
    opacity: 0;
    transform: translateX(40px) scale(0.98);
  }
  60% {
    opacity: 1;
    transform: translateX(-2px) scale(1.01);
  }
  100% {
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}

/* Center Circular Reveal (mac-like) */
@keyframes center-circular-reveal {
  0% {
    -webkit-clip-path: circle(0% at center);
    clip-path: circle(0% at center);
  }
  80% {
    -webkit-clip-path: circle(110% at center); /* overshoot */
    clip-path: circle(110% at center);
  }
  100% {
    -webkit-clip-path: circle(100% at center);
    clip-path: circle(100% at center);
  }
}

/* Utility Classes */
.center-circular-reveal {
  animation: center-circular-reveal 0.6s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

.blind-right {
  animation: blind-right-in 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

.blind-left {
  animation: blind-left-in 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}

.slide-up {
  animation: slide-up-in 0.5s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}
