799 lines
34 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>TheNicheQuiz — Find Your Perfect Ad Niche in 60 Seconds</title>
<meta name="description" content="AI-powered quiz that finds your perfect Facebook ad niche, then generates 10 ready-to-run campaigns with copy, targeting, and AI images.">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap" rel="stylesheet">
<style>
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--bg: #0a0a1a;
--bg-card: #0f1023;
--bg-card-hover: #141432;
--border: #1e1e3a;
--text: #e8e8f0;
--text-secondary: #8888a8;
--text-muted: #555577;
--amber: #F59E0B;
--amber-dark: #d97706;
--purple: #8B5CF6;
--purple-dark: #7c3aed;
--blue: #3b82f6;
--green: #22c55e;
}
html { scroll-behavior: smooth; }
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
background: var(--bg);
color: var(--text);
overflow-x: hidden;
line-height: 1.6;
}
/* ── Nav ────────────────────────────────────────────── */
.nav {
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
padding: 16px 32px;
background: rgba(10, 10, 26, 0.8);
backdrop-filter: blur(20px);
border-bottom: 1px solid rgba(30, 30, 58, 0.5);
display: flex; align-items: center; justify-content: space-between;
transition: all 0.3s;
}
.nav.scrolled {
padding: 12px 32px;
background: rgba(10, 10, 26, 0.95);
}
.nav-logo {
display: flex; align-items: center; gap: 10px;
text-decoration: none;
}
.nav-logo-icon {
width: 36px; height: 36px; border-radius: 10px;
background: linear-gradient(135deg, rgba(245,158,11,0.15), rgba(139,92,246,0.15));
border: 1px solid rgba(245,158,11,0.25);
display: flex; align-items: center; justify-content: center;
font-size: 18px;
}
.nav-logo-text {
font-size: 18px; font-weight: 800; color: #fff;
letter-spacing: -0.02em;
}
.nav-logo-text span { color: var(--amber); }
.nav-links { display: flex; align-items: center; gap: 8px; }
.nav-link {
padding: 8px 18px; border-radius: 8px;
text-decoration: none; font-size: 14px; font-weight: 600;
color: var(--text-secondary); transition: all 0.2s;
}
.nav-link:hover { color: #fff; background: rgba(255,255,255,0.05); }
.nav-btn {
padding: 9px 22px; border-radius: 8px; border: none;
font-size: 14px; font-weight: 700; cursor: pointer;
text-decoration: none; transition: all 0.3s;
display: inline-flex; align-items: center; gap: 6px;
}
.nav-btn-outline {
background: transparent; color: var(--text);
border: 1px solid var(--border);
}
.nav-btn-outline:hover { border-color: var(--amber); color: var(--amber); }
.nav-btn-primary {
background: linear-gradient(135deg, var(--amber), var(--amber-dark));
color: #000;
}
.nav-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 4px 20px rgba(245,158,11,0.3); }
/* ── Hero ───────────────────────────────────────────── */
.hero {
position: relative;
min-height: 100vh;
display: flex; align-items: center; justify-content: center;
padding: 120px 32px 80px;
overflow: hidden;
}
.hero-bg {
position: absolute; inset: 0;
background:
radial-gradient(ellipse 80% 50% at 50% -20%, rgba(139,92,246,0.15), transparent),
radial-gradient(ellipse 60% 40% at 20% 80%, rgba(245,158,11,0.08), transparent),
radial-gradient(ellipse 60% 40% at 80% 80%, rgba(59,130,246,0.06), transparent);
}
.hero-grid {
position: absolute; inset: 0;
background-image:
linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
background-size: 60px 60px;
mask-image: radial-gradient(ellipse 60% 60% at 50% 50%, black, transparent);
}
.hero-orb {
position: absolute; border-radius: 50%; filter: blur(80px);
animation: float 8s ease-in-out infinite;
}
.hero-orb-1 {
width: 400px; height: 400px; top: 10%; left: -5%;
background: rgba(139,92,246,0.12);
animation-delay: 0s;
}
.hero-orb-2 {
width: 300px; height: 300px; bottom: 10%; right: -5%;
background: rgba(245,158,11,0.1);
animation-delay: -4s;
}
.hero-orb-3 {
width: 200px; height: 200px; top: 40%; right: 20%;
background: rgba(59,130,246,0.08);
animation-delay: -2s;
}
@keyframes float {
0%, 100% { transform: translate(0, 0) scale(1); }
33% { transform: translate(30px, -20px) scale(1.05); }
66% { transform: translate(-20px, 15px) scale(0.95); }
}
.hero-content {
position: relative; z-index: 2;
max-width: 820px; text-align: center;
}
.hero-badge {
display: inline-flex; align-items: center; gap: 8px;
padding: 6px 16px; border-radius: 50px;
background: rgba(139,92,246,0.1);
border: 1px solid rgba(139,92,246,0.2);
font-size: 13px; font-weight: 600; color: var(--purple);
margin-bottom: 28px;
}
.hero-badge-dot {
width: 6px; height: 6px; border-radius: 50%;
background: var(--green);
animation: pulse-dot 2s infinite;
}
@keyframes pulse-dot {
0%, 100% { opacity: 1; }
50% { opacity: 0.4; }
}
.hero-title {
font-size: clamp(40px, 6vw, 72px);
font-weight: 900; line-height: 1.05;
letter-spacing: -0.03em;
margin-bottom: 24px;
}
.hero-title-gradient {
background: linear-gradient(135deg, #fff 0%, #ddd 40%, var(--amber) 100%);
-webkit-background-clip: text; -webkit-text-fill-color: transparent;
background-clip: text;
}
.hero-subtitle {
font-size: clamp(16px, 2vw, 20px);
color: var(--text-secondary);
max-width: 640px; margin: 0 auto 40px;
line-height: 1.7;
}
.hero-cta-group {
display: flex; align-items: center; justify-content: center;
gap: 16px; flex-wrap: wrap;
}
.hero-cta {
padding: 16px 40px; border-radius: 12px; border: none;
font-size: 17px; font-weight: 800; cursor: pointer;
text-decoration: none; transition: all 0.3s;
display: inline-flex; align-items: center; gap: 10px;
}
.hero-cta-primary {
background: linear-gradient(135deg, var(--amber), var(--amber-dark));
color: #000;
box-shadow: 0 4px 30px rgba(245,158,11,0.2), 0 0 60px rgba(245,158,11,0.1);
}
.hero-cta-primary:hover {
transform: translateY(-2px);
box-shadow: 0 8px 40px rgba(245,158,11,0.35), 0 0 80px rgba(245,158,11,0.15);
}
.hero-cta-secondary {
background: rgba(255,255,255,0.05);
border: 1px solid var(--border);
color: var(--text);
}
.hero-cta-secondary:hover {
background: rgba(255,255,255,0.1);
border-color: rgba(255,255,255,0.15);
}
.hero-stats {
display: flex; align-items: center; justify-content: center;
gap: 48px; margin-top: 60px;
padding-top: 40px;
border-top: 1px solid rgba(255,255,255,0.05);
}
.hero-stat { text-align: center; }
.hero-stat-value {
font-size: 28px; font-weight: 800;
background: linear-gradient(135deg, var(--amber), var(--purple));
-webkit-background-clip: text; -webkit-text-fill-color: transparent;
}
.hero-stat-label { font-size: 13px; color: var(--text-muted); margin-top: 4px; }
/* ── How It Works ───────────────────────────────────── */
.section {
padding: 120px 32px;
position: relative;
}
.section-header {
text-align: center; max-width: 640px; margin: 0 auto 64px;
}
.section-label {
display: inline-block;
font-size: 12px; font-weight: 700; text-transform: uppercase;
letter-spacing: 0.1em; color: var(--amber);
padding: 6px 14px; border-radius: 6px;
background: rgba(245,158,11,0.08);
border: 1px solid rgba(245,158,11,0.15);
margin-bottom: 20px;
}
.section-title {
font-size: clamp(32px, 4vw, 48px);
font-weight: 800; letter-spacing: -0.02em;
line-height: 1.15;
margin-bottom: 16px;
}
.section-subtitle {
font-size: 17px; color: var(--text-secondary); line-height: 1.7;
}
.steps-grid {
display: grid; grid-template-columns: repeat(3, 1fr);
gap: 24px; max-width: 1100px; margin: 0 auto;
}
@media (max-width: 768px) { .steps-grid { grid-template-columns: 1fr; } }
.step-card {
position: relative; padding: 40px 32px;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 20px;
transition: all 0.4s;
overflow: hidden;
}
.step-card::before {
content: ''; position: absolute; inset: 0;
background: linear-gradient(180deg, rgba(139,92,246,0.04), transparent);
opacity: 0; transition: opacity 0.4s;
}
.step-card:hover::before { opacity: 1; }
.step-card:hover {
border-color: rgba(139,92,246,0.2);
transform: translateY(-4px);
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
}
.step-number {
display: inline-flex; align-items: center; justify-content: center;
width: 48px; height: 48px; border-radius: 14px;
font-size: 20px; font-weight: 800;
background: linear-gradient(135deg, rgba(245,158,11,0.12), rgba(139,92,246,0.12));
border: 1px solid rgba(245,158,11,0.2);
color: var(--amber);
margin-bottom: 24px;
position: relative; z-index: 1;
}
.step-card-title {
font-size: 22px; font-weight: 700;
margin-bottom: 12px; position: relative; z-index: 1;
}
.step-card-desc {
font-size: 15px; color: var(--text-secondary);
line-height: 1.7; position: relative; z-index: 1;
}
.step-connector {
display: none;
}
/* ── Features ───────────────────────────────────────── */
.features-section {
background: linear-gradient(180deg, transparent 0%, rgba(15,16,35,0.5) 50%, transparent 100%);
}
.features-grid {
display: grid; grid-template-columns: repeat(3, 1fr);
gap: 20px; max-width: 1100px; margin: 0 auto;
}
@media (max-width: 900px) { .features-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .features-grid { grid-template-columns: 1fr; } }
.feature-card {
padding: 32px 28px;
background: rgba(15,16,35,0.6);
border: 1px solid var(--border);
border-radius: 16px;
transition: all 0.3s;
}
.feature-card:hover {
border-color: rgba(139,92,246,0.25);
background: rgba(15,16,35,0.8);
transform: translateY(-2px);
}
.feature-icon {
width: 44px; height: 44px; border-radius: 12px;
display: flex; align-items: center; justify-content: center;
font-size: 22px; margin-bottom: 18px;
}
.feature-icon-amber { background: rgba(245,158,11,0.1); border: 1px solid rgba(245,158,11,0.15); }
.feature-icon-purple { background: rgba(139,92,246,0.1); border: 1px solid rgba(139,92,246,0.15); }
.feature-icon-blue { background: rgba(59,130,246,0.1); border: 1px solid rgba(59,130,246,0.15); }
.feature-icon-green { background: rgba(34,197,94,0.1); border: 1px solid rgba(34,197,94,0.15); }
.feature-title {
font-size: 17px; font-weight: 700; margin-bottom: 8px;
}
.feature-desc {
font-size: 14px; color: var(--text-secondary); line-height: 1.6;
}
/* ── Social Proof ───────────────────────────────────── */
.proof-section { text-align: center; }
.proof-logos {
display: flex; align-items: center; justify-content: center;
gap: 40px; margin-bottom: 48px; flex-wrap: wrap;
}
.proof-stat-row {
display: flex; align-items: center; justify-content: center;
gap: 60px; margin-bottom: 64px; flex-wrap: wrap;
}
.proof-stat { text-align: center; }
.proof-stat-value {
font-size: 42px; font-weight: 900;
background: linear-gradient(135deg, var(--amber), var(--purple));
-webkit-background-clip: text; -webkit-text-fill-color: transparent;
}
.proof-stat-label { font-size: 14px; color: var(--text-muted); margin-top: 4px; }
.testimonial-grid {
display: grid; grid-template-columns: repeat(3, 1fr);
gap: 20px; max-width: 1100px; margin: 0 auto;
}
@media (max-width: 768px) { .testimonial-grid { grid-template-columns: 1fr; } }
.testimonial-card {
padding: 28px;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: 16px;
text-align: left;
}
.testimonial-stars {
color: var(--amber); font-size: 14px; margin-bottom: 14px;
letter-spacing: 2px;
}
.testimonial-text {
font-size: 15px; color: var(--text-secondary);
line-height: 1.7; margin-bottom: 18px;
font-style: italic;
}
.testimonial-author {
display: flex; align-items: center; gap: 12px;
}
.testimonial-avatar {
width: 40px; height: 40px; border-radius: 50%;
background: linear-gradient(135deg, var(--purple), var(--blue));
display: flex; align-items: center; justify-content: center;
font-weight: 700; font-size: 16px; color: #fff;
}
.testimonial-name { font-size: 14px; font-weight: 700; }
.testimonial-role { font-size: 12px; color: var(--text-muted); }
/* ── Final CTA ──────────────────────────────────────── */
.cta-section {
text-align: center;
padding: 120px 32px;
position: relative;
}
.cta-glow {
position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
width: 600px; height: 400px; border-radius: 50%;
background: radial-gradient(ellipse, rgba(245,158,11,0.08), transparent 70%);
filter: blur(40px);
}
.cta-card {
position: relative; z-index: 2;
max-width: 700px; margin: 0 auto;
padding: 64px 48px;
background: var(--bg-card);
border: 1px solid rgba(245,158,11,0.15);
border-radius: 24px;
box-shadow: 0 0 80px rgba(245,158,11,0.05);
}
.cta-title {
font-size: clamp(28px, 4vw, 42px);
font-weight: 800; letter-spacing: -0.02em;
margin-bottom: 16px;
}
.cta-subtitle {
font-size: 17px; color: var(--text-secondary);
margin-bottom: 36px; line-height: 1.7;
}
.cta-btn {
padding: 16px 48px; border-radius: 12px; border: none;
font-size: 18px; font-weight: 800; cursor: pointer;
background: linear-gradient(135deg, var(--amber), var(--amber-dark));
color: #000; text-decoration: none;
display: inline-flex; align-items: center; gap: 10px;
transition: all 0.3s;
box-shadow: 0 4px 30px rgba(245,158,11,0.2);
}
.cta-btn:hover {
transform: translateY(-2px);
box-shadow: 0 8px 40px rgba(245,158,11,0.35);
}
.cta-note {
font-size: 13px; color: var(--text-muted); margin-top: 16px;
}
/* ── Footer ─────────────────────────────────────────── */
.footer {
border-top: 1px solid var(--border);
padding: 48px 32px;
}
.footer-inner {
max-width: 1100px; margin: 0 auto;
display: flex; align-items: center; justify-content: space-between;
flex-wrap: wrap; gap: 24px;
}
.footer-brand {
display: flex; align-items: center; gap: 10px;
}
.footer-brand-text {
font-size: 15px; font-weight: 700; color: var(--text-secondary);
}
.footer-brand-text span { color: var(--amber); }
.footer-links {
display: flex; gap: 24px;
}
.footer-link {
font-size: 13px; color: var(--text-muted);
text-decoration: none; transition: color 0.2s;
}
.footer-link:hover { color: var(--text); }
.footer-copy {
font-size: 12px; color: var(--text-muted);
}
/* ── Animations ─────────────────────────────────────── */
.fade-in {
opacity: 0; transform: translateY(30px);
transition: opacity 0.6s ease, transform 0.6s ease;
}
.fade-in.visible {
opacity: 1; transform: translateY(0);
}
/* ── Particle Canvas ────────────────────────────────── */
#particleCanvas {
position: fixed; top: 0; left: 0;
width: 100%; height: 100%;
z-index: 0; pointer-events: none; opacity: 0.35;
}
/* ── Mobile ─────────────────────────────────────────── */
@media (max-width: 768px) {
.nav { padding: 12px 20px; }
.nav-link { display: none; }
.hero { padding: 100px 20px 60px; }
.hero-stats { gap: 24px; }
.hero-stat-value { font-size: 22px; }
.section { padding: 80px 20px; }
.cta-card { padding: 40px 24px; }
.proof-stat-row { gap: 32px; }
.proof-stat-value { font-size: 32px; }
.hero-cta { padding: 14px 28px; font-size: 15px; }
}
</style>
</head>
<body>
<canvas id="particleCanvas"></canvas>
<!-- Navigation -->
<nav class="nav" id="nav">
<a href="/" class="nav-logo">
<div class="nav-logo-icon">🎯</div>
<div class="nav-logo-text">The<span>Niche</span>Quiz</div>
</a>
<div class="nav-links">
<a href="#how-it-works" class="nav-link">How It Works</a>
<a href="#features" class="nav-link">Features</a>
<a href="/login" class="nav-btn nav-btn-outline">Log In</a>
<a href="/signup" class="nav-btn nav-btn-primary">Start Free →</a>
</div>
</nav>
<!-- Hero Section -->
<section class="hero">
<div class="hero-bg"></div>
<div class="hero-grid"></div>
<div class="hero-orb hero-orb-1"></div>
<div class="hero-orb hero-orb-2"></div>
<div class="hero-orb hero-orb-3"></div>
<div class="hero-content">
<div class="hero-badge">
<span class="hero-badge-dot"></span>
AI-Powered Niche Discovery
</div>
<h1 class="hero-title">
<span class="hero-title-gradient">Find Your Perfect Ad Niche in 60 Seconds</span>
</h1>
<p class="hero-subtitle">
Our AI-powered quiz drills down to the niche of the niche of the niche — then generates 10 ready-to-run Facebook ad campaigns with copy, targeting, and AI-generated images.
</p>
<div class="hero-cta-group">
<a href="/signup" class="hero-cta hero-cta-primary">
Start the Quiz Free
<svg width="20" height="20" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M13 7l5 5m0 0l-5 5m5-5H6"/></svg>
</a>
<a href="#how-it-works" class="hero-cta hero-cta-secondary">
See How It Works
</a>
</div>
<div class="hero-stats">
<div class="hero-stat">
<div class="hero-stat-value">500+</div>
<div class="hero-stat-label">Marketers</div>
</div>
<div class="hero-stat">
<div class="hero-stat-value">5,000+</div>
<div class="hero-stat-label">Campaigns Generated</div>
</div>
<div class="hero-stat">
<div class="hero-stat-value">60s</div>
<div class="hero-stat-label">Quiz Time</div>
</div>
</div>
</div>
</section>
<!-- How It Works -->
<section class="section" id="how-it-works">
<div class="section-header fade-in">
<div class="section-label">How It Works</div>
<h2 class="section-title">From Zero to 10 Campaigns<br>in Under 5 Minutes</h2>
<p class="section-subtitle">Three simple steps to discover your most profitable niche and launch winning Facebook ads.</p>
</div>
<div class="steps-grid">
<div class="step-card fade-in">
<div class="step-number">1</div>
<h3 class="step-card-title">Take the 60-Second Quiz</h3>
<p class="step-card-desc">Pick your industry, then drill down through AI-suggested sub-niches and micro-niches. Our AI finds the specific angles that convert.</p>
</div>
<div class="step-card fade-in" style="transition-delay: 0.1s">
<div class="step-number">2</div>
<h3 class="step-card-title">AI Generates 10 Campaigns</h3>
<p class="step-card-desc">Get 10 complete ad campaigns instantly — each with unique copy, targeting parameters, and AI-generated creative images.</p>
</div>
<div class="step-card fade-in" style="transition-delay: 0.2s">
<div class="step-number">3</div>
<h3 class="step-card-title">Export & Launch</h3>
<p class="step-card-desc">Download a Facebook Ads Manager-ready CSV. Import it directly into Meta Ads Manager and go live in minutes.</p>
</div>
</div>
</section>
<!-- Features -->
<section class="section features-section" id="features">
<div class="section-header fade-in">
<div class="section-label">Features</div>
<h2 class="section-title">Everything You Need to<br>Dominate Your Niche</h2>
<p class="section-subtitle">Powered by Google Gemini AI and built for performance marketers who want results fast.</p>
</div>
<div class="features-grid">
<div class="feature-card fade-in">
<div class="feature-icon feature-icon-purple">🧠</div>
<h3 class="feature-title">AI-Powered Niche Discovery</h3>
<p class="feature-desc">Gemini AI analyzes your industry and surfaces ultra-specific micro-niches that your competitors haven't found yet.</p>
</div>
<div class="feature-card fade-in">
<div class="feature-icon feature-icon-amber"></div>
<h3 class="feature-title">10 Parallel Campaign Generation</h3>
<p class="feature-desc">Generate 10 unique sibling campaigns at once — each targeting a different angle within your niche.</p>
</div>
<div class="feature-card fade-in">
<div class="feature-icon feature-icon-blue">🎨</div>
<h3 class="feature-title">AI Image Generation</h3>
<p class="feature-desc">Create stunning ad creatives with our integrated AI image generator. No designer needed.</p>
</div>
<div class="feature-card fade-in">
<div class="feature-icon feature-icon-green">📊</div>
<h3 class="feature-title">Facebook-Ready CSV Export</h3>
<p class="feature-desc">One-click export to CSV formatted perfectly for Meta Ads Manager bulk upload. Instant launch.</p>
</div>
<div class="feature-card fade-in">
<div class="feature-icon feature-icon-purple">👁️</div>
<h3 class="feature-title">Real-Time Ad Preview</h3>
<p class="feature-desc">See exactly how your ads will look on Facebook before you spend a dollar. Edit copy live.</p>
</div>
<div class="feature-card fade-in">
<div class="feature-icon feature-icon-amber">🎯</div>
<h3 class="feature-title">Smart Targeting Suggestions</h3>
<p class="feature-desc">AI generates optimal age ranges, interests, behaviors, and demographics for each campaign.</p>
</div>
</div>
</section>
<!-- Social Proof -->
<section class="section proof-section" id="proof">
<div class="section-header fade-in">
<div class="section-label">Trusted by Marketers</div>
<h2 class="section-title">Results That Speak<br>for Themselves</h2>
</div>
<div class="proof-stat-row fade-in">
<div class="proof-stat">
<div class="proof-stat-value">500+</div>
<div class="proof-stat-label">Active Marketers</div>
</div>
<div class="proof-stat">
<div class="proof-stat-value">50K+</div>
<div class="proof-stat-label">Ads Generated</div>
</div>
<div class="proof-stat">
<div class="proof-stat-value">3.2x</div>
<div class="proof-stat-label">Avg. ROAS Improvement</div>
</div>
<div class="proof-stat">
<div class="proof-stat-value">92%</div>
<div class="proof-stat-label">Time Saved</div>
</div>
</div>
<div class="testimonial-grid">
<div class="testimonial-card fade-in">
<div class="testimonial-stars">★★★★★</div>
<p class="testimonial-text">"I found a micro-niche I never would have thought of. The AI-generated campaigns were so targeted, my CPA dropped 40% in the first week."</p>
<div class="testimonial-author">
<div class="testimonial-avatar">S</div>
<div>
<div class="testimonial-name">Sarah M.</div>
<div class="testimonial-role">E-commerce Brand Owner</div>
</div>
</div>
</div>
<div class="testimonial-card fade-in" style="transition-delay: 0.1s">
<div class="testimonial-stars">★★★★★</div>
<p class="testimonial-text">"This replaced my entire niche research process. What used to take me 2 days now takes 5 minutes. The CSV export alone is worth it."</p>
<div class="testimonial-author">
<div class="testimonial-avatar">J</div>
<div>
<div class="testimonial-name">Jake R.</div>
<div class="testimonial-role">Media Buyer, Agency</div>
</div>
</div>
</div>
<div class="testimonial-card fade-in" style="transition-delay: 0.2s">
<div class="testimonial-stars">★★★★★</div>
<p class="testimonial-text">"The parallel campaign feature is genius. I test 10 different angles at once and let the data tell me which niche to scale. Game changer."</p>
<div class="testimonial-author">
<div class="testimonial-avatar">M</div>
<div>
<div class="testimonial-name">Maria L.</div>
<div class="testimonial-role">Digital Marketing Consultant</div>
</div>
</div>
</div>
</div>
</section>
<!-- Final CTA -->
<section class="cta-section">
<div class="cta-glow"></div>
<div class="cta-card fade-in">
<h2 class="cta-title">Ready to Find Your<br>Perfect Niche?</h2>
<p class="cta-subtitle">Join 500+ marketers who've found their most profitable niches with AI. It takes 60 seconds to start.</p>
<a href="/signup" class="cta-btn">
Start the Quiz Free
<svg width="20" height="20" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2.5" d="M13 7l5 5m0 0l-5 5m5-5H6"/></svg>
</a>
<p class="cta-note">No credit card required · Free to start</p>
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="footer-inner">
<div class="footer-brand">
<span style="font-size:18px;">🎯</span>
<div class="footer-brand-text">The<span>Niche</span>Quiz</div>
</div>
<div class="footer-links">
<a href="#how-it-works" class="footer-link">How It Works</a>
<a href="#features" class="footer-link">Features</a>
<a href="/login" class="footer-link">Log In</a>
<a href="/signup" class="footer-link">Sign Up</a>
</div>
<div class="footer-copy">© 2025 TheNicheQuiz.com. All rights reserved.</div>
</div>
</footer>
<script>
// Particles
(function() {
const canvas = document.getElementById('particleCanvas');
if (!canvas) return;
const ctx = canvas.getContext('2d');
let particles = [];
const COUNT = 50;
function resize() { canvas.width = window.innerWidth; canvas.height = window.innerHeight; }
resize();
window.addEventListener('resize', resize);
class P {
constructor() { this.reset(); }
reset() {
this.x = Math.random() * canvas.width;
this.y = Math.random() * canvas.height;
this.vx = (Math.random() - 0.5) * 0.25;
this.vy = (Math.random() - 0.5) * 0.25;
this.r = Math.random() * 1.5 + 0.5;
this.a = Math.random() * 0.4 + 0.1;
const c = ['245,158,11', '139,92,246', '59,130,246'];
this.c = c[Math.floor(Math.random() * c.length)];
}
update() {
this.x += this.vx; this.y += this.vy;
if (this.x < 0 || this.x > canvas.width) this.vx *= -1;
if (this.y < 0 || this.y > canvas.height) this.vy *= -1;
}
draw() {
ctx.beginPath();
ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2);
ctx.fillStyle = `rgba(${this.c},${this.a})`;
ctx.fill();
}
}
for (let i = 0; i < COUNT; i++) particles.push(new P());
function loop() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
for (let i = 0; i < particles.length; i++) {
particles[i].update();
particles[i].draw();
for (let j = i + 1; j < particles.length; j++) {
const dx = particles[i].x - particles[j].x, dy = particles[i].y - particles[j].y;
const d = Math.sqrt(dx * dx + dy * dy);
if (d < 140) {
ctx.beginPath();
ctx.moveTo(particles[i].x, particles[i].y);
ctx.lineTo(particles[j].x, particles[j].y);
ctx.strokeStyle = `rgba(255,255,255,${0.025 * (1 - d / 140)})`;
ctx.lineWidth = 0.5;
ctx.stroke();
}
}
}
requestAnimationFrame(loop);
}
loop();
})();
// Nav scroll
window.addEventListener('scroll', () => {
document.getElementById('nav').classList.toggle('scrolled', window.scrollY > 50);
});
// Scroll fade-in
const observer = new IntersectionObserver((entries) => {
entries.forEach(e => { if (e.isIntersecting) { e.target.classList.add('visible'); } });
}, { threshold: 0.1, rootMargin: '0px 0px -40px 0px' });
document.querySelectorAll('.fade-in').forEach(el => observer.observe(el));
</script>
</body>
</html>