Spaces:
Sleeping
Sleeping
| * { | |
| margin: 0; | |
| padding: 0; | |
| box-sizing: border-box; | |
| } | |
| :root { | |
| --bg-primary: #0a0a0a; | |
| --bg-secondary: #111111; | |
| --bg-card: #1a1a1a; | |
| --bg-overlay: rgba(255, 255, 255, 0.02); | |
| --primary: #0066ff; | |
| --primary-glow: rgba(0, 102, 255, 0.15); | |
| --text-primary: #ffffff; | |
| --text-secondary: #a0a0a0; | |
| --text-tertiary: #666666; | |
| --border: rgba(255, 255, 255, 0.08); | |
| --border-light: rgba(255, 255, 255, 0.04); | |
| --success: #00d26a; | |
| --warning: #ffb224; | |
| --error: #ff375f; | |
| } | |
| body { | |
| font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; | |
| background: var(--bg-primary); | |
| color: var(--text-primary); | |
| line-height: 1.6; | |
| overflow-x: hidden; | |
| } | |
| /* Background Elements */ | |
| .bg-grid { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background-image: | |
| linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px), | |
| linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px); | |
| background-size: 50px 50px; | |
| pointer-events: none; | |
| z-index: -2; | |
| } | |
| .bg-glow { | |
| position: fixed; | |
| top: 50%; | |
| left: 50%; | |
| width: 600px; | |
| height: 600px; | |
| background: radial-gradient(circle, var(--primary-glow) 0%, transparent 70%); | |
| transform: translate(-50%, -50%); | |
| pointer-events: none; | |
| z-index: -1; | |
| } | |
| .container { | |
| max-width: 1600px; | |
| margin: 0 auto; | |
| padding: 0 24px; | |
| } | |
| /* Header & Navigation */ | |
| .header { | |
| padding: 24px 0; | |
| border-bottom: 1px solid var(--border-light); | |
| } | |
| .nav { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| } | |
| .logo { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| font-weight: 700; | |
| font-size: 20px; | |
| } | |
| .logo-icon { | |
| width: 32px; | |
| height: 32px; | |
| background: linear-gradient(135deg, #001a33, #000d1a); | |
| border-radius: 8px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| font-weight: 800; | |
| font-size: 16px; | |
| box-shadow: 0 4px 12px rgba(0, 102, 255, 0.3); | |
| border: 1px solid rgba(0, 102, 255, 0.3); | |
| transition: all 0.3s ease; | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .logo-icon::before { | |
| content: ''; | |
| position: absolute; | |
| top: -50%; | |
| left: -50%; | |
| width: 200%; | |
| height: 200%; | |
| background: linear-gradient( | |
| 45deg, | |
| transparent, | |
| rgba(0, 102, 255, 0.1), | |
| transparent | |
| ); | |
| animation: shine 3s infinite; | |
| } | |
| .logo-icon:hover { | |
| box-shadow: 0 6px 20px rgba(0, 102, 255, 0.5); | |
| transform: translateY(-2px); | |
| background: linear-gradient(135deg, #002147, #00142e); | |
| } | |
| @keyframes shine { | |
| 0% { | |
| transform: translateX(-100%) translateY(-100%) rotate(45deg); | |
| } | |
| 100% { | |
| transform: translateX(100%) translateY(100%) rotate(45deg); | |
| } | |
| } | |
| .nav-links { | |
| display: flex; | |
| gap: 32px; | |
| } | |
| .nav-link { | |
| color: var(--text-secondary); | |
| text-decoration: none; | |
| font-weight: 500; | |
| font-size: 14px; | |
| transition: color 0.2s ease; | |
| } | |
| .nav-link:hover { | |
| color: var(--text-primary); | |
| } | |
| .nav-actions { | |
| display: flex; | |
| gap: 12px; | |
| } | |
| /* Buttons */ | |
| .btn { | |
| padding: 12px 20px; | |
| border: none; | |
| border-radius: 8px; | |
| font-weight: 600; | |
| font-size: 14px; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| text-decoration: none; | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .btn-primary { | |
| background: var(--primary); | |
| color: white; | |
| } | |
| .btn-primary:hover { | |
| background: #0052cc; | |
| transform: translateY(-1px); | |
| } | |
| .btn-secondary { | |
| background: var(--bg-overlay); | |
| color: var(--text-primary); | |
| border: 1px solid var(--border); | |
| } | |
| .btn-secondary:hover { | |
| background: rgba(255, 255, 255, 0.05); | |
| } | |
| .btn-large { | |
| padding: 16px 32px; | |
| font-size: 16px; | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| /* Hero Section */ | |
| .hero { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 48px; | |
| padding: 60px 0; | |
| min-height: 85vh; | |
| } | |
| .hero-intro { | |
| text-align: center; | |
| max-width: 800px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 24px; | |
| align-items: center; | |
| } | |
| .badge { | |
| display: inline-flex; | |
| background: var(--bg-overlay); | |
| border: 1px solid var(--border); | |
| border-radius: 20px; | |
| padding: 8px 16px; | |
| font-size: 14px; | |
| font-weight: 500; | |
| color: var(--text-secondary); | |
| width: fit-content; | |
| } | |
| .hero-title { | |
| font-size: 48px; | |
| font-weight: 800; | |
| line-height: 1.1; | |
| letter-spacing: -0.02em; | |
| margin: 0; | |
| } | |
| .gradient-text { | |
| background: linear-gradient(135deg, var(--primary), #00d4ff); | |
| -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; | |
| background-clip: text; | |
| } | |
| .hero-description { | |
| font-size: 16px; | |
| color: var(--text-secondary); | |
| line-height: 1.6; | |
| margin: 0; | |
| } | |
| .hero-actions { | |
| display: flex; | |
| gap: 16px; | |
| flex-wrap: wrap; | |
| align-items: center; | |
| justify-content: center; | |
| } | |
| /* Dashboard Card */ | |
| .dashboard-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: 16px; | |
| overflow: hidden; | |
| box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3); | |
| max-width: 1100px; | |
| width: 100%; | |
| } | |
| .card-header { | |
| padding: 24px; | |
| border-bottom: 1px solid var(--border); | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| } | |
| .card-title { | |
| font-size: 18px; | |
| font-weight: 600; | |
| } | |
| .status-indicator { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 14px; | |
| color: var(--success); | |
| } | |
| .status-dot { | |
| width: 8px; | |
| height: 8px; | |
| background: var(--success); | |
| border-radius: 50%; | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0%, 100% { opacity: 1; } | |
| 50% { opacity: 0.5; } | |
| } | |
| .video-container { | |
| position: relative; | |
| background: #000; | |
| aspect-ratio: 16/9; | |
| } | |
| .video-placeholder { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient(135deg, #1a1a1a, #2a2a2a); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| z-index: 1; | |
| } | |
| #videoFeed { | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| object-fit: contain; | |
| z-index: 2; | |
| } | |
| .video-overlay { | |
| text-align: center; | |
| color: var(--text-secondary); | |
| } | |
| .camera-icon { | |
| font-size: 48px; | |
| margin-bottom: 16px; | |
| opacity: 0.7; | |
| } | |
| .video-text { | |
| font-size: 14px; | |
| } | |
| .video-stats { | |
| position: absolute; | |
| bottom: 20px; | |
| left: 20px; | |
| display: flex; | |
| gap: 16px; | |
| z-index: 10; | |
| } | |
| .video-stat { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| background: rgba(0, 0, 0, 0.8); | |
| padding: 12px 16px; | |
| border-radius: 8px; | |
| backdrop-filter: blur(10px); | |
| } | |
| .stat-icon { | |
| font-size: 20px; | |
| } | |
| .stat-info { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 2px; | |
| } | |
| .stat-value { | |
| font-size: 18px; | |
| font-weight: 700; | |
| color: var(--text-primary); | |
| } | |
| .stat-label { | |
| font-size: 12px; | |
| color: var(--text-secondary); | |
| } | |
| .card-controls { | |
| display: flex; | |
| padding: 20px; | |
| gap: 8px; | |
| } | |
| .control-btn { | |
| flex: 1; | |
| padding: 12px 16px; | |
| background: var(--bg-overlay); | |
| border: 1px solid var(--border); | |
| border-radius: 8px; | |
| color: var(--text-secondary); | |
| font-size: 14px; | |
| font-weight: 500; | |
| cursor: pointer; | |
| transition: all 0.2s ease; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| gap: 8px; | |
| } | |
| .control-btn:hover, | |
| .control-btn.active { | |
| background: var(--primary); | |
| color: white; | |
| border-color: var(--primary); | |
| } | |
| /* Mode Selector Styles */ | |
| .mode-selector { | |
| border-top: 1px solid var(--border); | |
| background: var(--bg-overlay); | |
| padding: 16px 20px; | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .mode-label { | |
| font-size: 13px; | |
| font-weight: 600; | |
| color: var(--text-secondary); | |
| margin-right: 8px; | |
| } | |
| .mode-btn { | |
| flex: 1; | |
| padding: 10px 14px; | |
| font-size: 13px; | |
| } | |
| /* Upload Section */ | |
| .upload-section { | |
| padding: 20px; | |
| border-top: 1px solid var(--border); | |
| background: var(--bg-overlay); | |
| } | |
| .upload-zone { | |
| border: 2px dashed var(--border); | |
| border-radius: 12px; | |
| padding: 40px; | |
| text-align: center; | |
| cursor: pointer; | |
| transition: all 0.3s ease; | |
| } | |
| .upload-zone:hover { | |
| border-color: var(--primary); | |
| background: rgba(0, 102, 255, 0.05); | |
| } | |
| .upload-content { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 12px; | |
| } | |
| .upload-icon { | |
| font-size: 48px; | |
| opacity: 0.5; | |
| } | |
| .upload-text { | |
| font-size: 16px; | |
| font-weight: 500; | |
| color: var(--text-primary); | |
| } | |
| .upload-subtext { | |
| font-size: 13px; | |
| color: var(--text-secondary); | |
| } | |
| .upload-options { | |
| margin-top: 16px; | |
| display: flex; | |
| justify-content: center; | |
| } | |
| .checkbox-label { | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| font-size: 14px; | |
| color: var(--text-secondary); | |
| cursor: pointer; | |
| } | |
| .checkbox-label input[type="checkbox"] { | |
| width: 16px; | |
| height: 16px; | |
| cursor: pointer; | |
| } | |
| .upload-status { | |
| margin-top: 12px; | |
| font-size: 14px; | |
| text-align: center; | |
| } | |
| .upload-status .error { | |
| color: var(--error); | |
| } | |
| .upload-status .success { | |
| color: var(--success); | |
| } | |
| .upload-status .info { | |
| color: var(--primary); | |
| } | |
| /* Monitoring Controls */ | |
| .monitoring-controls { | |
| padding: 20px; | |
| display: flex; | |
| gap: 12px; | |
| justify-content: center; | |
| } | |
| .monitoring-controls .btn { | |
| min-width: 180px; | |
| } | |
| /* Features Section */ | |
| .features { | |
| padding: 120px 0; | |
| } | |
| .section-header { | |
| text-align: center; | |
| margin-bottom: 64px; | |
| max-width: 600px; | |
| margin-left: auto; | |
| margin-right: auto; | |
| } | |
| .section-badge { | |
| display: inline-flex; | |
| background: var(--bg-overlay); | |
| border: 1px solid var(--border); | |
| border-radius: 20px; | |
| padding: 8px 16px; | |
| font-size: 14px; | |
| font-weight: 500; | |
| color: var(--text-secondary); | |
| margin-bottom: 20px; | |
| } | |
| .section-title { | |
| font-size: 48px; | |
| font-weight: 700; | |
| line-height: 1.1; | |
| letter-spacing: -0.02em; | |
| margin-bottom: 20px; | |
| } | |
| .section-description { | |
| font-size: 18px; | |
| color: var(--text-secondary); | |
| line-height: 1.6; | |
| } | |
| .features-grid { | |
| display: grid; | |
| grid-template-columns: repeat(2, 1fr); | |
| gap: 24px; | |
| } | |
| .feature-card { | |
| background: var(--bg-card); | |
| border: 1px solid var(--border); | |
| border-radius: 16px; | |
| padding: 32px; | |
| transition: all 0.3s ease; | |
| } | |
| .feature-card:hover { | |
| transform: translateY(-4px); | |
| border-color: var(--primary); | |
| box-shadow: 0 8px 32px rgba(0, 102, 255, 0.1); | |
| } | |
| .feature-icon { | |
| font-size: 32px; | |
| margin-bottom: 20px; | |
| } | |
| .feature-title { | |
| font-size: 20px; | |
| font-weight: 600; | |
| margin-bottom: 12px; | |
| color: var(--text-primary); | |
| } | |
| .feature-description { | |
| color: var(--text-secondary); | |
| line-height: 1.6; | |
| } | |
| /* Press Section */ | |
| .press { | |
| padding: 80px 0; | |
| border-top: 1px solid var(--border-light); | |
| } | |
| .press-logos { | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| gap: 60px; | |
| flex-wrap: wrap; | |
| } | |
| .press-logo { | |
| font-size: 18px; | |
| font-weight: 600; | |
| color: var(--text-tertiary); | |
| transition: color 0.2s ease; | |
| } | |
| .press-logo:hover { | |
| color: var(--text-secondary); | |
| } | |
| /* Responsive Design */ | |
| @media (max-width: 968px) { | |
| .hero { | |
| gap: 40px; | |
| } | |
| .hero-title { | |
| font-size: 40px; | |
| } | |
| .features-grid { | |
| grid-template-columns: 1fr; | |
| } | |
| .nav-links { | |
| display: none; | |
| } | |
| } | |
| @media (max-width: 768px) { | |
| .hero-title { | |
| font-size: 36px; | |
| } | |
| .section-title { | |
| font-size: 36px; | |
| } | |
| .hero-actions { | |
| justify-content: center; | |
| } | |
| } | |
| @media (max-width: 480px) { | |
| .container { | |
| padding: 0 16px; | |
| } | |
| .hero-title { | |
| font-size: 28px; | |
| } | |
| .hero-description { | |
| font-size: 16px; | |
| } | |
| .btn-large { | |
| padding: 14px 24px; | |
| font-size: 14px; | |
| } | |
| } | |
| /* Background Image with Overlay */ | |
| .bg-image { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background-image: url('/static/422671.jpg'); | |
| background-size: cover; | |
| background-position: center; | |
| background-repeat: no-repeat; | |
| z-index: -3; | |
| } | |
| .bg-image::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient( | |
| 135deg, | |
| rgba(10, 10, 10, 0.95) 0%, | |
| rgba(10, 10, 10, 0.85) 50%, | |
| rgba(10, 10, 10, 0.95) 100% | |
| ); | |
| backdrop-filter: blur(1px); | |
| } | |
| /* Enhanced Background Elements */ | |
| .bg-grid { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background-image: | |
| linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px), | |
| linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px); | |
| background-size: 50px 50px; | |
| pointer-events: none; | |
| z-index: -2; | |
| mix-blend-mode: overlay; | |
| } | |
| .bg-glow { | |
| position: fixed; | |
| top: 50%; | |
| left: 50%; | |
| width: 600px; | |
| height: 600px; | |
| background: radial-gradient(circle, var(--primary-glow) 0%, transparent 70%); | |
| transform: translate(-50%, -50%); | |
| pointer-events: none; | |
| z-index: -1; | |
| mix-blend-mode: screen; | |
| opacity: 0.3; | |
| } | |
| /* Update existing container for better contrast */ | |
| .container { | |
| position: relative; | |
| z-index: 1; | |
| } | |
| /* Enhanced cards with more transparency */ | |
| .dashboard-card, | |
| .feature-card { | |
| background: rgba(26, 26, 26, 0.85); | |
| backdrop-filter: blur(20px); | |
| border: 1px solid var(--border); | |
| } | |
| /* Update header for better readability */ | |
| .header { | |
| background: rgba(17, 17, 17, 0.8); | |
| backdrop-filter: blur(20px); | |
| } | |
| /* Add motion blur effect to simulate speed */ | |
| @keyframes subtleMove { | |
| 0%, 100% { | |
| transform: translateX(0) scale(1); | |
| } | |
| 50% { | |
| transform: translateX(10px) scale(1.02); | |
| } | |
| } | |
| .bg-image { | |
| animation: subtleMove 20s ease-in-out infinite; | |
| } | |
| /* Enhanced video container to match F1 theme */ | |
| .video-container { | |
| position: relative; | |
| background: #000; | |
| aspect-ratio: 16/9; | |
| border-radius: 12px; | |
| overflow: hidden; | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| } | |
| .video-placeholder { | |
| width: 100%; | |
| height: 100%; | |
| background: linear-gradient(135deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%); | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| position: relative; | |
| } | |
| /* Add racing circuit pattern overlay */ | |
| .video-placeholder::before { | |
| content: ''; | |
| position: absolute; | |
| top: 0; | |
| left: 0; | |
| width: 100%; | |
| height: 100%; | |
| background-image: | |
| radial-gradient(circle at 20% 50%, rgba(0, 102, 255, 0.1) 0%, transparent 50%), | |
| radial-gradient(circle at 80% 20%, rgba(0, 212, 255, 0.1) 0%, transparent 50%), | |
| radial-gradient(circle at 40% 80%, rgba(0, 102, 255, 0.1) 0%, transparent 50%); | |
| animation: circuitMove 15s linear infinite; | |
| } | |
| @keyframes circuitMove { | |
| 0% { | |
| background-position: 0% 0%, 100% 100%, 50% 50%; | |
| } | |
| 100% { | |
| background-position: 100% 100%, 0% 0%, 150% 150%; | |
| } | |
| } | |
| /* Update hero section for better contrast with background */ | |
| .hero-content { | |
| background: rgba(10, 10, 10, 0.6); | |
| backdrop-filter: blur(10px); | |
| border-radius: 20px; | |
| padding: 40px; | |
| margin: -40px; | |
| border: 1px solid rgba(255, 255, 255, 0.05); | |
| } | |
| /* Enhanced badge styles */ | |
| .badge { | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| width: fit-content; | |
| margin: 0 auto; | |
| background: rgba(0, 102, 255, 0.15); | |
| border: 1px solid rgba(0, 102, 255, 0.3); | |
| color: #0066ff; | |
| backdrop-filter: blur(10px); | |
| text-align: center; | |
| } | |
| /* Update feature cards for better readability */ | |
| .feature-card { | |
| background: rgba(26, 26, 26, 0.8); | |
| backdrop-filter: blur(20px); | |
| transition: all 0.3s ease; | |
| } | |
| .feature-card:hover { | |
| background: rgba(26, 26, 26, 0.9); | |
| transform: translateY(-5px); | |
| border-color: var(--primary); | |
| } | |
| /* Enhanced press section */ | |
| .press { | |
| background: rgba(10, 10, 10, 0.8); | |
| backdrop-filter: blur(20px); | |
| margin: 0 -24px; | |
| padding: 80px 24px; | |
| } | |
| /* Racing-inspired status indicators */ | |
| .status-indicator { | |
| background: rgba(0, 210, 106, 0.1); | |
| border: 1px solid rgba(0, 210, 106, 0.3); | |
| padding: 8px 16px; | |
| border-radius: 20px; | |
| backdrop-filter: blur(10px); | |
| } | |
| /* F1-inspired speed metrics */ | |
| .video-stat { | |
| background: rgba(0, 0, 0, 0.9); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| backdrop-filter: blur(20px); | |
| } | |
| /* Update button styles for better contrast */ | |
| .btn-primary { | |
| background: linear-gradient(135deg, var(--primary), #0099ff); | |
| box-shadow: 0 4px 20px rgba(0, 102, 255, 0.3); | |
| display: inline-flex; | |
| align-items: center; | |
| justify-content: center; | |
| text-align: center; | |
| } | |
| .btn-primary:hover { | |
| background: linear-gradient(135deg, #0052cc, #0077cc); | |
| box-shadow: 0 6px 25px rgba(0, 102, 255, 0.4); | |
| } | |
| /* Mobile optimizations for background */ | |
| @media (max-width: 768px) { | |
| .bg-image { | |
| background-attachment: scroll; | |
| animation: none; /* Remove animation on mobile for performance */ | |
| } | |
| .hero-content { | |
| background: rgba(10, 10, 10, 0.8); | |
| margin: -20px; | |
| padding: 30px 20px; | |
| } | |
| } | |
| /* Performance optimizations */ | |
| @media (prefers-reduced-motion: reduce) { | |
| .bg-image, | |
| .video-placeholder::before { | |
| animation: none; | |
| } | |
| } |