/* ========================================== PAGE: HOME ========================================== */ const YOHANN_PHOTO = 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/97fad229-f325-4279-6532-23991dc31b00/public'; const YOHANN_PHOTO_2 = 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/988d9fec-1e73-46f9-c1b0-c1dfb935c200/public'; const YOHANN_PHOTO_PORTRAIT = 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/4879c721-5a9d-4add-08b6-e46b7a76d600/public'; const YOHANN_PHOTO_PORTRAIT_2 = 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/4e8a51d4-ba21-472d-6f29-2c28b73f6500/public'; const YOHANN_GALLERY = [ 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/58070ce4-ea18-458e-4d0a-e543d5fd8300/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/dbf22523-e205-49f0-4581-ea06278f7c00/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/3b394f24-6378-4335-d0ae-6818e324a900/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/d8635752-e287-4ab7-d55f-ac114b497500/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/0645258b-5192-4b01-31c2-244fa49a0600/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/aa2fe96a-6a40-4e1f-6c70-9b27eea26700/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/71baab96-6161-4bd0-f48e-afecacca0c00/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/aa6d17b4-334a-459c-6d5f-0a9a7d404600/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/97fad229-f325-4279-6532-23991dc31b00/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/988d9fec-1e73-46f9-c1b0-c1dfb935c200/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/4879c721-5a9d-4add-08b6-e46b7a76d600/public', 'https://imagedelivery.net/mYdfeAeRRdkIXG5w7XJhtQ/4e8a51d4-ba21-472d-6f29-2c28b73f6500/public', ]; // ============== HERO MOTION (animated dashboard scene) ============== const HeroMotion = () => { const [t, setT] = React.useState(0); const [isPhoneLayout, setIsPhoneLayout] = React.useState(() => ( typeof window !== 'undefined' && window.matchMedia('(max-width: 600px)').matches )); React.useEffect(() => { if (typeof window === 'undefined') return undefined; const media = window.matchMedia('(max-width: 600px)'); const syncLayout = (event) => setIsPhoneLayout(event.matches); setIsPhoneLayout(media.matches); if (media.addEventListener) { media.addEventListener('change', syncLayout); return () => media.removeEventListener('change', syncLayout); } media.addListener(syncLayout); return () => media.removeListener(syncLayout); }, []); React.useEffect(() => { let raf; const start = performance.now(); const tick = (now) => { setT((now - start) / 1000); raf = requestAnimationFrame(tick); }; raf = requestAnimationFrame(tick); return () => cancelAnimationFrame(raf); }, []); const wave = (offset = 0, amp = 6) => Math.sin(t * 0.8 + offset) * amp; return (
{/* Animated chart card top-right */} {!isPhoneLayout && (
Resultado da operação
+37%
de eficiência operacional
)} {/* IA card mid-right */}
IA
Decisões mais inteligentes
{/* Automação card top-left */}
Automação
Fluxos inteligentes
{/* CRM card bottom-left */}
Marketing e CRM
Campanhas e relacionamentos
que convertem
{/* Dashboards card bottom-right */} {!isPhoneLayout && (
Dashboards
Dados que viram resultado
)} {/* Yohann photo card */}
Yohann Escher
{/* Center mini-dashboard (laptop-ish) */}
Receita projetada
+24%
R$ 1.480.000
{/* Connecting orbital lines */} {/* Floating dots */} {[...Array(8)].map((_, i) => { const angle = (i / 8) * Math.PI * 2 + t * 0.2; const cx = 300 + Math.cos(angle) * 240; const cy = 230 + Math.sin(angle) * 130; return ; })}
); }; // ============== HOME PAGE ============== const HomePage = ({ onNav }) => { const [isMotionModalOpen, setIsMotionModalOpen] = React.useState(false); const [isPhoneViewport, setIsPhoneViewport] = React.useState(() => ( typeof window !== 'undefined' && window.matchMedia('(max-width: 480px)').matches )); React.useEffect(() => { if (!isMotionModalOpen) return undefined; const previousOverflow = document.body.style.overflow; document.body.style.overflow = 'hidden'; const handleKeyDown = (event) => { if (event.key === 'Escape') setIsMotionModalOpen(false); }; window.addEventListener('keydown', handleKeyDown); return () => { document.body.style.overflow = previousOverflow; window.removeEventListener('keydown', handleKeyDown); }; }, [isMotionModalOpen]); React.useEffect(() => { if (typeof window === 'undefined') return undefined; const media = window.matchMedia('(max-width: 480px)'); const syncViewport = (event) => setIsPhoneViewport(event.matches); setIsPhoneViewport(media.matches); if (media.addEventListener) { media.addEventListener('change', syncViewport); return () => media.removeEventListener('change', syncViewport); } media.addListener(syncViewport); return () => media.removeListener(syncViewport); }, []); const motionModal = isMotionModalOpen && typeof document !== 'undefined' ? ReactDOM.createPortal(
setIsMotionModalOpen(false)} style={{ position: 'fixed', inset: 0, zIndex: 9999, background: 'rgba(6, 7, 10, 0.92)', backdropFilter: 'blur(10px)', WebkitBackdropFilter: 'blur(10px)', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '16px', }} >
event.stopPropagation()} style={{ width: 'min(96vw, 1600px)', height: 'min(92vh, 980px)', display: 'flex', flexDirection: 'column', gap: '14px', }} >