| |
|
|
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap'); |
|
|
| :root { |
| --primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
| --secondary-gradient: linear-gradient(135deg, #f093fb 0%, #f5576c 100%); |
| --success-gradient: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%); |
| --warning-gradient: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%); |
| --dark-gradient: linear-gradient(135deg, #2c3e50 0%, #34495e 100%); |
| --glass-bg: rgba(255, 255, 255, 0.85); |
| --glass-border: rgba(255, 255, 255, 0.3); |
| --shadow-light: 0 8px 32px 0 rgba(31, 38, 135, 0.37); |
| --shadow-heavy: 0 20px 60px rgba(102, 126, 234, 0.25); |
| --border-radius: 20px; |
| --border-radius-small: 12px; |
| --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); |
| } |
|
|
| * { |
| box-sizing: border-box; |
| } |
|
|
| .gradio-container { |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%); |
| background-size: 400% 400%; |
| animation: gradientShift 15s ease infinite; |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; |
| min-height: 100vh; |
| padding: 20px; |
| position: relative; |
| overflow-x: hidden; |
| -webkit-font-smoothing: antialiased; |
| -moz-osx-font-smoothing: grayscale; |
| text-rendering: optimizeLegibility; |
| } |
|
|
| @keyframes gradientShift { |
| 0% { background-position: 0% 50%; } |
| 50% { background-position: 100% 50%; } |
| 100% { background-position: 0% 50%; } |
| } |
|
|
| .gradio-container::before { |
| content: ''; |
| position: fixed; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 100%; |
| background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="25" cy="25" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="75" cy="75" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="50" cy="10" r="0.5" fill="rgba(255,255,255,0.05)"/><circle cx="10" cy="60" r="0.5" fill="rgba(255,255,255,0.05)"/><circle cx="90" cy="40" r="0.5" fill="rgba(255,255,255,0.05)"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>'); |
| pointer-events: none; |
| z-index: 0; |
| } |
|
|
| .header-container { |
| background: #ffffff; |
| backdrop-filter: none; |
| border: 1px solid #e2e8f0; |
| padding: 3rem 2.5rem; |
| border-radius: var(--border-radius); |
| margin-bottom: 2rem; |
| box-shadow: var(--shadow-light); |
| position: relative; |
| z-index: 1; |
| text-align: center; |
| overflow: hidden; |
| } |
|
|
| .header-container::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| height: 4px; |
| background: var(--primary-gradient); |
| border-radius: var(--border-radius) var(--border-radius) 0 0; |
| } |
|
|
| .logo-text { |
| font-size: 3.5rem; |
| font-weight: 900; |
| color: #2d3436; |
| text-align: center; |
| margin: 0; |
| letter-spacing: -2px; |
| text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); |
| filter: none; |
| } |
|
|
| @keyframes textGlow { |
| from { filter: brightness(1); } |
| to { filter: brightness(1.2); } |
| } |
|
|
| .subtitle { |
| color: #4a5568; |
| text-align: center; |
| font-size: 1.1rem; |
| margin-top: 1rem; |
| font-weight: 500; |
| text-shadow: none; |
| } |
|
|
| .main-content { |
| background: #ffffff; |
| backdrop-filter: none; |
| border: 1px solid #e2e8f0; |
| border-radius: var(--border-radius); |
| padding: 2.5rem; |
| box-shadow: var(--shadow-light); |
| position: relative; |
| z-index: 1; |
| margin-bottom: 2rem; |
| } |
|
|
| .mode-indicator { |
| background: rgba(255, 255, 255, 0.8); |
| backdrop-filter: blur(4px); |
| border-radius: 12px; |
| padding: 0.8rem 1.2rem; |
| margin-top: 1rem; |
| text-align: center; |
| font-weight: 600; |
| color: #2d3436; |
| border: 1px solid rgba(255, 255, 255, 0.3); |
| } |
|
|
| .gr-button-primary { |
| background: var(--primary-gradient) !important; |
| border: none !important; |
| color: white !important; |
| font-weight: 700 !important; |
| font-size: 1.1rem !important; |
| padding: 1.2rem 2rem !important; |
| border-radius: var(--border-radius-small) !important; |
| text-transform: uppercase; |
| letter-spacing: 1px; |
| width: 100%; |
| margin-top: 1rem !important; |
| position: relative; |
| overflow: hidden; |
| transition: var(--transition); |
| box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3); |
| } |
|
|
| .gr-button-primary::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: -100%; |
| width: 100%; |
| height: 100%; |
| background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); |
| transition: left 0.5s; |
| } |
|
|
| .gr-button-primary:hover { |
| transform: translateY(-2px); |
| box-shadow: 0 12px 35px rgba(102, 126, 234, 0.4); |
| } |
|
|
| .gr-button-primary:hover::before { |
| left: 100%; |
| } |
|
|
| .gr-button-primary:active { |
| transform: translateY(0); |
| } |
|
|
| .gr-input, .gr-textarea { |
| background: #ffffff !important; |
| backdrop-filter: none !important; |
| border: 2px solid #e2e8f0 !important; |
| border-radius: var(--border-radius-small) !important; |
| color: #1a1a1a !important; |
| font-size: 1rem !important; |
| padding: 1rem 1.2rem !important; |
| transition: var(--transition) !important; |
| box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1) !important; |
| } |
|
|
| .gr-input:focus, .gr-textarea:focus { |
| border-color: rgba(102, 126, 234, 0.6) !important; |
| outline: none !important; |
| box-shadow: 0 8px 25px rgba(102, 126, 234, 0.2) !important; |
| transform: translateY(-1px) !important; |
| } |
|
|
| .gr-input:hover, .gr-textarea:hover { |
| border-color: rgba(102, 126, 234, 0.4) !important; |
| transform: translateY(-1px) !important; |
| } |
|
|
| .gr-form { |
| background: transparent !important; |
| border: none !important; |
| } |
|
|
| .gr-panel { |
| background: #ffffff !important; |
| backdrop-filter: none !important; |
| border: 1px solid #e2e8f0 !important; |
| border-radius: var(--border-radius) !important; |
| padding: 2rem !important; |
| box-shadow: var(--shadow-light) !important; |
| transition: var(--transition) !important; |
| } |
|
|
| .gr-panel:hover { |
| transform: translateY(-2px) !important; |
| box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important; |
| } |
|
|
| .gr-box { |
| border-radius: var(--border-radius-small) !important; |
| border-color: rgba(255, 255, 255, 0.2) !important; |
| background: rgba(255, 255, 255, 0.1) !important; |
| backdrop-filter: blur(10px) !important; |
| } |
|
|
| label { |
| color: #2d3436 !important; |
| font-weight: 600 !important; |
| font-size: 0.9rem !important; |
| text-transform: uppercase; |
| letter-spacing: 0.5px; |
| margin-bottom: 0.8rem !important; |
| text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); |
| } |
|
|
| .status-text { |
| font-family: 'SF Mono', 'Monaco', monospace; |
| font-size: 0.95rem; |
| } |
|
|
| .image-container { |
| border-radius: 14px !important; |
| overflow: hidden; |
| border: 2px solid #e1e8ed !important; |
| background: #fafbfc !important; |
| } |
|
|
| footer { |
| display: none !important; |
| } |
|
|
| .info-box { |
| background: #ffffff; |
| backdrop-filter: none; |
| border: 1px solid #e2e8f0; |
| border-radius: var(--border-radius-small); |
| padding: 1.5rem; |
| margin-bottom: 1.5rem; |
| border-left: 4px solid #667eea; |
| box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); |
| color: #2d3436; |
| position: relative; |
| overflow: hidden; |
| font-weight: 500; |
| line-height: 1.6; |
| } |
|
|
| .info-box strong { |
| color: #1a202c; |
| font-weight: 700; |
| font-size: 1.1rem; |
| text-shadow: none; |
| filter: none; |
| } |
|
|
| .info-box a { |
| color: #3182ce; |
| text-decoration: underline; |
| font-weight: 600; |
| text-shadow: none; |
| filter: none; |
| } |
|
|
| .info-box a:hover { |
| color: #2c5282; |
| text-decoration: underline; |
| } |
|
|
| .info-box::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: 0; |
| width: 100%; |
| height: 2px; |
| background: var(--primary-gradient); |
| } |
|
|
| .warning-box { |
| background: #fff3cd; |
| border-radius: 12px; |
| padding: 1rem; |
| margin-top: 1rem; |
| border-left: 4px solid #ffc107; |
| color: #856404; |
| } |
|
|
| |
| .image-upload-container { |
| background: #ffffff !important; |
| backdrop-filter: none !important; |
| border: 1px solid #e2e8f0 !important; |
| border-radius: var(--border-radius) !important; |
| padding: 2rem !important; |
| box-shadow: var(--shadow-light) !important; |
| transition: var(--transition) !important; |
| } |
|
|
| .image-upload-container:hover { |
| transform: translateY(-2px) !important; |
| box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important; |
| } |
|
|
| |
| #image-display-area { |
| display: flex !important; |
| flex-wrap: nowrap !important; |
| gap: 12px !important; |
| padding: 15px 5px !important; |
| overflow-x: auto !important; |
| overflow-y: hidden !important; |
| min-height: 120px !important; |
| max-height: 120px !important; |
| align-items: center !important; |
| background: transparent !important; |
| } |
|
|
| |
| .no-images { |
| color: #6b7280 !important; |
| font-size: 14px !important; |
| text-align: center !important; |
| width: 100% !important; |
| padding: 20px !important; |
| font-weight: 500 !important; |
| text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important; |
| } |
|
|
| |
| .image-item { |
| position: relative !important; |
| flex-shrink: 0 !important; |
| width: 100px !important; |
| height: 100px !important; |
| border-radius: var(--border-radius-small) !important; |
| overflow: hidden !important; |
| cursor: pointer !important; |
| transition: var(--transition) !important; |
| box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15) !important; |
| border: 2px solid rgba(255, 255, 255, 0.2) !important; |
| } |
|
|
| .image-item:hover { |
| transform: scale(1.05) translateY(-2px) !important; |
| box-shadow: 0 12px 35px rgba(0, 0, 0, 0.2) !important; |
| border-color: rgba(102, 126, 234, 0.6) !important; |
| } |
|
|
| |
| .image-item img { |
| width: 100% !important; |
| height: 100% !important; |
| object-fit: cover !important; |
| border-radius: 8px !important; |
| display: block !important; |
| } |
|
|
| |
| .image-item .delete-btn { |
| position: absolute !important; |
| top: -8px !important; |
| right: -8px !important; |
| width: 28px !important; |
| height: 28px !important; |
| background: linear-gradient(135deg, #ff6b6b 0%, #ee5a52 100%) !important; |
| color: white !important; |
| border: 2px solid rgba(255, 255, 255, 0.9) !important; |
| border-radius: 50% !important; |
| display: flex !important; |
| align-items: center !important; |
| justify-content: center !important; |
| font-size: 14px !important; |
| font-weight: bold !important; |
| cursor: pointer !important; |
| opacity: 0 !important; |
| transition: var(--transition) !important; |
| z-index: 10 !important; |
| line-height: 1 !important; |
| box-shadow: 0 4px 15px rgba(255, 107, 107, 0.3) !important; |
| } |
|
|
| .image-item:hover .delete-btn { |
| opacity: 1 !important; |
| } |
|
|
| .image-item .delete-btn:hover { |
| background: linear-gradient(135deg, #ff5252 0%, #e53935 100%) !important; |
| transform: scale(1.15) !important; |
| box-shadow: 0 6px 20px rgba(255, 107, 107, 0.4) !important; |
| } |
|
|
| |
| #delete-buttons-row { |
| display: none !important; |
| } |
|
|
| |
| #image-display-area::-webkit-scrollbar { |
| height: 6px !important; |
| } |
|
|
| #image-display-area::-webkit-scrollbar-track { |
| background: rgba(0, 0, 0, 0.05) !important; |
| border-radius: 3px !important; |
| } |
|
|
| #image-display-area::-webkit-scrollbar-thumb { |
| background: rgba(0, 0, 0, 0.2) !important; |
| border-radius: 3px !important; |
| } |
|
|
| #image-display-area::-webkit-scrollbar-thumb:hover { |
| background: rgba(0, 0, 0, 0.3) !important; |
| } |
|
|
| |
| .gr-file { |
| background: linear-gradient(135deg, #f8fafc 0%, #e2e8f0 100%) !important; |
| backdrop-filter: blur(10px) !important; |
| border: 2px dashed #cbd5e0 !important; |
| border-radius: var(--border-radius) !important; |
| padding: 2rem !important; |
| font-size: 1rem !important; |
| min-height: 120px !important; |
| height: auto !important; |
| max-width: 100% !important; |
| transition: var(--transition) !important; |
| color: #4a5568 !important; |
| position: relative !important; |
| overflow: hidden !important; |
| cursor: pointer !important; |
| box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1) !important; |
| } |
|
|
| .gr-file::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| bottom: 0; |
| background: linear-gradient(135deg, rgba(102, 126, 234, 0.05) 0%, rgba(118, 75, 162, 0.05) 100%); |
| opacity: 0; |
| transition: var(--transition); |
| z-index: 0; |
| } |
|
|
| .gr-file:hover { |
| border-color: #667eea !important; |
| background: linear-gradient(135deg, #ffffff 0%, #f7fafc 100%) !important; |
| transform: translateY(-3px) !important; |
| box-shadow: 0 8px 30px rgba(102, 126, 234, 0.2) !important; |
| } |
|
|
| .gr-file:hover::before { |
| opacity: 1; |
| } |
|
|
| .gr-file .wrap { |
| min-height: 80px !important; |
| padding: 0 !important; |
| display: flex !important; |
| flex-direction: column !important; |
| align-items: center !important; |
| justify-content: center !important; |
| position: relative !important; |
| z-index: 1 !important; |
| text-align: center !important; |
| } |
|
|
| .gr-file .wrap > div { |
| font-size: 0.9rem !important; |
| color: #4a5568 !important; |
| line-height: 1.5 !important; |
| font-weight: 500 !important; |
| margin: 0.5rem 0 !important; |
| } |
|
|
| |
| .gr-file .wrap::before { |
| content: '📁'; |
| font-size: 2.5rem !important; |
| margin-bottom: 0.5rem !important; |
| opacity: 0.7 !important; |
| transition: var(--transition) !important; |
| } |
|
|
| .gr-file:hover .wrap::before { |
| content: '📤'; |
| opacity: 1 !important; |
| transform: scale(1.1) !important; |
| } |
|
|
| |
| .gr-file .wrap > div:first-of-type { |
| font-size: 1.1rem !important; |
| font-weight: 600 !important; |
| color: #2d3748 !important; |
| margin-bottom: 0.3rem !important; |
| } |
|
|
| .gr-file .wrap > div:last-of-type { |
| font-size: 0.85rem !important; |
| color: #718096 !important; |
| font-weight: 400 !important; |
| } |
|
|
| |
| .gr-file .wrap > div { |
| position: relative !important; |
| } |
|
|
| .gr-file .wrap > div::before { |
| content: "Drag and drop files here" !important; |
| position: absolute !important; |
| top: 0 !important; |
| left: 0 !important; |
| width: 100% !important; |
| height: 100% !important; |
| background: transparent !important; |
| color: #4a5568 !important; |
| font-size: 0.9rem !important; |
| font-weight: 500 !important; |
| display: flex !important; |
| align-items: center !important; |
| justify-content: center !important; |
| z-index: 10 !important; |
| } |
|
|
| .gr-file .wrap > div:nth-child(2)::before { |
| content: "- or -" !important; |
| color: #718096 !important; |
| font-size: 0.8rem !important; |
| font-weight: 400 !important; |
| } |
|
|
| .gr-file .wrap > div:nth-child(3)::before { |
| content: "or click to upload" !important; |
| color: #718096 !important; |
| font-size: 0.8rem !important; |
| font-weight: 400 !important; |
| } |
|
|
| |
| .gr-file .wrap > div { |
| color: transparent !important; |
| font-size: 0 !important; |
| line-height: 0 !important; |
| height: 0 !important; |
| overflow: hidden !important; |
| margin: 0.5rem 0 !important; |
| } |
|
|
| .gr-file .wrap > div:nth-child(2), |
| .gr-file .wrap > div:nth-child(3) { |
| height: auto !important; |
| min-height: 20px !important; |
| } |
|
|
| |
| .gr-file.dragover { |
| border-color: #667eea !important; |
| background: linear-gradient(135deg, rgba(102, 126, 234, 0.1) 0%, rgba(118, 75, 162, 0.1) 100%) !important; |
| transform: scale(1.02) !important; |
| } |
|
|
| |
| .gr-file.has-file { |
| border-color: #48bb78 !important; |
| background: linear-gradient(135deg, rgba(72, 187, 120, 0.1) 0%, rgba(56, 178, 172, 0.1) 100%) !important; |
| } |
|
|
| .gr-file.has-file .wrap::before { |
| content: '✅'; |
| color: #48bb78 !important; |
| } |
|
|
| |
| .output-title { |
| margin-bottom: 1rem !important; |
| margin-top: 0 !important; |
| } |
|
|
| .output-title h3 { |
| margin: 0 !important; |
| padding: 0 !important; |
| font-size: 1.3rem !important; |
| color: #2d3436 !important; |
| font-weight: 700 !important; |
| text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important; |
| } |
|
|
| |
| #output-video { |
| border: 2px solid #e2e8f0 !important; |
| border-radius: var(--border-radius) !important; |
| padding: 1.5rem !important; |
| background: #ffffff !important; |
| backdrop-filter: none !important; |
| height: 400px !important; |
| overflow: hidden !important; |
| position: relative !important; |
| box-shadow: var(--shadow-light) !important; |
| transition: var(--transition) !important; |
| } |
|
|
| #output-video:hover { |
| transform: translateY(-2px) !important; |
| box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15) !important; |
| } |
|
|
| #output-video::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: 0; |
| right: 0; |
| height: 3px; |
| background: var(--primary-gradient); |
| border-radius: var(--border-radius) var(--border-radius) 0 0; |
| } |
|
|
| .gr-group { |
| background: #ffffff !important; |
| backdrop-filter: none !important; |
| border: 1px solid #e2e8f0 !important; |
| border-radius: var(--border-radius) !important; |
| padding: 1.5rem !important; |
| margin-bottom: 1.5rem !important; |
| box-shadow: var(--shadow-light) !important; |
| transition: var(--transition) !important; |
| } |
|
|
| .gr-group:hover { |
| transform: translateY(-1px) !important; |
| box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12) !important; |
| } |
|
|
| |
| @media (max-width: 768px) { |
| .gradio-container { |
| padding: 10px; |
| } |
| |
| .header-container { |
| padding: 2rem 1.5rem; |
| } |
| |
| .logo-text { |
| font-size: 2.5rem; |
| } |
| |
| .main-content { |
| padding: 1.5rem; |
| } |
| |
| .gr-panel { |
| padding: 1.5rem; |
| } |
| |
| .gr-group { |
| padding: 1rem; |
| } |
| } |
|
|
| |
| @keyframes pulse { |
| 0% { opacity: 1; } |
| 50% { opacity: 0.5; } |
| 100% { opacity: 1; } |
| } |
|
|
| .loading { |
| animation: pulse 2s infinite; |
| } |
|
|
| |
| .success { |
| background: var(--success-gradient) !important; |
| color: white !important; |
| } |
|
|
| |
| .error { |
| background: linear-gradient(135deg, #ff6b6b 0%, #ee5a52 100%) !important; |
| color: white !important; |
| } |
|
|
| |
| ::-webkit-scrollbar { |
| width: 8px; |
| height: 8px; |
| } |
|
|
| ::-webkit-scrollbar-track { |
| background: rgba(255, 255, 255, 0.1); |
| border-radius: 4px; |
| } |
|
|
| ::-webkit-scrollbar-thumb { |
| background: var(--primary-gradient); |
| border-radius: 4px; |
| } |
|
|
| ::-webkit-scrollbar-thumb:hover { |
| background: linear-gradient(135deg, #5a67d8 0%, #6b46c1 100%); |
| } |
|
|
| |
| #random-seed-btn { |
| background: var(--primary-gradient) !important; |
| border: none !important; |
| color: white !important; |
| font-weight: 600 !important; |
| font-size: 1.2rem !important; |
| padding: 0.5rem !important; |
| border-radius: var(--border-radius-small) !important; |
| transition: var(--transition) !important; |
| box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3) !important; |
| min-width: 50px !important; |
| height: 40px !important; |
| margin-top: 20px !important; |
| } |
|
|
| #random-seed-btn:hover { |
| transform: translateY(-2px) !important; |
| box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4) !important; |
| } |
|
|
| #random-seed-btn:active { |
| transform: translateY(0) !important; |
| } |
|
|