*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:DM Sans,system-ui,sans-serif;background:#0a0a0c;color:#f0f0f5;overflow:hidden}html[data-theater-screen-focus="1"] body,html[data-theater-screen-focus="1"] .theater-root,html[data-theater-screen-focus="1"] .theater-root canvas{cursor:auto!important}.theater-root{position:fixed;top:0;right:0;bottom:0;left:0}.theater-root canvas{display:block;width:100%;height:100%}.hud{position:fixed;left:1rem;bottom:1rem;z-index:20;max-width:min(420px,calc(100vw - 2rem));pointer-events:none}.hud-panel{pointer-events:auto;padding:1rem 1.1rem;border-radius:12px;background:#0c0c12d1;border:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 12px 40px #00000073}.hud-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.code{font-family:ui-monospace,Cascadia Code,monospace;font-size:.95rem;letter-spacing:.04em;background:#ffffff0f;padding:.15rem .45rem;border-radius:6px}.dot{width:8px;height:8px;border-radius:50%;background:#555;margin-left:auto}.dot.on{background:#4caf50;box-shadow:0 0 8px #4caf5099}.hint{font-size:.82rem;line-height:1.45;color:#f0f0fab8;margin:0 0 .75rem}.hint kbd{font-family:inherit;font-size:.78rem;padding:.1rem .35rem;border-radius:4px;border:1px solid rgba(255,255,255,.15);background:#00000040}.screen-mode{font-size:.84rem;line-height:1.4;margin:0 0 .5rem;padding:.45rem .55rem;border-radius:8px;background:#5c6bc01f;border:1px solid rgba(92,107,192,.25);color:#f0f0fae0}.screen-mode.on{background:#81c7841f;border-color:#81c78459}.btn.small{width:100%;padding:.45rem .75rem;font-size:.82rem;margin-bottom:.65rem}.subtle.tight{margin-top:-.35rem;margin-bottom:.65rem;font-size:.8rem;line-height:1.4}.mono{font-family:ui-monospace,Cascadia Code,monospace;font-size:.85em}.proxy-toggle{display:flex;align-items:flex-start;gap:.5rem;font-size:.86rem;line-height:1.4;color:#f0f0fad9;margin:0 0 .65rem;cursor:pointer}.proxy-toggle input{margin-top:.2rem;cursor:pointer}.label-spaced{margin-top:.85rem}.cast-btn{width:100%;margin-bottom:.65rem}.proxy-warn{font-size:.8rem;line-height:1.45;color:#ffcc80;margin:0 0 .65rem;padding:.45rem .55rem;border-radius:8px;border:1px solid rgba(255,204,128,.35);background:#ff980014}.host-controls{margin-bottom:.75rem}.url-row{display:flex;gap:.5rem;margin-top:.35rem;flex-wrap:wrap}.url-row .input{flex:1;min-width:160px}.lobby{min-height:100%;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:radial-gradient(ellipse 80% 60% at 50% -20%,rgba(92,107,192,.35),transparent),radial-gradient(ellipse 60% 50% at 100% 100%,rgba(120,80,200,.12),transparent),#0a0a0c}.lobby-card{width:min(440px,100%);padding:2rem 1.75rem;border-radius:16px;background:#101016eb;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 80px #00000080}.title{margin:0 0 .35rem;font-size:1.85rem;font-weight:700;letter-spacing:-.02em}.tagline{margin:0 0 1.5rem;color:#f0f0fab3;font-size:.95rem;line-height:1.5}.label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:#f0f0fa8c;margin-bottom:.35rem}.input{width:100%;padding:.65rem .75rem;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#00000059;color:inherit;font:inherit;margin-bottom:1rem}.input:focus{outline:2px solid rgba(92,107,192,.55);outline-offset:1px}.input.mono{font-family:ui-monospace,monospace;letter-spacing:.06em}.lobby-actions{margin-bottom:.5rem}.divider{text-align:center;font-size:.8rem;color:#f0f0fa73;margin:1rem 0}.join-row{display:flex;gap:.5rem;align-items:stretch}.join-row .input{margin-bottom:0;flex:1}.btn{font:inherit;cursor:pointer;border-radius:8px;border:1px solid transparent;padding:.6rem 1rem;font-weight:600;transition:background .15s,border-color .15s,opacity .15s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{width:100%;background:linear-gradient(135deg,#5c6bc0,#7e57c2);color:#fff}.btn.primary:hover:not(:disabled){filter:brightness(1.06)}.btn.secondary{background:#ffffff14;color:#fff;border-color:#ffffff1f;white-space:nowrap}.btn.secondary:hover:not(:disabled){background:#ffffff1f}.btn.ghost{width:100%;margin-top:.5rem;background:transparent;color:#f0f0fabf;border-color:#ffffff1f}.btn.ghost:hover{background:#ffffff0f}.subtle{font-size:.85rem;color:#f0f0fa8c;margin:0 0 .5rem}.error{color:#ff8a80;font-size:.9rem;margin:.75rem 0 0}
