@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); body { font-family: 'Inter', sans-serif; } /* Custom scrollbar */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #0f172a; } ::-webkit-scrollbar-thumb { background: #8b5cf6; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #7c3aed; } /* Animation for generate button */ @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(139, 92, 246, 0); } 100% { box-shadow: 0 0 0 0 rgba(139, 92, 246, 0); } } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .animate-pulse { animation: pulse 2s infinite; } .animate-spin { animation: spin 1s linear infinite; } /* Gallery hover effects */ .gallery-item { transition: all 0.3s ease; } .gallery-item:hover { transform: scale(1.05); z-index: 10; } .gallery-caption { transition: opacity 0.3s ease; } /* Generation preview enhancements */ .preview-container { position: relative; } .prompt-overlay { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,0.7); color: white; padding: 0.5rem; font-size: 0.75rem; line-height: 1.2; border-bottom-left-radius: 0.5rem; border-bottom-right-radius: 0.5rem; } /* Loading state */ .loading-spinner { animation: spin 1s linear infinite; } @keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }