/* motion-3d-experience: yalnızca transform/opacity, reduced-motion destekli */
.reveal {
  opacity: 0; transform: translateY(16px);
  transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}
.reveal.is-visible { opacity: 1; transform: translateY(0); }

.tilt { transform-style: preserve-3d; transition: transform var(--dur-fast) var(--ease-out); }

@keyframes float-slow {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-14px) rotate(3deg); }
}
.floating-shape { animation: float-slow 7s ease-in-out infinite; }

@keyframes spin-slow { to { transform: rotate(360deg); } }
.spin-slow { animation: spin-slow 18s linear infinite; }

@keyframes success-pop {
  0% { transform: scale(0.7); opacity: 0; }
  60% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(1); }
}
.success-pop { animation: success-pop var(--dur-slow) var(--ease-out); }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; }
  .floating-shape, .spin-slow { animation: none; }
}

/* Düşük performanslı / mobil cihazlarda ağır efektleri kapatan sınıf (motion.js tarafından eklenir) */
.motion-lite .floating-shape,
.motion-lite .spin-slow,
.motion-lite .tilt { animation: none !important; transform: none !important; }
