/* preloader.css — só preloader do domínio (sem mexer no resto do site) */

/* Overlay fullscreen */
.mil-preloader{
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: var(--preloader-bg);         /* podes trocar */
  display: grid;
  place-items: center;
  opacity: 1;
}

/* container da animação */
.mil-preloader-animation{
  position: relative;
  width: min(980px, 92vw);
  height: min(360px, 40vh);
  opacity: 0;               /* entra via body.preloader--run */
}

/* quando a animação começa */
body.preloader--run .mil-preloader-animation{
  opacity: 1;
  transition: opacity .2s ease;
}

/* camada absoluta */
.mil-pos-abs{
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}

/* ------------ ANIMAÇÃO ÚNICA (machadodm.com wipe + reveal) ------------ */
.mil-animation-2{
  opacity: 1; /* já visível (sem depender da animação 1) */
}

/* frame */
.mil-reveal-frame{
  position: relative;
  display: inline-block;
}


@keyframes plWipe{
  0%   { transform: scaleX(0); transform-origin: left; }
  48%  { transform: scaleX(1); transform-origin: left; }
  49%  { transform: scaleX(1); transform-origin: right; }
  100% { transform: scaleX(0); transform-origin: right; }
}

/* mascara para o texto não “vazar” enquanto sobe */
.mil-animation-2 .mil-h3{
  margin: 0;
  overflow: hidden;
  font-size: clamp(14px, 1.2vw, 22px);
  line-height: 1;
}

/* texto sobe e aparece */
.mil-reveal-text{
  display: inline-block;
  transform: translateY(120%);
  opacity: 0;

  /* entra + sai */
  animation:
    plTextReveal 1.05s cubic-bezier(.2,.8,.2,1) forwards,
    plTextOut    .75s ease forwards;

  /* 1º começa logo após o wipe, 2º começa mais tarde (hold) */
  animation-delay: 0.20s, 2.30s;
}

@keyframes plTextReveal{
  0%   { transform: translateY(120%); opacity: 0; }
  35%  { opacity: 1; }
  100% { transform: translateY(0%);   opacity: 1; }
}

@keyframes plTextOut{
  to { transform: translateY(-120%); opacity: 0; }
}
/* esconder overlay no fim (via JS -> body.preloader--done) */
body.preloader--done .mil-preloader{
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
/* performance */
.mil-preloader,
.mil-preloader-animation,
.mil-reveal-box,
.mil-reveal-text{
  will-change: transform, opacity;
  transform: translateZ(0);
  backface-visibility: hidden;
}