function App() {
  const [page, setPage] = React.useState(() => { const p = localStorage.getItem('gw-site-page'); return p && p !== 'japan' ? p : 'home'; });
  const [anchor, setAnchor] = React.useState(null);
  const go = (p) => {
    if (p === 'coop') { setPage('home'); localStorage.setItem('gw-site-page', 'home'); setAnchor({ id: 'coop', t: Date.now() }); return; }
    setAnchor(null); setPage(p); localStorage.setItem('gw-site-page', p); window.scrollTo(0, 0);
  };
  React.useEffect(() => {
    if (!anchor) return;
    let tries = 0, last = -1, raf;
    const tick = () => {
      const el = document.getElementById(anchor.id);
      const top = el ? el.getBoundingClientRect().top + window.scrollY : -1;
      if (el && top === last) { window.scrollTo({ top: top - 80, behavior: 'auto' }); return; }
      last = top; if (++tries < 60) raf = requestAnimationFrame(tick);
    };
    raf = requestAnimationFrame(tick);
    return () => cancelAnimationFrame(raf);
  }, [anchor, page]);
  return (
    <div style={{ background: 'var(--surface-card)' }}>
      <Announce go={go} />
      <SiteHeader page={anchor && page === 'home' ? anchor.id : page} go={go} />
      {page === 'home' && <Home go={go} />}
      {page === 'products' && <Products go={go} />}
      {page === 'contact' && <Contact />}
      <SiteFooter go={go} />
    </div>
  );
}
if (!window.__gwRoot) window.__gwRoot = ReactDOM.createRoot(document.getElementById('root'));
window.__gwRoot.render(<App />);
