// Act 4 — Tres formas de usar Chispa (32–42s)
// Reemplazamos las stats inventadas por los 3 modos del producto, mostrados con
// micro-visuales que ilustran cada caso. Da el "qué exactamente hace Chispa"
// que la landing necesita antes del CTA.
function Act4Results() {
return (
);
}
function Act4Inner() {
const { localTime: t } = useSprite();
return (
{/* Title strip (window 10s, fade-out 9.5-10.0) */}
Un mismo motor IA. Tres formatos para usar Chispa.
{t >= 1.4 && t < 10.0 && }
);
}
function UseCases({ t }) {
const opacity = t < 0.3 ? t / 0.3 : t > 8.0 ? Math.max(0, (8.6 - t) / 0.6) : 1;
const cases = [
{
tag: '01',
label: 'Clips personalizados',
meta: 'el día a día',
desc: 'IA entrenada en TU canal. Gaming, deportes, podcast, comedy, lifestyle.',
delay: 0.2,
visual: 'clips',
},
{
tag: '02',
label: 'Recortar bruto',
meta: 'montaje · sin silencios',
desc: 'Elimina silencios, voz de producción y tomas falladas. La pieza queda lista para entregar.',
delay: 0.7,
visual: 'timeline',
},
{
tag: '03',
label: 'Highlights del directo',
meta: '3 h → 5 min',
desc: 'Detecta los picos de un stream o podcast y los condensa sin perder el hilo.',
delay: 1.2,
visual: 'condense',
highlight: true,
},
];
return (
{cases.map((c, i) => {
const local = t - c.delay;
const ease = Easing.easeOutCubic(clamp(local * 2.5, 0, 1));
return (
{/* Header row */}
{c.tag}
{c.meta}
{/* Visual */}
{/* Body */}
{c.label}
{c.desc}
);
})}
{/* Nichos optimizados strip (compliance se muestra en Act 5 para no duplicar) */}
optimizado para gaming · fútbol · podcast · comedia
);
}
// ── Mini visualisations per case card ───────────────────────────────────────
function CaseVisual({ kind, t = 0, highlight }) {
// local pulse for liveliness
const tt = Math.max(0, t);
const accent = '#F59E0B';
const orange = '#EA580C';
if (kind === 'clips') {
// 5 mini 9:16 portrait clips, each with a "spark" bolt overlay
const clips = [0, 1, 2, 3, 4];
return (