/* home.jsx — Cinematic dark home with fullscreen hero slider */ function HomePage({ onNavigate }) { const { t } = useLang(); const { PORTFOLIO, SERVICES, PROCESS } = window.JMC_DATA; const featured = PORTFOLIO.filter(p => p.featured); return (
{/* MARQUEE band — running tech stack */} {/* CAPABILITIES preview */}
onNavigate('services')}>{t.home.capabilities.seeAll}} />
{SERVICES.slice(0, 3).map((s, i) => ( ))}
{/* SPEC ROW */} {/* FEATURED case — QTS */} {/* SHOWCASE GALLERY — big image grid */} {/* DIGITAL TWIN — interactive feature */} {/* PROCESS strip */} {/* CTA with image bg */} onNavigate('contact')} onSecondary={() => onNavigate('portfolio')} image="assets/portfolio/bess-01.png" />
); } /* ─────────────────────── HERO with slider ───────────────────── */ function HomeHero({ onNavigate }) { const { t, lang } = useLang(); // Each media item carries its own bilingual copy so images & copy never desync. const slideMedia = [ { type: 'video', src: 'assets/portfolio/hero-anim.mp4', en: { eyebrow: 'Reel · UE5 cinematic build', title: ['Cinematic Infrastructure', 'Visualization'], accent: 'Visualization', sub: 'Hero films, real-time walkthroughs and AI-augmented concept work for data centers, energy storage, and renewable operators.', caption: 'QTS · Cinematic After Reel · UE5' }, es: { eyebrow: 'Reel · Unreal Engine 5', title: ['Visualización Cinemática', 'de Infraestructura Crítica'], accent: 'Visualización Cinemática', sub: 'Films, recorridos en tiempo real y trabajo conceptual con IA para data centers, almacenamiento de energía y renovables.', caption: 'QTS · After Reel Cinematográfico · UE5' } }, { type: 'image', src: 'assets/portfolio/oilgas-3d.png', en: { eyebrow: 'Oil & gas infrastructure', title: ['Oil & gas 3D visuals', 'that close deals'], accent: 'that close deals', sub: 'Process plants, administrative buildings and transmission corridors visualized specifically to make the financing case impossible to ignore.', caption: 'Pampa Energía · Process Plant · Sunset Hero' }, es: { eyebrow: 'Infraestructura oil & gas', title: ['Imágenes 3D de oil & gas', 'que cierran negocios'], accent: 'que cierran negocios', sub: 'Plantas de proceso, edificios administrativos y corredores de transmisión — renderizados en golden hour para volver irresistible el caso de financiamiento.', caption: 'Pampa Energía · Planta de Proceso · Hero Atardecer' } }, { type: 'video', src: 'assets/portfolio/hero-kling2.mp4', en: { eyebrow: 'Real-time camera', title: ['Camera moves', 'through finished sites'], accent: 'through finished sites', sub: 'A slow dolly across the campus — modeled to surveyed coordinates, lit to real spec, rendered live in Unreal Engine 5.', caption: 'Studio reel · Real-time camera · UE5' }, es: { eyebrow: 'Cámara en tiempo real', title: ['La cámara recorre', 'sitios terminados'], accent: 'sitios terminados', sub: 'Un travelling lento por el campus — modelado sobre coordenadas reales, iluminado al proyecto, renderizado en vivo en Unreal Engine 5.', caption: 'Reel del estudio · Cámara en tiempo real · UE5' } }, { type: 'image', src: 'assets/portfolio/qts-interior-red.png', en: { eyebrow: 'Inside the hall', title: ['Server halls,', 'rendered like film sets'], accent: 'rendered like film sets', sub: 'Branded data halls in cinematic light — the red glow, the endless aisle, the lit signage. The cathedrals of the compute era.', caption: 'QTS · Data Hall Interior · UE5' }, es: { eyebrow: 'Dentro del hall', title: ['Salas de servidores,', 'iluminadas como sets de cine'], accent: 'iluminadas como sets de cine', sub: 'Data halls de marca con luz cinematográfica — el glow rojo, el pasillo infinito, la señalética iluminada. Las catedrales de la era del cómputo.', caption: 'QTS · Interior de Data Hall · UE5' } }, { type: 'video', src: 'assets/portfolio/aerial-flythrough.mp4', en: { eyebrow: 'Aerial cinematography', title: ['Hyperscale campuses,', 'seen from above'], accent: 'seen from above', sub: 'A real-time aerial fly-through across a modern hyperscale campus — estuary, substation and the full site, all in one continuous shot.', caption: 'Hyperscale Campus · Aerial Fly-Through · UE5' }, es: { eyebrow: 'Cinematografía aérea', title: ['Campus hyperscale,', 'vistos desde arriba'], accent: 'vistos desde arriba', sub: 'Un fly-through aéreo en tiempo real sobre un campus hyperscale moderno — estuario, subestación y el sitio completo, todo en una toma continua.', caption: 'Campus Hyperscale · Fly-Through Aéreo · UE5' } }, { type: 'image', src: 'assets/portfolio/datahall-modern.png', en: { eyebrow: 'Architectural scale', title: ['Modern data halls,', '12.5 acres each'], accent: '12.5 acres each', sub: 'Glass-and-steel facades, raised plant decks, kilometre-long aisles — each hall a 12.5-acre building, rendered to convey the sheer scale on the ground.', caption: 'Modern Data Hall · Exterior · UE5 Path Traced' }, es: { eyebrow: 'Escala arquitectónica', title: ['Data halls modernos,', '12,5 acres cada uno'], accent: '12,5 acres cada uno', sub: 'Fachadas de vidrio y acero, decks de plantas elevadas, pasillos de un kilómetro — cada hall un edificio de 12,5 acres, renderizado para transmitir la escala real en el terreno.', caption: 'Data Hall Moderno · Exterior · UE5 Path Traced' } }, { type: 'image', src: 'assets/portfolio/datacenter-river.jpg', en: { eyebrow: 'Site in context', title: ['Campuses set', 'into their landscape'], accent: 'into their landscape', sub: 'A riverside data center campus at dawn — surrounding industry, transmission, water and green buffer. The full context in a single frame.', caption: 'Data Center Campus · Riverside · Aerial' }, es: { eyebrow: 'El sitio en contexto', title: ['Campus integrados', 'a su paisaje'], accent: 'a su paisaje', sub: 'Un campus de data center sobre el río al amanecer — industria, transmisión, agua y buffer verde. Todo el contexto en una sola imagen.', caption: 'Data Center Campus · Sobre el Río · Aérea' } }, { type: 'image', src: 'assets/portfolio/datacore-interior.jfif', en: { eyebrow: 'Architectural cinematography', title: ['Interiors that', 'sell the experience'], accent: 'sell the experience', sub: 'A technician walks the cold aisle as the sun sets behind the cooling towers — film-grade lighting, real materials, real scale.', caption: 'DataCore · Cold Aisle · UE5 Path Traced' }, es: { eyebrow: 'Cinematografía arquitectónica', title: ['Interiores que', 'venden la experiencia'], accent: 'venden la experiencia', sub: 'Un técnico recorre el cold aisle mientras el sol cae tras las torres de enfriamiento — luz de cine, materiales reales, escala real.', caption: 'DataCore · Cold Aisle · UE5' } }, { type: 'image', src: 'assets/portfolio/btc-datacenter.jpg', en: { eyebrow: 'Crypto & HPC', title: ['Compute campuses,', 'at neon dusk'], accent: 'at neon dusk', sub: 'BTC and HPC facilities lit with the brand\'s own signature addressable data halls, river frontage, the works.', caption: 'BTC Data Center · Dusk · Brand Lighting' }, es: { eyebrow: 'Crypto & HPC', title: ['Campus de cómputo,', 'al atardecer neón'], accent: 'al atardecer neón', sub: 'Instalaciones BTC y HPC iluminadas con la firma de la marca — data halls direccionables, frente al río, todo.', caption: 'BTC Data Center · Atardecer · Luz de Marca' } }, { type: 'image', src: 'assets/portfolio/datacenter-iso-02.png', en: { eyebrow: 'Clean isometric', title: ['3D models', 'that read at a glance'], accent: 'that read at a glance', sub: 'Isometric studies for board packs, permits and operations — the buildings, the halls, the connectivity bridges, all legible in one frame.', caption: 'Data Center Campus · Isometric · UE5' }, es: { eyebrow: 'Isométrico claro', title: ['Modelos 3D', 'que se leen de un vistazo'], accent: 'que se leen de un vistazo', sub: 'Vistas isométricas para directorios, permisos y operaciones — los edificios, los halls, los puentes de conexión, todo legible en una imagen.', caption: 'Data Center Campus · Isométrico · UE5' } }, { type: 'image', src: 'assets/portfolio/bess-investor-overlay.png', en: { eyebrow: 'Investor-ready', title: ['3D energy visuals', 'that win investors'], accent: 'that win investors', sub: 'Project-finance-grade visualization — a single hero frame, layered with typography, that anchors the entire pitch.', caption: 'BESS · Investor Hero · 16K' }, es: { eyebrow: 'Listo para inversores', title: ['Imágenes 3D de energía', 'que convencen inversores'], accent: 'que convencen inversores', sub: 'Visualización a la altura de una ronda de inversión — una sola imagen, con tipografía, que sostiene toda la presentación.', caption: 'BESS · Hero de Inversión · 16K' } }, { type: 'image', src: 'assets/portfolio/bess-overcast.png', en: { eyebrow: 'Aerial cinematography', title: ['Storm light,', 'permitted spec'], accent: 'permitted spec', sub: 'Wet pavement, overcast skies, transmission corridors on the horizon — every detail modeled to the operator\'s permit drawings.', caption: 'BESS · Aerial · Overcast Light' }, es: { eyebrow: 'Cinematografía aérea', title: ['Luz de tormenta,', 'spec de permiso'], accent: 'spec de permiso', sub: 'Pavimento húmedo, cielo cubierto, corredores de transmisión en el horizonte — cada detalle modelado según los planos de permiso del operador.', caption: 'BESS · Aérea · Luz Cubierta' } }, { type: 'image', src: 'assets/portfolio/bess-plan-render-bw.png', en: { eyebrow: 'Plan → reality', title: ['Complex layouts,', 'translated to cinema'], accent: 'translated to cinema', sub: 'We start where your architect leaves off. Technical plans become cinematic images — the same project, two languages.', caption: 'BESS · Plan & Render · Side-by-Side' }, es: { eyebrow: 'Del plano a la imagen', title: ['Layouts complejos,', 'traducidos a cine'], accent: 'traducidos a cine', sub: 'Empezamos donde termina tu arquitecto. Planos técnicos se vuelven imágenes cinematográficas — el mismo proyecto, dos lenguajes.', caption: 'BESS · Plano y Render · Lado a Lado' } }, { type: 'image', src: 'assets/portfolio/bess-iso-white.png', en: { eyebrow: 'Clarity', title: ['The substation,', 'the yard, one frame'], accent: 'the yard, one frame', sub: 'A clean isometric of the full BESS facility — substation, battery yard, admin building, all callable for board packs and permits.', caption: 'BESS · Iso Reference · White Background' }, es: { eyebrow: 'Claridad', title: ['La subestación,', 'el yard, una imagen'], accent: 'el yard, una imagen', sub: 'Un isométrico limpio de toda la instalación BESS — subestación, yard de baterías, edificio administrativo, todo accesible para directorios y permisos.', caption: 'BESS · Iso de Referencia · Fondo Blanco' } }, { type: 'image', src: 'assets/portfolio/infarm-testfit.png', en: { eyebrow: 'Test-fit & feasibility', title: ['BIM models,', 'turned into stories'], accent: 'turned into stories', sub: 'Test-fits, MEP schedules and density studies — we translate the technical case into a single annotated image stakeholders actually read.', caption: 'Infarm · Vertical Farming Hub · Test-Fit' }, es: { eyebrow: 'Test-fit y factibilidad', title: ['Modelos BIM,', 'convertidos en relatos'], accent: 'convertidos en relatos', sub: 'Test-fits, planillas MEP y estudios de densidad — traducimos el caso técnico en una sola imagen anotada que los stakeholders sí leen.', caption: 'Infarm · Hub de Agricultura Vertical · Test-Fit' } }, { type: 'image', src: 'assets/portfolio/uae-storage-hub.png', en: { eyebrow: 'Case studies', title: ['Logistics, energy,', 'and atmosphere'], accent: 'and atmosphere', sub: 'A UAE storage hub — solar array integration, weathered industrial materials, harsh desert light. A 1:1 preview of the future facility.', caption: 'UAE Storage Logistics Hub · 2025' }, es: { eyebrow: 'Casos', title: ['Logística, energía', 'y atmósfera'], accent: 'y atmósfera', sub: 'Un hub de almacenamiento en EAU — integración solar, materiales industriales curtidos, luz dura del desierto. Una vista previa 1:1 de la futura instalación.', caption: 'Hub Logístico de Almacenamiento · EAU · 2025' } }, { type: 'image', src: 'assets/portfolio/bess-solar-canopy.png', en: { eyebrow: 'Solar canopy', title: ['Energy infrastructure,', 'in detail'], accent: 'in detail', sub: 'Modular solar canopies over battery containers — modeled with the same discipline as a feature film set.', caption: 'BESS + Solar Canopy · Aerial Study' }, es: { eyebrow: 'Canopy solar', title: ['Infraestructura energética,', 'en detalle'], accent: 'en detalle', sub: 'Canopies solares modulares sobre contenedores de baterías — modeladas con la misma disciplina que un set de cine.', caption: 'BESS + Canopy Solar · Estudio Aéreo' } }, { type: 'image', src: 'assets/portfolio/bess-plan-to-real.png', en: { eyebrow: 'From the drawing', title: ['The plan and the render,', 'side by side'], accent: 'side by side', sub: 'A board pairing the Level 01 plan with the final aisle render — translating construction documents into something any board can approve.', caption: 'BESS · Plan → Render · Board Pairing' }, es: { eyebrow: 'Desde el plano', title: ['El plano y el render,', 'lado a lado'], accent: 'lado a lado', sub: 'Un pareado del plano Nivel 01 con el render final del aisle — traduce documentos de obra en algo que cualquier directorio puede aprobar.', caption: 'BESS · Plano → Render · Pareado' } }, { type: 'image', src: 'assets/portfolio/level-01-plan.png', en: { eyebrow: 'From the documents', title: ['We work from', 'your actual drawings'], accent: 'your actual drawings', sub: 'Level plans at 1:400, generator yards, fuel tanks, cooling plants — modeled to your real spec, not stock geometry.', caption: 'Level 01 Plan · Scale 1:400 · Source Document' }, es: { eyebrow: 'Desde tus documentos', title: ['Trabajamos sobre', 'tus planos reales'], accent: 'tus planos reales', sub: 'Plantas a escala, salas técnicas, generadores, sistemas de refrigeración — modelados según tu proyecto real, no geometría genérica.', caption: 'Planta Nivel 01 · Escala 1:400 · Documento Fuente' } }, { type: 'image', src: 'assets/portfolio/datacenter-iso-red.png', en: { eyebrow: 'Isometric clarity', title: ['3D models', 'that read at a glance'], accent: 'that read at a glance', sub: 'Isometric studies for board packs, public hearings and briefings — the building, the equipment, the circulation, legible in one frame.', caption: 'Data Center · Isometric View · UE5' }, es: { eyebrow: 'Claridad isométrica', title: ['Modelos 3D', 'que se leen de un vistazo'], accent: 'que se leen de un vistazo', sub: 'Vistas isométricas para directorios, audiencias públicas y presentaciones — el edificio, los equipos, la circulación, legible en una imagen.', caption: 'Data Center · Vista Isométrica · UE5' } }, { type: 'image', src: 'assets/portfolio/pampa-3d.png', en: { eyebrow: 'Industrial scale', title: ['Process plants,', 'energy, data centers'], accent: 'energy', sub: 'From process plants to GW-scale storage — the most consequential buildings of the moment, modeled with the same precision.', caption: 'Pampa Energía · Process Plant · Isometric' }, es: { eyebrow: 'Escala industrial', title: ['Plantas industriales,', 'energía, data centers'], accent: 'energía', sub: 'De plantas de proceso a almacenamiento GW-scale — las obras más relevantes del momento, modeladas con la misma precisión.', caption: 'Pampa Energía · Planta de Proceso · Isométrico' } }, { type: 'video', src: 'assets/portfolio/hero-kling.mp4', en: { eyebrow: 'Real-time camera', title: ['Cinematic moves.', 'Engineered detail.'], accent: 'Engineered detail', sub: 'A camera dolly through a finished site — modeled to surveyed coordinates, lit to real spec, rendered in Unreal Engine 5.', caption: 'Studio reel · Real-time camera · UE5' }, es: { eyebrow: 'Cámara en tiempo real', title: ['Movimientos de cine.', 'Precisión técnica.'], accent: 'Precisión técnica', sub: 'Un recorrido de cámara por un sitio terminado — modelado sobre coordenadas reales, iluminado al proyecto, renderizado en Unreal Engine 5.', caption: 'Reel del estudio · Cámara en tiempo real · UE5' } }, { type: 'image', src: 'assets/portfolio/bess-03.png', en: { eyebrow: 'Energy', title: ['Images that tell', 'the project\'s story'], accent: 'the project\'s story', sub: 'From the master plan to the final image — cinematic visualization for storage, solar and substations, delivered at 8K.', caption: 'Meridian BESS · Sunset · UE5' }, es: { eyebrow: 'Energía', title: ['Imágenes que cuentan', 'la historia del proyecto'], accent: 'la historia del proyecto', sub: 'Del plan maestro a la imagen final — visualización cinemática para almacenamiento, solar y subestaciones, entregada en 8K.', caption: 'Meridian BESS · Atardecer · UE5' } }, { type: 'image', src: 'assets/portfolio/jmc-night.png', en: { eyebrow: 'Brand image', title: ['The frame', 'that closes the deal'], accent: 'that closes the deal', sub: 'A single 16K hero still — the image that anchors the deck, the website, the lobby print, the board pack.', caption: 'JMC Realities · Night Facade · Brand Hero' }, es: { eyebrow: 'Imagen de marca', title: ['La imagen', 'que cierra el trato'], accent: 'que cierra el trato', sub: 'Un único still hero en 16K — la imagen que ancla la presentación, la web, el print de lobby, el board pack.', caption: 'JMC Realities · Fachada Nocturna · Imagen de Marca' } }, { type: 'image', src: 'assets/portfolio/qts-mountains.png', en: { eyebrow: 'Site in context', title: ['Designed to operate.', 'Rendered to convince.'], accent: 'Rendered to convince', sub: 'From exterior approach to interior detail — modeled to surveyed coordinates, lit to your real spec, delivered at 16K.', caption: 'QTS · Mountain Site · UE5' }, es: { eyebrow: 'El sitio en contexto', title: ['Pensado para operar.', 'Renderizado para convencer.'], accent: 'Renderizado para convencer', sub: 'De la aproximación exterior al detalle interior — modelado sobre coordenadas reales, iluminado al proyecto, entregado en 16K.', caption: 'QTS · Sitio en Montaña · UE5' } }, { type: 'image', src: 'assets/portfolio/pampa-aerial.png', en: { eyebrow: 'AI-augmented pipeline', title: ['Concepts in hours.', 'Flawless final images.'], accent: 'Flawless final images', sub: 'Our own AI models speed up the concept stage — every final image goes through the full render in Unreal Engine 5.', caption: 'Pampa Energía · Aerial · Final Image' }, es: { eyebrow: 'Flujo aumentado con IA', title: ['Conceptos en horas.', 'Imágenes finales impecables.'], accent: 'Imágenes finales impecables', sub: 'Nuestros modelos de IA propios aceleran la etapa conceptual — cada imagen final pasa por el render completo en Unreal Engine 5.', caption: 'Pampa Energía · Vista Aérea · Imagen Final' } }, ]; const [idx, setIdx] = React.useState(0); const [paused, setPaused] = React.useState(false); const timerRef = React.useRef(null); const count = slideMedia.length; // auto-advance — videos get more time React.useEffect(() => { if (paused) return; const duration = slideMedia[idx]?.type === 'video' ? 9000 : 6000; timerRef.current = setTimeout(() => { setIdx(i => (i + 1) % count); }, duration); return () => clearTimeout(timerRef.current); }, [idx, paused, count]); const goto = (i) => { clearTimeout(timerRef.current); setIdx(((i % count) + count) % count); }; const slide = (slideMedia[idx] || slideMedia[0])[lang]; // Render the title with the accent word highlighted const renderTitle = (titleLines, accentWord) => { return titleLines.map((line, i) => { if (line.includes(accentWord)) { const parts = line.split(accentWord); return ( {parts[0]} {accentWord} {parts[1]} ); } return {line}; }); }; return (
setPaused(true)} onMouseLeave={() => setPaused(false)}>
{slideMedia.map((rawMedia, i) => { // Standalone builds can't bundle the large videos — fall back to a still. const fb = window.__videoFallback; const media = (fb && rawMedia?.type === 'video') ? { type: 'image', src: fb[rawMedia.src] || rawMedia.src } : rawMedia; return (
{media?.type === 'video' ? (
); } /* ─────────────────────── Capability card ───────────────────── */ function HomeCapabilityCard({ service, onNavigate }) { const { lang } = useLang(); return (
onNavigate('services')}>
{service.eyebrow[lang]}

{service.title[lang]}

{service.body[lang]}

{lang === 'es' ? 'Conocer más' : 'Learn more'}
); } /* ─────────────────────── Featured case ───────────────────── */ function FeaturedCase({ onNavigate }) { const { t, lang } = useLang(); return (
onNavigate('portfolio')}>{lang === 'es' ? 'Todos los proyectos' : 'All projects'}} />
{t.home.featured.meta}

{t.home.featured.title}

{t.home.featured.body}

{t.home.featured.specs.map(([k, v]) => (
{k}
{v}
))}
onNavigate('portfolio', { project: 'meridian-bess' })}>{t.home.featured.primary} onNavigate('contact')}>{t.home.featured.secondary}
); } /* ─────────────────────── Showcase grid (mosaic) ───────────────────── */ function ShowcaseGallery({ onNavigate }) { const { t, lang } = useLang(); const { PORTFOLIO } = window.JMC_DATA; const items = [ PORTFOLIO.find(p => p.id === 'meridian-bess'), PORTFOLIO.find(p => p.id === 'helios-solar'), PORTFOLIO.find(p => p.id === 'pampa-vacamuerta'), PORTFOLIO.find(p => p.id === 'qts-campus'), PORTFOLIO.find(p => p.id === 'riverside-campus'), ].filter(Boolean); return (
onNavigate('portfolio')}>{t.home.grid.seeAll}} />
{items.slice(0, 3).map((p, i) => ( ))}
{items.slice(3, 5).map((p, i) => ( ))}
); } function ProjectThumb({ project, onNavigate, aspect = '4/3' }) { const { lang } = useLang(); return (
onNavigate('portfolio', { project: project.id })}>
{[project.typeLabel[lang], project.year].filter(Boolean).join(' · ')}

{project.name}

{[project.locationLabel[lang], project.capacity].filter(Boolean).join(' · ')}
); } /* ─────────────────────── Process strip ───────────────────── */ function HomeProcessStrip({ onNavigate }) { const { t, lang } = useLang(); const { PROCESS } = window.JMC_DATA; return (
{t.home.process.eyebrow}

{t.home.process.title}

onNavigate('about')}>{t.home.process.more}
{PROCESS.map(p => (
{p.n}
{p[lang].label}

{p[lang].body}

))}
); } /* ─────────────────────── Digital Twin section ───────────────────── */ function DigitalTwinSection({ onNavigate }) { const { lang } = useLang(); const copy = { en: { eyebrow: 'Digital Twin', title: 'A live, annotated, callable model of your campus.', body: 'Beyond a hero film — we deliver a navigable digital twin: data halls, cooling towers, power plant, control center, security perimeter, and connectivity bridges, all addressable individually. Use it in stakeholder pitches, planning hearings, and operations briefings.', bullets: [ ['layers', 'Annotated components', 'Every IT module, transformer, and bridge — labeled and callable.'], ['cpu', 'Live spec swap', 'Cooling type, capacity, topology — change the model in real time.'], ['eye', 'Walk-and-talk', 'Camera flies, narration optional, runs on a laptop or LED wall.'], ['box', 'Hand-off ready', 'Packaged UE5 build delivered to your storage with a demo script.'], ], cta: 'Discuss your project', caption: 'Digital Twin · Axonometric Reference · UE5', }, es: { eyebrow: 'Digital Twin', title: 'Un modelo vivo, anotado y navegable de tu campus.', body: 'Más allá del hero film — entregamos un digital twin navegable: data halls, torres de enfriamiento, planta eléctrica, centro de control, perímetro de seguridad y bridges de conectividad, cada uno direccionable. Usalo en pitches, audiencias y briefings de operaciones.', bullets: [ ['layers', 'Componentes anotados', 'Cada módulo IT, transformador y bridge — etiquetado y direccionable.'], ['cpu', 'Swap de spec en vivo', 'Tipo de cooling, capacidad, topología — cambiá el modelo en tiempo real.'], ['eye', 'Walk-and-talk', 'Cámara vuela, narración opcional, corre en laptop o LED wall.'], ['box', 'Listo para entrega', 'Build UE5 packaged en tu storage, con guion de demo.'], ], cta: 'Conversemos tu proyecto', caption: 'Digital Twin · Referencia Axonométrica · UE5', }, }[lang]; return (
onNavigate('contact')}>{copy.cta}} />

{copy.body}

{copy.bullets.map(([icon, label, body]) => (
{label}

{body}

))}
onNavigate('contact')}>{copy.cta}
); } window.HomePage = HomePage;