/* hero.jsx — five hero options via `variant` prop. spotlight | editorial | minimal | statement | marquee */ const { useEffect: useEffectHero, useRef: useRefHero } = React; const HERO_STREAM = 'https://stream.mux.com/tLkHO1qZoaaQOUeVWo8hEBeGQfySP02EPS02BmnNFyXys.m3u8'; const HERO_MP4 = 'https://d8j0ntlcm91z4.cloudfront.net/user_38xzZboKViGWJOttwIXH07lWA1P/hf_20260328_065045_c44942da-53c6-4804-b734-f9e07fc22e08.mp4'; /* Standard HLS video (Spotlight / Editorial) */ function HeroVideo() { const ref = useRefHero(null); useEffectHero(() => { const video = ref.current; if (!video) return; let hls; const start = () => { video.play().catch(() => {}); }; if (video.canPlayType('application/vnd.apple.mpegurl')) { video.src = HERO_STREAM; video.addEventListener('loadedmetadata', start); } else if (window.Hls && window.Hls.isSupported()) { hls = new window.Hls({ enableWorker: false }); hls.loadSource(HERO_STREAM); hls.attachMedia(video); hls.on(window.Hls.Events.MANIFEST_PARSED, start); } return () => { if (hls) hls.destroy(); }; }, []); return ; } /* Fade-loop MP4 video (Marquee): 0.5s fade-in, 0.5s fade-out, 100ms pause, repeat */ function HeroFadeVideo() { const ref = useRefHero(null); useEffectHero(() => { const v = ref.current; if (!v) return; v.src = HERO_MP4; v.muted = true; v.playsInline = true; v.preload = 'auto'; v.style.opacity = '0'; let raf = 0, dying = false; const FADE = 500; // ms const animate = (startTime, from, to, cb) => { const step = (now) => { const p = Math.min(1, (now - startTime) / FADE); v.style.opacity = String(from + (to - from) * p); if (p < 1) { raf = requestAnimationFrame(step); } else { cb && cb(); } }; raf = requestAnimationFrame(step); }; const onCanPlay = () => { dying = false; animate(performance.now(), 0, 0.35, null); v.play().catch(() => {}); }; const onTimeUpdate = () => { if (!dying && v.duration && v.currentTime > v.duration - 0.5) { dying = true; animate(performance.now(), 0.35, 0, null); } }; const onEnded = () => { v.style.opacity = '0'; setTimeout(() => { dying = false; v.currentTime = 0; v.play().catch(() => {}); }, 100); }; v.addEventListener('canplay', onCanPlay, { once: false }); v.addEventListener('timeupdate', onTimeUpdate); v.addEventListener('ended', onEnded); v.load(); return () => { cancelAnimationFrame(raf); v.removeEventListener('canplay', onCanPlay); v.removeEventListener('timeupdate', onTimeUpdate); v.removeEventListener('ended', onEnded); }; }, []); return ; } const goContact = () => document.querySelector('#contact').scrollIntoView({ behavior: 'smooth' }); const goWork = () => document.querySelector('#portfolio').scrollIntoView({ behavior: 'smooth' }); function PillCTA({ label }) { return ; } function GhostCTA() { return ; } const INLINE_STATS = [{ n: '150+', l: 'Projects' }, { n: '96%', l: 'Retention' }, { n: '3.4×', l: 'Avg. ROI' }]; function HeroStatsCard() { return (
Led by senior specialists
SEO · Web · AI automation, under one roof.
SEO, web development and AI automation under one roof. The site we build ranks, the rankings convert, and the conversions run on autopilot.
Three disciplines — SEO, web and AI automation — run as one growth engine. Outcomes, not outputs.
We build the visibility to be found, the credibility to be chosen, and the automation to scale without limits.
SEO, web development and AI automation under one roof — for ambitious businesses that intend to be found first.
SEO, web development and AI automation under one roof — built for ambitious businesses.