undefined / index.html
bradleyschulz's picture
Improve the visuals of the site more
c7c2000 verified
Raw History Blame Contribute Delete
42 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Shouts - Drink & Save</title>
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://unpkg.com/feather-icons"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/animejs@3.2.1/lib/anime.min.js"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#4F46E5',
secondary: '#10B981',
}
}
}
}
</script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap');
body {
font-family: 'Inter', sans-serif;
}
.gradient-bg {
background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
}
.progress-bar {
height: 16px;
border-radius: 20px;
background: linear-gradient(135deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05));
overflow: hidden;
position: relative;
border: 1px solid rgba(255,255,255,0.2);
}
.progress-fill {
height: 100%;
border-radius: 20px;
background: linear-gradient(90deg, #667eea, #764ba2, #f093fb);
transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
position: relative;
}
.progress-fill::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
animation: shimmer 1.5s infinite;
}
@keyframes shimmer {
0% { transform: translateX(-100%); }
100% { transform: translateX(100%); }
}
.floating-card {
animation: float 6s ease-in-out infinite;
box-shadow: 0 35px 60px -12px rgba(0, 0, 0, 0.4);
}
@keyframes float {
0%, 100% { transform: translateY(0px) rotate(0.5deg); }
50% { transform: translateY(-20px) rotate(-0.5deg); }
}
.fade-in {
opacity: 0;
transform: translateY(40px);
}
.hover-lift {
transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
overflow: hidden;
}
.hover-lift::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
transition: left 0.7s;
}
.hover-lift:hover::before {
left: 100%;
}
.hover-lift:hover {
transform: translateY(-12px) scale(1.04);
box-shadow: 0 35px 60px -12px rgba(0, 0, 0, 0.3);
}
.pulse-ring {
position: relative;
}
.pulse-ring::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: inherit;
animation: pulse-ring 1.8s infinite;
}
@keyframes pulse-ring {
0% { box-shadow: 0 0 0 0 rgba(102, 126, 234, 0.8);
}
.pulse-ring::after {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-radius: inherit;
animation: pulse-ring-2 2.2s infinite;
}
@keyframes pulse-ring-2 {
0% { box-shadow: 0 0 0 0 rgba(240, 147, 251, 0.6);
}
.glass-effect {
background: rgba(255, 255, 255, 0.15);
backdrop-filter: blur(20px);
border: 1px solid rgba(255, 255, 255, 0.3);
}
.card-gradient {
background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
}
.text-gradient {
background: linear-gradient(135deg, #667eea, #764ba2, #f093fb);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
background-size: 200% 200%;
animation: gradient-shift 3s ease infinite;
}
@keyframes gradient-shift {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
.glow-effect {
box-shadow: 0 0 40px rgba(102, 126, 234, 0.3);
}
.particle-bg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
.neon-glow {
text-shadow: 0 0 10px rgba(102, 126, 234, 0.8);
}
.morph-shape {
border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
animation: morph 8s ease-in-out infinite;
}
@keyframes morph {
0% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
}
50% { border-radius: 30% 60% 70% 40% / 50% 60% 30% 70%;
}
100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
}
}
.sparkle {
position: relative;
}
.sparkle::after {
content: '✨';
position: absolute;
top: -10px;
right: -10px;
font-size: 1.2rem;
animation: sparkle 2s infinite;
}
@keyframes sparkle {
0%, 100% { opacity: 0; transform: scale(0); }
50% { opacity: 1; transform: scale(1); }
}
</style>
</head>
<body class="bg-gray-50 min-h-screen">
<!-- Navigation -->
<nav class="bg-white/95 backdrop-blur-xl shadow-2xl sticky top-0 z-50 fade-in border-b border-white/20 glass-effect">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-20">
<div class="flex items-center">
<div class="flex-shrink-0 flex items-center">
<div class="w-12 h-12 bg-gradient-to-r from-purple-500 via-indigo-600 to-fuchsia-500 rounded-2xl flex items-center justify-center glow-effect">
<i data-feather="award" class="text-white h-6 w-6"></i>
</div>
<span class="ml-4 text-3xl font-black text-gradient tracking-tight neon-glow">Shouts</span>
</div>
<div class="hidden md:ml-16 md:flex md:space-x-12">
<a href="#" class="text-gradient font-bold inline-flex items-center px-1 pt-1 border-b-2 border-purple-500 text-lg">
Home
</a>
<a href="#" class="text-gray-600 hover:text-gradient font-semibold inline-flex items-center px-1 pt-1 border-b-2 border-transparent hover:border-purple-300 text-lg transition-all duration-500 hover:scale-105">
Venues
</a>
<a href="#" class="text-gray-600 hover:text-gradient font-semibold inline-flex items-center px-1 pt-1 border-b-2 border-transparent hover:border-purple-300 text-lg transition-all duration-500">
Rewards
</a>
</div>
</div>
<div class="flex items-center space-x-8">
<button class="px-8 py-4 border border-transparent text-lg font-bold rounded-2xl text-white bg-gradient-to-r from-purple-500 via-indigo-600 to-fuchsia-500 hover:from-purple-600 hover:via-indigo-700 hover:to-fuchsia-600 focus:outline-none focus:ring-4 focus:ring-purple-200 transition-all duration-500 hover:scale-110 shadow-2xl hover:shadow-3xl pulse-ring">
Sign In
</button>
<button class="px-8 py-4 border-2 border-purple-500 text-lg font-bold rounded-2xl text-gradient bg-white/80 hover:bg-white focus:outline-none focus:ring-4 focus:ring-purple-200 transition-all duration-500 hover:scale-110 glow-effect">
Sign Up
</button>
</div>
</div>
</div>
</nav>
<!-- Hero Section -->
<div class="gradient-bg text-white relative overflow-hidden">
<div class="particle-bg" id="particles"></div>
<div class="absolute inset-0 bg-gradient-to-br from-purple-600/20 via-indigo-700/15 to-fuchsia-500/25"></div>
<div class="max-w-7xl mx-auto py-24 px-4 sm:px-6 lg:px-8 lg:py-40 relative">
<div class="lg:grid lg:grid-cols-2 lg:gap-20 items-center">
<div class="mb-16 lg:mb-0 fade-in">
<h1 class="text-6xl font-black tracking-tighter sm:text-7xl lg:text-8xl leading-none">
Drink More,<br>
<span class="text-gradient neon-glow">Save More</span>
</h1>
<p class="mt-8 text-2xl text-white/95 leading-relaxed font-light">
Earn exclusive discounts at your favorite bars with every shout. The more you drink, the more you save on your next round!
</p>
<div class="mt-12 flex flex-col sm:flex-row gap-8">
<button class="inline-flex items-center px-10 py-5 border border-transparent text-xl font-black rounded-3xl text-purple-600 bg-white hover:bg-gray-50 transition-all duration-500 hover:scale-110 pulse-ring shadow-3xl glow-effect">
Get Started
<i data-feather="arrow-right" class="ml-4"></i>
</button>
<button class="inline-flex items-center px-10 py-5 border-2 border-white text-xl font-black rounded-3xl text-white bg-transparent hover:bg-white/15 transition-all duration-500 hover:scale-110 glass-effect border-white/30">
<i data-feather="play-circle" class="mr-4"></i>
Watch Demo
</button>
</div>
<div class="mt-16 flex items-center space-x-12">
<div class="flex items-center space-x-4 group">
<div class="w-4 h-4 bg-gradient-to-r from-green-400 to-emerald-500 rounded-full animate-pulse glow-effect"></div>
<span class="text-white/90 text-lg font-medium group-hover:text-gradient transition-all duration-500">✨ Real-time Rewards</span>
</div>
<div class="flex items-center space-x-4 group">
<div class="w-4 h-4 bg-gradient-to-r from-blue-400 to-cyan-500 rounded-full animate-pulse glow-effect"></div>
<span class="text-white/90 text-lg font-medium group-hover:text-gradient transition-all duration-500">✨ 500+ Partner Venues</span>
</div>
</div>
</div>
<div class="relative fade-in">
<div class="bg-white/15 backdrop-blur-2xl rounded-4xl shadow-3xl overflow-hidden p-10 floating-card glass-effect border border-white/30 morph-shape">
<div class="flex justify-between items-center mb-8">
<h3 class="text-2xl font-black text-white neon-glow">Your Progress</h3>
<span class="px-5 py-3 text-base font-black rounded-2xl bg-white/25 text-white backdrop-blur-xl animate-pulse glow-effect">
Bronze Tier (5%)
</span>
</div>
<div class="progress-bar mb-6">
<div class="progress-fill" style="width: 35%"></div>
</div>
<p class="text-white/90 mb-10 text-center text-lg">35/50 shouts to Silver Tier</p>
<div class="space-y-6">
<div class="flex justify-between items-center p-5 rounded-2xl bg-white/10 hover:bg-white/20 transition-all duration-500 cursor-pointer group glow-effect">
<div class="flex items-center space-x-4">
<div class="w-4 h-4 bg-gradient-to-r from-gray-400 to-gray-500 rounded-full group-hover:from-yellow-400 group-hover:to-amber-500 transition-all duration-500"></div>
<span class="font-bold text-white text-lg">Bronze (0-49)</span>
</div>
<span class="text-white/90 text-lg">5% discount</span>
</div>
<div class="flex justify-between items-center p-5 rounded-2xl bg-white/10 hover:bg-white/20 transition-all duration-500 cursor-pointer group glow-effect">
<div class="flex items-center space-x-4">
<div class="w-4 h-4 bg-gradient-to-r from-gray-300 to-gray-400 rounded-full group-hover:from-gray-400 group-hover:to-gray-500 transition-all duration-500"></div>
<span class="font-bold text-white text-lg">Silver (50-99)</span>
</div>
<span class="text-white/90 text-lg">10% discount</span>
</div>
<div class="flex justify-between items-center p-5 rounded-2xl bg-white/10 hover:bg-white/20 transition-all duration-500 cursor-pointer group glow-effect">
<div class="flex items-center space-x-4">
<div class="w-4 h-4 bg-gradient-to-r from-yellow-400 to-amber-500 rounded-full group-hover:from-yellow-500 group-hover:to-orange-500 transition-all duration-500"></div>
<span class="font-bold text-white text-lg">Gold (100-149)</span>
</div>
<span class="text-white/90 text-lg">18% discount</span>
</div>
<div class="flex justify-between items-center p-5 rounded-2xl bg-white/10 hover:bg-white/20 transition-all duration-500 cursor-pointer group glow-effect">
<div class="flex items-center space-x-4">
<div class="w-4 h-4 bg-gradient-to-r from-purple-500 to-fuchsia-600 rounded-full group-hover:from-purple-600 group-hover:to-fuchsia-700 transition-all duration-500"></div>
<span class="font-bold text-white text-lg">Platinum (150+)</span>
</div>
<span class="text-white/90 text-lg">25% discount</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- How It Works -->
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-32">
<div class="text-center mb-20">
<h2 class="text-5xl font-black text-gray-900 mb-6">
How It <span class="text-gradient neon-glow">Works</span>
</h2>
<p class="text-2xl text-gray-600 max-w-3xl mx-auto font-light leading-relaxed">
Simple steps to start saving on your drinks and unlock amazing rewards
</p>
</div>
<div class="grid md:grid-cols-3 gap-16">
<div class="bg-gradient-to-br from-white to-gray-50 p-10 rounded-4xl shadow-2xl text-center hover-lift fade-in group glow-effect" style="animation-delay: 0.1s">
<div class="mx-auto flex items-center justify-center h-24 w-24 rounded-3xl bg-gradient-to-r from-purple-500 via-indigo-600 to-fuchsia-500 mb-8 transition-all duration-500 group-hover:scale-115 group-hover:rotate-15 morph-shape">
<i data-feather="map-pin" class="text-white h-12 w-12"></i>
</div>
<div class="mb-6">
<div class="w-12 h-12 bg-gradient-to-r from-purple-500 to-fuchsia-600 text-white rounded-full flex items-center justify-center text-lg font-black mx-auto mb-4 pulse-ring">1</div>
<h3 class="text-3xl font-black text-gray-900 mb-4">Find Nearby Venues</h3>
</div>
<p class="text-gray-600 leading-relaxed text-lg font-medium">
Discover participating bars and pubs near you using our intelligent location-based search with real-time availability.
</p>
</div>
<div class="bg-gradient-to-br from-white to-gray-50 p-10 rounded-4xl shadow-2xl text-center hover-lift fade-in group glow-effect" style="animation-delay: 0.2s">
<div class="mx-auto flex items-center justify-center h-24 w-24 rounded-3xl bg-gradient-to-r from-purple-500 via-indigo-600 to-fuchsia-500 mb-8 transition-all duration-500 group-hover:scale-115 group-hover:rotate-15 morph-shape">
<i data-feather="camera" class="text-white h-12 w-12"></i>
</div>
<div class="mb-6">
<div class="w-12 h-12 bg-gradient-to-r from-purple-500 to-fuchsia-600 text-white rounded-full flex items-center justify-center text-lg font-black mx-auto mb-4 pulse-ring">2</div>
<h3 class="text-3xl font-black text-gray-900 mb-4">Scan QR Code</h3>
</div>
<p class="text-gray-600 leading-relaxed text-lg font-medium">
Scan the unique QR code at the venue to automatically check in and start tracking your shouts instantly.
</p>
</div>
<div class="bg-gradient-to-br from-white to-gray-50 p-10 rounded-4xl shadow-2xl text-center hover-lift fade-in group glow-effect" style="animation-delay: 0.3s">
<div class="mx-auto flex items-center justify-center h-24 w-24 rounded-3xl bg-gradient-to-r from-purple-500 via-indigo-600 to-fuchsia-500 mb-8 transition-all duration-500 group-hover:scale-115 group-hover:rotate-15 morph-shape">
<i data-feather="award" class="text-white h-12 w-12"></i>
</div>
<div class="mb-6">
<div class="w-12 h-12 bg-gradient-to-r from-purple-500 to-fuchsia-600 text-white rounded-full flex items-center justify-center text-lg font-black mx-auto mb-4 pulse-ring">3</div>
<h3 class="text-3xl font-black text-gray-900 mb-4">Earn Rewards</h3>
</div>
<p class="text-gray-600 leading-relaxed text-lg font-medium">
Unlock increasing discounts and exclusive perks as you reach new tiers at each venue you visit.
</p>
</div>
</div>
</div>
<!-- Featured Venues -->
<div class="bg-gradient-to-br from-gray-50 to-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-24">
<div class="text-center mb-16">
<h2 class="text-4xl font-black text-gray-900 mb-4">
Popular <span class="text-gradient">Venues</span> Near You
</h2>
<p class="text-xl text-gray-600 max-w-2xl mx-auto">
Discover the hottest spots in your area and start earning rewards today
</p>
</div>
<div class="grid md:grid-cols-3 gap-8">
<div class="bg-white rounded-3xl shadow-xl overflow-hidden hover-lift fade-in group" style="animation-delay: 0.1s">
<div class="relative h-56 bg-cover bg-center transition-transform duration-500 group-hover:scale-110" style="background-image: url('http://static.photos/food/640x360/1')">
<div class="absolute inset-0 bg-black/20 group-hover:bg-black/10 transition-all duration-500"></div>
<div class="absolute top-4 right-4">
<span class="px-3 py-1 bg-white/90 backdrop-blur-sm rounded-full text-sm font-bold text-gray-900">0.3 miles</span>
</div>
</div>
<div class="p-6">
<div class="flex items-center justify-between mb-3">
<h3 class="text-2xl font-bold text-gray-900">The Tipsy Tavern</h3>
<div class="flex items-center space-x-1 text-amber-500">
<i data-feather="star" class="h-4 w-4 fill-current"></i>
<span class="text-sm font-semibold">4.8</span>
</div>
</div>
<p class="text-gray-500 mb-6 flex items-center">
<i data-feather="map-pin" class="h-4 w-4 mr-2 text-purple-500"></i>
Downtown District
</p>
<div class="space-y-4">
<div class="flex justify-between items-center">
<span class="text-sm font-semibold text-gray-700">Current Tier: Silver</span>
<span class="text-sm text-gray-500">42/100 shouts</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 42%"></div>
</div>
<div class="flex justify-between text-sm">
<span class="text-gray-500">10% discount</span>
<span class="text-purple-600 font-semibold">Next: 18%</span>
</div>
</div>
</div>
</div>
<div class="bg-white rounded-3xl shadow-xl overflow-hidden hover-lift fade-in group" style="animation-delay: 0.2s">
<div class="relative h-56 bg-cover bg-center transition-transform duration-500 group-hover:scale-110" style="background-image: url('http://static.photos/food/640x360/2')">
<div class="absolute inset-0 bg-black/20 group-hover:bg-black/10 transition-all duration-500"></div>
<div class="absolute top-4 right-4">
<span class="px-3 py-1 bg-white/90 backdrop-blur-sm rounded-full text-sm font-bold text-gray-900">0.7 miles</span>
</div>
</div>
<div class="p-6">
<div class="flex items-center justify-between mb-3">
<h3 class="text-2xl font-bold text-gray-900">Hop Haven</h3>
<div class="flex items-center space-x-1 text-amber-500">
<i data-feather="star" class="h-4 w-4 fill-current"></i>
<span class="text-sm font-semibold">4.6</span>
</div>
</div>
<p class="text-gray-500 mb-6 flex items-center">
<i data-feather="map-pin" class="h-4 w-4 mr-2 text-purple-500"></i>
Arts District
</p>
<div class="space-y-4">
<div class="flex justify-between items-center">
<span class="text-sm font-semibold text-gray-700">Current Tier: Bronze</span>
<span class="text-sm text-gray-500">15/50 shouts</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 30%"></div>
</div>
<div class="flex justify-between text-sm">
<span class="text-gray-500">5% discount</span>
<span class="text-purple-600 font-semibold">Next: 10%</span>
</div>
</div>
</div>
</div>
<div class="bg-white rounded-3xl shadow-xl overflow-hidden hover-lift fade-in group" style="animation-delay: 0.3s">
<div class="relative h-56 bg-cover bg-center transition-transform duration-500 group-hover:scale-110" style="background-image: url('http://static.photos/food/640x360/3')">
<div class="absolute inset-0 bg-black/20 group-hover:bg-black/10 transition-all duration-500"></div>
<div class="absolute top-4 right-4">
<span class="px-3 py-1 bg-white/90 backdrop-blur-sm rounded-full text-sm font-bold text-gray-900">1.1 miles</span>
</div>
</div>
<div class="p-6">
<div class="flex items-center justify-between mb-3">
<h3 class="text-2xl font-bold text-gray-900">Barley & Vine</h3>
<div class="flex items-center space-x-1 text-amber-500">
<i data-feather="star" class="h-4 w-4 fill-current"></i>
<span class="text-sm font-semibold">4.9</span>
</div>
</div>
<p class="text-gray-500 mb-6 flex items-center">
<i data-feather="map-pin" class="h-4 w-4 mr-2 text-purple-500"></i>
Waterfront Area
</p>
<div class="space-y-4">
<div class="flex justify-between items-center">
<span class="text-sm font-semibold text-gray-700">Current Tier: Gold</span>
<span class="text-sm text-gray-500">127/150 shouts</span>
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 85%"></div>
</div>
<div class="flex justify-between text-sm">
<span class="text-gray-500">18% discount</span>
<span class="text-purple-600 font-semibold">Next: 25%</span>
</div>
</div>
</div>
</div>
</div>
<div class="text-center mt-12">
<button class="inline-flex items-center px-8 py-4 border-2 border-purple-500 text-lg font-bold rounded-2xl text-purple-500 bg-white hover:bg-purple-500 hover:text-white transition-all duration-300 hover:scale-105 shadow-lg hover:shadow-xl">
Explore All Venues
<i data-feather="arrow-right" class="ml-3"></i>
</button>
</div>
</div>
</div>
<!-- CTA Section -->
<div class="bg-gradient-to-r from-purple-600 to-indigo-700 text-white relative overflow-hidden">
<div class="absolute inset-0 bg-black/10"></div>
<div class="max-w-7xl mx-auto py-20 px-4 sm:px-6 lg:px-8 text-center relative">
<h2 class="text-4xl font-black mb-6 fade-in">Ready to Start <span class="text-white">Saving?</span></h2>
<p class="text-xl mb-12 text-white/90 fade-in max-w-2xl mx-auto leading-relaxed">
Join thousands of happy drinkers who are already earning exclusive rewards and saving big at their favorite bars.
</p>
<button class="inline-flex items-center px-10 py-5 border-2 border-white text-xl font-bold rounded-2xl text-purple-600 bg-white hover:bg-transparent hover:text-white transition-all duration-300 hover:scale-105 shadow-2xl pulse-ring">
Sign Up Now
<i data-feather="arrow-right" class="ml-4"></i>
</button>
<div class="mt-16 grid grid-cols-2 md:grid-cols-3 gap-8 max-w-3xl mx-auto">
<div class="text-center fade-in" style="animation-delay: 0.1s">
<div class="text-4xl font-black mb-2">10K+</div>
<div class="text-white/80 text-lg">Active Users</div>
</div>
<div class="text-center fade-in" style="animation-delay: 0.2s">
<div class="text-4xl font-black mb-2">500+</div>
<div class="text-white/80 text-lg">Partner Venues</div>
</div>
<div class="text-center fade-in" style="animation-delay: 0.3s">
<div class="text-4xl font-black mb-2">$1M+</div>
<div class="text-white/80 text-lg">Total Saved</div>
</div>
</div>
</div>
</div>
<!-- Footer -->
<footer class="bg-gray-800 text-white">
<div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:px-8">
<div class="grid grid-cols-2 md:grid-cols-4 gap-8">
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase mb-4">Company</h3>
<ul class="space-y-2">
<li><a href="#" class="text-base text-gray-300 hover:text-white">About</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Careers</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Contact</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase mb-4">Support</h3>
<ul class="space-y-2">
<li><a href="#" class="text-base text-gray-300 hover:text-white">Help Center</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Privacy Policy</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Terms of Service</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase mb-4">For Venues</h3>
<ul class="space-y-2">
<li><a href="#" class="text-base text-gray-300 hover:text-white">Partner With Us</a></li>
<li><a href="#" class="text-base text-gray-300 hover:text-white">Venue Dashboard</a></li>
</ul>
</div>
<div>
<h3 class="text-sm font-semibold text-gray-400 tracking-wider uppercase mb-4">Connect</h3>
<div class="flex space-x-4">
<a href="#" class="text-gray-300 hover:text-white">
<i data-feather="facebook"></i>
</a>
<a href="#" class="text-gray-300 hover:text-white">
<i data-feather="twitter"></i>
</a>
<a href="#" class="text-gray-300 hover:text-white">
<i data-feather="instagram"></i>
</a>
</div>
</div>
</div>
<div class="mt-12 border-t border-gray-700 pt-8">
<p class="text-base text-gray-400 text-center">
&copy; 2023 Shouts. All rights reserved.
</p>
</div>
</div>
</footer>
<script>
feather.replace();
// Initialize animations
document.addEventListener('DOMContentLoaded', function() {
// Enhanced particle effect
const createParticles = (containerId, count = 50) => {
const container = document.getElementById(containerId);
if (!container) return;
for (let i = 0; i < count; i++) {
const particle = document.createElement('div');
particle.style.cssText = `
position: absolute;
width: 4px;
height: 4px;
background: rgba(255,255,255,0.3);
border-radius: 50%;
position: absolute;
pointer-events: none;
animation: float-particle ${8 + Math.random() * 8}s ease-in-out infinite;
animation-delay: ${Math.random() * 8}s;
box-shadow: 0 0 10px rgba(255,255,255,0.5);
`;
particle.style.left = `${Math.random() * 100}%`;
particle.style.top = `${Math.random() * 100}%`;
container.appendChild(particle);
}
}
// Create particles for hero and CTA sections
createParticles('particles', 80);
createParticles('cta-particles', 60);
// Add CSS for particle animation
const style = document.createElement('style');
style.textContent = `
@keyframes float-particle {
0%, 100% { transform: translateY(0px) translateX(0px); }
25% { transform: translateY(-20px) translateX(10px); }
50% { transform: translateY(-40px) translateX(-10px); }
75% { transform: translateY(-20px) translateX(10px); }
}
`;
document.head.appendChild(style);
// Animate progress bars on scroll
const observerOptions = {
threshold: 0.3,
rootMargin: '0px 0px -50px 0px'
};
const progressObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
anime({
targets: '.progress-fill',
width: ['0%', function(el) {
return el.style.width;
}],
easing: 'easeOutElastic(1, .8)',
delay: anime.stagger(300)
});
}
});
}, observerOptions);
document.querySelectorAll('.progress-bar').forEach(bar => {
progressObserver.observe(bar);
});
// Enhanced hover effects for all interactive elements
const interactiveElements = document.querySelectorAll('.hover-lift, .pulse-ring, .glow-effect');
interactiveElements.forEach(element => {
element.addEventListener('mouseenter', function() {
anime({
targets: this,
scale: 1.08,
duration: 400,
easing: 'easeOutBack'
});
element.addEventListener('mouseleave', function() {
anime({
targets: this,
scale: 1,
duration: 400,
easing: 'easeOutBack'
});
});
});
// Enhanced floating animation for hero card
anime({
targets: '.floating-card',
translateY: [-15, 15],
duration: 4000,
easing: 'easeInOutSine',
loop: true,
direction: 'alternate'
});
});
// Supercharged geolocation with particle feedback
const getStartedButtons = document.querySelectorAll('button');
getStartedButtons.forEach(button => {
if (button.textContent.includes('Get Started')) {
button.addEventListener('click', function() {
if (navigator.geolocation) {
// Create particle burst
const burst = document.createElement('div');
burst.style.cssText = `
position: absolute;
top: 50%;
left: 50%;
width: 0;
height: 0;
border-radius: 50%;
background: rgba(255,255,255,0.8);
border-radius: 50%;
position: absolute;
pointer-events: none;
`;
anime({
targets: button,
scale: [1, 1.15, 1],
duration: 1200,
easing: 'easeOutElastic(1, .8)'
});
navigator.geolocation.getCurrentPosition(
function(position) {
console.log("Location accessed:", position.coords);
anime({
targets: button,
backgroundColor: '#10B981',
duration: 600
});
// Enhanced success animation
setTimeout(() => {
button.innerHTML = '✨ Venues Loaded! ✨';
feather.replace();
anime({
targets: button,
scale: 1,
duration: 400
});
}, 1500);
},
function(error) {
console.error("Error getting location:", error);
anime({
targets: button,
backgroundColor: '#EF4444',
duration: 600
});
button.innerHTML = '📍 Location Required';
feather.replace();
});
}
);
} else {
anime({
targets: button,
backgroundColor: '#EF4444',
duration: 600
});
}
});
}
});
});
// Enhanced scroll animations with staggered effects
const fadeInElements = document.querySelectorAll('.fade-in');
const fadeInObserver = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
anime({
targets: entry.target,
opacity: [0, 1],
translateY: [40, 0],
duration: 1000,
easing: 'easeOutCubic'
});
}
});
}, observerOptions);
fadeInElements.forEach(el => {
fadeInObserver.observe(el);
});
// Add sparkle animation to stats
anime({
targets: '.sparkle',
scale: [0.8, 1.2, 1],
duration: 2000,
delay: anime.stagger(400),
easing: 'easeOutElastic(1, .8)'
});
}
});
});
});
</script>
</body>
</html>