/* Aifit Life Platform — main app */ const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "purple": "#7C6BA6", "headingFont": "Shippori Mincho", "aiColor": "#C2A55E", "showRail": true }/*EDITMODE-END*/; function App() { const { useState, useEffect } = React; const D = window.AIFIT; const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); const [selected, setSelected] = useState(null); useEffect(() => { const r = document.documentElement; r.style.setProperty("--purple", t.purple); r.style.setProperty("--purple-mid", `color-mix(in srgb, ${t.purple} 82%, #2f2942)`); r.style.setProperty("--purple-deep", `color-mix(in srgb, ${t.purple} 62%, #2f2942)`); }, [t.purple]); useEffect(() => { document.documentElement.style.setProperty("--mincho", `"${t.headingFont}", "Hiragino Mincho ProN", "Yu Mincho", serif`); }, [t.headingFont]); useEffect(() => { const r = document.documentElement; r.style.setProperty("--gold", t.aiColor); r.style.setProperty("--gold-deep", `color-mix(in srgb, ${t.aiColor} 62%, #4a3a14)`); }, [t.aiColor]); useEffect(() => { const io = new IntersectionObserver((es) => { es.forEach((e) => { if (e.isIntersecting) { e.target.classList.add("in"); io.unobserve(e.target); } }); }, { threshold: 0.14 }); document.querySelectorAll(".reveal").forEach((el) => io.observe(el)); return () => io.disconnect(); }, []); const accents = {}; D.PLATFORM.forEach((p) => { accents[p.key] = p.color; }); return (
{t.showRail && }