/* global React */ // ⭐ Be Cinematic — vídeo fullwidth com overlay que desaparece 2s após entrar em viewport function Cinematic() { const videoRef = React.useRef(null); const sectionRef = React.useRef(null); const timerRef = React.useRef(null); const [playing, setPlaying] = React.useState(true); const [muted, setMuted] = React.useState(true); const [overlayVisible, setOverlay] = React.useState(true); // lettering overlay // IntersectionObserver — quando 30% visível, arranca timer de 2s para esconder overlay React.useEffect(() => { const el = sectionRef.current; if (!el) return; const obs = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting && overlayVisible) { timerRef.current = setTimeout(() => setOverlay(false), 2000); } else if (!entry.isIntersecting) { // saiu do viewport antes do timer — cancelar e repor overlay clearTimeout(timerRef.current); setOverlay(true); } }, { threshold: 0.3 } ); obs.observe(el); return () => { obs.disconnect(); clearTimeout(timerRef.current); }; }, []); // eslint-disable-line react-hooks/exhaustive-deps const toggleAudio = () => { const v = videoRef.current; if (v) { v.muted = !v.muted; setMuted(v.muted); } else { setMuted(m => !m); } }; const togglePlay = () => { const v = videoRef.current; if (v) { if (v.paused) { v.play(); setPlaying(true); } else { v.pause(); setPlaying(false); } } else { setPlaying(p => !p); } }; const steps = [ { n: "01", k: "Briefing & Proposta", d: "Entendemos a campanha; definimos âmbito, orçamento e timeline." }, { n: "02", k: "Pré-produção", d: "Moodboard, storyboard, casting (real, AI, ou ambos), guidelines de marca." }, { n: "03", k: "Produção", d: "Captação tradicional, geração AI, ou híbrida, decidida plano a plano." }, { n: "04", k: "Pós-produção", d: "Edição, motion, sound design, color grading." }, { n: "05", k: "Entrega", d: "Todas as versões e formatos que a campanha precisa." } ]; return (
{/* Vídeo hero fullwidth */}
{/* Vídeo real: RM AD.mp4 — visível imediatamente, sem placeholder a cobrir */}
); } window.Cinematic = Cinematic; window.Production = Cinematic;