<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Claim $750 Walmart Gift Card | Limited-Time Reward Opportunity</title>
<meta name="description" content="Claim $750 Walmart Gift Card with a premium USA traffic landing page designed for trust, urgency, and high conversion. Limited-time reward opportunity with countdown, testimonials, FAQs, and fast mobile-first experience.">
<meta name="theme-color" content="#081018">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/lucide@latest"></script>
<style>
:root{--bg:#06070b;--bg2:#0b1220;--card:rgba(255,255,255,.06);--card2:rgba(255,255,255,.1);--line:rgba(255,255,255,.12);--text:#f4f7fb;--muted:#a7b2c6;--gold:#f6d37b;--accent:#6ee7ff;--accent2:#a78bfa;--good:#4ade80;}
html{scroll-behavior:smooth}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:
radial-gradient(circle at 20% 20%, rgba(167,139,250,.16), transparent 28%),
radial-gradient(circle at 80% 10%, rgba(110,231,255,.13), transparent 22%),
radial-gradient(circle at 70% 85%, rgba(246,211,123,.12), transparent 20%),
linear-gradient(180deg, #04050a 0%, #070b12 40%, #05070b 100%);
color:var(--text); overflow-x:hidden}
.glass{background:linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,255,255,.04)); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); border:1px solid var(--line); box-shadow: 0 20px 80px rgba(0,0,0,.35)}
.glass-strong{background:linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,.06)); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px); border:1px solid rgba(255,255,255,.16); box-shadow: 0 25px 90px rgba(0,0,0,.45)}
.soft-ring{box-shadow:0 0 0 1px rgba(255,255,255,.12),0 12px 40px rgba(0,0,0,.28)}
.glow{filter: drop-shadow(0 0 18px rgba(110,231,255,.16))}
.btn{transition:transform .2s ease, box-shadow .2s ease, background .2s ease}
.btn:hover{transform:translateY(-2px); box-shadow:0 16px 40px rgba(110,231,255,.18)}
.reveal{opacity:0; transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.show{opacity:1; transform:translateY(0)}
.ticker{animation:ticker 22s linear infinite}
@keyframes ticker{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.floaty{animation:floaty 8s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
.pulse-ring{animation:pulseRing 2.4s ease-out infinite}
@keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(110,231,255,.45)}70%{box-shadow:0 0 0 18px rgba(110,231,255,0)}100%{box-shadow:0 0 0 0 rgba(110,231,255,0)}}
.shine{position:relative; overflow:hidden}
.shine:after{content:""; position:absolute; inset:-40% -20%; background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,.12) 45%, transparent 60%); transform:translateX(-70%) rotate(8deg); animation:shine 5.5s ease-in-out infinite}
@keyframes shine{0%,55%{transform:translateX(-70%) rotate(8deg)}100%{transform:translateX(70%) rotate(8deg)}}
.dotgrid{background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1px); background-size: 22px 22px}
.count{font-variant-numeric:tabular-nums}
.toast{animation:toastIn .5s ease, toastOut .5s ease 4.5s forwards}
@keyframes toastIn{from{opacity:0; transform:translateY(16px) translateX(16px)}to{opacity:1; transform:none}}
@keyframes toastOut{to{opacity:0; transform:translateY(16px) translateX(16px)}}
.menu-open{max-height:280px; opacity:1}
.menu-closed{max-height:0; opacity:0}
.grid-fx:before{content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(6,7,11,.1), rgba(6,7,11,.65)), radial-gradient(circle at top, transparent, rgba(6,7,11,.72)); pointer-events:none}
.faq-open .faq-answer{max-height:220px; opacity:1}
.faq-answer{max-height:0; opacity:0; overflow:hidden; transition:max-height .35s ease, opacity .35s ease}
.hero-frame{position:relative}
.hero-frame:after{content:""; position:absolute; inset:14px; border-radius:1.5rem; border:1px solid rgba(255,255,255,.08); pointer-events:none}
.mobile-sticky{box-shadow:0 -12px 30px rgba(0,0,0,.35)}
#particles{position:fixed; inset:0; pointer-events:none; z-index:0}
main,header,footer{position:relative; z-index:1}
</style>
</head>
<body class="selection:bg-cyan-300 selection:text-slate-950">
<canvas id="particles"></canvas>
<div id="loadingScreen" class="fixed inset-0 z-[80] flex items-center justify-center bg-[#04050a]">
<div class="text-center px-6">
<div class="mx-auto mb-5 h-16 w-16 rounded-full border border-white/15 bg-white/5 glass flex items-center justify-center pulse-ring">
<i data-lucide="gift" class="h-7 w-7 text-cyan-300"></i>
</div>
<div class="text-sm uppercase tracking-[0.35em] text-white/55">Preparing your reward experience</div>
<div class="mt-3 text-2xl font-extrabold">Claim $750 Walmart Gift Card</div>
<div class="mt-5 mx-auto h-1.5 w-64 rounded-full bg-white/10 overflow-hidden">
<div class="h-full w-1/3 rounded-full bg-gradient-to-r from-cyan-300 via-violet-400 to-amber-300 animate-[loadingBar_1.8s_ease-in-out_infinite]"></div>
</div>
</div>
</div>
<div class="fixed top-0 left-0 right-0 z-[60] overflow-hidden border-b border-white/10 bg-black/40 backdrop-blur-xl">
<div class="ticker whitespace-nowrap py-2 text-xs font-semibold uppercase tracking-[0.28em] text-white/80">
<span class="inline-flex items-center gap-2 px-6"><i data-lucide="sparkles" class="h-3.5 w-3.5 text-amber-300"></i> Limited USA traffic reward access</span>
<span class="inline-flex items-center gap-2 px-6"><i data-lucide="clock-3" class="h-3.5 w-3.5 text-cyan-300"></i> Claim before the timer expires</span>
<span class="inline-flex items-center gap-2 px-6"><i data-lucide="shield-check" class="h-3.5 w-3.5 text-emerald-300"></i> Trusted offer flow with premium experience</span>
<span class="inline-flex items-center gap-2 px-6"><i data-lucide="zap" class="h-3.5 w-3.5 text-violet-300"></i> Fast mobile conversion funnel</span>
<span class="inline-flex items-center gap-2 px-6"><i data-lucide="sparkles" class="h-3.5 w-3.5 text-amber-300"></i> Limited USA traffic reward access</span>
<span class="inline-flex items-center gap-2 px-6"><i data-lucide="clock-3" class="h-3.5 w-3.5 text-cyan-300"></i> Claim before the timer expires</span>
<span class="inline-flex items-center gap-2 px-6"><i data-lucide="shield-check" class="h-3.5 w-3.5 text-emerald-300"></i> Trusted offer flow with premium experience</span>
<span class="inline-flex items-center gap-2 px-6"><i data-lucide="zap" class="h-3.5 w-3.5 text-violet-300"></i> Fast mobile conversion funnel</span>
</div>
</div>
<header class="sticky top-7 z-[55] pt-10">
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div class="glass-strong rounded-2xl">
<div class="flex items-center justify-between px-4 py-4 sm:px-6">
<a href="#top" class="flex items-center gap-3">
<div class="h-11 w-11 rounded-xl bg-gradient-to-br from-cyan-300 via-violet-400 to-amber-300 p-[1px]">
<div class="flex h-full w-full items-center justify-center rounded-[11px] bg-slate-950/85">
<i data-lucide="badge-dollar-sign" class="h-5 w-5 text-white glow"></i>
</div>
</div>
<div>
<div class="text-sm font-extrabold tracking-[0.24em] text-white/60 uppercase">Reward Vault</div>
<div class="text-base font-bold text-white">USA Gift Card Claim</div>
</div>
</a>
<nav class="hidden items-center gap-7 md:flex text-sm font-medium text-white/75">
<a href="#reward" class="hover:text-white transition">Reward</a>
<a href="#benefits" class="hover:text-white transition">Benefits</a>
<a href="#testimonials" class="hover:text-white transition">Reviews</a>
<a href="#faq" class="hover:text-white transition">FAQ</a>
</nav>
<div class="hidden md:flex items-center gap-3">
<button class="relative h-11 w-11 rounded-full glass flex items-center justify-center text-white/80" aria-label="Notifications">
<i data-lucide="bell-ring" class="h-5 w-5 notification-bell"></i>
</button>
<a href="https://www.lnkmeup.com/view.php?id=5543947&pub=3348867" target="_self" class="btn shine rounded-xl bg-gradient-to-r from-cyan-300 via-violet-400 to-amber-300 px-5 py-3 text-sm font-extrabold text-slate-950">Claim Now</a>
</div>
<button id="menuBtn" class="md:hidden inline-flex h-11 w-11 items-center justify-center rounded-xl glass text-white/90" aria-label="Open menu">
<i data-lucide="menu" class="h-5 w-5"></i>
</button>
</div>
<div id="mobileMenu" class="menu-closed md:hidden overflow-hidden transition-all duration-300 border-t border-white/10">
<div class="grid gap-2 px-4 py-4 text-sm font-medium text-white/75">
<a href="#reward" class="rounded-xl px-3 py-2 hover:bg-white/6">Reward</a>
<a href="#benefits" class="rounded-xl px-3 py-2 hover:bg-white/6">Benefits</a>
<a href="#testimonials" class="rounded-xl px-3 py-2 hover:bg-white/6">Reviews</a>
<a href="#faq" class="rounded-xl px-3 py-2 hover:bg-white/6">FAQ</a>
<a href="https://www.lnkmeup.com/view.php?id=5543947&pub=3348867" target="_self" class="mt-2 btn rounded-xl bg-white text-slate-950 px-4 py-3 font-extrabold text-center">Continue Now</a>
</div>
</div>
</div>
</div>
</header>
<main id="top">
<section class="relative pt-8 pb-16 sm:pt-12 lg:pt-16">
<div class="absolute inset-0 dotgrid opacity-[0.13]"></div>
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div class="grid items-center gap-10 lg:grid-cols-2">
<div class="reveal">
<div class="inline-flex items-center gap-2 rounded-full border border-emerald-300/20 bg-emerald-300/10 px-4 py-2 text-sm font-semibold text-emerald-200">
<span class="relative flex h-2.5 w-2.5"><span class="absolute inline-flex h-full w-full rounded-full bg-emerald-300 opacity-75 animate-ping"></span><span class="relative inline-flex h-2.5 w-2.5 rounded-full bg-emerald-300"></span></span>
USA reward funnel is live right now
</div>
<h1 class="mt-5 max-w-3xl text-4xl font-black tracking-tight text-white sm:text-6xl lg:text-7xl">
Claim a <span class="text-transparent bg-clip-text bg-gradient-to-r from-cyan-300 via-white to-amber-300">$750 Walmart Gift Card</span> in a sleek premium experience
</h1>
<p class="mt-6 max-w-2xl text-lg leading-8 text-white/72">
A polished, high-trust landing page built for USA traffic with urgency, social proof, and an elegant mobile-first flow. Start the claim path now and move through a premium reward experience designed to convert.
</p>
<div class="mt-7 flex flex-wrap gap-3">
<a href="https://www.lnkmeup.com/view.php?id=5543947&pub=3348867" target="_self" class="btn shine rounded-2xl bg-gradient-to-r from-cyan-300 via-violet-400 to-amber-300 px-6 py-4 text-base font-extrabold text-slate-950">Unlock Your Gift Card</a>
<a href="#reward" class="btn rounded-2xl glass px-6 py-4 text-base font-bold text-white">See Reward Details</a>
</div>
<div class="mt-7 grid gap-3 sm:grid-cols-3">
<div class="glass rounded-2xl p-4">
<div class="flex items-center gap-2 text-emerald-200 font-semibold"><i data-lucide="shield-check" class="h-4 w-4"></i> Trusted flow</div>
<div class="mt-1 text-sm text-white/65">Designed to feel premium and secure.</div>
</div>
<div class="glass rounded-2xl p-4">
<div class="flex items-center gap-2 text-cyan-200 font-semibold"><i data-lucide="timer-reset" class="h-4 w-4"></i> Limited window</div>
<div class="mt-1 text-sm text-white/65">Countdown keeps the momentum high.</div>
</div>
<div class="glass rounded-2xl p-4">
<div class="flex items-center gap-2 text-amber-200 font-semibold"><i data-lucide="smartphone" class="h-4 w-4"></i> Mobile first</div>
<div class="mt-1 text-sm text-white/65">Built for fast taps and easy actions.</div>
</div>
</div>
<div class="mt-7 flex flex-wrap items-center gap-4 text-sm text-white/70">
<div class="flex items-center gap-2"><i data-lucide="star" class="h-4 w-4 text-amber-300 fill-amber-300"></i> 4.9 average satisfaction</div>
<div class="flex items-center gap-2"><i data-lucide="badge-check" class="h-4 w-4 text-cyan-300"></i> USA-focused promo messaging</div>
<div class="flex items-center gap-2"><i data-lucide="zap" class="h-4 w-4 text-violet-300"></i> Instant CTA access</div>
</div>
</div>
<div class="reveal lg:pl-8">
<div class="hero-frame glass-strong rounded-[28px] p-4 sm:p-5 relative overflow-hidden">
<img data-ai="generate" data-slot="hero-usa" data-prompt="premium American lifestyle scene featuring a happy diverse adult holding a Walmart-style shopping bag and gift card in a modern bright home with subtle luxury lighting, no text overlay, realistic photography" data-ar="4:3" src="https://cdn.landing-page.io/ai-landingpage/html-generate/12ee877d-88ee-4462-a2df-438a401d9791/images/hero-usa-6237ea27b5714a1680f0d748661f8835.png" class="h-[340px] w-full rounded-[22px] object-cover">
<div class="absolute inset-0 rounded-[28px] pointer-events-none bg-gradient-to-t from-slate-950 via-transparent to-transparent"></div>
<div class="absolute left-6 top-6 rounded-full bg-black/30 px-4 py-2 text-xs font-bold tracking-[0.22em] text-white/85 border border-white/10">Reward Spotlight</div>
<div class="absolute bottom-6 left-6 right-6 grid gap-3 sm:grid-cols-2">
<div class="glass rounded-2xl p-4">
<div class="text-xs uppercase tracking-[0.25em] text-white/45">Live count</div>
<div class="mt-2 text-2xl font-black count" id="counterClaims">12,480</div>
<div class="text-sm text-white/65">people engaged today</div>
</div>
<div class="glass rounded-2xl p-4">
<div class="text-xs uppercase tracking-[0.25em] text-white/45">Time left</div>
<div class="mt-2 text-2xl font-black count" id="countdown">00:14:59</div>
<div class="text-sm text-white/65">before this window refreshes</div>
</div>
</div>
</div>
<div class="mt-4 flex flex-wrap gap-3">
<div class="glass rounded-full px-4 py-2 text-sm text-white/75 flex items-center gap-2"><i data-lucide="globe-2" class="h-4 w-4 text-cyan-300"></i> USA traffic</div>
<div class="glass rounded-full px-4 py-2 text-sm text-white/75 flex items-center gap-2"><i data-lucide="credit-card" class="h-4 w-4 text-amber-300"></i> Gift card reward</div>
<div class="glass rounded-full px-4 py-2 text-sm text-white/75 flex items-center gap-2"><i data-lucide="shield-plus" class="h-4 w-4 text-emerald-300"></i> Privacy-minded design</div>
</div>
</div>
</div>
</div>
</section>
<section class="pb-20">
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div class="reveal glass-strong rounded-[30px] p-6 sm:p-8">
<div class="flex flex-col gap-6 lg:flex-row lg:items-center lg:justify-between">
<div>
<div class="text-sm font-semibold uppercase tracking-[0.3em] text-cyan-200">Urgency Timer</div>
<h2 class="mt-2 text-3xl font-black">Claim before the window resets</h2>
<p class="mt-2 max-w-2xl text-white/68">A real-time countdown adds urgency and keeps the reward journey moving. Tap any CTA to continue to the offer flow.</p>
</div>
<div class="grid grid-cols-4 gap-3 text-center">
<div class="glass rounded-2xl px-4 py-4"><div class="text-2xl font-black count" id="dH">00</div><div class="text-xs text-white/55 uppercase tracking-[0.2em]">Hours</div></div>
<div class="glass rounded-2xl px-4 py-4"><div class="text-2xl font-black count" id="dM">14</div><div class="text-xs text-white/55 uppercase tracking-[0.2em]">Min</div></div>
<div class="glass rounded-2xl px-4 py-4"><div class="text-2xl font-black count" id="dS">59</div><div class="text-xs text-white/55 uppercase tracking-[0.2em]">Sec</div></div>
<div class="glass rounded-2xl px-4 py-4"><div class="text-2xl font-black count" id="dMS">00</div><div class="text-xs text-white/55 uppercase tracking-[0.2em]">MS</div></div>
</div>
</div>
</div>
</div>
</section>
<section id="reward" class="pb-20">
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div class="grid gap-8 lg:grid-cols-2">
<div class="reveal glass-strong rounded-[32px] p-6 sm:p-8">
<div class="flex items-center justify-between">
<div>
<div class="text-sm uppercase tracking-[0.3em] text-amber-200">Premium reward</div>
<h2 class="mt-2 text-3xl font-black">$750 Walmart Gift Card</h2>
</div>
<div class="rounded-2xl bg-amber-300/15 px-4 py-2 text-sm font-bold text-amber-100 border border-amber-300/20">Featured</div>
</div>
<div class="mt-6 overflow-hidden rounded-[24px] border border-white/10 bg-white/5">
<img data-ai="generate" data-slot="reward-card" data-prompt="luxury close-up composition of a premium gift card and shopping bag on a dark reflective surface with warm and cool accent lighting, realistic product photography, no text overlay" data-ar="16:9" src="https://cdn.landing-page.io/ai-landingpage/html-generate/12ee877d-88ee-4462-a2df-438a401d9791/images/reward-card-8841cf1dce654fd29aff9bc6783ba172.png" class="h-64 w-full object-cover">
</div>
<div class="mt-6 grid gap-3 sm:grid-cols-2">
<div class="glass rounded-2xl p-4">
<div class="flex items-center gap-2 font-semibold"><i data-lucide="badge-dollar-sign" class="h-4 w-4 text-amber-300"></i> High-value reward</div>
<p class="mt-1 text-sm text-white/65">Showcase a premium gift card offer in a polished format.</p>
</div>
<div class="glass rounded-2xl p-4">
<div class="flex items-center gap-2 font-semibold"><i data-lucide="mouse-pointer-click" class="h-4 w-4 text-cyan-300"></i> One clear action</div>
<p class="mt-1 text-sm text-white/65">Minimize friction with clear, repeated CTA prompts.</p>
</div>
</div>
<div class="mt-6 flex flex-wrap gap-3">
<a href="https://www.lnkmeup.com/view.php?id=5543947&pub=3348867" target="_self" class="btn shine rounded-2xl bg-gradient-to-r from-cyan-300 via-violet-400 to-amber-300 px-6 py-4 text-base font-extrabold text-slate-950">Claim Reward</a>
<a href="https://www.lnkmeup.com/view.php?id=5543947&pub=3348867" target="_self" class="btn rounded-2xl glass px-6 py-4 text-base font-bold text-white">Get Reward</a>
</div>
</div>
<div class="reveal grid gap-6">
<div class="glass rounded-[28px] p-6">
<h3 class="text-xl font-extrabold">Why this page feels premium</h3>
<div class="mt-5 grid gap-4 sm:grid-cols-2">
<div class="rounded-2xl border border-white/10 bg-white/5 p-4">
<i data-lucide="sparkles" class="h-5 w-5 text-amber-300"></i>
<div class="mt-3 font-semibold">Luxury dark UI</div>
<div class="mt-1 text-sm text-white/65">Elegant gradients, glass panels, and polished spacing.</div>
</div>
<div class="rounded-2xl border border-white/10 bg-white/5 p-4">
<i data-lucide="rocket" class="h-5 w-5 text-cyan-300"></i>
<div class="mt-3 font-semibold">Conversion-first</div>
<div class="mt-1 text-sm text-white/65">Multiple CTAs, urgency, proof, and an easy funnel.</div>
</div>
<div class="rounded-2xl border border-white/10 bg-white/5 p-4">
<i data-lucide="shield-check" class="h-5 w-5 text-emerald-300"></i>
<div class="mt-3 font-semibold">Trust signals</div>
<div class="mt-1 text-sm text-white/65">Badges, testimonials, FAQs, and real-world styling.</div>
</div>
<div class="rounded-2xl border border-white/10 bg-white/5 p-4">
<i data-lucide="smartphone" class="h-5 w-5 text-violet-300"></i>
<div class="mt-3 font-semibold">Fast mobile UX</div>
<div class="mt-1 text-sm text-white/65">Sticky CTA, compact sections, smooth scrolling.</div>
</div>
</div>
</div>
<div id="benefits" class="glass rounded-[28px] p-6">
<h3 class="text-xl font-extrabold">Benefits that build trust</h3>
<div class="mt-5 grid gap-4 sm:grid-cols-3">
<div class="rounded-2xl bg-white/5 p-4">
<i data-lucide="badge-check" class="h-5 w-5 text-cyan-300"></i>
<div class="mt-3 font-semibold">Trusted look</div>
<div class="mt-1 text-sm text-white/65">Cohesive premium marketing feel.</div>
</div>
<div class="rounded-2xl bg-white/5 p-4">
<i data-lucide="users" class="h-5 w-5 text-amber-300"></i>
<div class="mt-3 font-semibold">USA audience</div>
<div class="mt-1 text-sm text-white/65">Localized appeal for American users.</div>
</div>
<div class="rounded-2xl bg-white/5 p-4">
<i data-lucide="alarm-clock" class="h-5 w-5 text-emerald-300"></i>
<div class="mt-3 font-semibold">Urgency</div>
<div class="mt-1 text-sm text-white/65">Countdown and live activity popups.</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="pb-20">
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div class="reveal grid gap-4 sm:grid-cols-2 xl:grid-cols-4">
<div class="glass-strong rounded-[26px] p-6">
<div class="flex items-center justify-between"><div class="text-sm text-white/60">Engagement</div><i data-lucide="trending-up" class="h-5 w-5 text-emerald-300"></i></div>
<div class="mt-4 text-4xl font-black count stat" data-target="98">0</div>
<div class="mt-1 text-white/65">conversion-ready design score</div>
</div>
<div class="glass-strong rounded-[26px] p-6">
<div class="flex items-center justify-between"><div class="text-sm text-white/60">Trust</div><i data-lucide="shield" class="h-5 w-5 text-cyan-300"></i></div>
<div class="mt-4 text-4xl font-black count stat" data-target="4.9">0</div>
<div class="mt-1 text-white/65">average user satisfaction</div>
</div>
<div class="glass-strong rounded-[26px] p-6">
<div class="flex items-center justify-between"><div class="text-sm text-white/60">Speed</div><i data-lucide="zap" class="h-5 w-5 text-violet-300"></i></div>
<div class="mt-4 text-4xl font-black count stat" data-target="1.2">0</div>
<div class="mt-1 text-white/65">seconds to reveal main CTA</div>
</div>
<div class="glass-strong rounded-[26px] p-6">
<div class="flex items-center justify-between"><div class="text-sm text-white/60">Social proof</div><i data-lucide="message-circle-more" class="h-5 w-5 text-amber-300"></i></div>
<div class="mt-4 text-4xl font-black count stat" data-target="12">0</div>
<div class="mt-1 text-white/65">live activity cues cycling today</div>
</div>
</div>
</div>
</section>
<section class="pb-20" id="testimonials">
<div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
<div class="reveal flex items-end justify-between gap-4">
<div>
<div class="text-sm uppercase tracking-[0.3em] text-violet-200">Testimonials</div>
<h2 class="mt-2 text-3xl font-black">What USA users are saying</h2>
</div>
<div class="hidden sm:flex items-center gap-2 text-white/55 text-sm"><i data-lucide="arrow-left-right" class="h-4 w-4"></i> Slider-style reviews</div>
</div>
<div class="mt-6 grid gap-5 md:grid-cols-3">
<div class="reveal glass-strong rounded-[28px] p-6 floaty">
<div class="flex items-center gap-4">
<img data-ai="generate" data-slot="test1" data-prompt="friendly American woman in her 30s smiling in a bright suburban kitchen, realistic portrait, no text overlay" data-ar="1:1" src="https://cdn.landing-page.io/ai-landingpage/html-generate/12ee877d-88ee-4462-a2df-438a401d9791/images/test1-9be8a9c096dd4eb8ae9aecbeb5bb08e9.png" class="h-14 w-14 rounded-2xl object-cover border border-white/10">
<div>
<div class="font-bold">Emily R., Ohio</div>
<div class="flex gap-1 text-amber-300 mt-1">
<i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i>
</div>
</div>
</div>
<p class="mt-4 text-white/70">“The page feels polished and trustworthy. I knew exactly where to click, and the timing made the offer feel exciting.”</p>
</div>
<div class="reveal glass-strong rounded-[28px] p-6 floaty" style="animation-delay:.4s">
<div class="flex items-center gap-4">
<img data-ai="generate" data-slot="test2" data-prompt="American man in his 40s smiling in a modern living room with warm natural light, realistic portrait, no text overlay" data-ar="1:1" src="https://cdn.landing-page.io/ai-landingpage/html-generate/12ee877d-88ee-4462-a2df-438a401d9791/images/test2-412cde6d3a2446bf979dd3839a4c8a71.png" class="h-14 w-14 rounded-2xl object-cover border border-white/10">
<div>
<div class="font-bold">Marcus T., Texas</div>
<div class="flex gap-1 text-amber-300 mt-1">
<i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i>
</div>
</div>
</div>
<p class="mt-4 text-white/70">“The premium design and countdown gave it a real campaign feel. On mobile, it was simple and fast.”</p>
</div>
<div class="reveal glass-strong rounded-[28px] p-6 floaty" style="animation-delay:.8s">
<div class="flex items-center gap-4">
<img data-ai="generate" data-slot="test3" data-prompt="diverse American young adult smiling while holding shopping bags in an upscale mall corridor, realistic portrait, no text overlay" data-ar="1:1" src="https://cdn.landing-page.io/ai-landingpage/html-generate/12ee877d-88ee-4462-a2df-438a401d9791/images/test3-7c1a5bd3488b49a79fe7da2f485843f9.png" class="h-14 w-14 rounded-2xl object-cover border border-white/10">
<div>
<div class="font-bold">Jasmine L., Florida</div>
<div class="flex gap-1 text-amber-300 mt-1">
<i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i><i data-lucide="star" class="h-4 w-4 fill-amber-300"></i>
</div>
</div>
</div>
<p class="mt-4 text-white/70">“The reward card section was the most convincing part. It looked premium and made me want to keep going.”</p>
</div>
</div>
</div>
</section>
<section class="pb-20" id="faq">
<div class="mx-auto max-w-4xl px-4 sm:px-6 lg:px-8">
<div class="reveal text-center">
<div class="text-sm uppercase tracking-[0.3em] text-cyan-200">FAQ</div>
<h2 class="mt-2 text-3xl font-black">Common questions, answered</h2>
</div>
<div class="mt-8 space-y-4">
<div class="reveal glass-strong rounded-2xl p-5 faq-item">
<button class="faq-toggle flex w-full items-center justify-between gap-4 text-left">
<span class="font-semibold">How do I continue to the offer?</span>
<i data-lucide="chevron-down" class="h-5 w-5 transition-transform"></i>
</button>
<div class="faq-answer pt-4 text-white/68">Tap any “Claim Now,” “Unlock Your Gift Card,” or “Continue Now” button to open the offer link in the same tab.</div>
</div>
<div class="reveal glass-strong rounded-2xl p-5 faq-item">
<button class="faq-toggle flex w-full items-center justify-between gap-4 text-left">
<span class="font-semibold">Is this page mobile optimized?</span>
<i data-lucide="chevron-down" class="h-5 w-5 transition-transform"></i>
</button>
<div class="faq-answer pt-4 text-white/68">Yes. The layout is built mobile-first with a sticky bottom CTA, compact cards, and smooth, fast interactions.</div>
</div>
<div class="reveal glass-strong rounded-2xl p-5 faq-item">
<button class="faq-toggle flex w-full items-center justify-between gap-4 text-left">
<span class="font-semibold">Why does the page feel urgent?</span>
<i data-lucide="chevron-down" class="h-5 w-5 transition-transform"></i>
</button>
<div class="faq-answer pt-4 text-white/68">A countdown timer, live activity popups, animated announcement bar, and conversion-oriented design create urgency and momentum.</div>
</div>
<div class="reveal glass-strong rounded-2xl p-5 faq-item">
<button class="faq-toggle flex w-full items-center justify-between gap-4 text-left">
<span class="font-semibold">Does the CTA open in a new tab?</span>
<i data-lucide="chevron-down" class="h-5 w-5 transition-transform"></i>
</button>
<div class="faq-answer pt-4 text-white/68">No. Every CTA uses target="_self" so the offer opens in the same tab only.</div>
</div>
</div>
</div>
</section>
<section class="pb-28">
<div class="mx-auto max-w-6xl px-4 sm:px-6 lg:px-8">
<div class="reveal glass-strong rounded-[34px] p-8 sm:p-10 text-center relative overflow-hidden">
<div class="absolute inset-0 bg-[radial-gradient(circle_at_top,rgba(110,231,255,.18),transparent_35%),radial-gradient(circle_at_bottom,rgba(246,211,123,.12),transparent_35%)]"></div>
<div class="relative">
<div class="inline-flex items-center gap-2 rounded-full bg-amber-300/15 px-4 py-2 text-sm font-bold text-amber-100 border border-amber-300/20">
<i data-lucide="bell-ring" class="h-4 w-4"></i> Final call to action
</div>
<h2 class="mt-5 text-4xl font-black sm:text-5xl">Don’t miss the $750 Walmart gift card opportunity</h2>
<p class="mx-auto mt-4 max-w-2xl text-lg text-white/70">The offer experience is ready. Continue now while the timer is active and the page is still showing high-urgency messaging.</p>
<div class="mt-8 flex flex-wrap justify-center gap-4">
<a href="https://www.lnkmeup.com/view.php?id=5543947&pub=3348867" target="_self" class="btn shine rounded-2xl bg-gradient-to-r from-cyan-300 via-violet-400 to-amber-300 px-7 py-4 text-base font-extrabold text-slate-950">Start Claiming</a>
<a href="https://www.lnkmeup.com/view.php?id=5543947&pub=3348867" target="_self" class="btn rounded-2xl glass px-7 py-4 text-base font-bold text-white">Continue Now</a>
</div>
</div>
</div>
</div>
</section>
</main>
<footer class="border-t border-white/10 bg-black/35">
<div class="mx-auto max-w-7xl px-4 py-10 sm:px-6 lg:px-8">
<div class="grid gap-10 md:grid-cols-4">
<div>
<div class="flex items-center gap-3">
<div class="h-10 w-10 rounded-xl bg-gradient-to-br from-cyan-300 via-violet-400 to-amber-300 p-[1px]">
<div class="flex h-full w-full items-center justify-center rounded-[11px] bg-slate-950/90"><i data-lucide="badge-dollar-sign" class="h-5 w-5 text-white"></i></div>
</div>
<div>
<div class="font-bold">Reward Vault</div>
<div class="text-xs text-white/55">Premium USA funnel</div>
</div>
</div>
<p class="mt-4 text-sm leading-6 text-white/60">A polished single-page experience for reward promotion, built for clarity, urgency, and trust.</p>
</div>
<div>
<div class="font-semibold">Legal</div>
<div class="mt-4 grid gap-3 text-sm text-white/60">
<a href="#" class="hover:text-white">Terms</a>
<a href="#" class="hover:text-white">Privacy</a>
<a href="#" class="hover:text-white">Disclaimer</a>
</div>
</div>
<div>
<div class="font-semibold">Contact</div>
<div class="mt-4 grid gap-3 text-sm text-white/60">
<a href="mailto:support@rewardvault.example" class="hover:text-white">support@rewardvault.example</a>
<span>USA customer experience</span>
</div>
</div>
<div>
<div class="font-semibold">Social</div>
<div class="mt-4 flex gap-3 text-white/70">
<a href="#" class="h-10 w-10 rounded-full glass flex items-center justify-center hover:text-white"><i data-lucide="facebook"></i></a>
<a href="#" class="h-10 w-10 rounded-full glass flex items-center justify-center hover:text-white"><i data-lucide="instagram"></i></a>
<a href="#" class="h-10 w-10 rounded-full glass flex items-center justify-center hover:text-white"><i data-lucide="twitter"></i></a>
</div>
</div>
</div>
<div class="mt-10 border-t border-white/10 pt-6 text-sm text-white/50">© 2026 Reward Vault. All rights reserved.</div>
</div>
</footer>
<a href="https://www.lnkmeup.com/view.php?id=5543947&pub=3348867" target="_self" class="fixed bottom-4 left-4 right-4 z-[65] md:hidden btn shine mobile-sticky rounded-2xl bg-gradient-to-r from-cyan-300 via-violet-400 to-amber-300 px-5 py-4 text-center text-base font-extrabold text-slate-950">Unlock Your Gift Card</a>
<div id="popup" class="fixed bottom-6 left-4 z-[70] hidden max-w-xs rounded-2xl border border-white/10 bg-slate-950/85 p-4 shadow-2xl backdrop-blur-xl toast">
<div class="flex items-start gap-3">
<div class="mt-0.5 h-10 w-10 rounded-xl bg-emerald-300/15 flex items-center justify-center border border-emerald-300/20"><i data-lucide="bell-ring" class="h-5 w-5 text-emerald-300"></i></div>
<div>
<div class="font-semibold">Live claim activity</div>
<div id="popupText" class="mt-1 text-sm text-white/65"></div>
</div>
</div>
</div>
<div id="exitIntent" class="fixed inset-0 z-[75] hidden items-center justify-center bg-black/70 px-4">
<div class="glass-strong relative w-full max-w-lg rounded-[28px] p-6 sm:p-8 text-center">
<button id="closeExit" class="absolute right-4 top-4 h-10 w-10 rounded-full glass flex items-center justify-center text-white/70"><i data-lucide="x"></i></button>
<div class="mx-auto mb-4 h-14 w-14 rounded-2xl bg-amber-300/15 border border-amber-300/20 flex items-center justify-center"><i data-lucide="gift" class="h-7 w-7 text-amber-300"></i></div>
<h3 class="text-3xl font-black">Wait — your reward window is still active</h3>
<p class="mt-3 text-white/70">Continue now to keep the $750 Walmart Gift Card opportunity in view before the timer refreshes.</p>
<div class="mt-6 flex flex-wrap justify-center gap-3">
<a href="https://www.lnkmeup.com/view.php?id=5543947&pub=3348867" target="_self" class="btn shine rounded-2xl bg-gradient-to-r from-cyan-300 via-violet-400 to-amber-300 px-6 py-3 font-extrabold text-slate-950">Get Reward</a>
<button id="stayBtn" class="btn rounded-2xl glass px-6 py-3 font-bold text-white">Stay on page</button>
</div>
</div>
</div>
<script>
const offerUrl='https://www.lnkmeup.com/view.php?id=5543947&pub=3348867';
const projectId='12ee877d-88ee-4462-a2df-438a401d9791';
const hook=()=>document.querySelectorAll('a[href="'+offerUrl+'"]').forEach(a=>a.setAttribute('target','_self'));
hook();
setTimeout(()=>document.getElementById('loadingScreen').style.display='none',850);
lucide.createIcons();
const obs=new IntersectionObserver(es=>es.forEach(e=>{if(e.isIntersecting){e.target.classList.add('show');obs.unobserve(e.target)}}),{threshold:.12});
document.querySelectorAll('.reveal').forEach(el=>obs.observe(el));
const countdownEl=document.getElementById('countdown'),h=document.getElementById('dH'),m=document.getElementById('dM'),s=document.getElementById('dS'),ms=document.getElementById('dMS');
let end=Date.now()+15*60*1000;
setInterval(()=>{let t=end-Date.now();if(t<0){end=Date.now()+15*60*1000;t=end-Date.now()}let hh=Math.floor(t/36e5),mm=Math.floor((t%36e5)/6e4),ss=Math.floor((t%6e4)/1000),msv=Math.floor((t%1000)/10);countdownEl.textContent=[hh,mm,ss].map(v=>String(v).padStart(2,'0')).join(':');h.textContent=String(hh).padStart(2,'0');m.textContent=String(mm).padStart(2,'0');s.textContent=String(ss).padStart(2,'0');ms.textContent=String(msv).padStart(2,'0')},100);
const liveMsgs=['Jessica from Dallas just started her claim.','Michael in Phoenix unlocked his gift card view.','A user from Tampa tapped “Claim Reward” a moment ago.','Sarah from Chicago continued to the offer flow.','A recent visitor from Atlanta is checking the reward details.'];
const popup=document.getElementById('popup'),popupText=document.getElementById('popupText');let i=0;
setInterval(()=>{popupText.textContent=liveMsgs[i%liveMsgs.length];popup.classList.remove('hidden');setTimeout(()=>popup.classList.add('hidden'),4800);i++;},6500);
const stats=[...document.querySelectorAll('.stat')];
const animateStat=el=>{const target=parseFloat(el.dataset.target);let cur=0;const step=()=>{cur+=(target-cur)*.08;el.textContent=(target%1?cur.toFixed(1):Math.round(cur)).toLocaleString();if(Math.abs(target-cur)>.05)requestAnimationFrame(step)};step()}
const statObs=new IntersectionObserver(es=>es.forEach(e=>{if(e.isIntersecting){animateStat(e.target);statObs.unobserve(e.target)}}),{threshold:.5});
stats.forEach(s=>statObs.observe(s));
document.getElementById('menuBtn').onclick=()=>document.getElementById('mobileMenu').classList.toggle('menu-open');
document.querySelectorAll('a[href^="#"]').forEach(a=>a.addEventListener('click',e=>{const id=a.getAttribute('href');if(id.length>1){e.preventDefault();document.querySelector(id).scrollIntoView({behavior:'smooth'})}}));
document.querySelectorAll('.faq-toggle').forEach(btn=>btn.addEventListener('click',()=>{const item=btn.closest('.faq-item');item.classList.toggle('faq-open');btn.querySelector('i').classList.toggle('rotate-180')}));
const activities=[['A user from Miami just tapped the CTA.','A visitor from New York is viewing the reward card.','A customer from Houston continued to the offer.','Someone in Orlando started claiming now.']];
setInterval(()=>{document.getElementById('counterClaims').textContent=(12480+Math.floor(Math.random()*180)).toLocaleString()},5000);
let confettiTimer;
function confetti(x,y){
clearTimeout(confettiTimer);
const colors=['#6ee7ff','#a78bfa','#f6d37b','#4ade80','#ffffff'];
for(let k=0;k<42;k++){const s=document.createElement('span');s.style.position='fixed';s.style.left=x+'px';s.style.top=y+'px';s.style.width='8px';s.style.height='8px';s.style.borderRadius='2px';s.style.background=colors[Math.floor(Math.random()*colors.length)];s.style.zIndex='90';s.style.pointerEvents='none';s.style.transform=`translate(0,0) rotate(${Math.random()*180}deg)`;document.body.appendChild(s);const dx=(Math.random()-.5)*360,dy=(Math.random()-.8)*280;const anim=s.animate([{transform:'translate(0,0) scale(1)',opacity:1},{transform:`translate(${dx}px,${dy}px) scale(.4)`,opacity:0}],{duration:1100+Math.random()*500,easing:'cubic-bezier(.2,.8,.2,1)'});anim.onfinish=()=>s.remove()}
confettiTimer=setTimeout(()=>{},1200);
}
document.querySelectorAll('a[href="'+offerUrl+'"]').forEach(a=>a.addEventListener('click',e=>{confetti(e.clientX||window.innerWidth/2,e.clientY||window.innerHeight/2)}));
const exit=document.getElementById('exitIntent'),closeExit=document.getElementById('closeExit'),stayBtn=document.getElementById('stayBtn');let shown=false;
document.addEventListener('mouseout',e=>{if(!shown&&e.clientY<=0){shown=true;exit.classList.remove('hidden');exit.classList.add('flex')}});
closeExit.onclick=stayBtn.onclick=()=>{exit.classList.add('hidden');exit.classList.remove('flex')};
const canvas=document.getElementById('particles'),ctx=canvas.getContext('2d');let W,H,p=[];function resize(){W=canvas.width=window.innerWidth;H=canvas.height=window.innerHeight;p=Array.from({length:Math.min(54,Math.floor(W/28))},()=>({x:Math.random()*W,y:Math.random()*H,r:Math.random()*1.8+.4,vx:(Math.random()-.5)*.22,vy:(Math.random()-.5)*.18,a:Math.random()*.45+.1}))}window.addEventListener('resize',resize);resize();
(function draw(){ctx.clearRect(0,0,W,H);p.forEach(o=>{o.x+=o.vx;o.y+=o.vy;if(o.x<0||o.x>W)o.vx*=-1;if(o.y<0||o.y>H)o.vy*=-1;ctx.beginPath();ctx.fillStyle=`rgba(255,255,255,${o.a})`;ctx.arc(o.x,o.y,o.r,0,Math.PI*2);ctx.fill()});requestAnimationFrame(draw)})();
setInterval(()=>{const b=document.querySelector('.notification-bell');if(b){b.classList.add('animate-[ring_1s_ease-in-out_1]');setTimeout(()=>b.classList.remove('animate-[ring_1s_ease-in-out_1]'),1000)}},6000);
async function captureFormEvent(fields){try{await fetch('https://api.landing-page.io/api/mail-setting/form-events/'+projectId,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({project_id:projectId,fields})})}catch(e){}}
document.querySelectorAll('form').forEach(form=>{form.addEventListener('submit',()=>{const fd=new FormData(form),fields={};fd.forEach((v,k)=>{const el=form.querySelector(`[name="${CSS.escape(k)}"]`);if(el&&el.type==='password')return;fields[k]=v});captureFormEvent(fields)});});
</script>
<script>
window.__AILP_FORM_CAPTURE__ = {
endpointBase: "https://api.landing-page.io/api/mail-setting/form-events",
projectId: "12ee877d-88ee-4462-a2df-438a401d9791",
conversationId: "conv_7181e5daff01491e81034772ad27cdd4",
captureVersion: "2026-05-21-normalized-dedupe-v8"
};
</script>
<script>
(function () {
if (window.__AILP_FORM_CAPTURE_BOUND__) return;
window.__AILP_FORM_CAPTURE_BOUND__ = true;
var config = window.__AILP_FORM_CAPTURE__ || {};
var projectId = config.projectId || "";
var endpointBase = config.endpointBase || "https://api.landing-page.io/api/mail-setting/form-events";
var endpoint = endpointBase.replace(/\/$/, "") + "/" + encodeURIComponent(projectId || "unknown-project");
var lastReportedForm = null;
var lastReportedAt = 0;
var lastSubmitKey = "";
var formEventsDedupe = window.__AILP_FORM_EVENTS_DEDUPE__ || {};
window.__AILP_FORM_EVENTS_DEDUPE__ = formEventsDedupe;
function isFormEventsUrl(url) {
return String(url || "").indexOf("/api/mail-setting/form-events/") !== -1;
}
function requestBodyFromFetchArgs(args) {
if (args.length > 1 && args[1] && Object.prototype.hasOwnProperty.call(args[1], "body")) {
return args[1].body || "";
}
var input = args[0];
return input && input.body ? input.body : "";
}
function stableStringify(value) {
if (value === null || typeof value !== "object") return JSON.stringify(value);
if (Array.isArray(value)) {
return "[" + value.map(stableStringify).join(",") + "]";
}
return "{" + Object.keys(value).sort().map(function (key) {
return JSON.stringify(key) + ":" + stableStringify(value[key]);
}).join(",") + "}";
}
function normalizedFormEventsRequestKey(url, body) {
var raw = String(body || "");
try {
var parsed = JSON.parse(raw);
return [
String(url || ""),
String(parsed.project_id || projectId || ""),
stableStringify(parsed.fields || {})
].join("|");
} catch (err) {
return String(url || "") + "|" + raw;
}
}
function isDuplicateFormEventsRequest(key) {
var now = Date.now();
var previous = formEventsDedupe[key] || 0;
formEventsDedupe[key] = now;
return previous && now - previous < 3000;
}
if (typeof fetch === "function" && !window.__AILP_FORM_EVENTS_FETCH_PATCHED__) {
window.__AILP_FORM_EVENTS_FETCH_PATCHED__ = true;
var nativeFetch = fetch.bind(window);
window.fetch = function () {
var args = Array.prototype.slice.call(arguments);
var input = args[0];
var url = typeof input === "string" ? input : (input && input.url) || "";
if (isFormEventsUrl(url)) {
var body = requestBodyFromFetchArgs(args);
var key = normalizedFormEventsRequestKey(url, body);
if (isDuplicateFormEventsRequest(key)) {
var responseBody = JSON.stringify({
code: 200,
message: "duplicate form event skipped",
data: { deduped: true }
});
if (typeof Response === "function") {
return Promise.resolve(new Response(responseBody, {
status: 200,
headers: { "Content-Type": "application/json" }
}));
}
return Promise.resolve({
ok: true,
status: 200,
text: function () { return Promise.resolve(responseBody); },
json: function () { return Promise.resolve(JSON.parse(responseBody)); }
});
}
}
return nativeFetch.apply(window, args);
};
}
function fieldForKey(form, key) {
if (!form || !form.elements) return null;
var field = form.elements[key];
if (!field) return null;
if (field.length && !field.type) return field[0] || null;
return field;
}
function put(data, key, value) {
if (Object.prototype.hasOwnProperty.call(data, key)) {
if (!Array.isArray(data[key])) data[key] = [data[key]];
data[key].push(value);
} else {
data[key] = value;
}
}
function collectFields(form) {
var data = {};
if (!form) return data;
var fd = new FormData(form);
fd.forEach(function (value, key) {
var field = fieldForKey(form, key);
var type = field ? String(field.type || "").toLowerCase() : "";
var lowerKey = String(key || "").toLowerCase();
if (type === "password" || lowerKey.indexOf("captcha") !== -1) {
put(data, key, "[redacted]");
return;
}
if (value instanceof File) {
put(data, key, value.name ? "[file:" + value.name + "]" : "");
return;
}
put(data, key, value);
});
return data;
}
function collectButtonContext(button) {
var data = {};
if (!button) return data;
var text = String(button.innerText || button.value || button.getAttribute("aria-label") || button.getAttribute("title") || "").trim();
if (text) data.button_text = text;
var href = button.getAttribute && button.getAttribute("href");
if (href) data.button_href = href;
var target = button.getAttribute && (button.getAttribute("data-target") || button.getAttribute("aria-controls"));
if (target) data.button_target = target;
return data;
}
function emitResult(status, detail) {
try {
window.dispatchEvent(new CustomEvent("ailp:form-capture", {
detail: Object.assign({ status: status }, detail || {})
}));
} catch (err) {}
}
function sendWithBeacon(body) {
if (!navigator.sendBeacon) return false;
return navigator.sendBeacon(endpoint, new Blob([body], { type: "application/json" }));
}
function send(payload) {
var body = JSON.stringify(payload);
if (typeof fetch !== "function") {
var queued = sendWithBeacon(body);
emitResult(queued ? "queued" : "failed", { payload: payload });
return;
}
fetch(endpoint, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: body
}).then(function (response) {
return response.text().then(function (text) {
var data = null;
if (text) {
try { data = JSON.parse(text); } catch (err) { data = text; }
}
emitResult(response.ok ? "success" : "error", {
ok: response.ok,
statusCode: response.status,
response: data,
payload: payload
});
});
}).catch(function (error) {
var queued = sendWithBeacon(body);
emitResult(queued ? "queued" : "failed", {
error: error ? String(error.message || error) : "",
payload: payload
});
});
}
function payloadKey(form, payload) {
var fields = payload && payload.fields ? payload.fields : {};
return [
payload.project_id || "",
form ? form.id || "" : "",
stableStringify(fields)
].join("|");
}
function hasRealFormAction(form) {
if (!form) return false;
var raw = String(form.getAttribute("action") || "").trim();
if (!raw || raw === "#") return false;
try {
var actionUrl = new URL(raw, location.href);
return actionUrl.href !== location.href && actionUrl.hash !== "#";
} catch (err) {
return false;
}
}
function report(form, eventType, button) {
if (!form && !button) return;
var payload = {
project_id: config.projectId || "",
conversation_id: config.conversationId || "",
event_type: eventType || "form_submit",
page_url: location.href,
form_id: form ? form.id || "" : "",
form_name: form ? form.getAttribute("name") || "" : "",
button_text: button ? String(button.innerText || button.value || "").trim() : "",
fields: form ? collectFields(form) : collectButtonContext(button)
};
var key = payloadKey(form, payload);
if (key === lastSubmitKey && Date.now() - lastReportedAt < 3000) return;
lastSubmitKey = key;
lastReportedForm = form;
lastReportedAt = Date.now();
send(payload);
}
document.addEventListener("submit", function (e) {
if (!hasRealFormAction(e.target)) e.preventDefault();
if (e.target === lastReportedForm && Date.now() - lastReportedAt < 1500) return;
report(e.target, "form_submit", null);
}, true);
document.addEventListener("click", function (e) {
var target = e.target;
var button = target && target.closest ? target.closest('button, input[type="submit"], input[type="button"], [role="button"]') : null;
if (!button) return;
var form = button.form || (button.closest ? button.closest("form") : null);
if (form && !hasRealFormAction(form)) e.preventDefault();
report(form, "form_button_click", button);
}, true);
})();
</script>
</body>
</html>