body { margin: 0; padding: 20px; font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; background: #1a1a1a; color: #ffffff; min-height: 100vh; display: flex; flex-direction: column; align-items: center; box-sizing: border-box; } h1 { font-size: clamp(1.5rem, 5vw, 2.5rem); margin-bottom: clamp(1rem, 3vw, 2rem); color: #00ff88; text-shadow: 0 0 10px rgba(0, 255, 136, 0.3); text-align: center; } #fileInput { margin-bottom: clamp(1rem, 3vw, 2rem); padding: clamp(0.5rem, 2vw, 1rem); background: #2a2a2a; border: 2px dashed #00ff88; border-radius: 8px; color: #ffffff; cursor: pointer; transition: all 0.3s ease; width: 100%; max-width: 400px; } #fileInput:hover { background: #333333; border-color: #00cc6a; } #video-player { width: 100%; max-width: 1200px; margin: auto; background: #000; color: #fff; display: flex; flex-direction: column; align-items: center; position: relative; border-radius: 12px; overflow: hidden; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); aspect-ratio: 16/9; } #video { width: 100%; height: 100%; background: #000; border-radius: 12px 12px 0 0; object-fit: contain; } #controls { width: 100%; opacity: 0; visibility: hidden; background: rgba(0, 0, 0, 0.8); position: absolute; bottom: 0; padding: clamp(10px, 2vw, 15px); backdrop-filter: blur(10px); transition: all 0.3s ease; display: flex; align-items: center; gap: clamp(5px, 1vw, 10px); flex-wrap: wrap; } #controls button { width: clamp(36px, 8vw, 44px); height: clamp(36px, 8vw, 44px); padding: 0; border: none; background: none; cursor: pointer; display: flex; align-items: center; justify-content: center; position: relative; flex: 0 0 auto; } #controls button svg { width: clamp(20px, 4vw, 24px); height: clamp(20px, 4vw, 24px); fill: #ffffff; transition: fill 0.3s ease; } #controls button:hover svg { fill: #00ff88; } #play-pause svg, #mute svg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); transition: opacity 0.3s ease; } #play-icon, #sound-icon { opacity: 1; } #pause-icon, #mute-icon { opacity: 0; } #current-time, #duration { font-family: monospace; font-size: clamp(0.8rem, 2vw, 0.9rem); color: #ffffff; opacity: 0.8; white-space: nowrap; flex: 0 0 auto; } #progress-bar { flex: 1; min-width: 100px; height: 6px; -webkit-appearance: none; appearance: none; /* Added for compatibility */ background: rgba(255, 255, 255, 0.2); border-radius: 3px; outline: none; } #volume { width: clamp(60px, 15vw, 100px); height: 6px; -webkit-appearance: none; appearance: none; /* Added for compatibility */ background: rgba(255, 255, 255, 0.2); border-radius: 3px; outline: none; flex: 0 0 auto; } input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: clamp(12px, 2vw, 16px); height: clamp(12px, 2vw, 16px); background: #00ff88; border-radius: 50%; cursor: pointer; transition: all 0.3s ease; } input[type="range"]::-webkit-slider-thumb:hover { transform: scale(1.2); background: #00cc6a; } #loading { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(0, 0, 0, 0.8); padding: clamp(0.5rem, 2vw, 1rem) clamp(1rem, 3vw, 2rem); border-radius: 8px; color: #00ff88; font-weight: bold; animation: pulse 1.5s infinite; font-size: clamp(0.9rem, 2vw, 1rem); } @keyframes pulse { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.6; } } #video-player.fullscreen { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; z-index: 9999; background: #000; border-radius: 0; margin: 0; max-width: none; } #video-player.fullscreen #video { width: 100%; height: 100%; object-fit: contain; border-radius: 0; } #video-player.fullscreen #controls { background: rgba(0, 0, 0, 0.9); padding: 20px; } /* Styles pour le mode plein écran natif */ :fullscreen #video-player { width: 100vw; height: 100vh; background: #000; } :-webkit-full-screen #video-player { width: 100vw; height: 100vh; background: #000; } :-moz-full-screen #video-player { width: 100vw; height: 100vh; background: #000; } :-ms-fullscreen #video-player { width: 100vw; height: 100vh; background: #000; } #video-player:hover #controls { opacity: 1; visibility: visible; } @media (max-width: 768px) { body { padding: 10px; } #controls { padding: 8px; } #progress-bar { min-width: 80px; } #volume { width: 60px; } } @media (max-width: 480px) { #controls { gap: 5px; } #progress-bar { min-width: 60px; } #volume { width: 40px; } } /* Styles pour le bouton Madame */ .madame-btn { position: fixed; top: 20px; right: 20px; padding: 10px 20px; background: #ff69b4; border: none; border-radius: 25px; color: white; font-size: 1.2rem; cursor: pointer; display: flex; align-items: center; gap: 10px; transition: all 0.3s ease; z-index: 1000; box-shadow: 0 0 15px rgba(255, 105, 180, 0.3); } .madame-btn:hover { transform: scale(1.1); background: #ff1493; } .heart { font-size: 1.4rem; animation: pulse 1.5s infinite; } /* Thème Madame */ body.madame-mode { background: #fff0f5; cursor: none; } body.madame-mode * { cursor: none !important; } body.madame-mode h1 { color: #ff69b4; text-shadow: 0 0 10px rgba(255, 105, 180, 0.3); } body.madame-mode #fileInput { border-color: #ff69b4; background: #fff0f5; } body.madame-mode #fileInput:hover { border-color: #ff1493; background: #ffe4e1; } body.madame-mode #controls button svg { fill: #ff69b4; } body.madame-mode #controls button:hover svg { fill: #ff1493; } body.madame-mode input[type="range"] { background: rgba(255, 105, 180, 0.2); } body.madame-mode input[type="range"]::-webkit-slider-thumb { background: #ff69b4; } body.madame-mode input[type="range"]::-webkit-slider-thumb:hover { background: #ff1493; } body.madame-mode #loading { color: #ff69b4; } /* Animation des cœurs */ @keyframes float { 0% { transform: translate(0, 0) rotate(0deg); } 20% { transform: translate(150px, -80px) rotate(72deg); } 40% { transform: translate(80px, -150px) rotate(144deg); } 60% { transform: translate(-80px, -120px) rotate(216deg); } 80% { transform: translate(-150px, -40px) rotate(288deg); } 100% { transform: translate(0, 0) rotate(360deg); } } .madame-mode::before, .madame-mode::after { content: '❤'; position: fixed; font-size: 20px; color: #ff69b4; opacity: 0.6; pointer-events: none; animation: float 6s infinite; } .madame-mode::before { top: 10%; left: 10%; } .madame-mode::after { top: 80%; right: 10%; animation-delay: -3s; } /* Cœur qui suit la souris */ .cursor-heart { position: fixed; pointer-events: none; font-size: 24px; color: #ff0000; z-index: 999999; transform: translate(-50%, -50%); text-shadow: 0 0 10px rgba(255, 0, 0, 0.5); will-change: transform; backface-visibility: hidden; transform-style: preserve-3d; mix-blend-mode: difference; } #video-player.fullscreen .cursor-heart { position: fixed; z-index: 999999; } @keyframes explode { 0% { transform: translate(0, 0) scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: translate(var(--x), var(--y)) scale(1.2) rotate(180deg); opacity: 0.4; } 100% { transform: translate(calc(var(--x) * 1.5), calc(var(--y) * 1.5)) scale(0.3) rotate(360deg); opacity: 0; } }