// app.jsx — top-level mount, theme + tweaks wiring

const TWEAK_DEFAULTS = /*EDITMODE-BEGIN*/{
  "tone": "swiss",
  "accent": "#3a6fa7",
  "density": "regular",
  "particles": 90,
  "mark": "ring",
  "servicesLayout": "cards"
}/*EDITMODE-END*/;

function App() {
  const [t, setTweak] = useTweaks(TWEAK_DEFAULTS);

  // Map tone → font stacks via CSS vars on <html>
  React.useEffect(() => {
    const root = document.documentElement;
    root.dataset.tone = t.tone;
    root.style.setProperty('--accent', t.accent);
    root.dataset.density = t.density;
  }, [t.tone, t.accent, t.density]);

  return (
    <>
      <Nav accent={t.accent} mark={t.mark} />
      <main>
        <Hero accent={t.accent} density={t.particles} />
        <Services accent={t.accent} layout={t.servicesLayout} />
        <Approach accent={t.accent} />
        <About />
        <QuizSection accent={t.accent} />
        <FAQ />
        <Contact accent={t.accent} />
      </main>
      <Footer accent={t.accent} mark={t.mark} />

      <TweaksPanel title="Tweaks">
        <TweakSection label="Tone">
          <TweakRadio label="Style" value={t.tone}
                      options={[
                        { value: 'swiss', label: 'Swiss' },
                        { value: 'editorial', label: 'Editorial' },
                        { value: 'mono', label: 'Mono' },
                      ]}
                      onChange={v => setTweak('tone', v)} />
          <TweakRadio label="Density" value={t.density}
                      options={[
                        { value: 'compact', label: 'Compact' },
                        { value: 'regular', label: 'Regular' },
                        { value: 'airy', label: 'Airy' },
                      ]}
                      onChange={v => setTweak('density', v)} />
        </TweakSection>
        <TweakSection label="Layout">
          <TweakRadio label="Services" value={t.servicesLayout}
                      options={[
                        { value: 'list', label: 'List' },
                        { value: 'cards', label: 'Cards' },
                      ]}
                      onChange={v => setTweak('servicesLayout', v)} />
        </TweakSection>
        <TweakSection label="Brand">
          <TweakRadio label="Logo mark" value={t.mark}
                      options={[
                        { value: 'ring', label: 'Ring' },
                        { value: 'spark', label: 'Spark' },
                        { value: 'matrix', label: 'Matrix' },
                      ]}
                      onChange={v => setTweak('mark', v)} />
          <TweakColor label="Accent" value={t.accent}
                      options={['#3a6fa7', '#1f5f6b', '#4a4f63', '#a9683d']}
                      onChange={v => setTweak('accent', v)} />
        </TweakSection>
        <TweakSection label="Hero">
          <TweakSlider label="Particle density" value={t.particles}
                       min={40} max={140} step={5}
                       onChange={v => setTweak('particles', v)} />
        </TweakSection>
      </TweaksPanel>
    </>
  );
}

ReactDOM.createRoot(document.getElementById('root')).render(<App />);
