/* ============================================================
   CoraFest — camada de animação (scroll reveal + parallax)
   Estilo "Apple": elementos revelam suavemente conforme rola.
   ============================================================ */

/* estado inicial: invisível e levemente deslocado */
[data-reveal]{
  opacity:0;
  transform:translateY(34px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);
  will-change:opacity,transform;
}
[data-reveal].is-in{opacity:1;transform:none}

/* variações de direção/escala */
[data-reveal="left"]{transform:translateX(-40px)}
[data-reveal="right"]{transform:translateX(40px)}
[data-reveal="scale"]{transform:scale(.94)}
[data-reveal="left"].is-in,
[data-reveal="right"].is-in,
[data-reveal="scale"].is-in{transform:none}

/* atraso em cascata (stagger) para filhos */
[data-reveal][data-delay="1"]{transition-delay:.08s}
[data-reveal][data-delay="2"]{transition-delay:.16s}
[data-reveal][data-delay="3"]{transition-delay:.24s}
[data-reveal][data-delay="4"]{transition-delay:.32s}

/* parallax: o JS escreve --p (0..1) e usamos pra deslocar */
.parallax{will-change:transform}

/* barra de progresso de scroll (toque Apple no topo) */
.scroll-progress{
  position:fixed;top:0;left:0;height:2px;width:0;z-index:100;
  background:linear-gradient(90deg,var(--cobre),var(--cobre-cl));
  transition:width .1s linear;
}

/* hero: leve zoom-out da mídia ao rolar (sensação 3D/profundidade) */
.hero-media{transition:transform .1s linear}

@media(prefers-reduced-motion:reduce){
  [data-reveal]{opacity:1 !important;transform:none !important;transition:none !important}
  .scroll-progress{display:none}
}
