/* Small helpers on top of Tailwind (docs/UI.md). */
@keyframes fade { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.feed-row { animation: fade 0.3s ease-out; }
.htmx-indicator { opacity: 0; transition: opacity 0.15s; pointer-events: none; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { opacity: 1; }
@keyframes bounce-dot { 0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; } 40% { transform: scale(1); opacity: 1; } }
.typing span { display: inline-block; width: 6px; height: 6px; border-radius: 9999px; background: currentColor; animation: bounce-dot 1.2s infinite; }
.typing span:nth-child(2) { animation-delay: 0.15s; }
.typing span:nth-child(3) { animation-delay: 0.3s; }
.scroll-thin { scrollbar-width: thin; }
