html, body {
  overflow-x: hidden;
}

@keyframes scanDown {
  0% { top: -3px; opacity: 0; }
  5% { opacity: 1; }
  95% { opacity: 1; }
  100% { top: 100%; opacity: 0; }
}

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

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

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}

@keyframes dashPop {
  from { opacity: 0; transform: translateY(20px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes barFill {
  from { width: 0; }
  to { width: 100%; }
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.spin { animation: spin 1s linear infinite; }

.page-in { animation: fadeIn 0.3s ease; }
.fu { animation: fadeUp 0.6s ease forwards; opacity: 0; }
.fu1 { animation-delay: 0.08s; }
.fu2 { animation-delay: 0.18s; }
.fu3 { animation-delay: 0.30s; }
.fu4 { animation-delay: 0.44s; }
.fu5 { animation-delay: 0.58s; }
