import React, { useState, useRef, useEffect } from 'react'; // ───────────────────────────────────────────── // LUXIA v2 — Landing + Demo Viva // MELANO INC · Machine Dominion // ───────────────────────────────────────────── const C = { ink: '#070707', surface: '#0F0E0C', surfaceHi: '#151310', border: '#211D17', borderHi: 'rgba(245,158,11,0.35)', amber: '#F59E0B', amberDim: 'rgba(245,158,11,0.12)', bone: '#EDE6D6', taupe: '#8A8172', green: '#4ADE80', }; const FONTS = ` @import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,600;1,9..144,400;1,9..144,500&family=JetBrains+Mono:wght@400;500;700&family=Inter:wght@400;500;600&display=swap'); .f-display { font-family: 'Fraunces', Georgia, serif; } .f-mono { font-family: 'JetBrains Mono', monospace; } .f-body { font-family: 'Inter', system-ui, sans-serif; } @media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } } @keyframes pulse-dot { 0%,100%{opacity:.3} 50%{opacity:1} } .typing-dot { animation: pulse-dot 1.2s infinite; } .typing-dot:nth-child(2){ animation-delay:.2s } .typing-dot:nth-child(3){ animation-delay:.4s } `; // System prompt del bot demo (Inmobiliaria Faro — ficticia) const BOT_BRIEF = `Sos Alenya, asistente comercial IA de "Inmobiliaria Faro" (Mar del Plata, Argentina). Es una inmobiliaria DEMO para mostrar el sistema LUXIA de MELANO INC. INVENTARIO (no inventes propiedades fuera de esta lista): [F-101] Depto 2 amb, Güemes — 58 m2, balcón — USD 98.000 (venta) [F-102] Casa 3 amb c/jardín y cochera, Los Troncos — 145 m2 — USD 185.000 (venta) [F-103] Depto 3 amb frente al mar, Playa Grande — 92 m2 — USD 240.000 (venta) [F-104] PH 2 amb reciclado, Centro — ARS 650.000/mes (alquiler) REGLAS: - Español rioplatense, cálido y profesional. Máximo 2-3 oraciones. Una pregunta por vez. - Objetivo: calificar al lead (nombre, operación, zona, presupuesto, urgencia) y llevarlo a agendar visita o llamada. - Extraé datos de TODA la conversación acumulada, no solo del último mensaje. - Score 0-100 acumulativo: nombre +15, operación clara +15, zona +15, presupuesto +25, urgencia alta +20, pidió visita/llamada +10. - Si score >= 70 o pide visita: proponé agendar con dos opciones concretas de horario. - Si busca algo que no está en inventario: ofrecé lo más parecido y decí que tomás nota de la búsqueda. - Si alguien quiere VENDER su propiedad: pedí zona, tipo y contacto, y ofrecé tasación sin cargo. FORMATO DE RESPUESTA — respondé SOLO con JSON válido, sin markdown ni backticks: {"reply":"texto de tu respuesta","lead":{"nombre":null,"operacion":null,"zona":null,"presupuesto":null,"urgencia":null,"score":0,"etapa":"explorando"}} - operacion: "compra" | "alquiler" | "venta" | null - urgencia: "alta" | "media" | "baja" | null - etapa: "explorando" | "calificando" | "listo_para_agendar"`; const CALENDLY_URL = 'https://calendly.com/melanoinc/luxia-demo'; // ← REEMPLAZAR con tu Calendly real // ─── Demo: Chat + Lead Intel ─── function LiveDemo() { const [messages, setMessages] = useState([ { role: 'assistant', text: 'Hola 👋 Soy Alenya, la asistente de Inmobiliaria Faro. ¿Estás buscando comprar, alquilar o vender una propiedad?' }, ]); const [input, setInput] = useState(''); const [loading, setLoading] = useState(false); const [lead, setLead] = useState({ nombre: null, operacion: null, zona: null, presupuesto: null, urgencia: null, score: 0, etapa: 'explorando' }); const scrollRef = useRef(null); useEffect(() => { if (scrollRef.current) scrollRef.current.scrollTop = scrollRef.current.scrollHeight; }, [messages, loading]); const send = async (text) => { const content = (text ?? input).trim(); if (!content || loading) return; setInput(''); const nextMsgs = [...messages, { role: 'user', text: content }]; setMessages(nextMsgs); setLoading(true); try { const apiMessages = [ { role: 'user', content: BOT_BRIEF }, { role: 'assistant', content: '{"reply":"Hola 👋 Soy Alenya, la asistente de Inmobiliaria Faro. ¿Estás buscando comprar, alquilar o vender una propiedad?","lead":{"nombre":null,"operacion":null,"zona":null,"presupuesto":null,"urgencia":null,"score":0,"etapa":"explorando"}}' }, ...nextMsgs.slice(1).map(m => ({ role: m.role, content: m.text })), ]; const res = await fetch('https://api.anthropic.com/v1/messages', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ model: 'claude-sonnet-4-6', max_tokens: 1000, messages: apiMessages }), }); const data = await res.json(); const raw = (data.content || []).filter(b => b.type === 'text').map(b => b.text).join(''); const clean = raw.replace(/```json|```/g, '').trim(); const parsed = JSON.parse(clean); setMessages(m => [...m, { role: 'assistant', text: parsed.reply }]); if (parsed.lead) setLead(prev => ({ ...prev, ...parsed.lead, score: Math.max(prev.score, parsed.lead.score || 0) })); } catch (err) { setMessages(m => [...m, { role: 'assistant', text: 'Se cortó la conexión un segundo — probá de nuevo. (En producción, LUXIA reintenta y notifica al vendedor automáticamente.)' }]); } finally { setLoading(false); } }; const chips = ['Busco un 2 ambientes en Güemes', '¿Qué tienen frente al mar?', 'Quiero vender mi casa']; const hot = lead.score >= 70; const Field = ({ label, value }) => (
Alenya · Inmobiliaria Faro
en línea — responde en segundos
// {children}
); const goDemo = () => document.getElementById('demo')?.scrollIntoView({ behavior: 'smooth' }); const goCal = () => window.open(CALENDLY_URL, '_blank'); const faqs = [ { q: '¿Tengo que cambiar mi forma de trabajar?', a: 'No. LUXIA se conecta a tu WhatsApp e Instagram actuales. Tu equipo sigue vendiendo como siempre — solo que recibe leads ya calificados, con contexto completo, en vez de consultas frías.' }, { q: '¿Cuánto tarda la implementación?', a: '7 días desde el pago: setup técnico, carga de tu inventario, personalización del bot con tu tono, testing y capacitación. Día 7: en producción.' }, { q: '¿Qué pasa si el bot no sabe responder?', a: 'Escala a un humano automáticamente y notifica a tu equipo con todo el historial. El cliente nunca queda colgado.' }, { q: '¿Hay permanencia mínima?', a: 'No. Mensualidad mes a mes. Si LUXIA no te genera más reuniones de las que tenías, lo cortás y listo.' }, ]; const sistema = [ ['Bot IA en WhatsApp', 'Responde, califica y agenda 24/7 con tu inventario real.'], ['Landing de captación', 'Diseñada para convertir tráfico de Instagram en conversaciones.'], ['CRM con scoring', 'Cada lead con puntaje, etapa y contexto. Sin planillas.'], ['Seguimiento automático', 'El lead que no responde recibe follow-up inteligente, no silencio.'], ['Agenda conectada', 'Visitas y llamadas directo a tu calendario, con recordatorios.'], ['Panel ejecutivo', 'Cuántos leads entraron, cuántos calificaron, cuántos agendaron.'], ['Escalada a humano', 'Casos sensibles pasan a tu equipo con historial completo.'], ['Setup llave en mano', 'Nosotros configuramos todo. Vos vendés.'], ]; const pasos = [ ['01', 'Instagram / Portales', 'El interesado ve tu propiedad y escribe.'], ['02', 'Respuesta en segundos', 'LUXIA contesta al instante, a cualquier hora.'], ['03', 'Calificación IA', 'Operación, zona, presupuesto, urgencia. Sin interrogatorios.'], ['04', 'Score + seguimiento', 'Los tibios reciben follow-up. Los calientes, prioridad.'], ['05', 'Agenda y cierre', 'Visita agendada. Tu vendedor entra a cerrar, no a filtrar.'], ]; return (LUXIA atiende tus consultas de Instagram y WhatsApp con IA, las califica por presupuesto, zona y urgencia, y agenda visitas mientras tu equipo se dedica a cerrar.
SETUP EN 7 DÍAS · WHATSAPP + INSTAGRAM · SIN PERMANENCIA
Escribile a Alenya como si fueras un cliente buscando propiedad. Mirá el panel de la derecha: así ve tu vendedor cada conversación.
Inmobiliaria Faro es una empresa demo con inventario ficticio. En tu implementación, LUXIA opera con tus propiedades y tu tono de marca.
{d}
Ocho piezas, una sola implementación. Nosotros configuramos, cargamos tu inventario y entrenamos el bot con tu tono. Vos recibís leads calificados.
{String(i + 1).padStart(2, '0')}
{d}
Setup único + mensualidad. Sin permanencia. Sin costos ocultos. Precios en USD.
{p.name}
+ ${p.setup} setup único{p.name === 'ENTERPRISE' ? ' (desde)' : ''}
// CAPACIDAD REAL Implementamos 3 sistemas por mes para garantizar calidad de setup. La agenda se asigna por orden de reserva.
{f.a}
}En la demo cargamos propiedades tuyas y ves a LUXIA calificar un lead real de tu operación. Sin compromiso.
Sin permanencia · Setup en 7 días · Cupo: 3 implementaciones/mes