/* Aparición suave de bloques: opacidad, traslación y escala mínima */

.revelar{opacity:0;translate:0 30px;scale:.98}
.revelar.es-visible{opacity:1;translate:0 0;scale:1;animation:revelar .9s cubic-bezier(.2,.65,.3,1) both;animation-delay:calc(var(--d,0ms) + 120ms)}

@keyframes revelar{
  from{opacity:0;translate:0 30px;scale:.98}
  to{opacity:1;translate:0 0;scale:1}
}

@keyframes revelar-fade{
  from{opacity:0}
  to{opacity:1}
}

@media(prefers-reduced-motion:reduce){
  .revelar{translate:none;scale:1}
  .revelar.es-visible{animation-name:revelar-fade}
}
