| * { |
| margin: 0; |
| padding: 0; |
| box-sizing: border-box; |
| } |
|
|
| body { |
| font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif; |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
| min-height: 100vh; |
| padding: 20px; |
| } |
|
|
| .container { |
| max-width: 1200px; |
| margin: 0 auto; |
| } |
|
|
| header { |
| text-align: center; |
| color: white; |
| margin-bottom: 40px; |
| } |
|
|
| header h1 { |
| font-size: 3rem; |
| margin-bottom: 10px; |
| text-shadow: 2px 2px 4px rgba(0,0,0,0.2); |
| } |
|
|
| header p { |
| font-size: 1.2rem; |
| opacity: 0.9; |
| } |
|
|
| .model-info-section { |
| background: white; |
| border-radius: 20px; |
| padding: 40px; |
| box-shadow: 0 10px 30px rgba(0,0,0,0.1); |
| margin-bottom: 30px; |
| } |
|
|
| .info-header h2 { |
| color: #333; |
| margin-bottom: 30px; |
| text-align: center; |
| font-size: 1.8rem; |
| font-weight: 700; |
| } |
|
|
| .metrics-grid { |
| display: grid; |
| grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); |
| gap: 20px; |
| margin-bottom: 40px; |
| } |
|
|
| .metric-box { |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
| padding: 25px; |
| border-radius: 15px; |
| display: flex; |
| align-items: center; |
| gap: 15px; |
| box-shadow: 0 5px 15px rgba(102, 126, 234, 0.3); |
| transition: transform 0.3s ease; |
| } |
|
|
| .metric-box:hover { |
| transform: translateY(-5px); |
| } |
|
|
| .metric-icon { |
| font-size: 2.5rem; |
| } |
|
|
| .metric-content { |
| flex: 1; |
| } |
|
|
| .metric-label { |
| color: rgba(255, 255, 255, 0.9); |
| font-size: 0.9rem; |
| margin-bottom: 5px; |
| font-weight: 500; |
| } |
|
|
| .metric-value { |
| color: white; |
| font-size: 1.8rem; |
| font-weight: 700; |
| } |
|
|
| .dataset-section { |
| border-top: 2px solid #f0f0f0; |
| padding-top: 30px; |
| } |
|
|
| .dataset-section h3 { |
| color: #333; |
| margin-bottom: 20px; |
| font-size: 1.4rem; |
| font-weight: 600; |
| } |
|
|
| .dataset-grid { |
| display: grid; |
| grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); |
| gap: 15px; |
| } |
|
|
| .info-item { |
| background: #f8f9ff; |
| padding: 20px; |
| border-radius: 12px; |
| display: flex; |
| align-items: center; |
| gap: 15px; |
| border: 2px solid #e8e9ff; |
| transition: all 0.3s ease; |
| } |
|
|
| .info-item:hover { |
| border-color: #667eea; |
| background: #f0f2ff; |
| transform: translateX(5px); |
| } |
|
|
| .info-icon { |
| font-size: 2rem; |
| } |
|
|
| .info-label { |
| color: #666; |
| font-size: 0.85rem; |
| margin-bottom: 5px; |
| font-weight: 500; |
| } |
|
|
| .info-value { |
| color: #333; |
| font-size: 1.1rem; |
| font-weight: 700; |
| } |
|
|
| .upload-section { |
| background: white; |
| border-radius: 20px; |
| padding: 40px; |
| box-shadow: 0 20px 60px rgba(0,0,0,0.3); |
| margin-bottom: 30px; |
| } |
|
|
| .upload-box { |
| border: 3px dashed #667eea; |
| border-radius: 15px; |
| padding: 60px 20px; |
| text-align: center; |
| cursor: pointer; |
| transition: all 0.3s ease; |
| margin-bottom: 20px; |
| } |
|
|
| .upload-box:hover { |
| border-color: #764ba2; |
| background: #f8f9ff; |
| } |
|
|
| .upload-box.dragover { |
| border-color: #764ba2; |
| background: #f0f0ff; |
| transform: scale(1.02); |
| } |
|
|
| .upload-content svg { |
| color: #667eea; |
| margin-bottom: 20px; |
| } |
|
|
| .upload-content p { |
| font-size: 1.2rem; |
| color: #333; |
| margin-bottom: 10px; |
| } |
|
|
| .upload-content span { |
| color: #666; |
| font-size: 0.9rem; |
| } |
|
|
| .btn-primary { |
| width: 100%; |
| padding: 15px; |
| font-size: 1.1rem; |
| font-weight: 600; |
| color: white; |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
| border: none; |
| border-radius: 10px; |
| cursor: pointer; |
| transition: all 0.3s ease; |
| } |
|
|
| .btn-primary:hover:not(:disabled) { |
| transform: translateY(-2px); |
| box-shadow: 0 10px 20px rgba(102, 126, 234, 0.4); |
| } |
|
|
| .btn-primary:disabled { |
| opacity: 0.5; |
| cursor: not-allowed; |
| } |
|
|
| .results-section { |
| background: white; |
| border-radius: 20px; |
| padding: 40px; |
| box-shadow: 0 20px 60px rgba(0,0,0,0.3); |
| } |
|
|
| .image-comparison { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 30px; |
| flex-wrap: wrap; |
| } |
|
|
| .image-box { |
| flex: 1; |
| min-width: 250px; |
| text-align: center; |
| } |
|
|
| .image-box h3 { |
| color: #333; |
| margin-bottom: 15px; |
| font-size: 1.3rem; |
| } |
|
|
| .image-box img { |
| width: 100%; |
| max-width: 400px; |
| height: auto; |
| border-radius: 10px; |
| box-shadow: 0 5px 15px rgba(0,0,0,0.2); |
| image-rendering: pixelated; |
| } |
|
|
| .arrow { |
| font-size: 3rem; |
| color: #667eea; |
| font-weight: bold; |
| } |
|
|
| .loading { |
| text-align: center; |
| padding: 40px; |
| background: white; |
| border-radius: 20px; |
| box-shadow: 0 20px 60px rgba(0,0,0,0.3); |
| } |
|
|
| .spinner { |
| width: 50px; |
| height: 50px; |
| margin: 0 auto 20px; |
| border: 5px solid #f3f3f3; |
| border-top: 5px solid #667eea; |
| border-radius: 50%; |
| animation: spin 1s linear infinite; |
| } |
|
|
| @keyframes spin { |
| 0% { transform: rotate(0deg); } |
| 100% { transform: rotate(360deg); } |
| } |
|
|
| .loading p { |
| color: #333; |
| font-size: 1.1rem; |
| } |
|
|
| .error { |
| background: #ff4444; |
| color: white; |
| padding: 20px; |
| border-radius: 10px; |
| text-align: center; |
| font-weight: 500; |
| } |
|
|
| @media (max-width: 768px) { |
| header h1 { |
| font-size: 2rem; |
| } |
| |
| .arrow { |
| transform: rotate(90deg); |
| } |
| |
| .upload-section, .results-section { |
| padding: 20px; |
| } |
| } |
|
|
| |
| .samples-section { |
| background: white; |
| border-radius: 20px; |
| padding: 40px; |
| box-shadow: 0 10px 30px rgba(0,0,0,0.1); |
| margin-bottom: 30px; |
| } |
|
|
| .samples-section h2 { |
| color: #333; |
| font-size: 1.8rem; |
| font-weight: 700; |
| margin-bottom: 8px; |
| text-align: center; |
| } |
|
|
| .samples-subtitle { |
| text-align: center; |
| color: #666; |
| margin-bottom: 24px; |
| font-size: 1rem; |
| } |
|
|
| .samples-grid { |
| display: flex; |
| flex-wrap: wrap; |
| gap: 16px; |
| justify-content: center; |
| } |
|
|
| .samples-loading { |
| color: #999; |
| font-size: 1rem; |
| } |
|
|
| .sample-card { |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| gap: 8px; |
| cursor: pointer; |
| padding: 12px; |
| border-radius: 12px; |
| border: 2px solid #e8e9ff; |
| background: #f8f9ff; |
| transition: all 0.2s ease; |
| width: 100px; |
| } |
|
|
| .sample-card:hover { |
| border-color: #667eea; |
| transform: translateY(-4px); |
| box-shadow: 0 6px 16px rgba(102,126,234,0.25); |
| } |
|
|
| .sample-card.active { |
| border-color: #764ba2; |
| background: #f0eaff; |
| box-shadow: 0 6px 16px rgba(118,75,162,0.3); |
| } |
|
|
| .sample-card img { |
| width: 64px; |
| height: 64px; |
| image-rendering: pixelated; |
| border-radius: 6px; |
| } |
|
|
| .sample-card span { |
| font-size: 0.8rem; |
| font-weight: 600; |
| color: #555; |
| } |
|
|
| .upload-section h2, |
| .results-section h2 { |
| color: #333; |
| font-size: 1.5rem; |
| font-weight: 700; |
| margin-bottom: 20px; |
| text-align: center; |
| } |
|
|