:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:#eee;background:#111;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body,html,#root{min-height:100vh;margin:0;padding:0}main.homepage{text-align:center;max-width:32rem;margin:0 auto;padding:4rem 1.5rem}main.homepage h1{color:#6aa84f;margin:0 0 1rem;font-size:4rem;font-weight:100}main.homepage form{gap:.5rem;margin:1.5rem auto;display:flex}main.homepage input{color:#eee;background:#222;border:1px solid #444;border-radius:.25rem;flex:1;padding:.5rem .75rem}main.homepage button{color:#fff;cursor:pointer;background:#6aa84f;border:none;border-radius:.25rem;padding:.5rem 1rem}main.room{max-width:64rem;margin:0 auto;padding:1rem 1.5rem}.room-header{justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem;display:flex}.room-header h1{color:#6aa84f;margin:0;font-size:1.5rem;font-weight:300}.room-key{color:#eee;font-family:ui-monospace,Consolas,monospace}.status{background:#333;border-radius:.25rem;padding:.15rem .5rem;font-size:.85rem}.status-open{color:#b5e0b5;background:#2a4d2a}.status-closed{color:#e0b5b5;background:#4d2a2a}.room-grid{grid-template-columns:2fr 1fr;gap:1rem;display:grid}@media (width<=800px){main.room{padding:.75rem}.room-grid{grid-template-columns:1fr}.sidebar{min-width:0}.room-header h1{font-size:1.1rem}.shader-renderer{aspect-ratio:4/3}.shader-editor{max-height:16rem}}.sidebar{flex-direction:column;gap:1rem;min-width:16rem;display:flex}.stage{flex-direction:column;gap:.75rem;display:flex}.stage-controls{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.stage-controls .primary{color:#fff;cursor:pointer;background:#6aa84f;border:none;border-radius:.25rem;padding:.4rem .9rem}.stage-controls .error{color:#f48484;font-size:.85rem}.shader-picker select{color:#eee;background:#222;border:1px solid #444;border-radius:.25rem;padding:.3rem .5rem}.shader-renderer{aspect-ratio:16/9;background:#000;border-radius:.5rem;width:100%;position:relative;overflow:hidden}.shader-editor{border:1px solid #2a2a2a;border-radius:.5rem;max-height:24rem;overflow:hidden}.shader-editor .cm-editor{height:100%;max-height:24rem;font-size:.85rem}.shader-author{color:#aaa;margin-left:auto;font-size:.85rem}.editor-target{color:#888;align-items:center;gap:.25rem;font-size:.85rem;display:inline-flex}.editor-target button{color:#ccc;cursor:pointer;background:#222;border:1px solid #444;border-radius:.25rem;padding:.25rem .6rem;font-size:.85rem}.editor-target button.active{color:#fff;background:#6aa84f;border-color:#6aa84f}.editor-target button.reset{color:#aaa;background:0 0;border:1px solid #555;margin-left:.5rem}.shader-prompt{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.shader-prompt input{color:#eee;background:#222;border:1px solid #444;border-radius:.25rem;flex:1;min-width:16rem;padding:.5rem .75rem}.shader-prompt button{color:#fff;cursor:pointer;background:#aa3bff;border:none;border-radius:.25rem;padding:.5rem 1rem}.shader-prompt button:disabled{cursor:not-allowed;background:#4a2a5a}.shader-prompt .error{color:#f48484;font-size:.85rem}.shader-prompt .usage{color:#888;font-family:ui-monospace,monospace;font-size:.75rem}.shader-prompt.disabled{background:#1a1a1a;border:1px dashed #333;border-radius:.25rem;padding:.5rem .75rem}.muted{color:#888}.shader-canvas{width:100%;height:100%;display:block}.hidden-videos{pointer-events:none;width:1px;height:1px;position:absolute;top:-9999px;left:-9999px;overflow:hidden}.shader-error{color:#faa;white-space:pre-wrap;background:#280000d9;border-radius:.25rem;max-height:8rem;margin:0;padding:.5rem .75rem;font-size:.8rem;position:absolute;bottom:.5rem;left:.5rem;right:.5rem;overflow:auto}.video-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));align-content:start;gap:.75rem;min-height:24rem;display:grid}.video-grid.empty{text-align:center;color:#888;display:block}.video-tile{aspect-ratio:4/3;background:#000;border:2px solid #444;border-radius:.5rem;position:relative;overflow:hidden}.video-tile video{object-fit:cover;width:100%;height:100%;display:block}.video-placeholder{color:#777;text-align:center;justify-content:center;align-items:center;padding:1rem;font-size:.95rem;display:flex;position:absolute;inset:0}.video-placeholder button{color:#fff;cursor:pointer;background:#6aa84f;border:none;border-radius:.25rem;padding:.5rem 1rem}.video-placeholder .error{color:#f48484;font-size:.8rem}.video-placeholder .muted{color:#555}.video-name{color:#fff;mix-blend-mode:difference;border-radius:.25rem;padding:.15rem .5rem;font-size:.8rem;font-weight:600;position:absolute;bottom:.5rem;left:.5rem}.header-status{gap:.5rem;display:flex}.status.calls-online{color:#b5e0b5;background:#2a4d2a}.status.calls-probing,.status.calls-fallback_local_only{color:#ccc;background:#3a3a3a}.panel{background:#1a1a1a;border:1px solid #2a2a2a;border-radius:.5rem;padding:1rem}.panel h2{color:#aaa;text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;font-size:.95rem;font-weight:500}.identity{grid-area:identity}.identity label{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.identity label span{color:#888;width:4rem;font-size:.85rem}.identity input[type=text],.identity input:not([type]){color:#eee;background:#222;border:1px solid #444;border-radius:.25rem;flex:1;padding:.4rem .5rem}.identity input[type=color]{background:0 0;border:1px solid #444;border-radius:.25rem;width:2.5rem;height:1.75rem;padding:0}.roster{grid-area:roster}.roster ul{margin:0;padding:0;list-style:none}.roster li{align-items:center;gap:.5rem;padding:.25rem 0;display:flex}.roster .dot{border-radius:50%;width:.75rem;height:.75rem;display:inline-block}.chat{flex-direction:column;grid-area:chat;min-height:24rem;display:flex}.chat ul{flex:1;max-height:28rem;margin:0 0 .75rem;padding:0;list-style:none;overflow-y:auto}.chat li{padding:.15rem 0;font-size:.95rem}.chat-name{margin-right:.5rem;font-weight:600}.chat form{gap:.5rem;display:flex}.chat input{color:#eee;background:#222;border:1px solid #444;border-radius:.25rem;flex:1;padding:.5rem .75rem}.chat button{color:#fff;cursor:pointer;background:#6aa84f;border:none;border-radius:.25rem;padding:.5rem 1rem}.chat button:disabled{cursor:not-allowed;background:#3a4a35}
