/* ============================================================
   Keyframes - micro animações suaves
   ============================================================ */

@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 rgba(187, 45, 43, 0.45); }
  70%  { box-shadow: 0 0 0 8px rgba(187, 45, 43, 0); }
  100% { box-shadow: 0 0 0 0 rgba(187, 45, 43, 0); }
}

@keyframes underline {
  to { transform: scaleX(1); }
}

@keyframes node-glow {
  0%, 100% { box-shadow: 0 10px 28px rgba(164, 22, 26, 0.22); }
  50%      { box-shadow: 0 10px 34px rgba(164, 22, 26, 0.42); }
}

@keyframes fade-up {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}

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

@keyframes float-soft {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-6px); }
}

@keyframes shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

@keyframes flagwave {
  0%, 100% { transform: skewY(0deg) scaleX(1); }
  25%      { transform: skewY(-1.3deg) scaleX(1.012); }
  50%      { transform: skewY(0.9deg); }
  75%      { transform: skewY(-0.5deg); }
}

/* utilidades de entrada */
.anim-fade-up { animation: fade-up 0.8s var(--ease) both; }
.anim-fade-in { animation: fade-in 0.9s var(--ease) both; }
.delay-1 { animation-delay: 0.12s; }
.delay-2 { animation-delay: 0.24s; }
.delay-3 { animation-delay: 0.36s; }
.delay-4 { animation-delay: 0.48s; }

/* skeleton shimmer (para estados de carregamento da planilha) */
.skeleton {
  background: linear-gradient(90deg, var(--cream-2) 25%, #efe8db 50%, var(--cream-2) 75%);
  background-size: 200% 100%; animation: shimmer 1.4s linear infinite; border-radius: var(--r-xs);
}
