Documento (8) RPG
Documento (8) RPG
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<style>
@import url('https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;600;700&display=swap');
:root {
--border-color: #8B7E66;
--bg-color: #F5F0E6;
--card-bg: #E8E6E1;
--accent: #5C4033;
--button-bg: #8B7E66;
--button-hover: #6B5E4C;
*{
margin: 0;
padding: 0;
box-sizing: border-box;
body {
background-color: var(--bg-color);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
padding: 20px;
.header-img-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
z-index: 2000;
.header-img-overlay img {
width: 100%;
max-width: 800px;
filter: brightness(1.5) drop-shadow(0 0 20px rgba(255, 255, 255,
0.8));
.header-img {
width: 90%;
max-width: 450px;
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
z-index: 1;
pointer-events: none;
background: transparent;
opacity: 0;
.header-img.active {
opacity: 1;
.header-img.bright {
.dialogue-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: none;
z-index: 1000;
display: none;
align-items: flex-start;
justify-content: flex-start;
.dialogue-overlay.active {
display: flex;
.character-img {
height: auto;
position: absolute;
left: 20px;
top: 200px;
background: transparent;
pointer-events: none;
z-index: 1001;
max-width: 80vw;
width: 260px;
.dialogue-text {
position: absolute;
left: 20px;
top: 30px;
max-width: 60%;
width: fit-content;
font-size: 16px;
color: #fff;
background: #000;
border-radius: 10px;
padding: 20px;
z-index: 1002;
aria-live: "polite";
position: relative;
white-space: normal;
box-sizing: border-box;
.dialogue-text::after {
content: '';
position: absolute;
bottom: -20px;
left: 30px;
width: 0;
height: 0;
.dialogue-text.fade-out, .character-img.fade-out {
opacity: 0;
.submission-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 3000;
display: none;
flex-direction: column;
align-items: center;
justify-content: center;
.submission-img {
width: 80%;
max-width: 400px;
.submission-message {
border-radius: 8px;
padding: 15px;
max-width: 80%;
font-size: 14px;
margin-top: 20px;
text-align: center;
.container {
width: 100%;
max-width: 500px;
background-color: white;
border-radius: 12px;
overflow: hidden;
position: relative;
.header {
background-color: var(--accent);
color: white;
text-align: center;
font-size: 20px;
font-weight: 600;
}
.form-container {
padding: 20px;
padding-top: 130px;
position: relative;
pointer-events: none;
opacity: 0.5;
.form-container.active {
pointer-events: auto;
opacity: 1;
.form-container.blur {
filter: blur(5px);
.status-bar {
display: grid;
padding: 15px;
background: var(--card-bg);
gap: 10px;
text-align: center;
font-size: 0.9rem;
font-weight: 600;
color: #333;
width: 100%;
max-width: 100%;
box-sizing: border-box;
margin-bottom: 20px;
.status-bar div {
padding: 10px;
background: #f5f6fa;
border-radius: 8px;
.status-bar div:hover {
background: var(--button-bg);
color: #ffffff;
transform: translateY(-3px);
.links {
display: flex;
flex-direction: column;
gap: 20px;
width: 100%;
max-width: 500px;
box-sizing: border-box;
}
.link-item {
background: var(--card-bg);
border-radius: 10px;
padding: 20px;
position: relative;
white-space: pre-wrap;
.link-item::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
.link-item:hover {
transform: translateY(-5px);
}
.link-item.nsfw {
background: #e74c3c;
color: #ffffff;
.link-item.nsfw:hover {
background: #c0392b;
.link-title {
font-size: 1.2rem;
font-weight: 600;
margin-bottom: 15px;
color: #333;
.nsfw-label {
font-size: 0.9rem;
margin-left: 5px;
.circles {
display: flex;
gap: 8px;
flex-wrap: wrap;
margin-bottom: 15px;
}
.circle {
width: 30px;
height: 30px;
border-radius: 50%;
cursor: pointer;
.circle.not-validated {
background: #e74c3c;
.link-item.nsfw .circle.not-validated {
background: #000000;
.circle.active {
background: var(--accent);
transform: scale(1.1);
.link-item.nsfw .circle.active {
background: #95a5a6;
box-shadow: none;
.circle.progress {
background: linear-gradient(to top, #e74c3c var(--progress-
height), var(--accent) var(--progress-height) 100%);
clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80%
100%, 20% 100%, 0% 80%, 0% 20%);
.link-item.nsfw .circle.progress {
.circle.blocked {
background: #95a5a6;
cursor: not-allowed;
.link-item.nsfw .circle.blocked {
background: #95a5a6;
.circle:hover:not(.active):not(.blocked) {
background: #3498db;
transform: scale(1.15);
.gold-amount {
margin-top: 10px;
font-size: 0.9rem;
color: #e67e22;
font-weight: 600;
margin-bottom: 15px;
.progress-bar {
height: 10px;
background: #ecf0f1;
border-radius: 5px;
margin: 10px 0;
.progress-bar-fill {
height: 100%;
background: var(--accent);
border-radius: 5px;
.tutorial-button {
position: absolute;
top: 10px;
right: 10px;
background: var(--button-bg);
border: none;
color: #ffffff;
font-size: 0.9rem;
font-weight: 600;
border-radius: 8px;
cursor: pointer;
transition: background 0.3s ease, transform 0.2s ease;
.tutorial-button:hover {
background: var(--button-hover);
transform: scale(1.05);
.btn {
background-color: var(--button-bg);
color: white;
border: none;
width: 100%;
border-radius: 8px;
font-size: 16px;
font-weight: 500;
cursor: pointer;
margin-top: 20px;
.btn:hover {
background-color: var(--button-hover);
transform: scale(1.02);
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
justify-content: center;
align-items: center;
z-index: 100;
.modal-content {
background: #ffffff;
padding: 30px;
border-radius: 15px;
text-align: center;
max-width: 90%;
width: 500px;
box-sizing: border-box;
.modal-content h2 {
color: #2c3e50;
margin-bottom: 10px;
.modal-content p {
color: #7f8c8d;
margin-bottom: 20px;
width: 100%;
padding: 12px;
margin: 10px 0;
border-radius: 8px;
font-size: 1rem;
.modal-content button {
background: var(--button-bg);
border: none;
color: #ffffff;
border-radius: 8px;
cursor: pointer;
font-weight: 600;
margin: 5px;
.modal-content button.cancel {
background: #e74c3c;
.modal-content button.cancel:hover {
background: #c0392b;
}
.admin-section {
padding: 20px;
background: var(--card-bg);
border-radius: 12px;
display: none;
width: 100%;
max-width: 100%;
box-sizing: border-box;
.admin-section input {
width: 100%;
padding: 12px;
margin: 10px 0;
border-radius: 8px;
font-size: 1rem;
.admin-section button {
width: 100%;
padding: 12px;
background: var(--button-bg);
border: none;
color: #ffffff;
border-radius: 8px;
cursor: pointer;
font-weight: 600;
@keyframes glowFadeIn {
@keyframes fadeOutHeader {
from { opacity: 1; }
to { opacity: 0; }
@keyframes pulseBrightness {
to { filter: brightness(1.5); }
@keyframes slideInUp {
to { transform: translateY(0); }
@keyframes fadeScale {
@keyframes fadeInOut {
0% { opacity: 0; }
20% { opacity: 1; }
80% { opacity: 1; }
100% { opacity: 0; }
@keyframes glowBrighten {
to { filter: brightness(3); }
@keyframes brightenHeader {
0% { filter: brightness(1); }
@keyframes slideIn {
.container {
max-width: 90%;
}
.header-img {
max-width: 400px;
.character-img {
max-width: 70vw;
.dialogue-text {
max-width: 80%;
font-size: 14px;
.submission-img {
max-width: 300px;
.submission-message {
font-size: 12px;
.header {
font-size: 18px;
.form-container {
padding: 15px;
padding-top: 120px;
}
input, select {
font-size: 14px;
.action-btn, .btn {
font-size: 14px;
.circle {
width: 25px;
height: 25px;
.header {
font-size: 16px;
.form-container {
padding: 10px;
padding-top: 100px;
.link-title {
font-size: 1rem;
}
.gold-amount {
font-size: 0.8rem;
.tutorial-button {
font-size: 0.8rem;
</style>
</head>
<body>
<img src="https://i.postimg.cc/Vvdf3V16/Png-Item-1257489.png"
alt="Cabeçalho Attack on Titan">
</div>
</div>
<img class="submission-img"
src="https://i.postimg.cc/2SpkKGtk/Png-Item-6931360.png"
alt="Símbolo de Oferenda">
<div class="submission-message">Ofereça seus corações! Suas
missões serão forjadas para a glória de Paradis!</div>
</div>
<div class="container">
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/pXZYVuNYW
7c', 'Como Resolver a Missão Shortano (2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_SH
ORTINO', 'Como Resolver a Missão Shortino
(2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_FO
FAS', 'Como Resolver a Missão Fofas (2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_CL
KSPRO', 'Como Resolver a Missão ClksPro (2025)')">Tutorial</button>
</div>
<div class="link-item nsfw" id="cbshort">
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_CB
SHORT', 'Como Resolver a Missão CBShort
(2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_O
UO', 'Como Resolver a Missão OuO (2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_FC
LC', 'Como Resolver a Missão Fclc (2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_CU
TURLS', 'Como Resolver a Missão Cut-Urls
(2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_CL
IKSH', 'Como Resolver a Missão ClikSh (2025)')">Tutorial</button>
</div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_CL
ICKFLY', 'Como Resolver a Missão Clicksfly
(2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_CO
INCLIX', 'Como Resolver a Missão Coinclix
(2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_PA
YINC', 'Como Resolver a Missão Pay.Inc (2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_EA
RNNNOW', 'Como Resolver a Missão EarnNow
(2025)')">Tutorial</button>
</div>
<div class="progress-bar"><div
class="progress-bar-fill"></div></div>
<button class="tutorial-button"
onclick="showTutorial('https://www.youtube.com/embed/VIDEO_ID_EN
CURTANET', 'Como Resolver a Missão EncurtaNet
(2025)')">Tutorial</button>
</div>
</div>
𝙼𝚒𝚝𝚛𝚊𝚜</button>
</div>
</div>
<div class="modal-content">
<h2 id="welcomeMessage">Bem-vindo à Zona de Recompensas!
</h2>
<p></p>
</div>
</div>
<div class="modal-content">
<button onclick="validarPropaganda()">Validar</button>
<button onclick="closeModal('codeModal')">Cancelar</button>
</div>
</div>
<div class="modal-content">
<button onclick="submitMemberDetails()">Enviar</button>
<button class="cancel"
onclick="closeModal('detailsModal')">Cancelar</button>
</div>
</div>
<div class="modal-content">
<button class="cancel"
onclick="closeModal('withdrawModal')">Cancelar</button>
</div>
</div>
<div id="adminResultado"></div>
</div>
<script>
let goldsAvailable =
parseInt(localStorage.getItem('goldsAvailable')) || 0;
const linkProgress = {
};
let total = 0;
});
return total;
function resetarEstadoDiario() {
linksAvailable = 64;
Object.keys(linkProgress).forEach(linkId => {
linkProgress[linkId].current = 0;
localStorage.removeItem(`${linkId}:${i}:date`);
localStorage.removeItem(`bonus:${linkId}`);
});
localStorage.setItem('usedCodes', JSON.stringify({}));
goldsAvailable = recalcularGoldsDisponiveis();
localStorage.setItem('goldsAvailable', goldsAvailable);
localStorage.setItem('linksAvailable', linksAvailable);
localStorage.setItem('linkProgress', JSON.stringify(linkProgress));
localStorage.setItem('appVersion', APP_VERSION);
inicializarBolinhas();
atualizarInterface();
function inicializarEstado() {
localStorage.setItem('yshippFirstVisit', 'true');
localStorage.setItem('goldsTotal',
localStorage.getItem('goldsTotal') || '0');
localStorage.setItem('appVersion', APP_VERSION);
resetarEstadoDiario();
resetarEstadoDiario();
} else {
linksAvailable = parseInt(localStorage.getItem('linksAvailable')) ||
64;
if (savedProgress) {
Object.assign(linkProgress, JSON.parse(savedProgress));
goldsAvailable = parseInt(localStorage.getItem('goldsAvailable'))
|| recalcularGoldsDisponiveis();
localStorage.setItem('goldsAvailable', goldsAvailable);
goldsTotal = parseInt(localStorage.getItem('goldsTotal')) || 0;
atualizarInterface();
function salvarEstado() {
localStorage.setItem('linkProgress', JSON.stringify(linkProgress));
localStorage.setItem('goldsAvailable', goldsAvailable);
localStorage.setItem('goldsTotal', goldsTotal);
localStorage.setItem('linksAvailable', linksAvailable);
localStorage.setItem('appVersion', APP_VERSION);
links.forEach(id => {
if (!container) return;
container.innerHTML = '';
circle.classList.add('circle', 'not-validated');
circle.dataset.index = i;
container.appendChild(circle);
verificarEstadoCirculo(id, i, circle);
});
}
function verificarEstadoCirculo(linkId, index, circle) {
if (lastValidation) {
circle.classList.remove('not-validated');
circle.classList.add('active', 'blocked');
} else {
circle.classList.add('not-validated');
localStorage.removeItem(key);
midnight.setHours(24, 0, 0, 0);
circle.style.setProperty('--progress-height', `${progressHeight}
%`);
circle.classList.add('progress');
} else {
circle.classList.add('not-validated');
localStorage.removeItem(key);
function atualizarInterface() {
document.getElementById('golds-available').textContent =
goldsAvailable;
document.getElementById('golds-total').textContent = goldsTotal;
document.getElementById('links-available').textContent = `$
{linksAvailable} / 64`;
Object.keys(linkProgress).forEach(linkId => {
if (progressBarFill) {
progressBarFill.style.width = `${progressPercent}%`;
}
if (progress.current === progress.max && !
localStorage.getItem(`bonus:${linkId}`)) {
linksAvailable++;
localStorage.setItem(`bonus:${linkId}`, 'true');
});
inicializarBolinhas();
return;
if (circles[index].classList.contains('active')) {
return;
if (circles[index].classList.contains('blocked')) {
currentLinkId = linkId;
currentIndex = index;
? 'http://shortano.link/shortanopropaganda1'
: 'https://seusite.com/pagina-destino';
window.open(linkUrl, '_blank');
modal.style.display = 'flex';
function validarPropaganda() {
return;
const dataHoraInput =
document.getElementById('codeDataHora').value;
const codeInput =
document.getElementById('codeInput').value.trim();
if (!dataHoraInput || !codeInput) {
return;
}
if (codeInput.length !== 6) {
return;
if (isNaN(dataHora.getTime())) {
return;
return;
return;
}
usedCodes[`${currentLinkId}:${currentIndex}`] = { code:
codeInput, dataHora: dataHoraFormatted, date: today };
localStorage.setItem('usedCodes', JSON.stringify(usedCodes));
circles[currentIndex].classList.remove('not-validated');
circles[currentIndex].classList.add('active', 'blocked');
atualizarProgressoCirculo(currentLinkId, currentIndex,
circles[currentIndex]);
progress.current++;
goldsAvailable -= progress.golds;
goldsTotal += progress.golds;
linksAvailable--;
salvarEstado();
atualizarInterface();
modal.style.display = 'flex';
setTimeout(() => {
modal.style.display = 'none';
}, 3000);
linkItem.classList.add('completed');
closeModal('codeModal');
currentLinkId = null;
currentIndex = null;
function goToMitrasZone() {
window.open('https://linkpremiadoanime.blogspot.com/2025/04/merc
ado-de-servicos-yshippcommerce.html', '_blank');
function withdrawPix() {
return;
goldsAvailable -= 100000;
goldsTotal -= 100000;
salvarEstado();
atualizarInterface();
closeModal('withdrawModal');
function transferToServices() {
return;
goldsAvailable -= 100000;
goldsTotal -= 100000;
localStorage.setItem('marketplaceGolds',
parseInt(localStorage.getItem('marketplaceGolds') || '0') + 100000);
salvarEstado();
atualizarInterface();
closeModal('withdrawModal');
function closeModal(modalId) {
document.getElementById(modalId).style.display = 'none';
currentIndex = null;
pendingMemberLink = null;
try {
return dados.ip;
} catch (erro) {
return null;
function gerarCodigo(dataHora) {
return hash;
return;
const senhaAdmin =
document.getElementById('senhaAdmin').value;
return;
const dataHoraInput =
document.getElementById('dataHora').value;
if (!dataHoraInput) {
return;
if (isNaN(dataHora.getTime())) {
return;
}
function showTutorial(videoUrl, title) {
if (videoUrl) {
modal.style.display = 'flex';
iframe.src = videoUrl;
iframe.title = title;
iframe.frameborder = '0';
iframe.allowFullscreen = true;
modal.querySelector('.modal-content').innerHTML = `<h2>$
{title}</h2><div
class="video-container">${iframe.outerHTML}</div><button
onclick="closeModal('codeModal')">Fechar</button>`;
window.onload = () => {
inicializarEstado();
setTimeout(() => {
setTimeout(() => {
headerImgOverlay.style.display = 'none';
staticHeaderImg.classList.add('active');
dialogueOverlay.classList.add('active');
showDialogue();
}, 6000);
}, 0);
};
let dialogueIndex = 0;
let dialogueInterval;
const dialogues = [
character: 'Levi',
image: 'https://i.postimg.cc/G2NwshwL/Png-Item-1257615.png',
imageWidth: '260px',
imageHeight: 347,
},
character: 'Levi',
image: 'https://i.postimg.cc/G2NwshwL/Png-Item-1257615.png',
imageWidth: '260px',
imageHeight: 347,
},
character: 'Levi',
image: 'https://i.postimg.cc/G2NwshwL/Png-Item-1257615.png',
imageWidth: '260px',
imageHeight: 347,
text: 'Depois de completar, valide com o código. Se errar, vai
esfregar o chão do quartel. E não tente enganar – eu vejo tudo, como
um Titã avistando presas!'
},
character: 'Levi',
image: 'https://i.postimg.cc/G2NwshwL/Png-Item-1257615.png',
imageWidth: '260px',
imageHeight: 347,
];
function advanceDialogue() {
dialogueIndex++;
showDialogue();
} else {
clearInterval(dialogueInterval);
characterImg.classList.add('fade-out');
dialogueText.classList.add('fade-out');
formContainer.classList.add('active', 'blur');
setTimeout(() => {
dialogueOverlay.style.display = 'none';
formContainer.classList.remove('blur');
staticHeaderImg.classList.add('bright');
}, 4000);
}
}
function showDialogue() {
characterImg.src = dialogue.image;
characterImg.style.width = dialogue.imageWidth;
dialogueText.textContent = dialogue.text;
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<style>
@import url('https://fonts.googleapis.com/css2?
family=Poppins:wght@400;500;600;700&display=swap');
:root {
--border-color: #8B7E66;
--bg-color: #F5F0E6;
--card-bg: #E8E6E1;
--accent: #5C4033;
--button-bg: #8B7E66;
--button-hover: #6B5E4C;
*{
margin: 0;
padding: 0;
box-sizing: border-box;
body {
background-color: var(--bg-color);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
padding: 20px;
.container {
width: 100%;
max-width: 500px;
background-color: white;
border-radius: 12px;
position: relative;
.header-img {
width: 90%;
max-width: 450px;
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
z-index: 1;
pointer-events: none;
background: transparent;
opacity: 0;
.header-img.active {
opacity: 1;
.header-img.bright {
.header-img-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
z-index: 2000;
.header-img-overlay img {
width: 100%;
max-width: 800px;
.header {
background-color: var(--accent);
color: white;
text-align: center;
font-size: 20px;
font-weight: 600;
.form-container {
padding: 20px;
padding-top: 130px;
position: relative;
pointer-events: none;
opacity: 0.5;
.form-container.active {
pointer-events: auto;
opacity: 1;
.form-container.blur {
filter: blur(5px);
.form-group {
margin-bottom: 20px;
label {
display: block;
font-weight: 500;
margin-bottom: 5px;
color: #333;
input, select {
width: 100%;
padding: 12px;
border-radius: 8px;
font-size: 16px;
background-color: var(--bg-color);
input:focus, select:focus {
border-color: var(--accent);
outline: none;
.button-group {
display: flex;
gap: 10px;
margin-top: 10px;
.action-btn {
background-color: var(--button-bg);
color: white;
border: none;
border-radius: 6px;
font-size: 14px;
cursor: pointer;
.action-btn:hover {
background-color: var(--button-hover);
transform: scale(1.05);
.action-btn:active {
transform: scale(0.95);
.btn {
background-color: var(--button-bg);
color: white;
border: none;
width: 100%;
border-radius: 8px;
font-size: 16px;
font-weight: 500;
cursor: pointer;
.btn:hover {
background-color: var(--button-hover);
transform: scale(1.02);
}
.card-preview {
width: 100%;
margin-top: 30px;
margin-bottom: 20px;
background-color: var(--card-bg);
border-radius: 10px;
padding: 20px;
white-space: pre-wrap;
color: #333;
position: relative;
.card-preview::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
pointer-events: none;
.preview-title {
text-align: center;
margin-bottom: 10px;
font-weight: 600;
color: #333;
.next-btn {
position: absolute;
bottom: 5px;
left: 10px;
font-size: 12px;
color: #333;
text-decoration: underline;
cursor: pointer;
display: none;
.next-btn.show {
display: block;
.next-btn:hover {
color: var(--accent);
.status {
margin-top: 20px;
padding: 10px;
border-radius: 8px;
display: none;
opacity: 0;
.status.show {
display: block;
opacity: 1;
.success {
color: #155724;
.error {
color: #721c24;
select option:disabled {
color: #999;
background-color: #f0f0f0;
.dialogue-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: none;
z-index: 1000;
display: none;
align-items: flex-start;
justify-content: flex-start;
.dialogue-overlay.active {
display: flex;
.character-img {
height: auto;
position: absolute;
left: 20px;
top: 200px;
background: transparent;
pointer-events: none;
z-index: 1001;
max-width: 80vw;
width: 260px;
.dialogue-text {
position: absolute;
left: 20px;
top: 30px;
max-width: 60%;
width: fit-content;
font-size: 16px;
color: #fff;
background: #000;
border-radius: 10px;
padding: 20px;
z-index: 1002;
aria-live: "polite";
position: relative;
white-space: normal;
box-sizing: border-box;
.dialogue-text::after {
content: '';
position: absolute;
bottom: -20px;
left: 30px;
width: 0;
height: 0;
.dialogue-text.fade-out, .character-img.fade-out {
opacity: 0;
.submission-overlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 3000;
display: none;
flex-direction: column;
align-items: center;
justify-content: center;
.submission-img {
width: 80%;
max-width: 400px;
.submission-message {
border-radius: 8px;
padding: 15px;
max-width: 80%;
font-size: 14px;
margin-top: 20px;
text-align: center;
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
border: 0;
@keyframes glowFadeIn {
@keyframes fadeOutHeader {
from { opacity: 1; }
to { opacity: 0; }
@keyframes pulseBrightness {
to { filter: brightness(1.5); }
@keyframes slideInUp {
to { transform: translateY(0); }
@keyframes fadeScale {
@keyframes fadeInOut {
0% { opacity: 0; }
20% { opacity: 1; }
80% { opacity: 1; }
100% { opacity: 0; }
@keyframes glowBrighten {
to { filter: brightness(3); }
}
@keyframes brightenHeader {
0% { filter: brightness(1); }
.container {
max-width: 90%;
.header-img {
max-width: 400px;
.character-img {
max-width: 70vw;
.dialogue-text {
max-width: 80%;
font-size: 14px;
.submission-img {
max-width: 300px;
}
.submission-message {
font-size: 12px;
.next-btn {
font-size: 10px;
bottom: 3px;
left: 8px;
.header {
font-size: 18px;
.form-container {
padding: 15px;
padding-top: 120px;
input, select {
font-size: 14px;
.action-btn, .btn {
font-size: 14px;
}
</style>
</head>
<body>
<img src="https://i.postimg.cc/Vvdf3V16/Png-Item-
1257489.png" alt="Cabeçalho Attack on Titan">
</div>
</div>
<img class="submission-img"
src="https://i.postimg.cc/2SpkKGtk/Png-Item-6931360.png"
alt="Símbolo de Oferenda">
</div>
<div class="container">
<div class="form-group">
<div class="button-group">
</div>
</div>
<div class="form-group">
</select>
</div>
<div class="form-group">
<label for="classe">Classe:</label>
</select>
</div>
</div>
</div>
</div>
<script>
const dialogueOverlay =
document.getElementById('dialogueOverlay');
const characterImg =
document.getElementById('characterImg');
const formContainer =
document.getElementById('formContainer');
const headerImgOverlay =
document.getElementById('headerImgOverlay');
const staticHeaderImg =
document.getElementById('staticHeaderImg');
const submissionOverlay =
document.getElementById('submissionOverlay');
const simbolos = {
};
const fontes = [
];
const nicks = [
];
const dialogues = [
character: 'Levi',
image: 'https://i.postimg.cc/G2NwshwL/Png-Item-
1257615.png',
imageWidth: '260px',
imageHeight: 347,
},
character: 'Levi',
image: 'https://i.postimg.cc/G2NwshwL/Png-Item-
1257615.png',
imageWidth: '260px',
imageHeight: 347,
},
character: 'Levi',
image: 'https://i.postimg.cc/G2NwshwL/Png-Item-
1257615.png',
imageWidth: '260px',
imageHeight: 347,
},
character: 'Levi',
image: 'https://i.postimg.cc/G2NwshwL/Png-Item-
1257615.png',
imageWidth: '260px',
imageHeight: 347,
text: 'Se eu pegar você atrasando o processo, vai esfregar
os muros com uma escova de dentes. Avance rápido e mostre que
tem algum valor aqui.'
];
let dialogueIndex = 0;
let dialogueInterval;
if (localStorage.getItem(id)) {
document.getElementById(id).value =
localStorage.getItem(id);
});
setTimeout(() => {
setTimeout(() => {
headerImgOverlay.style.display = 'none';
staticHeaderImg.classList.add('active');
dialogueOverlay.classList.add('active');
showDialogue();
}, 6000);
}, 0);
function advanceDialogue() {
dialogueIndex++;
showDialogue();
} else {
clearInterval(dialogueInterval);
characterImg.classList.add('fade-out');
dialogueText.classList.add('fade-out');
formContainer.classList.add('active', 'blur');
setTimeout(() => {
dialogueOverlay.style.display = 'none';
formContainer.classList.remove('blur');
staticHeaderImg.classList.add('bright');
nextBtn.classList.add('show');
}, 4000);
function showDialogue() {
characterImg.src = dialogue.image;
characterImg.style.width = dialogue.imageWidth;
dialogueText.textContent = dialogue.text;
function atualizarPrevia() {
cardPreview.style.cssText = fontes[fontIndex].css;
const card =
`=+=========================+=\n\
=+=========================+=\n\
${separador}\n\
${separador}\n\
${separador}\n\
| \n\
+=+==========================+=+`;
cardPreview.textContent = card;
localStorage.setItem('nome', nome);
localStorage.setItem('afiliacao', afiliacao);
localStorage.setItem('classe', classe);
localStorage.setItem('fontIndex', fontIndex);
localStorage.setItem('nickIndex', nickIndex);
fontBtn.addEventListener('click', () => {
atualizarPrevia();
});
nickBtn.addEventListener('click', () => {
nomeInput.value = nicks[nickIndex];
atualizarPrevia();
});
input.addEventListener('input', atualizarPrevia);
input.addEventListener('change', atualizarPrevia);
});
classeSelect.addEventListener('change', () => {
atualizarPrevia();
}
});
nextBtn.addEventListener('click', () => {
});
enviarBtn.addEventListener('click', function() {
return;
const mensagem =
`═⟡═════════════════════════⟡═╗
═⟡═════════════════════════⟡═╝
║ 𝘕𝘰𝘮𝘦 : ${nomeFormatado.padEnd(30)}
${separador}
║ 𝘈𝘧𝘪𝘭𝘪𝘢çã𝘰 : ${afiliacaoFormatada.padEnd(30)}
${separador}
║ 𝘊𝘭𝘢𝘴𝘴𝘦 : ${classe.padEnd(30)}
${separador}
╚═⟡══════════════════════════⟡═╝`;
submissionOverlay.style.display = 'flex';
setTimeout(() => {
submissionOverlay.style.display = 'none';
window.open(whatsappLink, '_blank');
}, 10000);
});
atualizarPrevia();
</script>
</body>
</html>