mayank214's picture
Upload 7 files
27bb91b verified
Raw
History Blame Contribute Delete
5.47 kB
@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; }
}