feat(film): pillar 1 — storms into pipeline

This commit is contained in:
Satyam Rastogi
2026-05-30 03:02:28 +05:30
parent 88a29a336f
commit 41cc7a5ceb
@@ -1,5 +1,36 @@
import { AbsoluteFill, Sequence } from "remotion";
import { PillarTitle } from "../components/PillarTitle"; import { PillarTitle } from "../components/PillarTitle";
import { ScreenFrame } from "../components/ScreenFrame";
import { KenBurns } from "../components/KenBurns";
import { Cursor } from "../components/Cursor";
import { Caption } from "../components/Caption";
import { DURATIONS } from "../timing"; import { DURATIONS } from "../timing";
export const Pillar1Storms: React.FC = () => (
<PillarTitle index="①" title="Pillar 1" subtitle="(stub)" startFrame={0} durationInFrames={DURATIONS.pillar1} /> const D = DURATIONS.pillar1;
const TITLE = 75; // 2.5s
export const Pillar1Storms: React.FC = () => {
const afterTitle = D - TITLE;
const half = Math.floor(afterTitle / 2);
return (
<AbsoluteFill>
<Sequence durationInFrames={TITLE}>
<PillarTitle index="①" title="Turn storms into pipeline" subtitle="See the storm before your competition" startFrame={0} durationInFrames={TITLE} />
</Sequence>
{/* Beat A: Storm Intel — zones light up; cursor assigns a zone */}
<Sequence from={TITLE} durationInFrames={half}>
<KenBurns durationInFrames={half}><ScreenFrame captureId="storm-intel" /></KenBurns>
<Cursor from={{ x: 1400, y: 300 }} to={{ x: 1480, y: 520 }} moveStartFrame={20} clickAtFrame={44} />
<Caption text="Storm Intel maps the damage the moment it lands." startFrame={10} durationInFrames={half - 20} />
</Sequence>
{/* Beat B: Lead Verification — verify a lead */}
<Sequence from={TITLE + half} durationInFrames={afterTitle - half}>
<KenBurns durationInFrames={afterTitle - half}><ScreenFrame captureId="lead-verification" /></KenBurns>
<Cursor from={{ x: 900, y: 400 }} to={{ x: 1500, y: 500 }} moveStartFrame={18} clickAtFrame={40} />
<Caption text="Every lead is verified before it reaches your pipeline." startFrame={10} durationInFrames={afterTitle - half - 20} />
</Sequence>
</AbsoluteFill>
); );
};