(function () { "use strict"; const filters = document.querySelectorAll("[data-filter]"); const cards = document.querySelectorAll("[data-tags]"); filters.forEach((btn) => { btn.addEventListener("click", () => { filters.forEach((b) => b.setAttribute("data-active", "false")); btn.setAttribute("data-active", "true"); const value = btn.dataset.filter; cards.forEach((card) => { const tags = card.dataset.tags.split(","); const show = value === "todos" || tags.includes(value); card.style.display = show ? "" : "none"; }); }); }); const backdrop = document.getElementById("case-modal"); const modalBody = document.getElementById("case-modal-body"); document.querySelectorAll("[data-case-trigger]").forEach((card) => { card.addEventListener("click", () => { modalBody.innerHTML = `

${card.dataset.caseTag || ""}

${card.dataset.caseTitle}

Contexto: ${card.dataset.caseContext}

Problema: ${card.dataset.caseProblem}

Solución: ${card.dataset.caseSolution}

${(card.dataset.tags || "") .split(",") .map((t) => `${t}`) .join("")}

* Caso de referencia (placeholder) — se reemplaza por proyectos reales del portfolio.

`; backdrop.classList.add("open"); }); }); backdrop?.addEventListener("click", (e) => { if (e.target === backdrop || e.target.closest("[data-modal-close]")) { backdrop.classList.remove("open"); } }); document.addEventListener("keydown", (e) => { if (e.key === "Escape") backdrop?.classList.remove("open"); }); })();