\n `,n.appendChild(e),e.querySelectorAll(".suggestion-chip").forEach((e=>{e.addEventListener("click",(async()=>{const t=e.textContent;b(t),await L(t)}))}))}return n},w=e=>{const t=[];return/experiencia|trabajo|empresa/i.test(e)&&t.push("¿Qué proyectos destacados has realizado?","¿Qué tecnologías dominas?"),/tecnología|stack|skill/i.test(e)&&t.push("¿Tienes certificaciones?","¿En qué proyectos las has usado?"),/proyecto/i.test(e)&&t.push("¿Cómo puedo contactarte?","¿Qué metodologías usas?"),/certificación/i.test(e)&&t.push("¿Cuál es tu formación académica?","¿Qué habilidades tienes?"),t.slice(0,2)};let k=!1,E=!1;const x=async(e,t)=>{k=!0,E=!1;const n=[];let s=document.createElement("div");s.innerHTML=t;const o=e=>{if(e.nodeType===Node.TEXT_NODE){const t=e.textContent.split(/\s+/);t.forEach(((e,s)=>{e&&(n.push({type:"text",content:e}),s")[0]+">",tag:e.tagName}),Array.from(e.childNodes).forEach((e=>o(e))),n.push({type:"tagClose",content:`${e.tagName.toLowerCase()}>`,tag:e.tagName}))};Array.from(s.childNodes).forEach((e=>o(e)));let i="";for(let t=0;t',v(),E)return e.innerHTML=i,void(k=!1);const o="text"===s.type&&s.content.trim()?35:35/3;await new Promise((e=>setTimeout(e,o)))}e.innerHTML=i,k=!1,v()},L=async e=>{console.log("🤖 [AI] Usuario preguntó:",e);const t=(()=>{const e=document.createElement("div");return e.className="message ai typing",e.innerHTML='
🤖
',r.appendChild(e),v(),e})();let n="";try{const t=h(e);if(console.log("🔍 [AI] Texto normalizado:",t),console.log("📊 [AI] Datos disponibles:",{total:p.length,skills:p.filter((e=>"skill"===e.type)).length,experience:p.filter((e=>"experience"===e.type)).length,certifications:p.filter((e=>"certification"===e.type)).length,achievements:p.filter((e=>"achievement"===e.type)).length,education:p.filter((e=>"education"===e.type)).length,projects:p.filter((e=>"project"===e.type)).length,tools:p.filter((e=>"tool"===e.type)).length,profile:p.filter((e=>"profile"===e.type)).length}),/que puedes hacer|que sabes|capacidades|funciones|ayudar|para que sirves|que ofreces/.test(t))console.log("❓ [AI] Detectó pregunta sobre capacidades del asistente"),n='🤖 **¡Hola! Soy tu asistente virtual**\n\nEstoy aquí para ayudarte a conocer mejor a Osman Jiménez. Puedo responder preguntas sobre:\n\n**💼 Experiencia Profesional**\n• Trayectoria laboral y roles desempeñados\n• Empresas donde ha trabajado\n• Logros y responsabilidades\n\n**🚀 Proyectos**\n• Proyectos empresariales desarrollados\n• Proyectos personales y portafolio\n• Tecnologías utilizadas en cada proyecto\n\n**🔧 Habilidades Técnicas**\n• Stack tecnológico (Frontend, Backend, Bases de datos)\n• Frameworks y herramientas\n• Metodologías de desarrollo\n\n**📜 Certificaciones**\n• Certificaciones profesionales\n• Cursos y formación continua\n• Instituciones certificadoras\n\n**🎓 Formación Académica**\n• Estudios universitarios\n• Educación complementaria\n\n**📞 Información de Contacto**\n• Redes profesionales (LinkedIn, GitHub)\n• Formas de contacto\n\n---\n\n💡 **Ejemplos de preguntas:**\n• "¿Cuál es tu experiencia laboral?"\n• "¿Qué proyectos has desarrollado?"\n• "¿Qué tecnologías dominas?"\n• "¿Tienes certificaciones?"\n• "¿Cómo puedo contactarte?"\n\n¡Pregúntame lo que quieras saber! 😊';else if(/tecnolog|skill|stack|frontend|backend|programacion|desarrollo|lenguaje|herramienta/.test(t))console.log("🔧 [AI] Detectó pregunta sobre tecnologías/skills"),n=f.getSkills();else if(/experienc|empresa|trabaj|historia|carrera|profesional|empleo|trayectoria/.test(t))console.log("💼 [AI] Detectó pregunta sobre experiencia"),n=f.getExperience();else if(/certific|curso|diploma|titulo|formacion/.test(t))console.log("📜 [AI] Detectó pregunta sobre certificaciones"),n=f.getCertifications();else if(/educacion|estudio|universidad|carrera|academico/.test(t))console.log("🎓 [AI] Detectó pregunta sobre educación"),n=f.getEducation();else if(/perfil|bio|quien eres|presentacion|sobre ti|acerca|conocer|historia/.test(t))console.log("👤 [AI] Detectó pregunta sobre perfil"),n=f.getProfile();else if(/proyecto|portafolio|trabajo|aplicacion|desarrollo|crear|construir/.test(t))console.log("🚀 [AI] Detectó pregunta sobre proyectos"),n=f.getProjects();else if(/contacto|email|linkedin|github|redes|comunicar|escribir|conectar/.test(t))console.log("📞 [AI] Detectó pregunta sobre contacto"),n=f.getContact();else if(/logro|achievement|reconocimiento|premio|destacado/.test(t)){console.log("🏆 [AI] Detectó pregunta sobre logros");const e=g.achievements||{};n=e.title+"\n\n",e.highlights&&(n+=e.highlights.title+"\n",e.highlights.items.forEach((e=>n+=e+"\n")),n+="\n"),e.conclusion&&(n+=e.conclusion)}else if(/herramienta|tool|software|programa/.test(t)){console.log("🛠️ [AI] Detectó pregunta sobre herramientas");const e=g.tools||{};n=e.title+"\n\n",e.categories&&Object.values(e.categories).forEach((e=>{n+=e.title+"\n",e.items.forEach((e=>n+=e+"\n")),n+="\n"})),e.conclusion&&(n+=e.conclusion),e.link&&(n+="\n\n"+e.link)}else{const s=u.find((e=>"saludo"===e.tag||"despedida"===e.tag||"agradecimiento"===e.tag))?.patterns?.some((e=>t.includes(h(e))))?u.find((e=>("saludo"===e.tag||"despedida"===e.tag||"agradecimiento"===e.tag)&&e.patterns.some((e=>t.includes(h(e)))))):null;if(s){console.log("✅ [AI] Encontró saludo/despedida:",s.tag);const e=s.responses||[];n=e.length?e[Math.floor(Math.random()*e.length)]:""}else{console.log("🔍 [AI] Usando búsqueda con Fuse.js");const t=(await(async()=>{if(m)return m;const{default:e}=await import("https://cdn.jsdelivr.net/npm/fuse.js@6.6.2/dist/fuse.esm.min.js");return m=new e(p,{includeScore:!0,threshold:.42,distance:300,ignoreLocation:!0,minMatchCharLength:2,keys:["text","detail"]}),m})()).search(e);if(console.log("📊 [AI] Resultados de búsqueda:",t.length,t.slice(0,3)),t.length){const e=t[0].item;console.log("✅ [AI] Mejor resultado:",e),"skill"===e.type?(console.log("🔧 [AI] Respondiendo sobre skill específico:",e.raw?.name),n=`🧠 **${e.raw.name}**\n\n${e.raw.description||"Tecnología que domino y utilizo en mis proyectos."}\n\n💼 Esta tecnología la he usado en varios proyectos profesionales.\n\n[Ver Habilidades]`):"experience"===e.type?(console.log("💼 [AI] Respondiendo sobre experiencia específica"),n=`💼 **${e.raw.job_position}** en *${e.raw.job_enterprice}*\n\n${e.raw.job_description}\n\n🎯 Esta experiencia me ha permitido desarrollar habilidades clave en desarrollo Full Stack.\n\n[Ver Experiencia]`):"certification"===e.type?(console.log("📜 [AI] Respondiendo sobre certificación específica"),n=`📜 **${e.raw.name}**\n\n*Otorgado por: ${e.raw.authority||"Institución reconocida"}*\n\n${e.raw.description||"Certificación que valida mis conocimientos en esta área."}\n\n🎓 Parte de mi formación continua en tecnología.\n\n[Ver Certificaciones]`):"achievement"===e.type?(console.log("🏆 [AI] Respondiendo sobre logro específico"),n=`🏆 **${e.raw.title}**\n\n${e.raw.description||"Logro destacado en mi carrera profesional."}\n\n✨ Este logro refleja mi compromiso con la excelencia.`):"education"===e.type?(console.log("🎓 [AI] Respondiendo sobre educación específica"),n=`🎓 **${e.raw.degree||"Formación"}** en *${e.raw.field||"área de estudio"}*\n\n🏫 ${e.raw.institution||"Institución educativa"}\n\n📅 ${e.raw.period||"Periodo de estudio"}\n\n[Ver Educación]`):"project"===e.type?(console.log("🚀 [AI] Respondiendo sobre proyecto específico"),n=`🚀 **${e.raw.name}**\n\n${e.raw.description||"Proyecto desarrollado con tecnologías modernas."}\n\n🔧 **Tecnologías:** ${e.raw.technologies?.join(", ")||"Varias tecnologías"}\n\n[Ver Proyectos]`):"tool"===e.type?(console.log("🛠️ [AI] Respondiendo sobre herramienta específica"),n=`🛠️ **${e.raw.name}**\n\n📂 Categoría: ${e.raw.category||"Herramienta"}\n\n${e.raw.description||"Herramienta que utilizo en mi trabajo diario."}\n\n[Ver Habilidades]`):"profile"===e.type?(console.log("👤 [AI] Respondiendo con perfil completo"),n=f.getProfile()):n=e.detail||e.text}else{console.log("❌ [AI] No se encontraron resultados, mostrando mensaje por defecto");const e=g.fallback||{};n=`${e.title}\n\n${e.message}\n\n${e.options?.join("\n")||""}\n\n${e.question||""}`}}}}catch(e){console.error("❌ [AI] Error:",e),n="⚠️ Hubo un error procesando tu consulta."}console.log("💬 [AI] Respuesta final:",n.substring(0,100)+"..."),t.remove(),await y(n)};o?.addEventListener("submit",(async e=>{e.preventDefault();const t=i?.value.trim();t&&(k&&(E=!0,await new Promise((e=>setTimeout(e,100)))),b(t),i.value="",await L(t))})),e.querySelectorAll(".chip").forEach((e=>{e.addEventListener("click",(async()=>{let t=e.textContent?.trim()||"";t={"💼 Experiencia":"¿Cuál es tu experiencia laboral?","🚀 Proyectos":"¿Qué proyectos has desarrollado?","🔧 Tecnologías":"¿Qué tecnologías dominas?","📜 Certificaciones":"¿Tienes certificaciones?"}[t]||t,b(t),await L(t)}))}));const $=document.getElementById("ai-assistant-expand");if(n?.addEventListener("click",(e=>{e.preventDefault(),t?.classList.add("open"),t?.setAttribute("aria-hidden","false"),window.innerWidth<=768&&(document.body.style.overflow="hidden"),setTimeout((()=>i?.focus()),150)})),$?.addEventListener("click",(e=>{if(e.preventDefault(),window.innerWidth>768){t?.classList.toggle("expanded");t?.classList.contains("expanded");$.innerHTML=''}})),s?.addEventListener("click",(e=>{e.preventDefault(),t?.classList.remove("open"),t?.setAttribute("aria-hidden","true"),document.body.style.overflow=""})),document.addEventListener("click",(e=>{const n=e.target.closest(".section-link");if(n){e.preventDefault();const s=n.getAttribute("href");s&&(t?.classList.remove("open"),document.body.style.overflow="",setTimeout((()=>{window.location.href=s}),300))}})),document.addEventListener("click",(e=>{if(e.target.classList.contains("ai-image")){const t=e.target.getAttribute("src"),n=e.target.getAttribute("alt"),s=document.createElement("div");s.className="image-lightbox",s.innerHTML=`\n \n
\n \n \n
\n `,document.body.appendChild(s),setTimeout((()=>s.classList.add("active")),10),s.querySelector(".lightbox-close").addEventListener("click",(()=>{s.classList.remove("active"),setTimeout((()=>s.remove()),300)})),s.querySelector(".lightbox-backdrop").addEventListener("click",(()=>{s.classList.remove("active"),setTimeout((()=>s.remove()),300)}))}})),document.addEventListener("keydown",(e=>{"Escape"===e.key&&(t?.classList.remove("open"),document.body.style.overflow="")})),i){let e=0;i.addEventListener("focus",(()=>{window.innerWidth<=768&&(e=r.scrollTop,setTimeout((()=>{o.scrollIntoView({behavior:"smooth",block:"end"}),setTimeout((()=>{r.scrollTop=r.scrollHeight}),100)}),300))})),i.addEventListener("touchstart",(e=>{window.innerWidth<=768&&(i.style.fontSize="16px")}))}const C=document.getElementById("voice-btn");let A=null;if("webkitSpeechRecognition"in window||"SpeechRecognition"in window){const e=window.SpeechRecognition||window.webkitSpeechRecognition;A=new e,A.lang="es-ES",A.continuous=!1,A.interimResults=!1,A.onstart=()=>{C.classList.add("listening"),i.placeholder="Escuchando..."},A.onresult=async e=>{const t=e.results[0][0].transcript;i.value=t,C.classList.remove("listening"),i.placeholder="Escribe tu pregunta...",t.trim()&&(await new Promise((e=>setTimeout(e,500))),b(t),i.value="",await L(t))},A.onerror=()=>{C.classList.remove("listening"),i.placeholder="Escribe tu pregunta..."},A.onend=()=>{C.classList.remove("listening"),i.placeholder="Escribe tu pregunta..."},C.addEventListener("click",(()=>{C.classList.contains("listening")?A.stop():A.start()}))}else C.style.display="none";i?.addEventListener("keydown",(e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),o?.requestSubmit())})),document.addEventListener("keydown",(e=>{(e.ctrlKey||e.metaKey)&&"k"===e.key&&(e.preventDefault(),t?.classList.contains("open")?i?.focus():n?.click())})),i?.addEventListener("focus",(()=>{}))})()