@keyframes rcaSlideUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes rcaFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes rcaSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

#tf-root .tf-animate-slide-up { animation: rcaSlideUp 0.2s ease both; }
#tf-root .tf-animate-fade-in  { animation: rcaFadeIn 0.15s ease both; }

@media (prefers-reduced-motion: reduce) {
  #tf-root .tf-animate-slide-up,
  #tf-root .tf-animate-fade-in { animation: none; }
  #tf-root .tf-spinner { animation: none; border-top-color: var(--tf-primary); }
}

/* ── Visibility helpers ─────────────────────────────────── */
#tf-root .tf-hidden  { display: none !important; }
#tf-root .tf-visible { display: block; }

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