*,*: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);cursor:pointer}.interaction-toolbar{position:fixed;bottom:4.5rem;left:1.5rem;display:flex;gap:.75rem;z-index:20}.toolbar-btn{min-width:unset;width:4.5rem;height:4.5rem;border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;border:1px solid rgba(255,255,255,.22);background:#ffffff21;color:#ffffffe0;font-size:.6rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;touch-action:manipulation;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .15s,border-color .15s,color .15s;position:relative}.toolbar-btn:hover{background:#ffffff38}.toolbar-btn.btn-disabled{opacity:.35;color:#fff6;border:1.5px dashed rgba(255,255,255,.25);background:#ffffff0a;cursor:pointer}.toolbar-btn.btn-disabled:hover{background:#ffffff12}.toolbar-btn--active{background:#22c55e2e;border-color:#22c55ea6;color:#4ade80}.toolbar-btn--active:before,.toolbar-btn--active:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:17px;border:1.5px solid rgba(34,197,94,.5);animation:mic-ring 1.8s ease-out infinite;pointer-events:none}.toolbar-btn--active:after{animation-delay:.9s}@keyframes mic-ring{0%{transform:scale(1);opacity:.75}to{transform:scale(1.65);opacity:0}}.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;padding:1rem}#onboarding-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#onboarding-box{position:relative;background:#0d0d0d;border:1px solid #1e1e1e;border-radius:20px;max-width:820px;width:100%;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 32px 80px #000c,0 0 0 1px #ffffff0a}#onboarding-hero{position:relative;width:100%;height:260px;flex-shrink:0}#onboarding-hero img{width:100%;height:100%;object-fit:cover;object-position:center 35%;display:block}#onboarding-hero-gradient{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,#0000001a,#0d0d0d),linear-gradient(to top,#0000 60%,#00000059);pointer-events:none}#onboarding-hero-text{position:absolute;bottom:1.75rem;left:2.25rem;right:2.25rem;z-index:1;display:flex;flex-direction:column;gap:.4rem}#onboarding-hero-text h2{font-size:1.85rem;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.6);margin:0}#onboarding-subtitle{color:#fff9;font-size:.95rem;margin:0;text-shadow:0 1px 6px rgba(0,0,0,.5)}#onboarding-content{padding:1.75rem 2.25rem 2.25rem;display:flex;flex-direction:column;gap:1.5rem}#onboarding-steps{list-style:none;display:flex;flex-direction:column;gap:1.1rem;padding:0;margin:0}#onboarding-steps li{display:flex;gap:1rem;align-items:flex-start}.step-num{flex-shrink:0;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--accent);color:#000;font-weight:700;font-size:.85rem;display:flex;align-items:center;justify-content:center;margin-top:.15rem;box-shadow:0 0 12px #4a9eff66}.step-body{display:flex;flex-direction:column;gap:.15rem}.step-body strong{font-size:.95rem;color:var(--text);font-weight:600}.step-body span{font-size:.875rem;color:#666;line-height:1.45}.step-body code{background:#1a1a1a;padding:.1em .4em;border-radius:4px;font-size:.85em;color:var(--accent);border:1px solid #2a2a2a}#onboarding-cta{align-self:stretch;font-size:1rem;font-weight:600;background:var(--accent);border-radius:10px;letter-spacing:.01em;box-shadow:0 4px 20px #4a9eff4d;transition:opacity .15s,box-shadow .15s}#onboarding-cta:hover{opacity:1;box-shadow:0 6px 28px #4a9eff80}
