| d<!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Kenyan Wrestling Studio - Home of African Wrestling Excellence</title> |
| <meta name="description" content="Discover, upload and monetize premium Kenyan wrestling content. Join our community of wrestling enthusiasts and creators."> |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
| <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap" rel="stylesheet"> |
| <style> |
| |
| :root { |
| --primary: #2c3e50; |
| --primary-dark: #1a252f; |
| --primary-light: rgba(44, 62, 80, 0.1); |
| --secondary: #2c3e50; |
| --secondary-dark: #1a252f; |
| --light: #ecf0f1; |
| --dark: #2c3e50; |
| --white: #fff; |
| --black: #000; |
| --gray: #95a5a6; |
| --light-gray: #f8f9fa; |
| --success: #27ae60; |
| --error: #e74c3c; |
| |
| --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1); |
| --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1); |
| --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.15); |
| --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); |
| --border-radius: 8px; |
| --max-width: 1400px; |
| } |
| |
| * { |
| margin: 0; |
| padding: 0; |
| box-sizing: border-box; |
| } |
| |
| html { |
| scroll-behavior: smooth; |
| font-size: 16px; |
| } |
| |
| body { |
| font-family: 'Poppins', sans-serif; |
| background-color: var(--light-gray); |
| color: var(--dark); |
| line-height: 1.6; |
| overflow-x: hidden; |
| position: relative; |
| } |
| |
| h1, h2, h3, h4 { |
| line-height: 1.2; |
| font-weight: 700; |
| } |
| |
| a { |
| text-decoration: none; |
| color: inherit; |
| } |
| |
| img { |
| max-width: 100%; |
| height: auto; |
| } |
| |
| .container { |
| width: 100%; |
| max-width: var(--max-width); |
| margin: 0 auto; |
| padding: 0 2rem; |
| } |
| |
| section { |
| padding: 6rem 0; |
| position: relative; |
| } |
| |
| |
| .text-primary { |
| color: var(--primary); |
| } |
| |
| .text-center { |
| text-align: center; |
| } |
| |
| .mt-1 { margin-top: 1rem; } |
| .mt-2 { margin-top: 2rem; } |
| .mb-1 { margin-bottom: 1rem; } |
| .mb-2 { margin-bottom: 2rem; } |
| |
| .btn { |
| display: inline-block; |
| padding: 0.8rem 1.8rem; |
| background-color: var(--primary); |
| color: var(--white); |
| border: none; |
| border-radius: var(--border-radius); |
| font-weight: 600; |
| cursor: pointer; |
| transition: var(--transition); |
| text-transform: uppercase; |
| font-size: 0.9rem; |
| letter-spacing: 0.5px; |
| text-align: center; |
| box-shadow: var(--shadow-sm); |
| } |
| |
| .btn:hover { |
| background-color: var(--primary-dark); |
| transform: translateY(-3px); |
| box-shadow: var(--shadow-lg); |
| } |
| |
| .btn-outline { |
| background-color: transparent; |
| border: 2px solid var(--secondary); |
| color: var(--secondary); |
| } |
| |
| .btn-outline:hover { |
| background-color: var(--secondary); |
| color: var(--white); |
| } |
| |
| .btn-large { |
| padding: 1rem 2.5rem; |
| font-size: 1rem; |
| } |
| |
| .btn-block { |
| display: block; |
| width: 100%; |
| } |
| |
| .btn:disabled { |
| background-color: var(--gray); |
| cursor: not-allowed; |
| transform: none; |
| box-shadow: none; |
| } |
| |
| .btn:disabled:hover { |
| background-color: var(--gray); |
| transform: none; |
| box-shadow: none; |
| } |
| |
| |
| header { |
| background-color: var(--white); |
| box-shadow: var(--shadow-md); |
| position: fixed; |
| width: 100%; |
| top: 0; |
| z-index: 1000; |
| transition: var(--transition); |
| } |
| |
| .header-container { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| padding: 1rem 0; |
| height: 80px; |
| } |
| |
| .logo { |
| display: flex; |
| align-items: center; |
| gap: 0.8rem; |
| font-size: 1.5rem; |
| font-weight: 700; |
| color: var(--secondary); |
| } |
| |
| .logo-icon { |
| color: var(--primary); |
| font-size: 1.8rem; |
| } |
| |
| .logo span { |
| color: var(--primary); |
| } |
| |
| nav ul { |
| display: flex; |
| list-style: none; |
| gap: 2rem; |
| } |
| |
| nav ul li { |
| position: relative; |
| } |
| |
| nav ul li a { |
| color: var(--secondary); |
| font-weight: 600; |
| transition: var(--transition); |
| padding: 0.5rem 0; |
| font-size: 1rem; |
| display: flex; |
| align-items: center; |
| gap: 0.3rem; |
| } |
| |
| nav ul li a:hover { |
| color: var(--primary); |
| } |
| |
| nav ul li a::after { |
| content: ''; |
| position: absolute; |
| bottom: 0; |
| left: 0; |
| width: 0; |
| height: 2px; |
| background-color: var(--primary); |
| transition: var(--transition); |
| } |
| |
| nav ul li a:hover::after { |
| width: 100%; |
| } |
| |
| .auth-buttons { |
| display: flex; |
| align-items: center; |
| gap: 1rem; |
| } |
| |
| .user-menu { |
| position: relative; |
| } |
| |
| .user-avatar { |
| width: 40px; |
| height: 40px; |
| border-radius: 50%; |
| background-color: var(--primary-light); |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| color: var(--primary); |
| font-weight: 600; |
| cursor: pointer; |
| transition: var(--transition); |
| } |
| |
| .user-avatar:hover { |
| background-color: var(--primary); |
| color: var(--white); |
| } |
| |
| .dropdown-menu { |
| position: absolute; |
| right: 0; |
| top: 120%; |
| background-color: var(--white); |
| border-radius: var(--border-radius); |
| box-shadow: var(--shadow-lg); |
| min-width: 200px; |
| opacity: 0; |
| visibility: hidden; |
| transition: var(--transition); |
| z-index: 100; |
| } |
| |
| .dropdown-menu.active { |
| opacity: 1; |
| visibility: visible; |
| top: 100%; |
| } |
| |
| .dropdown-menu a { |
| display: block; |
| padding: 0.8rem 1.5rem; |
| color: var(--secondary); |
| transition: var(--transition); |
| } |
| |
| .dropdown-menu a:hover { |
| background-color: var(--primary-light); |
| color: var(--primary); |
| padding-left: 1.8rem; |
| } |
| |
| .dropdown-menu a i { |
| margin-right: 0.8rem; |
| width: 20px; |
| text-align: center; |
| } |
| |
| |
| .custom-order-menu { |
| position: relative; |
| } |
| |
| .custom-order-dropdown { |
| position: absolute; |
| top: 120%; |
| left: 0; |
| background-color: var(--white); |
| border-radius: var(--border-radius); |
| box-shadow: var(--shadow-lg); |
| min-width: 350px; |
| opacity: 0; |
| visibility: hidden; |
| transition: var(--transition); |
| z-index: 100; |
| padding: 1.5rem; |
| } |
| |
| .custom-order-dropdown.active { |
| opacity: 1; |
| visibility: visible; |
| top: 100%; |
| } |
| |
| .custom-order-form { |
| display: flex; |
| flex-direction: column; |
| gap: 1rem; |
| } |
| |
| .custom-order-form h3 { |
| margin-bottom: 0.5rem; |
| color: var(--secondary); |
| font-size: 1.2rem; |
| } |
| |
| .custom-order-form .form-group { |
| margin-bottom: 0; |
| } |
| |
| .custom-order-form label { |
| display: block; |
| margin-bottom: 0.5rem; |
| font-weight: 600; |
| color: var(--secondary); |
| font-size: 0.9rem; |
| } |
| |
| .custom-order-form input, |
| .custom-order-form select, |
| .custom-order-form textarea { |
| width: 100%; |
| padding: 0.6rem 0.8rem; |
| border: 1px solid #ddd; |
| border-radius: var(--border-radius); |
| font-family: 'Poppins', sans-serif; |
| transition: var(--transition); |
| background-color: var(--light-gray); |
| font-size: 0.9rem; |
| } |
| |
| .custom-order-form textarea { |
| min-height: 80px; |
| resize: vertical; |
| } |
| |
| .custom-order-form input:focus, |
| .custom-order-form select:focus, |
| .custom-order-form textarea:focus { |
| outline: none; |
| border-color: var(--primary); |
| box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.2); |
| background-color: var(--white); |
| } |
| |
| .timeframe-options { |
| display: flex; |
| gap: 0.5rem; |
| flex-wrap: wrap; |
| } |
| |
| .timeframe-option { |
| flex: 1; |
| min-width: 80px; |
| } |
| |
| .timeframe-option input { |
| display: none; |
| } |
| |
| .timeframe-option label { |
| display: block; |
| padding: 0.5rem; |
| text-align: center; |
| background-color: var(--light-gray); |
| border-radius: var(--border-radius); |
| cursor: pointer; |
| transition: var(--transition); |
| border: 1px solid transparent; |
| } |
| |
| .timeframe-option input:checked + label { |
| background-color: var(--primary); |
| color: var(--white); |
| border-color: var(--primary); |
| } |
| |
| .custom-order-price { |
| background-color: var(--primary-light); |
| padding: 0.8rem; |
| border-radius: var(--border-radius); |
| text-align: center; |
| font-weight: 600; |
| color: var(--primary); |
| margin: 0.5rem 0; |
| } |
| |
| |
| .wrestlers-menu { |
| position: relative; |
| } |
| |
| .wrestlers-dropdown { |
| position: absolute; |
| top: 120%; |
| left: 0; |
| background-color: var(--white); |
| border-radius: var(--border-radius); |
| box-shadow: var(--shadow-lg); |
| min-width: 300px; |
| opacity: 0; |
| visibility: hidden; |
| transition: var(--transition); |
| z-index: 100; |
| padding: 1.5rem; |
| } |
| |
| .wrestlers-dropdown.active { |
| opacity: 1; |
| visibility: visible; |
| top: 100%; |
| } |
| |
| .wrestlers-grid { |
| display: grid; |
| grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); |
| gap: 1rem; |
| max-height: 300px; |
| overflow-y: auto; |
| padding-right: 0.5rem; |
| } |
| |
| .wrestlers-grid::-webkit-scrollbar { |
| width: 6px; |
| } |
| |
| .wrestlers-grid::-webkit-scrollbar-track { |
| background: var(--light-gray); |
| border-radius: 10px; |
| } |
| |
| .wrestlers-grid::-webkit-scrollbar-thumb { |
| background: var(--primary); |
| border-radius: 10px; |
| } |
| |
| .wrestler-card { |
| text-align: center; |
| cursor: pointer; |
| transition: var(--transition); |
| padding: 0.5rem; |
| border-radius: var(--border-radius); |
| } |
| |
| .wrestler-card:hover { |
| transform: translateY(-5px); |
| background-color: var(--primary-light); |
| } |
| |
| .wrestler-avatar { |
| width: 80px; |
| height: 80px; |
| border-radius: 50%; |
| overflow: hidden; |
| margin: 0 auto 0.5rem; |
| border: 3px solid var(--primary-light); |
| transition: var(--transition); |
| } |
| |
| .wrestler-card:hover .wrestler-avatar { |
| border-color: var(--primary); |
| } |
| |
| .wrestler-avatar img { |
| width: 100%; |
| height: 100%; |
| object-fit: cover; |
| } |
| |
| .wrestler-name { |
| font-weight: 600; |
| font-size: 0.9rem; |
| margin-bottom: 0.2rem; |
| color: var(--secondary); |
| } |
| |
| .wrestler-region { |
| font-size: 0.8rem; |
| color: var(--gray); |
| } |
| |
| .view-all-wrestlers { |
| text-align: center; |
| margin-top: 1rem; |
| padding-top: 1rem; |
| border-top: 1px solid var(--light-gray); |
| } |
| |
| |
| .mobile-menu-toggle { |
| display: none; |
| background: none; |
| border: none; |
| font-size: 1.5rem; |
| color: var(--secondary); |
| cursor: pointer; |
| } |
| |
| |
| .hero { |
| height: 100vh; |
| min-height: 800px; |
| background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://huggingface.co/spaces/muhohodev/kenyan-wrestling-warriors-hub/resolve/main/images/shifuu.png') no-repeat center center/cover; |
| display: flex; |
| align-items: center; |
| color: var(--white); |
| text-align: center; |
| padding-top: 80px; |
| position: relative; |
| } |
| |
| .hero-content { |
| max-width: 800px; |
| margin: 0 auto; |
| animation: fadeIn 1s ease-in-out; |
| } |
| |
| .hero h1 { |
| font-size: 3.5rem; |
| margin-bottom: 1.5rem; |
| text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.5); |
| } |
| |
| .hero p { |
| font-size: 1.3rem; |
| margin-bottom: 2.5rem; |
| opacity: 0.9; |
| text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.5); |
| max-width: 600px; |
| margin-left: auto; |
| margin-right: auto; |
| } |
| |
| .hero-buttons { |
| display: flex; |
| gap: 1.5rem; |
| justify-content: center; |
| flex-wrap: wrap; |
| } |
| |
| .scroll-down { |
| position: absolute; |
| bottom: 2rem; |
| left: 50%; |
| transform: translateX(-50%); |
| color: var(--white); |
| font-size: 1.8rem; |
| animation: bounce 2s infinite; |
| cursor: pointer; |
| z-index: 10; |
| } |
| |
| |
| .videos { |
| background-color: var(--white); |
| } |
| |
| .section-header { |
| text-align: center; |
| margin-bottom: 3rem; |
| } |
| |
| .section-title { |
| font-size: 2.5rem; |
| color: var(--secondary); |
| position: relative; |
| display: inline-block; |
| margin-bottom: 1rem; |
| } |
| |
| .section-title::after { |
| content: ''; |
| display: block; |
| width: 80px; |
| height: 4px; |
| background-color: var(--primary); |
| margin: 1rem auto; |
| } |
| |
| .section-subtitle { |
| color: var(--gray); |
| max-width: 700px; |
| margin: 0 auto; |
| font-size: 1.1rem; |
| } |
| |
| .video-grid { |
| display: grid; |
| grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); |
| gap: 2rem; |
| } |
| |
| .video-card { |
| background-color: var(--white); |
| border-radius: var(--border-radius); |
| overflow: hidden; |
| box-shadow: var(--shadow-md); |
| transition: var(--transition); |
| cursor: pointer; |
| position: relative; |
| } |
| |
| .video-card:hover { |
| transform: translateY(-10px); |
| box-shadow: var(--shadow-lg); |
| } |
| |
| .video-badge { |
| position: absolute; |
| top: 1rem; |
| left: 1rem; |
| background-color: var(--primary); |
| color: var(--white); |
| padding: 0.3rem 0.8rem; |
| border-radius: 4px; |
| font-size: 0.8rem; |
| font-weight: 600; |
| z-index: 1; |
| text-transform: uppercase; |
| } |
| |
| .video-thumbnail { |
| position: relative; |
| height: 200px; |
| overflow: hidden; |
| border-radius: var(--border-radius) var(--border-radius) 0 0; |
| } |
| |
| .video-thumbnail img { |
| width: 100%; |
| height: 100%; |
| object-fit: cover; |
| transition: var(--transition); |
| } |
| |
| .video-card:hover .video-thumbnail img { |
| transform: scale(1.05); |
| } |
| |
| .play-icon { |
| position: absolute; |
| top: 50%; |
| left: 50%; |
| transform: translate(-50%, -50%); |
| width: 60px; |
| height: 60px; |
| background-color: rgba(230, 126, 34, 0.9); |
| border-radius: 50%; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| opacity: 0; |
| transition: var(--transition); |
| } |
| |
| .video-card:hover .play-icon { |
| opacity: 1; |
| } |
| |
| .play-icon i { |
| color: var(--white); |
| font-size: 1.5rem; |
| margin-left: 0.2rem; |
| } |
| |
| .duration-badge { |
| position: absolute; |
| bottom: 0.8rem; |
| right: 0.8rem; |
| background-color: rgba(0, 0, 0, 0.7); |
| color: white; |
| padding: 0.2rem 0.6rem; |
| border-radius: 4px; |
| font-size: 0.8rem; |
| font-weight: 600; |
| } |
| |
| .video-info { |
| padding: 1.5rem; |
| } |
| |
| .video-title { |
| font-size: 1.2rem; |
| margin-bottom: 0.8rem; |
| color: var(--secondary); |
| font-weight: 600; |
| display: -webkit-box; |
| -webkit-line-clamp: 2; |
| -webkit-box-orient: vertical; |
| overflow: hidden; |
| min-height: 3.2rem; |
| } |
| |
| .video-meta { |
| display: flex; |
| justify-content: space-between; |
| color: var(--gray); |
| font-size: 0.9rem; |
| } |
| |
| .video-views { |
| display: flex; |
| align-items: center; |
| gap: 0.4rem; |
| } |
| |
| .video-price { |
| color: var(--primary); |
| font-weight: 700; |
| } |
| |
| .view-more { |
| text-align: center; |
| margin-top: 3rem; |
| } |
| |
| |
| .stats { |
| background-color: var(--primary); |
| color: var(--white); |
| padding: 5rem 0; |
| } |
| |
| .stats-container { |
| display: grid; |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); |
| gap: 2rem; |
| text-align: center; |
| } |
| |
| .stat-item { |
| padding: 1.5rem; |
| } |
| |
| .stat-number { |
| font-size: 3rem; |
| font-weight: 700; |
| margin-bottom: 0.5rem; |
| } |
| |
| .stat-label { |
| font-size: 1.1rem; |
| opacity: 0.9; |
| text-transform: uppercase; |
| letter-spacing: 1px; |
| } |
| |
| |
| .upload { |
| background-color: var(--light); |
| } |
| |
| .upload-container { |
| max-width: 800px; |
| margin: 0 auto; |
| background-color: var(--white); |
| padding: 3rem; |
| border-radius: var(--border-radius); |
| box-shadow: var(--shadow-md); |
| } |
| |
| .upload-area { |
| border: 2px dashed var(--gray); |
| border-radius: var(--border-radius); |
| padding: 3rem; |
| text-align: center; |
| margin-bottom: 2rem; |
| cursor: pointer; |
| transition: var(--transition); |
| position: relative; |
| } |
| |
| .upload-area:hover { |
| border-color: var(--primary); |
| background-color: var(--primary-light); |
| } |
| |
| .upload-area i { |
| font-size: 3rem; |
| color: var(--primary); |
| margin-bottom: 1rem; |
| } |
| |
| .upload-area h3 { |
| margin-bottom: 0.8rem; |
| color: var(--secondary); |
| font-size: 1.3rem; |
| } |
| |
| .upload-area p { |
| margin-bottom: 1rem; |
| color: var(--gray); |
| } |
| |
| .upload-preview { |
| display: none; |
| margin-top: 1.5rem; |
| position: relative; |
| } |
| |
| .upload-preview video { |
| max-width: 100%; |
| border-radius: var(--border-radius); |
| box-shadow: var(--shadow-md); |
| } |
| |
| .remove-video { |
| position: absolute; |
| top: 0.8rem; |
| right: 0.8rem; |
| background-color: rgba(0, 0, 0, 0.7); |
| color: white; |
| width: 30px; |
| height: 30px; |
| border-radius: 50%; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| cursor: pointer; |
| z-index: 1; |
| transition: var(--transition); |
| } |
| |
| .remove-video:hover { |
| background-color: var(--error); |
| } |
| |
| |
| .upload-progress { |
| display: none; |
| margin-top: 1rem; |
| background-color: var(--light-gray); |
| border-radius: var(--border-radius); |
| overflow: hidden; |
| } |
| |
| .progress-bar { |
| height: 6px; |
| background-color: var(--primary); |
| width: 0%; |
| transition: width 0.3s ease; |
| } |
| |
| .progress-text { |
| text-align: center; |
| padding: 0.5rem; |
| font-size: 0.9rem; |
| color: var(--gray); |
| } |
| |
| |
| .form-group { |
| margin-bottom: 1.5rem; |
| } |
| |
| .form-group label { |
| display: block; |
| margin-bottom: 0.6rem; |
| font-weight: 600; |
| color: var(--secondary); |
| } |
| |
| .form-group input, |
| .form-group textarea, |
| .form-group select { |
| width: 100%; |
| padding: 0.8rem 1rem; |
| border: 1px solid #ddd; |
| border-radius: var(--border-radius); |
| font-family: 'Poppins', sans-serif; |
| transition: var(--transition); |
| background-color: var(--light-gray); |
| } |
| |
| .form-group textarea { |
| min-height: 120px; |
| resize: vertical; |
| } |
| |
| .form-group input:focus, |
| .form-group textarea:focus, |
| .form-group select:focus { |
| outline: none; |
| border-color: var(--primary); |
| box-shadow: 0 0 0 3px rgba(230, 126, 34, 0.2); |
| background-color: var(--white); |
| } |
| |
| .form-message { |
| padding: 0.8rem; |
| border-radius: var(--border-radius); |
| margin-bottom: 1rem; |
| display: none; |
| } |
| |
| .form-message.success { |
| background-color: rgba(39, 174, 96, 0.1); |
| color: var(--success); |
| border: 1px solid var(--success); |
| display: block; |
| } |
| |
| .form-message.error { |
| background-color: rgba(231, 76, 60, 0.1); |
| color: var(--error); |
| border: 1px solid var(--error); |
| display: block; |
| } |
| |
| |
| .about { |
| background-color: var(--white); |
| } |
| |
| .about-content { |
| display: flex; |
| align-items: center; |
| gap: 4rem; |
| } |
| |
| .about-image { |
| flex: 1; |
| border-radius: var(--border-radius); |
| overflow: hidden; |
| box-shadow: var(--shadow-lg); |
| } |
| .about-image img { |
| width: 100%; |
| height: auto; |
| display: block; |
| transition: var(--transition); |
| border-radius: var(--border-radius); |
| margin-bottom: 1rem; |
| } |
| |
| .about-gallery { |
| display: grid; |
| grid-template-columns: repeat(3, 1fr); |
| gap: 1rem; |
| margin-top: 1.5rem; |
| } |
| |
| .about-gallery img { |
| width: 100%; |
| height: 100%; |
| object-fit: cover; |
| border-radius: var(--border-radius); |
| transition: var(--transition); |
| box-shadow: var(--shadow-sm); |
| } |
| |
| .about-gallery img:hover { |
| transform: scale(1.05); |
| box-shadow: var(--shadow-md); |
| } |
| .about-image:hover img { |
| transform: scale(1.03); |
| } |
| |
| .about-text { |
| flex: 1; |
| } |
| |
| .about-text h2 { |
| font-size: 2.2rem; |
| margin-bottom: 1.5rem; |
| color: var(--secondary); |
| } |
| |
| .about-text p { |
| margin-bottom: 1.2rem; |
| color: var(--gray); |
| font-size: 1.1rem; |
| } |
| |
| |
| .testimonials { |
| background-color: var(--light); |
| } |
| |
| .testimonials-container { |
| max-width: 1200px; |
| margin: 0 auto; |
| } |
| |
| .testimonial-slider { |
| display: flex; |
| overflow-x: auto; |
| scroll-snap-type: x mandatory; |
| gap: 2rem; |
| padding: 1rem 0; |
| scrollbar-width: none; |
| } |
| |
| .testimonial-slider::-webkit-scrollbar { |
| display: none; |
| } |
| |
| .testimonial-card { |
| min-width: 350px; |
| background-color: var(--white); |
| border-radius: var(--border-radius); |
| padding: 2rem; |
| box-shadow: var(--shadow-md); |
| scroll-snap-align: start; |
| } |
| |
| .testimonial-content { |
| font-style: italic; |
| margin-bottom: 1.5rem; |
| color: var(--secondary); |
| } |
| |
| .testimonial-author { |
| display: flex; |
| align-items: center; |
| gap: 1rem; |
| } |
| |
| .author-avatar { |
| width: 50px; |
| height: 50px; |
| border-radius: 50%; |
| overflow: hidden; |
| } |
| |
| .author-info h4 { |
| font-size: 1.1rem; |
| color: var(--secondary); |
| } |
| |
| .author-info p { |
| color: var(--gray); |
| font-size: 0.9rem; |
| } |
| |
| |
| .pricing { |
| background-color: var(--white); |
| } |
| |
| .pricing-cards { |
| display: grid; |
| grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); |
| gap: 2rem; |
| margin-top: 3rem; |
| } |
| |
| .pricing-card { |
| background-color: var(--white); |
| border-radius: var(--border-radius); |
| padding: 2.5rem; |
| box-shadow: var(--shadow-md); |
| transition: var(--transition); |
| text-align: center; |
| border: 2px solid transparent; |
| } |
| |
| .pricing-card:hover { |
| transform: translateY(-10px); |
| box-shadow: var(--shadow-lg); |
| border-color: var(--primary); |
| } |
| |
| .pricing-card.popular { |
| border-color: var(--primary); |
| position: relative; |
| } |
| |
| .popular-badge { |
| position: absolute; |
| top: -12px; |
| right: 20px; |
| background-color: var(--primary); |
| color: var(--white); |
| padding: 0.3rem 1.5rem; |
| border-radius: 20px; |
| font-size: 0.8rem; |
| font-weight: 600; |
| text-transform: uppercase; |
| } |
| |
| .pricing-plan { |
| font-size: 1.5rem; |
| font-weight: 600; |
| margin-bottom: 1rem; |
| color: var(--secondary); |
| } |
| |
| .pricing-price { |
| font-size: 2.5rem; |
| font-weight: 700; |
| color: var(--primary); |
| margin-bottom: 1.5rem; |
| } |
| |
| .pricing-price span { |
| font-size: 1rem; |
| font-weight: 400; |
| color: var(--gray); |
| } |
| |
| .pricing-features { |
| list-style: none; |
| margin-bottom: 2rem; |
| } |
| |
| .pricing-features li { |
| padding: 0.6rem 0; |
| border-bottom: 1px solid var(--light-gray); |
| color: var(--gray); |
| } |
| |
| .pricing-features li:last-child { |
| border-bottom: none; |
| } |
| |
| .pricing-features li i { |
| color: var(--primary); |
| margin-right: 0.5rem; |
| width: 20px; |
| text-align: center; |
| } |
| |
| |
| .faq { |
| background-color: var(--light); |
| } |
| |
| .faq-container { |
| max-width: 800px; |
| margin: 0 auto; |
| } |
| |
| .faq-item { |
| background-color: var(--white); |
| border-radius: var(--border-radius); |
| margin-bottom: 1rem; |
| box-shadow: var(--shadow-sm); |
| overflow: hidden; |
| } |
| |
| .faq-question { |
| padding: 1.5rem; |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| cursor: pointer; |
| font-weight: 600; |
| color: var(--secondary); |
| transition: var(--transition); |
| } |
| |
| .faq-question:hover { |
| color: var(--primary); |
| } |
| |
| .faq-question i { |
| transition: var(--transition); |
| } |
| |
| .faq-answer { |
| padding: 0 1.5rem; |
| max-height: 0; |
| overflow: hidden; |
| transition: max-height 0.3s ease; |
| color: var(--gray); |
| } |
| |
| .faq-item.active .faq-question i { |
| transform: rotate(180deg); |
| } |
| |
| .faq-item.active .faq-answer { |
| padding-bottom: 1.5rem; |
| max-height: 500px; |
| } |
| |
| |
| .cta { |
| background: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), url('https://images.unsplash.com/photo-1540747913346-19e32dc3e97e?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1605&q=80') no-repeat center center/cover; |
| color: var(--white); |
| text-align: center; |
| padding: 6rem 0; |
| } |
| |
| .cta h2 { |
| font-size: 2.5rem; |
| margin-bottom: 1.5rem; |
| } |
| |
| .cta p { |
| max-width: 700px; |
| margin: 0 auto 2.5rem; |
| font-size: 1.2rem; |
| opacity: 0.9; |
| } |
| |
| |
| footer { |
| background-color: var(--secondary-dark); |
| color: var(--white); |
| padding: 5rem 0 2rem; |
| } |
| |
| .footer-container { |
| display: grid; |
| grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); |
| gap: 3rem; |
| margin-bottom: 3rem; |
| } |
| |
| .footer-logo { |
| font-size: 1.5rem; |
| font-weight: 700; |
| margin-bottom: 1.5rem; |
| display: flex; |
| align-items: center; |
| gap: 0.8rem; |
| } |
| |
| .footer-logo-icon { |
| color: var(--primary); |
| font-size: 1.8rem; |
| } |
| |
| .footer-about p { |
| margin-bottom: 1.5rem; |
| opacity: 0.8; |
| line-height: 1.7; |
| } |
| |
| .social-links { |
| display: flex; |
| gap: 1rem; |
| } |
| |
| .social-links a { |
| color: var(--white); |
| background-color: rgba(255, 255, 255, 0.1); |
| width: 40px; |
| height: 40px; |
| border-radius: 50%; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| transition: var(--transition); |
| } |
| |
| .social-links a:hover { |
| background-color: var(--primary); |
| transform: translateY(-3px); |
| } |
| |
| .footer-links h3 { |
| font-size: 1.3rem; |
| margin-bottom: 1.5rem; |
| position: relative; |
| padding-bottom: 0.8rem; |
| } |
| |
| .footer-links h3::after { |
| content: ''; |
| position: absolute; |
| bottom: 0; |
| left: 0; |
| width: 40px; |
| height: 2px; |
| background-color: var(--primary); |
| } |
| |
| .footer-links ul { |
| list-style: none; |
| } |
| |
| .footer-links li { |
| margin-bottom: 0.8rem; |
| } |
| |
| .footer-links a { |
| color: rgba(255, 255, 255, 0.8); |
| transition: var(--transition); |
| display: block; |
| padding: 0.3rem 0; |
| } |
| |
| .footer-links a:hover { |
| color: var(--primary); |
| padding-left: 0.5rem; |
| } |
| |
| .footer-newsletter h3 { |
| font-size: 1.3rem; |
| margin-bottom: 1.5rem; |
| position: relative; |
| padding-bottom: 0.8rem; |
| } |
| |
| .footer-newsletter h3::after { |
| content: ''; |
| position: absolute; |
| bottom: 0; |
| left: 0; |
| width: 40px; |
| height: 2px; |
| background-color: var(--primary); |
| } |
| |
| .footer-newsletter p { |
| margin-bottom: 1.5rem; |
| opacity: 0.8; |
| line-height: 1.7; |
| } |
| |
| .newsletter-form { |
| display: flex; |
| margin-bottom: 1.5rem; |
| } |
| |
| .newsletter-form input { |
| flex: 1; |
| padding: 0.8rem 1rem; |
| border: none; |
| border-radius: var(--border-radius) 0 0 var(--border-radius); |
| font-family: 'Poppins', sans-serif; |
| background-color: rgba(255, 255, 255, 0.1); |
| color: var(--white); |
| } |
| |
| .newsletter-form input::placeholder { |
| color: rgba(255, 255, 255, 0.7); |
| } |
| |
| .newsletter-form button { |
| background-color: var(--primary); |
| color: var(--white); |
| border: none; |
| padding: 0 1.5rem; |
| border-radius: 0 var(--border-radius) var(--border-radius) 0; |
| cursor: pointer; |
| transition: var(--transition); |
| } |
| |
| .newsletter-form button:hover { |
| background-color: var(--primary-dark); |
| } |
| |
| .footer-bottom { |
| text-align: center; |
| padding-top: 2rem; |
| border-top: 1px solid rgba(255, 255, 255, 0.1); |
| font-size: 0.9rem; |
| opacity: 0.8; |
| } |
| |
| |
| .modal { |
| display: none; |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| background-color: rgba(0, 0, 0, 0.7); |
| z-index: 2000; |
| overflow-y: auto; |
| padding: 2rem; |
| animation: fadeIn 0.3s ease; |
| } |
| |
| .modal-content { |
| background-color: var(--white); |
| border-radius: var(--border-radius); |
| width: 100%; |
| max-width: 500px; |
| margin: 2rem auto; |
| padding: 2.5rem; |
| position: relative; |
| animation: modalSlideIn 0.3s ease; |
| } |
| |
| .close-modal { |
| position: absolute; |
| top: 1rem; |
| right: 1rem; |
| font-size: 1.5rem; |
| color: var(--gray); |
| cursor: pointer; |
| transition: var(--transition); |
| background: none; |
| border: none; |
| width: 40px; |
| height: 40px; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| border-radius: 50%; |
| } |
| |
| .close-modal:hover { |
| color: var(--primary); |
| transform: rotate(90deg); |
| background-color: var(--primary-light); |
| } |
| |
| .modal-title { |
| margin-bottom: 1.5rem; |
| color: var(--secondary); |
| text-align: center; |
| font-size: 1.8rem; |
| } |
| |
| |
| #videoModal .modal-content { |
| max-width: 900px; |
| padding: 1.5rem; |
| } |
| |
| .video-player { |
| position: relative; |
| padding-bottom: 56.25%; |
| height: 0; |
| margin-bottom: 1.5rem; |
| background-color: #000; |
| border-radius: var(--border-radius); |
| overflow: hidden; |
| } |
| |
| .video-player video { |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| } |
| |
| .modal-video-info { |
| padding: 0 1rem; |
| } |
| |
| .modal-video-info h3 { |
| font-size: 1.5rem; |
| margin-bottom: 1rem; |
| color: var(--secondary); |
| } |
| |
| .modal-video-info p { |
| color: var(--gray); |
| margin-bottom: 1.5rem; |
| line-height: 1.7; |
| } |
| |
| .modal-video-meta { |
| display: flex; |
| justify-content: space-between; |
| margin-bottom: 1.5rem; |
| color: var(--gray); |
| font-size: 0.9rem; |
| } |
| |
| |
| .form-options { |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| margin: 1.5rem 0; |
| font-size: 0.9rem; |
| } |
| |
| .form-options a { |
| color: var(--primary); |
| text-decoration: none; |
| transition: var(--transition); |
| font-weight: 500; |
| } |
| |
| .form-options a:hover { |
| text-decoration: underline; |
| } |
| |
| .auth-switch { |
| text-align: center; |
| margin-top: 1.5rem; |
| color: var(--gray); |
| } |
| |
| .auth-switch a { |
| color: var(--primary); |
| text-decoration: none; |
| transition: var(--transition); |
| font-weight: 500; |
| } |
| |
| .auth-switch a:hover { |
| text-decoration: underline; |
| } |
| |
| |
| @keyframes fadeIn { |
| from { opacity: 0; } |
| to { opacity: 1; } |
| } |
| |
| @keyframes modalSlideIn { |
| from { opacity: 0; transform: translateY(-50px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
| |
| @keyframes bounce { |
| 0%, 20%, 50%, 80%, 100% { transform: translateY(0) translateX(-50%); } |
| 40% { transform: translateY(-20px) translateX(-50%); } |
| 60% { transform: translateY(-10px) translateX(-50%); } |
| } |
| |
| |
| @media (max-width: 1200px) { |
| .container { |
| padding: 0 1.5rem; |
| } |
| } |
| |
| @media (max-width: 992px) { |
| .about-content { |
| flex-direction: column; |
| } |
| |
| .about-image, |
| .about-text { |
| flex: none; |
| width: 100%; |
| } |
| |
| .about-image { |
| margin-bottom: 2rem; |
| } |
| |
| .hero h1 { |
| font-size: 3rem; |
| } |
| |
| .wrestlers-dropdown, |
| .custom-order-dropdown { |
| min-width: 280px; |
| } |
| |
| .wrestlers-grid { |
| grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); |
| } |
| } |
| |
| @media (max-width: 768px) { |
| html { |
| font-size: 15px; |
| } |
| |
| section { |
| padding: 4rem 0; |
| } |
| |
| .header-container { |
| flex-direction: column; |
| height: auto; |
| padding: 1rem 0; |
| } |
| |
| nav { |
| margin: 1rem 0; |
| } |
| |
| nav ul { |
| flex-wrap: wrap; |
| justify-content: center; |
| gap: 1rem; |
| } |
| |
| .auth-buttons { |
| margin: 1rem 0; |
| } |
| |
| .hero { |
| min-height: 700px; |
| } |
| |
| .hero h1 { |
| font-size: 2.5rem; |
| } |
| |
| .hero p { |
| font-size: 1.1rem; |
| } |
| |
| .hero-buttons { |
| flex-direction: column; |
| gap: 1rem; |
| } |
| |
| .hero-buttons .btn { |
| width: 100%; |
| max-width: 250px; |
| margin: 0 auto; |
| } |
| |
| .section-title { |
| font-size: 2rem; |
| } |
| |
| .upload-container { |
| padding: 2rem; |
| } |
| |
| .upload-area { |
| padding: 2rem; |
| } |
| |
| .modal-content { |
| padding: 1.5rem; |
| } |
| |
| .footer-container { |
| grid-template-columns: 1fr; |
| gap: 2rem; |
| } |
| |
| .wrestlers-dropdown, |
| .custom-order-dropdown { |
| left: -100px; |
| min-width: 280px; |
| } |
| } |
| |
| @media (max-width: 576px) { |
| html { |
| font-size: 14px; |
| } |
| |
| .hero h1 { |
| font-size: 2rem; |
| } |
| |
| .section-title { |
| font-size: 1.8rem; |
| } |
| |
| .video-grid { |
| grid-template-columns: 1fr; |
| } |
| |
| .testimonial-card { |
| min-width: 280px; |
| } |
| |
| .pricing-cards { |
| grid-template-columns: 1fr; |
| } |
| |
| .modal-content { |
| padding: 1.5rem 1rem; |
| } |
| |
| .cta h2 { |
| font-size: 2rem; |
| } |
| |
| .cta p { |
| font-size: 1rem; |
| } |
| |
| .wrestlers-dropdown, |
| .custom-order-dropdown { |
| left: -150px; |
| min-width: 250px; |
| } |
| |
| .wrestlers-grid { |
| grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); |
| } |
| |
| .wrestler-avatar { |
| width: 60px; |
| height: 60px; |
| } |
| |
| .timeframe-options { |
| flex-direction: column; |
| } |
| } |
| </style> |
| </head> |
| <body> |
| |
| <header> |
| <div class="container header-container"> |
| <a href="#home" class="logo"> |
| <i class="fas fa-wrestling logo-icon"></i> |
| <span>Kenyan <span>Wrestling</span> Studio</span> |
| </a> |
| <nav> |
| <ul> |
| <li><a href="#home">Home</a></li> |
| <li><a href="#videos">Videos</a></li> |
| <li class="wrestlers-menu"> |
| <a href="#wrestlers" id="wrestlersBtn">Wrestlers <i class="fas fa-chevron-down"></i></a> |
| <div class="wrestlers-dropdown" id="wrestlersDropdown"> |
| <div class="wrestlers-grid" id="wrestlersGrid"> |
| |
| </div> |
| <div class="view-all-wrestlers"> |
| <a href="#wrestlers" class="btn btn-outline">View All Wrestlers</a> |
| </div> |
| </div> |
| </li> |
| <li class="custom-order-menu"> |
| <a href="#custom-order" id="customOrderBtn">Custom Order <i class="fas fa-chevron-down"></i></a> |
| <div class="custom-order-dropdown" id="customOrderDropdown"> |
| <h3>Request Custom Video</h3> |
| <form class="custom-order-form" id="customOrderForm"> |
| <div class="form-group"> |
| <label for="customCategory">Video Category</label> |
| <select id="customCategory" required> |
| <option value="">Select a category</option> |
| <option value="traditional">Traditional Wrestling</option> |
| <option value="modern">Modern Techniques</option> |
| <option value="training">Training & Drills</option> |
| <option value="competition">Competitions</option> |
| <option value="documentary">Documentaries</option> |
| <option value="catfights">Catfights</option> |
| <option value="submission">Submission Wrestling</option> |
| </select> |
| </div> |
| <div class="form-group"> |
| <label>Video Timeframe</label> |
| <div class="timeframe-options"> |
| <div class="timeframe-option"> |
| <input type="radio" id="timeframe-5" name="timeframe" value="5" required> |
| <label for="timeframe-5">5 min</label> |
| </div> |
| <div class="timeframe-option"> |
| <input type="radio" id="timeframe-10" name="timeframe" value="10"> |
| <label for="timeframe-10">10 min</label> |
| </div> |
| <div class="timeframe-option"> |
| <input type="radio" id="timeframe-15" name="timeframe" value="15"> |
| <label for="timeframe-15">15 min</label> |
| </div> |
| <div class="timeframe-option"> |
| <input type="radio" id="timeframe-30" name="timeframe" value="30"> |
| <label for="timeframe-30">30 min</label> |
| </div> |
| </div> |
| </div> |
| <div class="form-group"> |
| <label for="customDescription">Special Requirements</label> |
| <textarea id="customDescription" placeholder="Describe what you want in the custom video..."></textarea> |
| </div> |
| <div class="custom-order-price" id="customOrderPrice">Estimated Price: $0</div> |
| <button type="submit" class="btn btn-block">Submit Request</button> |
| </form> |
| </div> |
| </li> |
| <li><a href="#upload">Upload</a></li> |
| <li><a href="#pricing">Pricing</a></li> |
| <li><a href="#about">About</a></li> |
| </ul> |
| </nav> |
| <div class="auth-buttons" id="authButtons"> |
| <button class="btn btn-outline" id="loginBtn">Login</button> |
| <button class="btn" id="signupBtn">Sign Up</button> |
| </div> |
| <div class="user-menu" id="userMenu" style="display: none;"> |
| <div class="user-avatar" id="userAvatar">T</div> |
| <div class="dropdown-menu" id="dropdownMenu"> |
| <a href="#"><i class="fas fa-user"></i> My Profile</a> |
| <a href="#"><i class="fas fa-video"></i> My Videos</a> |
| <a href="#"><i class="fas fa-shopping-cart"></i> Purchases</a> |
| <a href="#"><i class="fas fa-cog"></i> Settings</a> |
| <a href="#" id="logoutBtn"><i class="fas fa-sign-out-alt"></i> Logout</a> |
| </div> |
| </div> |
| </div> |
| </header> |
| |
| <section class="hero" id="home"> |
| <div class="container"> |
| <div class="hero-content" style="text-align: right; margin-left: auto; max-width: 600px; color: #fff; background-color: rgba(44, 62, 80, 0.8); padding: 2rem; border-radius: 8px;"> |
| <h1 style="color: #fff;">Kenyan Wrestling Studio</h1> |
| <p style="color: #ecf0f1;">Join Africa's premier wrestling community. Access exclusive content, training and connect with top wrestlers across the continent.</p> |
| <div class="hero-buttons"> |
| <button class="btn btn-large" id="browseVideosBtn" style="background-color: #2c3e50; border-color: #2c3e50;">Browse Videos</button> |
| <button class="btn btn-large btn-outline" id="learnMoreBtn" style="border-color: #fff; color: #fff;">Membership ($5)</button> |
| </div> |
| </div> |
| </div> |
| <div class="scroll-down" id="scrollDown"> |
| <i class="fas fa-chevron-down"></i> |
| </div> |
| </section> |
|
|
| |
| <section class="videos" id="videos"> |
| <div class="container"> |
| <div class="section-header"> |
| <h2 class="section-title">Featured Wrestling Videos</h2> |
| <p class="section-subtitle">Premium content showcasing the best of Kenyan wrestling traditions and modern techniques</p> |
| </div> |
| <div class="video-grid" id="videoGrid"> |
| |
| </div> |
| <div class="view-more"> |
| <button class="btn btn-outline" id="viewMoreBtn">View More Videos</button> |
| </div> |
| </div> |
| </section> |
|
|
| |
| <section class="stats"> |
| <div class="container stats-container"> |
| <div class="stat-item"> |
| <div class="stat-number" id="videoCount">500+</div> |
| <div class="stat-label">Premium Videos</div> |
| </div> |
| <div class="stat-item"> |
| <div class="stat-number" id="userCount">10K+</div> |
| <div class="stat-label">Active Users</div> |
| </div> |
| <div class="stat-item"> |
| <div class="stat-number" id="creatorCount">200+</div> |
| <div class="stat-label">Content Creators</div> |
| </div> |
| <div class="stat-item"> |
| <div class="stat-number" id="countryCount">15+</div> |
| <div class="stat-label">Kenyan Regions</div> |
| </div> |
| </div> |
| </section> |
| |
| <section class="upload" id="adminUpload"> |
| <div class="container"> |
| <div class="section-header"> |
| <h2 class="section-title">Admin Video Upload</h2> |
| <p class="section-subtitle">Upload premium wrestling content to the platform</p> |
| </div> |
| <div class="upload-container" id="adminUploadContainer" style="display: none;"> |
| <div class="upload-area" id="adminUploadArea"> |
| <i class="fas fa-cloud-upload-alt"></i> |
| <h3>Drag & Drop your video here</h3> |
| <p>or click to browse files</p> |
| <input type="file" id="adminVideoUpload" accept="video/*" style="display: none;"> |
| </div> |
| <div class="upload-progress" id="adminUploadProgress"> |
| <div class="progress-bar" id="adminProgressBar"></div> |
| <div class="progress-text" id="adminProgressText">0% uploaded</div> |
| </div> |
| <div id="adminUploadFormMessages"></div> |
| <div class="form-group"> |
| <label for="adminVideoTitle">Video Title</label> |
| <input type="text" id="adminVideoTitle" placeholder="Enter video title"> |
| </div> |
| <div class="form-group"> |
| <label for="adminVideoDescription">Description</label> |
| <textarea id="adminVideoDescription" placeholder="Enter video description"></textarea> |
| </div> |
| <div class="form-group"> |
| <label for="adminVideoCategory">Category</label> |
| <select id="adminVideoCategory"> |
| <option value="">Select a category</option> |
| <option value="traditional">Traditional Wrestling</option> |
| <option value="modern">Modern Techniques</option> |
| <option value="training">Training & Drills</option> |
| <option value="competition">Competitions</option> |
| <option value="documentary">Documentaries</option> |
| <option value="catfights">Catfights</option> |
| <option value="submission">Submission Wrestling</option> |
| </select> |
| </div> |
| <div class="form-group"> |
| <label for="adminVideoPrice">Price ($)</label> |
| <input type="number" id="adminVideoPrice" placeholder="Enter price to view" min="1" step="0.01"> |
| </div> |
| <div class="upload-preview" id="adminUploadPreview"> |
| <div class="remove-video" id="adminRemoveVideo"> |
| <i class="fas fa-times"></i> |
| </div> |
| <video controls id="adminVideoPreview"></video> |
| </div> |
| <button class="btn btn-block" id="adminUploadBtn">Upload Video</button> |
| </div> |
| <div id="adminLoginPrompt" class="text-center"> |
| <p>Please login as admin to upload videos</p> |
| <button class="btn" id="adminLoginBtn">Admin Login</button> |
| </div> |
| </div> |
| </section> |
| |
| <section class="about" id="about"> |
| <div class="container"> |
| <div class="about-content"> |
| <div class="about-image"> |
| <img src="https://huggingface.co/spaces/muhohodev/kenyan-wrestling-warriors-hub/resolve/main/images/IMG_20250731_184422_076 (1).jpg" alt="Kenyan Wrestling Studio Team"> |
| <div class="about-gallery"> |
| </div> |
| </div> |
| <div class="about-text"> |
| <h2>About Kenyan Wrestling Studio</h2> |
| <p>Kenyan Wrestling Studio is the premier platform dedicated to preserving and promoting the rich heritage of Kenyan wrestling traditions while showcasing modern developments in the sport.</p> |
| <p>Founded in 2025, our mission is to connect wrestling enthusiasts, athletes, and content creators from across Kenya and the diaspora.</p> |
| <p>We provide a marketplace for premium wrestling content, offering fans access to exclusive videos while enabling creators to monetize their skills and knowledge.</p> |
| <button class="btn" id="aboutLearnMoreBtn">Learn More About Us</button> |
| </div> |
| </div> |
| </div> |
| </section> |
|
|
| |
| <section class="testimonials"> |
| <div class="container"> |
| <div class="section-header"> |
| <h2 class="section-title">What Our Users Say</h2> |
| <p class="section-subtitle">Hear from wrestlers, coaches, and fans who use our platform</p> |
| </div> |
| <div class="testimonials-container"> |
| <div class="testimonial-slider"> |
| <div class="testimonial-card"> |
| <div class="testimonial-content"> |
| "Kenyan Wrestling Studio has transformed how I train. The techniques I've learned from traditional wrestlers across our country have taken my skills to the next level." |
| </div> |
| <div class="testimonial-author"> |
| <div class="author-avatar"> |
| <img src="https://randomuser.me/api/portraits/men/32.jpg" alt="User"> |
| </div> |
| <div class="author-info"> |
| <h4>Kamau Ochieng</h4> |
| <p>Professional Wrestler, Nairobi</p> |
| </div> |
| </div> |
| </div> |
| <div class="testimonial-card"> |
| <div class="testimonial-content"> |
| "As a coach, I use videos from this platform to teach my students. The quality of content is exceptional, and it's amazing to have access to so many different wrestling styles from across Kenya." |
| </div> |
| <div class="testimonial-author"> |
| <div class="author-avatar"> |
| <img src="https://randomuser.me/api/portraits/women/44.jpg" alt="User"> |
| </div> |
| <div class="author-info"> |
| <h4>Wanjiku Mwangi</h4> |
| <p>Wrestling Coach, Mombasa</p> |
| </div> |
| </div> |
| </div> |
| <div class="testimonial-card"> |
| <div class="testimonial-content"> |
| "I've been able to monetize my wrestling tutorials and reach a global audience. The platform makes it easy to upload and sell my content while connecting with fans of Kenyan wrestling." |
| </div> |
| <div class="testimonial-author"> |
| <div class="author-avatar"> |
| <img src="https://randomuser.me/api/portraits/men/75.jpg" alt="User"> |
| </div> |
| <div class="author-info"> |
| <h4>Jabali Okoth</h4> |
| <p>Content Creator, Kisumu</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </section> |
|
|
| |
| <section class="pricing" id="pricing"> |
| <div class="container"> |
| <div class="section-header"> |
| <h2 class="section-title">Simple, Transparent Pricing</h2> |
| <p class="section-subtitle">Choose the plan that works best for you</p> |
| </div> |
| <div class="pricing-cards"> |
| <div class="pricing-card"> |
| <div class="pricing-plan">Fan</div> |
| <div class="pricing-price">$5 <span>/ month</span></div> |
| <ul class="pricing-features"> |
| <li><i class="fas fa-check"></i> 5 videos/month</li> |
| <li><i class="fas fa-check"></i> Community access</li> |
| <li><i class="fas fa-check"></i> Live Q&A sessions</li> |
| <li><i class="fas fa-check"></i> Standard support</li> |
| </ul> |
| <button class="btn btn-outline btn-block pricing-btn" data-plan="fan">Join Now</button> |
| </div> |
| <div class="pricing-card popular"> |
| <div class="popular-badge">Most Popular</div> |
| <div class="pricing-plan">Warrior</div> |
| <div class="pricing-price">$15 <span>/ month</span></div> |
| <ul class="pricing-features"> |
| <li><i class="fas fa-check"></i> Unlimited videos</li> |
| <li><i class="fas fa-check"></i> Training programs</li> |
| <li><i class="fas fa-check"></i> 75% revenue share</li> |
| <li><i class="fas fa-check"></i> Priority support</li> |
| <li><i class="fas fa-check"></i> Private coaching</li> |
| </ul> |
| <button class="btn btn-block pricing-btn" data-plan="warrior">Train Like A Pro</button> |
| </div> |
| <div class="pricing-card"> |
| <div class="pricing-plan">Champion</div> |
| <div class="pricing-price">$30 <span>/ month</span></div> |
| <ul class="pricing-features"> |
| <li><i class="fas fa-check"></i> All Warrior benefits</li> |
| <li><i class="fas fa-check"></i> Exclusive events</li> |
| <li><i class="fas fa-check"></i> 85% revenue share</li> |
| <li><i class="fas fa-check"></i> 24/7 VIP support</li> |
| <li><i class="fas fa-check"></i> Sponsorship deals</li> |
| <li><i class="fas fa-check"></i> Promotional support</li> |
| </ul> |
| <button class="btn btn-outline btn-block pricing-btn" data-plan="champion">Become Elite</button> |
| </div> |
| </div> |
| </div> |
| </section> |
|
|
| |
| <section class="faq"> |
| <div class="container"> |
| <div class="section-header"> |
| <h2 class="section-title">Frequently Asked Questions</h2> |
| <p class="section-subtitle">Find answers to common questions about our platform</p> |
| </div> |
| <div class="faq-container"> |
| <div class="faq-item"> |
| <div class="faq-question"> |
| <span>How do I upload videos to the platform?</span> |
| <i class="fas fa-chevron-down"></i> |
| </div> |
| <div class="faq-answer"> |
| <p>Uploading videos is simple! Just go to the Upload section, drag and drop your video file or click to browse, fill in the required information (title, description, category, and price), and click the Upload button. Our system supports most common video formats up to 100MB in size.</p> |
| </div> |
| </div> |
| <div class="faq-item"> |
| <div class="faq-question"> |
| <span>How do I get paid for my content?</span> |
| <i class="fas fa-chevron-down"></i> |
| </div> |
| <div class="faq-answer"> |
| <p>We pay content creators monthly via M-Pesa or bank transfer. You'll receive 70-80% of the revenue from your video sales, depending on your membership level. Payouts are processed on the 15th of each month for the previous month's earnings, provided you've reached the minimum payout threshold of KSh 5,000.</p> |
| </div> |
| </div> |
| <div class="faq-item"> |
| <div class="faq-question"> |
| <span>Can I watch videos for free?</span> |
| <i class="fas fa-chevron-down"></i> |
| </div> |
| <div class="faq-answer"> |
| <p>Yes! We have a selection of free videos available to all registered users. Additionally, our Basic plan includes 3 premium videos per month. To access all premium content unlimitedly, you'll need to upgrade to our Pro or Creator plans.</p> |
| </div> |
| </div> |
| <div class="faq-item"> |
| <div class="faq-question"> |
| <span>What types of wrestling videos are allowed?</span> |
| <i class="fas fa-chevron-down"></i> |
| </div> |
| <div class="faq-answer"> |
| <p>We accept all forms of Kenyan wrestling content including traditional styles, modern techniques, training drills, competition highlights, and documentaries. All content must be original and respect our community guidelines (no violence, hate speech, or inappropriate content).</p> |
| </div> |
| </div> |
| <div class="faq-item"> |
| <div class="faq-question"> |
| <span>How do custom orders work?</span> |
| <i class="fas fa-chevron-down"></i> |
| </div> |
| <div class="faq-answer"> |
| <p>Custom orders allow you to request specific wrestling content tailored to your preferences. Simply use the Custom Order dropdown to select your desired category, timeframe, and add any special requirements. Our team will review your request and provide a quote within 24 hours.</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </section> |
|
|
| |
| <section class="cta"> |
| <div class="container"> |
| <h2>Ready to Join Our Wrestling Community?</h2> |
| <p>Whether you're a wrestling enthusiast, athlete, or content creator, Kenyan Wrestling Studio has something for you. Sign up today and start exploring or sharing premium wrestling content.</p> |
| <button class="btn btn-large" id="ctaSignupBtn">Sign Up Now</button> |
| </div> |
| </section> |
|
|
| |
| <footer> |
| <div class="container"> |
| <div class="footer-container"> |
| <div class="footer-about"> |
| <div class="footer-logo"> |
| <i class="fas fa-wrestling footer-logo-icon"></i> |
| <span>Kenyan Wrestling Studio</span> |
| </div> |
| <p>Connecting wrestling traditions across Kenya through premium content and community. Our mission is to preserve, promote, and celebrate Kenyan wrestling heritage.</p> |
| <div class="social-links"> |
| <a href="#"><i class="fab fa-facebook-f"></i></a> |
| <a href="#"><i class="fab fa-twitter"></i></a> |
| <a href="#"><i class="fab fa-instagram"></i></a> |
| <a href="#"><i class="fab fa-youtube"></i></a> |
| </div> |
| </div> |
| <div class="footer-links"> |
| <h3>Quick Links</h3> |
| <ul> |
| <li><a href="#home">Home</a></li> |
| <li><a href="#videos">Videos</a></li> |
| <li><a href="#wrestlers">Wrestlers</a></li> |
| <li><a href="#custom-order">Custom Order</a></li> |
| <li><a href="#upload">Upload</a></li> |
| <li><a href="#pricing">Pricing</a></li> |
| <li><a href="#about">About</a></li> |
| <li><a href="#">FAQ</a></li> |
| </ul> |
| </div> |
| <div class="footer-links"> |
| <h3>Categories</h3> |
| <ul> |
| <li><a href="#">African catfights</a></li> |
| <li><a href="#">Catfights</a></li> |
| <li><a href="#">Kickboxing</a></li> |
| <li><a href="#">Footfetish</a></li> |
| <li><a href="#">Mud wrestling</a></li> |
| <li><a href="#">Oil wrestling</a></li> |
| <li><a href="#">Submission</a></li> |
| </ul> |
| </div> |
| <div class="footer-newsletter"> |
| <h3>Newsletter</h3> |
| <p>Subscribe to get updates on new videos, features, and wrestling events across Kenya.</p> |
| <form class="newsletter-form" id="newsletterForm"> |
| <input type="email" placeholder="Your email address" required> |
| <button type="submit"><i class="fas fa-paper-plane"></i></button> |
| </form> |
| <p>By subscribing, you agree to our <a href="#" style="color: var(--primary);">Privacy Policy</a>.</p> |
| </div> |
| </div> |
| <div class="footer-bottom"> |
| <p>© 2025 Kenyan Wrestling Studio. All rights reserved. | <a href="#" style="color: var(--primary);">Terms of Service</a> | <a href="#" style="color: var(--primary);">Privacy Policy</a></p> |
| </div> |
| </div> |
| </footer> |
|
|
| |
| <div class="modal" id="loginModal"> |
| <div class="modal-content"> |
| <button class="close-modal">×</button> |
| <h2 class="modal-title">Login to Your Account</h2> |
| <form id="loginForm"> |
| <div id="loginFormMessages"></div> |
| <div class="form-group"> |
| <label for="loginEmail">Email</label> |
| <input type="email" id="loginEmail" placeholder="Enter your email" required> |
| </div> |
| <div class="form-group"> |
| <label for="loginPassword">Password</label> |
| <input type="password" id="loginPassword" placeholder="Enter your password" required> |
| </div> |
| <div class="form-options"> |
| <label> |
| <input type="checkbox"> Remember me |
| </label> |
| <a href="#">Forgot password?</a> |
| </div> |
| <button type="submit" class="btn btn-block">Login</button> |
| <div class="auth-switch"> |
| Don't have an account? <a href="#" id="switchToSignup">Sign up</a> |
| </div> |
| </form> |
| </div> |
| </div> |
|
|
| |
| <div class="modal" id="signupModal"> |
| <div class="modal-content"> |
| <button class="close-modal">×</button> |
| <h2 class="modal-title">Create Your Account</h2> |
| <form id="signupForm"> |
| <div id="signupFormMessages"></div> |
| <div class="form-group"> |
| <label for="signupName">Full Name</label> |
| <input type="text" id="signupName" placeholder="Enter your full name" required> |
| </div> |
| <div class="form-group"> |
| <label for="signupEmail">Email</label> |
| <input type="email" id="signupEmail" placeholder="Enter your email" required> |
| </div> |
| <div class="form-group"> |
| <label for="signupPassword">Password</label> |
| <input type="password" id="signupPassword" placeholder="Create a password (min 6 characters)" required> |
| </div> |
| <div class="form-group"> |
| <label for="signupConfirm">Confirm Password</label> |
| <input type="password" id="signupConfirm" placeholder="Confirm your password" required> |
| </div> |
| <div class="form-group"> |
| <label> |
| <input type="checkbox" required> I agree to the <a href="#" style="color: var(--primary);">Terms of Service</a> and <a href="#" style="color: var(--primary);">Privacy Policy</a> |
| </label> |
| </div> |
| <button type="submit" class="btn btn-block">Create Account</button> |
| <div class="auth-switch"> |
| Already have an account? <a href="#" id="switchToLogin">Login</a> |
| </div> |
| </form> |
| </div> |
| </div> |
|
|
| |
| <div class="modal" id="videoModal"> |
| <div class="modal-content"> |
| <button class="close-modal">×</button> |
| <div class="video-player"> |
| <video controls id="modalVideoPlayer"></video> |
| </div> |
| <div class="modal-video-info"> |
| <h3 id="modalVideoTitle"></h3> |
| <p id="modalVideoDescription"></p> |
| <div class="modal-video-meta"> |
| <span id="modalVideoDuration"></span> |
| <span id="modalVideoPrice"></span> |
| </div> |
| <button class="btn btn-block" id="purchaseBtn">Purchase Video</button> |
| </div> |
| </div> |
| </div> |
|
|
| <script> |
| |
| const loginBtn = document.getElementById('loginBtn'); |
| const signupBtn = document.getElementById('signupBtn'); |
| const authButtons = document.getElementById('authButtons'); |
| const userMenu = document.getElementById('userMenu'); |
| const userAvatar = document.getElementById('userAvatar'); |
| const dropdownMenu = document.getElementById('dropdownMenu'); |
| const logoutBtn = document.getElementById('logoutBtn'); |
| const browseVideosBtn = document.getElementById('browseVideosBtn'); |
| const learnMoreBtn = document.getElementById('learnMoreBtn'); |
| const scrollDown = document.getElementById('scrollDown'); |
| const loginModal = document.getElementById('loginModal'); |
| const signupModal = document.getElementById('signupModal'); |
| const videoModal = document.getElementById('videoModal'); |
| const closeModals = document.querySelectorAll('.close-modal'); |
| const switchToSignup = document.getElementById('switchToSignup'); |
| const switchToLogin = document.getElementById('switchToLogin'); |
| const videoGrid = document.getElementById('videoGrid'); |
| const uploadArea = document.getElementById('uploadArea'); |
| const videoUpload = document.getElementById('videoUpload'); |
| const videoPreview = document.getElementById('videoPreview'); |
| const uploadPreview = document.getElementById('uploadPreview'); |
| const removeVideo = document.getElementById('removeVideo'); |
| const uploadBtn = document.getElementById('uploadBtn'); |
| const modalVideoPlayer = document.getElementById('modalVideoPlayer'); |
| const purchaseBtn = document.getElementById('purchaseBtn'); |
| const loginFormMessages = document.getElementById('loginFormMessages'); |
| const signupFormMessages = document.getElementById('signupFormMessages'); |
| const uploadFormMessages = document.getElementById('uploadFormMessages'); |
| const viewMoreBtn = document.getElementById('viewMoreBtn'); |
| const aboutLearnMoreBtn = document.getElementById('aboutLearnMoreBtn'); |
| const ctaSignupBtn = document.getElementById('ctaSignupBtn'); |
| const pricingBtns = document.querySelectorAll('.pricing-btn'); |
| const newsletterForm = document.getElementById('newsletterForm'); |
| const uploadProgress = document.getElementById('uploadProgress'); |
| const progressBar = document.getElementById('progressBar'); |
| const progressText = document.getElementById('progressText'); |
| const wrestlersBtn = document.getElementById('wrestlersBtn'); |
| const wrestlersDropdown = document.getElementById('wrestlersDropdown'); |
| const wrestlersGrid = document.getElementById('wrestlersGrid'); |
| const customOrderBtn = document.getElementById('customOrderBtn'); |
| const customOrderDropdown = document.getElementById('customOrderDropdown'); |
| const customOrderForm = document.getElementById('customOrderForm'); |
| const customOrderPrice = document.getElementById('customOrderPrice'); |
| const customCategory = document.getElementById('customCategory'); |
| const timeframeOptions = document.querySelectorAll('input[name="timeframe"]'); |
| const customDescription = document.getElementById('customDescription'); |
| |
| |
| const videos = [ |
| { |
| id: 1, |
| title: "Traditional Kenyan Wrestling Techniques", |
| description: "Authentic wrestling techniques from Kenya's rich wrestling tradition. Learn the moves that have been passed down for generations in this comprehensive tutorial featuring champion wrestlers from across Kenya.", |
| duration: "12:45", |
| price: "$4.99", |
| thumbnail: "https://images.unsplash.com/photo-1571019613454-1cb2f99b2d8b?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80", |
| videoUrl: "https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4", |
| isPaid: true, |
| views: "1.2K", |
| category: "traditional", |
| featured: true |
| }, |
| { |
| id: 2, |
| title: "Modern Kenyan Wrestling Techniques", |
| description: "Contemporary wrestling moves from across Kenya, blending traditional styles with modern athleticism. Perfect for competitors looking to expand their repertoire with techniques from different regions.", |
| duration: "18:30", |
| price: "$5.99", |
| thumbnail: "https://images.unsplash.com/photo-1540747913346-19e32dc3e97e?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1605&q=80", |
| videoUrl: "https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4", |
| isPaid: true, |
| views: "2.5K", |
| category: "modern", |
| featured: true |
| }, |
| { |
| id: 3, |
| title: "Wrestling Training Camp in Kenya", |
| description: "Behind the scenes at a wrestling training camp in Nairobi. See how champions are made through rigorous training and traditional methods. Follow a day in the life of aspiring wrestlers.", |
| duration: "25:15", |
| price: "$6.99", |
| thumbnail: "https://images.unsplash.com/photo-1540206395-68808572332f?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1626&q=80", |
| videoUrl: "https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4", |
| isPaid: true, |
| views: "3.1K", |
| category: "training", |
| featured: true |
| }, |
| { |
| id: 4, |
| title: "National Wrestling Championship Highlights", |
| description: "Highlights from the national championship featuring the best wrestlers from across Kenya. Witness incredible athleticism and traditional techniques in this action-packed compilation of the season's best matches.", |
| duration: "45:20", |
| price: "$7.99", |
| thumbnail: "https://images.unsplash.com/photo-1518611012118-696072aa579a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80", |
| videoUrl: "https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4", |
| isPaid: true, |
| views: "5.7K", |
| category: "competition", |
| featured: true |
| }, |
| { |
| id: 5, |
| title: "The History of Kenyan Wrestling", |
| description: "Explore the origins and evolution of wrestling in Kenya. This documentary features interviews with veteran wrestlers and historians from different communities across the country.", |
| duration: "32:10", |
| price: "$5.49", |
| thumbnail: "https://images.unsplash.com/photo-1541534741688-6078c6bfb5c5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1469&q=80", |
| videoUrl: "https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4", |
| isPaid: true, |
| views: "2.3K", |
| category: "documentary", |
| featured: true |
| }, |
| { |
| id: 6, |
| title: "Basic Wrestling Drills for Beginners", |
| description: "Fundamental drills to build strength, agility, and technique for aspiring wrestlers of all ages. Perfect for coaches and athletes looking to master the basics of Kenyan wrestling styles.", |
| duration: "15:45", |
| price: "FREE", |
| thumbnail: "https://images.unsplash.com/photo-1571019614242-c955b17d1b8a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80", |
| videoUrl: "https://sample-videos.com/video123/mp4/720/big_buck_bunny_720p_1mb.mp4", |
| isPaid: false, |
| views: "8.9K", |
| category: "training", |
| featured: true |
| } |
| ]; |
| |
| const wrestlers = [ |
| { |
| id: 1, |
| name: "Mitchell", |
| region: "Nairobi", |
| specialty: "Submission Wrestling", |
| image: "https://huggingface.co/spaces/blackdimensionafrica/kenyan-wrestling-glory-hub/resolve/main/images/mitchell,21,65.jpg.jpg", |
| wins: 28, |
| losses: 12, |
| videos: 8, |
| description: "Mitchell is a submission specialist from Nairobi. Her technical prowess and knowledge of joint locks make her a formidable opponent.", |
| featured: true |
| }, |
| { |
| id: 2, |
| name: "Shiphrah", |
| region: "Nairobi", |
| specialty: "Strength & Power", |
| image: "https://huggingface.co/spaces/blackdimensionafrica/kenyan-wrestling-glory-hub/resolve/main/images/shiphrah.jpg", |
| wins: 39, |
| losses: 6, |
| videos: 10, |
| description: "Shiphrah is known for her incredible strength and powerful takedowns. This Nairobi-based wrestler dominates her opponents with raw power and technique.", |
| featured: true |
| }, |
| { |
| id: 3, |
| name: "Brigit", |
| region: "Nairobi", |
| specialty: "Speed & Agility", |
| image: "http://static.photos/sport/200x200/42", |
| wins: 31, |
| losses: 9, |
| videos: 7, |
| description: "Irene's lightning-fast movements and agility make her one of Nairobi's most exciting wrestlers to watch. She specializes in evasive techniques.", |
| featured: true |
| }, |
| { |
| id: 4, |
| name: "Terry", |
| region: "Nairobi", |
| specialty: "Technical Wrestling", |
| image: "https://huggingface.co/spaces/blackdimensionafrica/kenyan-wrestling-glory-hub/resolve/main/images/shiprah22.jpg.jpg", |
| wins: 26, |
| losses: 14, |
| videos: 9, |
| description: "Terry is Nairobi's technical master with a deep understanding of wrestling fundamentals. Her precision and technique are unmatched.", |
| featured: true |
| }, |
| { |
| id: 5, |
| name: "Ruth", |
| region: "Nairobi", |
| specialty: "All-Rounder", |
| image: "https://huggingface.co/spaces/blackdimensionafrica/kenyan-wrestling-glory-hub/resolve/main/images/ruth,22,58c,5.8.jpg.jpg", |
| wins: 32, |
| losses: 10, |
| videos: 12, |
| description: "Ruth is Nairobi's versatile wrestler with balanced skills in both offense and defense. Her adaptability makes her a tough competitor in any match.", |
| featured: true |
| }, |
| { |
| id: 6, |
| name: "Pixy", |
| region: "Nairobi", |
| specialty: "Modern Techniques", |
| image: "https://huggingface.co/spaces/blackdimensionafrica/kenyan-wrestling-glory-hub/resolve/main/images/IMG-20250714-WA0017(1).jpg", |
| wins: 35, |
| losses: 5, |
| videos: 12, |
| description: "Pixy combines traditional wrestling with modern athletic techniques. Based in Nairobi, she is known for her agility and strategic approach to matches.", |
| featured: true |
| }, |
| { |
| id: 7, |
| name: "Faith", |
| region: "Nairobi", |
| specialty: "Traditional Wrestling", |
| image: "https://huggingface.co/spaces/blackdimensionafrica/kenyan-wrestling-glory-hub/resolve/main/images/IMG-20250714-WA0014.jpg", |
| wins: 42, |
| losses: 8, |
| videos: 15, |
| description: "Faith is a champion wrestler from Nairobi with over 10 years of experience in traditional Kenyan wrestling. She specializes in ground techniques and submissions.", |
| featured: true |
| } |
| ]; |
| |
| let currentUser = null; |
| |
| |
| function showFormMessage(element, type, message) { |
| const messageDiv = document.createElement('div'); |
| messageDiv.className = `form-message ${type}`; |
| messageDiv.innerHTML = message; |
| element.innerHTML = ''; |
| element.appendChild(messageDiv); |
| |
| if (type === 'success') { |
| setTimeout(() => { |
| messageDiv.style.opacity = '0'; |
| setTimeout(() => { |
| element.removeChild(messageDiv); |
| }, 300); |
| }, 5000); |
| } |
| } |
| |
| |
| function calculateCustomOrderPrice() { |
| const category = customCategory.value; |
| const timeframe = document.querySelector('input[name="timeframe"]:checked'); |
| |
| if (!category || !timeframe) { |
| customOrderPrice.textContent = 'Estimated Price: $0'; |
| return; |
| } |
| |
| |
| let basePrice = 0; |
| switch(category) { |
| case 'traditional': |
| case 'modern': |
| basePrice = 50; |
| break; |
| case 'training': |
| case 'competition': |
| basePrice = 75; |
| break; |
| case 'documentary': |
| basePrice = 100; |
| break; |
| case 'catfights': |
| case 'submission': |
| basePrice = 60; |
| break; |
| default: |
| basePrice = 50; |
| } |
| |
| |
| const timeframeValue = parseInt(timeframe.value); |
| const totalPrice = basePrice * (timeframeValue / 5); |
| |
| customOrderPrice.textContent = `Estimated Price: $${totalPrice.toFixed(2)}`; |
| } |
| |
| |
| function loadVideos() { |
| videoGrid.innerHTML = ''; |
| |
| const featuredVideos = videos.filter(video => video.featured); |
| |
| featuredVideos.forEach(video => { |
| const videoCard = document.createElement('div'); |
| videoCard.className = 'video-card'; |
| videoCard.innerHTML = ` |
| ${video.isPaid ? '<div class="video-badge">Premium</div>' : ''} |
| <div class="video-thumbnail"> |
| <img src="${video.thumbnail}" alt="${video.title}" loading="lazy"> |
| <div class="play-icon"> |
| <i class="fas fa-play"></i> |
| </div> |
| <span class="duration-badge">${video.duration}</span> |
| </div> |
| <div class="video-info"> |
| <h3 class="video-title">${video.title}</h3> |
| <div class="video-meta"> |
| <span class="video-views"><i class="fas fa-eye"></i> ${video.views}</span> |
| ${video.isPaid ? `<span class="video-price">${video.price}</span>` : '<span class="video-price">FREE</span>'} |
| </div> |
| </div> |
| `; |
| |
| videoCard.addEventListener('click', () => openVideoModal(video)); |
| videoGrid.appendChild(videoCard); |
| }); |
| } |
| |
| |
| function loadWrestlersDropdown() { |
| wrestlersGrid.innerHTML = ''; |
| |
| wrestlers.forEach(wrestler => { |
| const wrestlerCard = document.createElement('div'); |
| wrestlerCard.className = 'wrestler-card'; |
| wrestlerCard.innerHTML = ` |
| <div class="wrestler-avatar"> |
| <img src="${wrestler.image}" alt="${wrestler.name}"> |
| </div> |
| <div class="wrestler-name">${wrestler.name}</div> |
| <div class="wrestler-region">${wrestler.region}</div> |
| `; |
| |
| wrestlerCard.addEventListener('click', () => { |
| document.querySelector('#wrestlers').scrollIntoView({ |
| behavior: 'smooth' |
| }); |
| wrestlersDropdown.classList.remove('active'); |
| }); |
| |
| wrestlersGrid.appendChild(wrestlerCard); |
| }); |
| } |
| |
| |
| function openVideoModal(video) { |
| if (video.isPaid && !currentUser) { |
| showFormMessage(loginFormMessages, 'error', 'Please login to purchase this video'); |
| loginModal.style.display = 'block'; |
| return; |
| } |
| |
| document.getElementById('modalVideoTitle').textContent = video.title; |
| document.getElementById('modalVideoDescription').textContent = video.description; |
| document.getElementById('modalVideoDuration').textContent = `Duration: ${video.duration}`; |
| document.getElementById('modalVideoPrice').textContent = video.isPaid ? `Price: ${video.price}` : 'FREE'; |
| modalVideoPlayer.src = video.videoUrl; |
| |
| if (video.isPaid && !(currentUser?.purchasedVideos?.includes(video.id) || !currentUser)) { |
| purchaseBtn.style.display = 'block'; |
| purchaseBtn.textContent = `Purchase for ${video.price}`; |
| modalVideoPlayer.controls = false; |
| } else { |
| purchaseBtn.style.display = 'none'; |
| modalVideoPlayer.controls = true; |
| } |
| |
| videoModal.style.display = 'block'; |
| } |
| |
| |
| function updateUserUI() { |
| if (currentUser) { |
| authButtons.style.display = 'none'; |
| userMenu.style.display = 'block'; |
| userAvatar.textContent = currentUser.name.charAt(0).toUpperCase(); |
| } else { |
| authButtons.style.display = 'flex'; |
| userMenu.style.display = 'none'; |
| } |
| } |
| |
| |
| function toggleDropdown() { |
| dropdownMenu.classList.toggle('active'); |
| } |
| |
| |
| function toggleWrestlersDropdown() { |
| wrestlersDropdown.classList.toggle('active'); |
| |
| customOrderDropdown.classList.remove('active'); |
| } |
| |
| |
| function toggleCustomOrderDropdown() { |
| customOrderDropdown.classList.toggle('active'); |
| |
| wrestlersDropdown.classList.remove('active'); |
| } |
| |
| |
| function closeDropdown(e) { |
| if (!userMenu.contains(e.target)) { |
| dropdownMenu.classList.remove('active'); |
| } |
| if (!wrestlersBtn.contains(e.target) && !wrestlersDropdown.contains(e.target)) { |
| wrestlersDropdown.classList.remove('active'); |
| } |
| if (!customOrderBtn.contains(e.target) && !customOrderDropdown.contains(e.target)) { |
| customOrderDropdown.classList.remove('active'); |
| } |
| } |
| |
| |
| function simulateAdminUploadProgress() { |
| let progress = 0; |
| adminUploadProgress.style.display = 'block'; |
| |
| const interval = setInterval(() => { |
| progress += Math.random() * 10; |
| if (progress >= 100) { |
| progress = 100; |
| clearInterval(interval); |
| setTimeout(() => { |
| adminUploadProgress.style.display = 'none'; |
| }, 1000); |
| } |
| |
| adminProgressBar.style.width = `${progress}%`; |
| adminProgressText.textContent = `${Math.round(progress)}% uploaded`; |
| }, 200); |
| } |
| |
| function checkAdminStatus() { |
| const isAdmin = currentUser && currentUser.email === 'admin@kenyanwrestling.com'; |
| if (isAdmin) { |
| document.getElementById('adminLoginPrompt').style.display = 'none'; |
| document.getElementById('adminUploadContainer').style.display = 'block'; |
| } else { |
| document.getElementById('adminLoginPrompt').style.display = 'block'; |
| document.getElementById('adminUploadContainer').style.display = 'none'; |
| } |
| } |
| |
| function setupEventListeners() { |
| |
| scrollDown.addEventListener('click', () => { |
| document.querySelector('#videos').scrollIntoView({ |
| behavior: 'smooth' |
| }); |
| }); |
| |
| |
| browseVideosBtn.addEventListener('click', () => { |
| document.querySelector('#videos').scrollIntoView({ |
| behavior: 'smooth' |
| }); |
| }); |
| |
| |
| learnMoreBtn.addEventListener('click', () => { |
| document.querySelector('#about').scrollIntoView({ |
| behavior: 'smooth' |
| }); |
| }); |
| |
| |
| viewMoreBtn.addEventListener('click', () => { |
| document.querySelector('#videos').scrollIntoView({ |
| behavior: 'smooth' |
| }); |
| }); |
| |
| |
| aboutLearnMoreBtn.addEventListener('click', () => { |
| document.querySelector('#about').scrollIntoView({ |
| behavior: 'smooth' |
| }); |
| }); |
| |
| |
| ctaSignupBtn.addEventListener('click', () => { |
| signupModal.style.display = 'block'; |
| }); |
| |
| |
| pricingBtns.forEach(btn => { |
| btn.addEventListener('click', () => { |
| if (!currentUser) { |
| showFormMessage(signupFormMessages, 'info', 'Please sign up to select a plan'); |
| signupModal.style.display = 'block'; |
| } else { |
| const plan = btn.getAttribute('data-plan'); |
| showFormMessage(uploadFormMessages, 'success', `Successfully subscribed to the ${plan} plan!`); |
| } |
| }); |
| }); |
| |
| |
| newsletterForm.addEventListener('submit', (e) => { |
| e.preventDefault(); |
| const email = newsletterForm.querySelector('input[type="email"]').value; |
| showFormMessage(uploadFormMessages, 'success', `Thank you for subscribing with ${email}!`); |
| newsletterForm.reset(); |
| }); |
| |
| |
| userAvatar.addEventListener('click', toggleDropdown); |
| |
| |
| wrestlersBtn.addEventListener('click', (e) => { |
| e.preventDefault(); |
| toggleWrestlersDropdown(); |
| }); |
| |
| |
| customOrderBtn.addEventListener('click', (e) => { |
| e.preventDefault(); |
| toggleCustomOrderDropdown(); |
| }); |
| |
| document.addEventListener('click', closeDropdown); |
| |
| |
| customCategory.addEventListener('change', calculateCustomOrderPrice); |
| timeframeOptions.forEach(option => { |
| option.addEventListener('change', calculateCustomOrderPrice); |
| }); |
| |
| |
| customOrderForm.addEventListener('submit', (e) => { |
| e.preventDefault(); |
| |
| if (!currentUser) { |
| showFormMessage(signupFormMessages, 'error', 'Please login to place a custom order'); |
| signupModal.style.display = 'block'; |
| customOrderDropdown.classList.remove('active'); |
| return; |
| } |
| |
| const category = customCategory.value; |
| const timeframe = document.querySelector('input[name="timeframe"]:checked'); |
| const description = customDescription.value; |
| |
| if (!category || !timeframe) { |
| showFormMessage(uploadFormMessages, 'error', 'Please select a category and timeframe'); |
| return; |
| } |
| |
| |
| calculateCustomOrderPrice(); |
| const price = customOrderPrice.textContent.replace('Estimated Price: $', ''); |
| |
| |
| showFormMessage(uploadFormMessages, 'success', `Custom order submitted successfully! Our team will contact you within 24 hours to discuss your ${timeframe.value}-minute ${category} video. Estimated cost: $${price}`); |
| |
| |
| customOrderForm.reset(); |
| customOrderPrice.textContent = 'Estimated Price: $0'; |
| customOrderDropdown.classList.remove('active'); |
| }); |
| |
| |
| logoutBtn.addEventListener('click', (e) => { |
| e.preventDefault(); |
| currentUser = null; |
| updateUserUI(); |
| dropdownMenu.classList.remove('active'); |
| showFormMessage(loginFormMessages, 'success', 'You have been logged out successfully'); |
| }); |
| |
| |
| loginBtn.addEventListener('click', () => { |
| loginModal.style.display = 'block'; |
| loginFormMessages.innerHTML = ''; |
| }); |
| |
| signupBtn.addEventListener('click', () => { |
| signupModal.style.display = 'block'; |
| signupFormMessages.innerHTML = ''; |
| }); |
| |
| |
| closeModals.forEach(btn => { |
| btn.addEventListener('click', () => { |
| loginModal.style.display = 'none'; |
| signupModal.style.display = 'none'; |
| videoModal.style.display = 'none'; |
| modalVideoPlayer.pause(); |
| }); |
| }); |
| |
| |
| switchToSignup.addEventListener('click', (e) => { |
| e.preventDefault(); |
| loginModal.style.display = 'none'; |
| signupModal.style.display = 'block'; |
| signupFormMessages.innerHTML = ''; |
| }); |
| |
| switchToLogin.addEventListener('click', (e) => { |
| e.preventDefault(); |
| signupModal.style.display = 'none'; |
| loginModal.style.display = 'block'; |
| loginFormMessages.innerHTML = ''; |
| }); |
| |
| |
| window.addEventListener('click', (e) => { |
| if (e.target === loginModal) { |
| loginModal.style.display = 'none'; |
| } |
| if (e.target === signupModal) { |
| signupModal.style.display = 'none'; |
| } |
| if (e.target === videoModal) { |
| videoModal.style.display = 'none'; |
| modalVideoPlayer.pause(); |
| } |
| }); |
| |
| adminUploadArea.addEventListener('click', () => adminVideoUpload.click()); |
| |
| |
| adminVideoUpload.addEventListener('change', (e) => { |
| const file = e.target.files[0]; |
| if (file) { |
| if (file.size > 100 * 1024 * 1024) { |
| showFormMessage(adminUploadFormMessages, 'error', 'Video file size should be less than 100MB'); |
| return; |
| } |
| |
| if (!file.type.includes('video/')) { |
| showFormMessage(adminUploadFormMessages, 'error', 'Please upload a valid video file'); |
| return; |
| } |
| |
| const videoURL = URL.createObjectURL(file); |
| adminVideoPreview.src = videoURL; |
| adminUploadPreview.style.display = 'block'; |
| adminUploadFormMessages.innerHTML = ''; |
| } |
| }); |
| |
| |
| adminRemoveVideo.addEventListener('click', (e) => { |
| e.stopPropagation(); |
| adminVideoPreview.src = ''; |
| adminUploadPreview.style.display = 'none'; |
| adminVideoUpload.value = ''; |
| }); |
| |
| |
| adminLoginBtn.addEventListener('click', () => { |
| loginModal.style.display = 'block'; |
| loginFormMessages.innerHTML = ''; |
| }); |
| |
| adminUploadBtn.addEventListener('click', () => { |
| const title = document.getElementById('adminVideoTitle').value.trim(); |
| const price = document.getElementById('adminVideoPrice').value; |
| const description = document.getElementById('adminVideoDescription').value.trim(); |
| const category = document.getElementById('adminVideoCategory').value; |
| |
| if (!title || !price || !description || !category || !adminVideoUpload.files[0]) { |
| showFormMessage(adminUploadFormMessages, 'error', 'Please fill all fields and select a video'); |
| return; |
| } |
| |
| |
| const isAdmin = currentUser && currentUser.email === 'admin@kenyanwrestling.com'; |
| |
| if (!isAdmin) { |
| showFormMessage(adminUploadFormMessages, 'error', 'Only admin users can upload videos'); |
| return; |
| } |
| |
| |
| adminUploadBtn.disabled = true; |
| adminUploadBtn.textContent = 'Uploading...'; |
| |
| |
| simulateAdminUploadProgress(); |
| |
| setTimeout(() => { |
| showFormMessage(adminUploadFormMessages, 'success', 'Video uploaded successfully as admin!'); |
| |
| document.getElementById('adminVideoTitle').value = ''; |
| document.getElementById('adminVideoPrice').value = ''; |
| document.getElementById('adminVideoDescription').value = ''; |
| document.getElementById('adminVideoCategory').value = ''; |
| adminVideoUpload.value = ''; |
| adminUploadPreview.style.display = 'none'; |
| |
| |
| adminUploadBtn.disabled = false; |
| adminUploadBtn.textContent = 'Upload Video'; |
| }, 3000); |
| }); |
| |
| |
| purchaseBtn.addEventListener('click', () => { |
| if (!currentUser) { |
| showFormMessage(loginFormMessages, 'error', 'Please login to purchase videos'); |
| loginModal.style.display = 'block'; |
| videoModal.style.display = 'none'; |
| return; |
| } |
| |
| |
| const videoTitle = document.getElementById('modalVideoTitle').textContent; |
| const videoPrice = document.getElementById('modalVideoPrice').textContent.replace('Price: ', ''); |
| showFormMessage(uploadFormMessages, 'success', `Payment of ${videoPrice} processed successfully for "${videoTitle}"! Enjoy your video.`); |
| |
| |
| const videoId = videos.find(v => v.title === videoTitle)?.id; |
| if (videoId) { |
| if (!currentUser.purchasedVideos) { |
| currentUser.purchasedVideos = []; |
| } |
| currentUser.purchasedVideos.push(videoId); |
| } |
| |
| modalVideoPlayer.controls = true; |
| purchaseBtn.style.display = 'none'; |
| }); |
| |
| |
| document.getElementById('loginForm').addEventListener('submit', (e) => { |
| e.preventDefault(); |
| const email = document.getElementById('loginEmail').value.trim(); |
| const password = document.getElementById('loginPassword').value; |
| |
| if (!email || !password) { |
| showFormMessage(loginFormMessages, 'error', 'Please fill in all fields'); |
| return; |
| } |
| |
| |
| currentUser = { |
| email, |
| name: 'Test User', |
| |
| purchasedVideos: [1, 3] |
| }; |
| |
| showFormMessage(loginFormMessages, 'success', `Welcome back, ${currentUser.name}!`); |
| loginModal.style.display = 'none'; |
| |
| updateUserUI(); |
| checkAdminStatus(); |
| checkAdminStatus(); |
| }); |
| |
| document.getElementById('signupForm').addEventListener('submit', (e) => { |
| e.preventDefault(); |
| const name = document.getElementById('signupName').value.trim(); |
| const email = document.getElementById('signupEmail').value.trim(); |
| const password = document.getElementById('signupPassword').value; |
| const confirm = document.getElementById('signupConfirm').value; |
| |
| if (!name || !email || !password || !confirm) { |
| showFormMessage(signupFormMessages, 'error', 'Please fill in all fields'); |
| return; |
| } |
| |
| if (password !== confirm) { |
| showFormMessage(signupFormMessages, 'error', 'Passwords do not match'); |
| return; |
| } |
| |
| if (password.length < 6) { |
| showFormMessage(signupFormMessages, 'error', 'Password must be at least 6 characters'); |
| return; |
| } |
| |
| |
| currentUser = { |
| email, |
| name |
| }; |
| |
| showFormMessage(signupFormMessages, 'success', `Welcome to Kenyan Wrestling Studio, ${name}!`); |
| signupModal.style.display = 'none'; |
| |
| |
| updateUserUI(); |
| }); |
| |
| |
| const faqQuestions = document.querySelectorAll('.faq-question'); |
| faqQuestions.forEach(question => { |
| question.addEventListener('click', () => { |
| const item = question.parentElement; |
| const isActive = item.classList.contains('active'); |
| |
| |
| document.querySelectorAll('.faq-item').forEach(faqItem => { |
| faqItem.classList.remove('active'); |
| }); |
| |
| |
| if (!isActive) { |
| item.classList.add('active'); |
| } |
| }); |
| }); |
| |
| |
| document.querySelectorAll('nav a').forEach(anchor => { |
| anchor.addEventListener('click', function(e) { |
| if (this.getAttribute('href').startsWith('#')) { |
| e.preventDefault(); |
| const targetId = this.getAttribute('href'); |
| const targetSection = document.querySelector(targetId); |
| |
| if (targetSection) { |
| targetSection.scrollIntoView({ |
| behavior: 'smooth' |
| }); |
| } |
| } |
| }); |
| }); |
| } |
| |
| |
| document.addEventListener('DOMContentLoaded', () => { |
| loadVideos(); |
| loadWrestlersDropdown(); |
| setupEventListeners(); |
| updateUserUI(); |
| checkAdminStatus(); |
| |
| const stats = [ |
| { element: document.getElementById('videoCount'), target: 850, duration: 2000 }, |
| { element: document.getElementById('userCount'), target: 12500, duration: 2000 }, |
| { element: document.getElementById('creatorCount'), target: 350, duration: 2000 }, |
| { element: document.getElementById('countryCount'), target: 22, duration: 2000 } |
| ]; |
| |
| stats.forEach(stat => { |
| const start = parseInt(stat.element.textContent.replace(/[^0-9]/g, '')); |
| const increment = stat.target / (stat.duration / 16); |
| let current = start; |
| |
| const timer = setInterval(() => { |
| current += increment; |
| if (current >= stat.target) { |
| clearInterval(timer); |
| current = stat.target; |
| } |
| stat.element.textContent = Math.floor(current) + (stat.element.id === 'countryCount' ? '+' : '+'); |
| }, 16); |
| }); |
| }); |
| </script> |
| </body> |
| </html> |
|
|