/* Google Font assignments */
h1, h2, h3, h4 { font-family: 'Syne', sans-serif; }
body { font-family: 'DM Sans', sans-serif; }
.font-mono, code, pre, [style*="JetBrains"] { font-family: 'JetBrains Mono', monospace; }

/* Score ring glow */
.score-ring {
  filter: drop-shadow(0 0 24px rgba(0, 212, 255, 0.35));
}

/* Progress step fade-in */
@keyframes fadeSlideIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}
.step-enter {
  animation: fadeSlideIn 0.4s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Gradient text utility */
.gradient-text {
  background: linear-gradient(135deg, #00d4ff 0%, #0066ff 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Admin toast slide-in */
@keyframes toastIn {
  from { opacity: 0; transform: translateY(-10px) scale(0.97); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.toast {
  animation: toastIn 0.25s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Spinner */
@keyframes spin {
  to { transform: rotate(360deg); }
}
.animate-spin-fast { animation: spin 0.7s linear infinite; }
