Spaces:
Running
Running
| /* Custom animations and styles */ | |
| @keyframes pulse-slow { | |
| 0%, 100% { opacity: 1; } | |
| 50% { opacity: 0.5; } | |
| } | |
| @keyframes float { | |
| 0%, 100% { transform: translateY(0px); } | |
| 50% { transform: translateY(-10px); } | |
| } | |
| @keyframes shimmer { | |
| 0% { background-position: -1000px 0; } | |
| 100% { background-position: 1000px 0; } | |
| } | |
| .animate-pulse-slow { | |
| animation: pulse-slow 3s ease-in-out infinite; | |
| } | |
| .animate-float { | |
| animation: float 3s ease-in-out infinite; | |
| } | |
| .shimmer { | |
| background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent); | |
| background-size: 1000px 100%; | |
| animation: shimmer 2s infinite; | |
| } | |
| /* Custom scrollbar */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| background: #f1f1f1; | |
| border-radius: 10px; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| border-radius: 10px; | |
| } | |
| ::-webkit-scrollbar-thumb:hover { | |
| background: linear-gradient(135deg, #5a67d8 0%, #d946ef 100%); | |
| } | |
| /* Loading states */ | |
| .loading-spinner { | |
| border: 3px solid #f3f3f3; | |
| border-top: 3px solid #667eea; | |
| border-radius: 50%; | |
| width: 20px; | |
| height: 20px; | |
| animation: spin 1s linear infinite; | |
| } | |
| @keyframes spin { | |
| 0% { transform: rotate(0deg); } | |
| 100% { transform: rotate(360deg); } | |
| } | |
| /* Status container fixes */ | |
| #statusContainer { | |
| transition: all 0.3s ease; | |
| } | |
| #statusIcon { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| min-width: 24px; | |
| } | |
| /* Glassmorphism effect */ | |
| .glass { | |
| background: rgba(255, 255, 255, 0.1); | |
| backdrop-filter: blur(10px); | |
| border: 1px solid rgba(255, 255, 255, 0.2); | |
| } | |
| /* Hover effects */ | |
| .hover-lift { | |
| transition: transform 0.3s ease, box-shadow 0.3s ease; | |
| } | |
| .hover-lift:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 10px 30px rgba(0,0,0,0.15); | |
| } | |
| /* Gradient text */ | |
| .gradient-text { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| /* File upload drag area */ | |
| .drag-active { | |
| border-color: #667eea ; | |
| background: rgba(102, 126, 234, 0.05) ; | |
| } | |
| /* Status indicators */ | |
| .status-processing { | |
| background: linear-gradient(135deg, #fef3c7, #fde68a); | |
| color: #92400e; | |
| border: 1px solid #fbbf24; | |
| } | |
| .status-success { | |
| background: linear-gradient(135deg, #d1fae5, #a7f3d0); | |
| color: #065f46; | |
| border: 1px solid #34d399; | |
| } | |
| .status-error { | |
| background: linear-gradient(135deg, #fee2e2, #fecaca); | |
| color: #991b1b; | |
| border: 1px solid #f87171; | |
| } | |
| /* 3D Viewer controls */ | |
| .viewer-controls { | |
| position: absolute; | |
| bottom: 10px; | |
| right: 10px; | |
| display: flex; | |
| gap: 5px; | |
| background: rgba(0,0,0,0.5); | |
| padding: 5px; | |
| border-radius: 8px; | |
| } | |
| .viewer-controls button { | |
| background: rgba(255,255,255,0.2); | |
| border: none; | |
| color: white; | |
| padding: 8px; | |
| border-radius: 5px; | |
| cursor: pointer; | |
| transition: background 0.3s; | |
| } | |
| .viewer-controls button:hover { | |
| background: rgba(255,255,255,0.3); | |
| } | |
| /* Model card hover effect */ | |
| .model-card { | |
| transition: all 0.3s ease; | |
| cursor: pointer; | |
| } | |
| .model-card:hover { | |
| transform: scale(1.05); | |
| z-index: 10; | |
| } | |
| /* Responsive adjustments */ | |
| @media (max-width: 768px) { | |
| .container { | |
| padding: 1rem; | |
| } | |
| #viewer { | |
| height: 300px ; | |
| } | |
| } |