// Hero — animated document → extracted data → emission report function Hero({ t }) { const narrow = window.useNarrow(768); return ( {/* faint grid background */} {t.kicker} {t.title_a} {t.title_b}{" "} {t.title_c} {t.sub} {t.cta} → {t.cta_b} {t.meta} {narrow ? ( ) : ( )} ); } // Three-stage diorama: invoice → extracted rows → emission report. // Subtle continuous animation; respects prefers-reduced-motion. function HeroAnim() { const [stage, setStage] = React.useState(0); const [hovered, setHovered] = React.useState(null); // 0|1|2|null React.useEffect(() => { const reduced = window.matchMedia("(prefers-reduced-motion: reduce)").matches; if (reduced) { setStage(2); return; } if (hovered !== null) return; // pause auto-cycle when hovering let i = stage; const tick = () => { i = (i + 1) % 3; setStage(i); }; const id = setInterval(tick, 2400); return () => clearInterval(id); }, [hovered]); const activeIndex = hovered !== null ? hovered : stage; return (
{t.sub}