Thinking Machines Inkling – Gambling Casinos
via BaseTen · Generated
- AIMAC Debt 14.94
- Cost $0.08
- Total Violations 7
- HTML Size 81 KB
- Em Dashes 7
Screenshot
View Live Page
Accessibility Issues Found
3 Critical 4 Serious
-
link-name serious 4 instances
Links must have discernible text
Example HTML
<a href="#" class="w-10 h-10 rounded-lg bg-brand-800 flex items-center justify-center text-gray-400 hover:text-brand-gold hover:bg-brand-700 transi... -
select-name critical 3 instances
Select element must have an accessible name
Example HTML
<select id="filterType" class="w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-3 text-white focus:outline-none focus:border-brand-gold">
Artifacts
View Generated HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BetEdge - Premium Casino News, Guides & Betting Tips</title>
<script src="https://cdn.tailwindcss.com"></script>
<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@300;400;500;600;700;800;900&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/ScrollTrigger.min.js"></script>
<script src="https://unpkg.com/lucide@latest"></script>
<script>
tailwind.config = {
theme: {
extend: {
fontFamily: {
sans: ['Inter', 'sans-serif'],
display: ['Playfair Display', 'serif'],
},
colors: {
brand: {
900: '#0a0e1a',
800: '#111827',
700: '#1a2332',
600: '#243447',
500: '#2e4160',
gold: '#d4af37',
goldLight: '#f0d878',
goldDark: '#b8941f',
accent: '#e85d4e',
}
}
}
}
}
</script>
<style>
body { font-family: 'Inter', sans-serif; }
.font-display { font-family: 'Playfair Display', serif; }
.gold-gradient {
background: linear-gradient(135deg, #d4af37 0%, #f0d878 50%, #d4af37 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
}
.gold-border {
border-image: linear-gradient(135deg, #d4af37, #f0d878, #d4af37) 1;
}
.card-glow:hover {
box-shadow: 0 0 40px rgba(212, 175, 55, 0.15);
}
.noise-overlay {
position: relative;
overflow: hidden;
}
.noise-overlay::before {
content: '';
position: absolute;
inset: 0;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");
pointer-events: none;
z-index: 0;
}
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-10px); }
}
.float-anim { animation: float 6s ease-in-out infinite; }
@keyframes shimmer {
0% { background-position: -200% center; }
100% { background-position: 200% center; }
}
.shimmer-text {
background: linear-gradient(90deg, #d4af37 0%, #f0d878 40%, #d4af37 80%);
background-size: 200% auto;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
animation: shimmer 3s linear infinite;
}
.bonus-card-active {
border-color: #d4af37 !important;
background: linear-gradient(135deg, rgba(212,175,55,0.08) 0%, rgba(212,175,55,0.02) 100%);
}
.scroll-reveal {
opacity: 0;
transform: translateY(30px);
}
/* Custom scrollbar */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #0a0e1a; }
::-webkit-scrollbar-thumb { background: #2e4160; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #d4af37; }
.nav-link {
position: relative;
}
.nav-link::after {
content: '';
position: absolute;
bottom: -4px;
left: 0;
width: 0;
height: 2px;
background: #d4af37;
transition: width 0.3s ease;
}
.nav-link:hover::after {
width: 100%;
}
</style>
</head>
<body class="bg-brand-900 text-gray-300 antialiased noise-overlay">
<!-- Navigation -->
<nav id="navbar" class="fixed top-0 left-0 right-0 z-50 transition-all duration-500 bg-brand-900/80 backdrop-blur-xl border-b border-white/5">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between h-20">
<!-- Logo -->
<a href="#" class="flex items-center gap-3 group">
<div class="w-10 h-10 rounded-xl bg-gradient-to-br from-brand-gold to-brand-goldDark flex items-center justify-center shadow-lg shadow-brand-gold/20 group-hover:shadow-brand-gold/40 transition-shadow">
<i data-lucide="diamonds" class="w-5 h-5 text-brand-900"></i>
</div>
<div class="flex flex-col">
<span class="text-white font-bold text-xl tracking-tight leading-none">Bet<span class="text-brand-gold">Edge</span></span>
<span class="text-[10px] text-gray-500 uppercase tracking-[0.2em] leading-none mt-0.5">Premium Gaming</span>
</div>
</a>
<!-- Desktop Nav -->
<div class="hidden lg:flex items-center gap-8">
<a href="#news" class="nav-link text-sm font-medium text-gray-300 hover:text-white transition-colors">News</a>
<a href="#sports" class="nav-link text-sm font-medium text-gray-300 hover:text-white transition-colors">Sports Betting</a>
<a href="#poker" class="nav-link text-sm font-medium text-gray-300 hover:text-white transition-colors">Poker</a>
<a href="#reviews" class="nav-link text-sm font-medium text-gray-300 hover:text-white transition-colors">Reviews</a>
<a href="#finder" class="nav-link text-sm font-medium text-gray-300 hover:text-white transition-colors">Casino Finder</a>
<a href="#support" class="nav-link text-sm font-medium text-gray-300 hover:text-white transition-colors">Support</a>
</div>
<!-- CTA + Mobile Toggle -->
<div class="flex items-center gap-4">
<a href="#bonus" class="hidden sm:inline-flex items-center gap-2 px-5 py-2.5 bg-brand-gold text-brand-900 text-sm font-bold rounded-lg hover:bg-brand-goldLight transition-all shadow-lg shadow-brand-gold/20 hover:shadow-brand-gold/40">
<span>Get Bonus</span>
<i data-lucide="arrow-right" class="w-4 h-4"></i>
</a>
<button id="mobileMenuBtn" class="lg:hidden p-2 text-white">
<i data-lucide="menu" class="w-6 h-6"></i>
</button>
</div>
</div>
</div>
<!-- Mobile Menu -->
<div id="mobileMenu" class="hidden lg:hidden border-t border-white/5 bg-brand-800/95 backdrop-blur-xl">
<div class="px-4 py-6 space-y-4">
<a href="#news" class="block text-gray-300 hover:text-brand-gold py-2">News</a>
<a href="#sports" class="block text-gray-300 hover:text-brand-gold py-2">Sports Betting</a>
<a href="#poker" class="block text-gray-300 hover:text-brand-gold py-2">Poker</a>
<a href="#reviews" class="block text-gray-300 hover:text-brand-gold py-2">Reviews</a>
<a href="#finder" class="block text-gray-300 hover:text-brand-gold py-2">Casino Finder</a>
<a href="#support" class="block text-gray-300 hover:text-brand-gold py-2">Support</a>
</div>
</div>
</nav>
<!-- Hero Section -->
<section class="relative min-h-screen flex items-center pt-20 overflow-hidden">
<!-- Background Image with Overlay -->
<div class="absolute inset-0 z-0">
<img src="https://picsum.photos/1920/1080?grayscale&blur=2" alt="" class="w-full h-full object-cover opacity-40">
<div class="absolute inset-0 bg-gradient-to-b from-brand-900/80 via-brand-900/90 to-brand-900"></div>
<div class="absolute inset-0 bg-gradient-to-r from-brand-900 via-brand-900/80 to-transparent"></div>
</div>
<!-- Decorative Elements -->
<div class="absolute top-40 right-20 w-72 h-72 bg-brand-gold/10 rounded-full blur-[100px] z-0 float-anim"></div>
<div class="absolute bottom-20 left-10 w-96 h-96 bg-brand-accent/5 rounded-full blur-[120px] z-0"></div>
<div class="relative z-10 max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-20 lg:py-32">
<div class="grid lg:grid-cols-2 gap-12 items-center">
<div class="space-y-8">
<div class="inline-flex items-center gap-2 px-4 py-2 bg-white/5 border border-white/10 rounded-full backdrop-blur-sm">
<span class="w-2 h-2 bg-green-400 rounded-full animate-pulse"></span>
<span class="text-sm text-gray-400">Trusted by 450,000+ players worldwide</span>
</div>
<h1 class="font-display text-5xl sm:text-6xl lg:text-7xl font-bold text-white leading-[1.1]">
Master the Game.<br>
<span class="gold-gradient italic">Win with Edge.</span>
</h1>
<p class="text-lg text-gray-400 leading-relaxed max-w-lg">
Your definitive source for casino intelligence, sports betting analysis, and strategic gaming guides. We decode the odds so you can play smarter, bet sharper, and win bigger.
</p>
<div class="flex flex-wrap gap-4">
<a href="#finder" class="group inline-flex items-center gap-3 px-8 py-4 bg-brand-gold text-brand-900 font-bold rounded-xl hover:bg-brand-goldLight transition-all shadow-xl shadow-brand-gold/25">
<span>Explore Casinos</span>
<i data-lucide="search" class="w-5 h-5 group-hover:translate-x-1 transition-transform"></i>
</a>
<a href="#sports" class="inline-flex items-center gap-3 px-8 py-4 border border-white/20 text-white font-semibold rounded-xl hover:bg-white/5 transition-all">
<i data-lucide="trophy" class="w-5 h-5 text-brand-gold"></i>
<span>View Odds</span>
</a>
</div>
<!-- Stats -->
<div class="grid grid-cols-3 gap-8 pt-8 border-t border-white/10">
<div>
<div class="text-3xl font-bold text-white counter" data-target="500">0</div>
<div class="text-sm text-gray-500 mt-1">Casino Reviews</div>
</div>
<div>
<div class="text-3xl font-bold text-white counter" data-target="1200">0</div>
<div class="text-sm text-gray-500 mt-1">Betting Guides</div>
</div>
<div>
<div class="text-3xl font-bold text-white counter" data-target="85">0</div>
<div class="text-sm text-gray-500 mt-1">Expert Analysts</div>
</div>
</div>
</div>
<!-- Hero Card -->
<div class="relative hidden lg:block">
<div class="absolute -inset-4 bg-gradient-to-r from-brand-gold/20 to-brand-accent/20 rounded-3xl blur-2xl"></div>
<div class="relative bg-brand-800/60 backdrop-blur-xl border border-white/10 rounded-2xl p-8 shadow-2xl">
<div class="flex items-center justify-between mb-6">
<div class="flex items-center gap-3">
<div class="w-3 h-3 bg-green-500 rounded-full animate-pulse"></div>
<span class="text-sm text-gray-400">Live Market Data</span>
</div>
<span class="text-xs text-brand-gold font-semibold bg-brand-gold/10 px-3 py-1 rounded-full">Updated Now</span>
</div>
<div class="space-y-4">
<div class="flex items-center justify-between p-4 bg-brand-700/50 rounded-xl border border-white/5">
<div class="flex items-center gap-3">
<div class="w-10 h-10 rounded-lg bg-blue-500/20 flex items-center justify-center">
<i data-lucide="football" class="w-5 h-5 text-blue-400"></i>
</div>
<div>
<div class="text-white font-semibold">Premier League</div>
<div class="text-xs text-gray-500">Man City vs Arsenal</div>
</div>
</div>
<div class="text-right">
<div class="text-brand-gold font-bold">2.15</div>
<div class="text-xs text-gray-500">Home Win</div>
</div>
</div>
<div class="flex items-center justify-between p-4 bg-brand-700/50 rounded-xl border border-white/5">
<div class="flex items-center gap-3">
<div class="w-10 h-10 rounded-lg bg-red-500/20 flex items-center justify-center">
<i data-lucide="swords" class="w-5 h-5 text-red-400"></i>
</div>
<div>
<div class="text-white font-semibold">NBA Finals</div>
<div class="text-xs text-gray-500">Celtics @ Lakers</div>
</div>
</div>
<div class="text-right">
<div class="text-brand-gold font-bold">1.85</div>
<div class="text-xs text-gray-500">Away Win</div>
</div>
</div>
<div class="flex items-center justify-between p-4 bg-brand-700/50 rounded-xl border border-white/5">
<div class="flex items-center gap-3">
<div class="w-10 h-10 rounded-lg bg-purple-500/20 flex items-center justify-center">
<i data-lucide="gamepad-2" class="w-5 h-5 text-purple-400"></i>
</div>
<div>
<div class="text-white font-semibold">eSports</div>
<div class="text-xs text-gray-500">LoL Worlds</div>
</div>
</div>
<div class="text-right">
<div class="text-brand-gold font-bold">3.20</div>
<div class="text-xs text-gray-500">Underdog</div>
</div>
</div>
</div>
<div class="mt-6 pt-6 border-t border-white/10 flex items-center justify-between">
<div class="text-sm text-gray-400">24hr volume</div>
<div class="text-xl font-bold text-white">$2.4M</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Featured Categories -->
<section class="py-20 relative">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-16 scroll-reveal">
<span class="text-brand-gold text-sm font-semibold tracking-widest uppercase mb-3 block">What We Cover</span>
<h2 class="font-display text-4xl sm:text-5xl font-bold text-white mb-4">Expertise Across Every Table</h2>
<p class="text-gray-400 max-w-2xl mx-auto text-lg">From high-stakes poker tournaments to precision sports wagering, our analysts cover the full spectrum of competitive gaming.</p>
</div>
<div class="grid md:grid-cols-2 lg:grid-cols-4 gap-6">
<!-- Card 1 -->
<div class="group scroll-reveal bg-brand-800/40 border border-white/5 rounded-2xl p-6 hover:border-brand-gold/30 transition-all duration-300 card-glow">
<div class="w-14 h-14 rounded-xl bg-brand-gold/10 flex items-center justify-center mb-5 group-hover:bg-brand-gold/20 transition-colors">
<i data-lucide="target" class="w-7 h-7 text-brand-gold"></i>
</div>
<h3 class="text-xl font-bold text-white mb-2">Sports Betting</h3>
<p class="text-gray-400 text-sm leading-relaxed mb-4">Deep analysis of odds, line movements, and value bets across football, basketball, and emerging eSports markets.</p>
<a href="#sports" class="inline-flex items-center text-brand-gold text-sm font-semibold hover:gap-2 gap-1 transition-all">
Read Analysis <i data-lucide="arrow-right" class="w-4 h-4"></i>
</a>
</div>
<!-- Card 2 -->
<div class="group scroll-reveal bg-brand-800/40 border border-white/5 rounded-2xl p-6 hover:border-brand-gold/30 transition-all duration-300 card-glow" style="transition-delay: 100ms">
<div class="w-14 h-14 rounded-xl bg-brand-gold/10 flex items-center justify-center mb-5 group-hover:bg-brand-gold/20 transition-colors">
<i data-lucide="crown" class="w-7 h-7 text-brand-gold"></i>
</div>
<h3 class="text-xl font-bold text-white mb-2">Jackpot Tracking</h3>
<p class="text-gray-400 text-sm leading-relaxed mb-4">Real-time monitoring of progressive slots and mega jackpots. Know exactly when variance swings in your favor.</p>
<a href="#jackpot" class="inline-flex items-center text-brand-gold text-sm font-semibold hover:gap-2 gap-1 transition-all">
Track Winners <i data-lucide="arrow-right" class="w-4 h-4"></i>
</a>
</div>
<!-- Card 3 -->
<div class="group scroll-reveal bg-brand-800/40 border border-white/5 rounded-2xl p-6 hover:border-brand-gold/30 transition-all duration-300 card-glow" style="transition-delay: 200ms">
<div class="w-14 h-14 rounded-xl bg-brand-gold/10 flex items-center justify-center mb-5 group-hover:bg-brand-gold/20 transition-colors">
<i data-lucide="spade" class="w-7 h-7 text-brand-gold"></i>
</div>
<h3 class="text-xl font-bold text-white mb-2">Poker Strategy</h3>
<p class="text-gray-400 text-sm leading-relaxed mb-4">Master bluff frequencies, pot odds, and position play with guides crafted by professional tournament players.</p>
<a href="#poker" class="inline-flex items-center text-brand-gold text-sm font-semibold hover:gap-2 gap-1 transition-all">
Learn Strategy <i data-lucide="arrow-right" class="w-4 h-4"></i>
</a>
</div>
<!-- Card 4 -->
<div class="group scroll-reveal bg-brand-800/40 border border-white/5 rounded-2xl p-6 hover:border-brand-gold/30 transition-all duration-300 card-glow" style="transition-delay: 300ms">
<div class="w-14 h-14 rounded-xl bg-brand-gold/10 flex items-center justify-center mb-5 group-hover:bg-brand-gold/20 transition-colors">
<i data-lucide="shield-check" class="w-7 h-7 text-brand-gold"></i>
</div>
<h3 class="text-xl font-bold text-white mb-2">Casino Reviews</h3>
<p class="text-gray-400 text-sm leading-relaxed mb-4">Unbiased assessments of licensing, payout speeds, game libraries, and bonus terms for top-tier operators.</p>
<a href="#reviews" class="inline-flex items-center text-brand-gold text-sm font-semibold hover:gap-2 gap-1 transition-all">
Read Reviews <i data-lucide="arrow-right" class="w-4 h-4"></i>
</a>
</div>
</div>
</div>
</section>
<!-- Sports Betting Section -->
<section id="sports" class="py-24 relative">
<div class="absolute top-0 right-0 w-1/3 h-full bg-gradient-to-l from-brand-gold/3 to-transparent z-0"></div>
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
<div class="grid lg:grid-cols-2 gap-16 items-center">
<div class="order-2 lg:order-1 scroll-reveal">
<img src="https://picsum.photos/600/500?grayscale" alt="Sports betting analysis" class="rounded-2xl shadow-2xl border border-white/10 w-full object-cover h-[450px]">
<div class="mt-6 grid grid-cols-2 gap-4">
<div class="bg-brand-800/50 border border-white/5 rounded-xl p-4">
<div class="text-2xl font-bold text-brand-gold">94%</div>
<div class="text-sm text-gray-400 mt-1">Prediction Accuracy</div>
</div>
<div class="bg-brand-800/50 border border-white/5 rounded-xl p-4">
<div class="text-2xl font-bold text-brand-gold">50+</div>
<div class="text-sm text-gray-400 mt-1">Leagues Covered</div>
</div>
</div>
</div>
<div class="order-1 lg:order-2 scroll-reveal">
<span class="text-brand-gold text-sm font-semibold tracking-widest uppercase mb-3 block">Sports Wagering</span>
<h2 class="font-display text-4xl sm:text-5xl font-bold text-white mb-6 leading-tight">Data-Driven Betting for Maximum Returns</h2>
<div class="space-y-4 text-gray-400 leading-relaxed">
<p>Sports betting is not about luck—it's about understanding variance, analyzing statistical trends, and identifying value where the market has mispriced an outcome. At BetEdge, our analysts process thousands of data points across every major sporting league to deliver actionable intelligence.</p>
<p>We cover everything from Premier League matchups with deep xG (expected goals) analysis to NBA player prop bets calculated through advanced efficiency metrics. Our stake recommendations are always calibrated to your bankroll, emphasizing sustainable growth over reckless high-variance plays.</p>
<p>Understanding the house edge is critical. Even the sharpest bettor faces a built-in disadvantage through the bookmaker's margin, typically ranging from 2% to 8% depending on the market. Our guides teach you how to reduce this impact through line shopping, arbitrage opportunities, and disciplined unit sizing.</p>
</div>
<div class="mt-8 space-y-3">
<div class="flex items-center gap-3">
<div class="w-6 h-6 rounded-full bg-brand-gold/20 flex items-center justify-center">
<i data-lucide="check" class="w-3 h-3 text-brand-gold"></i>
</div>
<span class="text-gray-300">Live odds comparison across 40+ bookmakers</span>
</div>
<div class="flex items-center gap-3">
<div class="w-6 h-6 rounded-full bg-brand-gold/20 flex items-center justify-center">
<i data-lucide="check" class="w-3 h-3 text-brand-gold"></i>
</div>
<span class="text-gray-300">Daily expert picks with reasoning</span>
</div>
<div class="flex items-center gap-3">
<div class="w-6 h-6 rounded-full bg-brand-gold/20 flex items-center justify-center">
<i data-lucide="check" class="w-3 h-3 text-brand-gold"></i>
</div>
<span class="text-gray-300">Bankroll management calculators</span>
</div>
</div>
<div class="mt-10">
<a href="#" class="inline-flex items-center gap-2 px-6 py-3 bg-white/5 border border-white/10 rounded-lg text-white font-semibold hover:bg-white/10 transition-all">
View Today's Odds
<i data-lucide="trending-up" class="w-4 h-4 text-brand-gold"></i>
</a>
</div>
</div>
</div>
</div>
</section>
<!-- Jackpot Winners Section -->
<section id="jackpot" class="py-24 bg-brand-800/30 relative">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-16 scroll-reveal">
<span class="text-brand-gold text-sm font-semibold tracking-widest uppercase mb-3 block">Big Wins</span>
<h2 class="font-display text-4xl sm:text-5xl font-bold text-white mb-4">Jackpot Winners & Progressive Tracking</h2>
<p class="text-gray-400 max-w-2xl mx-auto text-lg">We celebrate the life-changing spins and track every major progressive pool across the global casino network.</p>
</div>
<div class="grid lg:grid-cols-3 gap-8">
<!-- Main Feature -->
<div class="lg:col-span-2 scroll-reveal">
<div class="bg-brand-800/50 border border-white/5 rounded-2xl overflow-hidden">
<img src="https://picsum.photos/800/450?grayscale" alt="Jackpot celebration" class="w-full h-64 object-cover">
<div class="p-8">
<div class="flex items-center gap-3 mb-4">
<span class="px-3 py-1 bg-green-500/20 text-green-400 text-xs font-bold rounded-full">RECENT WIN</span>
<span class="text-gray-500 text-sm">March 2024</span>
</div>
<h3 class="font-display text-2xl font-bold text-white mb-3">Mega Moolah Pays Out €18.2 Million</h3>
<p class="text-gray-400 leading-relaxed mb-6">A 28-year-old software developer from Norway struck gold on a €0.25 spin, triggering the Mega Moolah Mega Jackpot after 47 minutes of play. This marks the third largest online slot payout in European history, with the winner opting for the lump-sum payout of €13.7 million after taxes.</p>
<p class="text-gray-400 leading-relaxed mb-6">The jackpot had been building for 11 weeks, reaching a record-breaking pool that attracted over 2 million active spins in the final 24 hours before the win. Our tracking system flagged the pool as "hot" 72 hours prior, with variance indicators suggesting an imminent payout based on historical cycle analysis.</p>
<a href="#" class="inline-flex items-center gap-2 text-brand-gold font-semibold hover:gap-3 transition-all">
Read Full Story <i data-lucide="arrow-right" class="w-4 h-4"></i>
</a>
</div>
</div>
</div>
<!-- Side List -->
<div class="space-y-6 scroll-reveal">
<div class="bg-brand-800/40 border border-white/5 rounded-2xl p-6">
<h4 class="text-white font-bold mb-4 flex items-center gap-2">
<i data-lucide="trophy" class="w-5 h-5 text-brand-gold"></i>
Top 5 Recent Wins
</h4>
<div class="space-y-4">
<div class="flex items-center justify-between p-3 bg-brand-700/30 rounded-lg">
<div>
<div class="text-white font-medium text-sm">Hall of Gods</div>
<div class="text-xs text-gray-500">Sweden</div>
</div>
<div class="text-brand-gold font-bold text-sm">€7.8M</div>
</div>
<div class="flex items-center justify-between p-3 bg-brand-700/30 rounded-lg">
<div>
<div class="text-white font-medium text-sm">Mega Fortune</div>
<div class="text-xs text-gray-500">Finland</div>
</div>
<div class="text-brand-gold font-bold text-sm">€4.2M</div>
</div>
<div class="flex items-center justify-between p-3 bg-brand-700/30 rounded-lg">
<div>
<div class="text-white font-medium text-sm">Arabian Nights</div>
<div class="text-xs text-gray-500">Canada</div>
</div>
<div class="text-brand-gold font-bold text-sm">€3.1M</div>
</div>
<div class="flex items-center justify-between p-3 bg-brand-700/30 rounded-lg">
<div>
<div class="text-white font-medium text-sm">Divine Fortune</div>
<div class="text-xs text-gray-500">UK</div>
</div>
<div class="text-brand-gold font-bold text-sm">€2.9M</div>
</div>
<div class="flex items-center justify-between p-3 bg-brand-700/30 rounded-lg">
<div>
<div class="text-white font-medium text-sm">Jackpot Giant</div>
<div class="text-xs text-gray-500">Germany</div>
</div>
<div class="text-brand-gold font-bold text-sm">€2.4M</div>
</div>
</div>
</div>
<div class="bg-gradient-to-br from-brand-gold/20 to-brand-gold/5 border border-brand-gold/20 rounded-2xl p-6">
<h4 class="text-white font-bold mb-2">Current Hot Pool</h4>
<div class="text-3xl font-bold gold-gradient mb-1">€14,750,000</div>
<div class="text-sm text-gray-400 mb-3">Mega Moolah Mega</div>
<div class="w-full bg-brand-900 rounded-full h-2">
<div class="bg-brand-gold h-2 rounded-full" style="width: 78%"></div>
</div>
<div class="flex justify-between text-xs text-gray-500 mt-1">
<span>Seed: €1M</span>
<span>78% Full</span>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Poker Room Section -->
<section id="poker" class="py-24 relative">
<div class="absolute bottom-0 left-0 w-1/3 h-2/3 bg-gradient-to-t from-brand-accent/5 to-transparent z-0"></div>
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
<div class="grid lg:grid-cols-2 gap-16 items-center">
<div class="scroll-reveal">
<span class="text-brand-gold text-sm font-semibold tracking-widest uppercase mb-3 block">Poker Room</span>
<h2 class="font-display text-4xl sm:text-5xl font-bold text-white mb-6 leading-tight">Strategic Depth for Every Skill Level</h2>
<div class="space-y-4 text-gray-400 leading-relaxed">
<p>Poker is the ultimate test of skill, psychology, and mathematical precision. Unlike pure games of chance, long-term success in poker depends on your ability to calculate pot odds, read opponent tendencies, and maintain emotional discipline through inevitable downswings.</p>
<p>Our poker section breaks down complex concepts into actionable strategies. Learn optimal pre-flop ranges for 6-max and full-ring tables, understand implied odds for drawing hands, and master the art of position-based aggression. We cover Texas Hold'em, Omaha Hi-Lo, and emerging formats like Short Deck.</p>
<p>Bankroll management is non-negotiable for serious players. We recommend maintaining at least 30 buy-ins for your current stake level to withstand natural variance. A player with a 5bb/100 win rate can still experience 20,000-hand break-even stretches—understanding this statistical reality is what separates professionals from recreational gamblers.</p>
</div>
<div class="mt-8 grid grid-cols-2 gap-4">
<div class="p-4 bg-brand-800/40 border border-white/5 rounded-xl">
<i data-lucide="brain" class="w-8 h-8 text-brand-gold mb-3"></i>
<h4 class="text-white font-bold mb-1">Mental Game</h4>
<p class="text-sm text-gray-500">Tilt control and focus techniques used by pros.</p>
</div>
<div class="p-4 bg-brand-800/40 border border-white/5 rounded-xl">
<i data-lucide="calculator" class="w-8 h-8 text-brand-gold mb-3"></i>
<h4 class="text-white font-bold mb-1">Math Essentials</h4>
<p class="text-sm text-gray-500">EV calculations, equity analysis, and ranges.</p>
</div>
</div>
<div class="mt-8">
<a href="#" class="inline-flex items-center gap-2 px-6 py-3 bg-brand-gold text-brand-900 font-bold rounded-lg hover:bg-brand-goldLight transition-all">
Read Poker Rules
<i data-lucide="book-open" class="w-4 h-4"></i>
</a>
</div>
</div>
<div class="scroll-reveal">
<img src="https://picsum.photos/600/500" alt="Poker table strategy" class="rounded-2xl shadow-2xl border border-white/10 w-full object-cover h-[500px]">
<div class="mt-6 bg-brand-800/40 border border-white/5 rounded-xl p-6">
<h4 class="text-white font-bold mb-4 flex items-center gap-2">
<i data-lucide="users" class="w-5 h-5 text-brand-gold"></i>
Featured Tournaments
</h4>
<div class="space-y-3">
<div class="flex items-center justify-between p-3 bg-brand-700/30 rounded-lg">
<div class="flex items-center gap-3">
<div class="w-8 h-8 rounded bg-blue-500/20 flex items-center justify-center">
<span class="text-blue-400 text-xs font-bold">WS</span>
</div>
<div>
<div class="text-white text-sm font-medium">World Series</div>
<div class="text-xs text-gray-500">Las Vegas, NV</div>
</div>
</div>
<div class="text-right">
<div class="text-brand-gold font-bold">$10M GTD</div>
<div class="text-xs text-gray-500">May 2025</div>
</div>
</div>
<div class="flex items-center justify-between p-3 bg-brand-700/30 rounded-lg">
<div class="flex items-center gap-3">
<div class="w-8 h-8 rounded bg-red-500/20 flex items-center justify-center">
<span class="text-red-400 text-xs font-bold">EPT</span>
</div>
<div>
<div class="text-white text-sm font-medium">European Poker Tour</div>
<div class="text-xs text-gray-500">Barcelona, ES</div>
</div>
</div>
<div class="text-right">
<div class="text-brand-gold font-bold">€5M GTD</div>
<div class="text-xs text-gray-500">Aug 2025</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Bonus Finder Interactive -->
<section id="bonus" class="py-24 relative overflow-hidden">
<div class="absolute inset-0 bg-gradient-to-b from-brand-800/50 to-brand-900"></div>
<div class="absolute top-20 left-20 w-64 h-64 bg-brand-gold/5 rounded-full blur-[80px]"></div>
<div class="absolute bottom-20 right-20 w-64 h-64 bg-brand-accent/5 rounded-full blur-[80px]"></div>
<div class="max-w-5xl mx-auto px-4 sm:px-6 lg:px-8 relative z-10">
<div class="text-center mb-12 scroll-reveal">
<span class="text-brand-gold text-sm font-semibold tracking-widest uppercase mb-3 block">Bonus Finder</span>
<h2 class="font-display text-4xl sm:text-5xl font-bold text-white mb-4">Find Your Perfect Bonus</h2>
<p class="text-gray-400 max-w-2xl mx-auto text-lg">Filter through our verified offers by type, wagering requirements, and game preference. All bonuses verified within 48 hours.</p>
</div>
<!-- Filter Controls -->
<div class="bg-brand-800/60 backdrop-blur-xl border border-white/10 rounded-2xl p-6 mb-8 scroll-reveal">
<div class="grid sm:grid-cols-4 gap-4">
<div>
<label class="block text-sm text-gray-400 mb-2">Bonus Type</label>
<select id="filterType" class="w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-3 text-white focus:outline-none focus:border-brand-gold">
<option value="all">All Types</option>
<option value="welcome">Welcome Bonus</option>
<option value="free-spins">Free Spins</option>
<option value="cashback">Cashback</option>
<option value="no-deposit">No Deposit</option>
</select>
</div>
<div>
<label class="block text-sm text-gray-400 mb-2">Wagering</label>
<select id="filterWager" class="w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-3 text-white focus:outline-none focus:border-brand-gold">
<option value="all">Any</option>
<option value="low">Low (< 25x)</option>
<option value="medium">Medium (25-40x)</option>
<option value="high">High (40x+)</option>
</select>
</div>
<div>
<label class="block text-sm text-gray-400 mb-2">Game</label>
<select id="filterGame" class="w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-3 text-white focus:outline-none focus:border-brand-gold">
<option value="all">All Games</option>
<option value="slots">Slots</option>
<option value="table">Table Games</option>
<option value="live">Live Casino</option>
</select>
</div>
<div class="flex items-end">
<button id="applyFilter" class="w-full bg-brand-gold text-brand-900 font-bold py-3 rounded-lg hover:bg-brand-goldLight transition-all">
Apply Filters
</button>
</div>
</div>
</div>
<!-- Bonus Cards -->
<div id="bonusGrid" class="grid md:grid-cols-2 lg:grid-cols-3 gap-6 scroll-reveal">
<!-- Card 1 -->
<div class="bonus-card bg-brand-800/40 border border-white/10 rounded-2xl p-6 hover:border-brand-gold/40 transition-all" data-type="welcome" data-wager="medium" data-game="slots">
<div class="flex justify-between items-start mb-4">
<div class="w-12 h-12 rounded-xl bg-blue-500/20 flex items-center justify-center">
<i data-lucide="gift" class="w-6 h-6 text-blue-400"></i>
</div>
<span class="px-2 py-1 bg-green-500/20 text-green-400 text-xs font-bold rounded">VERIFIED</span>
</div>
<h3 class="text-white font-bold text-lg mb-1">Royal Welcome Pack</h3>
<p class="text-gray-500 text-sm mb-4">RoyalSpins Casino</p>
<div class="text-2xl font-bold text-brand-gold mb-1">100% up to €500</div>
<p class="text-gray-400 text-sm mb-4">+ 200 Free Spins on Starburst</p>
<div class="flex items-center gap-4 text-xs text-gray-500 mb-5">
<span class="flex items-center gap-1"><i data-lucide="refresh-cw" class="w-3 h-3"></i> 35x</span>
<span class="flex items-center gap-1"><i data-lucide="clock" class="w-3 h-3"></i> 30 days</span>
</div>
<button class="w-full py-3 border border-brand-gold text-brand-gold font-semibold rounded-lg hover:bg-brand-gold hover:text-brand-900 transition-all" onclick="activateBonus(this)">
Get Started
</button>
</div>
<!-- Card 2 -->
<div class="bonus-card bg-brand-800/40 border border-white/10 rounded-2xl p-6 hover:border-brand-gold/40 transition-all bonus-card-active" data-type="free-spins" data-wager="low" data-game="slots">
<div class="flex justify-between items-start mb-4">
<div class="w-12 h-12 rounded-xl bg-purple-500/20 flex items-center justify-center">
<i data-lucide="zap" class="w-6 h-6 text-purple-400"></i>
</div>
<span class="px-2 py-1 bg-green-500/20 text-green-400 text-xs font-bold rounded">HOT</span>
</div>
<h3 class="text-white font-bold text-lg mb-1">200 Free Spins</h3>
<p class="text-gray-500 text-sm mb-4">SpinPalace</p>
<div class="text-2xl font-bold text-brand-gold mb-1">200 Spins</div>
<p class="text-gray-400 text-sm mb-4">No deposit required</p>
<div class="flex items-center gap-4 text-xs text-gray-500 mb-5">
<span class="flex items-center gap-1"><i data-lucide="refresh-cw" class="w-3 h-3"></i> 20x</span>
<span class="flex items-center gap-1"><i data-lucide="clock" class="w-3 h-3"></i> 7 days</span>
</div>
<button class="w-full py-3 bg-brand-gold text-brand-900 font-bold rounded-lg hover:bg-brand-goldLight transition-all" onclick="activateBonus(this)">
Claim Now
</button>
</div>
<!-- Card 3 -->
<div class="bonus-card bg-brand-800/40 border border-white/10 rounded-2xl p-6 hover:border-brand-gold/40 transition-all" data-type="cashback" data-wager="low" data-game="all">
<div class="flex justify-between items-start mb-4">
<div class="w-12 h-12 rounded-xl bg-green-500/20 flex items-center justify-center">
<i data-lucide="shield" class="w-6 h-6 text-green-400"></i>
</div>
<span class="px-2 py-1 bg-green-500/20 text-green-400 text-xs font-bold rounded">VERIFIED</span>
</div>
<h3 class="text-white font-bold text-lg mb-1">Weekly Cashback</h3>
<p class="text-gray-500 text-sm mb-4">SafeBet Casino</p>
<div class="text-2xl font-bold text-brand-gold mb-1">15% Cashback</div>
<p class="text-gray-400 text-sm mb-4">Every Monday, no limits</p>
<div class="flex items-center gap-4 text-xs text-gray-500 mb-5">
<span class="flex items-center gap-1"><i data-lucide="refresh-cw" class="w-3 h-3"></i> 0x</span>
<span class="flex items-center gap-1"><i data-lucide="clock" class="w-3 h-3"></i> Weekly</span>
</div>
<button class="w-full py-3 border border-brand-gold text-brand-gold font-semibold rounded-lg hover:bg-brand-gold hover:text-brand-900 transition-all" onclick="activateBonus(this)">
Get Started
</button>
</div>
<!-- Card 4 -->
<div class="bonus-card bg-brand-800/40 border border-white/10 rounded-2xl p-6 hover:border-brand-gold/40 transition-all" data-type="welcome" data-wager="high" data-game="table">
<div class="flex justify-between items-start mb-4">
<div class="w-12 h-12 rounded-xl bg-orange-500/20 flex items-center justify-center">
<i data-lucide="star" class="w-6 h-6 text-orange-400"></i>
</div>
<span class="px-2 py-1 bg-green-500/20 text-green-400 text-xs font-bold rounded">VERIFIED</span>
</div>
<h3 class="text-white font-bold text-lg mb-1">High Roller Bonus</h3>
<p class="text-gray-500 text-sm mb-4">ElitePlay</p>
<div class="text-2xl font-bold text-brand-gold mb-1">200% up to €2,000</div>
<p class="text-gray-400 text-sm mb-4">For deposits over €500</p>
<div class="flex items-center gap-4 text-xs text-gray-500 mb-5">
<span class="flex items-center gap-1"><i data-lucide="refresh-cw" class="w-3 h-3"></i> 50x</span>
<span class="flex items-center gap-1"><i data-lucide="clock" class="w-3 h-3"></i> 45 days</span>
</div>
<button class="w-full py-3 border border-brand-gold text-brand-gold font-semibold rounded-lg hover:bg-brand-gold hover:text-brand-900 transition-all" onclick="activateBonus(this)">
Get Started
</button>
</div>
<!-- Card 5 -->
<div class="bonus-card bg-brand-800/40 border border-white/10 rounded-2xl p-6 hover:border-brand-gold/40 transition-all" data-type="no-deposit" data-wager="high" data-game="slots">
<div class="flex justify-between items-start mb-4">
<div class="w-12 h-12 rounded-xl bg-pink-500/20 flex items-center justify-center">
<i data-lucide="sparkles" class="w-6 h-6 text-pink-400"></i>
</div>
<span class="px-2 py-1 bg-yellow-500/20 text-yellow-400 text-xs font-bold rounded">NEW</span>
</div>
<h3 class="text-white font-bold text-lg mb-1">€25 No Deposit</h3>
<p class="text-gray-500 text-sm mb-4">LuckyStart</p>
<div class="text-2xl font-bold text-brand-gold mb-1">€25 Free</div>
<p class="text-gray-400 text-sm mb-4">Just for signing up</p>
<div class="flex items-center gap-4 text-xs text-gray-500 mb-5">
<span class="flex items-center gap-1"><i data-lucide="refresh-cw" class="w-3 h-3"></i> 60x</span>
<span class="flex items-center gap-1"><i data-lucide="clock" class="w-3 h-3"></i> 14 days</span>
</div>
<button class="w-full py-3 border border-brand-gold text-brand-gold font-semibold rounded-lg hover:bg-brand-gold hover:text-brand-900 transition-all" onclick="activateBonus(this)">
Claim Now
</button>
</div>
<!-- Card 6 -->
<div class="bonus-card bg-brand-800/40 border border-white/10 rounded-2xl p-6 hover:border-brand-gold/40 transition-all" data-type="welcome" data-wager="medium" data-game="live">
<div class="flex justify-between items-start mb-4">
<div class="w-12 h-12 rounded-xl bg-red-500/20 flex items-center justify-center">
<i data-lucide="video" class="w-6 h-6 text-red-400"></i>
</div>
<span class="px-2 py-1 bg-green-500/20 text-green-400 text-xs font-bold rounded">VERIFIED</span>
</div>
<h3 class="text-white font-bold text-lg mb-1">Live Casino Match</h3>
<p class="text-gray-500 text-sm mb-4">LiveLux Casino</p>
<div class="text-2xl font-bold text-brand-gold mb-1">100% up to €300</div>
<p class="text-gray-400 text-sm mb-4">Live dealer games only</p>
<div class="flex items-center gap-4 text-xs text-gray-500 mb-5">
<span class="flex items-center gap-1"><i data-lucide="refresh-cw" class="w-3 h-3"></i> 40x</span>
<span class="flex items-center gap-1"><i data-lucide="clock" class="w-3 h-3"></i> 21 days</span>
</div>
<button class="w-full py-3 border border-brand-gold text-brand-gold font-semibold rounded-lg hover:bg-brand-gold hover:text-brand-900 transition-all" onclick="activateBonus(this)">
Get Started
</button>
</div>
</div>
</div>
</section>
<!-- Reviews / Testimonials -->
<section id="reviews" class="py-24">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-16 scroll-reveal">
<span class="text-brand-gold text-sm font-semibold tracking-widest uppercase mb-3 block">Testimonials</span>
<h2 class="font-display text-4xl sm:text-5xl font-bold text-white mb-4">What Players Say</h2>
</div>
<div class="grid md:grid-cols-3 gap-8">
<div class="scroll-reveal bg-brand-800/30 border border-white/5 rounded-2xl p-8">
<div class="flex items-center gap-1 mb-4">
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
</div>
<p class="text-gray-300 leading-relaxed mb-6">"BetEdge's sports analysis is unmatched. Their Premier League predictions have been consistently accurate, and the bankroll management tools saved me from several tilt-induced mistakes. Truly professional content."</p>
<div class="flex items-center gap-3">
<img src="https://i.pravatar.cc/150?u=marcus" alt="Marcus T." class="w-10 h-10 rounded-full">
<div>
<div class="text-white font-semibold text-sm">Marcus T.</div>
<div class="text-gray-500 text-xs">Sports Bettor, UK</div>
</div>
</div>
</div>
<div class="scroll-reveal bg-brand-800/30 border border-white/5 rounded-2xl p-8" style="transition-delay: 100ms">
<div class="flex items-center gap-1 mb-4">
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
</div>
<p class="text-gray-300 leading-relaxed mb-6">"The casino finder tool is brilliant. I was able to compare withdrawal times and bonus terms across 15 operators in minutes. Found a casino that actually processes payouts within 2 hours. Game changer."</p>
<div class="flex items-center gap-3">
<img src="https://i.pravatar.cc/150?u=sarah" alt="Sarah K." class="w-10 h-10 rounded-full">
<div>
<div class="text-white font-semibold text-sm">Sarah K.</div>
<div class="text-gray-500 text-xs">Casino Player, Canada</div>
</div>
</div>
</div>
<div class="scroll-reveal bg-brand-800/30 border border-white/5 rounded-2xl p-8" style="transition-delay: 200ms">
<div class="flex items-center gap-1 mb-4">
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
<i data-lucide="star" class="w-4 h-4 text-brand-gold fill-brand-gold"></i>
</div>
<p class="text-gray-300 leading-relaxed mb-6">"As a poker beginner, their strategy guides taught me more in two weeks than months of YouTube videos. The mental game section alone was worth it—my tilt issues are essentially gone now."</p>
<div class="flex items-center gap-3">
<img src="https://i.pravatar.cc/150?u=james" alt="James R." class="w-10 h-10 rounded-full">
<div>
<div class="text-white font-semibold text-sm">James R.</div>
<div class="text-gray-500 text-xs">Poker Player, Australia</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Casino Finder -->
<section id="finder" class="py-24 bg-brand-800/30 relative">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid lg:grid-cols-3 gap-12">
<!-- Main Content -->
<div class="lg:col-span-2 scroll-reveal">
<span class="text-brand-gold text-sm font-semibold tracking-widest uppercase mb-3 block">Casino Finder</span>
<h2 class="font-display text-4xl sm:text-5xl font-bold text-white mb-6">Compare Top-Rated Casinos</h2>
<p class="text-gray-400 leading-relaxed mb-8">Every casino in our database undergoes a rigorous 50-point evaluation covering licensing authority, game fairness certification, withdrawal speed testing, customer support responsiveness, and bonus term transparency.</p>
<div class="space-y-4">
<div class="bg-brand-800/50 border border-white/5 rounded-xl p-5 flex items-center gap-5 hover:border-brand-gold/30 transition-all">
<img src="https://placehold.co/80x80/1a2332/d4af37?text=RS" alt="RoyalSpins" class="w-16 h-16 rounded-xl">
<div class="flex-1">
<div class="flex items-center gap-2">
<h4 class="text-white font-bold">RoyalSpins</h4>
<span class="px-2 py-0.5 bg-brand-gold/20 text-brand-gold text-xs rounded">9.8</span>
</div>
<p class="text-gray-500 text-sm mt-1">2,500+ games | 24h withdrawals | MGA Licensed</p>
</div>
<button class="px-4 py-2 bg-brand-gold text-brand-900 text-sm font-bold rounded-lg hover:bg-brand-goldLight">Review</button>
</div>
<div class="bg-brand-800/50 border border-white/5 rounded-xl p-5 flex items-center gap-5 hover:border-brand-gold/30 transition-all">
<img src="https://placehold.co/80x80/1a2332/d4af37?text=SP" alt="SpinPalace" class="w-16 h-16 rounded-xl">
<div class="flex-1">
<div class="flex items-center gap-2">
<h4 class="text-white font-bold">SpinPalace</h4>
<span class="px-2 py-0.5 bg-brand-gold/20 text-brand-gold text-xs rounded">9.6</span>
</div>
<p class="text-gray-500 text-sm mt-1">1,800+ games | 12h withdrawals | UKGC Licensed</p>
</div>
<button class="px-4 py-2 bg-brand-gold text-brand-900 text-sm font-bold rounded-lg hover:bg-brand-goldLight">Review</button>
</div>
<div class="bg-brand-800/50 border border-white/5 rounded-xl p-5 flex items-center gap-5 hover:border-brand-gold/30 transition-all">
<img src="https://placehold.co/80x80/1a2332/d4af37?text=SB" alt="SafeBet" class="w-16 h-16 rounded-xl">
<div class="flex-1">
<div class="flex items-center gap-2">
<h4 class="text-white font-bold">SafeBet Casino</h4>
<span class="px-2 py-0.5 bg-brand-gold/20 text-brand-gold text-xs rounded">9.4</span>
</div>
<p class="text-gray-500 text-sm mt-1">3,000+ games | 48h withdrawals | Curacao Licensed</p>
</div>
<button class="px-4 py-2 bg-brand-gold text-brand-900 text-sm font-bold rounded-lg hover:bg-brand-goldLight">Review</button>
</div>
</div>
</div>
<!-- Sidebar -->
<div class="space-y-6 scroll-reveal">
<div class="bg-brand-800/40 border border-white/5 rounded-2xl p-6">
<h4 class="text-white font-bold mb-4 flex items-center gap-2">
<i data-lucide="shield-alert" class="w-5 h-5 text-brand-gold"></i>
Responsible Gaming
</h4>
<ul class="space-y-3 text-sm text-gray-400">
<li class="flex items-start gap-2">
<i data-lucide="check-circle" class="w-4 h-4 text-green-500 mt-0.5 shrink-0"></i>
<span>Set daily, weekly, and monthly deposit limits before you play.</span>
</li>
<li class="flex items-start gap-2">
<i data-lucide="check-circle" class="w-4 h-4 text-green-500 mt-0.5 shrink-0"></i>
<span>Never chase losses—variance is real, and recovery betting increases risk.</span>
</li>
<li class="flex items-start gap-2">
<i data-lucide="check-circle" class="w-4 h-4 text-green-500 mt-0.5 shrink-0"></i>
<span>Use self-exclusion tools if you feel control slipping.</span>
</li>
<li class="flex items-start gap-2">
<i data-lucide="check-circle" class="w-4 h-4 text-green-500 mt-0.5 shrink-0"></i>
<span>Gambling should be entertainment, not income. Set a budget and stick to it.</span>
</li>
</ul>
<a href="#support" class="mt-4 inline-flex items-center text-brand-gold text-sm font-semibold">
Get Help <i data-lucide="external-link" class="w-3 h-3 ml-1"></i>
</a>
</div>
<div class="bg-brand-800/40 border border-white/5 rounded-2xl p-6">
<h4 class="text-white font-bold mb-4 flex items-center gap-2">
<i data-lucide="lightbulb" class="w-5 h-5 text-brand-gold"></i>
Quick Tips
</h4>
<ul class="space-y-3 text-sm text-gray-400">
<li class="flex items-start gap-2">
<span class="w-5 h-5 rounded bg-brand-gold/20 text-brand-gold flex items-center justify-center text-xs font-bold shrink-0">1</span>
<span>Check RTP (Return to Player) before playing slots—aim for 96%+.</span>
</li>
<li class="flex items-start gap-2">
<span class="w-5 h-5 rounded bg-brand-gold/20 text-brand-gold flex items-center justify-center text-xs font-bold shrink-0">2</span>
<span>In blackjack, always split Aces and 8s, never split 10s.</span>
</li>
<li class="flex items-start gap-2">
<span class="w-5 h-5 rounded bg-brand-gold/20 text-brand-gold flex items-center justify-center text-xs font-bold shrink-0">3</span>
<span>Read bonus terms—wagering applies to bonus + deposit at some sites.</span>
</li>
</ul>
</div>
<div class="bg-gradient-to-br from-brand-gold/20 to-brand-gold/5 border border-brand-gold/20 rounded-2xl p-6">
<h4 class="text-white font-bold mb-2">Newsletter</h4>
<p class="text-gray-400 text-sm mb-4">Get weekly tips and exclusive bonuses delivered to your inbox.</p>
<input type="email" placeholder="Your email" class="w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-2 text-white text-sm mb-3 focus:outline-none focus:border-brand-gold">
<button class="w-full py-2 bg-brand-gold text-brand-900 font-bold rounded-lg hover:bg-brand-goldLight transition-all text-sm">
Subscribe
</button>
</div>
</div>
</div>
</div>
</section>
<!-- FAQ Accordion -->
<section class="py-24">
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center mb-16 scroll-reveal">
<span class="text-brand-gold text-sm font-semibold tracking-widest uppercase mb-3 block">FAQ</span>
<h2 class="font-display text-4xl sm:text-5xl font-bold text-white mb-4">Common Questions</h2>
</div>
<div class="space-y-4 scroll-reveal">
<div class="faq-item bg-brand-800/40 border border-white/5 rounded-xl overflow-hidden">
<button class="faq-toggle w-full flex items-center justify-between p-6 text-left">
<span class="text-white font-semibold">How do I choose a safe online casino?</span>
<i data-lucide="plus" class="w-5 h-5 text-brand-gold faq-icon transition-transform"></i>
</button>
<div class="faq-content hidden px-6 pb-6 text-gray-400 leading-relaxed">
Look for valid licensing from authorities like MGA, UKGC, or Curacao eGaming. Verify SSL encryption, check for independent audit certifications (eCOGRA, iTech Labs), and read withdrawal processing reviews. Our Casino Finder lists only operators that pass our 50-point security audit.
</div>
</div>
<div class="faq-item bg-brand-800/40 border border-white/5 rounded-xl overflow-hidden">
<button class="faq-toggle w-full flex items-center justify-between p-6 text-left">
<span class="text-white font-semibold">What is the house edge and why does it matter?</span>
<i data-lucide="plus" class="w-5 h-5 text-brand-gold faq-icon transition-transform"></i>
</button>
<div class="faq-content hidden px-6 pb-6 text-gray-400 leading-relaxed">
The house edge is the mathematical advantage the casino holds in every game, expressed as a percentage of each bet retained over time. For example, European roulette has a 2.7% edge, while some slots range from 2% to 10%. Understanding this helps you choose games with better long-term returns and set realistic expectations.
</div>
</div>
<div class="faq-item bg-brand-800/40 border border-white/5 rounded-xl overflow-hidden">
<button class="faq-toggle w-full flex items-center justify-between p-6 text-left">
<span class="text-white font-semibold">Can I really win consistently at sports betting?</span>
<i data-lucide="plus" class="w-5 h-5 text-brand-gold faq-icon transition-transform"></i>
</button>
<div class="faq-content hidden px-6 pb-6 text-gray-400 leading-relaxed">
Yes, but it requires discipline, statistical analysis, and proper bankroll management. Professional bettors typically win 53-58% of bets against the spread. The key is identifying value—situations where your calculated probability exceeds the implied probability of the odds. Our analysts specialize in finding these edges.
</div>
</div>
<div class="faq-item bg-brand-800/40 border border-white/5 rounded-xl overflow-hidden">
<button class="faq-toggle w-full flex items-center justify-between p-6 text-left">
<span class="text-white font-semibold">What should my poker bankroll be?</span>
<i data-lucide="plus" class="w-5 h-5 text-brand-gold faq-icon transition-transform"></i>
</button>
<div class="faq-content hidden px-6 pb-6 text-gray-400 leading-relaxed">
For cash games, maintain 20-30 buy-ins for your stake. For tournaments, 50-100 buy-ins are recommended due to higher variance. At $1/$2 No Limit, that means $4,000-$6,000 for cash games. Never play with money you can't afford to lose, and move down in stakes if your bankroll drops below 20 buy-ins.
</div>
</div>
</div>
</div>
</section>
<!-- Support / CTA Section -->
<section id="support" class="py-24 relative overflow-hidden">
<div class="absolute inset-0 bg-gradient-to-r from-brand-700/30 to-brand-600/20"></div>
<div class="max-w-4xl mx-auto px-4 relative z-10 text-center scroll-reveal">
<h2 class="font-display text-4xl sm:text-5xl font-bold text-white mb-6">Need Expert Guidance?</h2>
<p class="text-gray-400 text-lg mb-8 max-w-2xl mx-auto">Our support team and expert analysts are available 24/7 to help with strategy questions, account issues, or responsible gaming resources.</p>
<div class="flex flex-wrap justify-center gap-4">
<a href="#" class="inline-flex items-center gap-2 px-8 py-4 bg-brand-gold text-brand-900 font-bold rounded-xl hover:bg-brand-goldLight transition-all shadow-xl shadow-brand-gold/20">
<i data-lucide="message-circle" class="w-5 h-5"></i>
Live Chat
</a>
<a href="#" class="inline-flex items-center gap-2 px-8 py-4 border border-white/20 text-white font-semibold rounded-xl hover:bg-white/5 transition-all">
<i data-lucide="mail" class="w-5 h-5"></i>
Email Support
</a>
</div>
<div class="mt-10 grid sm:grid-cols-3 gap-6 text-center">
<div>
<div class="text-2xl font-bold text-white">24/7</div>
<div class="text-sm text-gray-500">Live Support</div>
</div>
<div>
<div class="text-2xl font-bold text-white">< 2min</div>
<div class="text-sm text-gray-500">Average Response</div>
</div>
<div>
<div class="text-2xl font-bold text-white">15</div>
<div class="text-sm text-gray-500">Languages</div>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="border-t border-white/5 bg-brand-900 pt-16 pb-8">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid md:grid-cols-4 gap-12 mb-12">
<div class="md:col-span-1">
<div class="flex items-center gap-3 mb-4">
<div class="w-10 h-10 rounded-xl bg-gradient-to-br from-brand-gold to-brand-goldDark flex items-center justify-center">
<i data-lucide="diamonds" class="w-5 h-5 text-brand-900"></i>
</div>
<span class="text-white font-bold text-xl">Bet<span class="text-brand-gold">Edge</span></span>
</div>
<p class="text-gray-500 text-sm leading-relaxed mb-6">Your trusted source for casino news, betting strategies, and gaming intelligence since 2019.</p>
<div class="flex gap-3">
<a href="#" class="w-10 h-10 rounded-lg bg-brand-800 flex items-center justify-center text-gray-400 hover:text-brand-gold hover:bg-brand-700 transition-all">
<i data-lucide="twitter" class="w-5 h-5"></i>
</a>
<a href="#" class="w-10 h-10 rounded-lg bg-brand-800 flex items-center justify-center text-gray-400 hover:text-brand-gold hover:bg-brand-700 transition-all">
<i data-lucide="facebook" class="w-5 h-5"></i>
</a>
<a href="#" class="w-10 h-10 rounded-lg bg-brand-800 flex items-center justify-center text-gray-400 hover:text-brand-gold hover:bg-brand-700 transition-all">
<i data-lucide="instagram" class="w-5 h-5"></i>
</a>
<a href="#" class="w-10 h-10 rounded-lg bg-brand-800 flex items-center justify-center text-gray-400 hover:text-brand-gold hover:bg-brand-700 transition-all">
<i data-lucide="youtube" class="w-5 h-5"></i>
</a>
</div>
</div>
<div>
<h4 class="text-white font-bold mb-4">Quick Links</h4>
<ul class="space-y-2 text-sm text-gray-500">
<li><a href="#" class="hover:text-brand-gold transition-colors">Home</a></li>
<li><a href="#news" class="hover:text-brand-gold transition-colors">News</a></li>
<li><a href="#sports" class="hover:text-brand-gold transition-colors">Sports Betting</a></li>
<li><a href="#poker" class="hover:text-brand-gold transition-colors">Poker Guides</a></li>
<li><a href="#finder" class="hover:text-brand-gold transition-colors">Casino Finder</a></li>
</ul>
</div>
<div>
<h4 class="text-white font-bold mb-4">Resources</h4>
<ul class="space-y-2 text-sm text-gray-500">
<li><a href="#reviews" class="hover:text-brand-gold transition-colors">Casino Reviews</a></li>
<li><a href="#bonus" class="hover:text-brand-gold transition-colors">Bonus Finder</a></li>
<li><a href="#" class="hover:text-brand-gold transition-colors">Odds Calculator</a></li>
<li><a href="#" class="hover:text-brand-gold transition-colors">Bankroll Tool</a></li>
<li><a href="#support" class="hover:text-brand-gold transition-colors">Support Center</a></li>
</ul>
</div>
<div>
<h4 class="text-white font-bold mb-4">Contact</h4>
<ul class="space-y-3 text-sm text-gray-500">
<li class="flex items-center gap-2">
<i data-lucide="mail" class="w-4 h-4 text-brand-gold"></i>
support@betedge.com
</li>
<li class="flex items-center gap-2">
<i data-lucide="phone" class="w-4 h-4 text-brand-gold"></i>
+1 (555) 234-5678
</li>
<li class="flex items-center gap-2">
<i data-lucide="map-pin" class="w-4 h-4 text-brand-gold"></i>
120 Gaming Ave, Las Vegas, NV
</li>
</ul>
</div>
</div>
<div class="border-t border-white/5 pt-8 flex flex-col md:flex-row justify-between items-center gap-4">
<p class="text-gray-600 text-sm"> 2025 BetEdge. All rights reserved.</p>
<div class="flex gap-6 text-sm text-gray-600">
<a href="#" class="hover:text-white transition-colors">Privacy Policy</a>
<a href="#" class="hover:text-white transition-colors">Terms of Service</a>
<a href="#" class="hover:text-white transition-colors">Cookie Policy</a>
<a href="#" class="hover:text-white transition-colors">Responsible Gaming</a>
</div>
</div>
</div>
</footer>
<script>
// Initialize Lucide icons
lucide.createIcons();
// Mobile menu toggle
const mobileBtn = document.getElementById('mobileMenuBtn');
const mobileMenu = document.getElementById('mobileMenu');
mobileBtn.addEventListener('click', () => {
mobileMenu.classList.toggle('hidden');
});
// FAQ Accordion
document.querySelectorAll('.faq-toggle').forEach(toggle => {
toggle.addEventListener('click', () => {
const content = toggle.nextElementSibling;
const icon = toggle.querySelector('.faq-icon');
const isHidden = content.classList.contains('hidden');
// Close all
document.querySelectorAll('.faq-content').forEach(c => c.classList.add('hidden'));
document.querySelectorAll('.faq-icon').forEach(i => {
i.setAttribute('data-lucide', 'plus');
lucide.createIcons();
});
if (isHidden) {
content.classList.remove('hidden');
icon.setAttribute('data-lucide', 'minus');
lucide.createIcons();
}
});
});
// Bonus Filter
const filterType = document.getElementById('filterType');
const filterWager = document.getElementById('filterWager');
const filterGame = document.getElementById('filterGame');
const applyBtn = document.getElementById('applyFilter');
const bonusCards = document.querySelectorAll('.bonus-card');
function applyFilters() {
const type = filterType.value;
const wager = filterWager.value;
const game = filterGame.value;
bonusCards.forEach(card => {
const cType = card.dataset.type;
const cWager = card.dataset.wager;
const cGame = card.dataset.game;
let match = true;
if (type !== 'all' && cType !== type) match = false;
if (wager !== 'all') {
if (wager === 'low' && cWager !== 'low') match = false;
if (wager === 'medium' && cWager !== 'medium') match = false;
if (wager === 'high' && cWager !== 'high') match = false;
}
if (game !== 'all' && cGame !== game && cGame !== 'all') match = false;
card.style.display = match ? 'block' : 'none';
if (match) {
card.style.opacity = '0';
setTimeout(() => card.style.opacity = '1', 50);
}
});
}
applyBtn.addEventListener('click', applyFilters);
function activateBonus(btn) {
const original = btn.textContent.trim();
btn.textContent = 'Redirecting...';
btn.disabled = true;
setTimeout(() => {
btn.textContent = original;
btn.disabled = false;
}, 2000);
}
// Counter Animation
const counters = document.querySelectorAll('.counter');
const animateCounters = () => {
counters.forEach(counter => {
const target = parseInt(counter.dataset.target);
const duration = 2000;
const start = performance.now();
const update = (now) => {
const elapsed = now - start;
const progress = Math.min(elapsed / duration, 1);
const eased = 1 - Math.pow(1 - progress, 3);
counter.textContent = Math.floor(eased * target) + (target > 100 ? '+' : '');
if (progress < 1) requestAnimationFrame(update);
};
requestAnimationFrame(update);
});
};
// GSAP Scroll Trigger
gsap.registerPlugin(ScrollTrigger);
// Reveal animations
gsap.utils.toArray('.scroll-reveal').forEach((el, i) => {
gsap.to(el, {
scrollTrigger: {
trigger: el,
start: 'top 85%',
toggleActions: 'play none none none'
},
opacity: 1,
y: 0,
duration: 0.8,
ease: 'power3.out',
delay: (i % 4) * 0.1
});
});
// Navbar scroll effect
const navbar = document.getElementById('navbar');
window.addEventListener('scroll', () => {
if (window.scrollY > 50) {
navbar.classList.add('bg-brand-900/95', 'shadow-lg', 'shadow-black/20');
} else {
navbar.classList.remove('bg-brand-900/95', 'shadow-lg', 'shadow-black/20');
}
});
// Trigger counter when hero is visible
ScrollTrigger.create({
trigger: '.counter',
start: 'top 80%',
onEnter: animateCounters,
once: true
});
// Smooth scroll
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
mobileMenu.classList.add('hidden');
}
});
});
</script>
</body>
</html>
View Axe Report (JSON)
{
"testEngine": {
"name": "axe-core",
"version": "4.10.2"
},
"testRunner": {
"name": "axe"
},
"testEnvironment": {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/156.0.8078.4 Safari/537.36",
"windowWidth": 1280,
"windowHeight": 720,
"orientationAngle": 0,
"orientationType": "landscape-primary"
},
"timestamp": "2026-11-12T09:44:52.826Z",
"url": "https://benchmark.aimac.invalid/4f46bd2074346abb140df115c416e8a1089a3323ba134e41613af1abded09904.html",
"toolOptions": {
"runOnly": {
"type": "tag",
"values": [
"wcag2a",
"wcag2aa",
"wcag21a",
"wcag21aa",
"wcag22a",
"wcag22aa"
]
},
"resultTypes": [
"violations"
],
"reporter": "v1"
},
"inapplicable": [
{
"id": "area-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <area> elements of image maps have alternative text",
"help": "Active <area> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/area-alt?application=axeAPI",
"nodes": []
},
{
"id": "aria-allowed-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure an element's role supports its ARIA attributes",
"help": "Elements must only use supported ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-allowed-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-braille-equivalent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-braillelabel and aria-brailleroledescription have a non-braille equivalent",
"help": "aria-braille attributes must have a non-braille equivalent",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-braille-equivalent?application=axeAPI",
"nodes": []
},
{
"id": "aria-command-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA button, link and menuitem has an accessible name",
"help": "ARIA commands must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-command-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-conditional-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are used as described in the specification of the element's role",
"help": "ARIA attributes must be used as specified for the element's role",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-conditional-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-deprecated-role",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements do not use deprecated roles",
"help": "Deprecated ARIA roles must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-deprecated-role?application=axeAPI",
"nodes": []
},
{
"id": "aria-input-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA input field has an accessible name",
"help": "ARIA input fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-input-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-meter-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA meter node has an accessible name",
"help": "ARIA meter nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-meter-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-progressbar-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag111",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure every ARIA progressbar node has an accessible name",
"help": "ARIA progressbar nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-progressbar-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-prohibited-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure ARIA attributes are not prohibited for an element's role",
"help": "Elements must only use permitted ARIA attributes",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-prohibited-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure elements with ARIA roles have all required ARIA attributes",
"help": "Required ARIA attributes must be provided",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-attr?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-children",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require child roles contain them",
"help": "Certain ARIA roles must contain particular children",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-children?application=axeAPI",
"nodes": []
},
{
"id": "aria-required-parent",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure elements with an ARIA role that require parent roles are contained by them",
"help": "Certain ARIA roles must be contained by particular parents",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-required-parent?application=axeAPI",
"nodes": []
},
{
"id": "aria-roles",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all elements with a role attribute use a valid value",
"help": "ARIA roles used must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-roles?application=axeAPI",
"nodes": []
},
{
"id": "aria-toggle-field-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every ARIA toggle field has an accessible name",
"help": "ARIA toggle fields must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-toggle-field-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-tooltip-name",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every ARIA tooltip node has an accessible name",
"help": "ARIA tooltip nodes must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-tooltip-name?application=axeAPI",
"nodes": []
},
{
"id": "aria-valid-attr-value",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure all ARIA attributes have valid values",
"help": "ARIA attributes must conform to valid values",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr-value?application=axeAPI",
"nodes": []
},
{
"id": "aria-valid-attr",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure attributes that begin with aria- are valid ARIA attributes",
"help": "ARIA attributes must conform to valid names",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-valid-attr?application=axeAPI",
"nodes": []
},
{
"id": "autocomplete-valid",
"impact": null,
"tags": [
"cat.forms",
"wcag21aa",
"wcag135",
"EN-301-549",
"EN-9.1.3.5",
"ACT"
],
"description": "Ensure the autocomplete attribute is correct and suitable for the form field",
"help": "autocomplete attribute must be used correctly",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/autocomplete-valid?application=axeAPI",
"nodes": []
},
{
"id": "blink",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag222",
"section508",
"section508.22.j",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <blink> elements are not used",
"help": "<blink> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/blink?application=axeAPI",
"nodes": []
},
{
"id": "definition-list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dl> elements are structured correctly",
"help": "<dl> elements must only directly contain properly-ordered <dt> and <dd> groups, <script>, <template> or <div> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/definition-list?application=axeAPI",
"nodes": []
},
{
"id": "dlitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <dt> and <dd> elements are contained by a <dl>",
"help": "<dt> and <dd> elements must be contained by a <dl>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/dlitem?application=axeAPI",
"nodes": []
},
{
"id": "duplicate-id-aria",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag412",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure every id attribute value used in ARIA and in labels is unique",
"help": "IDs used in ARIA and labels must be unique",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/duplicate-id-aria?application=axeAPI",
"nodes": []
},
{
"id": "frame-focusable-content",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure <frame> and <iframe> elements with focusable content do not have tabindex=-1",
"help": "Frames with focusable content must not have tabindex=-1",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-focusable-content?application=axeAPI",
"nodes": []
},
{
"id": "frame-title-unique",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements contain a unique title attribute",
"help": "Frames must have a unique title attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title-unique?application=axeAPI",
"nodes": []
},
{
"id": "frame-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag412",
"section508",
"section508.22.i",
"TTv5",
"TT12.d",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure <iframe> and <frame> elements have an accessible name",
"help": "Frames must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/frame-title?application=axeAPI",
"nodes": []
},
{
"id": "html-xml-lang-mismatch",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure that HTML elements with both valid lang and xml:lang attributes agree on the base language of the page",
"help": "HTML elements with lang and xml:lang must have the same base language",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-xml-lang-mismatch?application=axeAPI",
"nodes": []
},
{
"id": "input-button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure input buttons have discernible text",
"help": "Input buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-button-name?application=axeAPI",
"nodes": []
},
{
"id": "input-image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure <input type=\"image\"> elements have alternative text",
"help": "Image buttons must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/input-image-alt?application=axeAPI",
"nodes": []
},
{
"id": "link-in-text-block",
"impact": null,
"tags": [
"cat.color",
"wcag2a",
"wcag141",
"TTv5",
"TT13.a",
"EN-301-549",
"EN-9.1.4.1"
],
"description": "Ensure links are distinguished from surrounding text in a way that does not rely on color",
"help": "Links must be distinguishable without relying on color",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-in-text-block?application=axeAPI",
"nodes": []
},
{
"id": "marquee",
"impact": null,
"tags": [
"cat.parsing",
"wcag2a",
"wcag222",
"TTv5",
"TT2.b",
"EN-301-549",
"EN-9.2.2.2"
],
"description": "Ensure <marquee> elements are not used",
"help": "<marquee> elements are deprecated and must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/marquee?application=axeAPI",
"nodes": []
},
{
"id": "meta-refresh",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag221",
"TTv5",
"TT8.a",
"EN-301-549",
"EN-9.2.2.1"
],
"description": "Ensure <meta http-equiv=\"refresh\"> is not used for delayed refresh",
"help": "Delayed refresh under 20 hours must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-refresh?application=axeAPI",
"nodes": []
},
{
"id": "object-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"EN-301-549",
"EN-9.1.1.1"
],
"description": "Ensure <object> elements have alternative text",
"help": "<object> elements must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/object-alt?application=axeAPI",
"nodes": []
},
{
"id": "role-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure [role=\"img\"] elements have alternative text",
"help": "[role=\"img\"] elements must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/role-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "scrollable-region-focusable",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag211",
"wcag213",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1",
"EN-9.2.1.3"
],
"description": "Ensure elements that have scrollable content are accessible by keyboard",
"help": "Scrollable region must have keyboard access",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/scrollable-region-focusable?application=axeAPI",
"nodes": []
},
{
"id": "server-side-image-map",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag211",
"section508",
"section508.22.f",
"TTv5",
"TT4.a",
"EN-301-549",
"EN-9.2.1.1"
],
"description": "Ensure that server-side image maps are not used",
"help": "Server-side image maps must not be used",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/server-side-image-map?application=axeAPI",
"nodes": []
},
{
"id": "summary-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure summary elements have discernible text",
"help": "Summary elements must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/summary-name?application=axeAPI",
"nodes": []
},
{
"id": "svg-img-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <svg> elements with an img, graphics-document or graphics-symbol role have an accessible text",
"help": "<svg> elements with an img role must have an alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/svg-img-alt?application=axeAPI",
"nodes": []
},
{
"id": "td-headers-attr",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that each cell in a table that uses the headers attribute refers only to other cells in that table",
"help": "Table cells that use the headers attribute must only refer to cells in the same table",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/td-headers-attr?application=axeAPI",
"nodes": []
},
{
"id": "th-has-data-cells",
"impact": null,
"tags": [
"cat.tables",
"wcag2a",
"wcag131",
"section508",
"section508.22.g",
"TTv5",
"TT14.b",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that <th> elements and elements with role=columnheader/rowheader have data cells they describe",
"help": "Table headers in a data table must refer to data cells",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/th-has-data-cells?application=axeAPI",
"nodes": []
},
{
"id": "valid-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2aa",
"wcag312",
"TTv5",
"TT11.b",
"EN-301-549",
"EN-9.3.1.2",
"ACT"
],
"description": "Ensure lang attributes have valid values",
"help": "lang attribute must have a valid value",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/valid-lang?application=axeAPI",
"nodes": []
},
{
"id": "video-caption",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag122",
"section508",
"section508.22.a",
"TTv5",
"TT17.a",
"EN-301-549",
"EN-9.1.2.2"
],
"description": "Ensure <video> elements have captions",
"help": "<video> elements must have captions",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/video-caption?application=axeAPI",
"nodes": []
},
{
"id": "no-autoplay-audio",
"impact": null,
"tags": [
"cat.time-and-media",
"wcag2a",
"wcag142",
"TTv5",
"TT2.a",
"EN-301-549",
"EN-9.1.4.2",
"ACT"
],
"description": "Ensure <video> or <audio> elements do not autoplay audio for more than 3 seconds without a control mechanism to stop or mute the audio",
"help": "<video> or <audio> elements must not play automatically",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/no-autoplay-audio?application=axeAPI",
"nodes": []
}
],
"passes": [
{
"id": "aria-hidden-body",
"impact": null,
"tags": [
"cat.aria",
"wcag2a",
"wcag131",
"wcag412",
"EN-301-549",
"EN-9.1.3.1",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden=\"true\" is not present on the document body.",
"help": "aria-hidden=\"true\" must not be present on the document body",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-body?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "aria-hidden-body",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "No aria-hidden attribute is present on document body"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<body class=\"bg-brand-900 text-gray-300 antialiased noise-overlay\" style=\"\">",
"target": [
"body"
]
}
]
},
{
"id": "aria-hidden-focus",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure aria-hidden elements are not focusable nor contain focusable elements",
"help": "ARIA hidden element must not be focusable or contain focusable elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/aria-hidden-focus?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "focusable-modal-open",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements while a modal is open"
},
{
"id": "focusable-disabled",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
},
{
"id": "focusable-not-tabbable",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "No focusable elements contained within element"
}
],
"none": [],
"impact": null,
"html": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" data-lucide=\"arrow-right\" aria-hidden=\"true\" class=\"lucide lucide-arrow-right w-4 h-4\">",
"target": [
".sm\\:inline-flex > .lucide-arrow-right.w-4[data-lucide=\"arrow-right\"]"
]
}
]
},
{
"id": "avoid-inline-spacing",
"impact": null,
"tags": [
"cat.structure",
"wcag21aa",
"wcag1412",
"EN-301-549",
"EN-9.1.4.12",
"ACT"
],
"description": "Ensure that text spacing set through style attributes can be adjusted with custom stylesheets",
"help": "Inline text spacing must be adjustable with custom stylesheets",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/avoid-inline-spacing?application=axeAPI",
"nodes": [
{
"any": [],
"all": [
{
"id": "important-letter-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Letter-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-word-spacing",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "word-spacing in the style attribute is not set to !important, or meets the minimum"
},
{
"id": "important-line-height",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "line-height in the style attribute is not set to !important, or meets the minimum"
}
],
"none": [],
"impact": null,
"html": "<body class=\"bg-brand-900 text-gray-300 antialiased noise-overlay\" style=\"\">",
"target": [
"body"
]
}
]
},
{
"id": "button-name",
"impact": null,
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure buttons have discernible text",
"help": "Buttons must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/button-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "button-has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has inner text that is visible to screen readers"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<button id=\"applyFilter\" class=\"w-full bg-brand-gold text-brand-900 font-bold py-3 rounded-lg hover:bg-brand-goldLight transition-all\">\n Apply Filters\n </button>",
"target": [
"#applyFilter"
]
}
]
},
{
"id": "bypass",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag241",
"section508",
"section508.22.o",
"TTv5",
"TT9.a",
"EN-301-549",
"EN-9.2.4.1"
],
"description": "Ensure each page has at least one mechanism for a user to bypass navigation and jump straight to the content",
"help": "Page must have means to bypass repeated blocks",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/bypass?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "internal-link-present",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Valid skip link found"
},
{
"id": "header-present",
"data": null,
"relatedNodes": [
{
"html": "<h1 class=\"font-display text-5xl sm:text-6xl lg:text-7xl font-bold text-white leading-[1.1]\">\n Master the Game.<br>\n <span class=\"gold-gradient italic\">Win with Edge.</span>\n </h1>",
"target": [
"h1"
]
},
{
"html": "<h2 class=\"font-display text-4xl sm:text-5xl font-bold text-white mb-4\">Expertise Across Every Table</h2>",
"target": [
".py-20 > .max-w-7xl.sm\\:px-6.lg\\:px-8 > .mb-16.text-center.scroll-reveal > h2"
]
},
{
"html": "<h3 class=\"text-xl font-bold text-white mb-2\">Sports Betting</h3>",
"target": [
".duration-300.card-glow.group:nth-child(1) > .text-xl.mb-2"
]
},
{
"html": "<h3 class=\"text-xl font-bold text-white mb-2\">Jackpot Tracking</h3>",
"target": [
".duration-300.card-glow.group:nth-child(2) > .text-xl.mb-2"
]
},
{
"html": "<h3 class=\"text-xl font-bold text-white mb-2\">Poker Strategy</h3>",
"target": [
".duration-300.card-glow.group:nth-child(3) > .text-xl.mb-2"
]
},
{
"html": "<h3 class=\"text-xl font-bold text-white mb-2\">Casino Reviews</h3>",
"target": [
".duration-300.card-glow.group:nth-child(4) > .text-xl.mb-2"
]
},
{
"html": "<h2 class=\"font-display text-4xl sm:text-5xl font-bold text-white mb-6 leading-tight\">Data-Driven Betting for Maximum Returns</h2>",
"target": [
".order-1 > .leading-tight"
]
},
{
"html": "<h2 class=\"font-display text-4xl sm:text-5xl font-bold text-white mb-4\">Jackpot Winners & Progressive Tracking</h2>",
"target": [
"#jackpot > .max-w-7xl.sm\\:px-6.lg\\:px-8 > .mb-16.text-center.scroll-reveal > h2"
]
},
{
"html": "<h3 class=\"font-display text-2xl font-bold text-white mb-3\">Mega Moolah Pays Out \u20ac18.2 Million</h3>",
"target": [
".p-8 > h3"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-4 flex items-center gap-2\">",
"target": [
".lg\\:grid-cols-3.gap-8.grid > .space-y-6.scroll-reveal > .bg-brand-800\\/40.p-6.rounded-2xl > h4"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-2\">Current Hot Pool</h4>",
"target": [
".lg\\:grid-cols-3.gap-8.grid > .space-y-6.scroll-reveal > .to-brand-gold\\/5.border-brand-gold\\/20.from-brand-gold\\/20 > .mb-2"
]
},
{
"html": "<h2 class=\"font-display text-4xl sm:text-5xl font-bold text-white mb-6 leading-tight\">Strategic Depth for Every Skill Level</h2>",
"target": [
".scroll-reveal:nth-child(1) > .leading-tight"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-1\">Mental Game</h4>",
"target": [
".p-4.bg-brand-800\\/40.border-white\\/5:nth-child(1) > h4"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-1\">Math Essentials</h4>",
"target": [
".p-4.bg-brand-800\\/40.border-white\\/5:nth-child(2) > h4"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-4 flex items-center gap-2\">",
"target": [
".mt-6.bg-brand-800\\/40.p-6 > h4"
]
},
{
"html": "<h2 class=\"font-display text-4xl sm:text-5xl font-bold text-white mb-4\">Find Your Perfect Bonus</h2>",
"target": [
".mb-12.text-center.scroll-reveal > h2"
]
},
{
"html": "<h3 class=\"text-white font-bold text-lg mb-1\">Royal Welcome Pack</h3>",
"target": [
"div[data-wager=\"medium\"][data-type=\"welcome\"][data-game=\"slots\"] > h3"
]
},
{
"html": "<h3 class=\"text-white font-bold text-lg mb-1\">200 Free Spins</h3>",
"target": [
".bonus-card-active > h3"
]
},
{
"html": "<h3 class=\"text-white font-bold text-lg mb-1\">Weekly Cashback</h3>",
"target": [
"div[data-type=\"cashback\"] > h3"
]
},
{
"html": "<h3 class=\"text-white font-bold text-lg mb-1\">High Roller Bonus</h3>",
"target": [
"div[data-game=\"table\"] > h3"
]
},
{
"html": "<h3 class=\"text-white font-bold text-lg mb-1\">\u20ac25 No Deposit</h3>",
"target": [
"div[data-type=\"no-deposit\"] > h3"
]
},
{
"html": "<h3 class=\"text-white font-bold text-lg mb-1\">Live Casino Match</h3>",
"target": [
"div[data-game=\"live\"] > h3"
]
},
{
"html": "<h2 class=\"font-display text-4xl sm:text-5xl font-bold text-white mb-4\">What Players Say</h2>",
"target": [
"#reviews > .max-w-7xl.sm\\:px-6.lg\\:px-8 > .mb-16.text-center.scroll-reveal > h2"
]
},
{
"html": "<h2 class=\"font-display text-4xl sm:text-5xl font-bold text-white mb-6\">Compare Top-Rated Casinos</h2>",
"target": [
".lg\\:col-span-2.scroll-reveal > h2"
]
},
{
"html": "<h4 class=\"text-white font-bold\">RoyalSpins</h4>",
"target": [
".p-5.gap-5.bg-brand-800\\/50:nth-child(1) > .flex-1 > .gap-2.items-center.flex > h4"
]
},
{
"html": "<h4 class=\"text-white font-bold\">SpinPalace</h4>",
"target": [
".p-5.gap-5.bg-brand-800\\/50:nth-child(2) > .flex-1 > .gap-2.items-center.flex > h4"
]
},
{
"html": "<h4 class=\"text-white font-bold\">SafeBet Casino</h4>",
"target": [
".p-5.gap-5.bg-brand-800\\/50:nth-child(3) > .flex-1 > .gap-2.items-center.flex > h4"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-4 flex items-center gap-2\">",
"target": [
".lg\\:grid-cols-3.gap-12.grid > .space-y-6.scroll-reveal > .bg-brand-800\\/40.p-6.rounded-2xl:nth-child(1) > h4"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-4 flex items-center gap-2\">",
"target": [
".bg-brand-800\\/40.p-6.rounded-2xl:nth-child(2) > h4"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-2\">Newsletter</h4>",
"target": [
".lg\\:grid-cols-3.gap-12.grid > .space-y-6.scroll-reveal > .to-brand-gold\\/5.border-brand-gold\\/20.from-brand-gold\\/20 > .mb-2"
]
},
{
"html": "<h2 class=\"font-display text-4xl sm:text-5xl font-bold text-white mb-4\">Common Questions</h2>",
"target": [
".max-w-4xl.sm\\:px-6.lg\\:px-8 > .mb-16.text-center.scroll-reveal > h2"
]
},
{
"html": "<h2 class=\"font-display text-4xl sm:text-5xl font-bold text-white mb-6\">Need Expert Guidance?</h2>",
"target": [
".max-w-4xl.z-10.text-center > h2"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-4\">Quick Links</h4>",
"target": [
".md\\:grid-cols-4 > div:nth-child(2) > h4"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-4\">Resources</h4>",
"target": [
".md\\:grid-cols-4 > div:nth-child(3) > h4"
]
},
{
"html": "<h4 class=\"text-white font-bold mb-4\">Contact</h4>",
"target": [
"div:nth-child(4) > h4"
]
}
],
"impact": "serious",
"message": "Page has a heading"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"messageKey": "hidden"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element is hidden"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<select id=\"filterType\" class=\"w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-3 text-white focus:outline-none focus:border-brand-gold\">",
"target": [
"#filterType"
]
}
]
},
{
"id": "document-title",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag242",
"TTv5",
"TT12.a",
"EN-301-549",
"EN-9.2.4.2",
"ACT"
],
"description": "Ensure each HTML document contains a non-empty <title> element",
"help": "Documents must have <title> element to aid in navigation",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/document-title?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "doc-has-title",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Document has a non-empty <title> element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "form-field-multiple-labels",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag332",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.3.3.2"
],
"description": "Ensure form field does not have multiple label elements",
"help": "Form field must not have multiple label elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/form-field-multiple-labels?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "multiple-label",
"data": null,
"relatedNodes": [],
"impact": "moderate",
"message": "Form field does not have multiple label elements"
}
],
"impact": null,
"html": "<select id=\"filterType\" class=\"w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-3 text-white focus:outline-none focus:border-brand-gold\">",
"target": [
"#filterType"
]
}
]
},
{
"id": "html-has-lang",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure every HTML document has a lang attribute",
"help": "<html> element must have a lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-has-lang?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "The <html> element has a lang attribute"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "html-lang-valid",
"impact": null,
"tags": [
"cat.language",
"wcag2a",
"wcag311",
"TTv5",
"TT11.a",
"EN-301-549",
"EN-9.3.1.1",
"ACT"
],
"description": "Ensure the lang attribute of the <html> element has a valid value",
"help": "<html> element must have a valid value for the lang attribute",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/html-lang-valid?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "valid-lang",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Value of lang attribute is included in the list of valid languages"
}
],
"impact": null,
"html": "<html lang=\"en\">",
"target": [
"html"
]
}
]
},
{
"id": "image-alt",
"impact": null,
"tags": [
"cat.text-alternatives",
"wcag2a",
"wcag111",
"section508",
"section508.22.a",
"TTv5",
"TT7.a",
"TT7.b",
"EN-301-549",
"EN-9.1.1.1",
"ACT"
],
"description": "Ensure <img> elements have alternative text or a role of none or presentation",
"help": "Images must have alternative text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/image-alt?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-alt",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has an alt attribute"
},
{
"id": "presentational-role",
"data": {
"role": "presentation"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were overridden with role=\"presentation\""
}
],
"all": [],
"none": [
{
"id": "alt-space-value",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a valid alt attribute value"
}
],
"impact": null,
"html": "<img src=\"https://picsum.photos/1920/1080?grayscale&blur=2\" alt=\"\" class=\"w-full h-full object-cover opacity-40\">",
"target": [
".opacity-40"
]
}
]
},
{
"id": "label",
"impact": null,
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure every form element has a label",
"help": "Form elements must have labels",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/label?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "non-empty-placeholder",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element has a placeholder attribute"
}
],
"all": [],
"none": [
{
"id": "hidden-explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Form element has a visible explicit <label>"
}
],
"impact": null,
"html": "<input type=\"email\" placeholder=\"Your email\" class=\"w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-2 text-white text-sm mb-3 focus:outline-none focus:border-brand-gold\">",
"target": [
"input"
]
}
]
},
{
"id": "link-name",
"impact": "serious",
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element has text that is visible to screen readers"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is not in tab order or has accessible text"
}
],
"impact": null,
"html": "<a href=\"#\" class=\"flex items-center gap-3 group\">",
"target": [
".group.gap-3[href=\"#\"]"
]
}
]
},
{
"id": "list",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure that lists are structured correctly",
"help": "<ul> and <ol> must only directly contain <li>, <script> or <template> elements",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/list?application=axeAPI",
"nodes": [
{
"any": [],
"all": [],
"none": [
{
"id": "only-listitems",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List element only has direct children that are allowed inside <li> elements"
}
],
"impact": null,
"html": "<ul class=\"space-y-3 text-sm text-gray-400\">",
"target": [
".bg-brand-800\\/40.p-6.rounded-2xl:nth-child(1) > ul"
]
}
]
},
{
"id": "listitem",
"impact": null,
"tags": [
"cat.structure",
"wcag2a",
"wcag131",
"EN-301-549",
"EN-9.1.3.1"
],
"description": "Ensure <li> elements are used semantically",
"help": "<li> elements must be contained in a <ul> or <ol>",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/listitem?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "listitem",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "List item has a <ul>, <ol> or role=\"list\" parent element"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<li class=\"flex items-start gap-2\">",
"target": [
".bg-brand-800\\/40.p-6.rounded-2xl:nth-child(1) > ul > .items-start:nth-child(1)"
]
}
]
},
{
"id": "meta-viewport",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag2aa",
"wcag144",
"EN-301-549",
"EN-9.1.4.4",
"ACT"
],
"description": "Ensure <meta name=\"viewport\"> does not disable text scaling and zooming",
"help": "Zooming and scaling must not be disabled",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/meta-viewport?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "meta-viewport",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "<meta> tag does not disable zooming on mobile devices"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">",
"target": [
"meta[name=\"viewport\"]"
]
}
]
},
{
"id": "nested-interactive",
"impact": null,
"tags": [
"cat.keyboard",
"wcag2a",
"wcag412",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.4.1.2"
],
"description": "Ensure interactive controls are not nested as they are not always announced by screen readers or can cause focus problems for assistive technologies",
"help": "Interactive controls must not be nested",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/nested-interactive?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "no-focusable-content",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have focusable descendants"
}
],
"all": [],
"none": [],
"impact": null,
"html": "<img src=\"https://picsum.photos/600/500?grayscale\" alt=\"Sports betting analysis\" class=\"rounded-2xl shadow-2xl border border-white/10 w-full object-cover h-[450px]\">",
"target": [
".h-\\[450px\\]"
]
}
]
},
{
"id": "target-size",
"impact": null,
"tags": [
"cat.sensory-and-visual-cues",
"wcag22aa",
"wcag258"
],
"description": "Ensure touch targets have sufficient size and space",
"help": "All touch targets must be 24px large, or leave sufficient space",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/target-size?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "target-size",
"data": {
"minSize": 24,
"width": 170.7,
"height": 40
},
"relatedNodes": [],
"impact": "serious",
"message": "Control has sufficient size (170.7px by 40px, should be at least 24px by 24px)"
},
{
"id": "target-offset",
"data": {
"closestOffset": 24,
"minOffset": 24
},
"relatedNodes": [],
"impact": "serious",
"message": "Target has sufficient space from its closest neighbors. Safe clickable space has a diameter of 24px which is at least 24px."
}
],
"all": [],
"none": [],
"impact": null,
"html": "<a href=\"#\" class=\"flex items-center gap-3 group\">",
"target": [
".group.gap-3[href=\"#\"]"
]
}
]
}
],
"incomplete": [
{
"id": "color-contrast",
"impact": "serious",
"tags": [
"cat.color",
"wcag2aa",
"wcag143",
"TTv5",
"TT13.c",
"EN-301-549",
"EN-9.1.4.3",
"ACT"
],
"description": "Ensure the contrast between foreground and background colors meets WCAG 2 AA minimum contrast ratio thresholds",
"help": "Elements must meet minimum color contrast ratio thresholds",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/color-contrast?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "color-contrast",
"data": {
"fontSize": "15.0pt (20px)",
"fontWeight": "bold",
"messageKey": "pseudoContent",
"expectedContrastRatio": "3:1"
},
"relatedNodes": [
{
"html": "<body class=\"bg-brand-900 text-gray-300 antialiased noise-overlay\" style=\"\">",
"target": [
"body"
]
}
],
"impact": "serious",
"message": "Element's background color could not be determined due to a pseudo element"
}
],
"all": [],
"none": [],
"impact": "serious",
"html": "<span class=\"text-white font-bold text-xl tracking-tight leading-none\">Bet<span class=\"text-brand-gold\">Edge</span></span>",
"target": [
".tracking-tight"
],
"failureSummary": "Fix any of the following:\n Element's background color could not be determined due to a pseudo element"
}
]
}
],
"violations": [
{
"id": "link-name",
"impact": "serious",
"tags": [
"cat.name-role-value",
"wcag2a",
"wcag244",
"wcag412",
"section508",
"section508.22.a",
"TTv5",
"TT6.a",
"EN-301-549",
"EN-9.2.4.4",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure links have discernible text",
"help": "Links must have discernible text",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/link-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has no title attribute"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is in tab order and does not have accessible text"
}
],
"impact": "serious",
"html": "<a href=\"#\" class=\"w-10 h-10 rounded-lg bg-brand-800 flex items-center justify-center text-gray-400 hover:text-brand-gold hover:bg-brand-700 transition-all\">\n <i data-lucide=\"twitter\" class=\"w-5 h-5\"></i>\n </a>",
"target": [
".bg-brand-800.hover\\:bg-brand-700.w-10:nth-child(1)"
],
"failureSummary": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"
},
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has no title attribute"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is in tab order and does not have accessible text"
}
],
"impact": "serious",
"html": "<a href=\"#\" class=\"w-10 h-10 rounded-lg bg-brand-800 flex items-center justify-center text-gray-400 hover:text-brand-gold hover:bg-brand-700 transition-all\">\n <i data-lucide=\"facebook\" class=\"w-5 h-5\"></i>\n </a>",
"target": [
".bg-brand-800.hover\\:bg-brand-700.w-10:nth-child(2)"
],
"failureSummary": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"
},
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has no title attribute"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is in tab order and does not have accessible text"
}
],
"impact": "serious",
"html": "<a href=\"#\" class=\"w-10 h-10 rounded-lg bg-brand-800 flex items-center justify-center text-gray-400 hover:text-brand-gold hover:bg-brand-700 transition-all\">\n <i data-lucide=\"instagram\" class=\"w-5 h-5\"></i>\n </a>",
"target": [
".bg-brand-800.hover\\:bg-brand-700.w-10:nth-child(3)"
],
"failureSummary": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"
},
{
"any": [
{
"id": "has-visible-text",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element does not have text that is visible to screen readers"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "serious",
"message": "Element has no title attribute"
}
],
"all": [],
"none": [
{
"id": "focusable-no-name",
"data": null,
"relatedNodes": [],
"impact": "serious",
"message": "Element is in tab order and does not have accessible text"
}
],
"impact": "serious",
"html": "<a href=\"#\" class=\"w-10 h-10 rounded-lg bg-brand-800 flex items-center justify-center text-gray-400 hover:text-brand-gold hover:bg-brand-700 transition-all\">\n <i data-lucide=\"youtube\" class=\"w-5 h-5\"></i>\n </a>",
"target": [
".bg-brand-800.hover\\:bg-brand-700.w-10:nth-child(4)"
],
"failureSummary": "Fix all of the following:\n Element is in tab order and does not have accessible text\n\nFix any of the following:\n Element does not have text that is visible to screen readers\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute"
}
]
},
{
"id": "select-name",
"impact": "critical",
"tags": [
"cat.forms",
"wcag2a",
"wcag412",
"section508",
"section508.22.n",
"TTv5",
"TT5.c",
"EN-301-549",
"EN-9.4.1.2",
"ACT"
],
"description": "Ensure select element has an accessible name",
"help": "Select element must have an accessible name",
"helpUrl": "https://dequeuniversity.com/rules/axe/4.10/select-name?application=axeAPI",
"nodes": [
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<select id=\"filterType\" class=\"w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-3 text-white focus:outline-none focus:border-brand-gold\">",
"target": [
"#filterType"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<select id=\"filterWager\" class=\"w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-3 text-white focus:outline-none focus:border-brand-gold\">",
"target": [
"#filterWager"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
},
{
"any": [
{
"id": "implicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an implicit (wrapped) <label>"
},
{
"id": "explicit-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element does not have an explicit <label>"
},
{
"id": "aria-label",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-label attribute does not exist or is empty"
},
{
"id": "aria-labelledby",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty"
},
{
"id": "non-empty-title",
"data": {
"messageKey": "noAttr"
},
"relatedNodes": [],
"impact": "critical",
"message": "Element has no title attribute"
},
{
"id": "presentational-role",
"data": null,
"relatedNodes": [],
"impact": "critical",
"message": "Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
],
"all": [],
"none": [],
"impact": "critical",
"html": "<select id=\"filterGame\" class=\"w-full bg-brand-900 border border-white/10 rounded-lg px-4 py-3 text-white focus:outline-none focus:border-brand-gold\">",
"target": [
"#filterGame"
],
"failureSummary": "Fix any of the following:\n Element does not have an implicit (wrapped) <label>\n Element does not have an explicit <label>\n aria-label attribute does not exist or is empty\n aria-labelledby attribute does not exist, references elements that do not exist or references elements that are empty\n Element has no title attribute\n Element's default semantics were not overridden with role=\"none\" or role=\"presentation\""
}
]
}
],
"coverage": {
"contract": "main-document-vertical-scroll",
"complete": true,
"positions": [
{
"y": 0,
"height": 9075
},
{
"y": 576,
"height": 9075
},
{
"y": 1152,
"height": 9075
},
{
"y": 1728,
"height": 9075
},
{
"y": 2304,
"height": 9075
},
{
"y": 2880,
"height": 9075
},
{
"y": 3456,
"height": 9075
},
{
"y": 4032,
"height": 9075
},
{
"y": 4608,
"height": 9075
},
{
"y": 5184,
"height": 9075
},
{
"y": 5760,
"height": 9075
},
{
"y": 6336,
"height": 9075
},
{
"y": 6912,
"height": 9075
},
{
"y": 7488,
"height": 9075
},
{
"y": 8064,
"height": 9075
},
{
"y": 8355,
"height": 9075
}
],
"scans": 17,
"max_states": 512,
"settle_ms": 5000,
"page_timeout_seconds": 150,
"layout_stability": "consecutive 100ms size samples within one CSS pixel",
"animation_settling": "finite animations present when scroll resources are ready finish or are cancelled",
"interactive_states": "not exercised",
"horizontal_scroll": "not exercised"
}
}
System Prompt
You are a lead web developer at a top digital agency, tasked with creating a one-page website for a new client based on the given specifications, delivered as an HTML file. First non-whitespace char '<', last non-whitespace char '>'. Use the following services to generate placeholder images where needed:
- placehold.co (text): https://placehold.co/[{w}x{h}|{size}][/{bg-color}/{text-color}]?text={text}&font=[lato|lora|montserrat|noto sans|open sans|oswald|playfair display|poppins|pt sans|raleway|roboto|source sans|source sans pro]
- picsum.photos (photos): https://picsum.photos/[{w}/{h}|{size}]?[grayscale][&blur={1-10}]
- pravatar.cc (avatars): https://i.pravatar.cc/{size}?u={identifier}
Choose sizes appropriate to layout.
User Prompt
Create a **complete, polished, production-quality** primary web page for a new client in the "Gambling/Casinos" sector.
Your goal is to generate the full HTML code for a page that is not just functional but also visually compelling, content-rich, and feels like a finished product ready for launch.
**Client & Category:**
- Industry: "Gambling/Casinos"
- Description: Gambling news, casino guides, betting tips, and gaming resources.
**Your Creative Task:**
1. **Invent:** Create a unique, professional-sounding site name and a strong tagline fitting the "Gambling/Casinos" category.
2. **Define Page:** Determine the most effective primary page type (e.g., homepage, service landing page, category portal) to showcase this fictional entity.
3. **Design:** Develop an opinionated, modern, and professional layout. Make distinct choices about structure and flow.
**Content & Structure Requirements (Deliver a COMPLETE page):**
- **Overall:** The final page must feel substantial and complete, with realistic amounts of text (multiple paragraphs per section where appropriate, avoid single sentences), well-integrated placeholder images, and logical flow. It should look like a real website a business would proudly use.
- **HEADER:** Include the invented site name, tagline, a logo placeholder image, and a primary navigation bar. Ensure the navigation has **at least 5-7 clearly defined, relevant links** including: "Support", "Reviews", "Casino Finder".
- **MAIN CONTENT:** Structure this area with **at least 3-4 distinct, well-developed sections**.
- Address key topics relevant to the "Gambling/Casinos" category. Consider themes similar to: "Sports Betting", "Jackpot Winners", "Poker Room".
- **Content Depth:** Populate each section with **substantial, realistic text** (multiple sentences/paragraphs). Use authentic industry language and terminology like: "house edge", "variance", "stake".
- **Visuals:** Integrate relevant placeholder images logically within the content sections.
- **Calls to Action:** Include clear and contextually relevant CTAs. Use strong verbs similar to: "View Odds", "Get Started", "Read Rules".
- **ENGAGEMENT (Recommended):** Strongly consider incorporating **one meaningful interactive element** that would genuinely benefit a user in the "Gambling/Casinos" sector. Ideas similar but not limited to: "bonus finder".
- **SIDEBAR (Optional):** If your design includes a sidebar, populate it with **useful, relevant content**. Ideas: "responsible gaming tips", "game tips", "bonus offers".
- **FOOTER:** Include a professional footer with invented contact details, copyright (current year), social media links, and standard links (Privacy, Terms).
- **MODERN WEB PATTERNS:** Include modern web patterns like testimonial cards, feature grids, or FAQ accordions where appropriate.