diff --git a/templates/partials/navigation/language-selector.html b/templates/partials/navigation/language-selector.html
index f608555..3e14290 100644
--- a/templates/partials/navigation/language-selector.html
+++ b/templates/partials/navigation/language-selector.html
@@ -22,21 +22,13 @@
diff --git a/templates/partials/widgets/chat-widget.html b/templates/partials/widgets/chat-widget.html
index 76d8014..1a01b25 100644
--- a/templates/partials/widgets/chat-widget.html
+++ b/templates/partials/widgets/chat-widget.html
@@ -118,6 +118,42 @@
var chatModelReady = false;
var chatWarmedUp = false;
+// Fun loading phrases — random per request
+var chatLoadingPhrases = {{if eq .Lang "es"}}[
+ 'Repasando mi currículum… 📄',
+ 'Recordando mis proyectos… 🧠',
+ 'Calentando neuronas… ⚡',
+ 'Preparando mi mejor versión… 💪',
+ 'Buscando en mis recuerdos… 🔍',
+ 'Consultando mi experiencia… 💼',
+ 'Un momento, que me concentro… 🎯',
+ 'Revisando 21 años de código… ⏳',
+ 'Encendiendo el cerebro digital… 🤖',
+ 'Organizando ideas… 💡',
+ 'Dame un segundo… ☕',
+ 'Casi listo, paciencia… 🏗️',
+ 'Activando modo profesional… 👨💻',
+ 'Conectando con mi yo digital… 🔌'
+]{{else}}[
+ 'Reviewing my CV… 📄',
+ 'Remembering my projects… 🧠',
+ 'Warming up neurons… ⚡',
+ 'Preparing my best self… 💪',
+ 'Searching my memories… 🔍',
+ 'Consulting my experience… 💼',
+ 'One moment, focusing… 🎯',
+ 'Scanning 21 years of code… ⏳',
+ 'Booting up the digital brain… 🤖',
+ 'Organizing thoughts… 💡',
+ 'Give me a second… ☕',
+ 'Almost there, hang tight… 🏗️',
+ 'Activating professional mode… 👨💻',
+ 'Connecting to my digital self… 🔌'
+]{{end}};
+function chatLoadingPhrase() {
+ return chatLoadingPhrases[Math.floor(Math.random() * chatLoadingPhrases.length)];
+}
+
// Poll model status until ready
function pollChatStatus() {
fetch('/api/chat/status').then(function(r) { return r.json(); }).then(function(data) {
@@ -217,7 +253,7 @@ document.addEventListener('htmx:beforeRequest', function(event) {
var statusEl = document.getElementById('chat-status-text');
var dotsEl = document.querySelector('.chat-typing-dots');
if (!chatModelReady && statusEl && dotsEl) {
- statusEl.textContent = '{{if eq .Lang "es"}}Inicializando modelo IA…{{else}}Initializing AI model…{{end}}';
+ statusEl.textContent = chatLoadingPhrase();
statusEl.style.display = 'inline';
dotsEl.style.display = 'none';
} else if (statusEl && dotsEl) {