* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Roboto', sans-serif; background: linear-gradient(135deg, #0f0f0f 0%, #1a1a1a 100%); color: #fff; min-height: 100vh; } .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; } .header { background: rgba(0, 0, 0, 0.8); backdrop-filter: blur(10px); padding: 15px 0; position: sticky; top: 0; z-index: 1000; border-bottom: 1px solid #333; } .header-content { display: flex; align-items: center; justify-content: space-between; gap: 20px; } .logo { display: flex; align-items: center; gap: 10px; font-size: 24px; font-weight: bold; color: #ff0000; } .search-container { flex: 1; max-width: 600px; position: relative; } .search-box { width: 100%; padding: 12px 50px 12px 20px; border: 2px solid #333; border-radius: 25px; background: rgba(255, 255, 255, 0.1); color: #fff; font-size: 16px; outline: none; transition: all 0.3s ease; } .search-box:focus { border-color: #ff0000; background: rgba(255, 255, 255, 0.15); } .search-btn { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); background: none; border: none; color: #fff; font-size: 18px; cursor: pointer; transition: color 0.3s ease; } .search-btn:hover { color: #ff0000; } .nav-tabs { display: flex; gap: 30px; margin: 20px 0; border-bottom: 1px solid #333; } .nav-tab { padding: 10px 0; color: #aaa; cursor: pointer; font-weight: 500; border-bottom: 2px solid transparent; transition: all 0.3s ease; } .nav-tab.active { color: #fff; border-bottom-color: #ff0000; } .nav-tab:hover { color: #fff; } .content { padding: 20px 0; } .section { display: none; } .section.active { display: block; } .video-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; margin-top: 20px; } .video-card { background: rgba(255, 255, 255, 0.05); border-radius: 12px; overflow: hidden; transition: all 0.3s ease; cursor: pointer; border: 1px solid rgba(255, 255, 255, 0.1); } .video-card:hover { transform: translateY(-5px); background: rgba(255, 255, 255, 0.1); box-shadow: 0 10px 30px rgba(255, 0, 0, 0.2); } .video-thumbnail { position: relative; width: 100%; height: 180px; overflow: hidden; } .video-thumbnail img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .video-card:hover .video-thumbnail img { transform: scale(1.05); } .video-duration { position: absolute; bottom: 8px; right: 8px; background: rgba(0, 0, 0, 0.8); color: #fff; padding: 2px 6px; border-radius: 4px; font-size: 12px; font-weight: bold; } .video-info { padding: 15px; } .video-title { font-size: 14px; font-weight: 600; line-height: 1.4; margin-bottom: 8px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .video-meta { color: #aaa; font-size: 12px; display: flex; flex-direction: column; gap: 4px; } .video-author { font-weight: 500; } .video-stats { display: flex; gap: 10px; } .loading { display: flex; justify-content: center; align-items: center; height: 200px; font-size: 18px; color: #aaa; } .spinner { border: 3px solid #333; border-top: 3px solid #ff0000; border-radius: 50%; width: 30px; height: 30px; animation: spin 1s linear infinite; margin-right: 10px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .empty-state { text-align: center; padding: 60px 20px; color: #aaa; } .empty-state i { font-size: 64px; margin-bottom: 20px; color: #333; } .empty-state h3 { font-size: 24px; margin-bottom: 10px; } .video-actions { position: absolute; top: 8px; right: 8px; display: flex; gap: 8px; opacity: 0; transition: opacity 0.3s ease; } .video-card:hover .video-actions { opacity: 1; } .action-btn { background: rgba(0, 0, 0, 0.8); border: none; color: #fff; width: 32px; height: 32px; border-radius: 50%; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; position: relative; } .action-btn:hover { background: #ff0000; transform: scale(1.1); } .action-btn.downloading { background: #4caf50; pointer-events: none; } .action-btn.downloading::after { content: ''; position: absolute; width: 20px; height: 20px; border: 2px solid transparent; border-top: 2px solid #fff; border-radius: 50%; animation: spin 1s linear infinite; } .download-menu { position: absolute; top: 40px; right: 0; background: rgba(30, 30, 30, 0.95); backdrop-filter: blur(10px); border: 1px solid #444; border-radius: 8px; padding: 8px 0; min-width: 150px; display: none; z-index: 1000; } .download-menu.show { display: block; } .download-option { padding: 8px 16px; cursor: pointer; transition: background 0.3s ease; display: flex; align-items: center; gap: 8px; font-size: 14px; } .download-option:hover { background: rgba(255, 255, 255, 0.1); } .download-option i { width: 16px; } .toast { position: fixed; bottom: 20px; right: 20px; background: #4caf50; color: white; padding: 12px 20px; border-radius: 8px; font-weight: 500; transform: translateX(400px); transition: transform 0.3s ease; z-index: 2000; } .toast.show { transform: translateX(0); } .toast.error { background: #f44336; } .player-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.9); display: none; align-items: center; justify-content: center; z-index: 3000; } .player-content { background: #1a1a1a; border-radius: 12px; padding: 20px; max-width: 90%; max-height: 90%; overflow: auto; } .player-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .close-btn { background: none; border: none; color: #fff; font-size: 24px; cursor: pointer; padding: 5px; } .video-frame { width: 100%; max-width: 800px; height: 450px; border: none; border-radius: 8px; } @media (max-width: 768px) { .header-content { flex-direction: column; gap: 15px; } .search-container { max-width: 100%; } .nav-tabs { gap: 20px; overflow-x: auto; padding-bottom: 10px; } .video-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 15px; } .video-frame { height: 250px; } }