body { font-family: 'Inter', sans-serif; }
code, pre { font-family: 'JetBrains Mono', monospace; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}
.msg-animate { animation: fadeIn 0.15s cubic-bezier(0.16, 1, 0.3, 1) forwards; }

@keyframes pulseDot {
  0%, 100% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.1); }
}
.dot-1 { animation: pulseDot 1s infinite 0s; }
.dot-2 { animation: pulseDot 1s infinite 0.2s; }
.dot-3 { animation: pulseDot 1s infinite 0.4s; }

.prose p { margin-bottom: 0.75rem; }
.prose p:last-child { margin-bottom: 0; }
.prose ul { list-style-type: disc; padding-left: 1.25rem; margin-bottom: 0.75rem; }
.prose ol { list-style-type: decimal; padding-left: 1.25rem; margin-bottom: 0.75rem; }
.prose code:not(pre code) { background: #27272a; padding: 0.15rem 0.35rem; border-radius: 0.375rem; font-size: 0.85em; color: #e4e4e7; }
.prose pre { margin-top: 0.5rem; margin-bottom: 0.75rem; border-radius: 0.75rem; overflow: hidden; border: 1px solid #27272a; }
