* { margin: 0; padding: 0; box-sizing: border-box; } body { background: #0a0a0a; color: #e0e0e0; font-family: "Courier New", monospace; min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 20px; } header { text-align: center; } h1 { font-size: 1.2rem; letter-spacing: 0.3em; text-transform: uppercase; color: #00ff88; } .subtitle { font-size: 0.75rem; color: #555; letter-spacing: 0.15em; margin-top: 4px; } .stream-container { position: relative; border: 1px solid #1a1a1a; box-shadow: 0 0 40px rgba(0, 255, 136, 0.05); transform: rotate(90deg) scale(1.5); } .stream-container::before { content: "● REC"; position: absolute; top: 12px; left: 12px; font-size: 0.65rem; color: #ff4444; letter-spacing: 0.1em; z-index: 10; animation: blink 0.2s infinite; } .flash-overlay { position: absolute; inset: 0; background: white; opacity: 0; pointer-events: none; transition: opacity 0.08s ease-in; } .flash-overlay.active { opacity: 0.6; } .flash-overlay.fade { opacity: 0; transition: opacity 0.2s ease-out; } @keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } } img#stream { display: block; max-height: 95vh; max-width: 100vw; } .gallery { display: flex; justify-content: center; flex: 1; margin-bottom: 5px; gap: 8px; } .gallery-empty { font-size: 0.7rem; color: #333; letter-spacing: 0.1em; } .gallery img { width: 200px; height: 300px; object-fit: cover; border: 1px solid #1a1a1a; opacity: 0.75; transition: opacity 0.2s; } .gallery img:hover { opacity: 1; } footer { display: flex; align-items: end; font-size: 0.7rem; color: #333; letter-spacing: 0.1em; width: 100%; } footer span { color: #00ff88; } .qrcode { display: inline-block; right: 16px; width: 200px; height: 200px; margin-bottom: 30px; }