Spaces:
Running
Running
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Wedding Groove AI - Your Virtual Wedding DJ</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script src="https://kit.fontawesome.com/a076d05399.js" crossorigin="anonymous"></script> | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;700&family=Poppins:wght@300;400;600&display=swap'); | |
| body { | |
| font-family: 'Poppins', sans-serif; | |
| background-color: #faf7f2; | |
| } | |
| .title-font { | |
| font-family: 'Playfair Display', serif; | |
| } | |
| .gradient-bg { | |
| background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); | |
| } | |
| .dance-floor { | |
| background: repeating-linear-gradient( | |
| 45deg, | |
| #fff, | |
| #fff 10px, | |
| #f8f8f8 10px, | |
| #f8f8f8 20px | |
| ); | |
| animation: danceLights 10s infinite alternate; | |
| } | |
| @keyframes danceLights { | |
| 0% { box-shadow: 0 0 10px rgba(255,105,180,0.5); } | |
| 25% { box-shadow: 0 0 20px rgba(255,215,0,0.5); } | |
| 50% { box-shadow: 0 0 15px rgba(0,191,255,0.5); } | |
| 75% { box-shadow: 0 0 25px rgba(138,43,226,0.5); } | |
| 100% { box-shadow: 0 0 30px rgba(50,205,50,0.5); } | |
| } | |
| .equalizer-bar { | |
| animation: equalize 1.5s infinite ease-in-out; | |
| transform-origin: bottom; | |
| } | |
| .equalizer-bar:nth-child(1) { animation-delay: 0.1s; height: 20%; } | |
| .equalizer-bar:nth-child(2) { animation-delay: 0.3s; height: 50%; } | |
| .equalizer-bar:nth-child(3) { animation-delay: 0.6s; height: 30%; } | |
| .equalizer-bar:nth-child(4) { animation-delay: 0.2s; height: 70%; } | |
| .equalizer-bar:nth-child(5) { animation-delay: 0.4s; height: 40%; } | |
| @keyframes equalize { | |
| 0%, 100% { transform: scaleY(1); } | |
| 50% { transform: scaleY(0.5); } | |
| } | |
| .song-card:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 10px 20px rgba(0,0,0,0.1); | |
| } | |
| .pulse-animation { | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { transform: scale(1); } | |
| 50% { transform: scale(1.05); } | |
| 100% { transform: scale(1); } | |
| } | |
| </style> | |
| </head> | |
| <body class="min-h-screen gradient-bg"> | |
| <div class="container mx-auto px-4 py-8"> | |
| <!-- Header --> | |
| <header class="flex flex-col items-center mb-12"> | |
| <div class="flex items-center justify-center mb-6"> | |
| <div class="w-16 h-16 rounded-full bg-white shadow-lg flex items-center justify-center mr-4"> | |
| <i class="fas fa-music text-3xl text-pink-500"></i> | |
| </div> | |
| <h1 class="title-font text-4xl md:text-5xl font-bold text-gray-800">Wedding Groove AI</h1> | |
| </div> | |
| <p class="text-lg text-gray-600 max-w-2xl text-center"> | |
| Your intelligent virtual DJ that adapts music in real-time based on dance floor activity | |
| </p> | |
| </header> | |
| <!-- Main Content --> | |
| <main class="grid grid-cols-1 lg:grid-cols-3 gap-8"> | |
| <!-- Dance Floor Camera --> | |
| <div class="lg:col-span-2 bg-white rounded-2xl shadow-xl overflow-hidden"> | |
| <div class="p-4 bg-gray-800 flex items-center"> | |
| <div class="flex space-x-2 mr-4"> | |
| <div class="w-3 h-3 rounded-full bg-red-500"></div> | |
| <div class="w-3 h-3 rounded-full bg-yellow-500"></div> | |
| <div class="w-3 h-3 rounded-full bg-green-500"></div> | |
| </div> | |
| <p class="text-white text-sm">Live Dance Floor Camera</p> | |
| </div> | |
| <div class="dance-floor h-96 relative overflow-hidden flex items-center justify-center"> | |
| <div class="absolute inset-0 flex items-center justify-center"> | |
| <div class="text-center p-6 bg-white bg-opacity-90 rounded-xl shadow-lg max-w-md mx-auto"> | |
| <i class="fas fa-video text-4xl text-gray-400 mb-4"></i> | |
| <h3 class="text-xl font-semibold text-gray-700 mb-2">Live Camera Feed</h3> | |
| <p class="text-gray-500 mb-4">Connect your camera to analyze dance floor activity</p> | |
| <button class="bg-pink-500 hover:bg-pink-600 text-white px-6 py-2 rounded-full font-medium transition-all"> | |
| Connect Camera | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Dance floor animation --> | |
| <div class="absolute bottom-0 left-0 right-0 h-16 bg-gradient-to-t from-black to-transparent opacity-20"></div> | |
| </div> | |
| <div class="p-4 bg-gray-100 flex justify-between items-center"> | |
| <div> | |
| <p class="text-sm text-gray-600">Dance floor analysis:</p> | |
| <p class="font-medium">Active: <span class="text-green-600">Analyzing...</span></p> | |
| </div> | |
| <div class="flex items-center"> | |
| <div class="flex space-x-1 h-8 mr-3"> | |
| <div class="equalizer-bar w-2 bg-pink-500 rounded-t"></div> | |
| <div class="equalizer-bar w-2 bg-purple-500 rounded-t"></div> | |
| <div class="equalizer-bar w-2 bg-blue-500 rounded-t"></div> | |
| <div class="equalizer-bar w-2 bg-green-500 rounded-t"></div> | |
| <div class="equalizer-bar w-2 bg-yellow-500 rounded-t"></div> | |
| </div> | |
| <span class="text-sm font-medium">AI Processing</span> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Control Panel --> | |
| <div class="bg-white rounded-2xl shadow-xl overflow-hidden"> | |
| <div class="p-4 bg-gray-800"> | |
| <h2 class="text-white font-semibold">DJ Control Panel</h2> | |
| </div> | |
| <div class="p-6"> | |
| <!-- Current Song --> | |
| <div class="mb-8"> | |
| <div class="flex items-center mb-4"> | |
| <div class="w-12 h-12 bg-pink-100 rounded-lg flex items-center justify-center mr-3"> | |
| <i class="fas fa-music text-pink-500"></i> | |
| </div> | |
| <div> | |
| <h3 class="font-semibold text-gray-800">Now Playing</h3> | |
| <p class="text-sm text-gray-500">Selected by AI based on activity</p> | |
| </div> | |
| </div> | |
| <div class="song-card bg-gray-50 rounded-xl p-4 transition-all duration-300"> | |
| <div class="flex items-center"> | |
| <div class="w-16 h-16 bg-gradient-to-br from-purple-400 to-pink-500 rounded-lg flex items-center justify-center mr-4"> | |
| <i class="fas fa-play text-white"></i> | |
| </div> | |
| <div> | |
| <h4 class="font-semibold">Uptown Funk</h4> | |
| <p class="text-sm text-gray-500">Bruno Mars</p> | |
| <div class="flex items-center mt-1"> | |
| <span class="text-xs bg-green-100 text-green-800 px-2 py-1 rounded-full">High Energy</span> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-3"> | |
| <div class="w-full bg-gray-200 rounded-full h-1.5"> | |
| <div class="bg-pink-500 h-1.5 rounded-full" style="width: 65%"></div> | |
| </div> | |
| <div class="flex justify-between text-xs text-gray-500 mt-1"> | |
| <span>2:15</span> | |
| <span>3:42</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Dance Floor Stats --> | |
| <div class="mb-8"> | |
| <h3 class="font-semibold text-gray-800 mb-3">Dance Floor Metrics</h3> | |
| <div class="grid grid-cols-3 gap-3"> | |
| <div class="bg-blue-50 p-3 rounded-lg text-center"> | |
| <div class="text-2xl font-bold text-blue-600 mb-1">87%</div> | |
| <div class="text-xs text-blue-800">Dancing</div> | |
| </div> | |
| <div class="bg-purple-50 p-3 rounded-lg text-center"> | |
| <div class="text-2xl font-bold text-purple-600 mb-1">23</div> | |
| <div class="text-xs text-purple-800">Active</div> | |
| </div> | |
| <div class="bg-pink-50 p-3 rounded-lg text-center"> | |
| <div class="text-2xl font-bold text-pink-600 mb-1">9.2</div> | |
| <div class="text-xs text-pink-800">Energy</div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- AI Recommendations --> | |
| <div> | |
| <h3 class="font-semibold text-gray-800 mb-3">AI Recommendations</h3> | |
| <div class="space-y-3"> | |
| <div class="flex items-center p-3 bg-gray-50 rounded-lg cursor-pointer hover:bg-gray-100"> | |
| <div class="w-10 h-10 bg-purple-100 rounded-md flex items-center justify-center mr-3"> | |
| <i class="fas fa-bolt text-purple-500 text-sm"></i> | |
| </div> | |
| <div> | |
| <p class="text-sm font-medium">Increase tempo</p> | |
| <p class="text-xs text-gray-500">More people are joining</p> | |
| </div> | |
| </div> | |
| <div class="flex items-center p-3 bg-gray-50 rounded-lg cursor-pointer hover:bg-gray-100"> | |
| <div class="w-10 h-10 bg-blue-100 rounded-md flex items-center justify-center mr-3"> | |
| <i class="fas fa-random text-blue-500 text-sm"></i> | |
| </div> | |
| <div> | |
| <p class="text-sm font-medium">Switch to Pop</p> | |
| <p class="text-xs text-gray-500">Current genre getting stale</p> | |
| </div> | |
| </div> | |
| <div class="flex items-center p-3 bg-gray-50 rounded-lg cursor-pointer hover:bg-gray-100"> | |
| <div class="w-10 h-10 bg-green-100 rounded-md flex items-center justify-center mr-3"> | |
| <i class="fas fa-heart text-green-500 text-sm"></i> | |
| </div> | |
| <div> | |
| <p class="text-sm font-medium">Play favorite</p> | |
| <p class="text-xs text-gray-500">"I Wanna Dance with Somebody"</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="p-4 bg-gray-100 border-t"> | |
| <button class="w-full bg-pink-500 hover:bg-pink-600 text-white py-3 rounded-lg font-medium flex items-center justify-center pulse-animation"> | |
| <i class="fas fa-magic mr-2"></i> Auto-DJ Mode: ON | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Playlist & Settings --> | |
| <div class="lg:col-span-3 grid grid-cols-1 md:grid-cols-3 gap-8"> | |
| <!-- Upcoming Songs --> | |
| <div class="bg-white rounded-2xl shadow-xl overflow-hidden"> | |
| <div class="p-4 bg-gray-800"> | |
| <h2 class="text-white font-semibold">Upcoming Playlist</h2> | |
| </div> | |
| <div class="p-4"> | |
| <div class="overflow-y-auto max-h-96 pr-2"> | |
| <div class="space-y-3"> | |
| <!-- Sample playlist items --> | |
| <div class="flex items-center p-3 bg-gray-50 rounded-lg"> | |
| <div class="w-10 h-10 bg-yellow-100 rounded-md flex items-center justify-center mr-3"> | |
| <span class="text-yellow-500 font-medium">1</span> | |
| </div> | |
| <div class="flex-grow"> | |
| <h4 class="font-medium text-sm">Can't Stop the Feeling!</h4> | |
| <p class="text-xs text-gray-500">Justin Timberlake</p> | |
| </div> | |
| <span class="text-xs bg-blue-100 text-blue-800 px-2 py-1 rounded-full">Pop</span> | |
| </div> | |
| <div class="flex items-center p-3 bg-gray-50 rounded-lg"> | |
| <div class="w-10 h-10 bg-gray-100 rounded-md flex items-center justify-center mr-3"> | |
| <span class="text-gray-500 font-medium">2</span> | |
| </div> | |
| <div class="flex-grow"> | |
| <h4 class="font-medium text-sm">Thinking Out Loud</h4> | |
| <p class="text-xs text-gray-500">Ed Sheeran</p> | |
| </div> | |
| <span class="text-xs bg-pink-100 text-pink-800 px-2 py-1 rounded-full">Slow</span> | |
| </div> | |
| <div class="flex items-center p-3 bg-gray-50 rounded-lg"> | |
| <div class="w-10 h-10 bg-gray-100 rounded-md flex items-center justify-center mr-3"> | |
| <span class="text-gray-500 font-medium">3</span> | |
| </div> | |
| <div class="flex-grow"> | |
| <h4 class="font-medium text-sm">Dancing Queen</h4> | |
| <p class="text-xs text-gray-500">ABBA</p> | |
| </div> | |
| <span class="text-xs bg-purple-100 text-purple-800 px-2 py-1 rounded-full">Disco</span> | |
| </div> | |
| <div class="flex items-center p-3 bg-gray-50 rounded-lg"> | |
| <div class="w-10 h-10 bg-gray-100 rounded-md flex items-center justify-center mr-3"> | |
| <span class="text-gray-500 font-medium">4</span> | |
| </div> | |
| <div class="flex-grow"> | |
| <h4 class="font-medium text-sm">Shape of You</h4> | |
| <p class="text-xs text-gray-500">Ed Sheeran</p> | |
| </div> | |
| <span class="text-xs bg-green-100 text-green-800 px-2 py-1 rounded-full">Pop</span> | |
| </div> | |
| <div class="flex items-center p-3 bg-gray-50 rounded-lg"> | |
| <div class="w-10 h-10 bg-gray-100 rounded-md flex items-center justify-center mr-3"> | |
| <span class="text-gray-500 font-medium">5</span> | |
| </div> | |
| <div class="flex-grow"> | |
| <h4 class="font-medium text-sm">Billie Jean</h4> | |
| <p class="text-xs text-gray-500">Michael Jackson</p> | |
| </div> | |
| <span class="text-xs bg-indigo-100 text-indigo-800 px-2 py-1 rounded-full">80s</span> | |
| </div> | |
| </div> | |
| </div> | |
| <button class="w-full mt-4 border-2 border-pink-500 text-pink-500 hover:bg-pink-50 py-2 rounded-lg font-medium flex items-center justify-center"> | |
| <i class="fas fa-plus mr-2"></i> Add Songs | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Genre Settings --> | |
| <div class="bg-white rounded-2xl shadow-xl overflow-hidden"> | |
| <div class="p-4 bg-gray-800"> | |
| <h2 class="text-white font-semibold">Genre Preferences</h2> | |
| </div> | |
| <div class="p-4"> | |
| <div class="space-y-4"> | |
| <div> | |
| <label class="flex items-center justify-between cursor-pointer"> | |
| <span class="font-medium">Pop</span> | |
| <div class="relative"> | |
| <input type="checkbox" class="sr-only" checked> | |
| <div class="block bg-gray-300 w-12 h-6 rounded-full"></div> | |
| <div class="dot absolute left-1 top-1 bg-white w-4 h-4 rounded-full transition transform translate-x-6 bg-green-500"></div> | |
| </div> | |
| </label> | |
| <div class="w-full bg-gray-200 rounded-full h-1.5 mt-2"> | |
| <div class="bg-pink-500 h-1.5 rounded-full" style="width: 80%"></div> | |
| </div> | |
| </div> | |
| <div> | |
| <label class="flex items-center justify-between cursor-pointer"> | |
| <span class="font-medium">Rock</span> | |
| <div class="relative"> | |
| <input type="checkbox" class="sr-only" checked> | |
| <div class="block bg-gray-300 w-12 h-6 rounded-full"></div> | |
| <div class="dot absolute left-1 top-1 bg-white w-4 h-4 rounded-full transition transform translate-x-6 bg-green-500"></div> | |
| </div> | |
| </label> | |
| <div class="w-full bg-gray-200 rounded-full h-1.5 mt-2"> | |
| <div class="bg-pink-500 h-1.5 rounded-full" style="width: 50%"></div> | |
| </div> | |
| </div> | |
| <div> | |
| <label class="flex items-center justify-between cursor-pointer"> | |
| <span class="font-medium">Hip Hop</span> | |
| <div class="relative"> | |
| <input type="checkbox" class="sr-only"> | |
| <div class="block bg-gray-300 w-12 h-6 rounded-full"></div> | |
| <div class="dot absolute left-1 top-1 bg-white w-4 h-4 rounded-full transition"></div> | |
| </div> | |
| </label> | |
| <div class="w-full bg-gray-200 rounded-full h-1.5 mt-2"> | |
| <div class="bg-pink-500 h-1.5 rounded-full" style="width: 30%"></div> | |
| </div> | |
| </div> | |
| <div> | |
| <label class="flex items-center justify-between cursor-pointer"> | |
| <span class="font-medium">Electronic</span> | |
| <div class="relative"> | |
| <input type="checkbox" class="sr-only" checked> | |
| <div class="block bg-gray-300 w-12 h-6 rounded-full"></div> | |
| <div class="dot absolute left-1 top-1 bg-white w-4 h-4 rounded-full transition transform translate-x-6 bg-green-500"></div> | |
| </div> | |
| </label> | |
| <div class="w-full bg-gray-200 rounded-full h-1.5 mt-2"> | |
| <div class="bg-pink-500 h-1.5 rounded-full" style="width: 70%"></div> | |
| </div> | |
| </div> | |
| <div> | |
| <label class="flex items-center justify-between cursor-pointer"> | |
| <span class="font-medium">R&B/Soul</span> | |
| <div class="relative"> | |
| <input type="checkbox" class="sr-only" checked> | |
| <div class="block bg-gray-300 w-12 h-6 rounded-full"></div> | |
| <div class="dot absolute left-1 top-1 bg-white w-4 h-4 rounded-full transition transform translate-x-6 bg-green-500"></div> | |
| </div> | |
| </label> | |
| <div class="w-full bg-gray-200 rounded-full h-1.5 mt-2"> | |
| <div class="bg-pink-500 h-1.5 rounded-full" style="width: 60%"></div> | |
| </div> | |
| </div> | |
| </div> | |
| <button class="w-full mt-6 bg-gray-800 hover:bg-gray-900 text-white py-2 rounded-lg font-medium"> | |
| Save Preferences | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Wedding Details --> | |
| <div class="bg-white rounded-2xl shadow-xl overflow-hidden"> | |
| <div class="p-4 bg-gray-800"> | |
| <h2 class="text-white font-semibold">Wedding Details</h2> | |
| </div> | |
| <div class="p-4"> | |
| <div class="mb-6"> | |
| <div class="flex items-center mb-4"> | |
| <div class="w-12 h-12 bg-pink-100 rounded-lg flex items-center justify-center mr-3"> | |
| <i class="fas fa-heart text-pink-500"></i> | |
| </div> | |
| <div> | |
| <h3 class="font-semibold text-gray-800">Couple's Profile</h3> | |
| <p class="text-sm text-gray-500">Personalize the experience</p> | |
| </div> | |
| </div> | |
| <div class="space-y-4"> | |
| <div> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Bride's Name</label> | |
| <input type="text" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-pink-500 focus:border-pink-500" value="Emily"> | |
| </div> | |
| <div> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Groom's Name</label> | |
| <input type="text" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-pink-500 focus:border-pink-500" value="Michael"> | |
| </div> | |
| <div> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Wedding Date</label> | |
| <input type="date" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-pink-500 focus:border-pink-500" value="2023-06-15"> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mb-6"> | |
| <h3 class="font-semibold text-gray-800 mb-3">Special Songs</h3> | |
| <div class="space-y-3"> | |
| <div> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">First Dance</label> | |
| <input type="text" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-pink-500 focus:border-pink-500" placeholder="Song title"> | |
| </div> | |
| <div> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Father-Daughter Dance</label> | |
| <input type="text" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-pink-500 focus:border-pink-500" placeholder="Song title"> | |
| </div> | |
| <div> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Mother-Son Dance</label> | |
| <input type="text" class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-pink-500 focus:border-pink-500" placeholder="Song title"> | |
| </div> | |
| </div> | |
| </div> | |
| <button class="w-full bg-pink-500 hover:bg-pink-600 text-white py-2 rounded-lg font-medium"> | |
| Save Details | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </main> | |
| <!-- Footer --> | |
| <footer class="mt-16 pt-8 border-t border-gray-200"> | |
| <div class="flex flex-col md:flex-row justify-between items-center"> | |
| <div class="flex items-center mb-4 md:mb-0"> | |
| <div class="w-10 h-10 rounded-full bg-pink-500 flex items-center justify-center mr-3"> | |
| <i class="fas fa-music text-white"></i> | |
| </div> | |
| <span class="title-font font-semibold text-gray-800">Wedding Groove AI</span> | |
| </div> | |
| <div class="flex space-x-6"> | |
| <a href="#" class="text-gray-500 hover:text-pink-500"> | |
| <i class="fab fa-facebook-f"></i> | |
| </a> | |
| <a href="#" class="text-gray-500 hover:text-pink-500"> | |
| <i class="fab fa-instagram"></i> | |
| </a> | |
| <a href="#" class="text-gray-500 hover:text-pink-500"> | |
| <i class="fab fa-twitter"></i> | |
| </a> | |
| <a href="#" class="text-gray-500 hover:text-pink-500"> | |
| <i class="fab fa-youtube"></i> | |
| </a> | |
| </div> | |
| </div> | |
| <div class="mt-8 text-center text-sm text-gray-500"> | |
| <p>© 2023 Wedding Groove AI. All rights reserved.</p> | |
| <p class="mt-2">The intelligent virtual DJ for your perfect wedding reception.</p> | |
| </div> | |
| </footer> | |
| </div> | |
| <script> | |
| // Simple animation for demo purposes | |
| document.addEventListener('DOMContentLoaded', function() { | |
| // Simulate changing dance floor metrics | |
| setInterval(() => { | |
| const dancingElement = document.querySelector('.bg-blue-50 .text-2xl'); | |
| const activeElement = document.querySelector('.bg-purple-50 .text-2xl'); | |
| const energyElement = document.querySelector('.bg-pink-50 .text-2xl'); | |
| // Random fluctuations for demo | |
| const currentDancing = parseInt(dancingElement.textContent); | |
| const currentActive = parseInt(activeElement.textContent); | |
| const currentEnergy = parseFloat(energyElement.textContent); | |
| dancingElement.textContent = Math.max(70, Math.min(95, currentDancing + Math.floor(Math.random() * 6) - 2)) + '%'; | |
| activeElement.textContent = Math.max(15, Math.min(30, currentActive + Math.floor(Math.random() * 5) - 2)); | |
| energyElement.textContent = (Math.max(7, Math.min(9.8, currentEnergy + (Math.random() * 0.6) - 0.3)).toFixed(1); | |
| // Update song progress | |
| const progressBar = document.querySelector('.bg-pink-500'); | |
| let progress = parseInt(progressBar.style.width); | |
| progress = (progress + 1) % 100; | |
| progressBar.style.width = progress + '%'; | |
| // Update time display | |
| const timeElements = document.querySelectorAll('.text-xs.text-gray-500 span'); | |
| if (timeElements.length === 2) { | |
| const currentTime = timeElements[0]; | |
| const totalTime = timeElements[1]; | |
| if (currentTime.textContent === '2:15') { | |
| currentTime.textContent = '2:30'; | |
| } else if (currentTime.textContent === '2:30') { | |
| currentTime.textContent = '2:45'; | |
| } else { | |
| currentTime.textContent = '2:15'; | |
| } | |
| } | |
| }, 2000); | |
| // Camera connect button | |
| const connectBtn = document.querySelector('.bg-pink-500'); | |
| if (connectBtn) { | |
| connectBtn.addEventListener('click', function() { | |
| alert('Camera connection dialog would appear here in a full implementation.'); | |
| }); | |
| } | |
| }); | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=kamioll999/cam" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |