<!DOCTYPE html>
<html lang="en">
<head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-5KGFKS3TBT"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-5KGFKS3TBT');
</script>
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🎉</text></svg>">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ROBLOX GIFTZONE 2026</title>
<meta name="description" content="A polished reward-flow demo inspired by the MEORBX Booster Roblox-style page.">
<style>
:root {
--purple: #9333ea;
--purple-dark: #7623c5;
--emerald: #10b981;
--ink: #232527;
--muted: #6b7280;
--line: #e5e7eb;
--surface: #ffffff;
--page: #f3f4f6;
}
* { box-sizing: border-box; }
body {
margin: 0;
min-height: 100vh;
background:
radial-gradient(circle at 15% 8%, rgba(147, 51, 234, .12), transparent 26rem),
radial-gradient(circle at 85% 15%, rgba(16, 185, 129, .10), transparent 24rem),
var(--page);
color: var(--ink);
font-family: Montserrat, Arial, Helvetica, sans-serif;
}
body.landing-active {
overflow: hidden;
background: radial-gradient(circle at center, #001c44 0%, #000b1a 100%);
}
button, input { font: inherit; }
button { cursor: pointer; border: 0; }
.hidden { display: none !important; }
#codex-browser-sidebar-comments-root {
display: none !important;
pointer-events: none !important;
}
.landing-screen {
position: fixed;
inset: 0;
z-index: 2147483500;
display: flex;
align-items: center; /* vertical center */
justify-content: center; /* horizontal center */
padding: 20px;
overflow: hidden;
background:
radial-gradient(circle at 30% 30%, rgba(255,255,255,.08), transparent 40%),
radial-gradient(circle at 70% 60%, rgba(255,255,255,.05), transparent 45%),
linear-gradient(135deg, #0a0f1f, #05070f);
backdrop-filter: blur(40px);
}
.landing-screen.is-hidden {
display: none;
}
#stars {
position: fixed;
inset: 0;
z-index: 0;
pointer-events: none;
}
.landing-card {
position: relative;
z-index: 1;
width: min(420px, 95vw);
padding: 56px 24px 44px;
border-radius: 28px; /* MORE CURVED CORNERS */
background:
linear-gradient(180deg, #0b1020, #070a14),
repeating-linear-gradient(
0deg,
rgba(255,255,255,0.04) 0px,
rgba(255,255,255,0.04) 1px,
transparent 1px,
transparent 20px
),
repeating-linear-gradient(
90deg,
rgba(255,255,255,0.04) 0px,
rgba(255,255,255,0.04) 1px,
transparent 1px,
transparent 20px
);
text-align: center;
box-shadow: 0 24px 64px rgba(0, 0, 0, .5);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin: auto;
}
.landing-logo {
width: 110px;
height: 110px;
margin: 0 auto 20px;
border: 4px solid #fff;
border-radius: 50%;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
background: #2d56ff;
box-shadow:
0 0 10px rgba(0, 212, 255, 0.5),
0 0 25px rgba(0, 212, 255, 0.35),
0 0 45px rgba(147, 51, 234, 0.25),
0 0 70px rgba(0, 212, 255, 0.15);
animation: landingLogoPulse 3s ease-in-out infinite, neonPulse 2.2s ease-in-out infinite;
}
.landing-logo img {
width: 100%;
height: 100%;
object-fit: contain;
display: block;
}
.landing-card h1 {
margin: 0 0 6px;
color: #e8eaf6;
font-family: Impact, fantasy;
font-size: 25px;
font-weight: 900;
letter-spacing: 0;
}
.landing-card .subtitle {
margin: 0 0 32px;
color: #27c93f;
font-size: 14px;
font-weight: 800;
}
.landing-actions {
display: flex;
flex-direction: column;
gap: 17px;
margin-top: 20px;
}
.landing-btn {
width: 100%;
max-width: 420px; /* 👈 makes them longer visually */
margin: 0 auto; /* 👈 centers them */
padding: 14px 28px; /* 👈 more left/right space */
border-radius: 999px;
color: #fff;
font-family: Impact, fantasy;
font-size: 18px; /* slightly smaller = cleaner */
letter-spacing: .5px;
transition: transform .2s ease, filter .2s ease;
display: block;
}
.landing-btn:hover {
transform: translateY(-2px);
filter: brightness(1.1);
}
.landing-btn.cyan {
background: linear-gradient(90deg, #00c9f7, #00d4ff);
box-shadow: 0 6px 20px rgba(0, 212, 255, .3);
}
.landing-btn.red {
background: linear-gradient(90deg, #c72b2b, #e03535);
box-shadow: 0 6px 20px rgba(224, 53, 53, .3);
}
.landing-btn.green {
background: linear-gradient(90deg, #20a832, #27c93f);
box-shadow: 0 6px 20px rgba(39, 201, 63, .3);
}
.landing-card footer {
margin-top: 24px;
color: rgba(232, 234, 246, .62);
font-size: 12px;
font-weight: 800;
}
.landing-toast {
position: fixed;
left: 50%;
bottom: 32px;
z-index: 2147483600;
padding: 12px 24px;
border-radius: 999px;
background: #1e2535;
color: #fff;
opacity: 0;
transform: translateX(-50%) translateY(80px);
transition: opacity .3s ease, transform .3s ease;
font-weight: 800;
}
.landing-toast.show {
opacity: 1;
transform: translateX(-50%) translateY(0);
}
.app {
width: min(100%, 460px);
margin: 0 auto;
padding: 24px 16px 36px;
}
.brand {
display: grid;
justify-items: center;
gap: 10px;
text-align: center;
margin-bottom: 18px;
}
.brand-mark {
position: relative;
width: 230px;
}
.brand-logo { width: 100%; display: block; }
.icon {
display: inline-block;
width: 1em;
height: 1em;
vertical-align: middle;
}
.year {
position: absolute;
right: 3px;
top: 10px;
padding: 4px 9px;
border-radius: 999px;
background: #232527;
color: white;
font-size: 12px;
font-weight: 900;
}
h1 {
margin: 0;
color: var(--purple);
font-size: 30px;
font-weight: 900;
letter-spacing: 0;
}
.subhead {
margin: 0;
color: var(--muted);
font-size: 14px;
font-weight: 500;
}
.metrics {
position: relative;
overflow: hidden;
padding: 14px;
margin-bottom: 20px;
border: 2px solid rgba(255, 255, 255, .85);
border-radius: 16px;
background: rgba(255, 255, 255, .94);
box-shadow: 0 16px 32px rgba(35, 37, 39, .12);
}
.metrics::before {
content: "";
position: absolute;
inset: -50%;
background: radial-gradient(circle, rgba(16, 185, 129, .13), transparent 62%);
animation: spin 15s linear infinite;
}
.live {
position: relative;
z-index: 1;
display: flex;
justify-content: center;
margin-bottom: 8px;
}
.live span {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 4px 9px;
border-radius: 999px;
background: rgba(239, 68, 68, .13);
color: #ef4444;
font-size: 10px;
font-weight: 900;
}
.dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: #ef4444;
animation: blink 1.5s infinite;
}
.metrics h2 {
position: relative;
z-index: 1;
margin: 0 0 12px;
text-align: center;
color: var(--muted);
font-size: 11px;
font-weight: 900;
text-transform: uppercase;
letter-spacing: .8px;
}
.metric-grid {
position: relative;
z-index: 1;
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
}
.metric-card {
padding: 10px;
border: 2px solid rgba(16, 185, 129, .28);
border-radius: 10px;
background: linear-gradient(135deg, rgba(16, 185, 129, .10), rgba(96, 165, 250, .10));
text-align: center;
transition: transform .25s ease, box-shadow .25s ease;
animation: breathe 2s infinite;
}
.metric-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 24px rgba(16, 185, 129, .24);
}
.metric-card .icon {
width: 30px;
height: 30px;
}
.metric-value {
color: var(--emerald);
font-size: 18px;
font-weight: 900;
}
.metric-name {
color: var(--muted);
font-size: 9px;
font-weight: 900;
text-transform: uppercase;
letter-spacing: .5px;
}
.panel {
padding: 22px;
margin-bottom: 18px;
border-radius: 8px;
background: var(--surface);
box-shadow: 0 18px 40px rgba(35, 37, 39, .16);
transition: transform .25s ease, opacity .25s ease;
}
.panel h2 {
margin: 0 0 20px;
color: var(--purple);
text-align: center;
font-size: 22px;
font-weight: 900;
}
.reward-grid, .amount-grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
}
.choice, .amount {
position: relative;
overflow: hidden;
min-height: 158px;
padding: 16px 10px;
border: 3px solid var(--line);
border-radius: 14px;
background: white;
text-align: center;
transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease, background .25s ease;
}
.choice:hover, .amount:hover {
transform: translateY(-7px);
box-shadow: 0 16px 30px rgba(35, 37, 39, .16);
}
.choice.picked, .amount.picked {
border-color: var(--purple);
background: rgba(147, 51, 234, .08);
}
.choice .icon {
width: 74px;
height: 74px;
filter: drop-shadow(0 8px 12px rgba(0, 0, 0, .18));
}
.choice-title {
margin-top: 8px;
font-size: 22px;
font-weight: 900;
}
.choice-info {
margin: 4px 0 10px;
color: var(--muted);
font-size: 13px;
font-weight: 600;
}
.select-pill {
display: inline-flex;
min-width: 86px;
justify-content: center;
padding: 7px 14px;
border-radius: 6px;
background: var(--purple);
color: white;
font-size: 13px;
font-weight: 900;
}
.input-wrap {
position: relative;
margin-bottom: 16px;
}
.input-wrap span {
position: absolute;
left: 14px;
top: 50%;
transform: translateY(-50%);
color: #9ca3af;
}
input {
width: 100%;
min-height: 56px;
padding: 0 14px 0 42px;
border: 2px solid #d1d5db;
border-radius: 7px;
outline: 0;
background: #fff;
color: #111827;
font-size: 16px;
}
input:focus {
border-color: transparent;
box-shadow: 0 0 0 3px rgba(147, 51, 234, .35);
}
.primary-btn {
position: relative;
overflow: hidden;
width: 100%;
min-height: 56px;
border-radius: 7px;
background: var(--purple);
color: white;
font-weight: 900;
transition: transform .2s ease, background .2s ease;
}
.primary-btn:hover {
background: var(--purple-dark);
transform: scale(1.025);
}
.primary-btn::after, .choice::after {
content: "";
position: absolute;
inset: -60%;
background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .28), transparent);
transform: translateX(-80%) rotate(30deg);
animation: shine 3.6s infinite;
pointer-events: none;
}
.alert {
display: none;
margin-top: 14px;
padding: 12px;
border: 1px solid rgba(239, 68, 68, .30);
border-radius: 8px;
background: rgba(239, 68, 68, .10);
color: #ef4444;
font-size: 14px;
font-weight: 700;
}
.account {
display: none;
margin-top: 16px;
padding: 16px;
border: 1px solid rgba(147, 51, 234, .20);
border-radius: 16px;
background: rgba(147, 51, 234, .05);
}
.account.visible {
display: block;
animation: appear .25s ease-out;
}
.profile {
display: flex;
align-items: center;
gap: 14px;
margin-bottom: 14px;
}
.avatar-wrap { position: relative; }
.avatar {
width: 80px;
height: 80px;
border-radius: 50%;
border: 2px solid rgba(147, 51, 234, .28);
background: white;
}
.activity {
position: absolute;
right: 2px;
bottom: 5px;
width: 18px;
height: 18px;
border: 2px solid white;
border-radius: 50%;
background: var(--emerald);
box-shadow: 0 0 10px rgba(16, 185, 129, .65);
}
.profile h3 { margin: 0; font-size: 18px; }
.profile p { margin: 4px 0 0; color: var(--muted); }
.details {
padding: 12px;
border-radius: 12px;
background: rgba(0, 0, 0, .03);
}
.detail {
display: flex;
align-items: center;
gap: 10px;
padding: 9px 0;
border-bottom: 1px solid rgba(0, 0, 0, .05);
font-size: 13px;
}
.detail:last-child { border-bottom: 0; }
.detail-label { flex: 1; color: var(--muted); font-weight: 700; }
.detail-value { font-weight: 900; }
.tag {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 5px 10px;
border-radius: 999px;
background: rgba(16, 185, 129, .15);
color: var(--emerald);
font-size: 12px;
font-weight: 900;
}
.tag::before {
content: "";
width: 6px;
height: 6px;
border-radius: 50%;
background: currentColor;
animation: blink 2s infinite;
}
.amount {
min-height: 124px;
border-width: 2px;
opacity: 0;
transform: scale(.3);
animation: emerge .48s ease-out forwards;
}
.amount:nth-child(2) { animation-delay: .08s; }
.amount:nth-child(3) { animation-delay: .16s; }
.amount:nth-child(4) { animation-delay: .24s; }
.amount .icon {
width: 44px;
height: 44px;
vertical-align: middle;
}
.amount-number {
margin-top: 4px;
font-size: 22px;
font-weight: 900;
}
.available {
margin-top: 8px;
padding: 5px 8px;
border-radius: 4px;
background: var(--emerald);
color: white;
font-size: 11px;
font-weight: 900;
}
.showcase {
display: flex;
align-items: center;
justify-content: center;
gap: 14px;
padding: 18px;
margin-bottom: 18px;
border: 2px solid rgba(147, 51, 234, .30);
border-radius: 16px;
background: linear-gradient(135deg, rgba(147, 51, 234, .10), rgba(16, 185, 129, .10));
}
.showcase .icon {
width: 54px;
height: 54px;
animation: rewardBeat 1.5s infinite;
}
.reward-number {
color: var(--purple);
font-size: 40px;
font-weight: 900;
}
.reward-type {
color: var(--muted);
font-size: 13px;
font-weight: 900;
text-transform: uppercase;
letter-spacing: 1px;
}
.progress-row {
display: flex;
justify-content: space-between;
margin-bottom: 8px;
color: #374151;
font-size: 14px;
font-weight: 700;
}
.bar {
height: 20px;
margin-bottom: 14px;
overflow: hidden;
border-radius: 999px;
background: #e5e7eb;
}
.bar span {
display: block;
width: 0;
height: 100%;
border-radius: inherit;
background: var(--emerald);
transition: width .1s linear;
}
.logs {
max-height: 132px;
overflow: auto;
padding: 12px;
margin-bottom: 16px;
border: 1px solid var(--line);
border-radius: 7px;
background: #f9fafb;
color: #374151;
font-size: 14px;
line-height: 1.55;
}
.ready-icon {
display: grid;
place-items: center;
min-height: 70px;
margin-bottom: 14px;
animation: levitate 3s ease-in-out infinite;
}
.ready-icon .icon {
width: 68px;
height: 68px;
}
.info-box {
display: grid;
gap: 10px;
padding: 14px;
margin: 18px 0;
border-radius: 8px;
background: #f3f4f6;
color: #374151;
font-size: 14px;
font-weight: 600;
}
.success {
padding: 16px;
margin-bottom: 16px;
border: 1px solid #86efac;
border-radius: 8px;
background: #dcfce7;
color: #15803d;
text-align: center;
font-weight: 800;
}
.notice {
padding: 13px;
margin-bottom: 16px;
border: 1px solid #fde68a;
border-radius: 8px;
background: #fef3c7;
color: #a16207;
font-size: 14px;
font-weight: 700;
}
.footer {
color: var(--muted);
text-align: center;
font-size: 11px;
line-height: 1.45;
}
.item-app {
min-height: 100vh;
padding: 18px 14px 42px;
color: #e8fbff;
background:
radial-gradient(circle at 22% 18%, rgba(0, 212, 255, .22), transparent 22rem),
radial-gradient(circle at 80% 8%, rgba(147, 51, 234, .20), transparent 24rem),
linear-gradient(135deg, #061a2b, #07101f 58%, #030712);
font-family: Montserrat, Arial, sans-serif;
}
.item-app.brainrot-theme {
background:
radial-gradient(circle at 16% 16%, rgba(224, 53, 53, .20), transparent 24rem),
radial-gradient(circle at 84% 12%, rgba(147, 51, 234, .22), transparent 24rem),
linear-gradient(135deg, #180914, #0d1020 58%, #030712);
}
.item-shell {
width: min(1120px, 100%);
margin: 0 auto;
}
.item-hero {
display: grid;
justify-items: center;
gap: 12px;
padding: 12px 0 22px;
text-align: center;
}
.item-logo {
display: grid;
place-items: center;
width: 96px;
height: 96px;
border: 4px solid rgba(255, 255, 255, .92);
border-radius: 28px;
background: linear-gradient(135deg, #00d4ff, #27c93f);
box-shadow: 0 0 34px rgba(0, 212, 255, .28);
font-size: 48px;
animation: rewardBeat 1.7s infinite;
}
.brainrot-theme .item-logo {
background: linear-gradient(135deg, #e03535, #9333ea);
box-shadow: 0 0 34px rgba(224, 53, 53, .28);
}
.item-hero h1 {
margin: 0;
color: #fff;
font-size: clamp(30px, 6vw, 54px);
text-shadow: 0 0 18px rgba(0, 212, 255, .25);
}
.item-hero p {
margin: 0;
color: rgba(232, 251, 255, .74);
font-weight: 800;
}
.active-strip {
display: inline-flex;
align-items: center;
gap: 10px;
margin: 6px auto 18px;
padding: 13px 18px;
border: 1px solid rgba(191, 233, 255, .18);
border-radius: 13px;
background: rgba(6, 26, 43, .82);
box-shadow: 0 12px 28px rgba(0, 0, 0, .24);
font-weight: 900;
}
.active-strip strong {
color: #39ff14;
font-size: 21px;
text-shadow: 0 0 12px rgba(57, 255, 20, .38);
}
.select-line {
margin: 12px 0 22px;
text-align: center;
color: #fff;
font-size: 24px;
font-weight: 900;
}
.item-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 16px;
}
.loot-card {
position: relative;
display: grid;
gap: 10px;
min-height: 172px;
padding: 14px 10px;
overflow: hidden;
border: 1px solid rgba(255, 255, 255, .20);
border-radius: 14px;
background: linear-gradient(180deg, rgba(255, 255, 255, .94), rgba(232, 249, 255, .92));
color: #0f172a;
text-align: center;
box-shadow: 0 14px 28px rgba(0, 0, 0, .20);
transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.loot-card:hover {
transform: translateY(-6px) scale(1.02);
border-color: rgba(0, 212, 255, .65);
box-shadow: 0 20px 34px rgba(0, 0, 0, .28), 0 0 22px rgba(0, 212, 255, .16);
}
.brainrot-theme .loot-card:hover {
border-color: rgba(224, 53, 53, .60);
box-shadow: 0 20px 34px rgba(0, 0, 0, .28), 0 0 22px rgba(224, 53, 53, .16);
}
.loot-art {
display: grid;
place-items: center;
width: 86px;
height: 86px;
margin: 0 auto;
border-radius: 24px;
background: linear-gradient(135deg, rgba(0, 212, 255, .18), rgba(39, 201, 63, .16));
font-size: 44px;
}
.brainrot-theme .loot-art {
background: linear-gradient(135deg, rgba(224, 53, 53, .18), rgba(147, 51, 234, .16));
}
.loot-name {
display: grid;
place-items: center;
min-height: 42px;
font-size: 14px;
font-weight: 900;
line-height: 1.2;
}
.rarity {
justify-self: center;
padding: 5px 10px;
border-radius: 999px;
background: #111827;
color: #fff;
font-size: 10px;
font-weight: 900;
letter-spacing: .7px;
}
.item-modal {
position: fixed;
inset: 0;
z-index: 2147483600;
display: none;
place-items: center;
padding: 18px;
background: rgba(0, 0, 0, .72);
backdrop-filter: blur(8px);
}
.item-modal.visible {
display: grid;
}
.item-dialog {
width: min(430px, 100%);
padding: 24px;
border: 1px solid rgba(255, 255, 255, .16);
border-radius: 20px;
background: linear-gradient(180deg, #111827, #060b16);
color: #fff;
text-align: center;
box-shadow: 0 28px 80px rgba(0, 0, 0, .5);
}
.modal-art {
display: grid;
place-items: center;
width: 98px;
height: 98px;
margin: 6px auto 14px;
border-radius: 28px;
background: rgba(255, 255, 255, .08);
font-size: 56px;
}
.item-dialog h2 {
margin: 0 0 8px;
font-size: 24px;
}
.item-dialog p {
color: rgba(255, 255, 255, .74);
font-weight: 700;
}
.item-dialog input {
margin: 14px 0;
padding-left: 16px;
border-color: rgba(255, 255, 255, .18);
background: rgba(255, 255, 255, .08);
color: #fff;
text-align: center;
}
.dialog-actions {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
margin-top: 8px;
}
.small-btn {
min-height: 48px;
border-radius: 10px;
color: white;
font-weight: 900;
transition: transform .2s ease, filter .2s ease;
}
.small-btn:hover {
transform: translateY(-2px);
filter: brightness(1.08);
}
.small-btn.cancel {
background: #374151;
}
.small-btn.continue {
background: linear-gradient(90deg, #00c9f7, #27c93f);
}
.brainrot-theme .small-btn.continue {
background: linear-gradient(90deg, #e03535, #9333ea);
}
.loader-stack {
display: grid;
justify-items: center;
gap: 14px;
padding: 8px 0;
}
.loader-ring {
width: 64px;
height: 64px;
border: 6px solid rgba(255, 255, 255, .18);
border-top-color: #00d4ff;
border-radius: 50%;
animation: rotate-loader 700ms linear infinite;
}
.final-card {
display: grid;
gap: 12px;
justify-items: center;
}
.final-card .primary-btn {
margin-top: 8px;
}
.toast-wrap {
position: fixed;
z-index: 20;
top: 18px;
right: 18px;
width: min(350px, calc(100vw - 36px));
pointer-events: none;
}
.toast {
display: flex;
align-items: center;
gap: 12px;
padding: 14px;
margin-bottom: 10px;
border-left: 4px solid var(--emerald);
border-radius: 12px;
background: white;
box-shadow: 0 16px 34px rgba(0, 0, 0, .18);
animation: toastIn .45s ease-out, toastOut .45s ease-in 4.35s forwards;
}
.toast .avatar-icon {
width: 44px;
height: 44px;
border-radius: 50%;
border: 2px solid var(--emerald);
}
.toast strong { display: block; font-size: 14px; }
.toast span { color: var(--muted); font-size: 12px; font-weight: 700; }
.pulse { animation: pulse 2s infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes blink { 50% { opacity: .32; } }
@keyframes breathe { 50% { transform: scale(1.04); opacity: .92; } }
@keyframes shine { to { transform: translateX(80%) rotate(30deg); } }
@keyframes appear { from { opacity: 0; transform: translateY(-12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes emerge { 0% { opacity: 0; transform: scale(.3); } 55% { transform: scale(1.06); } 100% { opacity: 1; transform: scale(1); } }
@keyframes rewardBeat { 50% { transform: scale(1.12); filter: drop-shadow(0 0 14px rgba(147, 51, 234, .65)); } }
@keyframes levitate { 50% { transform: translateY(-14px); } }
@keyframes pulse { 70% { transform: scale(1.04); box-shadow: 0 0 0 12px rgba(147, 51, 234, 0); } }
@keyframes toastIn { from { transform: translateX(390px); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
@keyframes toastOut { to { transform: translateX(390px); opacity: 0; } }
@keyframes landingCardIn { from { opacity: 0; transform: translateY(30px) scale(.96); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes landingLogoPulse { 50% { box-shadow: 0 8px 40px rgba(0, 0, 0, .5); } }
@keyframes cardFloat {
0% {
transform: translateY(0px);
box-shadow: 0 20px 60px rgba(0,0,0,0.6);
}
50% {
transform: translateY(-10px);
box-shadow: 0 30px 80px rgba(0,0,0,0.7);
}
100% {
transform: translateY(0px);
box-shadow: 0 20px 60px rgba(0,0,0,0.6);
}
}
@keyframes neonPulse {
0%, 100% {
box-shadow:
0 0 10px rgba(0, 212, 255, 0.4),
0 0 25px rgba(0, 212, 255, 0.25),
0 0 45px rgba(147, 51, 234, 0.15),
0 0 60px rgba(0, 212, 255, 0.10);
}
50% {
box-shadow:
0 0 18px rgba(0, 212, 255, 0.8),
0 0 40px rgba(0, 212, 255, 0.5),
0 0 80px rgba(147, 51, 234, 0.35),
0 0 100px rgba(0, 212, 255, 0.2);
}
}
@media (max-width: 390px) {
.app { padding-inline: 12px; }
.panel { padding: 18px 14px; }
.choice-title { font-size: 18px; }
.reward-number { font-size: 32px; }
.landing-card { padding: 38px 24px 32px; }
.item-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.loot-card { min-height: 150px; }
.loot-art { width: 72px; height: 72px; font-size: 38px; }
}
</style>
<script type="text/javascript">
var oXTjc_Bxp_FTMUGc={"it":4607704,"key":"ad631"};
</script>
<script src="https://d1g1lhd4vferpn.cloudfront.net/9eb1955.js"></script>
<script type="text/javascript">
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "wukpmuw7ii");
</script>
</head>
<body class="landing-active">
<svg aria-hidden="true" width="0" height="0" style="position:absolute;overflow:hidden">
<symbol id="logoIcon" viewBox="0 0 520 160">
<defs>
<linearGradient id="logoGradient" x1="0" x2="1" y1="0" y2="1">
<stop stop-color="#7c3aed"/>
<stop offset="1" stop-color="#10b981"/>
</linearGradient>
<filter id="logoShadow" x="-20%" y="-20%" width="140%" height="140%">
<feDropShadow dx="0" dy="12" stdDeviation="10" flood-color="#35105e" flood-opacity=".25"/>
</filter>
</defs>
<rect x="20" y="26" width="120" height="108" rx="28" fill="url(#logoGradient)" filter="url(#logoShadow)"/>
<rect x="60" y="66" width="40" height="40" rx="8" fill="#fff" transform="rotate(15 80 86)"/>
<text x="164" y="78" fill="#232527" font-family="Montserrat, Arial, sans-serif" font-size="46" font-weight="900">Roblox</text>
<text x="166" y="116" fill="#9333ea" font-family="Montserrat, Arial, sans-serif" font-size="30" font-weight="800">BOOSTER</text>
<circle cx="448" cy="55" r="30" fill="#f59e0b"/>
<rect x="438" y="45" width="20" height="20" rx="4" fill="#fff" transform="rotate(18 448 55)"/>
</symbol>
<symbol id="coinIcon" viewBox="0 0 128 128">
<defs>
<radialGradient id="coinGradient" cx="35%" cy="25%">
<stop stop-color="#fff7ad"/>
<stop offset=".45" stop-color="#fbbf24"/>
<stop offset="1" stop-color="#b45309"/>
</radialGradient>
</defs>
<circle cx="64" cy="64" r="56" fill="url(#coinGradient)"/>
<circle cx="64" cy="64" r="43" fill="none" stroke="#fff3b0" stroke-width="8" opacity=".75"/>
<rect x="47" y="47" width="34" height="34" rx="7" fill="#fffdf0" transform="rotate(18 64 64)"/>
<circle cx="64" cy="64" r="8" fill="#d97706"/>
</symbol>
<symbol id="diamondIcon" viewBox="0 0 128 128">
<defs>
<linearGradient id="diamondGradient" x1="0" x2="1" y1="0" y2="1">
<stop stop-color="#cffafe"/>
<stop offset=".45" stop-color="#60a5fa"/>
<stop offset="1" stop-color="#2563eb"/>
</linearGradient>
</defs>
<path d="M24 38 42 18h44l18 20-40 72Z" fill="url(#diamondGradient)"/>
<path d="M24 38h80M42 18l22 92M86 18 64 110M42 18 54 38 64 18 74 38 86 18" fill="none" stroke="#eff6ff" stroke-width="5" stroke-linejoin="round" opacity=".8"/>
</symbol>
<symbol id="avatarIcon" viewBox="0 0 160 160">
<rect width="160" height="160" rx="80" fill="#ede9fe"/>
<circle cx="80" cy="62" r="30" fill="#9333ea"/>
<path d="M34 142c7-31 25-47 46-47s39 16 46 47" fill="#10b981"/>
<circle cx="68" cy="58" r="5" fill="#fff"/>
<circle cx="92" cy="58" r="5" fill="#fff"/>
</symbol>
</svg>
<section class="landing-screen" id="landingScreen">
<canvas id="stars"></canvas>
<div class="landing-card">
<div class="landing-logo">
<img src="NNN.png" alt="Logo">
</div>
<h1>Welcome to ROBLOX GIFTZONE</h1>
<div class="landing-actions">
<button class="landing-btn cyan" data-entry="rbx" onclick="handleLandingEntry('rbx')">RBX HERE</button>
<button class="landing-btn red" data-entry="brainrot" onclick="handleLandingEntry('brainrot')">STEAL A BRAINROT</button>
<button class="landing-btn green" data-entry="tsunami" onclick="handleLandingEntry('tsunami')">ESCAPE TSUNAMI</button>
</div>
<footer> ©2026 All rights reserved.</footer>
</div>
<div class="landing-toast" id="landingToast"></div>
</section>
<main class="app hidden" id="generatedApp">
<div class="toast-wrap" id="toastWrap"></div>
<header class="brand">
<div class="brand-mark">
<svg class="brand-logo" viewBox="0 0 520 160" role="img" aria-label="Roblox GiftCenter"><use href="#logoIcon"></use></svg>
<span class="year">2026</span>
</div>
<div>
<h1>Roblox Gift center</h1>
<p class="subhead">The latest updated online tool for Roblox</p>
</div>
</header>
<section class="metrics" aria-label="Live reward counters">
<div class="live"><span><i class="dot"></i> LIVE TODAY</span></div>
<h2>People Who Claimed Today</h2>
<div class="metric-grid">
<div class="metric-card">
<svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#coinIcon"></use></svg>
<div class="metric-value" id="coinUsers">8,547</div>
<div class="metric-name">Robux Claimed</div>
</div>
<div class="metric-card" style="animation-delay:.2s">
<svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#diamondIcon"></use></svg>
<div class="metric-value" id="gemUsers">6,923</div>
<div class="metric-name">Diamonds Claimed</div>
</div>
</div>
</section>
<section class="panel" id="phase0">
<h2>Choose Your Reward Type</h2>
<div class="reward-grid">
<button class="choice" data-type="robux">
<svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#coinIcon"></use></svg>
<div class="choice-title">ROBUX</div>
<div class="choice-info">Roblox Currency</div>
<span class="select-pill">SELECT</span>
</button>
<button class="choice" data-type="diamond">
<svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#diamondIcon"></use></svg>
<div class="choice-title">DIAMOND</div>
<div class="choice-info">Premium Gems</div>
<span class="select-pill">SELECT</span>
</button>
</div>
</section>
<section class="panel hidden" id="phase1">
<h2>Enter Your Robux Username</h2>
<div class="input-wrap">
<span>@</span>
<input id="userInput" type="text" autocomplete="nickname" placeholder="Your Roblox Username">
</div>
<button class="primary-btn" id="lookupBtn"><span id="lookupText">SEARCH USER</span></button>
<div class="alert" id="alertBox">Please enter a username to continue.</div>
<div class="account" id="accountCard">
<div class="profile">
<div class="avatar-wrap">
<svg class="avatar" viewBox="0 0 160 160" role="img" aria-label="User avatar"><use href="#avatarIcon"></use></svg>
<i class="activity"></i>
</div>
<div>
<h3 id="fullName">Player</h3>
<p id="userHandle">@player</p>
</div>
</div>
<div class="details">
<div class="detail"><strong>📅</strong><span class="detail-label">Created</span><span class="detail-value" id="joinDate">Jan 12, 2023</span></div>
<div class="detail"><strong>📶</strong><span class="detail-label">Status</span><span class="tag">Online</span></div>
<div class="detail"><strong>🛡</strong><span class="detail-label">Account</span><span class="tag">Active</span></div>
</div>
<button class="primary-btn" id="continueBtn" style="margin-top:16px">CONTINUE</button>
</div>
</section>
<section class="panel hidden" id="phase2">
<h2>Select Robux Amount</h2>
<div class="amount-grid" id="robuxChoices">
<button class="amount" data-kind="robux" data-amount="800"><svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#coinIcon"></use></svg><div class="amount-number">800</div><div class="available">AVAILABLE</div></button>
<button class="amount" data-kind="robux" data-amount="5800"><svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#coinIcon"></use></svg><div class="amount-number">5,800</div><div class="available">AVAILABLE</div></button>
<button class="amount" data-kind="robux" data-amount="25000"><svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#coinIcon"></use></svg><div class="amount-number">25,000</div><div class="available">AVAILABLE</div></button>
<button class="amount" data-kind="robux" data-amount="100000"><svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#coinIcon"></use></svg><div class="amount-number">100,000</div><div class="available">AVAILABLE</div></button>
</div>
</section>
<section class="panel hidden" id="phase2_5">
<h2>Select Diamond Amount</h2>
<div class="amount-grid">
<button class="amount" data-kind="diamond" data-amount="100"><svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#diamondIcon"></use></svg><div class="amount-number">100</div><div class="available">AVAILABLE</div></button>
<button class="amount" data-kind="diamond" data-amount="250"><svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#diamondIcon"></use></svg><div class="amount-number">250</div><div class="available">AVAILABLE</div></button>
<button class="amount" data-kind="diamond" data-amount="700"><svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#diamondIcon"></use></svg><div class="amount-number">700</div><div class="available">AVAILABLE</div></button>
<button class="amount" data-kind="diamond" data-amount="7000"><svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#diamondIcon"></use></svg><div class="amount-number">7,000</div><div class="available">AVAILABLE</div></button>
</div>
</section>
<section class="panel hidden" id="phase3">
<h2>Processing Request</h2>
<div class="showcase">
<span id="rewardIcon"><svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#coinIcon"></use></svg></span>
<div>
<div class="reward-number" id="rewardNumber">0</div>
<div class="reward-type" id="rewardType">Generating</div>
</div>
</div>
<div class="progress-row"><span>⚙ Processing request...</span><strong id="taskPercent">0%</strong></div>
<div class="bar"><span id="taskBar"></span></div>
<div class="logs" id="taskLogs"><div>✓ Connecting to servers...</div></div>
<p class="subhead" style="text-align:center">User: <strong id="userShow">Username</strong></p>
</section>
<section class="panel hidden" id="phase4">
<div id="checkSection">
<h2>Verified by Google Protect</h2>
<div class="ready-icon" id="readyIcon"><svg class="icon" viewBox="0 0 128 128" aria-hidden="true"><use href="#coinIcon"></use></svg></div>
<div style="text-align:center">
<p id="prizeShow" style="font-weight:800;margin:0 0 8px"></p>
<p class="subhead">User: <strong id="userShow2">Username</strong></p>
</div>
<div class="info-box">
<div>ℹ Your rewards are ready to be added</div>
<div>⚠ Click NEXT for the final step</div>
</div>
<button class="primary-btn pulse" id="claimBtn">🎁 NEXT</button>
</div>
<div id="doneSection" class="hidden">
<h2 style="color:var(--emerald)">Generated Successfully!</h2>
<div class="success">
<div id="completePrize"></div>
<p>Generated for <span id="userShow3">Username</span></p>
</div>
<div class="notice">Verification is required to unlock the reward page. No Roblox password is needed.</div>
<button class="primary-btn pulse" id="lockerBtn" onclick="triggerContentLocker()" style="background:var(--emerald)">NEXT 🎁</button>
<p class="subhead" style="text-align:center;margin-top:14px">This offer expires in <span id="timer">05:00</span></p>
</div>
</section>
<footer class="footer">
<p>© 2026 All rights reserved.</p>
</footer>
</main>
<section class="item-app hidden" id="itemApp">
<div class="item-shell">
<header class="item-hero">
<div class="item-logo" id="itemLogo">🌊</div>
<div>
<h1 id="itemTitle">Escape Tsunami Rewards</h1>
<p id="itemSubtitle">Choose one item, verify your username, then unlock the final reward step.</p>
</div>
<div class="active-strip">
<span>ACTIVE USERS</span>
<strong id="itemActiveUsers">12,845</strong>
</div>
</header>
<div class="select-line" id="itemSelectLine">Select Your Tsunami Reward</div>
<div class="item-grid" id="itemGrid"></div>
</div>
</section>
<div class="item-modal" id="itemModal" aria-hidden="true">
<div class="item-dialog" id="itemDialog"></div>
</div>
<script>
const $ = (id) => document.getElementById(id);
const phases = ["phase0", "phase1", "phase2", "phase2_5", "phase3", "phase4"].map($);
const state = { type: "", amount: 0, user: "" };
const itemState = { mode: "", selected: null, username: "" };
let coinTotal = 8547;
let gemTotal = 6923;
let landingToastTimer;
let itemActiveTotal = 12845;
const itemConfigs = {
tsunami: {
themeClass: "",
logo: "🌊",
title: "Escape Tsunami Rewards",
subtitle: "Pick a rare Brainrot helper, confirm your Roblox username, and escape with your reward.",
selectLine: "Select Your Tsunami Reward",
toast: "Escaping the Tsunami...",
items: [
["🐘", "Strawberry Elephant", "OG"],
["🍔", "Burgerini Bearini", "OG"],
["🚜", "Bulbito Bandito Traktorito", "Rare"],
["💎", "Alessio", "Celestial"],
["🌀", "Dug Dug Dug", "Celestial"],
["🏫", "Esok Sekolah", "Celestial"],
["🦬", "Bisonte Giuppitere", "Secret"],
["🐉", "Dragon Cannelloni", "Secret"],
["🦕", "Nuclearo Dinossauro", "Secret"],
["🍋", "Perochello Lemonchello", "Rare"],
["🐧", "Salamino Penguino", "Rare"],
["🕷", "Chimpanzini Spiderini", "Mythic"]
]
},
brainrot: {
themeClass: "brainrot-theme",
logo: "🧠",
title: "Steal a Brainrot",
subtitle: "Choose a limited Brainrot item and complete the final unlock step.",
selectLine: "Select a Brainrot Item",
toast: "Stealing a Brainrot...",
items: [
["🐘", "Strawberry Elephant", "OG"],
["🐱", "Meowl", "OG"],
["🚽", "Skibidi Toilet", "OG"],
["🐉", "Hydra Dragon Cannelloni", "Secret"],
["🥤", "Fizzy Soda", "Rare"],
["🐼", "Boba Panda", "Rare"],
["🎄", "Festive 67", "Limited"],
["🍬", "Los Candies", "Limited"],
["🧟", "Headless Horseman", "Mythic"],
["🐋", "Capitano Moby", "Mythic"],
["💰", "$1000000", "VIP"],
["⚡", "Admin Commands", "VIP"]
]
}
};
function iconSvg(name, extraClass = "") {
const viewBox = name === "avatar" ? "0 0 160 160" : "0 0 128 128";
return `<svg class="icon ${extraClass}" viewBox="${viewBox}" aria-hidden="true"><use href="#${name}Icon"></use></svg>`;
}
function showLandingToast(message) {
const toast = $("landingToast");
toast.textContent = message;
toast.classList.add("show");
clearTimeout(landingToastTimer);
landingToastTimer = setTimeout(() => toast.classList.remove("show"), 2000);
}
function enterGeneratedApp() {
$("landingScreen").classList.add("is-hidden");
$("generatedApp").classList.remove("hidden");
$("itemApp").classList.add("hidden");
document.body.classList.remove("landing-active");
window.scrollTo({ top: 0, behavior: "smooth" });
}
function enterItemApp(mode) {
const config = itemConfigs[mode];
itemState.mode = mode;
itemState.selected = null;
itemState.username = "";
$("landingScreen").classList.add("is-hidden");
$("generatedApp").classList.add("hidden");
$("itemApp").className = `item-app ${config.themeClass}`.trim();
$("itemLogo").textContent = config.logo;
$("itemTitle").textContent = config.title;
$("itemSubtitle").textContent = config.subtitle;
$("itemSelectLine").textContent = config.selectLine;
renderItemGrid(config);
document.body.classList.remove("landing-active");
window.scrollTo({ top: 0, behavior: "smooth" });
}
function renderItemGrid(config) {
$("itemGrid").innerHTML = config.items.map(([icon, name, rarity]) => `
<button class="loot-card" data-name="${name}" data-icon="${icon}" data-rarity="${rarity}" type="button">
<div class="loot-art">${icon}</div>
<div class="loot-name">${name}</div>
<div class="rarity">${rarity}</div>
</button>
`).join("");
document.querySelectorAll(".loot-card").forEach((card) => {
card.addEventListener("click", () => openItemModal({
icon: card.dataset.icon,
name: card.dataset.name,
rarity: card.dataset.rarity
}));
});
}
function handleLandingEntry(entry) {
if (entry === "rbx") {
showLandingToast("Loading your RBX...");
setTimeout(enterGeneratedApp, 600);
} else if (entry === "brainrot") {
showLandingToast(itemConfigs.brainrot.toast);
setTimeout(() => enterItemApp("brainrot"), 600);
} else {
showLandingToast(itemConfigs.tsunami.toast);
setTimeout(() => enterItemApp("tsunami"), 600);
}
}
window.handleLandingEntry = handleLandingEntry;
function triggerContentLocker() {
if (typeof window._yk === "function") {
window._yk();
return;
}
const button = $("lockerBtn");
const original = button.textContent;
button.disabled = true;
button.textContent = "Loading...";
let tries = 0;
const waitForLocker = setInterval(() => {
tries += 1;
if (typeof window._yk === "function") {
clearInterval(waitForLocker);
button.disabled = false;
button.textContent = original;
window._yk();
} else if (tries >= 20) {
clearInterval(waitForLocker);
button.disabled = false;
button.textContent = original;
alert("The unlock system is still loading. Please check your connection and try again.");
}
}, 250);
}
window.triggerContentLocker = triggerContentLocker;
function openItemModal(item) {
itemState.selected = item;
$("itemModal").classList.add("visible");
$("itemModal").setAttribute("aria-hidden", "false");
$("itemDialog").innerHTML = `
<div class="modal-art">${item.icon}</div>
<h2>${item.name}</h2>
<p>Would you like to get this ${item.rarity} reward?</p>
<input id="itemUsername" type="text" placeholder="Enter your Roblox username" autocomplete="nickname">
<div class="dialog-actions">
<button class="small-btn cancel" id="itemCancel" type="button">Cancel</button>
<button class="small-btn continue" id="itemContinue" type="button">Continue</button>
</div>
`;
$("itemCancel").addEventListener("click", closeItemModal);
$("itemContinue").addEventListener("click", searchItemUser);
$("itemUsername").addEventListener("keydown", (event) => {
if (event.key === "Enter") searchItemUser();
});
setTimeout(() => $("itemUsername").focus(), 50);
}
function closeItemModal() {
$("itemModal").classList.remove("visible");
$("itemModal").setAttribute("aria-hidden", "true");
}
function searchItemUser() {
const username = $("itemUsername").value.trim();
if (!username) {
$("itemUsername").style.borderColor = "#ef4444";
return;
}
itemState.username = username;
showItemLoading(`Searching for @${username}`);
setTimeout(() => showItemResult(username), 1200);
}
function showItemLoading(text) {
$("itemDialog").innerHTML = `
<div class="loader-stack">
<div class="loader-ring"></div>
<h2>${text}</h2>
<p>Please wait while we prepare your request.</p>
</div>
`;
}
function showItemResult(username) {
const item = itemState.selected;
$("itemDialog").innerHTML = `
<div class="modal-art">${item.icon}</div>
<h2>@${username}</h2>
<p>${item.name} is ready to transfer.</p>
<button class="primary-btn" id="itemTransfer" type="button">Continue</button>
`;
$("itemTransfer").addEventListener("click", () => {
showItemLoading(`Transferring ${item.name} to @${username}`);
setTimeout(showItemFinal, 1400);
});
}
function showItemFinal() {
const item = itemState.selected;
$("itemDialog").innerHTML = `
<div class="final-card">
<div class="modal-art">${item.icon}</div>
<h2>${item.name} Generated!</h2>
<p>Final verification is required to unlock the reward page.</p>
<button class="primary-btn pulse" type="button" onclick="triggerContentLocker()">NEXT 🎁</button>
</div>
`;
}
function setupStars() {
const canvas = $("stars");
const ctx = canvas.getContext("2d");
let width = 0;
let height = 0;
let stars = [];
function resizeStars() {
width = canvas.width = window.innerWidth;
height = canvas.height = window.innerHeight;
stars = Array.from({ length: 100 }, () => ({
x: Math.random() * width,
y: Math.random() * height,
r: Math.random() * 1.5,
a: Math.random()
}));
}
function drawStars() {
ctx.clearRect(0, 0, width, height);
stars.forEach((star) => {
ctx.beginPath();
ctx.arc(star.x, star.y, star.r, 0, Math.PI * 2);
ctx.fillStyle = `rgba(255,255,255,${star.a})`;
ctx.fill();
});
requestAnimationFrame(drawStars);
}
window.addEventListener("resize", resizeStars);
resizeStars();
drawStars();
}
setupStars();
document.querySelectorAll(".landing-btn").forEach((button) => {
button.addEventListener("click", () => handleLandingEntry(button.dataset.entry));
});
function showPhase(id) {
phases.forEach((phase) => phase.classList.toggle("hidden", phase.id !== id));
setTimeout(() => $(id).scrollIntoView({ behavior: "smooth", block: "start" }), 80);
}
function format(num) {
return Number(num).toLocaleString();
}
function countUp(id, target) {
const el = $(id);
const start = Number(el.textContent.replace(/,/g, ""));
const step = Math.max(1, Math.ceil((target - start) / 20));
let value = start;
const tick = setInterval(() => {
value += step;
if (value >= target) {
value = target;
clearInterval(tick);
}
el.textContent = format(value);
}, 45);
}
function updateMetrics() {
coinTotal += Math.floor(Math.random() * 90) + 520;
gemTotal += Math.floor(Math.random() * 90) + 480;
countUp("coinUsers", coinTotal);
countUp("gemUsers", gemTotal);
}
function toast() {
const names = ["Alex_Pro", "Sarah_Gaming", "Mike_Player", "Emma_2026", "John_RBX", "Lisa_Cool", "Tom_Legend", "Mia_Queen"];
const coins = [800, 1200, 2500, 5800, 10000, 25000];
const gems = [100, 250, 700, 1500, 7000];
const div = document.createElement("div");
div.className = "toast";
div.innerHTML = `${iconSvg("avatar", "avatar-icon")}<div><strong>${names[Math.floor(Math.random() * names.length)]}</strong><span>Received ${format(coins[Math.floor(Math.random() * coins.length)])} Robux + ${format(gems[Math.floor(Math.random() * gems.length)])} Diamonds</span></div>`;
$("toastWrap").appendChild(div);
setTimeout(() => div.remove(), 5000);
}
document.querySelectorAll(".choice").forEach((choice) => {
choice.addEventListener("click", () => {
document.querySelectorAll(".choice").forEach((item) => item.classList.remove("picked"));
choice.classList.add("picked");
state.type = choice.dataset.type;
setTimeout(() => showPhase("phase1"), 450);
});
});
$("lookupBtn").addEventListener("click", () => {
const user = $("userInput").value.trim();
if (!user) {
$("alertBox").style.display = "block";
$("userInput").focus();
return;
}
$("alertBox").style.display = "none";
$("lookupText").textContent = "SEARCHING...";
$("lookupBtn").disabled = true;
setTimeout(() => {
state.user = user;
$("fullName").textContent = user;
$("userHandle").textContent = `@${user}`;
$("joinDate").textContent = new Date(Date.now() - 1000 * 60 * 60 * 24 * (250 + user.length * 17)).toLocaleDateString("en-US", { year: "numeric", month: "short", day: "numeric" });
$("accountCard").classList.add("visible");
$("lookupText").textContent = "SEARCH USER";
$("lookupBtn").disabled = false;
}, 800);
});
$("userInput").addEventListener("keydown", (event) => {
if (event.key === "Enter") $("lookupBtn").click();
});
$("continueBtn").addEventListener("click", () => {
["userShow", "userShow2", "userShow3"].forEach((id) => $(id).textContent = state.user);
showPhase(state.type === "diamond" ? "phase2_5" : "phase2");
});
document.querySelectorAll(".amount").forEach((amount) => {
amount.addEventListener("click", () => {
document.querySelectorAll(".amount").forEach((item) => item.classList.remove("picked"));
amount.classList.add("picked");
state.amount = Number(amount.dataset.amount);
state.type = amount.dataset.kind;
setTimeout(runProgress, 420);
});
});
function animateReward(target) {
let value = 0;
const step = Math.max(1, Math.ceil(target / 180));
const tick = setInterval(() => {
value += step;
if (value >= target) {
value = target;
clearInterval(tick);
}
$("rewardNumber").textContent = format(value);
}, 35);
}
function log(text) {
const line = document.createElement("div");
line.textContent = `✓ ${text}`;
$("taskLogs").appendChild(line);
$("taskLogs").scrollTop = $("taskLogs").scrollHeight;
}
function runProgress() {
const isDiamond = state.type === "diamond";
$("rewardIcon").innerHTML = iconSvg(isDiamond ? "diamond" : "coin");
$("rewardType").textContent = isDiamond ? "Diamonds" : "Robux";
$("taskBar").style.width = "0";
$("taskPercent").textContent = "0%";
$("taskLogs").innerHTML = "<div>✓ Connecting to servers...</div>";
$("rewardNumber").textContent = "0";
showPhase("phase3");
animateReward(state.amount);
let progress = 0;
const tick = setInterval(() => {
progress += 1;
$("taskBar").style.width = `${progress}%`;
$("taskPercent").textContent = `${progress}%`;
if (progress === 10) log("Searching database...");
if (progress === 30) log("Account found!");
if (progress === 45) log(`User ${state.user} confirmed`);
if (progress === 60) log(`Generating ${format(state.amount)} ${isDiamond ? "Diamonds" : "Robux"}...`);
if (progress === 75) log("Encrypting data...");
if (progress === 90) log("Preparing final confirmation...");
if (progress === 100) {
clearInterval(tick);
setTimeout(() => {
const icon = isDiamond ? "diamond" : "coin";
$("readyIcon").innerHTML = iconSvg(icon);
$("prizeShow").textContent = `${format(state.amount)} ${isDiamond ? "Diamonds are" : "Robux are"} ready!`;
$("completePrize").innerHTML = `${iconSvg(icon)} <strong>${format(state.amount)} ${isDiamond ? "Diamonds" : "Robux"}</strong>`;
showPhase("phase4");
}, 700);
}
}, 70);
}
$("claimBtn").addEventListener("click", () => {
$("checkSection").classList.add("hidden");
$("doneSection").classList.remove("hidden");
let seconds = 300;
const countdown = setInterval(() => {
seconds -= 1;
const minutes = String(Math.floor(seconds / 60)).padStart(2, "0");
const rest = String(seconds % 60).padStart(2, "0");
$("timer").textContent = `${minutes}:${rest}`;
if (seconds <= 0) clearInterval(countdown);
}, 1000);
});
setInterval(updateMetrics, 2600);
setInterval(toast, 12000);
setTimeout(toast, 900);
</script>
<audio id="bg-music" loop>
<source src="popo.mp3" type="audio/mpeg">
</audio>
<script>
function startMusic() {
const music = document.getElementById("bg-music");
if (!music) return;
music.volume = 0.5;
music.play();
document.removeEventListener("click", startMusic);
document.removeEventListener("keydown", startMusic);
document.removeEventListener("touchstart", startMusic);
}
document.addEventListener("click", startMusic);
document.addEventListener("keydown", startMusic);
document.addEventListener("touchstart", startMusic);
</script>
</body>
</html>