Spaces:
Running
Running
| /* | |
| * SPDX-FileCopyrightText: Hadad <[email protected]> | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| -webkit-font-smoothing: antialiased; | |
| -moz-osx-font-smoothing: grayscale; | |
| } | |
| :root { | |
| --bg-primary: #0d0d0d; | |
| --bg-secondary: #151515; | |
| --bg-tertiary: #1c1c1c; | |
| --bg-card: #181818; | |
| --border: rgba(255, 255, 255, 0.05); | |
| --border-hover: rgba(255, 255, 255, 0.1); | |
| --text-primary: #fafafa; | |
| --text-secondary: #9ca3af; | |
| --text-muted: #6b7280; | |
| --accent: #7c3aed; | |
| --accent-hover: #6d28d9; | |
| --danger: #ef4444; | |
| } | |
| body { | |
| font-family: 'Inter', system-ui, sans-serif; | |
| background: var(--bg-primary); | |
| color: var(--text-primary); | |
| min-height: 100vh; | |
| line-height: 1.6; | |
| overflow-x: hidden; | |
| word-wrap: break-word; | |
| word-break: break-word; | |
| } | |
| .gradient-bg { | |
| background: | |
| radial-gradient( | |
| ellipse at top left, | |
| rgba(124, 58, 237, 0.03) 0%, | |
| transparent 50% | |
| ), | |
| radial-gradient( | |
| ellipse at bottom right, | |
| rgba(236, 72, 153, 0.03) 0%, | |
| transparent 50% | |
| ); | |
| position: fixed; | |
| inset: 0; | |
| z-index: -1; | |
| } | |
| .gradient-mesh { | |
| background-image: | |
| radial-gradient( | |
| at 20% 40%, | |
| hsla(280, 70%, 40%, 0.05) 0px, | |
| transparent 50% | |
| ), | |
| radial-gradient( | |
| at 80% 20%, | |
| hsla(320, 70%, 40%, 0.04) 0px, | |
| transparent 50% | |
| ), | |
| radial-gradient( | |
| at 40% 80%, | |
| hsla(200, 70%, 40%, 0.03) 0px, | |
| transparent 50% | |
| ); | |
| position: fixed; | |
| inset: 0; | |
| z-index: -1; | |
| opacity: 0.8; | |
| animation: meshFloat 100s ease-in-out infinite; | |
| } | |
| @keyframes meshFloat { | |
| 0%, 100% { | |
| transform: translate(0, 0) scale(1) rotate(0deg); | |
| } | |
| 33% { | |
| transform: translate(-30px, -40px) scale(1.02) rotate(1deg); | |
| } | |
| 66% { | |
| transform: translate(30px, -30px) scale(0.98) rotate(-1deg); | |
| } | |
| } | |
| .card { | |
| background: rgba(24, 24, 24, 0.4); | |
| backdrop-filter: blur(60px); | |
| border: 1px solid var(--border); | |
| border-radius: clamp(16px, 2vw, 24px); | |
| transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .card::before { | |
| content: ''; | |
| position: absolute; | |
| inset: 0; | |
| background: radial-gradient( | |
| 800px circle at var(--mouse-x) var(--mouse-y), | |
| rgba(124, 58, 237, 0.02), | |
| transparent 40% | |
| ); | |
| opacity: 0; | |
| transition: opacity 0.3s; | |
| pointer-events: none; | |
| } | |
| .card:hover::before { | |
| opacity: 1; | |
| } | |
| .card:hover { | |
| border-color: var(--border-hover); | |
| transform: translateY(-2px); | |
| box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); | |
| } | |
| .btn { | |
| border-radius: clamp(12px, 1.5vw, 16px); | |
| font-weight: 600; | |
| transition: all 0.5s cubic-bezier(0.23, 1, 0.320, 1); | |
| position: relative; | |
| overflow: hidden; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: clamp(8px, 1vw, 12px); | |
| border: none; | |
| cursor: pointer; | |
| z-index: 1; | |
| font-size: clamp(14px, 1.5vw, 16px); | |
| } | |
| .btn::after { | |
| content: ''; | |
| position: absolute; | |
| inset: 0; | |
| background: linear-gradient( | |
| 45deg, | |
| transparent 30%, | |
| rgba(255, 255, 255, 0.05) 50%, | |
| transparent 70% | |
| ); | |
| transform: translateX(-100%) skewX(-20deg); | |
| transition: transform 1.5s; | |
| } | |
| .btn:hover::after { | |
| transform: translateX(200%) skewX(-20deg); | |
| } | |
| .btn-primary { | |
| background: linear-gradient( | |
| 135deg, | |
| var(--accent), | |
| var(--accent-hover) | |
| ); | |
| color: white; | |
| padding: clamp(14px, 2vw, 20px) clamp(28px, 4vw, 48px); | |
| box-shadow: 0 8px 32px rgba(124, 58, 237, 0.2); | |
| } | |
| .btn-primary:hover:not(:disabled) { | |
| transform: translateY(-3px) scale(1.02); | |
| box-shadow: 0 16px 40px rgba(124, 58, 237, 0.3); | |
| } | |
| .btn-primary:disabled { | |
| opacity: 0.5; | |
| cursor: not-allowed; | |
| transform: none ; | |
| } | |
| .btn-danger { | |
| background: linear-gradient(135deg, var(--danger), #dc2626); | |
| color: white; | |
| padding: clamp(14px, 2vw, 20px) clamp(28px, 4vw, 48px); | |
| } | |
| .modal-overlay { | |
| position: fixed; | |
| inset: 0; | |
| background: rgba(0, 0, 0, 0.96); | |
| backdrop-filter: blur(40px); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 10000; | |
| animation: fadeIn 0.4s ease; | |
| padding: clamp(16px, 2vw, 24px); | |
| } | |
| .modal-content { | |
| background: linear-gradient( | |
| 135deg, | |
| rgba(28, 28, 28, 0.98), | |
| rgba(24, 24, 24, 0.98) | |
| ); | |
| border-radius: clamp(20px, 2.5vw, 32px); | |
| padding: clamp(24px, 4vw, 48px); | |
| max-width: min(90%, 720px); | |
| width: 100%; | |
| border: 1px solid rgba(255, 255, 255, 0.05); | |
| box-shadow: 0 40px 100px rgba(0, 0, 0, 0.8); | |
| animation: slideUp 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); | |
| position: relative; | |
| overflow: hidden; | |
| word-wrap: break-word; | |
| word-break: break-word; | |
| } | |
| .modal-content::before { | |
| content: ''; | |
| position: absolute; | |
| top: -50%; | |
| left: -50%; | |
| width: 200%; | |
| height: 200%; | |
| background: conic-gradient( | |
| from 0deg at 50% 50%, | |
| rgba(124, 58, 237, 0.04), | |
| rgba(236, 72, 153, 0.04), | |
| rgba(59, 130, 246, 0.04), | |
| rgba(124, 58, 237, 0.04) | |
| ); | |
| animation: rotate 90s linear infinite; | |
| } | |
| @keyframes rotate { | |
| from { transform: rotate(0deg); } | |
| to { transform: rotate(360deg); } | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; } | |
| to { opacity: 1; } | |
| } | |
| @keyframes slideUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(60px) scale(0.9); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0) scale(1); | |
| } | |
| } | |
| .progress-bar { | |
| width: 100%; | |
| height: 4px; | |
| background: rgba(124, 58, 237, 0.1); | |
| border-radius: 2px; | |
| overflow: hidden; | |
| margin: 20px 0; | |
| } | |
| .progress-fill { | |
| height: 100%; | |
| background: linear-gradient(90deg, var(--accent), #ec4899); | |
| transition: width 0.3s ease; | |
| animation: shimmer 2s infinite; | |
| } | |
| @keyframes shimmer { | |
| 0% { opacity: 0.8; } | |
| 50% { opacity: 1; } | |
| 100% { opacity: 0.8; } | |
| } | |
| .image-output-section { | |
| min-height: clamp(120px, 15vh, 200px); | |
| border: 2px dashed var(--border); | |
| border-radius: clamp(20px, 2.5vw, 32px); | |
| padding: clamp(32px, 4vw, 60px); | |
| margin-bottom: clamp(32px, 4vw, 56px); | |
| text-align: center; | |
| transition: all 0.5s ease; | |
| background: rgba(24, 24, 24, 0.2); | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .image-output-section.has-images { | |
| border: none; | |
| padding: 0; | |
| background: transparent; | |
| } | |
| .image-grid { | |
| display: grid; | |
| gap: clamp(20px, 2.5vw, 36px); | |
| grid-template-columns: repeat( | |
| auto-fit, | |
| minmax( | |
| min(100%, clamp(280px, 35vw, 400px)), | |
| 1fr | |
| ) | |
| ); | |
| justify-content: center; | |
| justify-items: center; | |
| align-items: start; | |
| } | |
| .image-card { | |
| position: relative; | |
| border-radius: clamp(16px, 2vw, 24px); | |
| overflow: hidden; | |
| background: var(--bg-tertiary); | |
| border: 1px solid var(--border); | |
| transition: all 0.8s cubic-bezier(0.23, 1, 0.320, 1); | |
| animation: scaleIn 0.8s cubic-bezier(0.34, 1.56, 0.64, 1); | |
| width: 100%; | |
| max-width: fit-content; | |
| } | |
| .image-card img { | |
| width: 100%; | |
| height: auto; | |
| display: block; | |
| object-fit: cover; | |
| } | |
| .image-card:hover { | |
| transform: translateY(-8px) scale(1.02); | |
| box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6); | |
| border-color: rgba(124, 58, 237, 0.2); | |
| } | |
| @keyframes scaleIn { | |
| from { | |
| opacity: 0; | |
| transform: scale(0.7) translateY(60px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: scale(1) translateY(0); | |
| } | |
| } | |
| .image-actions { | |
| position: absolute; | |
| top: clamp(16px, 2vw, 24px); | |
| right: clamp(16px, 2vw, 24px); | |
| display: flex; | |
| gap: clamp(10px, 1.5vw, 14px); | |
| opacity: 0; | |
| transform: translateY(-10px); | |
| transition: all 0.3s ease; | |
| } | |
| .image-card:hover .image-actions { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| .action-btn { | |
| width: clamp(40px, 5vw, 52px); | |
| height: clamp(40px, 5vw, 52px); | |
| background: rgba(0, 0, 0, 0.85); | |
| backdrop-filter: blur(40px); | |
| border-radius: clamp(12px, 1.5vw, 18px); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| border: 1px solid rgba(255, 255, 255, 0.05); | |
| color: white; | |
| } | |
| .action-btn:hover { | |
| background: rgba(124, 58, 237, 0.2); | |
| transform: scale(1.15) rotate(10deg); | |
| border-color: rgba(124, 58, 237, 0.3); | |
| } | |
| .input-field { | |
| background: rgba(28, 28, 28, 0.5); | |
| border: 1px solid var(--border); | |
| border-radius: clamp(12px, 1.5vw, 18px); | |
| padding: clamp(16px, 2vw, 22px) clamp(20px, 2.5vw, 28px); | |
| color: var(--text-primary); | |
| width: 100%; | |
| font-size: clamp(14px, 1.5vw, 16px); | |
| transition: all 0.3s ease; | |
| outline: none; | |
| } | |
| .input-field:focus { | |
| border-color: rgba(124, 58, 237, 0.3); | |
| box-shadow: 0 0 0 4px rgba(124, 58, 237, 0.06); | |
| background: rgba(28, 28, 28, 0.7); | |
| transform: translateY(-1px); | |
| } | |
| .select-field { | |
| appearance: none; | |
| background-image: url( | |
| "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%236b7280' d='M8 11L3 6h10z'/%3E%3C/svg%3E" | |
| ); | |
| background-repeat: no-repeat; | |
| background-position: right clamp(20px, 2.5vw, 28px) center; | |
| padding-right: clamp(48px, 6vw, 64px); | |
| cursor: pointer; | |
| } | |
| .textarea-field { | |
| resize: vertical; | |
| min-height: clamp(140px, 20vh, 200px); | |
| font-family: 'JetBrains Mono', monospace; | |
| line-height: 1.7; | |
| word-wrap: break-word; | |
| word-break: break-word; | |
| white-space: pre-wrap; | |
| overflow-wrap: break-word; | |
| } | |
| .example-card { | |
| background: rgba(28, 28, 28, 0.3); | |
| border: 1px solid var(--border); | |
| border-radius: clamp(14px, 1.8vw, 20px); | |
| padding: clamp(20px, 2.5vw, 32px); | |
| cursor: pointer; | |
| transition: all 0.5s cubic-bezier(0.23, 1, 0.320, 1); | |
| position: relative; | |
| overflow: hidden; | |
| word-wrap: break-word; | |
| word-break: break-word; | |
| } | |
| .example-card p { | |
| word-wrap: break-word; | |
| word-break: break-word; | |
| overflow-wrap: break-word; | |
| hyphens: auto; | |
| } | |
| .example-card::before { | |
| content: ''; | |
| position: absolute; | |
| inset: 0; | |
| background: linear-gradient( | |
| 135deg, | |
| rgba(124, 58, 237, 0.05), | |
| rgba(236, 72, 153, 0.05) | |
| ); | |
| opacity: 0; | |
| transition: opacity 0.5s; | |
| } | |
| .example-card:hover::before { | |
| opacity: 1; | |
| } | |
| .example-card:hover { | |
| transform: translateX(12px) scale(1.02); | |
| border-color: rgba(124, 58, 237, 0.25); | |
| box-shadow: 0 16px 60px rgba(0, 0, 0, 0.3); | |
| } | |
| .loading-spinner { | |
| width: clamp(24px, 3vw, 32px); | |
| height: clamp(24px, 3vw, 32px); | |
| border: 3px solid rgba(255, 255, 255, 0.1); | |
| border-top-color: white; | |
| border-radius: 50%; | |
| animation: spin 0.8s linear infinite; | |
| } | |
| @keyframes spin { | |
| to { transform: rotate(360deg); } | |
| } | |
| .header-gradient { | |
| background: linear-gradient(135deg, #7c3aed, #ec4899, #3b82f6); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| font-weight: 900; | |
| background-size: 200% 200%; | |
| animation: gradientShift 12s ease infinite; | |
| } | |
| @keyframes gradientShift { | |
| 0%, 100% { | |
| background-position: 0% 50%; | |
| } | |
| 50% { | |
| background-position: 100% 50%; | |
| } | |
| } | |
| @media (max-width: 144px) { | |
| body { | |
| font-size: 10px; | |
| } | |
| .modal-content { | |
| padding: 12px; | |
| } | |
| } | |
| @media (min-width: 3840px) { | |
| body { | |
| font-size: 22px; | |
| } | |
| } | |
| @media (min-width: 7680px) { | |
| body { | |
| font-size: 36px; | |
| } | |
| } |