.reveal { opacity: 0; transform: translate3d(0, 18px, 0); }
.reveal.is-visible { opacity: 1; transform: translate3d(0, 0, 0); transition: opacity .7s var(--ease-premium), transform .7s var(--ease-premium); }
.reveal-d1 { transition-delay: .08s; }
.reveal-d2 { transition-delay: .16s; }
.reveal-d3 { transition-delay: .24s; }
.reveal-d4 { transition-delay: .32s; }

.fade-in { animation: fadeIn .8s var(--ease-premium) both; }
.fade-up { animation: fadeUp .8s var(--ease-premium) both; }
.slide-up { animation: slideUp .7s var(--ease-premium) both; }
.floating { animation: floating 5.6s ease-in-out infinite; }
.hover-lift:hover { transform: translate3d(0, -4px, 0); }
.stagger > * {
  opacity: 0;
  transform: translate3d(0, 14px, 0);
  animation: fadeUp .72s var(--ease-premium) forwards;
}
.stagger > *:nth-child(1) { animation-delay: .05s; }
.stagger > *:nth-child(2) { animation-delay: .11s; }
.stagger > *:nth-child(3) { animation-delay: .17s; }
.stagger > *:nth-child(4) { animation-delay: .23s; }
.stagger > *:nth-child(5) { animation-delay: .29s; }
.stagger > *:nth-child(6) { animation-delay: .35s; }

@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeUp { from { opacity: 0; transform: translate3d(0, 16px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
@keyframes slideUp { from { transform: translate3d(0, 20px, 0); opacity: 0; } to { transform: translate3d(0, 0, 0); opacity: 1; } }
@keyframes floating { 0%,100% { transform: translate3d(0,0,0); } 50% { transform: translate3d(0,-8px,0); } }
@keyframes pulse { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.45); opacity: .4; } }
@keyframes tagFloat { 0%,100% { transform: translate(-50%, -50%) translateZ(46px); } 50% { transform: translate(-50%, calc(-50% - 6px)) translateZ(56px); } }
@keyframes orbitFloat { 0%,100% { transform: scale(1); opacity: .95; } 50% { transform: scale(1.03); opacity: .75; } }
@keyframes cardFloat { 0%,100% { transform: rotate(-10deg) translateY(0) translateZ(28px); } 50% { transform: rotate(-10deg) translateY(-5px) translateZ(36px); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
