(async function () { 'use strict'; const SECTIONS = ['s-voices', 's-clone', 's-design', 's-studio', 's-tryout', 's-performance', 's-routing', 's-connect', 's-settings', 's-llms', 's-conversation']; function loadScript(src) { return new Promise(function (resolve, reject) { var s = document.createElement('script'); s.src = src; s.onload = resolve; s.onerror = function () { reject(new Error('Failed to load ' + src)); }; document.body.appendChild(s); }); } // 1. Fetch all section partials in parallel and inject into their shells await Promise.all(SECTIONS.map(async function (id) { try { var res = await fetch('/static/sections/' + id + '.html'); if (!res.ok) throw new Error(res.status + ' ' + res.statusText); var html = await res.text(); var el = document.getElementById(id); if (el) el.innerHTML = html; } catch (e) { console.error('[loader] section', id, 'failed:', e.message); var el = document.getElementById(id); if (el) el.innerHTML = '
Failed to load section ' + id + ': ' + e.message + '
'; } })); // 2. Load main application logic (runs init immediately on parse — sections must exist first) await loadScript('/static/app.js'); // 3. Apply scroll-based navigation overrides (must run after app.js defines switchTab etc.) await loadScript('/static/nav.js'); })();