Spaces:
Sleeping
Sleeping
| @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Space+Grotesk:wght@700&display=swap"); | |
| *,*::before,*::after { margin:0; padding:0; box-sizing:border-box; } | |
| body { | |
| background: #0f0f1a; | |
| font-family: "Inter", sans-serif; | |
| color: #e4e4ef; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: start; | |
| min-height: 100vh; | |
| padding-top: 60px; | |
| overflow-x: hidden; | |
| position: relative; | |
| } | |
| main { | |
| position: relative; | |
| z-index: 1; | |
| width: 100%; | |
| max-width: 500px; | |
| padding: 0 20px; | |
| text-align: center; | |
| } | |
| h1 { | |
| font-family: "Space Grotesk", sans-serif; | |
| font-size: 2.2rem; | |
| margin-bottom: 8px; | |
| background: linear-gradient(135deg, #f59e0b, #ef4444); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| h3 { | |
| font-weight: 400; | |
| font-size: 1.05rem; | |
| color: #9ca3af; | |
| margin-bottom: 32px; | |
| } | |
| form { | |
| background: rgba(255,255,255,0.04); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid rgba(255,255,255,0.08); | |
| padding: 36px 32px; | |
| border-radius: 24px; | |
| text-align: center; | |
| transition: border-color 0.3s ease; | |
| } | |
| form:hover { | |
| border-color: rgba(245,158,11,0.2); | |
| } | |
| .drop-zone { | |
| display: block; | |
| border: 2px dashed rgba(255,255,255,0.12); | |
| border-radius: 16px; | |
| padding: 36px 20px; | |
| cursor: pointer; | |
| transition: border-color 0.3s ease, background 0.3s ease; | |
| margin-bottom: 24px; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .drop-zone:hover, | |
| .drop-zone.drag-over { | |
| border-color: rgba(245,158,11,0.4); | |
| background: rgba(255,255,255,0.03); | |
| } | |
| .drop-zone input[type="file"] { | |
| position: absolute; | |
| inset: 0; | |
| opacity: 0; | |
| cursor: pointer; | |
| z-index: 2; | |
| } | |
| .drop-zone-content { pointer-events: none; } | |
| .drop-icon { | |
| color: #f59e0b; | |
| margin-bottom: 10px; | |
| } | |
| .drop-text { | |
| font-weight: 600; | |
| font-size: 0.95rem; | |
| color: #e4e4ef; | |
| margin-bottom: 4px; | |
| } | |
| .drop-subtext { | |
| font-size: 0.82rem; | |
| color: #9ca3af; | |
| } | |
| .preview-container { position: relative; } | |
| .preview-container img { | |
| max-width: 100%; | |
| max-height: 200px; | |
| object-fit: contain; | |
| border-radius: 12px; | |
| border: 1px solid rgba(255,255,255,0.08); | |
| } | |
| .remove-preview { | |
| position: absolute; | |
| top: 8px; | |
| right: 8px; | |
| width: 28px; | |
| height: 28px; | |
| border-radius: 50%; | |
| background: rgba(0,0,0,0.7); | |
| color: white; | |
| border: none; | |
| font-size: 0.8rem; | |
| cursor: pointer; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 3; | |
| padding: 0; | |
| box-shadow: none; | |
| transition: background 0.2s; | |
| } | |
| .remove-preview:hover { | |
| background: rgba(239,68,68,0.8); | |
| transform: none; | |
| box-shadow: none; | |
| } | |
| .predict-btn { | |
| background: linear-gradient(135deg, #ef4444, #dc2626); | |
| color: white; | |
| border: none; | |
| padding: 14px 36px; | |
| font-size: 1.05rem; | |
| font-weight: 600; | |
| border-radius: 14px; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| box-shadow: 0 4px 20px rgba(239,68,68,0.3); | |
| letter-spacing: 0.02em; | |
| font-family: "Inter", sans-serif; | |
| } | |
| .predict-btn:hover { | |
| transform: translateY(-2px); | |
| box-shadow: 0 8px 30px rgba(239,68,68,0.45); | |
| } | |
| .predict-btn:active { transform: translateY(0); } | |
| .btn-content { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| #loadingBar { | |
| width: 100%; | |
| height: 4px; | |
| background: rgba(255,255,255,0.08); | |
| border-radius: 100px; | |
| margin-bottom: 16px; | |
| display: none; | |
| overflow: hidden; | |
| } | |
| #loadingProgress { | |
| height: 100%; | |
| width: 0%; | |
| background: linear-gradient(90deg, #f59e0b, #ef4444); | |
| border-radius: 100px; | |
| transition: width 0.3s ease; | |
| } | |
| #spinner { display: none; margin-top: 20px; } | |
| .loader { | |
| width: 36px; | |
| height: 36px; | |
| border: 3px solid rgba(255,255,255,0.1); | |
| border-top: 3px solid #f59e0b; | |
| border-radius: 50%; | |
| animation: spin 0.8s linear infinite; | |
| margin: 0 auto; | |
| } | |
| @keyframes spin { to { transform: rotate(360deg); } } | |
| .result { | |
| margin-top: 36px; | |
| margin-bottom: 40px; | |
| background: rgba(255,255,255,0.04); | |
| backdrop-filter: blur(20px); | |
| -webkit-backdrop-filter: blur(20px); | |
| border: 1px solid rgba(255,255,255,0.08); | |
| padding: 28px; | |
| border-radius: 24px; | |
| text-align: center; | |
| animation: slideUp 0.5s ease-out; | |
| } | |
| .result h2 { | |
| font-family: "Space Grotesk", sans-serif; | |
| font-size: 1.5rem; | |
| margin-bottom: 18px; | |
| color: #ffffff; | |
| } | |
| .result img { | |
| max-width: 100%; | |
| max-height: 45vh; | |
| object-fit: contain; | |
| border-radius: 16px; | |
| border: 2px solid rgba(255,255,255,0.06); | |
| } | |
| @keyframes slideUp { | |
| from { opacity: 0; transform: translateY(20px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .reset-btn { | |
| background: transparent; | |
| color: #d1d5db; | |
| border: 2px solid rgba(255,255,255,0.12); | |
| padding: 10px 24px; | |
| font-size: 0.95rem; | |
| box-shadow: none; | |
| margin-top: 15px; | |
| border-radius: 12px; | |
| cursor: pointer; | |
| font-family: "Inter", sans-serif; | |
| transition: all 0.3s ease; | |
| } | |
| .reset-btn:hover { | |
| background: rgba(255,255,255,0.05); | |
| border-color: rgba(245,158,11,0.4); | |
| transform: translateY(-2px); | |
| box-shadow: none; | |
| } | |
| @media (max-width: 480px) { | |
| h1 { font-size: 1.6rem; } | |
| form { padding: 24px 20px; } | |
| .drop-zone { padding: 28px 16px; } | |
| .predict-btn { padding: 12px 28px; } | |
| .result img { max-height: 35vh; } | |
| } |