async function init() { const listEl = document.getElementById('catalog-list'); const viewerEl = document.getElementById('viewer'); let objetos = []; try { const res = await fetch('data/objects.json'); objetos = await res.json(); } catch (err) { viewerEl.innerHTML = '

No se pudo cargar el catálogo (data/objects.json).

'; console.error(err); return; } listEl.innerHTML = objetos.map(obj => `
  • `).join(''); function mostrarObjeto(obj) { viewerEl.innerHTML = `
    Catálogo
    ${obj.catalogo}
    Tipo
    ${obj.tipo}
    Constelación
    ${obj.constelacion}
    Magnitud
    ${obj.magnitud}
    A.R.
    ${obj.ar}
    Dec.
    ${obj.dec}
    Fotografía de ${obj.nombre}

    ${obj.nombre}

    ${obj.descripcion}

    Ver en Wikipedia →
    `; document.querySelectorAll('.catalog__item button').forEach(btn => { btn.classList.toggle('active', btn.dataset.id === obj.id); }); } listEl.addEventListener('click', (e) => { const btn = e.target.closest('button[data-id]'); if (!btn) return; const obj = objetos.find(o => o.id === btn.dataset.id); if (obj) mostrarObjeto(obj); }); // Muestra el primer objeto por defecto if (objetos.length) mostrarObjeto(objetos[0]); } document.addEventListener('DOMContentLoaded', init);