<!DOCTYPE html>
<html lang="pt-PT">
<head>
<meta charset="UTF-8">
<!DOCTYPE html>
<html lang="pt-PT">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Miguel Clicker - DEV Mode</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@600;700&family=JetBrains+Mono:wght@700&display=swap');
body { background-color: #020617; color: #f8fafc; font-family: 'Rajdhani', sans-serif; overflow: hidden; }
/* Estilo Natalício */
.snowflakes { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.snowflake { color: #fff; font-size: 1.2em; position: absolute; top: -10%; animation: fall linear infinite; }
@keyframes fall { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(110vh) rotate(360deg); } }
/* Botão Prenda */
.pushable {
position: relative; background: #991b1b; border-radius: 20%; border: none; padding: 0; cursor: pointer;
box-shadow: 0 0 30px rgba(253, 224, 71, 0.4);
}
.front {
display: flex; align-items: center; justify-content: center; position: relative;
width: 140px; height: 140px; border-radius: 20%; background: #dc2626;
color: white; font-size: 80px; transform: translateY(-8px);
transition: transform 50ms; border: 3px solid #fde047;
}
.pushable:active .front { transform: translateY(-2px); }
/* Painéis */
.panel-dev { border: 2px solid #fbbf24; background: rgba(0, 0, 0, 0.9); font-family: 'JetBrains Mono', monospace; }
.floating-num {
position: absolute; pointer-events: none; animation: float-up 0.7s ease-out forwards;
font-weight: 900; color: #fde047; z-index: 100;
}
@keyframes float-up { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(-100px); } }
.dev-glow { box-shadow: 0 0 20px #fbbf24; border-color: #fbbf24 !important; }
</style>
</head>
<body class="flex flex-col h-screen">
<div class="snowflakes" id="snow-container"></div>
<header class="p-3 bg-red-950 border-b-2 border-yellow-500 flex justify-between items-center z-10">
<div>
<h1 class="text-xl font-black text-yellow-400 italic">MIGUEL DEV</h1>
<div id="meta-tag" class="text-[9px] font-bold text-green-400 uppercase">META: 16.777.216</div>
</div>
<div class="text-right">
<div id="coin-display" class="text-2xl font-black text-white">0</div>
<div id="dev-status" class="text-[8px] text-red-500 font-bold uppercase tracking-widest">User Mode</div>
</div>
</header>
<div class="flex-1 flex flex-col md:flex-row overflow-hidden">
<!-- ÁREA DE CLIQUE -->
<div class="flex-1 flex flex-col items-center justify-center p-4 relative order-1">
<div id="click-container">
<button class="pushable" id="click-btn">
<span class="front">🎁</span>
</button>
</div>
<div class="mt-8 w-full max-w-sm bg-slate-900/80 p-4 rounded-xl border border-red-900">
<div class="flex justify-between text-[11px] font-black mb-1 uppercase italic">
<span id="vpc-display" class="text-green-400">5 letras / clique</span>
<span id="current-meta-label">META 1</span>
</div>
<div class="h-2 bg-black rounded-full overflow-hidden">
<div id="progress-bar" class="h-full bg-red-600 w-0 transition-all duration-300"></div>
</div>
</div>
<div class="flex gap-2 mt-6">
<button id="ad-btn" onclick="openAd()" class="px-6 py-2 bg-green-800 border border-yellow-500 rounded-full font-black text-white text-[10px] uppercase">
🎄 BÓNUS 24.389x 🎄
</button>
<!-- BOTÃO SÓ PARA DEV -->
<button id="dev-skip-btn" onclick="reward()" class="hidden px-6 py-2 bg-yellow-600 border border-black rounded-full font-black text-black text-[10px] uppercase animate-pulse">
⚡ SKIP AD (DEV)
</button>
</div>
</div>
<!-- LOJA E TERMINAL -->
<div class="w-full md:w-80 bg-slate-950 border-t-2 md:border-t-0 md:border-l-2 border-red-900 p-4 flex flex-col order-2">
<div class="flex-1 overflow-y-auto mb-4">
<h2 class="text-[10px] font-black text-blue-400 mb-2 uppercase italic">Loja de 50 Itens</h2>
<div id="shop" class="space-y-1"></div>
</div>
<!-- TERMINAL DEV -->
<div class="panel-dev p-3 rounded border-t border-yellow-600">
<div class="text-[9px] text-yellow-500 mb-2 font-bold uppercase italic">Console de 201 QI:</div>
<input type="password" id="dev-input" oninput="checkDev(this.value)" placeholder="SENHA MESTRE" class="w-full bg-black border border-yellow-900 p-2 text-yellow-500 text-[10px] focus:outline-none placeholder:opacity-30">
<div id="dev-tools" class="hidden mt-3 grid grid-cols-2 gap-2">
<button onclick="setCoins(16777216)" class="text-[8px] bg-blue-900 p-1 rounded font-bold">SET 16M</button>
<button onclick="setCoins(67108864)" class="text-[8px] bg-blue-900 p-1 rounded font-bold">SET 64M</button>
</div>
</div>
</div>
</div>
<!-- Video Modal -->
<div id="video-modal" class="fixed inset-0 hidden flex-col items-center justify-center bg-black/98 z-[9000] p-4 text-center">
<div class="text-yellow-500 font-black mb-4 animate-pulse uppercase">Modo Miguel Ativado...</div>
<video id="ad-player" class="w-full max-w-sm border-2 border-red-600 rounded" playsinline>
<source src="1000013899.mp4" type="video/mp4">
</video>
</div>
<script>
let coins = 0, vpc = 1, adMult = 1, isDev = false;
const eventMult = 5;
let currentMetaIndex = 0;
const metas = [16777216, 67108864, 281474976710656, Infinity];
const secret = "2444666668888888";
const shopData = [];
for(let i=1; i<=50; i++) {
shopData.push({
name: `Item #${i}`,
cost: Math.pow(1.85, i) * 10,
inc: Math.pow(1.65, i) * 2
});
}
function checkDev(val) {
if (val === secret) {
isDev = true;
document.getElementById('dev-status').innerText = "DEV MODE ACTIVE";
document.getElementById('dev-status').className = "text-[8px] text-yellow-500 font-bold uppercase tracking-widest animate-pulse";
document.getElementById('dev-skip-btn').classList.remove('hidden');
document.getElementById('dev-tools').classList.remove('hidden');
document.getElementById('dev-input').classList.add('dev-glow');
}
}
function setCoins(val) { if(isDev) { coins = val; updateUI(); } }
function format(n) {
if (n >= 1e12) return n.toExponential(2).replace("e+", "E+");
return Math.floor(n).toLocaleString('pt-PT');
}
function updateUI() {
document.getElementById('coin-display').innerText = format(coins);
const power = vpc * adMult * eventMult;
document.getElementById('vpc-display').innerText = `${format(power)} letras / clique`;
const currentTarget = metas[currentMetaIndex];
if (coins >= currentTarget) {
currentMetaIndex++;
document.getElementById('meta-tag').innerText = "META: " + format(metas[currentMetaIndex]);
}
document.getElementById('progress-bar').style.width = Math.min((coins / currentTarget) * 100, 100) + '%';
renderShop();
}
function renderShop() {
const container = document.getElementById('shop');
const scroll = container.scrollTop;
container.innerHTML = '';
shopData.forEach((it, idx) => {
const canBuy = coins >= it.cost;
const b = document.createElement('button');
b.className = `w-full p-2 bg-slate-900 border-l-2 border-red-600 flex justify-between text-[8px] font-black uppercase mb-1 ${canBuy ? '' : 'opacity-20'}`;
b.onclick = () => { if(canBuy) { coins -= it.cost; vpc += it.inc; it.cost *= 2.3; updateUI(); } };
b.innerHTML = `<span>${idx+1}. ${it.name}</span><span class="text-yellow-400">${format(it.cost)}</span>`;
container.appendChild(b);
});
container.scrollTop = scroll;
}
const adPlayer = document.getElementById('ad-player');
function openAd() {
document.getElementById('video-modal').style.display = 'flex';
adPlayer.play().catch(() => setTimeout(reward, 2000));
adPlayer.onended = reward;
}
function reward() {
adMult = 24389;
document.getElementById('video-modal').style.display = 'none';
adPlayer.pause();
setTimeout(() => { adMult = 1; updateUI(); }, 30000);
updateUI();
}
document.getElementById('click-btn').onclick = (e) => {
const gain = vpc * adMult * eventMult;
coins += gain;
updateUI();
const n = document.createElement('div');
n.className = 'floating-num';
n.innerText = `+${format(gain)}`;
n.style.left = e.clientX + 'px'; n.style.top = e.clientY + 'px';
document.body.appendChild(n);
setTimeout(() => n.remove(), 700);
};
function createSnow() {
const container = document.getElementById('snow-container');
for(let i=0; i<30; i++) {
const s = document.createElement('div'); s.className = 'snowflake'; s.innerText = '❄';
s.style.left = Math.random() * 100 + 'vw';
s.style.animationDuration = (Math.random() * 3 + 2) + 's';
container.appendChild(s);
}
}
window.onload = () => { createSnow(); updateUI(); };
</script>
</body>
</html> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Miguel Clicker - DEV Mode</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@600;700&family=JetBrains+Mono:wght@700&display=swap');
body { background-color: #020617; color: #f8fafc; font-family: 'Rajdhani', sans-serif; overflow: hidden; }
/* Estilo Natalício */
.snowflakes { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.snowflake { color: #fff; font-size: 1.2em; position: absolute; top: -10%; animation: fall linear infinite; }
@keyframes fall { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(110vh) rotate(360deg); } }
/* Botão Prenda */
.pushable {
position: relative; background: #991b1b; border-radius: 20%; border: none; padding: 0; cursor: pointer;
box-shadow: 0 0 30px rgba(253, 224, 71, 0.4);
}
.front {
display: flex; align-items: center; justify-content: center; position: relative;
width: 140px; height: 140px; border-radius: 20%; background: #dc2626;
color: white; font-size: 80px; transform: translateY(-8px);
transition: transform 50ms; border: 3px solid #fde047;
}
.pushable:active .front { transform: translateY(-2px); }
/* Painéis */
.panel-dev { border: 2px solid #fbbf24; background: rgba(0, 0, 0, 0.9); font-family: 'JetBrains Mono', monospace; }
.floating-num {
position: absolute; pointer-events: none; animation: float-up 0.7s ease-out forwards;
font-weight: 900; color: #fde047; z-index: 100;
}
@keyframes float-up { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(-100px); } }
.dev-glow { box-shadow: 0 0 20px #fbbf24; border-color: #fbbf24 !important; }
</style>
</head>
<body class="flex flex-col h-screen">
<div class="snowflakes" id="snow-container"></div>
<header class="p-3 bg-red-950 border-b-2 border-yellow-500 flex justify-between items-center z-10">
<div>
<h1 class="text-xl font-black text-yellow-400 italic">MIGUEL DEV</h1>
<div id="meta-tag" class="text-[9px] font-bold text-green-400 uppercase">META: 16.777.216</div>
</div>
<div class="text-right">
<div id="coin-display" class="text-2xl font-black text-white">0</div>
<div id="dev-status" class="text-[8px] text-red-500 font-bold uppercase tracking-widest">User Mode</div>
</div>
</header>
<div class="flex-1 flex flex-col md:flex-row overflow-hidden">
<!-- ÁREA DE CLIQUE -->
<div class="flex-1 flex flex-col items-center justify-center p-4 relative order-1">
<div id="click-container">
<button class="pushable" id="click-btn">
<span class="front">🎁</span>
</button>
</div>
<div class="mt-8 w-full max-w-sm bg-slate-900/80 p-4 rounded-xl border border-red-900">
<div class="flex justify-between text-[11px] font-black mb-1 uppercase italic">
<span id="vpc-display" class="text-green-400">5 letras / clique</span>
<span id="current-meta-label">META 1</span>
</div>
<div class="h-2 bg-black rounded-full overflow-hidden">
<div id="progress-bar" class="h-full bg-red-600 w-0 transition-all duration-300"></div>
</div>
</div>
<div class="flex gap-2 mt-6">
<button id="ad-btn" onclick="openAd()" class="px-6 py-2 bg-green-800 border border-yellow-500 rounded-full font-black text-white text-[10px] uppercase">
🎄 BÓNUS 24.389x 🎄
</button>
<!-- BOTÃO SÓ PARA DEV -->
<button id="dev-skip-btn" onclick="reward()" class="hidden px-6 py-2 bg-yellow-600 border border-black rounded-full font-black text-black text-[10px] uppercase animate-pulse">
⚡ SKIP AD (DEV)
</button>
</div>
</div>
<!-- LOJA E TERMINAL -->
<div class="w-full md:w-80 bg-slate-950 border-t-2 md:border-t-0 md:border-l-2 border-red-900 p-4 flex flex-col order-2">
<div class="flex-1 overflow-y-auto mb-4">
<h2 class="text-[10px] font-black text-blue-400 mb-2 uppercase italic">Loja de 50 Itens</h2>
<div id="shop" class="space-y-1"></div>
</div>
<!-- TERMINAL DEV -->
<div class="panel-dev p-3 rounded border-t border-yellow-600">
<div class="text-[9px] text-yellow-500 mb-2 font-bold uppercase italic">Console de 201 QI:</div>
<input type="password" id="dev-input" oninput="checkDev(this.value)" placeholder="SENHA MESTRE" class="w-full bg-black border border-yellow-900 p-2 text-yellow-500 text-[10px] focus:outline-none placeholder:opacity-30">
<div id="dev-tools" class="hidden mt-3 grid grid-cols-2 gap-2">
<button onclick="setCoins(16777216)" class="text-[8px] bg-blue-900 p-1 rounded font-bold">SET 16M</button>
<button onclick="setCoins(67108864)" class="text-[8px] bg-blue-900 p-1 rounded font-bold">SET 64M</button>
</div>
</div>
</div>
</div>
<!-- Video Modal -->
<div id="video-modal" class="fixed inset-0 hidden flex-col items-center justify-center bg-black/98 z-[9000] p-4 text-center">
<div class="text-yellow-500 font-black mb-4 animate-pulse uppercase">Modo Miguel Ativado...</div>
<video id="ad-player" class="w-full max-w-sm border-2 border-red-600 rounded" playsinline>
<source src="1000013899.mp4" type="video/mp4">
</video>
</div>
<script>
let coins = 0, vpc = 1, adMult = 1, isDev = false;
const eventMult = 5;
let currentMetaIndex = 0;
const metas = [16777216, 67108864, 281474976710656, Infinity];
const secret = "2444666668888888";
const shopData = [];
for(let i=1; i<=50; i++) {
shopData.push({
name: `Item #${i}`,
cost: Math.pow(1.85, i) * 10,
inc: Math.pow(1.65, i) * 2
});
}
function checkDev(val) {
if (val === secret) {
isDev = true;
document.getElementById('dev-status').innerText = "DEV MODE ACTIVE";
document.getElementById('dev-status').className = "text-[8px] text-yellow-500 font-bold uppercase tracking-widest animate-pulse";
document.getElementById('dev-skip-btn').classList.remove('hidden');
document.getElementById('dev-tools').classList.remove('hidden');
document.getElementById('dev-input').classList.add('dev-glow');
}
}
function setCoins(val) { if(isDev) { coins = val; updateUI(); } }
function format(n) {
if (n >= 1e12) return n.toExponential(2).replace("e+", "E+");
return Math.floor(n).toLocaleString('pt-PT');
}
function updateUI() {
document.getElementById('coin-display').innerText = format(coins);
const power = vpc * adMult * eventMult;
document.getElementById('vpc-display').innerText = `${format(power)} letras / clique`;
const currentTarget = metas[currentMetaIndex];
if (coins >= currentTarget) {
currentMetaIndex++;
document.getElementById('meta-tag').innerText = "META: " + format(metas[currentMetaIndex]);
}
document.getElementById('progress-bar').style.width = Math.min((coins / currentTarget) * 100, 100) + '%';
renderShop();
}
function renderShop() {
const container = document.getElementById('shop');
const scroll = container.scrollTop;
container.innerHTML = '';
shopData.forEach((it, idx) => {
const canBuy = coins >= it.cost;
const b = document.createElement('button');
b.className = `w-full p-2 bg-slate-900 border-l-2 border-red-600 flex justify-between text-[8px] font-black uppercase mb-1 ${canBuy ? '' : 'opacity-20'}`;
b.onclick = () => { if(canBuy) { coins -= it.cost; vpc += it.inc; it.cost *= 2.3; updateUI(); } };
b.innerHTML = `<span>${idx+1}. ${it.name}</span><span class="text-yellow-400">${format(it.cost)}</span>`;
container.appendChild(b);
});
container.scrollTop = scroll;
}
const adPlayer = document.getElementById('ad-player');
function openAd() {
document.getElementById('video-modal').style.display = 'flex';
adPlayer.play().catch(() => setTimeout(reward, 2000));
adPlayer.onended = reward;
}
function reward() {
adMult = 24389;
document.getElementById('video-modal').style.display = 'none';
adPlayer.pause();
setTimeout(() => { adMult = 1; updateUI(); }, 30000);
updateUI();
}
document.getElementById('click-btn').onclick = (e) => {
const gain = vpc * adMult * eventMult;
coins += gain;
updateUI();
const n = document.createElement('div');
n.className = 'floating-num';
n.innerText = `+${format(gain)}`;
n.style.left = e.clientX + 'px'; n.style.top = e.clientY + 'px';
document.body.appendChild(n);
setTimeout(() => n.remove(), 700);
};
function createSnow() {
const container = document.getElementById('snow-container');
for(let i=0; i<30; i++) {
const s = document.createElement('div'); s.className = 'snowflake'; s.innerText = '❄';
s.style.left = Math.random() * 100 + 'vw';
s.style.animationDuration = (Math.random() * 3 + 2) + 's';
container.appendChild(s);
}
}
window.onload = () => { createSnow(); updateUI(); };
</script>
</body>
</html><!DOCTYPE html>
<html lang="pt-PT">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Miguel Clicker - DEV Mode</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Rajdhani:wght@600;700&family=JetBrains+Mono:wght@700&display=swap');
body { background-color: #020617; color: #f8fafc; font-family: 'Rajdhani', sans-serif; overflow: hidden; }
/* Estilo Natalício */
.snowflakes { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; }
.snowflake { color: #fff; font-size: 1.2em; position: absolute; top: -10%; animation: fall linear infinite; }
@keyframes fall { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(110vh) rotate(360deg); } }
/* Botão Prenda */
.pushable {
position: relative; background: #991b1b; border-radius: 20%; border: none; padding: 0; cursor: pointer;
box-shadow: 0 0 30px rgba(253, 224, 71, 0.4);
}
.front {
display: flex; align-items: center; justify-content: center; position: relative;
width: 140px; height: 140px; border-radius: 20%; background: #dc2626;
color: white; font-size: 80px; transform: translateY(-8px);
transition: transform 50ms; border: 3px solid #fde047;
}
.pushable:active .front { transform: translateY(-2px); }
/* Painéis */
.panel-dev { border: 2px solid #fbbf24; background: rgba(0, 0, 0, 0.9); font-family: 'JetBrains Mono', monospace; }
.floating-num {
position: absolute; pointer-events: none; animation: float-up 0.7s ease-out forwards;
font-weight: 900; color: #fde047; z-index: 100;
}
@keyframes float-up { 0% { opacity: 1; transform: translateY(0); } 100% { opacity: 0; transform: translateY(-100px); } }
.dev-glow { box-shadow: 0 0 20px #fbbf24; border-color: #fbbf24 !important; }
</style>
</head>
<body class="flex flex-col h-screen">
<div class="snowflakes" id="snow-container"></div>
<header class="p-3 bg-red-950 border-b-2 border-yellow-500 flex justify-between items-center z-10">
<div>
<h1 class="text-xl font-black text-yellow-400 italic">MIGUEL DEV</h1>
<div id="meta-tag" class="text-[9px] font-bold text-green-400 uppercase">META: 16.777.216</div>
</div>
<div class="text-right">
<div id="coin-display" class="text-2xl font-black text-white">0</div>
<div id="dev-status" class="text-[8px] text-red-500 font-bold uppercase tracking-widest">User Mode</div>
</div>
</header>
<div class="flex-1 flex flex-col md:flex-row overflow-hidden">
<!-- ÁREA DE CLIQUE -->
<div class="flex-1 flex flex-col items-center justify-center p-4 relative order-1">
<div id="click-container">
<button class="pushable" id="click-btn">
<span class="front">🎁</span>
</button>
</div>
<div class="mt-8 w-full max-w-sm bg-slate-900/80 p-4 rounded-xl border border-red-900">
<div class="flex justify-between text-[11px] font-black mb-1 uppercase italic">
<span id="vpc-display" class="text-green-400">5 letras / clique</span>
<span id="current-meta-label">META 1</span>
</div>
<div class="h-2 bg-black rounded-full overflow-hidden">
<div id="progress-bar" class="h-full bg-red-600 w-0 transition-all duration-300"></div>
</div>
</div>
<div class="flex gap-2 mt-6">
<button id="ad-btn" onclick="openAd()" class="px-6 py-2 bg-green-800 border border-yellow-500 rounded-full font-black text-white text-[10px] uppercase">
🎄 BÓNUS 24.389x 🎄
</button>
<!-- BOTÃO SÓ PARA DEV -->
<button id="dev-skip-btn" onclick="reward()" class="hidden px-6 py-2 bg-yellow-600 border border-black rounded-full font-black text-black text-[10px] uppercase animate-pulse">
⚡ SKIP AD (DEV)
</button>
</div>
</div>
<!-- LOJA E TERMINAL -->
<div class="w-full md:w-80 bg-slate-950 border-t-2 md:border-t-0 md:border-l-2 border-red-900 p-4 flex flex-col order-2">
<div class="flex-1 overflow-y-auto mb-4">
<h2 class="text-[10px] font-black text-blue-400 mb-2 uppercase italic">Loja de 50 Itens</h2>
<div id="shop" class="space-y-1"></div>
</div>
<!-- TERMINAL DEV -->
<div class="panel-dev p-3 rounded border-t border-yellow-600">
<div class="text-[9px] text-yellow-500 mb-2 font-bold uppercase italic">Console de 201 QI:</div>
<input type="password" id="dev-input" oninput="checkDev(this.value)" placeholder="SENHA MESTRE" class="w-full bg-black border border-yellow-900 p-2 text-yellow-500 text-[10px] focus:outline-none placeholder:opacity-30">
<div id="dev-tools" class="hidden mt-3 grid grid-cols-2 gap-2">
<button onclick="setCoins(16777216)" class="text-[8px] bg-blue-900 p-1 rounded font-bold">SET 16M</button>
<button onclick="setCoins(67108864)" class="text-[8px] bg-blue-900 p-1 rounded font-bold">SET 64M</button>
</div>
</div>
</div>
</div>
<!-- Video Modal -->
<div id="video-modal" class="fixed inset-0 hidden flex-col items-center justify-center bg-black/98 z-[9000] p-4 text-center">
<div class="text-yellow-500 font-black mb-4 animate-pulse uppercase">Modo Miguel Ativado...</div>
<video id="ad-player" class="w-full max-w-sm border-2 border-red-600 rounded" playsinline>
<source src="1000013899.mp4" type="video/mp4">
</video>
</div>
<script>
let coins = 0, vpc = 1, adMult = 1, isDev = false;
const eventMult = 5;
let currentMetaIndex = 0;
const metas = [16777216, 67108864, 281474976710656, Infinity];
const secret = "2444666668888888";
const shopData = [];
for(let i=1; i<=50; i++) {
shopData.push({
name: `Item #${i}`,
cost: Math.pow(1.85, i) * 10,
inc: Math.pow(1.65, i) * 2
});
}
function checkDev(val) {
if (val === secret) {
isDev = true;
document.getElementById('dev-status').innerText = "DEV MODE ACTIVE";
document.getElementById('dev-status').className = "text-[8px] text-yellow-500 font-bold uppercase tracking-widest animate-pulse";
document.getElementById('dev-skip-btn').classList.remove('hidden');
document.getElementById('dev-tools').classList.remove('hidden');
document.getElementById('dev-input').classList.add('dev-glow');
}
}
function setCoins(val) { if(isDev) { coins = val; updateUI(); } }
function format(n) {
if (n >= 1e12) return n.toExponential(2).replace("e+", "E+");
return Math.floor(n).toLocaleString('pt-PT');
}
function updateUI() {
document.getElementById('coin-display').innerText = format(coins);
const power = vpc * adMult * eventMult;
document.getElementById('vpc-display').innerText = `${format(power)} letras / clique`;
const currentTarget = metas[currentMetaIndex];
if (coins >= currentTarget) {
currentMetaIndex++;
document.getElementById('meta-tag').innerText = "META: " + format(metas[currentMetaIndex]);
}
document.getElementById('progress-bar').style.width = Math.min((coins / currentTarget) * 100, 100) + '%';
renderShop();
}
function renderShop() {
const container = document.getElementById('shop');
const scroll = container.scrollTop;
container.innerHTML = '';
shopData.forEach((it, idx) => {
const canBuy = coins >= it.cost;
const b = document.createElement('button');
b.className = `w-full p-2 bg-slate-900 border-l-2 border-red-600 flex justify-between text-[8px] font-black uppercase mb-1 ${canBuy ? '' : 'opacity-20'}`;
b.onclick = () => { if(canBuy) { coins -= it.cost; vpc += it.inc; it.cost *= 2.3; updateUI(); } };
b.innerHTML = `<span>${idx+1}. ${it.name}</span><span class="text-yellow-400">${format(it.cost)}</span>`;
container.appendChild(b);
});
container.scrollTop = scroll;
}
const adPlayer = document.getElementById('ad-player');
function openAd() {
document.getElementById('video-modal').style.display = 'flex';
adPlayer.play().catch(() => setTimeout(reward, 2000));
adPlayer.onended = reward;
}
function reward() {
adMult = 24389;
document.getElementById('video-modal').style.display = 'none';
adPlayer.pause();
setTimeout(() => { adMult = 1; updateUI(); }, 30000);
updateUI();
}
document.getElementById('click-btn').onclick = (e) => {
const gain = vpc * adMult * eventMult;
coins += gain;
updateUI();
const n = document.createElement('div');
n.className = 'floating-num';
n.innerText = `+${format(gain)}`;
n.style.left = e.clientX + 'px'; n.style.top = e.clientY + 'px';
document.body.appendChild(n);
setTimeout(() => n.remove(), 700);
};
function createSnow() {
const container = document.getElementById('snow-container');
for(let i=0; i<30; i++) {
const s = document.createElement('div'); s.className = 'snowflake'; s.innerText = '❄';
s.style.left = Math.random() * 100 + 'vw';
s.style.animationDuration = (Math.random() * 3 + 2) + 's';
container.appendChild(s);
}
}
window.onload = () => { createSnow(); updateUI(); };
</script>
</body>
</html>