/* ==========================================================================
   Wavion Capital — Animation Primitives
   (GSAP handles timing/orchestration in JS; this file defines the
   resting/starting states and a few CSS-only keyframes)
   ========================================================================== */

.fade-up {
  opacity: 0;
  transform: translateY(32px);
  will-change: transform, opacity;
}

.fade-in {
  opacity: 0;
  will-change: opacity;
}

.stagger-children > * {
  opacity: 0;
  transform: translateY(24px);
}

/* Loader (optional, kept minimal) */
.page-loader {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: var(--color-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.6s var(--ease-standard), visibility 0.6s;
}

.page-loader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.page-loader__mark {
  width: 32px;
  height: 32px;
  opacity: 0.9;
  animation: loaderPulse 1.1s ease-in-out infinite;
}

@keyframes loaderPulse {
  0%, 100% { opacity: 0.35; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes floatSlow {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
