/* 6ix Mela — homepage app shell. Wires nav, sections, tweaks. */
const { useState, useEffect } = React;
const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
"accent": "#FF2D78",
"headline": "The 6ix
Meets The Mela",
"sub": "Toronto's biggest South Asian music festival. Urban Punjabi meets mainstream hip-hop — one mega stage, one night, the whole 6ix outside.",
"grain": true,
"tapes": true,
"tapeMotion": true
}/*EDITMODE-END*/;
const ACCENTS = {
"#FF2D78": { hi: "#FF5C97", glow: "0 0 24px rgba(255,45,120,.5), 0 0 4px rgba(255,45,120,.9)", neon: "0 12px 40px rgba(255,45,120,.3)", soft: "rgba(255,45,120,.18)" },
"#29D6D6": { hi: "#5BE5E5", glow: "0 0 24px rgba(41,214,214,.5), 0 0 4px rgba(41,214,214,.9)", neon: "0 12px 40px rgba(41,214,214,.3)", soft: "rgba(41,214,214,.18)" },
"#D4A03A": { hi: "#FEE6B0", glow: "0 0 24px rgba(212,160,58,.5), 0 0 4px rgba(255,252,230,.7)", neon: "0 12px 40px rgba(212,160,58,.3)", soft: "rgba(212,160,58,.2)" },
};
function App() {
const [t, setTweak] = useTweaks(TWEAK_DEFAULTS);
const [reason, setReason] = useState('vip');
// apply accent tweak by overriding the magenta tokens site-wide
useEffect(() => {
const a = ACCENTS[t.accent] || ACCENTS["#FF2D87"];
const r = document.documentElement;
r.style.setProperty('--magenta', t.accent);
r.style.setProperty('--magenta-hi', a.hi);
r.style.setProperty('--glow-magenta', a.glow);
r.style.setProperty('--sh-neon', a.neon);
}, [t.accent]);
useEffect(() => { document.body.classList.toggle('no-grain', !t.grain); }, [t.grain]);
useEffect(() => { document.body.classList.toggle('no-tape-motion', !t.tapeMotion); }, [t.tapeMotion]);
const scrollTo = (id) => {
if (id === 'home') { window.scrollTo({ top: 0, behavior: 'smooth' }); return; }
const el = document.getElementById(id);
if (el) window.scrollTo({ top: el.offsetTop - 64, behavior: 'smooth' });
};
const goConnect = (r) => { setReason(r); scrollTo('connect'); };
return (
);
}
ReactDOM.createRoot(document.getElementById('root')).render();