/* Custom styles for Video Downloader */ * { box-sizing: border-box; } body { font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; } /* Smooth scrolling */ html { scroll-behavior: smooth; } /* Custom animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } @keyframes slideInRight { from { transform: translateX(100%); } to { transform: translateX(0); } } /* Toast notification styles */ #toast { z-index: 9999; } #toast.show { animation: slideInRight 0.3s ease-out; } /* Loading spinner */ .spinner { border: 3px solid #f3f3f3; border-top: 3px solid #3b82f6; border-radius: 50%; width: 30px; height: 30px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Button hover effects */ .btn-primary { background: linear-gradient(135deg, #3b82f6, #1d4ed8); transition: all 0.3s ease; } .btn-primary:hover { background: linear-gradient(135deg, #1d4ed8, #1e40af); transform: translateY(-1px); box-shadow: 0 10px 20px rgba(59, 130, 246, 0.3); } /* Form focus styles */ input:focus, select:focus { box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } /* Card hover effects */ .feature-card { transition: transform 0.3s ease, box-shadow 0.3s ease; } .feature-card:hover { transform: translateY(-5px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); } /* Progress bar */ .progress-bar { background: linear-gradient(90deg, #3b82f6, #1d4ed8); height: 4px; border-radius: 2px; transition: width 0.3s ease; } /* Responsive design improvements */ @media (max-width: 768px) { .container { padding-left: 1rem; padding-right: 1rem; } h1 { font-size: 1.5rem; } h2 { font-size: 2rem; } .grid-cols-3 { grid-template-columns: 1fr; gap: 1.5rem; } } /* Dark mode support */ @media (prefers-color-scheme: dark) { .bg-blue-50 { background-color: #1e293b; } .text-gray-800 { color: #f1f5f9; } .text-gray-600 { color: #cbd5e1; } .bg-white { background-color: #334155; } .border-gray-300 { border-color: #475569; } } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: #3b82f6; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #1d4ed8; } /* Utility classes */ .text-gradient { background: linear-gradient(135deg, #3b82f6, #1d4ed8); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .backdrop-blur { backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); } /* Error states */ .error { border-color: #ef4444 !important; background-color: #fef2f2 !important; } .error-message { color: #ef4444; font-size: 0.875rem; margin-top: 0.25rem; } /* Success states */ .success { border-color: #10b981 !important; background-color: #f0fdf4 !important; } /* Video thumbnail */ .video-thumbnail { aspect-ratio: 16/9; object-fit: cover; border-radius: 8px; } /* Download card */ .download-card { background: linear-gradient(135deg, #ffffff, #f8fafc); border: 1px solid #e2e8f0; transition: all 0.3s ease; } .download-card:hover { border-color: #3b82f6; box-shadow: 0 10px 25px rgba(59, 130, 246, 0.1); } /* Loading states */ .skeleton { background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%); background-size: 200% 100%; animation: loading 1.5s infinite; } @keyframes loading { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }