.reveal {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out);
  }
  .reveal.visible { opacity: 1; transform: translateY(0); }

  .reveal-scale {
    opacity: 0;
    transform: scale(0.92) translateY(20px);
    transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out);
  }
  .reveal-scale.visible { opacity: 1; transform: scale(1) translateY(0); }

  .reveal-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out);
  }
  .reveal-left.visible { opacity: 1; transform: translateX(0); }

  .reveal-right {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.9s var(--ease-out), transform 0.9s var(--ease-out);
  }
  .reveal-right.visible { opacity: 1; transform: translateX(0); }

  .reveal-delay-1 { transition-delay: 0.1s; }
  .reveal-delay-2 { transition-delay: 0.2s; }
  .reveal-delay-3 { transition-delay: 0.3s; }
  .reveal-delay-4 { transition-delay: 0.4s; }
  .reveal-delay-5 { transition-delay: 0.5s; }

  .parallax-layer { will-change: transform; }

@keyframes glass-sweep {
  0%, 100% { background-position: 200% 0; }
  50% { background-position: -100% 0; }
}

@keyframes gradient-shimmer {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

@keyframes orbit-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes mouse-scroll {
  0% { transform: translateX(-50%) translateY(0); opacity: 1; }
  100% { transform: translateX(-50%) translateY(16px); opacity: 0; }
}

@keyframes mockup-scan {
  0% { background-position: 0% 0%; opacity: 0.3; }
  50% { background-position: 0% 100%; opacity: 1; }
  100% { background-position: 0% 0%; opacity: 0.3; }
}

@keyframes cta-glow-pulse {
  0%, 100% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 1; }
}
