// Pricing โ€” annual/monthly toggle, hover lift, animated featured glow. const Pricing = ({ onNav }) => { const [period, setPeriod] = React.useState('monthly'); const [hover, setHover] = React.useState(null); const isMobile = useResponsive(); const tiers = [ { name: 'Personal', monthly: 0, annual: 0, period: '', desc: 'For individuals getting started with smart home surveillance.', cta: 'Try Now', ctaVariant: 'secondary', features: ['1 Camera Connection', 'Basic Motion Detection', '24h Cloud Retention', 'Mobile App Access'], featured: false, }, { name: 'Starter', monthly: 299, annual: 249, period: '/month', desc: 'Perfect for small businesses needing reliable AI security.', cta: 'Subscribe Now', ctaVariant: 'primary', features: ['Up to 8 Cameras', 'Advanced Person Detection', '7-Day History', 'Email & SMS Alerts', 'Priority Support'], featured: true, }, { name: 'Premium', monthly: 699, annual: 579, period: '/month', desc: 'For companies who need advanced features and top-tier support.', cta: 'Subscribe Now', ctaVariant: 'secondary', features: ['Unlimited Cameras', 'Full Sentiment Analysis', '30-Day History', 'Custom Integrations', 'Dedicated Account Manager'], featured: false, }, ]; return (

One plan, one price.

We like keeping things simple. Choose the scale that fits your needs. Every tier includes a 30-day money-back guarantee.

{/* Period toggle */}
{['monthly', 'annual'].map(p => ( ))}
{tiers.map((t, idx) => { const price = period === 'annual' ? t.annual : t.monthly; const isHover = hover === idx; return (
setHover(idx)} onMouseLeave={() => setHover(null)} style={{ background: t.featured ? 'linear-gradient(180deg, rgba(145,70,255,0.10), #18181B 60%)' : '#18181B', borderRadius: 6, border: t.featured ? '1px solid #9146FF' : isHover ? '1px solid #3A3A42' : '1px solid #2F2F35', padding: 32, position: 'relative', display: 'flex', flexDirection: 'column', transform: isHover ? 'translateY(-4px)' : 'translateY(0)', boxShadow: isHover && t.featured ? '0 20px 50px -10px rgba(145,70,255,0.4)' : 'none', transition: 'transform 200ms cubic-bezier(0.2,0,0,1), border-color 100ms, box-shadow 200ms', }}> {t.featured && (
Most Popular
)}

{t.name}

{t.desc}

{price === 0 ? 'Free' : `$${price}`} {price > 0 && {t.period}}
{price > 0 && period === 'annual' && (
was ${t.monthly}/mo ยท billed yearly
)} {(price === 0 || period === 'monthly') &&
}
    {t.features.map((f, i) => (
  • โœ“ {f}
  • ))}
30-day money back guarantee
); })}
); }; window.Pricing = Pricing;