Gemini 3.1 Pro (high)
GoogleFebruary 2026
What it wrote
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Quantum Overlord</title>
<link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700;900&family=Share+Tech+Mono&display=swap" rel="stylesheet">
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="crt-overlay"></div>
<div class="container">
<!-- Left Panel: The Core -->
<div class="panel left-panel">
<h1 class="game-title">QUANTUM OVERLORD</h1>
<div class="core-container">
<div class="glow-ring"></div>
<button id="quantum-core" class="quantum-core">
<div class="core-inner"></div>
</button>
</div>
<div id="click-feedback-container"></div>
<div class="status-box">
<p>System Status: <span class="text-neon-green">ONLINE</span></p>
<p>Uplink: <span class="text-neon-cyan">STABLE</span></p>
</div>
</div>
<!-- Center Panel: Stats & Upgrades -->
<div class="panel center-panel">
<div class="stats-header">
<h2>QUBITS</h2>
<div id="qubit-display" class="huge-number">0</div>
<div class="qps-display"><span id="qps-display">0</span> QPS</div>
</div>
<div class="terminal">
<div class="terminal-header">SYSTEM LOG</div>
<div class="terminal-body" id="system-log">
<p>> Initiating boot sequence...</p>
<p>> Quantum tunneling active.</p>
<p>> Awaiting manual collapse...</p>
</div>
</div>
<div class="upgrades-section">
<h3>ALGORITHMS & UPGRADES</h3>
<div id="upgrades-container" class="upgrades-container">
<!-- Upgrades will be generated here -->
</div>
</div>
</div>
<!-- Right Panel: Shop (Buildings) -->
<div class="panel right-panel">
<h3>NETWORK NODES</h3>
<div id="buildings-container" class="buildings-container">
<!-- Buildings will be generated here -->
</div>
<div class="controls">
<button id="save-btn" class="control-btn">SAVE SYS</button>
<button id="wipe-btn" class="control-btn warning">WIPE SYS</button>
</div>
</div>
</div>
<script src="script.js"></script>
</body>
</html>:root {
--bg-dark: #05050A;
--panel-bg: rgba(16, 18, 27, 0.7);
--panel-border: rgba(102, 252, 241, 0.2);
--neon-cyan: #66FCF1;
--neon-cyan-dim: #45A29E;
--neon-pink: #FF007F;
--neon-purple: #B200FF;
--neon-green: #39FF14;
--text-main: #C5C6C7;
--text-muted: #8892B0;
--font-heading: 'Orbitron', sans-serif;
--font-body: 'Share Tech Mono', monospace;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
user-select: none;
}
body {
background-color: var(--bg-dark);
background-image:
radial-gradient(circle at 15% 50%, rgba(102, 252, 241, 0.05), transparent 25%),
radial-gradient(circle at 85% 30%, rgba(255, 0, 127, 0.05), transparent 25%);
color: var(--text-main);
font-family: var(--font-body);
height: 100vh;
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
}
/* CRT Scanline Effect */
.crt-overlay {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
background-size: 100% 4px, 6px 100%;
z-index: 9999;
pointer-events: none;
opacity: 0.4;
}
.container {
display: flex;
width: 95vw;
height: 90vh;
gap: 20px;
z-index: 10;
}
.panel {
background: var(--panel-bg);
backdrop-filter: blur(10px);
border: 1px solid var(--panel-border);
border-radius: 12px;
padding: 20px;
display: flex;
flex-direction: column;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.5), inset 0 0 20px rgba(102, 252, 241, 0.05);
}
.left-panel { flex: 1; align-items: center; justify-content: space-between; }
.center-panel { flex: 2; }
.right-panel { flex: 1; }
h1, h2, h3 {
font-family: var(--font-heading);
text-transform: uppercase;
letter-spacing: 2px;
}
.game-title {
color: var(--neon-cyan);
text-shadow: 0 0 10px var(--neon-cyan), 0 0 20px var(--neon-cyan);
font-size: 24px;
text-align: center;
margin-bottom: 20px;
animation: flicker 3s infinite;
}
@keyframes flicker {
0%, 19.999%, 22%, 62.999%, 64%, 64.999%, 70%, 100% {
opacity: 1;
text-shadow: 0 0 10px var(--neon-cyan), 0 0 20px var(--neon-cyan);
}
20%, 21.999%, 63%, 63.999%, 65%, 69.999% {
opacity: 0.4;
text-shadow: none;
}
}
/* Core Visuals */
.core-container {
position: relative;
width: 250px;
height: 250px;
display: flex;
justify-content: center;
align-items: center;
margin: 40px 0;
}
.glow-ring {
position: absolute;
width: 100%;
height: 100%;
border-radius: 50%;
border: 2px dashed var(--neon-cyan-dim);
animation: spin 10s linear infinite;
}
@keyframes spin { 100% { transform: rotate(360deg); } }
.quantum-core {
width: 150px;
height: 150px;
border-radius: 50%;
background: radial-gradient(circle, var(--neon-cyan) 0%, #000 80%);
border: none;
cursor: pointer;
box-shadow: 0 0 30px var(--neon-cyan);
transition: transform 0.1s ease, box-shadow 0.1s ease;
display: flex;
justify-content: center;
align-items: center;
position: relative;
}
.quantum-core:active {
transform: scale(0.95);
box-shadow: 0 0 50px var(--neon-cyan), 0 0 100px var(--neon-cyan);
}
.core-inner {
width: 80px;
height: 80px;
border-radius: 50%;
background: rgba(255, 255, 255, 0.8);
box-shadow: 0 0 20px #fff;
animation: pulse 2s infinite ease-in-out;
}
@keyframes pulse {
0% { transform: scale(1); opacity: 0.8; }
50% { transform: scale(1.1); opacity: 1; }
100% { transform: scale(1); opacity: 0.8; }
}
/* Floating Text */
#click-feedback-container {
position: absolute;
width: 100%;
height: 100%;
pointer-events: none;
overflow: visible;
}
.floating-text {
position: absolute;
color: #fff;
font-weight: bold;
font-size: 20px;
text-shadow: 0 0 5px var(--neon-cyan);
pointer-events: none;
animation: floatUp 1s ease-out forwards;
}
@keyframes floatUp {
0% { opacity: 1; transform: translateY(0) scale(1); }
100% { opacity: 0; transform: translateY(-50px) scale(1.5); }
}
/* Stats */
.stats-header {
text-align: center;
margin-bottom: 30px;
}
.huge-number {
font-size: 64px;
font-family: var(--font-heading);
color: #fff;
text-shadow: 0 0 15px var(--neon-cyan);
margin: 10px 0;
}
.qps-display {
color: var(--neon-pink);
font-size: 20px;
text-shadow: 0 0 5px var(--neon-pink);
}
/* Terminal */
.terminal {
background: #000;
border: 1px solid var(--text-muted);
border-radius: 6px;
margin-bottom: 20px;
display: flex;
flex-direction: column;
height: 150px;
}
.terminal-header {
background: var(--text-muted);
color: #000;
padding: 5px 10px;
font-size: 12px;
font-weight: bold;
}
.terminal-body {
padding: 10px;
overflow-y: auto;
flex: 1;
color: var(--neon-green);
font-size: 14px;
}
.terminal-body p { margin-bottom: 5px; }
/* Upgrades & Buildings */
.upgrades-section {
flex: 1;
display: flex;
flex-direction: column;
}
.upgrades-container {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 15px;
overflow-y: auto;
}
.buildings-container {
margin-top: 20px;
display: flex;
flex-direction: column;
gap: 10px;
overflow-y: auto;
flex: 1;
}
.shop-item {
background: rgba(255, 255, 255, 0.05);
border: 1px solid rgba(255, 255, 255, 0.1);
border-radius: 8px;
padding: 15px;
cursor: pointer;
transition: all 0.2s ease;
display: flex;
justify-content: space-between;
align-items: center;
}
.shop-item:hover {
background: rgba(102, 252, 241, 0.1);
border-color: var(--neon-cyan);
transform: translateX(5px);
}
.shop-item.disabled {
opacity: 0.5;
cursor: not-allowed;
border-color: rgba(255, 255, 255, 0.05);
}
.shop-item.disabled:hover {
background: rgba(255, 255, 255, 0.05);
transform: none;
}
.item-info h4 {
color: #fff;
margin-bottom: 5px;
font-size: 16px;
}
.item-desc {
font-size: 12px;
color: var(--text-muted);
margin-bottom: 5px;
}
.item-cost {
color: var(--neon-pink);
font-weight: bold;
}
.item-count {
font-size: 24px;
color: var(--neon-cyan-dim);
font-family: var(--font-heading);
}
/* Upgrade Item specific */
.upgrade-item {
width: calc(50% - 5px);
background: rgba(255, 0, 127, 0.05);
border: 1px solid rgba(255, 0, 127, 0.2);
border-radius: 8px;
padding: 10px;
cursor: pointer;
transition: all 0.2s ease;
}
.upgrade-item:hover {
border-color: var(--neon-pink);
background: rgba(255, 0, 127, 0.15);
}
.upgrade-item.disabled {
opacity: 0.5;
cursor: not-allowed;
}
.upgrade-title {
color: var(--neon-pink);
font-size: 14px;
margin-bottom: 5px;
}
/* Controls */
.controls {
margin-top: 20px;
display: flex;
gap: 10px;
}
.control-btn {
flex: 1;
background: transparent;
border: 1px solid var(--neon-cyan);
color: var(--neon-cyan);
padding: 10px;
border-radius: 4px;
cursor: pointer;
font-family: var(--font-body);
font-weight: bold;
transition: all 0.2s ease;
}
.control-btn:hover {
background: var(--neon-cyan);
color: #000;
}
.control-btn.warning {
border-color: var(--neon-pink);
color: var(--neon-pink);
}
.control-btn.warning:hover {
background: var(--neon-pink);
color: #000;
}
/* Utility classes */
.text-neon-green { color: var(--neon-green); text-shadow: 0 0 5px var(--neon-green); }
.text-neon-cyan { color: var(--neon-cyan); text-shadow: 0 0 5px var(--neon-cyan); }
/* Scrollbars */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.2); }
::-webkit-scrollbar-thumb { background: var(--neon-cyan-dim); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--neon-cyan); }// --- GAME STATE ---
let gameState = {
qubits: 0,
totalQubits: 0,
clickPower: 1,
buildings: {
script: { count: 0 },
ai_node: { count: 0 },
mainframe: { count: 0 },
quantum_cpu: { count: 0 }
},
upgrades: [],
lastSaveTime: Date.now()
};
// --- DEFINITIONS ---
const BUILDINGS = {
script: {
id: 'script',
name: 'Script Kiddy',
baseCost: 15,
baseQps: 0.5, // Qubits per second
desc: 'Basic auto-clicking subroutine.'
},
ai_node: {
id: 'ai_node',
name: 'AI Node',
baseCost: 100,
baseQps: 4,
desc: 'A neural network trained to mine Qubits.'
},
mainframe: {
id: 'mainframe',
name: 'Mainframe',
baseCost: 1100,
baseQps: 32,
desc: 'Hijacked corporate mainframe.'
},
quantum_cpu: {
id: 'quantum_cpu',
name: 'Quantum CPU',
baseCost: 12000,
baseQps: 260,
desc: 'Superposition computation unit.'
}
};
const UPGRADES = [
{
id: 'click_1',
name: 'Overclocked Mouse',
cost: 100,
desc: 'Clicking is 2x more powerful.',
effect: () => { gameState.clickPower *= 2; }
},
{
id: 'script_1',
name: 'Optimized Scripts',
cost: 500,
desc: 'Script Kiddy QPS x2',
effect: () => { BUILDINGS.script.baseQps *= 2; updateQPS(); }
},
{
id: 'click_2',
name: 'Tunneling Injector',
cost: 2500,
desc: 'Clicking is 5x more powerful.',
effect: () => { gameState.clickPower *= 5; }
},
{
id: 'ai_1',
name: 'Deep Learning',
cost: 5000,
desc: 'AI Node QPS x2',
effect: () => { BUILDINGS.ai_node.baseQps *= 2; updateQPS(); }
}
];
let currentQps = 0;
// --- DOM ELEMENTS ---
const qubitDisplay = document.getElementById('qubit-display');
const qpsDisplay = document.getElementById('qps-display');
const quantumCore = document.getElementById('quantum-core');
const buildingsContainer = document.getElementById('buildings-container');
const upgradesContainer = document.getElementById('upgrades-container');
const systemLog = document.getElementById('system-log');
const saveBtn = document.getElementById('save-btn');
const wipeBtn = document.getElementById('wipe-btn');
const feedbackContainer = document.getElementById('click-feedback-container');
// --- FORMATTING ---
function formatNumber(num) {
if (num < 1000) return Math.floor(num).toString();
const suffixes = ["", "k", "M", "B", "T", "Qa", "Qi"];
const suffixNum = Math.floor(("" + Math.floor(num)).length / 3);
let shortValue = parseFloat((suffixNum != 0 ? (num / Math.pow(1000, suffixNum)) : num).toPrecision(3));
if (shortValue % 1 != 0) {
shortValue = shortValue.toFixed(1);
}
return shortValue + suffixes[suffixNum];
}
// --- LOGGING ---
function logMessage(msg) {
const p = document.createElement('p');
p.innerText = `> ${msg}`;
systemLog.appendChild(p);
systemLog.scrollTop = systemLog.scrollHeight;
// Keep log short
while(systemLog.children.length > 20) {
systemLog.removeChild(systemLog.firstChild);
}
}
// --- CORE MECHANICS ---
function clickCore(e) {
gameState.qubits += gameState.clickPower;
gameState.totalQubits += gameState.clickPower;
// Create floating text
createFloatingText(e, `+${formatNumber(gameState.clickPower)}`);
updateUI();
}
function createFloatingText(e, text) {
const el = document.createElement('div');
el.classList.add('floating-text');
el.innerText = text;
// Randomize position slightly
const xOffset = (Math.random() - 0.5) * 40;
// Position at mouse event if possible, otherwise center of core
if (e && e.clientX) {
const rect = feedbackContainer.getBoundingClientRect();
el.style.left = `${e.clientX - rect.left + xOffset}px`;
el.style.top = `${e.clientY - rect.top}px`;
} else {
el.style.left = `calc(50% + ${xOffset}px)`;
el.style.top = `50%`;
}
feedbackContainer.appendChild(el);
setTimeout(() => {
el.remove();
}, 1000);
}
// --- BUILDINGS ---
function getBuildingCost(id) {
const count = gameState.buildings[id].count;
const baseCost = BUILDINGS[id].baseCost;
return baseCost * Math.pow(1.15, count);
}
function buyBuilding(id) {
const cost = getBuildingCost(id);
if (gameState.qubits >= cost) {
gameState.qubits -= cost;
gameState.buildings[id].count++;
logMessage(`Deployed ${BUILDINGS[id].name}.`);
updateQPS();
updateUI();
}
}
function updateQPS() {
let qps = 0;
for (const key in BUILDINGS) {
qps += gameState.buildings[key].count * BUILDINGS[key].baseQps;
}
currentQps = qps;
qpsDisplay.innerText = formatNumber(currentQps);
}
// --- UPGRADES ---
function buyUpgrade(id) {
const upg = UPGRADES.find(u => u.id === id);
if (upg && gameState.qubits >= upg.cost && !gameState.upgrades.includes(id)) {
gameState.qubits -= upg.cost;
gameState.upgrades.push(id);
upg.effect();
logMessage(`Installed upgrade: ${upg.name}`);
updateUI();
}
}
// --- INITIALIZATION & RENDER ---
function initUI() {
// Render Buildings
buildingsContainer.innerHTML = '';
for (const key in BUILDINGS) {
const b = BUILDINGS[key];
const el = document.createElement('div');
el.id = `building-${key}`;
el.className = 'shop-item';
el.onclick = () => buyBuilding(key);
el.innerHTML = `
<div class="item-info">
<h4>${b.name}</h4>
<div class="item-cost"><span id="cost-${key}">0</span> QBs</div>
<div class="item-desc">${b.desc}</div>
</div>
<div class="item-count" id="count-${key}">0</div>
`;
buildingsContainer.appendChild(el);
}
// Render Upgrades
renderUpgrades();
}
function renderUpgrades() {
upgradesContainer.innerHTML = '';
const availableUpgrades = UPGRADES.filter(u => !gameState.upgrades.includes(u.id));
availableUpgrades.forEach(u => {
const el = document.createElement('div');
el.id = `upgrade-${u.id}`;
el.className = 'upgrade-item';
el.onclick = () => buyUpgrade(u.id);
el.innerHTML = `
<div class="upgrade-title">${u.name}</div>
<div class="item-desc">${u.desc}</div>
<div class="item-cost">${formatNumber(u.cost)} QBs</div>
`;
upgradesContainer.appendChild(el);
});
}
function updateUI() {
qubitDisplay.innerText = formatNumber(gameState.qubits);
// Update building buttons
for (const key in BUILDINGS) {
const cost = getBuildingCost(key);
const el = document.getElementById(`building-${key}`);
if(el) {
document.getElementById(`cost-${key}`).innerText = formatNumber(cost);
document.getElementById(`count-${key}`).innerText = gameState.buildings[key].count;
if (gameState.qubits >= cost) {
el.classList.remove('disabled');
} else {
el.classList.add('disabled');
}
}
}
// Update upgrade buttons
UPGRADES.forEach(u => {
if (!gameState.upgrades.includes(u.id)) {
const el = document.getElementById(`upgrade-${u.id}`);
if (el) {
if (gameState.qubits >= u.cost) {
el.classList.remove('disabled');
} else {
el.classList.add('disabled');
}
}
} else {
const el = document.getElementById(`upgrade-${u.id}`);
if (el) el.remove(); // Remove bought upgrades
}
});
}
// --- SAVE/LOAD ---
function saveGame() {
gameState.lastSaveTime = Date.now();
localStorage.setItem('quantumOverlordSave', JSON.stringify(gameState));
logMessage('System state saved.');
}
function loadGame() {
const saved = localStorage.getItem('quantumOverlordSave');
if (saved) {
try {
const parsed = JSON.parse(saved);
gameState = { ...gameState, ...parsed };
// Ensure upgrades take effect on load
gameState.upgrades.forEach(upgId => {
const u = UPGRADES.find(x => x.id === upgId);
if (u) u.effect();
});
logMessage('System state loaded successfully.');
} catch (e) {
logMessage('Error loading save file.');
}
}
}
function wipeGame() {
if (confirm("Are you sure you want to WIPE the system? All progress will be lost!")) {
localStorage.removeItem('quantumOverlordSave');
location.reload();
}
}
// --- GAME LOOP ---
let lastTime = performance.now();
function gameLoop(time) {
const dt = (time - lastTime) / 1000;
lastTime = time;
if (currentQps > 0) {
const generated = currentQps * dt;
gameState.qubits += generated;
gameState.totalQubits += generated;
// Only update UI every so often to save performance, but we can do it every frame for a small project.
qubitDisplay.innerText = formatNumber(Math.floor(gameState.qubits));
// Periodically update the rest of UI
if(Math.random() < 0.1) {
updateUI();
}
}
requestAnimationFrame(gameLoop);
}
// Auto-save every 10 seconds
setInterval(saveGame, 10000);
// --- EVENT LISTENERS ---
quantumCore.addEventListener('mousedown', clickCore);
// Prevent spacebar from clicking if button is focused
quantumCore.addEventListener('keydown', (e) => {
if(e.code === 'Space' || e.code === 'Enter') e.preventDefault();
});
saveBtn.addEventListener('click', saveGame);
wipeBtn.addEventListener('click', wipeGame);
// --- START ---
loadGame();
initUI();
updateQPS();
updateUI();
requestAnimationFrame(gameLoop);