*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--accent: #4a9eff;--bg: #000;--text: #fff;--muted: #888;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif}html,body{height:100%;background:var(--bg);color:var(--text);font-family:var(--font);font-size:18px}#app{min-height:100%;display:flex;flex-direction:column}.page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:2rem;gap:1.5rem}h1{font-size:2.5rem;font-weight:600;letter-spacing:-.02em}h2{font-size:2rem;font-weight:500}button{min-height:48px;padding:.75rem 2rem;font-size:1.25rem;font-family:var(--font);font-weight:500;background:var(--accent);color:var(--bg);border:none;border-radius:8px;cursor:pointer;transition:opacity .15s;min-width:200px}button:hover{opacity:.85}button:disabled{opacity:.4;cursor:not-allowed}button.secondary{background:transparent;color:var(--text);border:2px solid var(--muted)}input[type=text]{min-height:48px;padding:.75rem 1rem;font-size:2rem;font-family:var(--font);background:#111;color:var(--text);border:2px solid #333;border-radius:8px;width:100%;max-width:400px;text-align:center;letter-spacing:.1em;text-transform:uppercase}input[type=text]:focus{outline:none;border-color:var(--accent)}.code{font-size:3rem;font-weight:700;letter-spacing:.1em;color:var(--accent);background:#111;padding:1rem 2rem;border-radius:12px;border:2px solid var(--accent);text-align:center}.status{font-size:1.25rem;color:var(--muted);text-align:center}.status.connected{color:#4caf50}.status.error{color:#f44336}.error-msg{color:#f44336;font-size:1rem;text-align:center}.badge{position:fixed;bottom:1rem;right:1rem;background:#000000bf;color:var(--muted);font-size:.85rem;padding:.4rem .8rem;border-radius:20px;border:1px solid #333;pointer-events:none}.badge.reconnecting{color:#ff9800;border-color:#ff9800}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#000000bf;font-size:1.5rem;color:var(--text);flex-direction:column;gap:1rem}.overlay a{color:var(--accent);font-size:1rem}.viewer-img{display:block;width:100vw;height:100vh;object-fit:contain;background:var(--bg)}.hidden{display:none!important}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}#join-form{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:400px}#share-link{margin-top:1rem;font-size:1rem;color:var(--muted)}#share-link:hover{color:var(--accent)}#onboarding-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center}#onboarding-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}#onboarding-box{position:relative;background:#111;border:1px solid #222;border-radius:16px;padding:2.5rem;max-width:780px;width:calc(100% - 2rem);display:flex;flex-direction:column;gap:1.5rem}#onboarding-box h2{font-size:1.75rem;font-weight:700;margin:0}#onboarding-subtitle{color:var(--muted);font-size:1rem;margin:-.5rem 0 0}#onboarding-steps{list-style:none;display:flex;flex-direction:column;gap:1.25rem;padding:0;margin:0}#onboarding-steps li{display:flex;gap:1rem;align-items:flex-start}.step-num{flex-shrink:0;width:2rem;height:2rem;border-radius:50%;background:var(--accent);color:#000;font-weight:700;font-size:1rem;display:flex;align-items:center;justify-content:center}.step-body{display:flex;flex-direction:column;gap:.2rem;padding-top:.2rem}.step-body strong{font-size:1rem;color:var(--text)}.step-body span{font-size:.9rem;color:var(--muted);line-height:1.4}.step-body code{background:#222;padding:.1em .4em;border-radius:4px;font-size:.85em;color:var(--accent)}#onboarding-cta{align-self:stretch;font-size:1.1rem}
