/* app.jsx — composes the homepage + Tweaks (Hero / Services / Portfolio variations) */ const { useEffect: useEffectApp } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "heroVariant": "marquee", "servicesVariant": "cards", "portfolioVariant": "rows", "accent": "oxblood" }/*EDITMODE-END*/; const ACCENTS = { oxblood: { '--oxblood': '#7B1E23', '--oxblood-hi': '#8E2A2F', '--oxblood-lo': '#631418', '--bloodstone': '#C4565C', '--oxblood-12': 'rgba(123,30,35,0.12)', '--oxblood-06': 'rgba(123,30,35,0.06)' }, wine: { '--oxblood': '#5E1B2E', '--oxblood-hi': '#73223A', '--oxblood-lo': '#4A1424', '--bloodstone': '#B85A78', '--oxblood-12': 'rgba(94,27,46,0.14)', '--oxblood-06': 'rgba(94,27,46,0.06)' }, bronze: { '--oxblood': '#8A4A24', '--oxblood-hi': '#9E5A30', '--oxblood-lo': '#6E3717', '--bloodstone': '#C98A4E', '--oxblood-12': 'rgba(138,74,36,0.13)', '--oxblood-06': 'rgba(138,74,36,0.06)' }, }; function App() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); const reveal = useReveal(); // apply accent preset to the document root useEffectApp(() => { const vars = ACCENTS[t.accent] || ACCENTS.oxblood; Object.entries(vars).forEach(([k, v]) => document.documentElement.style.setProperty(k, v)); }, [t.accent]); const { TweaksPanel, TweakSection, TweakRadio } = window; return (