/* =========================================================
   Keyframe animations & scroll reveals
   ========================================================= */

@keyframes float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-14px)}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(24px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(22,197,197,.5)}
  70%{box-shadow:0 0 0 18px rgba(22,197,197,0)}
}
@keyframes gradientShift{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

.pulse-ring{animation:pulse 2s infinite}
