Spaces:
Running
Running
Download index.html from bradleyschulz/undefined: direct link, hf CLI and curl.
- Browser
- Download file 42 kB
-
https://huggingface.co/spaces/bradleyschulz/undefined/resolve/main/index.html
- Command line
-
hf download hf://spaces/bradleyschulz/undefined/index.html
-
curl -L -o index.html https://huggingface.co/spaces/bradleyschulz/undefined/resolve/main/index.html
42 kB
| <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"> | |
| © 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> | |