feat(film): pillar 4 — scale with control (access boundaries)

This commit is contained in:
Satyam Rastogi
2026-05-30 03:12:19 +05:30
parent 56dcac82f7
commit 00669ab925
@@ -1,5 +1,42 @@
import { AbsoluteFill, Sequence } from "remotion";
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";
export const Pillar4Control: React.FC = () => (
<PillarTitle index="④" title="Pillar 4" subtitle="(stub)" startFrame={0} durationInFrames={DURATIONS.pillar4} />
const D = DURATIONS.pillar4;
const TITLE = 75;
export const Pillar4Control: React.FC = () => {
const afterTitle = D - TITLE;
const beat = Math.floor(afterTitle / 3);
const last = afterTitle - beat * 2;
return (
<AbsoluteFill>
<Sequence durationInFrames={TITLE}>
<PillarTitle index="④" title="Scale with control" subtitle="You decide who sees what" startFrame={0} durationInFrames={TITLE} />
</Sequence>
{/* Owner toggles a module permission */}
<Sequence from={TITLE} durationInFrames={beat}>
<KenBurns durationInFrames={beat}><ScreenFrame captureId="settings-access" /></KenBurns>
<Cursor from={{ x: 1000, y: 380 }} to={{ x: 1480, y: 520 }} moveStartFrame={16} clickAtFrame={40} />
<Caption text="Set permissions by role or by person." startFrame={8} durationInFrames={beat - 16} />
</Sequence>
{/* Switch to the rep's view — Financials gone, only their leads */}
<Sequence from={TITLE + beat} durationInFrames={beat}>
<KenBurns durationInFrames={beat}><ScreenFrame captureId="rep-leads" /></KenBurns>
<Caption text="The rep sees only their own leads — no more, no less." startFrame={8} durationInFrames={beat - 16} />
</Sequence>
{/* Sub sees only their jobs */}
<Sequence from={TITLE + beat * 2} durationInFrames={last}>
<KenBurns durationInFrames={last}><ScreenFrame captureId="sub-projects" /></KenBurns>
<Caption text="The crew sees only their job. You see everything." startFrame={8} durationInFrames={last - 16} />
</Sequence>
</AbsoluteFill>
);
};