/* ═══════════════════════════════════════
   KEYFRAMES
   ═══════════════════════════════════════ */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeLeft {
  from { opacity: 0; transform: translateX(28px); }
  to   { opacity: 1; transform: translateX(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes scaleIn {
  from { opacity: 0; transform: scale(0.92); }
  to   { opacity: 1; transform: scale(1); }
}
@keyframes goldLine {
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
@keyframes marqueeLeft {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}
@keyframes marqueeRight {
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}
@keyframes floatUpDown {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-8px); }
}
@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,168,76,0.35); }
  50%       { box-shadow: 0 0 0 12px rgba(201,168,76,0); }
}
@keyframes pulseGlowGreen {
  0%, 100% { box-shadow: 0 4px 24px rgba(37,211,102,0.45), 0 0 0 0 rgba(37,211,102,0.35); }
  50%       { box-shadow: 0 4px 24px rgba(37,211,102,0.45), 0 0 0 10px rgba(37,211,102,0); }
}
@keyframes heroReveal {
  0%   { opacity: 0; transform: translateY(40px) scale(0.97); filter: blur(4px); }
  100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}
@keyframes shimmer {
  0%   { background-position: -300% center; }
  100% { background-position:  300% center; }
}
@keyframes twinkle {
  0%, 100% { opacity: 0.2; transform: scale(1); }
  50%       { opacity: 0.8; transform: scale(1.4); }
}
@keyframes scrollBounce {
  0%, 100% { transform: translateX(-50%) translateY(0); opacity: 0.7; }
  50%       { transform: translateX(-50%) translateY(8px); opacity: 1; }
}
@keyframes drawLine {
  from { width: 0; }
  to   { width: 100%; }
}

/* ═══════════════════════════════════════
   SCROLL REVEAL
   ═══════════════════════════════════════ */
[data-animate="fade-up"] {
  opacity: 0; transform: translateY(28px);
  transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}
[data-animate="fade-left"] {
  opacity: 0; transform: translateX(-28px);
  transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}
[data-animate="fade-right"] {
  opacity: 0; transform: translateX(28px);
  transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}
[data-animate="scale-in"] {
  opacity: 0; transform: scale(0.92);
  transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}
[data-animate="stagger"] > * {
  opacity: 0; transform: translateY(20px);
  transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}
[data-animate].revealed,
[data-animate="stagger"] > *.revealed {
  opacity: 1 !important;
  transform: none !important;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  [data-animate], [data-animate] > * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .marquee-track { animation: none !important; }
  .wa-float      { animation: none !important; }
  .service-icon  { animation: none !important; }
}
