/* Float — Glass-Karten "atmen" */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(calc(var(--float-amp) * -1)); }
}
.float {
  animation: float var(--float-dur) var(--ease-out) infinite;
}
.float-delay-1 { animation-delay: -1.5s; }
.float-delay-2 { animation-delay: -3s; }
.float-delay-3 { animation-delay: -4.5s; }

/* Reveal-on-scroll: initial state (hidden, slight offset, blurred) */
.reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity var(--dur-slow) var(--ease-out),
              transform var(--dur-slow) var(--ease-out);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Reduced motion — disable all decorative animation */
@media (prefers-reduced-motion: reduce) {
  .float,
  .float-delay-1,
  .float-delay-2,
  .float-delay-3 {
    animation: none !important;
  }
  .reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .lift:hover {
    transform: none !important;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
