/* ===========================================================================
   Priolli — Sistema de movimento (calibragem BuildV)
   Movimento curto + easing longo. Intensidade ~4/10. Sem bounce.
   Todo estado inicial "invisível" vive atrás de html[data-motion].
   Sem o gate (ou se o motor cair), a página é 100% legível.
   =========================================================================== */
:root{
  --e:  cubic-bezier(.16,.84,.28,1);   /* entradas/reveals */
  --e2: cubic-bezier(.4,0,.2,1);       /* UI: header, hover */
}

/* Barra de leitura */
.pw-progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:120;
  background:linear-gradient(90deg,var(--orange),var(--orange-400));
  transition:width .1s linear;pointer-events:none}

@media (prefers-reduced-motion: no-preference){
  html[data-motion]{
    /* Reveals base */
    --_d:24px;
  }
  html[data-motion] [data-reveal]{
    opacity:0;transform:translateY(var(--_d));filter:blur(5px);
    transition:opacity .9s var(--e),transform .9s var(--e),filter .9s var(--e);
    transition-delay:var(--_dl,0ms);will-change:opacity,transform}
  html[data-motion] [data-reveal="soft"]{transform:none;filter:none;transition:opacity 1s var(--e)}
  html[data-motion] [data-reveal="fig"]{transform:scale(.965);filter:blur(4px)}
  html[data-motion] [data-rv="left"]{transform:translateX(-26px)}
  html[data-motion] [data-rv="right"]{transform:translateX(26px)}
  html[data-motion] [data-reveal="mask"]{
    opacity:1;filter:none;transform:none;
    clip-path:inset(0 0 101% 0 round 6px);
    transition:clip-path 1.5s var(--e)}
  html[data-motion] [data-reveal="mask"] img,
  html[data-motion] [data-reveal="mask"] .band-img{transform:scale(1.08);transition:transform 1.5s var(--e)}

  html[data-motion] [data-reveal].is-in{opacity:1;transform:none;filter:none}
  html[data-motion] [data-reveal="mask"].is-in{clip-path:inset(0 0 0 0 round 6px)}
  html[data-motion] [data-reveal="mask"].is-in img,
  html[data-motion] [data-reveal="mask"].is-in .band-img{transform:none}

  /* Título palavra a palavra */
  html[data-motion] .w-line{display:inline-block;overflow:hidden;vertical-align:top}
  html[data-motion] .w-line > i{display:inline-block;font-style:inherit;
    transform:translateY(108%);transition:transform .9s var(--e);transition-delay:var(--_wd,0ms)}
  html[data-motion] .w-in .w-line > i{transform:none}
}

/* Parallax das faixas de imagem (JS seta --py) */
.band-img{will-change:transform}

/* Tilt de cards (JS seta as vars) */
.tiltable{transition:transform .14s linear}

/* Marquee */
.marquee{overflow:hidden}
.marquee__track{display:inline-flex;white-space:nowrap;will-change:transform}
@media (prefers-reduced-motion: no-preference){
  .marquee__track{animation:pw-marquee 42s linear infinite}
  .marquee:hover .marquee__track{animation-play-state:paused}
}
@keyframes pw-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
