Spaces:
Sleeping
Sleeping
| /* ===================================================== | |
| GLOBAL RESET | |
| ===================================================== */ | |
| *{ | |
| margin:0; | |
| padding:0; | |
| box-sizing:border-box; | |
| font-family:'Poppins', sans-serif; | |
| } | |
| html { | |
| font-size: 150%; | |
| } | |
| /* ===================================================== | |
| NAVBAR (shared by all pages) | |
| ===================================================== */ | |
| .navbar{ | |
| display:flex; | |
| justify-content:space-between; | |
| align-items:center; | |
| padding: 10px 0; /* slightly taller than before */ | |
| } | |
| .logo{ | |
| display:flex; | |
| align-items:center; | |
| } | |
| .logo-img{ | |
| height:48px; | |
| width:auto; | |
| display:block; | |
| } | |
| .logo-name{ | |
| font-size:35px; | |
| font-weight:700; | |
| color:#003d12; | |
| letter-spacing:-0.3px; | |
| margin-left:10px; | |
| white-space:nowrap; | |
| } | |
| .logo-ai{ | |
| color:#2f9b4b; | |
| font-weight:700; | |
| } | |
| /* Reset button */ | |
| .btn-reset{ | |
| margin-top:8px; | |
| width:100%; | |
| padding:10px; | |
| background:transparent; | |
| color:#888; | |
| border:1.5px solid #d0d0d0; | |
| border-radius:20px; | |
| font-family:'Poppins',sans-serif; | |
| font-size:11px; | |
| font-weight:500; | |
| letter-spacing:0.5px; | |
| text-transform:uppercase; | |
| cursor:pointer; | |
| transition:0.25s; | |
| flex-shrink:0; | |
| display:none; | |
| } | |
| .btn-reset.visible{ display:block; } | |
| .btn-reset:hover{ border-color:#2f9b4b; color:#2f9b4b; background:#f4fbf4; } | |
| .menu{ | |
| display:flex; | |
| align-items:center; | |
| gap:55px; | |
| } | |
| .menu a{ | |
| text-decoration:none; | |
| color:#2f9b4b; | |
| font-size:11px; | |
| font-weight:500; | |
| text-transform:uppercase; | |
| transition:0.3s; | |
| } | |
| .menu a:hover{ opacity:0.7; } | |
| .menu a.active{ | |
| color:#003d12; | |
| font-weight:700; | |
| border-bottom:2px solid #003d12; | |
| padding-bottom:2px; | |
| } | |
| .signup-btn{ | |
| background:#003d12; | |
| color:#fff; | |
| padding:10px 22px; | |
| border-radius:20px; | |
| font-size:11px; | |
| text-decoration:none; | |
| font-weight:600; | |
| transition:0.3s; | |
| } | |
| .signup-btn:hover{ | |
| transform:translateY(-2px); | |
| box-shadow:0 8px 15px rgba(0,0,0,0.12); | |
| } | |
| /* ===================================================== | |
| INDEX — HERO | |
| ===================================================== */ | |
| body.page-index{ | |
| background:#f7f7f7; | |
| overflow:hidden; | |
| } | |
| body.page-index .container{ | |
| width:100%; | |
| height:80vh; | |
| position:relative; | |
| padding:28px 70px 0; /* reduced top padding so image fits */ | |
| } | |
| .hero{ | |
| display:flex; | |
| justify-content:space-between; | |
| align-items:flex-end; /* image sits at bottom — feet fully visible */ | |
| margin-top:40px; | |
| position:relative; | |
| height: calc(100vh - 110px); /* fills remaining viewport */ | |
| } | |
| .content{ | |
| width:35%; | |
| z-index:2; | |
| padding-bottom: 60px; /* align text with mid-image */ | |
| } | |
| .content h1{ | |
| font-size:62px; | |
| line-height:1.05; | |
| color:#004d12; | |
| margin-bottom:30px; | |
| font-weight:700; | |
| } | |
| .content p{ | |
| width:260px; | |
| font-size:12px; | |
| line-height:1.75; | |
| color:#6d6d6d; | |
| margin-bottom:30px; | |
| } | |
| .read-btn{ | |
| display:inline-block; | |
| background:#003d12; | |
| color:#fff; | |
| text-decoration:none; | |
| padding:12px 28px; | |
| border-radius:25px; | |
| font-size:11px; | |
| font-weight:600; | |
| transition:0.3s; | |
| } | |
| .read-btn:hover{ | |
| transform:translateY(-3px); | |
| box-shadow:0 8px 15px rgba(0,0,0,0.15); | |
| } | |
| .image-section{ | |
| width:65%; | |
| display:flex; | |
| justify-content:center; | |
| align-items:flex-end; /* image anchored to bottom — feet visible */ | |
| } | |
| .hero-image{ | |
| position:relative; | |
| width:620px; /* slightly smaller so feet aren't cropped */ | |
| z-index:2; | |
| animation:float 4s ease-in-out infinite; | |
| } | |
| .hero-image img{ | |
| width:100%; | |
| object-fit:contain; | |
| display:block; | |
| user-select:none; | |
| pointer-events:none; | |
| } | |
| @keyframes float{ | |
| 0% { transform:translateY(0px); } | |
| 50% { transform:translateY(-10px); } | |
| 100%{ transform:translateY(0px); } | |
| } | |
| /* ===================================================== | |
| PREDICTION PAGE — two-column, zero-scroll layout | |
| ===================================================== */ | |
| body.page-prediction{ | |
| background:#f7f7f7; | |
| height:100vh; | |
| overflow:hidden; | |
| } | |
| body.page-prediction .container{ | |
| width:100%; | |
| height:100vh; | |
| padding:24px 60px 0; | |
| display:flex; | |
| flex-direction:column; | |
| } | |
| /* Two-panel row — fills remaining height, no scroll */ | |
| .page-body{ | |
| flex:1; | |
| display:flex; | |
| align-items:stretch; | |
| justify-content:center; | |
| gap:22px; | |
| padding:14px 0 24px; | |
| overflow:hidden; | |
| } | |
| /* ── LEFT card (input) — flex column, no overflow ── */ | |
| .pred-card{ | |
| background:#fff; | |
| border-radius:24px; | |
| box-shadow:0 20px 60px rgba(0,61,18,.12); | |
| padding:26px 30px 20px; | |
| width:480px; | |
| flex-shrink:0; | |
| display:flex; | |
| flex-direction:column; | |
| overflow:hidden; /* never shows scrollbar */ | |
| text-align:center; | |
| } | |
| .pred-card h2{ | |
| font-size:21px; | |
| font-weight:700; | |
| color:#004d12; | |
| margin-bottom:4px; | |
| flex-shrink:0; | |
| } | |
| .pred-card .subtitle{ | |
| font-size:10.5px; | |
| color:#8a8a8a; | |
| line-height:1.6; | |
| margin-bottom:14px; | |
| flex-shrink:0; | |
| } | |
| /* ── RIGHT card (results) — hidden until predict ── */ | |
| .result-card{ | |
| background:#fff; | |
| border-radius:24px; | |
| box-shadow:0 20px 60px rgba(0,61,18,.12); | |
| padding:26px 30px 20px; | |
| width:390px; | |
| flex-shrink:0; | |
| display:none; | |
| flex-direction:column; | |
| overflow:hidden; | |
| animation:slideIn .35s ease; | |
| } | |
| .result-card.visible{ display:flex; } | |
| @keyframes slideIn{ | |
| from{ opacity:0; transform:translateX(20px); } | |
| to { opacity:1; transform:translateX(0); } | |
| } | |
| .result-card h3{ | |
| font-size:15px; | |
| font-weight:700; | |
| color:#004d12; | |
| margin-bottom:12px; | |
| flex-shrink:0; | |
| text-align:center; | |
| } | |
| /* Tabs */ | |
| .tabs{ | |
| display:flex; | |
| gap:7px; | |
| justify-content:center; | |
| margin-bottom:14px; | |
| flex-wrap:wrap; | |
| flex-shrink:0; | |
| } | |
| .tab{ | |
| display:inline-flex; | |
| align-items:center; | |
| gap:6px; | |
| padding:7px 13px; | |
| border-radius:20px; | |
| border:1.5px solid #ccc; | |
| background:#fff; | |
| font-family:'Poppins', sans-serif; | |
| font-size:10px; | |
| font-weight:600; | |
| color:#666; | |
| cursor:pointer; | |
| text-transform:uppercase; | |
| transition:0.25s; | |
| letter-spacing:0.3px; | |
| } | |
| .tab:hover{ border-color:#2f9b4b; color:#2f9b4b; } | |
| .tab.active{ background:#003d12; color:#fff; border-color:#003d12; } | |
| /* Panels — fill remaining space in left card */ | |
| .panel{ display:none; flex:1; flex-direction:column; min-height:0; } | |
| .panel.active{ display:flex; } | |
| /* Upload zone — grows to fill the panel */ | |
| .upload-zone{ | |
| position:relative; | |
| border:2px dashed #b5ddb5; | |
| border-radius:14px; | |
| cursor:pointer; | |
| background:#f8fdf8; | |
| transition:0.2s; | |
| flex:1; /* fills available space */ | |
| display:flex; | |
| flex-direction:column; | |
| align-items:center; | |
| justify-content:center; | |
| gap:6px; | |
| min-height:0; | |
| } | |
| .upload-zone:hover{ background:#edf7ed; border-color:#2f9b4b; } | |
| .upload-zone input[type="file"]{ | |
| position:absolute; inset:0; opacity:0; cursor:pointer; width:100%; height:100%; | |
| } | |
| .upload-icon{ width:42px; height:42px; flex-shrink:0; } | |
| .upload-zone p{ font-size:12px; font-weight:600; color:#555; margin:0; } | |
| .upload-zone span{ font-size:10.5px; color:#aaa; } | |
| /* Tiny file name badge (replaces image preview on left) */ | |
| .file-indicator{ | |
| margin-top:8px; | |
| padding:6px 12px; | |
| background:#f0faf0; | |
| border-radius:8px; | |
| font-size:10.5px; | |
| color:#2f9b4b; | |
| font-weight:600; | |
| border:1px solid #b5ddb5; | |
| flex-shrink:0; | |
| white-space:nowrap; | |
| overflow:hidden; | |
| text-overflow:ellipsis; | |
| } | |
| /* URL panel */ | |
| .panel#panel-url{ gap:10px; justify-content:center; } | |
| .url-row{ display:flex; gap:8px; flex-shrink:0; } | |
| .url-row input{ | |
| flex:1; border:1.5px solid #ddd; border-radius:10px; | |
| padding:10px 13px; font-family:'Poppins',sans-serif; font-size:12px; | |
| outline:none; color:#333; transition:border-color 0.2s; | |
| } | |
| .url-row input:focus{ border-color:#2f9b4b; } | |
| .url-row button{ | |
| padding:10px 18px; border-radius:10px; background:#003d12; color:#fff; | |
| border:none; font-family:'Poppins',sans-serif; font-size:12px; | |
| font-weight:600; cursor:pointer; transition:0.2s; | |
| } | |
| .url-row button:hover{ background:#0c5d18; } | |
| /* Webcam panel */ | |
| .panel#panel-webcam{ justify-content:center; } | |
| .webcam-area{ display:flex; flex-direction:column; align-items:center; gap:10px; width:100%; } | |
| .wc-placeholder{ | |
| width:100%; flex:1; min-height:120px; max-height:200px; | |
| border-radius:14px; background:#e8f5e9; | |
| display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; | |
| } | |
| .wc-placeholder p{ font-size:11px; color:#999; font-weight:500; } | |
| .wc-video-wrap{ position:relative; width:100%; display:none; } | |
| #webcamVideo{ width:100%; border-radius:14px; background:#000; display:block; } | |
| .wc-live-badge{ | |
| position:absolute; bottom:9px; left:9px; right:9px; | |
| background:rgba(0,61,18,0.82); backdrop-filter:blur(6px); | |
| border-radius:9px; padding:8px 12px; | |
| display:none; align-items:center; justify-content:space-between; gap:10px; | |
| } | |
| .wc-live-badge.visible{ display:flex; } | |
| .wc-badge-label{ font-size:14px; font-weight:700; color:#fff; text-transform:capitalize; } | |
| .wc-badge-conf { font-size:10px; font-weight:500; color:#a8e6b8; white-space:nowrap; } | |
| .wc-live-dot{ | |
| position:absolute; top:8px; right:9px; | |
| display:none; align-items:center; gap:5px; | |
| background:rgba(0,0,0,0.45); border-radius:20px; padding:3px 8px; | |
| } | |
| .wc-live-dot.visible{ display:flex; } | |
| .wc-live-dot span{ font-size:9px; font-weight:700; color:#fff; letter-spacing:1px; } | |
| .wc-dot-circle{ | |
| width:7px; height:7px; border-radius:50%; background:#ff4444; | |
| animation:livePulse 1s ease-in-out infinite; | |
| } | |
| @keyframes livePulse{ 0%,100%{opacity:1;transform:scale(1);} 50%{opacity:.4;transform:scale(0.7);} } | |
| .wc-btns{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; flex-shrink:0; } | |
| .wc-btn{ | |
| padding:7px 15px; border-radius:20px; font-family:'Poppins',sans-serif; | |
| font-size:10.5px; font-weight:600; cursor:pointer; transition:0.2s; | |
| text-transform:uppercase; letter-spacing:0.3px; | |
| } | |
| .wc-btn.solid { background:#003d12; color:#fff; border:1.5px solid #003d12; } | |
| .wc-btn.outline{ background:#fff; color:#003d12; border:1.5px solid #003d12; } | |
| .wc-btn:hover { opacity:0.8; transform:translateY(-1px); } | |
| .wc-btn:disabled{ opacity:0.35; cursor:not-allowed; transform:none; } | |
| /* Analyze button */ | |
| .btn-analyze{ | |
| margin-top:10px; | |
| width:100%; | |
| padding:11px; | |
| background:#003d12; | |
| color:#fff; | |
| border:none; | |
| border-radius:20px; | |
| font-family:'Poppins',sans-serif; | |
| font-size:11.5px; | |
| font-weight:600; | |
| letter-spacing:0.5px; | |
| text-transform:uppercase; | |
| cursor:pointer; | |
| transition:0.3s; | |
| flex-shrink:0; | |
| } | |
| .btn-analyze:hover{ background:#0c5d18; transform:translateY(-2px); box-shadow:0 8px 15px rgba(0,0,0,0.12); } | |
| .btn-analyze:disabled{ opacity:0.45; cursor:not-allowed; transform:none; box-shadow:none; } | |
| /* ── Result content (right card) — image fills top, box below ── */ | |
| #resultContent{ | |
| flex:1; | |
| display:flex; | |
| flex-direction:column; | |
| gap:10px; | |
| min-height:0; | |
| overflow:hidden; | |
| } | |
| .result-img-wrap{ | |
| flex:1; | |
| border-radius:12px; | |
| overflow:hidden; | |
| min-height:0; | |
| background:#f0f5f0; | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| } | |
| .result-img-wrap img{ | |
| width:100%; height:100%; object-fit:cover; display:block; | |
| } | |
| .result-box{ | |
| background:#eaf7ea; border-radius:12px; padding:12px 14px; | |
| text-align:left; flex-shrink:0; | |
| } | |
| .result-box h4{ font-size:9px; font-weight:700; color:#004d12; letter-spacing:1.2px; text-transform:uppercase; margin-bottom:5px; } | |
| .result-label{ font-size:22px; font-weight:700; color:#0c5d18; margin-bottom:2px; text-transform:capitalize; } | |
| .result-conf { font-size:11px; color:#888; font-weight:500; margin-bottom:9px; } | |
| .pills{ display:flex; flex-wrap:wrap; gap:5px; } | |
| .pill{ | |
| background:#fff; border:1.5px solid #b5ddb5; border-radius:20px; | |
| padding:2px 10px; font-size:9.5px; font-weight:600; color:#2f9b4b; text-transform:capitalize; | |
| } | |
| .pill.on{ background:#003d12; color:#fff; border-color:#003d12; } | |
| /* Spinner */ | |
| .spinner{ | |
| display:inline-block; width:13px; height:13px; | |
| border:2px solid rgba(255,255,255,.35); border-top-color:#fff; | |
| border-radius:50%; animation:spin .6s linear infinite; | |
| vertical-align:middle; margin-right:6px; | |
| } | |
| @keyframes spin{ to{ transform:rotate(360deg); } } | |
| /* Classes note */ | |
| .classes-note{ | |
| margin-top:8px; font-size:9.5px; color:#ccc; line-height:1.8; | |
| flex-shrink:0; text-align:center; | |
| } | |
| .classes-note strong{ color:#2f9b4b; font-weight:600; } | |
| /* ===================================================== | |
| CONTACT & SIGNUP PAGES | |
| ===================================================== */ | |
| body.page-contact, | |
| body.page-signup{ | |
| background:#f7f7f7; | |
| min-height:100vh; | |
| } | |
| body.page-contact .container, | |
| body.page-signup .container{ | |
| width:100%; | |
| min-height:100vh; | |
| padding:28px 70px; | |
| } | |
| .page-form-body{ | |
| display:flex; | |
| align-items:center; | |
| justify-content:center; | |
| padding:50px 0 40px; | |
| } | |
| .card{ | |
| background:#fff; | |
| border-radius:24px; | |
| box-shadow:0 20px 60px rgba(0,61,18,.12); | |
| padding:46px 42px 38px; | |
| width:100%; | |
| max-width:520px; | |
| text-align:center; | |
| } | |
| .card h2{ font-size:26px; font-weight:700; color:#004d12; margin-bottom:10px; } | |
| .card p { font-size:12px; color:#8a8a8a; line-height:1.7; margin-bottom:26px; } | |
| .card input, | |
| .card textarea{ | |
| width:100%; | |
| border:1.5px solid #ddd; | |
| border-radius:10px; | |
| padding:12px 14px; | |
| font-family:'Poppins', sans-serif; | |
| font-size:12px; | |
| margin-bottom:12px; | |
| outline:none; | |
| color:#333; | |
| transition:border-color .2s; | |
| } | |
| .card input:focus, | |
| .card textarea:focus{ border-color:#2f9b4b; } | |
| .card textarea{ resize:vertical; min-height:110px; } | |
| .btn-submit{ | |
| display:inline-block; | |
| background:#003d12; | |
| color:#fff; | |
| font-family:'Poppins', sans-serif; | |
| font-size:11px; | |
| font-weight:600; | |
| letter-spacing:0.5px; | |
| text-transform:uppercase; | |
| padding:12px 36px; | |
| border-radius:25px; | |
| border:none; | |
| cursor:pointer; | |
| transition:0.3s; | |
| } | |
| .btn-submit:hover{ transform:translateY(-3px); box-shadow:0 8px 15px rgba(0,0,0,0.15); } | |
| /* ===================================================== | |
| RESPONSIVE | |
| ===================================================== */ | |
| @media(max-width:1100px){ | |
| .hero{ flex-direction:column; gap:30px; align-items:center; height:auto; } | |
| .content{ width:100%; text-align:center; padding-bottom:0; } | |
| .content p{ margin:auto; margin-bottom:30px; } | |
| .image-section{ width:100%; } | |
| .hero-image{ width:100%; } | |
| body.page-index{ overflow:auto; } | |
| .page-body{ flex-direction:column; overflow-y:auto; } | |
| .pred-card, .result-card{ width:100%; max-width:520px; } | |
| body.page-prediction{ height:auto; overflow:auto; } | |
| body.page-prediction .container{ height:auto; } | |
| } | |
| @media(max-width:768px){ | |
| body.page-index .container, | |
| body.page-contact .container, | |
| body.page-signup .container, | |
| body.page-prediction .container{ padding:24px 28px; } | |
| .menu{ gap:18px; } | |
| .content h1{ font-size:44px; } | |
| } | |
| @media(max-width:560px){ | |
| .menu a:not(.signup-btn){ display:none; } | |
| } | |