:root { --bg-color: #0f172a; --text-primary: #f8fafc; --text-secondary: #94a3b8; --accent-color: #3b82f6; --accent-glow: rgba(59, 130, 246, 0.5); --glass-bg: rgba(30, 41, 59, 0.7); --glass-border: rgba(255, 255, 255, 0.1); --success-color: #10b981; --error-color: #ef4444; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: "Inter", sans-serif; background-color: var(--bg-color); color: var(--text-primary); min-height: 100vh; display: flex; justify-content: center; align-items: center; background: radial-gradient(circle at top, #1e293b 0%, var(--bg-color) 100%); } .container { padding: 3rem; border-radius: 24px; width: 90%; max-width: 800px; text-align: center; box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5); } .glass { background: var(--glass-bg); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid var(--glass-border); } h1 { font-weight: 800; font-size: 2.5rem; margin-bottom: 0.5rem; background: linear-gradient(to right, #fff, var(--text-secondary)); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; } p { color: var(--text-secondary); margin-bottom: 2rem; font-size: 1.1rem; } .btn { border: none; padding: 1rem 2.5rem; font-size: 1.2rem; font-weight: 600; border-radius: 9999px; cursor: pointer; transition: all 0.3s ease; font-family: inherit; } .primary-btn { background-color: var(--accent-color); color: white; box-shadow: 0 0 20px var(--accent-glow); } .primary-btn:hover { transform: translateY(-2px); box-shadow: 0 0 30px var(--accent-glow); background-color: #2563eb; } .primary-btn:active { transform: translateY(1px); } .status-indicator { display: flex; align-items: center; justify-content: center; gap: 0.5rem; margin: 1.5rem 0; font-size: 0.9rem; color: var(--text-secondary); } .dot { width: 10px; height: 10px; border-radius: 50%; background-color: var(--text-secondary); display: inline-block; transition: background-color 0.3s ease; } .dot.active { background-color: var(--success-color); box-shadow: 0 0 10px var(--success-color); } .dot.pulse { background-color: var(--accent-color); animation: pulse-animation 1.5s infinite; } @keyframes pulse-animation { 0% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(59, 130, 246, 0); } 100% { box-shadow: 0 0 0 0 rgba(59, 130, 246, 0); } } video { width: 100%; border-radius: 12px; background: #000; border: 1px solid var(--glass-border); margin-bottom: 1.5rem; display: none; } video.active { display: block; animation: fadeIn 0.5s ease forwards; } @keyframes fadeIn { from { opacity: 0; transform: scale(0.98); } to { opacity: 1; transform: scale(1); } } .info-section { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--glass-border); } .accent-link { color: var(--accent-color); text-decoration: none; font-weight: 600; } .accent-link:hover { text-decoration: underline; } .viewer-container { width: 100vw; height: 100vh; display: flex; justify-content: center; align-items: center; background: #000; position: relative; overflow: hidden; } .video-wrapper { width: 100%; height: 100%; display: none; } .video-wrapper.active { display: block; animation: fadeIn 0.5s ease forwards; } /* Custom Video.js Overrides for Premium Glass Look */ .video-js { width: 100% !important; height: 100% !important; background-color: transparent !important; } .video-js .vjs-tech { object-fit: contain; } .vjs-theme-city .vjs-control-bar { background: rgba(15, 23, 42, 0.85) !important; backdrop-filter: blur(8px) !important; border-top: 1px solid rgba(255, 255, 255, 0.1) !important; height: 50px !important; padding: 0 10px !important; } .vjs-theme-city .vjs-play-progress, .vjs-theme-city .vjs-volume-level { background: var(--accent-color) !important; } .vjs-theme-city .vjs-big-play-button { background: rgba(15, 23, 42, 0.85) !important; backdrop-filter: blur(8px) !important; border: 1px solid rgba(255, 255, 255, 0.1) !important; border-radius: 50% !important; width: 80px !important; height: 80px !important; line-height: 80px !important; transition: all 0.3s ease !important; } .vjs-theme-city .vjs-big-play-button:hover { background: var(--accent-color) !important; transform: scale(1.1) !important; } .overlay { position: absolute; padding: 2rem 4rem; border-radius: 20px; text-align: center; z-index: 10; transition: opacity 0.5s ease; } .overlay.hidden { opacity: 0; pointer-events: none; }