// Hero with live-feed demo panel + animated topo background function HeroTopo() { // SVG "contour" lines echoing the Australia outline vibe const lines = Array.from({ length: 14 }, (_, i) => i); return (
); } function LiveFeedPanel() { const events = [ { ts: '9:04:11', label: <>Dan @ Ironbark Plumbing · new enquiry · hot water swap>, tag: 'ok', tagLabel: 'new' }, { ts: '9:04:14', label: <>Qualify bot · scope, access, suburb (Edge Hill)>, tag: 'sync', tagLabel: 'route' }, { ts: '9:04:29', label: <>Auto-quote · $1,280 drafted from rate card>, tag: 'sent', tagLabel: 'built' }, { ts: '9:04:37', label: <>SMS + PDF sent to 0414 ···>, tag: 'sent', tagLabel: 'sent' }, { ts: '9:06:02', label: <>Customer accepted · job card pushed to SimPro>, tag: 'ok', tagLabel: 'won' }, ]; const [visible, setVisible] = React.useState(0); React.useEffect(() => { if (visible >= events.length) return; const t = setTimeout(() => setVisible(v => v + 1), visible === 0 ? 800 : 700); return () => clearTimeout(t); }, [visible]); const tagClass = { ok: 'tag-ok', sent: 'tag-sent', sync: 'tag-sync', new: 'tag-new' }; return ( ); } function Hero() { const trades = ['Plumbers','Electricians','Roofers','HVAC','Builders','Painters','Fencers','Landscapers','Cleaners','Concreters','Pest control','Glazing']; return (We build custom automations for Australian trades — so missed calls get answered, quotes go out same-day, and jobs flow straight into your job management software (CRM). You stay on the tools. The paperwork runs itself.