Centro Latinoamericano de Adaptación a la Super Inteligencia Artificial
{/* Lead paragraph */}
Si el siglo XX fue el siglo de la alfabetización manuscrita —la conquista de la lectoescritura como derecho universal—, el siglo XXI es el siglo de la alfabetización digital en inteligencia artificial. América Latina está llegando tarde.
);
}
// ─── Category label ───
function CatLabel({ children, color = C.terracotta }) {
return (
{children}
);
}
// ─── Diagnóstico ───
function Diagnostico({ compact = false }) {
const stats = [
{ n: '26–38 %', c: 'de los empleos formales de América Latina enfrentarán transformación o desplazamiento por IA generativa' },
{ n: '1.12 %', c: 'de la inversión mundial en IA es lo que recibe una región que genera el 6.6 % del PIB global' },
{ n: '20×', c: 'menos que EE. UU. y China invierte LATAM en investigación y desarrollo de IA' },
];
return (
);
}
// The functional 50×50 = 2500 dot grid
function DotGrid({ compact = false }) {
// Correct orientation (matches original "AI adoption" visualization):
// - Gray mass (~84%, never used AI) occupies the TOP rows
// - Sage green (~16%, free chatbot users) occupies the BOTTOM 8 rows
// - Amber (~0.3%, paid users) = 8 dots in the bottom-right of last row
// - Oxidized red (~0.04%, uses coding scaffold) = 1 single dot at bottom-right corner
// The single red dot is the visual "we are here" for CLASIA's thesis.
const cols = 50, rows = 50;
const total = cols * rows;
const colors = new Array(total);
// Fill top-down, left-to-right with categories in order: gray → sage → amber → oxidized
// Counts chosen so rows align: 42 rows of gray (2100) + 8 rows of sage/amber/oxidized (400)
// In bottom row: 41 sage + 8 amber + 1 oxidized = 50
// Total sage across 8 bottom rows: 7*50 + 41 = 391. Then 8 amber + 1 oxidized = 400 non-gray.
for (let r = 0; r < rows; r++) {
for (let c = 0; c < cols; c++) {
let color;
if (r < rows - 8) {
color = C.warmGray;
} else if (r < rows - 1) {
color = C.sage;
} else {
// Last row: sage in first 41 cells, amber in next 8, oxidized in last
if (c < cols - 9) color = C.sage;
else if (c < cols - 1) color = C.amber;
else color = C.oxidized;
}
colors[r * cols + c] = color;
}
}
const gridMax = compact ? 320 : 560;
const dotSize = compact ? 4 : 8;
const gap = compact ? 1.5 : 3;
return (