// Act 5 — CTA + pricing tiers (42–54s) function Act5CTA() { return ( ); } function Act5Inner() { const { localTime: t } = useSprite(); // Logo pulse const pulseScale = 1 + Math.sin(t * 2) * 0.02; return (
{/* Background bolt — marca de agua estática */}
{/* Header (0-3) — with fade-in so logo doesn't pop in abruptly */} {t < 11 && (
Chispa
)} {/* Headline */} {t > 0.4 && t < 11 && (
Genera tu primera chispa.
Beta privada · acceso por invitación.
)} {/* Pricing tiers — ocultos durante la beta privada (no mostramos planes públicos con precio en la superficie pública). PricingRow se conserva abajo por si se reactiva. */} {false && t >= 1.5 && t < 11 && } {/* Closing tagline — más arriba (bottom 290) para no chocar con CTA */} {t >= 5.0 && t < 11 && (
Tu IA, entrenada con tu contenido.
)} {/* CTA button */} {t >= 3.0 && t < 11 && } {/* Compliance + Domain — única ubicación bottom */} {t >= 4.0 && t < 11 && (
RGPD · ENS-BÁSICA · OWASP ASVS L2 · chispa.es/trust
chispa.es
)}
); } function BoltSvg({ size = 60 }) { return ( ); } function PricingRow({ t }) { const tiers = [ { name: 'Free', price: '€0', clipsLine: '5 clips/mes', features: ['prueba y descarga'], delay: 0.0, accent: 'rgba(255,255,255,0.5)' }, { name: 'Creator', price: '€29', clipsLine: '50 clips/mes', features: ['publica solo · YT + TT + IG'], delay: 0.25, accent: '#F59E0B' }, { name: 'Pro', price: '€79', clipsLine: '200 clips/mes', features: ['IA entrenada · multi-canal'], delay: 0.5, accent: '#9061f9', highlight: true }, { name: 'Studio', price: '€199', clipsLine: 'ilimitado', features: ['editorial · colaboradores'], delay: 0.75, accent: '#fff' }, ]; const proPulse = 0.5 + Easing.easeInOutSine((Math.sin(t * 3) + 1) / 2) * 0.5; return (
{tiers.map((tier, i) => { const local = t - tier.delay; const ease = Easing.easeOutCubic(clamp(local * 3, 0, 1)); return (
{tier.highlight && (
IA aprende
)}
{tier.name}
{tier.price}
/mes
{tier.clipsLine}
{tier.features.map((f, j) => (
{f}
))}
); })}
); } function CTAButton({ t }) { const opacity = Easing.easeOutCubic(clamp(t / 0.4, 0, 1)); const sineNorm = (Math.sin(t * 4) + 1) / 2; const pulse = 1 + (Easing.easeInOutSine(sineNorm) - 0.5) * 0.03; const glow = Easing.easeInOutSine(sineNorm); return (
Solicitar acceso →
); } window.Act5CTA = Act5CTA;