:root { --primary: #6366f1; --primary-hover: #4f46e5; --secondary: #ec4899; --dark: #0f172a; --text: #f8fafc; --glass: rgba(255, 255, 255, 0.05); --glass-border: rgba(255, 255, 255, 0.1); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Outfit', sans-serif; } body { background-color: var(--dark); color: var(--text); min-height: 100vh; overflow-x: hidden; display: flex; justify-content: center; align-items: center; } .background-blobs { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; filter: blur(80px); } .blob { position: absolute; border-radius: 50%; opacity: 0.5; } .blob-1 { width: 400px; height: 400px; background: var(--primary); top: -100px; left: -100px; animation: rotate 20s infinite linear; } .blob-2 { width: 300px; height: 300px; background: var(--secondary); bottom: -50px; right: -50px; animation: rotate 15s infinite linear reverse; } .blob-3 { width: 250px; height: 250px; background: #4ade80; top: 50%; left: 50%; transform: translate(-50%, -50%); animation: pulse 10s infinite ease-in-out; } @keyframes rotate { from { transform: rotate(0deg) scale(1); } to { transform: rotate(360deg) scale(1.1); } } @keyframes pulse { 0%, 100% { transform: translate(-50%, -50%) scale(1); } 50% { transform: translate(-50%, -50%) scale(1.2); } } .container { width: 90%; max-width: 600px; padding: 2rem 0; text-align: center; } header { margin-bottom: 3rem; } h1 { font-size: 3rem; font-weight: 800; margin-bottom: 0.5rem; } .gradient-text { background: linear-gradient(to right, var(--primary), var(--secondary)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; } .subtitle { font-size: 1.1rem; color: rgba(255, 255, 255, 0.6); letter-spacing: 2px; text-transform: uppercase; } .glass-card { background: var(--glass); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border: 1px solid var(--glass-border); border-radius: 24px; padding: 2.5rem; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37); transition: transform 0.3s ease, box-shadow 0.3s ease; margin-bottom: 2rem; } .upload-section { cursor: pointer; border: 2px dashed var(--glass-border); } .upload-section:hover { border-color: var(--primary); transform: translateY(-5px); } .upload-content .icon { font-size: 4rem; margin-bottom: 1rem; } .upload-content h3 { font-size: 1.5rem; margin-bottom: 0.5rem; } .upload-content p { color: rgba(255, 255, 255, 0.5); margin-bottom: 1.5rem; } .preview-container img { width: 100%; max-height: 300px; object-fit: cover; border-radius: 16px; margin-bottom: 1.5rem; border: 2px solid var(--glass-border); } .btn { padding: 12px 24px; border-radius: 12px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; border: none; font-size: 1rem; } .btn-primary { background: var(--primary); color: white; } .btn-primary:hover { background: var(--primary-hover); transform: scale(1.05); } .btn-secondary { background: white; color: var(--dark); width: 100%; } .btn-secondary:hover { opacity: 0.9; transform: scale(1.02); } .btn-text { background: transparent; color: var(--primary); text-decoration: underline; margin-top: 1rem; } .hidden { display: none; } .result-section { position: relative; overflow: hidden; } .prediction-value { font-size: 3rem; font-weight: 800; margin: 1rem 0; color: var(--primary); } .confidence-bar-container { width: 100%; height: 12px; background: rgba(255, 255, 255, 0.1); border-radius: 6px; margin: 1rem 0; overflow: hidden; } .confidence-bar { height: 100%; width: 0%; background: linear-gradient(to right, var(--primary), var(--secondary)); transition: width 1s cubic-bezier(0.17, 0.67, 0.83, 0.67); } .confidence-text { font-weight: 500; color: rgba(255, 255, 255, 0.8); } .loader { width: 48px; height: 48px; border: 5px solid #FFF; border-bottom-color: var(--primary); border-radius: 50%; display: inline-block; box-sizing: border-box; animation: rotation 1s linear infinite; margin: 2rem 0; } @keyframes rotation { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } footer { color: rgba(255, 255, 255, 0.4); font-size: 0.9rem; }