/* ==========================================================================
   MUSCLE ZONE — Animation Layer
   Page-load, hover micro-interactions, and the "power line" motif
   ========================================================================== */

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}

.mz-load-in { animation: fadeUp .8s var(--ease) both; }
.mz-load-in.d1 { animation-delay: .1s; }
.mz-load-in.d2 { animation-delay: .25s; }
.mz-load-in.d3 { animation-delay: .4s; }
.mz-load-in.d4 { animation-delay: .55s; }

/* Power-line pulse used sparingly on the hero divider */
@keyframes powerPulse {
  0%, 100% { opacity: 0.55; }
  50% { opacity: 1; }
}
.mz-hero::after { animation: powerPulse 3.4s ease-in-out infinite; }

/* Button shimmer sweep */
.btn-mz-primary { position: relative; overflow: hidden; }
.btn-mz-primary::before {
  content: "";
  position: absolute; top: 0; left: -60%;
  width: 40%; height: 100%;
  background: rgba(255,255,255,0.25);
  transform: skewX(-20deg);
  transition: left .5s var(--ease);
}
.btn-mz-primary:hover::before { left: 130%; }

/* Preloader */
.mz-preloader {
  position: fixed; inset: 0; z-index: 3000;
  background: var(--black);
  display: flex; align-items: center; justify-content: center;
  transition: opacity .5s var(--ease), visibility .5s var(--ease);
}
.mz-preloader.is-hidden { opacity: 0; visibility: hidden; }
.mz-preloader-bar {
  width: 160px; height: 2px;
  background: var(--silver-line);
  position: relative; overflow: hidden;
}
.mz-preloader-bar::after {
  content: "";
  position: absolute; top: 0; left: -100%;
  width: 100%; height: 100%;
  background: var(--red);
  animation: preloadSweep 1.1s ease-in-out infinite;
}
@keyframes preloadSweep {
  0% { left: -100%; }
  50% { left: 0; }
  100% { left: 100%; }
}

/* AOS fine-tuning (library adds inline transforms; this softens easing) */
[data-aos] { transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1) !important; }

/* Counter tick emphasis */
.counter-block .num.is-counting { color: var(--red); }

/* Page transition fade (simple, on internal nav clicks) */
.mz-page-fade {
  position: fixed; inset: 0; z-index: 2500;
  background: var(--black);
  transform: scaleY(0);
  transform-origin: bottom;
  pointer-events: none;
}
.mz-page-fade.active {
  transform: scaleY(1);
  transform-origin: top;
  transition: transform .5s var(--ease);
}
