// app.jsx — main composition (production, no tweaks/devtools)

const BIO_TEXT = `No Instagram você vê a Gaby. Aqui você conhece a menina safada que eu sou.
Sou a Gaby, 18 aninhos, estudante, catarinense e tenho uma bunda que vai te deixar louco haha
Aqui é onde eu posto meus amadores (explícitos, intensos e sem censura), vem logo me conhecer que tô te esperando...`;

function App() {
  const initialAge = (() => {
    try { return localStorage.getItem('age_ok') === '1'; } catch (e) { return false; }
  })();
  const [ageOk, setAgeOk] = React.useState(initialAge);
  const acceptAge = () => {
    try { localStorage.setItem('age_ok', '1'); } catch (e) {}
    setAgeOk(true);
  };
  const [bioOpen, setBioOpen] = React.useState(false);
  const [plan, setPlan] = React.useState('mes');
  const [bumps, setBumps] = React.useState({ fotos: false, video: false });
  const total = (plan === 'tri' ? 33.90 : 17.90) + (bumps.fotos ? 9.90 : 0) + (bumps.video ? 50 : 0);

  const deadlineRef = React.useMemo(() => {
    try {
      const stored = sessionStorage.getItem('cd_deadline');
      if (stored) return Number(stored);
    } catch (e) {}
    const d = Date.now() + (3 * 3600 + 47 * 60 + 12) * 1000;
    try { sessionStorage.setItem('cd_deadline', String(d)); } catch (e) {}
    return d;
  }, []);

  const scrollToOffer = () => {
    const el = document.getElementById('offer');
    if (el?.scrollIntoView) el.scrollIntoView({ behavior: 'smooth', block: 'start' });
  };

  const openCheckout = (event) => {
    const btn = event.currentTarget;
    window.checkoutStore.openWith({
      plano: btn.dataset.plano || 'trimestral',
      pack: bumps.fotos, video: bumps.video, triggerEl: btn,
    });
  };

  const resumeCheckout = () => {
    window.checkoutStore.openWith({
      plano: plan === 'tri' ? 'trimestral' : 'mensal',
      pack: bumps.fotos, video: bumps.video,
    });
  };

  return (
    <>
      <div className="stage">
        <div className="canvas" data-glow="default">
          <div className="grain" />
          <PixPendingBanner onResume={resumeCheckout} />
          <HeaderLayoutA bioOpen={bioOpen} setBioOpen={setBioOpen} bio={BIO_TEXT} />
          <VideoTeaserStandard blur={6} scrollToOffer={scrollToOffer} openCheckout={openCheckout} />
          <OfferSection
            planLayout="stacked"
            deadlineRef={deadlineRef}
            plan={plan} setPlan={setPlan}
            bumps={bumps} setBumps={setBumps}
            total={total}
            openCheckout={openCheckout}
          />
          <WhatsInside />
          <Testimonials />
          <section className="section"><FAQ /></section>
          <FinalCTA variant="intimate" scrollToOffer={scrollToOffer} total={total} openCheckout={openCheckout} />
          <Footer />
          <Drawer />
        </div>
      </div>
      {!ageOk && <AgeGate onAccept={acceptAge} />}
    </>
  );
}

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