/* Custom styles for the AI Nude Rater */ .line-clamp-3 { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } /* Smooth transitions for theme switching */ * { transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease; } /* Custom scrollbar for webkit browsers */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f5f9; } .dark ::-webkit-scrollbar-track { background: #334155; } ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; } .dark ::-webkit-scrollbar-thumb { background: #475569; } ::-webkit-scrollbar-thumb:hover { background: #94a3b8; } .dark ::-webkit-scrollbar-thumb:hover { background: #64748b; } /* Upload area animations */ @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.7; } } .upload-pulse { animation: pulse 2s infinite; } /* Rating badge colors */ .rating-badge { font-size: 0.75rem; padding: 0.25rem 0.5rem; border-radius: 9999px; color: white; font-weight: 600; } /* Mobile-first responsive adjustments */ @media (max-width: 640px) { .container { padding-left: 1rem; padding-right: 1rem; } #uploadModal .max-w-md { margin: 1rem; } } /* Enhanced focus states for accessibility */ button:focus-visible, a:focus-visible { outline: 2px solid #7c3aed; outline-offset: 2px; } /* Loading animation for AI processing */ @keyframes spin { to { transform: rotate(360deg); } } .loading-spinner { animation: spin 1s linear infinite; }