/* ============================================ VIDEO PLAYER - CSS Custom Properties ============================================ */ :root { /* ==================== COLORS ==================== */ /* Primary Theme - Red */ --player-primary: #ef4444; --player-primary-hover: #dc2626; --player-primary-active: #b91c1c; --player-primary-light: rgba(239, 68, 68, 0.2); /* Background Colors */ --player-bg: #000000; --player-bg-controls: rgba(0, 0, 0, 0.85); --player-bg-overlay: rgba(0, 0, 0, 0.6); --player-bg-menu: rgba(20, 20, 20, 0.95); /* Text Colors */ --player-text: #ffffff; --player-text-secondary: #d1d5db; --player-text-muted: #9ca3af; /* Border & Divider */ --player-border: #374151; --player-divider: rgba(255, 255, 255, 0.1); /* Progress Bar */ --player-buffered: rgba(239, 68, 68, 0.3); --player-progress-bg: rgba(255, 255, 255, 0.3); /* ==================== SUBTITLES ==================== */ /* Subtitle Appearance */ --player-subtitle-color: #f9fafb; --player-subtitle-bg: rgba(15, 15, 18, 0.78); --player-subtitle-shadow: 0 12px 28px rgba(0, 0, 0, 0.55); --player-subtitle-max-width: 88%; /* Subtitle Positioning CRITICAL: This value MUST be larger than the controls bar height to prevent subtitles from overlapping with controls. Controls height calculation: - Progress bar: ~20px - Progress margin-bottom: 14px (--player-spacing-md) - Controls padding-top: 28px (--player-spacing-xl) - Controls padding-bottom: 20px (--player-spacing-lg) - Controls row (buttons): ~36-40px - Total: ~118-122px We use 132px minimum (122px + 10px safety margin) */ --player-subtitle-bottom-offset: clamp(132px, 13vh, 180px); /* ==================== SHADOWS ==================== */ --player-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --player-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1); --player-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1); /* ==================== TRANSITIONS ==================== */ --player-transition-fast: 150ms; --player-transition-normal: 250ms; --player-transition-slow: 400ms; /* ==================== Z-INDEX LAYERS ==================== */ --player-z-video: 1; --player-z-subtitle: 10; --player-z-controls: 20; --player-z-menu: 30; --player-z-loading: 40; /* ==================== SPACING ==================== */ --player-spacing-xs: 6px; --player-spacing-sm: 10px; --player-spacing-md: 14px; --player-spacing-lg: 20px; --player-spacing-xl: 28px; /* ==================== BORDER RADIUS ==================== */ --player-radius-sm: 4px; --player-radius-md: 6px; --player-radius-lg: 8px; --player-radius-full: 9999px; /* ==================== ICON SIZES ==================== */ --player-icon-sm: 20px; --player-icon-md: 28px; --player-icon-lg: 36px; --player-icon-xl: 56px; } /* ============================================ ANIMATIONS ============================================ */ @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } @keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } @keyframes slideDown { from { transform: translateY(-20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }