/* Tweaks de AstraOps — tres controles expresivos que remodelan el carácter
de la página: acento de color, voz de marca (titular + entradilla) y
atmósfera del hero (densidad estelar, rejilla, viñeta y glow). */
const OPS_TWEAK_DEFAULTS = {
accent: "Cian",
voice: "Ingeniería",
atmosphere: "Equilibrado"
};
const OPS_PAL = { "Azul eléctrico": "blue", "Violeta": "violet", "Cian": "cyan" };
const OPS_VOICE = {
"Ingeniería": {
h: 'Procesos sin fricción.
Operaciones sin margen para el fallo.',
p: 'Automatizamos la arquitectura interna de su empresa con la misma tolerancia al error que aplica la industria aeroespacial: exactamente cero. Cada proceso que hoy se ejecuta a mano es una fuga de capital cuantificable.'
},
"Negocio": {
h: 'Cada tarea manual
es capital que se evapora.',
p: 'Sus equipos dedican horas a procesos repetitivos que un sistema ejecuta en segundos y sin error. Recuperamos ese tiempo, lo convertimos en margen y le devolvemos una operación que trabaja sola, 24/7.'
},
"Órbita": {
h: 'Elevamos su operación
a la perspectiva orbital.',
p: 'Desde el suelo, el caos operativo parece irresoluble. Desde la órbita, solo existen líneas de flujo perfectas. Construimos la infraestructura que mantiene su empresa ahí arriba, en trayectoria estable y sin intervención.'
}
};
const OPS_ATMOS = { "Sereno": "atmos-calm", "Equilibrado": "atmos-balanced", "Cinemático": "atmos-cinematic" };
function OpsTweaks() {
const [t, setTweak] = useTweaks(OPS_TWEAK_DEFAULTS);
React.useEffect(() => {
document.documentElement.setAttribute('data-palette', OPS_PAL[t.accent] || 'cyan');
}, [t.accent]);
React.useEffect(() => {
const v = OPS_VOICE[t.voice] || OPS_VOICE["Ingeniería"];
const h = document.getElementById('ops-h1');
const p = document.getElementById('ops-sub');
if (h) h.innerHTML = v.h;
if (p) p.textContent = v.p;
}, [t.voice]);
React.useEffect(() => {
const cls = OPS_ATMOS[t.atmosphere] || 'atmos-balanced';
document.body.classList.remove('atmos-calm', 'atmos-balanced', 'atmos-cinematic');
document.body.classList.add(cls);
// re-siembra el campo estelar para que la densidad cambie al instante
if (window.AstraHero && window.AstraHero.reseed) window.AstraHero.reseed();
}, [t.atmosphere]);
return (
setTweak('accent', v)} />
setTweak('voice', v)} />
setTweak('atmosphere', v)} />
);
}
ReactDOM.createRoot(document.getElementById('tweaks-root')).render();