/* ESTILOS ADAPTADOS A LA NUEVA IDENTIDAD VISUAL */
:root {
–primary: #410F14; /* Borgoña oscuro */
–accent: #d4af37; /* Dorado viejo */
–bg: #fcf8f2; /* Pergamino claro */
–text: #333333;
}
.test-container {
font-family: ‘Helvetica Neue’, Helvetica, Arial, sans-serif;
background: var(–bg);
color: var(–text);
max-width: 900px;
margin: 40px auto;
padding: 40px;
box-shadow: 0 10px 30px rgba(0,0,0,0.08);
border-top: 6px solid var(–primary);
border-radius: 8px;
}
.test-container h1 {
color: var(–primary);
text-align: center;
font-family: ‘Georgia’, serif;
text-transform: uppercase;
letter-spacing: 2px;
margin-bottom: 10px;
}
.test-container .intro {
text-align: center;
font-size: 1.1em;
margin-bottom: 30px;
color: #555;
border-bottom: 2px solid var(–accent);
padding-bottom: 20px;
}
.id-panel {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 15px;
margin-bottom: 40px;
background: #ffffff;
padding: 25px;
border: 1px solid #e0e0e0;
border-radius: 6px;
}
@media (max-width: 600px) { .id-panel { grid-template-columns: 1fr; } }
.id-panel input {
width: 100%;
padding: 12px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1em;
box-sizing: border-box;
}
.id-panel input:focus {
outline: none;
border-color: var(–primary);
}
.q-box {
margin-bottom: 25px;
padding: 20px;
background: #ffffff;
border-radius: 6px;
border-left: 4px solid var(–primary);
box-shadow: 0 2px 5px rgba(0,0,0,0.02);
}
.q-text { font-weight: bold; display: block; margin-bottom: 15px; font-size: 1.1em; }
.options { display: flex; justify-content: space-between; gap: 8px; }
.opt {
flex: 1; text-align: center; cursor: pointer; padding: 12px 5px;
background: #f4f4f4; border: 1px solid #e0e0e0; font-size: 0.9em;
border-radius: 4px; transition: 0.2s; font-weight: bold;
}
.opt:hover { background: #e8e8e8; border-color: var(–primary); }
.opt input { display: block; margin: 0 auto 8px auto; transform: scale(1.3); cursor: pointer;}

.btn-submit {
display: block; width: 100%; padding: 18px;
background: var(–primary); color: white; border: none;
font-size: 1.2em; font-weight: bold; cursor: pointer;
margin-top: 30px; border-radius: 4px; transition: 0.3s;
text-transform: uppercase; letter-spacing: 1px;
}
.btn-submit:hover { background: #2a090d; }
.btn-submit:disabled { background: #999; cursor: not-allowed; }

.btn-download { background: #555; font-size: 0.9em; margin-top: 10px; color: white; border: none; padding: 10px 15px; border-radius: 4px; cursor: pointer;}

#results { display: none; text-align: center; margin-top: 50px; padding-top: 30px; border-top: 2px solid var(–accent); }
#res-title { color: var(–primary); font-family: ‘Georgia’, serif; font-size: 2em; margin-bottom: 5px;}
#res-desc { font-size: 1.2em; color: #666; margin-bottom: 30px;}

.map-container {
position: relative; width: 100%; max-width: 600px; height: 500px; margin: 20px auto;
background: linear-gradient(to bottom, #ffffff 0%, #f9f0f1 100%);
border: 2px solid var(–primary); border-radius: 8px; overflow: hidden;
}
.label-y { position: absolute; top: 10px; width: 100%; text-align: center; font-weight: bold; color: #2e7d32; font-size: 0.85em; z-index: 2;}
.label-x { position: absolute; bottom: 10px; width: 100%; text-align: center; font-weight: bold; color: #c62828; font-size: 0.85em; z-index: 2;}
.zone { position: absolute; font-size: 0.75em; font-weight: bold; color: #666; z-index: 1;}

/* Líneas del mapa */
.map-container::before { content: »; position: absolute; top: 50%; left: 0; width: 100%; height: 2px; background: rgba(65, 15, 20, 0.2); z-index: 0;}
.map-container::after { content: »; position: absolute; top: 0; left: 50%; width: 2px; height: 100%; background: rgba(65, 15, 20, 0.2); z-index: 0;}

#dot {
width: 20px; height: 20px; background: var(–accent);
border-radius: 50%; position: absolute; border: 3px solid var(–primary);
box-shadow: 0 0 10px rgba(0,0,0,0.4); transform: translate(-50%, 50%);
transition: all 1.5s ease-out; z-index: 10;
}

#envio-status { font-weight: bold; margin-top: 15px; display: block; font-size: 1.1em; }

Test de Alineación Civilizatoria

Ubique su pensamiento político frente al Proyecto Político Católico (DSI) y las ideologías modernas.

Responda del 1 (Muy en desacuerdo) al 5 (Muy de acuerdo).

Cargando 50 preguntas…


TRASCENDENCIA / DSI (Subsidiariedad + Solidaridad)
MATERIALISMO / REVOLUCIÓN
CÚSPIDE DSI
(Orden Social Cristiano)
LIBERALISMO
(Individualismo)
NACIONALISMO AUT.
(Falangismo/Fascismo)
NAZISMO
(Raza)
MARXISMO
(Clase)
PROGRESISMO
(Woke)

Copia de seguridad local:

// BASE DE DATOS MANTENIDA EXACTAMENTE IGUAL
const db = [
{q: «¿La autoridad política viene de Dios y debe respetar el Orden Natural?», t: ‘Y’},
{q: «¿La dignidad humana es intrínseca (Imago Dei) y no depende del Estado?», t: ‘Y’},
{q: «¿Existe una verdad objetiva sobre el bien y el mal superior a la democracia?», t: ‘Y’},
{q: «¿El aborto y la eutanasia son crímenes abominables en cualquier caso?», t: ‘Y’},
{q: «¿La familia natural es anterior al Estado y este no debe redefinirla?», t: ‘Y’},
{q: «¿La religión debe tener relevancia pública y no solo privada?», t: ‘Y’},
{q: «¿El ser humano tiene un alma inmortal y un destino trascendente?», t: ‘Y’},
{q: «¿La ideología de género niega la naturaleza biológica humana?», t: ‘Y’},
{q: «¿La tradición es una herencia valiosa que debe ser custodiada?», t: ‘Y’},
{q: «¿El sacrificio por el Bien Común es superior al éxito material individual?», t: ‘Y’},
{q: «¿El Estado debe aplicar el principio de subsidiariedad (no hacer lo que pueden hacer las familias)?», t: ‘DSI’},
{q: «¿Los cuerpos intermedios (gremios, municipios) deben tener autonomía real?», t: ‘DSI’},
{q: «¿La soberanía social reside en el pueblo organizado, no en un dictador ni en masas manipuladas?», t: ‘DSI’},
{q: «¿Es un deber desobedecer leyes civiles si contradicen abiertamente la Ley de Dios?», t: ‘Y’},
{q: «¿El Estado existe para servir a la persona, y no la persona para servir al Estado?», t: ‘DSI’},
{q: «¿La lealtad a la Patria es una virtud, pero nunca debe anular la conciencia moral?», t: ‘DSI’},
{q: «¿La democracia es solo una herramienta, y es ilegítima si va contra la Ley Natural?», t: ‘DSI’},
{q: «¿El patriotismo es el amor a lo propio, distinto del nacionalismo que odia lo ajeno?», t: ‘DSI’},
{q: «¿La educación de los hijos es derecho inalienable de los padres, no del Estado?», t: ‘Y’},
{q: «¿La unidad espiritual y cultural de los pueblos hispanos es un ideal a recuperar?», t: ‘Y’},
{q: «¿La propiedad privada es un derecho natural, pero tiene una ‘hipoteca social’?», t: ‘DSI’},
{q: «¿El libre mercado debe tener límites morales para no dañar a los débiles?», t: ‘Y’},
{q: «¿El trabajo humano tiene dignidad y no es una simple mercancía de compraventa?», t: ‘DSI’},
{q: «¿El Estado y la sociedad deben tener una opción preferencial por los pobres?», t: ‘DSI’},
{q: «¿La lucha de clases es un error; se debe buscar la armonía entre capital y trabajo?», t: ‘DSI’},
{q: «¿La usura y la especulación financiera desmedida son inmorales?», t: ‘Y’},
{q: «¿La economía debe estar al servicio del hombre, no el hombre al servicio de la economía?», t: ‘DSI’},
{q: «¿Es ideal una sociedad de propietarios (distributismo) frente a grandes monopolios?», t: ‘DSI’},
{q: «¿Los impuestos no deben ser tan altos que asfixien a la familia y la propiedad?», t: ‘DSI’},
{q: «¿La globalización económica sin control amenaza la soberanía y las economías locales?», t: ‘Y’},
{q: «¿La dignidad de la persona no depende de su raza, sino de ser hijo de Dios?», t: ‘DSI’},
{q: «¿El mestizaje hispano fue una fusión positiva y no una ‘contaminación’?», t: ‘DSI’},
{q: «¿El Estado tiene el deber de proteger la moral pública (limitar pornografía, vicios)?», t: ‘Y’},
{q: «¿La libertad individual no es absoluta; debe ordenarse al Bien y a la Verdad?», t: ‘Y’},
{q: «¿La religión es el motor espiritual necesario para la salud de la sociedad?», t: ‘Y’},
{q: «¿La historia humana está guiada por la Providencia, no solo por factores económicos?», t: ‘Y’},
{q: «¿El arte debe elevar el espíritu hacia la belleza, en lugar de solo escandalizar?», t: ‘Y’},
{q: «¿El progreso técnico debe someterse a la ética (rechazo al transhumanismo)?», t: ‘Y’},
{q: «¿El Estado tiene el derecho de aplicar la pena de muerte en casos de extrema gravedad?», t: ‘Y’},
{q: «¿Las fronteras son necesarias para preservar la identidad y el orden de una nación?», t: ‘Y’},
{q: «¿La cultura ‘Woke’ y la cancelación son herramientas de ingeniería social anticristiana?», t: ‘Y’},
{q: «¿Mi cuerpo es templo del Espíritu Santo, no una propiedad para usar a capricho?», t: ‘Y’},
{q: «¿La iniciativa privada es un derecho, aunque el Estado deba vigilar el bien común?», t: ‘DSI’},
{q: «¿La monarquía tradicional (católica) es un sistema de gobierno legítimo y viable?», t: ‘Y’},
{q: «¿La Hispanidad es una civilización ecuménica (universal) y no solo una raza?», t: ‘Y’},
{q: «¿El fin último de la política es fomentar la virtud de los ciudadanos?», t: ‘DSI’},
{q: «¿El voto católico no debe apoyar programas que promuevan el mal intrínseco?», t: ‘DSI’},
{q: «¿La Leyenda Negra es una propaganda histórica diseñada para atacar al catolicismo?», t: ‘Y’},
{q: «¿La Cristiandad medieval fue un periodo de luz y orden, no de oscurantismo?», t: ‘Y’},
{q: «¿La caridad cristiana (amor a Dios y prójimo) es superior a la filantropía (solo humana)?», t: ‘Y’}
];

let userIP = «N/A»;
let finalCSV = «»;

window.onload = function() {
try {
const divQ = document.getElementById(‘quiz’);
let htmlContent = «»;
db.forEach((item, i) => {
htmlContent += `

${i+1}. ${item.q}

1
2
3
4
5

`;
});
divQ.innerHTML = htmlContent;
fetch(‘https://api.ipify.org?format=json’).then(r=>r.json()).then(d=>userIP=d.ip).catch(e=>{});
} catch (e) { console.error(e); }
};

function calcularYEnviar() {
// Validaciones
const nombre = document.getElementById(‘nombre’).value;
const email = document.getElementById(‘email’).value;
if(!nombre || !email) {
alert(«Por favor ingrese su Nombre y Correo antes de ver el resultado.»);
return;
}

const btn = document.getElementById(‘btn-calc’);
const status = document.getElementById(‘envio-status’);

// Cálculo
let scoreY = 0; let scoreX = 0; let answers = [];
for (let i = 0; i 0) { scoreY += v * 1.5; scoreX = scoreX * 0.8; }
else scoreY -= 1;
}
else if(db[i].t === ‘XL’) scoreX -= (v * 2);
else if(db[i].t === ‘XR’) scoreX += (v * 2);
else if(db[i].t === ‘NAZI’) {
if(v > 0) { scoreX += (v * 3); scoreY -= (v * 4); }
}
}

let finalY = 50 + (scoreY * 1.5);
let finalX = 50 + (scoreX * 1.5);
if(finalY > 95) finalY = 95; if(finalY 95) finalX = 95; if(finalX 60) {
if(finalX > 65) label = «Nacionalismo Autoritario»;
else if(finalX < 35) label = "Conservadurismo Liberal";
else label = "ORDEN SOCIAL CRISTIANO (DSI)";
} else if (finalY 65) label = «Totalitarismo Materialista»;
else if(finalX `P${i+1}`).join(«,»);
const dataRow = `${new Date().toLocaleString().replace(/,/g, »)},${userIP},${nombre},${email},${ciudad},${pais},${finalX.toFixed(1)},${finalY.toFixed(1)},${label.replace(/,/g, ‘-‘)},${answers.join(«,»)}`;
finalCSV = header + «\n» + dataRow;

// ENVÍO INVISIBLE A GOOGLE FORMS
btn.disabled = true;
status.innerText = «Calculando y registrando resultados de forma segura…»;
status.style.color = «#410F14»;

let fechaTxt = new Date().toLocaleString();

// Construimos los datos del formulario (FormData)
let formData = new FormData();
formData.append(«entry.526944022», fechaTxt);
formData.append(«entry.1901323612», nombre);
formData.append(«entry.1761647673», email);
formData.append(«entry.686645020», ciudad);
formData.append(«entry.79497257», pais);
formData.append(«entry.539409704», «X:» + finalX.toFixed(1) + » Y:» + finalY.toFixed(1) + » » + label);
formData.append(«entry.380714075», answers.join(‘,’));

// URL del formulario de Google (cambiada de viewform a formResponse)
const postURL = «https://docs.google.com/forms/d/e/1FAIpQLSdAqT_fNHybzjzB6hcn_WJAL4vuoJWJBCWyNCwbDgBlp3324A/formResponse»;

// Realizar la petición HTTP POST silenciosa
fetch(postURL, {
method: «POST»,
mode: «no-cors», // Crucial para que Google acepte el envío desde otro dominio
body: formData
}).then(() => {
// Mostrar Resultados Visuales
document.getElementById(‘results’).style.display = ‘block’;
document.getElementById(‘res-title’).innerText = label.toUpperCase();
document.getElementById(‘res-desc’).innerText = `Coordenadas: Altura ${finalY.toFixed(1)}% | Posición ${finalX.toFixed(1)}%`;
const dot = document.getElementById(‘dot’);
dot.style.bottom = finalY + «%»;
dot.style.left = finalX + «%»;
document.getElementById(‘results’).scrollIntoView({behavior:’smooth’});

status.innerHTML = «✅ Resultados calculados y registrados exitosamente en la base de datos.»;
status.style.color = «#2e7d32»;
btn.style.display = ‘none’;
}).catch((error) => {
status.innerHTML = «⚠️ Hubo un error de conexión al registrar. Por favor, descarga tu CSV.»;
status.style.color = «#d32f2f»;
btn.disabled = false;
});
}

function descargarCSV() {
if (!finalCSV) return;
const blob = new Blob([finalCSV], { type: ‘text/csv;charset=utf-8;’ });
const link = document.createElement(«a»);
const url = URL.createObjectURL(blob);
const nombreArchivo = «Resultado_» + document.getElementById(‘nombre’).value.replace(/\s/g, ‘_’) + «.csv»;
link.setAttribute(«href», url);
link.setAttribute(«download», nombreArchivo);
link.style.visibility = ‘hidden’;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}