/* ——— Scroll reveal animations ——— */
@keyframes fade-in {
  from {
    opacity: 0;
    transform: translate3d(0, 16px, 0);
    -webkit-transform: translate3d(0, 16px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    -webkit-transform: translate3d(0, 0, 0);
  }
}

@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translate3d(0, 12px, 0);
    -webkit-transform: translate3d(0, 12px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    -webkit-transform: translate3d(0, 0, 0);
  }
}

@keyframes scale-in {
  from {
    opacity: 0;
    transform: scale3d(0.95, 0.95, 1);
    -webkit-transform: scale3d(0.95, 0.95, 1);
  }
  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
    -webkit-transform: scale3d(1, 1, 1);
  }
}

.animate-fade-in {
  animation: fade-in 0.4s cubic-bezier(0.16, 1, 0.3, 1) both;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.animate-fade-in-up {
  animation: fade-in-up 0.35s cubic-bezier(0.16, 1, 0.3, 1) both;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

.animate-scale-in {
  animation: scale-in 0.35s cubic-bezier(0.16, 1, 0.3, 1) both;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* Stagger delays */
.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-400 { animation-delay: 400ms; }
.delay-500 { animation-delay: 500ms; }

/* ——— Glassmorphism ——— */
.glass {
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}
