// NSS Software — root + tweaks const { useEffect: useEffectApp } = React; const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "theme": "dark", "accent": "#3B82F6", "density": "comfortable", "showGrid": true }/*EDITMODE-END*/; const ACCENT_OPTIONS = ["#3B82F6", "#7DD3FC", "#A78BFA", "#F5F7FA"]; const App = () => { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); // Apply theme + accent globally useEffectApp(() => { document.documentElement.classList.toggle("theme-light", t.theme === "light"); document.documentElement.style.setProperty("--accent", t.accent); document.documentElement.dataset.density = t.density; if (t.density === "compact") { document.documentElement.style.setProperty("--section-pad", "clamp(72px, 9vw, 140px)"); } else { document.documentElement.style.removeProperty("--section-pad"); } }, [t.theme, t.accent, t.density]); // reveal hook (intersection observers on .reveal / .mask-reveal) useReveal(); return ( <>