/* =========================================
   LIONARDY
   Animations (Light Premium)
   Subtle, elegant, non-distracting
   ========================================= */

/* --- Gradient animations --- */
@keyframes grad-shift {
  0%, 100% { background-position: 0% 50%; }
  50%       { background-position: 100% 50%; }
}

/* --- Text reveal by line --- */
.line-reveal {
  overflow: hidden;
  display: block;
}
.line-reveal .line-inner {
  display: block;
  transform: translateY(105%);
  transition: transform 1s var(--ease-out);
}
.line-reveal.in .line-inner { transform: translateY(0); }

/* --- Number counter --- */
@keyframes counter-in {
  from { opacity: 0; transform: scale(0.9) translateY(10px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

/* --- 3D tilt (toned down) --- */
.tilt-card {
  transform-style: preserve-3d;
  will-change: transform;
}

/* --- Magnetic button --- */
.magnetic { display: inline-block; }

/* --- Scroll indicator --- */
@keyframes scrollDown {
  0%   { height: 0; opacity: 1; transform-origin: top; }
  50%  { height: 100%; opacity: 1; transform-origin: top; }
  51%  { height: 100%; opacity: 1; transform-origin: bottom; }
  100% { height: 0; opacity: 0; transform-origin: bottom; }
}

/* --- Fade up (subtle) --- */
@keyframes fade-up {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* --- Shimmer skeleton (for loading states) --- */
@keyframes shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}
.skeleton {
  background: linear-gradient(90deg, var(--bg-1) 25%, var(--bg-0) 50%, var(--bg-1) 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}

/* Remove heavy orbs/rings from dark mode */
.orb, .ring, .glimmer-btn::after { display: none !important; }
