// Mount all visualizations into their containers.
(function() {
  function mount(id, Comp) {
    const el = document.getElementById(id);
    if (!el) { console.warn('No mount for', id); return; }
    if (!Comp) { console.warn('No component for', id); return; }
    const root = ReactDOM.createRoot(el);
    root.render(React.createElement(Comp));
  }

  function init() {
    mount('viz-reconsolidation', window.Reconsolidation);
    mount('viz-cascade',         window.ConstructionCascade);
    mount('viz-loop',            window.SelfImaginingLoop);
    mount('viz-twomaps',         window.TwoMaps);
    mount('viz-witness',         window.Witness);
    mount('viz-felt',            window.FeltExperience);
    mount('tweaks-root',         window.NPNPTweaks);
  }

  if (document.readyState === 'loading') {
    document.addEventListener('DOMContentLoaded', init);
  } else {
    init();
  }
})();
