/* === ENHANCED ANIMATIONS === */

/* Card tilt base */
.feature-card, .tool-card, .pricing-card, .stat-card {
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.5s ease;
  will-change: transform;
}

/* Page transition animations */
.animate-on-scroll {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.animate-on-scroll.animate-in {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger variants */
.animate-on-scroll.fade-left {
  transform: translateX(-30px);
}
.animate-on-scroll.fade-left.animate-in {
  transform: translateX(0);
}
.animate-on-scroll.fade-right {
  transform: translateX(30px);
}
.animate-on-scroll.fade-right.animate-in {
  transform: translateX(0);
}
.animate-on-scroll.scale-in {
  transform: scale(0.8);
}
.animate-on-scroll.scale-in.animate-in {
  transform: scale(1);
}

/* Button ripple */
.btn {
  position: relative;
  overflow: hidden;
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease, background 0.3s ease;
}

@keyframes rippleAnim {
  0% { transform: scale(0); opacity: 0.5; }
  100% { transform: scale(10); opacity: 0; }
}

/* 3D Spinner */
.spinner-3d {
  text-align: center;
  padding: 30px;
  transition: all 0.3s ease;
}
.spinner-3d-inner {
  width: 50px;
  height: 50px;
  margin: 0 auto 15px;
  position: relative;
  transform-style: preserve-3d;
  animation: spin3D 1.5s infinite linear;
}
.spinner-3d-face {
  position: absolute;
  width: 50px;
  height: 50px;
  background: var(--primary);
  opacity: 0.25;
  border: 2px solid var(--primary);
  border-radius: 4px;
}
.spinner-3d-face.front { transform: translateZ(25px); }
.spinner-3d-face.back { transform: rotateY(180deg) translateZ(25px); }
.spinner-3d-face.right { transform: rotateY(90deg) translateZ(25px); }
.spinner-3d-face.left { transform: rotateY(-90deg) translateZ(25px); }
.spinner-3d-face.top { transform: rotateX(90deg) translateZ(25px); }
.spinner-3d-face.bottom { transform: rotateX(-90deg) translateZ(25px); }

@keyframes spin3D {
  0% { transform: rotateX(0deg) rotateY(0deg); }
  100% { transform: rotateX(360deg) rotateY(360deg); }
}

.spinner-3d-text {
  font-size: 0.9rem;
  color: var(--text-muted);
  animation: pulse 1.5s ease-in-out infinite;
}

/* Tool results fade in */
.results-area {
  transition: all 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.results-area:not(.hidden) {
  animation: scaleIn 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Preview item hover */
.preview-item {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.preview-item:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 12px 30px var(--shadow-lg);
}

/* Tool card styles */
.tool-card-grid .tool-card {
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.tool-card-grid .tool-card:hover {
  transform: translateY(-6px) scale(1.03);
  box-shadow: 0 16px 40px var(--shadow-lg);
}

/* Before/after slider */
.comparison-slider {
  position: relative;
  overflow: hidden;
  border-radius: 12px;
  cursor: ew-resize;
}
.comparison-slider img {
  display: block;
  width: 100%;
}
.comparison-slider .after-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  clip-path: inset(0 50% 0 0);
}
.comparison-slider .slider-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 4px;
  background: #fff;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  cursor: ew-resize;
  left: 50%;
  transform: translateX(-50%);
}
.comparison-slider .slider-handle::before,
.comparison-slider .slider-handle::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 30px;
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.comparison-slider .slider-handle::before { top: 10px; }
.comparison-slider .slider-handle::after { bottom: 10px; }

/* Mobile responsive adjustments */
@media (max-width: 768px) {
  .animate-on-scroll {
    transform: translateY(20px);
  }
  .tool-card-grid .tool-card:hover {
    transform: translateY(-3px) scale(1.02);
  }
}
@media (max-width: 480px) {
  .spinner-3d-inner {
    width: 36px;
    height: 36px;
  }
  .spinner-3d-face {
    width: 36px;
    height: 36px;
  }
  .spinner-3d-face.front { transform: translateZ(18px); }
  .spinner-3d-face.back { transform: rotateY(180deg) translateZ(18px); }
  .spinner-3d-face.right { transform: rotateY(90deg) translateZ(18px); }
  .spinner-3d-face.left { transform: rotateY(-90deg) translateZ(18px); }
  .spinner-3d-face.top { transform: rotateX(90deg) translateZ(18px); }
  .spinner-3d-face.bottom { transform: rotateX(-90deg) translateZ(18px); }
}
