*{margin:0;padding:0;box-sizing:border-box}#app{width:100vw;height:100vh;background:#000;font-family:SF Mono,Monaco,Inconsolata,Fira Code,Droid Sans Mono,Source Code Pro,monospace;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{width:100%;height:100%;display:flex;flex-direction:column;position:relative}.header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;position:absolute;top:0;left:0;right:0;z-index:10}.user-info{display:flex;align-items:center;gap:1rem;font-size:.875rem;color:#888}.user-name{color:#fff}.logout-button{display:flex;align-items:center;justify-content:center;padding:.5rem;background:transparent;border:1px solid #333;color:#666;cursor:pointer;transition:all .2s ease}.logout-button:hover{border-color:red;color:red}.logout-button:active{border-color:#fff;color:#fff}.logout-button svg{width:16px;height:16px}.qr-section{display:grid;grid-template-columns:auto 1fr;gap:clamp(2rem,5vw,5rem);align-items:center;max-width:90vw;max-height:90vh;padding:2rem;scale:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.qr-wrapper{display:flex;justify-content:center;align-items:center;margin-bottom:2rem;position:relative}.qr-waves .wave{border-color:#0f0}.qr-code{position:relative;z-index:2;background:#fff;padding:1.5rem;border:4px solid #fff;box-shadow:0 0 40px #0000004d}.refresh-button{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:clamp(.5rem,1vw,.75rem) clamp(1rem,2vw,1.5rem);background:transparent;border:1px solid #333;color:#666;font-family:SF Mono,Monaco,Inconsolata,Fira Code,Droid Sans Mono,Source Code Pro,monospace;font-size:clamp(.625rem,1.2vw,.875rem);font-weight:400;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.refresh-button:hover{border-color:#666;color:#fff}.refresh-button:active{border-color:#fff;color:#fff}.refresh-button svg{width:clamp(14px,2vw,20px);height:clamp(14px,2vw,20px)}.qr-info{display:flex;flex-direction:column;gap:2rem}.room-id{font-size:clamp(2rem,5vw,4rem);font-weight:400;letter-spacing:.2em;color:#fff;font-variant-numeric:tabular-nums;border-left:4px solid #ff0000;padding-left:1rem}.instruction{font-size:clamp(1rem,2vw,1.5rem);line-height:1.8;color:#888;max-width:500px;font-weight:300}.instruction-title{font-size:clamp(.875rem,1.5vw,1.125rem);text-transform:uppercase;letter-spacing:.15em;color:#666;margin-bottom:1rem;font-weight:500}.instruction-steps{display:flex;flex-direction:column;gap:.75rem}.instruction-step{display:grid;grid-template-columns:2rem 1fr;gap:1rem;align-items:start}.step-number{width:clamp(2rem,4vw,3rem);height:clamp(2rem,4vw,3rem);border:1px solid #333;display:flex;align-items:center;justify-content:center;font-size:clamp(1rem,1.5vw,1.25rem);color:#666}.video-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#000}.remote-video{height:100vh;object-fit:cover;object-position:center;background:#000;display:block;position:fixed;top:0;left:50%;transform:translate(-50%)}.status{position:fixed;top:2rem;right:2rem;padding:.5rem 1.25rem;font-size:.75rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;z-index:20;border:1px solid;background:#000}.status.connecting{border-color:#ff0;color:#ff0}.status.connected{border-color:#0f0;color:#0f0}.status.disconnected{border-color:red;color:red}.loading{display:flex;flex-direction:column;align-items:center;gap:2rem;font-size:.875rem;color:#666;letter-spacing:.1em;text-transform:uppercase;animation:pulse 2s ease-in-out infinite}.loading-logo{width:clamp(100px,15vw,180px);height:clamp(100px,15vw,180px);object-fit:contain;animation:none}.waiting-device{display:flex;flex-direction:column;align-items:center;gap:2rem}.waiting-spinner{width:80px;height:80px;border:2px solid #333;border-top:2px solid #fff;border-radius:50%;animation:spin 1s linear infinite}.waiting-text{font-size:clamp(1.5rem,3vw,2.5rem);font-weight:400;letter-spacing:.2em;color:#fff;text-transform:uppercase;font-family:SF Mono,Monaco,Inconsolata,Fira Code,Droid Sans Mono,Source Code Pro,monospace}.waiting-subtext{font-size:clamp(.875rem,1.5vw,1.125rem);color:#666;letter-spacing:.1em;text-transform:uppercase;font-family:SF Mono,Monaco,Inconsolata,Fira Code,Droid Sans Mono,Source Code Pro,monospace}.cancel-button{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:clamp(.875rem,1.5vw,1.125rem) clamp(1.5rem,3vw,2rem);margin-top:1rem;background:transparent;border:1px solid #ff0000;color:red;font-family:SF Mono,Monaco,Inconsolata,Fira Code,Droid Sans Mono,Source Code Pro,monospace;font-size:clamp(.875rem,1.5vw,1.125rem);font-weight:400;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .2s ease}.cancel-button:hover{background:red;color:#000}.cancel-button:active{background:#fff;color:#000;border-color:#fff}.cancel-button svg{width:clamp(16px,2vw,20px);height:clamp(16px,2vw,20px)}.connection-mode-badge{position:fixed;top:2rem;right:2rem;display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#000000d9;border:1px solid #333;border-radius:0;font-family:SF Mono,Monaco,monospace;font-size:.875rem;letter-spacing:.05em;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.connection-mode-badge.local{border-color:#0f0}.connection-mode-badge.remote{border-color:#888}.connection-mode-badge .mode-icon{font-size:1.25rem;line-height:1}.connection-mode-badge .mode-text{color:#fff;font-weight:500;text-transform:uppercase}.connection-mode-badge.local .mode-text{color:#0f0}.connection-mode-badge.remote .mode-text{color:#888}.settings-button{position:fixed;bottom:2rem;right:2rem;width:60px;height:60px;background:#000c;border:1px solid #333;border-radius:50%;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:20;transition:all .3s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.settings-button:hover{background:#ffffff1a;border-color:#fff;transform:rotate(90deg)}.settings-button:active{transform:rotate(90deg) scale(.95)}.settings-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:fadeIn .2s ease}.settings-modal{background:#000;border:1px solid #333;padding:2rem;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;animation:slideUp .3s ease}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #333}.settings-header h3{font-size:1.5rem;font-weight:400;letter-spacing:.05em;color:#fff;margin:0}.close-button{background:transparent;border:1px solid #333;color:#666;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.close-button:hover{border-color:#fff;color:#fff}.settings-section{margin-bottom:2rem}.settings-label{display:block;font-size:.875rem;text-transform:uppercase;letter-spacing:.1em;color:#666;margin-bottom:1rem}.settings-options{display:flex;flex-direction:column;gap:.75rem}.setting-option{display:flex;gap:1rem;padding:1rem;background:transparent;border:1px solid #333;color:#888;cursor:pointer;transition:all .2s ease;text-align:left;align-items:center}.setting-option:hover{border-color:#666;background:#ffffff05}.setting-option.active{border-color:red;background:#ff00001a;color:#fff}.option-icon{font-size:2rem;flex-shrink:0}.option-text{flex:1}.option-title{font-size:1rem;font-weight:500;margin-bottom:.25rem;color:inherit}.option-desc{font-size:.75rem;color:#666;line-height:1.4}.setting-option.active .option-desc{color:#f99}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.logged-in-view{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:900px;animation:fadeIn .8s ease-out;padding:1.5rem}.welcome-header{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:2.5rem}.user-badge{background:#111;color:#fff;padding:.5rem 1rem;font-family:SF Mono,Monaco,monospace;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;border:1px solid #222}.status-pulse{display:flex;align-items:center;gap:.8rem}.pulse-circle{width:12px;height:12px;background:#0f0;border-radius:50%;box-shadow:0 0 15px #0f06;animation:statusPulse 2.5s infinite ease-in-out}.status-text{font-family:SF Mono,Monaco,monospace;font-weight:700;font-size:1rem;letter-spacing:.2em;color:#0f0}.receiver-hero{background:#000;border-top:1px solid #1a1a1a;border-bottom:1px solid #1a1a1a;padding:2.5rem 1.5rem;margin-bottom:3rem;text-align:center;width:100vw;max-width:none;margin-left:calc(-50vw + 50%);margin-right:calc(-50vw + 50%);position:relative;overflow:hidden}.signal-waves{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;pointer-events:none;z-index:0}.wave{position:absolute;top:50%;left:50%;width:200px;height:200px;margin-top:-100px;margin-left:-100px;border:1px solid #00FF00;border-radius:50%;opacity:0;animation:signalWave 4s infinite linear}.wave:nth-child(2){animation-delay:1.3s}.wave:nth-child(3){animation-delay:2.6s}@keyframes signalWave{0%{transform:scale(.5);opacity:0}20%{opacity:.15}to{transform:scale(6);opacity:0}}.hero-label{position:relative;z-index:1;font-family:SF Mono,Monaco,monospace;font-size:.75rem;color:#444;letter-spacing:.35em;margin-bottom:1.2rem}.receiver-display-id{position:relative;z-index:1;font-family:SF Mono,Monaco,monospace;font-size:clamp(3rem,10vw,7rem);font-weight:800;color:#fff;letter-spacing:.05em;text-transform:lowercase;line-height:.9}.instruction-banner{display:flex;align-items:center;justify-content:center;background:#0a0a0a;border:1px solid #111;padding:1.5rem;gap:3rem;width:100%;max-width:800px}.banner-item{display:flex;align-items:center;gap:1.5rem}.banner-icon{font-size:2rem}.banner-text{display:flex;flex-direction:column;gap:.3rem;text-align:left}.banner-text strong{font-family:SF Mono,Monaco,monospace;font-size:1rem;color:#fff;letter-spacing:.08em}.banner-text span{font-size:.85rem;color:#444}.banner-divider{width:1px;height:50px;background:#1a1a1a}.view-logout-button{margin-top:3rem;background:transparent;border:1px solid #222;color:#444;padding:.8rem 1.5rem;font-family:SF Mono,Monaco,monospace;font-size:.8rem;letter-spacing:.2em;cursor:pointer;transition:all .2s ease;text-transform:uppercase}.view-logout-button:hover{border-color:#666;color:#fff;background:#ffffff0d}.view-logout-button:active{transform:scale(.98)}@media (max-width: 768px){.receiver-display-id{font-size:3.5rem}.receiver-hero{padding:3rem 1rem}.instruction-banner{flex-direction:column;gap:2rem;padding:1.5rem}.banner-divider{width:60%;height:1px}.banner-text{text-align:center}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.footer{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:5}.made-by{font-size:.75rem;color:#666;text-decoration:none;letter-spacing:.05em;transition:color .2s ease}.made-by:hover{color:#fff}@media (max-width: 768px){.qr-section{grid-template-columns:1fr;gap:2rem;justify-items:center;text-align:center}.qr-wrapper{align-items:center}.refresh-button{width:100%;max-width:380px}.room-id{border-left:none;border-top:4px solid #ff0000;padding-left:0;padding-top:1rem}.connection-mode-badge{top:1rem;right:1rem;padding:.5rem .875rem;font-size:.75rem;gap:.375rem}.connection-mode-badge .mode-icon{font-size:1rem}.settings-button{width:50px;height:50px;bottom:1.5rem;right:1.5rem}.settings-button svg{width:20px;height:20px}.settings-modal{width:95%;padding:1.5rem;max-height:90vh}.settings-header h3{font-size:1.25rem}.option-icon{font-size:1.5rem}.option-title{font-size:.875rem}.option-desc{font-size:.7rem}}
