// app.jsx — root composition + Tweaks panel // TP Seitz landing — production-quality React app const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{ "accent": "stahlblau", "heroVariant": "compliance", "darkSections": true, "showMobileBar": true }/*EDITMODE-END*/; const ACCENT_PRESETS = { "stahlblau": { signal: "#0C4E97", signalInk: "#F2F6FC", label: "Stahlblau" }, "signal-yellow": { signal: "#F5C200", signalInk: "#1A1500", label: "Signal-Gelb" }, "anthrazit": { signal: "#1C1E23", signalInk: "#FAFAF7", label: "Anthrazit" }, "cobalt": { signal: "#2E5BFF", signalInk: "#F4F6FF", label: "Cobalt" }, "ember": { signal: "#E25A1C", signalInk: "#1A0700", label: "Ember" } }; function App() { const [t, setTweak] = useTweaks(TWEAK_DEFAULTS); useMotion(); // Apply accent live via CSS var override + body data-attr (drives dark-section overrides) React.useEffect(() => { const a = ACCENT_PRESETS[t.accent] || ACCENT_PRESETS["anthrazit"]; document.documentElement.style.setProperty("--signal", a.signal); document.documentElement.style.setProperty("--signal-ink", a.signalInk); document.body.setAttribute("data-accent", t.accent); }, [t.accent]); const wizardRef = React.useRef(null); const scrollToWizard = () => { const el = document.getElementById("anfrage"); if (el) el.scrollIntoView({ behavior: "smooth", block: "start" }); }; return ( <>