:root{--bg:#000;--ink:#f3ede4;--muted:#8f877d;--line:#f3ede41f;--panel:#12100e;--panel-2:#1b1815;--accent:#ff5a36;--accent-ink:#1a0802;--display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--ease:cubic-bezier(.2, .8, .2, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--display);-webkit-font-smoothing:antialiased;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed}input{font:inherit;color:inherit}svg{display:block}.eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0;font-size:11px}.field-label{color:var(--muted);margin-bottom:8px;font-size:13px;display:block}.field-label strong{color:var(--ink);font-weight:600}.hint{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.5}.form-error{color:#ff8a70;margin:12px 0 0;font-size:13px}.link{color:var(--ink);text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:13px;text-decoration:underline}.link:hover{color:var(--accent)}input:not([type]),input[type=email],input[type=text],input[type=password],textarea,.hex-input{border:1px solid var(--line);background:#ffffff0a;border-radius:10px;outline:none;width:100%;padding:12px 14px;transition:border-color .2s,background .2s}textarea{font:inherit;color:inherit;resize:vertical;min-height:72px}input:focus,textarea:focus{border-color:var(--accent);background:#ff5a360f}.btn{transition:transform .15s var(--ease), background .2s, border-color .2s, opacity .2s;white-space:nowrap;border:1px solid #0000;border-radius:10px;padding:12px 20px;font-weight:600}.btn:active:not(:disabled){transform:translateY(1px)scale(.98)}.btn:disabled{opacity:.4}.btn-accent{background:var(--accent);color:var(--accent-ink)}.btn-accent:hover:not(:disabled){background:#ff7352}.btn-ghost{border-color:var(--line);background:0 0}.btn-ghost:hover:not(:disabled){border-color:var(--ink)}.btn-quiet{color:var(--muted);background:0 0}.btn-quiet:hover{color:var(--ink)}.btn-sm{border-radius:8px;padding:7px 12px;font-size:13px}.btn-block{width:100%}.icon-btn{border:1px solid var(--line);background:0 0;border-radius:10px;place-items:center;width:36px;height:36px;transition:border-color .2s,background .2s;display:grid}.icon-btn:hover{border-color:var(--ink)}.icon-btn svg,.viewer-close svg{stroke:currentColor;stroke-width:2px;fill:none;stroke-linecap:round;width:18px;height:18px}.icon-sm{border:0;width:28px;height:28px}.icon-sm svg{width:14px;height:14px}.login,.boot{background:radial-gradient(60vmax 40vmax at 80% 110%,#ff5a362e,#0000 60%),radial-gradient(40vmax 30vmax at 0 0,#f3ede40d,#0000 60%),#070605;place-items:center;min-height:100%;padding:32px;display:grid;position:relative;overflow:hidden}.login:after{content:"";pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");position:fixed;inset:0}.login-mosaic{opacity:.9;grid-template-columns:1fr 1fr;gap:2.4vmin;width:68vmin;height:68vmin;display:grid;position:absolute;top:50%;right:-6vmin;transform:translateY(-50%)rotate(-8deg)}.login-mosaic span{border:1px solid var(--line);animation:seat 5s var(--ease) infinite;background:linear-gradient(160deg,#f3ede40f,#f3ede403);border-radius:3vmin}.login-mosaic span:first-child{animation-delay:0s}.login-mosaic span:nth-child(2){animation-delay:1.2s}.login-mosaic span:nth-child(3){animation-delay:2.4s}.login-mosaic span:nth-child(4){animation-delay:3.6s}@keyframes seat{0%,70%,to{border-color:var(--line);background-color:#0000}15%{border-color:var(--accent);background-color:#ff5a3638}}.boot-mosaic{gap:6px;width:72px;height:72px;position:static;transform:none}.boot-mosaic span{border-radius:6px;animation-duration:1.6s}.boot-mosaic span:nth-child(n){animation-delay:calc(var(--i,0) * .2s)}.boot-mosaic span:nth-child(2){--i:1}.boot-mosaic span:nth-child(4){--i:2}.boot-mosaic span:nth-child(3){--i:3}.login-card{z-index:1;width:min(520px,100%);animation:rise .9s var(--ease) both;justify-self:start;margin-left:max(0px,6vw);position:relative}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.wordmark{letter-spacing:-.06em;margin:18px 0 24px -.04em;font-size:clamp(72px,13vw,168px);font-weight:800;line-height:.85}.wordmark span{color:var(--accent)}.login-lede{color:#cfc6ba;max-width:42ch;margin:0 0 40px;font-size:18px;line-height:1.5}.login-row{gap:10px;display:flex}.login-row input{flex:1;min-width:0}.code-input{font-family:var(--mono);letter-spacing:.5em;text-align:center;font-size:22px!important}.login-meta{font-family:var(--mono);color:var(--muted);justify-content:space-between;gap:12px;margin-top:12px;font-size:12px;display:flex}.login-meta .warn{color:var(--accent)}.login-tabs{border:1px solid var(--line);border-radius:12px;gap:4px;margin:0 0 22px;padding:4px;display:inline-flex}.login-tabs button{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:8px 18px;font-size:14px;font-weight:600;transition:background .2s,color .2s}.login-tabs button:hover{color:var(--ink)}.login-tabs button.active{background:var(--ink);color:#000}.register-form{gap:0;display:grid}.register-form .field-label{margin-top:14px}.register-form .btn-block{margin-top:18px}.register-intro{margin:0 0 4px;font-size:13px}.optional{color:var(--muted);opacity:.7}.request-sent{border:1px solid var(--line);background:#ff5a360d;border-radius:14px;justify-items:start;gap:12px;padding:20px;display:grid}.request-sent .hint{margin:0;font-size:14px}.request-sent strong{color:var(--ink)}.request-title{margin:0;font-size:20px;font-weight:700}.stage{background:#000;position:fixed;inset:0;overflow:hidden}.screen{object-fit:contain;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .5s var(--ease);background:#000;position:absolute;inset:0}.mode-viewer .screen{opacity:1}.mode-viewer.controls-hidden{cursor:none}.stage:fullscreen .room-chip{display:none}.room-chip{z-index:5;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);align-items:center;gap:10px;font-size:11px;transition:opacity .4s;display:flex;position:absolute;top:18px;left:18px}.room-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2.4s infinite pulse;box-shadow:0 0 0 4px #ff5a362e}@keyframes pulse{50%{box-shadow:0 0 0 8px #ff5a3600}}.room-count{color:var(--ink)}.mode-viewer .room-chip{opacity:0}.tiles{z-index:2;transition:transform .45s var(--ease);display:grid;position:absolute}.tiles-grid{--side:min(100vh, 100vw);width:var(--side);height:var(--side);animation:grid-in .5s var(--ease);grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:6px;padding:6px;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes grid-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.94)}}.tiles-strip{animation:strip-in .5s var(--ease);grid-template-rows:clamp(64px,11vh,112px);grid-auto-columns:clamp(64px,11vh,112px);grid-auto-flow:column;gap:10px;bottom:18px;left:50%;transform:translate(-50%)}@keyframes strip-in{0%{opacity:0;transform:translate(-50%,40px)}}.mode-viewer:not(.controls-hidden) .tiles-strip{transform:translate(-50%,-76px)}.tile{aspect-ratio:1;border:1px solid var(--line);background:#0d0c0b;border-radius:14px;margin:0;position:relative;overflow:hidden}.tiles-strip .tile{border:2px solid var(--c,var(--line));border-radius:12px;box-shadow:0 10px 30px #0009}.tile video{object-fit:cover;width:100%;height:100%;display:block}.tile video.mirror{transform:scaleX(-1)}.tile-off video{opacity:0;position:absolute}.tile-placeholder{background:radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--c) 22%, transparent), transparent 70%), #0d0c0b;place-items:center;display:grid;position:absolute;inset:0}.tile-placeholder img{aspect-ratio:1;object-fit:cover;border:3px solid var(--c);border-radius:22%;width:34%}.tile-placeholder span{color:var(--c);font-size:clamp(28px,8vmin,72px);font-weight:800}.tile-label{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0000008c;border-radius:8px;align-items:center;gap:8px;max-width:calc(100% - 20px);padding:6px 10px;font-size:13px;font-weight:600;display:flex;position:absolute;bottom:10px;left:10px}.tile-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.host-dot{background:var(--accent);border-radius:2px;flex:none;width:7px;height:7px}.mic-off{stroke:#ff8a70;stroke-width:2px;fill:none;stroke-linecap:round;flex:none;width:14px;height:14px}.tile-empty{background:repeating-linear-gradient(135deg,#f3ede406 0 1px,#0000 1px 14px),#070605;border-style:dashed;flex-direction:column;justify-content:space-between;padding:16px;display:flex}.seat-no{font-family:var(--mono);color:var(--muted);font-size:12px}.seat-label{color:#f3ede459;font-size:clamp(14px,2.4vmin,22px);font-weight:600}.dock{z-index:6;animation:rise .6s var(--ease) both;align-items:center;gap:14px;display:flex;position:absolute;bottom:24px}.dock-left{left:28px}.dock-right{right:28px}.dock-hint{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:11px}.cube-button{background:0 0;border:0;border-radius:16px;padding:8px}.cube-button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.cube{--half:calc(var(--s) / 2);width:var(--s);height:var(--s);perspective:calc(var(--s) * 6)}.cube-inner{width:100%;height:100%;transform-style:preserve-3d;transform:translateZ(calc(var(--half) * -1)) rotateX(-16deg) rotateY(-26deg);transition:transform .5s var(--ease);position:relative}.cube-button:hover .cube-inner{transform:translateZ(calc(var(--half) * -1)) rotateX(-22deg) rotateY(-38deg) scale(1.04)}.face{border:max(2px, calc(var(--s) * .045)) solid var(--c);backface-visibility:hidden;border-radius:22%;position:absolute;inset:0}.face-front{transform:translateZ(var(--half));background:#1b1815;place-items:center;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #0006}.face-front img{object-fit:cover;width:100%;height:100%}.cube-initial{font-weight:800;font-size:calc(var(--s) * .44);color:var(--c)}.face-back{transform:rotateY(180deg) translateZ(var(--half));background:color-mix(in srgb, var(--c) 40%, #000)}.face-right{transform:rotateY(90deg) translateZ(var(--half));background:color-mix(in srgb, var(--c) 45%, #000)}.face-left{transform:rotateY(-90deg) translateZ(var(--half));background:color-mix(in srgb, var(--c) 45%, #000)}.face-top{transform:rotateX(90deg) translateZ(var(--half));background:color-mix(in srgb, var(--c) 70%, #fff)}.face-bottom{transform:rotateX(-90deg) translateZ(var(--half));background:color-mix(in srgb, var(--c) 30%, #000)}.play-trigger{width:64px;height:64px;transition:transform .25s var(--ease);background:0 0;border:0;place-items:center;padding:8px;display:grid}.play-trigger svg{fill:#fff;filter:drop-shadow(0 6px 18px #0009);width:46px;height:46px}.play-trigger path{stroke:#fff;stroke-width:3px;stroke-linejoin:round}.play-trigger:hover{transform:translate(3px)scale(1.06)}.play-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:12px}.viewer-overlay{z-index:4;pointer-events:none;position:absolute;inset:0}.viewer-overlay>*{pointer-events:auto}.viewer-overlay .controls,.viewer-overlay .viewer-close,.viewer-overlay .viewer-title{opacity:0;transition:opacity .5s var(--ease), transform .5s var(--ease)}.viewer-overlay:not(.is-visible) .controls,.viewer-overlay:not(.is-visible) .viewer-close{pointer-events:none}.viewer-overlay.is-visible .controls,.viewer-overlay.is-visible .viewer-close,.viewer-overlay.is-visible .viewer-title{opacity:1}.viewer-overlay .controls:focus-within{opacity:1;pointer-events:auto}.viewer-overlay:before,.viewer-overlay:after{content:"";pointer-events:none;opacity:0;height:180px;transition:opacity .5s;position:absolute;left:0;right:0}.viewer-overlay:before{background:linear-gradient(#000000b3,#0000);top:0}.viewer-overlay:after{background:linear-gradient(#0000,#000c);bottom:0}.viewer-overlay.is-visible:before,.viewer-overlay.is-visible:after{opacity:1}.viewer-close{z-index:2;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000073;border-radius:12px;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:18px;right:18px}.viewer-close:hover{border-color:var(--ink)}.viewer-title{z-index:2;flex-direction:column;gap:6px;max-width:60vw;display:flex;position:absolute;top:22px;left:24px}.viewer-filename{text-overflow:ellipsis;white-space:nowrap;font-size:20px;font-weight:600;overflow:hidden}.controls{z-index:2;border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0a090899;border-radius:14px;align-items:center;gap:14px;padding:10px 14px;display:flex;position:absolute;bottom:18px;left:24px;right:24px}.ctl-play{background:var(--ink);color:#000;border:0;border-radius:10px;flex:none;place-items:center;width:40px;height:40px;display:grid}.ctl-play svg{fill:currentColor;width:18px;height:18px}.ctl-play:disabled{background:#f3ede440}.ctl-time{font-family:var(--mono);text-align:center;min-width:48px;font-size:12px}.ctl-dim{color:var(--muted)}.ctl-volume{flex:none;align-items:center;gap:8px;display:flex}.ctl-volume button{background:0 0;border:0;padding:4px}.ctl-volume svg{stroke:currentColor;stroke-width:1.8px;fill:none;stroke-linecap:round;width:20px;height:20px}.ctl-volume svg .fill{fill:currentColor}.ctl-volume input{width:90px}.ctl-fullscreen{background:0 0;border:1px solid #0000;border-radius:10px;flex:none;place-items:center;width:40px;height:40px;display:grid}.ctl-fullscreen:hover:not(:disabled){border-color:var(--line);background:#f3ede414}.ctl-fullscreen:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ctl-fullscreen:disabled{opacity:.4}.ctl-fullscreen svg{stroke:currentColor;stroke-width:1.8px;fill:none;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}input[type=range]{appearance:none;background:linear-gradient(to right, var(--accent) var(--p,0%), #f3ede433 var(--p,0%));cursor:pointer;border-radius:4px;outline:none;height:4px}input[type=range].timeline{flex:1;min-width:60px}input[type=range]:disabled{cursor:default}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ink);border:0;border-radius:50%;width:14px;height:14px;transition:transform .15s}input[type=range]::-moz-range-thumb{background:var(--ink);border:0;border-radius:50%;width:14px;height:14px}input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.25)}input[type=range]:disabled::-webkit-slider-thumb{opacity:0}.sync-pill{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-family:var(--mono);background:#0009;border-radius:999px;align-items:center;gap:10px;padding:8px 14px;font-size:12px;display:flex;position:absolute;top:24px;left:50%;transform:translate(-50%)}.sync-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:.9s infinite alternate blink}@keyframes blink{to{opacity:.2}}.viewer-error{background:#280a04d9;border:1px solid #ff5a3666;border-radius:14px;max-width:460px;padding:18px 20px;font-size:14px;line-height:1.5;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.locate-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);width:min(460px,100vw - 48px);animation:rise .5s var(--ease) both;background:#12100eeb;border-radius:18px;padding:28px;position:absolute;top:50%;left:50%;transform:translate(-50%,-58%)}.locate-card h2{word-break:break-word;margin:10px 0;font-size:24px}.locate-card p:not(.eyebrow){color:#cfc6ba;margin:0 0 20px;font-size:14px;line-height:1.55}.locate-actions{flex-wrap:wrap;gap:10px;display:flex}.scrim{z-index:20;opacity:0;pointer-events:none;background:#00000080;transition:opacity .35s;position:fixed;inset:0}.scrim.open{opacity:1;pointer-events:auto}.sidebar{z-index:21;background:var(--panel);border-right:1px solid var(--line);width:min(400px,100vw);transition:transform .45s var(--ease);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-102%);box-shadow:30px 0 80px #0009}.sidebar.open{transform:none}.sb-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;padding:22px 22px 18px;display:flex}.sb-email{word-break:break-all;margin:6px 0 0;font-weight:600}.sb-body{flex:1;padding:4px 22px 22px;overflow-y:auto}.sb-section{border-bottom:1px solid var(--line);padding:20px 0}.sb-section:last-child{border-bottom:0}.sb-title{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:11px;font-weight:500}.sb-profile{align-items:center;gap:22px;display:flex}.sb-profile .cube{flex:none;margin:8px}.sb-profile-fields{flex:1;min-width:0}.sb-row{align-items:center;gap:10px;display:flex}.sb-row+.sb-row{margin-top:12px}.file-btn{display:inline-block;position:relative;overflow:hidden}.file-btn input{opacity:0;cursor:pointer;position:absolute;inset:0}.color-row input[type=color]{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:10px;flex:none;width:40px;height:40px;padding:0}.color-row input[type=color]::-webkit-color-swatch-wrapper{padding:4px}.color-row input[type=color]::-webkit-color-swatch{border:0;border-radius:6px}.hex-input{font-family:var(--mono);width:110px!important;padding:9px 12px!important}.color-row .hint{margin:0}.folder-row{border:1px solid var(--line);border-radius:12px;padding:12px}.folder-icon{fill:none;width:20px;height:20px;stroke:var(--accent);stroke-width:1.8px;flex:none}.folder-name{min-width:0;font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:13px;overflow:hidden}.folder-name em{color:var(--muted);font-style:normal}.toggle-row{justify-content:space-between}.switch{border:1px solid var(--line);background:#ffffff0f;border-radius:999px;flex:none;width:44px;height:26px;padding:2px;transition:background .25s}.switch span{background:var(--muted);width:20px;height:20px;transition:transform .3s var(--ease), background .25s;border-radius:50%;display:block}.switch.on{background:var(--accent);border-color:var(--accent)}.switch.on span{background:#fff;transform:translate(18px)}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.acl-add{margin-top:12px}.acl-add input{padding:9px 12px}.acl-table{border-collapse:collapse;width:100%;margin-top:12px}.acl-table td{border-top:1px solid var(--line);padding:8px 0}.acl-table td:not(.acl-email){width:1%;padding-left:10px}.acl-email{font-family:var(--mono);word-break:break-all;font-size:13px}.acl-table tr.revoked .acl-email{color:var(--muted);text-decoration:line-through}.empty-note{color:var(--muted);margin:12px 0 0;font-size:13px}.session-list{margin:0;padding:0;list-style:none}.session-list li{align-items:center;gap:12px;padding:10px 0;display:flex}.session-list li+li{border-top:1px solid var(--line)}.session-list .cube{flex:none;margin:4px}.session-name{flex-direction:column;flex:1;min-width:0;font-size:14px;font-weight:600;display:flex}.session-name small{font-family:var(--mono);color:var(--muted);margin-top:2px;font-size:11px;font-weight:400}.badge{font-family:var(--mono);color:var(--accent);background:#ff5a3626;border-radius:6px;padding:4px 8px;font-size:11px}.skeleton-row{background:linear-gradient(90deg,#ffffff08,#ffffff14,#ffffff08) 0 0/200% 100%;border-radius:10px;height:44px;animation:1.4s infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.sb-foot{border-top:1px solid var(--line);background:var(--panel-2);gap:8px;padding:18px 22px 22px;display:grid}.sb-foot .form-error{margin:0 0 4px}.toasts{z-index:40;pointer-events:none;gap:8px;width:min(440px,100vw - 32px);display:grid;position:fixed;top:18px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);animation:rise .35s var(--ease) both;background:#1b1815f2;border-radius:12px;padding:12px 16px;font-size:14px;line-height:1.4;box-shadow:0 10px 40px #00000080}@media (width<=720px){.login-mosaic{opacity:.25;right:-30vmin}.login-card{margin-left:0}.login-row{flex-direction:column}.dock-left{left:12px}.dock-right{right:12px}.dock-hint{display:none}.controls{gap:8px;left:10px;right:10px}.ctl-time,input[type=range].timeline{min-width:0}.ctl-volume input{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.sb-admin{border-bottom-color:#ff5a364d}.sb-admin .btn{margin-top:12px}.admin-wrap{z-index:30;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.admin-scrim{background:#000000b3;animation:.25s both fade;position:absolute;inset:0}.admin-panel{background:var(--panel);border:1px solid var(--line);width:min(620px,100%);max-height:calc(100vh - 40px);animation:rise .35s var(--ease) both;border-radius:18px;flex-direction:column;display:flex;position:relative;box-shadow:0 30px 80px #000000b3}.admin-title{margin:6px 0 0;font-size:24px}.admin-body{padding:4px 22px 22px;overflow-y:auto}.admin-body .sb-title{align-items:center;gap:10px;display:flex}.req-list{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}.req{border:1px solid var(--line);background:var(--panel-2);border-radius:12px;justify-content:space-between;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.req-pending{border-color:#ff5a3666}.req-denied .req-email{color:var(--muted);text-decoration:line-through}.req-who{gap:4px;min-width:0;display:grid}.req-email{word-break:break-all;font-weight:600}.req-who small{font-family:var(--mono);color:var(--muted);font-size:11px}.req-message{color:#cfc6ba;border-left:2px solid var(--accent);margin:4px 0 0;padding-left:10px;font-size:13px}.req-actions{flex:none;gap:6px;display:flex}.pw-form{justify-items:start;gap:10px;display:grid}.pw-form input{padding:10px 12px}.pw-form .hint,.pw-form .form-error{margin:0}@keyframes fade{0%{opacity:0}}.spacer{flex:1}.sb-gap{margin-top:14px}.toggle-sub{color:var(--muted);margin-top:3px;font-size:12px;display:block}.stage.mode-lobby{overflow-y:auto}.lobby{--sync:#22c55e;z-index:1;min-height:100%;animation:rise .6s var(--ease) both;background:radial-gradient(50vmax 30vmax at 100% 0,#ff5a361f,#0000 60%),#070605;flex-direction:column;gap:22px;padding:28px clamp(16px,4vw,48px) 0;display:flex;position:relative}.lobby-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.lobby-title{letter-spacing:-.04em;align-items:baseline;gap:14px;margin:8px 0 0;font-size:clamp(32px,5vw,56px);font-weight:800;line-height:1;display:flex}.lobby-count{font-family:var(--mono);letter-spacing:.08em;color:var(--accent);font-size:13px;font-weight:500}.lobby-head-actions{gap:6px;display:flex}.lobby-grid{flex:1;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-template-areas:"preview room""files files";align-items:start;gap:16px;display:grid}.lobby-card{border:1px solid var(--line);background:#12100ed9;border-radius:18px;min-width:0;padding:20px}.lobby-preview{grid-area:preview;gap:14px;display:grid}.lobby-room{grid-area:room}.lobby-files{grid-area:files}@media (width>=1180px){.lobby-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1.1fr);grid-template-areas:"preview room files"}}.preview-frame{aspect-ratio:4/3;border:2px solid var(--c,var(--line));transition:border-color .4s var(--ease);background:#0d0c0b;border-radius:14px;position:relative;overflow:hidden}.preview-frame video{object-fit:cover;width:100%;height:100%;display:block}.preview-frame video.mirror{transform:scaleX(-1)}.preview-frame.is-off video{opacity:0}.preview-off{background:radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--c) 20%, transparent), transparent 70%), #0d0c0b;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);place-content:center;justify-items:center;gap:14px;font-size:12px;display:grid;position:absolute;inset:0}.device-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.device-btn{text-align:left;border:1px solid var(--line);background:#ffffff08;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:12px;padding:12px 14px;font-size:14px;font-weight:600;transition:border-color .2s,background .2s;display:grid}.device-btn svg{fill:none;width:22px;height:22px;stroke:var(--muted);stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;grid-row:span 2}.device-btn:hover{border-color:var(--ink)}.device-btn.on{background:#ff5a3614;border-color:#ff5a3680}.device-btn.on svg{stroke:var(--accent)}.device-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.perm{font-family:var(--mono);color:var(--muted);font-size:11px;font-weight:400}.perm-granted{color:#7fd99a}.perm-denied{color:#ff8a70}.meter{grid-template-columns:repeat(16,1fr);gap:3px;height:10px;display:grid}.meter span{background:#f3ede414;border-radius:2px;transition:background 80ms}.meter span.lit{background:var(--accent)}.meter span.lit:nth-child(n+12){background:#ffb020}.lobby-preview .form-error{margin:0}.room-picker{gap:6px;display:grid}.room-option{text-align:left;border:1px solid var(--line);background:0 0;border-radius:12px;align-items:center;gap:12px;padding:8px 12px;transition:border-color .2s,background .2s;display:flex}.room-option .cube{flex:none;margin:2px}.room-option>span{flex-direction:column;min-width:0;font-size:14px;font-weight:600;display:flex}.room-option small{font-family:var(--mono);color:var(--muted);margin-top:2px;font-size:11px;font-weight:400}.room-option:hover{border-color:var(--ink)}.room-option.active{border-color:var(--accent);cursor:default;background:#ff5a3614}.lobby-subtitle{align-items:center;gap:10px;margin-top:22px;display:flex}.sync-badge{font-family:var(--mono);letter-spacing:.1em;color:var(--sync);background:color-mix(in srgb, var(--sync) 15%, transparent);border-radius:6px;padding:3px 8px;font-size:10px}.member-list{margin:0;padding:0;list-style:none}.member-list li{align-items:center;gap:12px;padding:8px 0;display:flex}.member-list li+li{border-top:1px solid var(--line)}.member-list .cube{flex:none;margin:4px}.member-list li.is-synced small{color:color-mix(in srgb, var(--sync) 70%, var(--muted))}.files-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.files-head .sb-title,.files-head .hint{margin:0}.files-empty{border:1px dashed var(--line);border-radius:12px;justify-items:start;gap:12px;padding:18px;display:grid}.files-empty p{color:#cfc6ba;margin:0;font-size:14px;line-height:1.5}.access-note{background:#ff5a360f;border:1px solid #ff5a3659;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;padding:10px 12px;font-size:13px;display:flex}.file-list{max-height:320px;margin:12px 0 0;padding:0;list-style:none;overflow-y:auto}.file-list .empty-note{margin:0;padding:12px 0}.file{align-items:center;gap:12px;padding:10px 2px;display:flex}.file+.file{border-top:1px solid var(--line)}.file-kind{width:30px;height:30px;color:var(--accent);background:#ff5a361a;border-radius:8px;flex:none;place-items:center;font-size:11px;display:grid}.file-main{flex:1;gap:3px;min-width:0;display:grid}.file-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.file-main small{font-family:var(--mono);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.file-missing .file-name,.file-waiting .file-name{color:#cfc6ba}.file-missing .file-kind,.file-waiting .file-kind{color:var(--muted);background:#f3ede40f}.file-conflict small{color:#ffb020}.file-downloading .file-kind{animation:.9s infinite alternate blink}.file-progress{background:#f3ede41a;border-radius:3px;height:3px;margin-top:3px;display:block;overflow:hidden}.file-progress span{background:var(--accent);height:100%;transition:width .3s linear;display:block}.files-actions{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:14px;display:flex}.files-actions .hint{margin:0}.lobby-files>.hint:last-child{margin-top:10px}.sync-btn{font-family:var(--mono);letter-spacing:.08em;background:var(--ink);color:#000}.sync-btn:hover:not(:disabled){background:#fff}.sync-btn.is-synced,.sync-btn.is-synced:disabled{opacity:1;background:color-mix(in srgb, var(--sync) 15%, transparent);color:var(--sync);border-color:color-mix(in srgb, var(--sync) 50%, transparent)}.lobby-foot{z-index:2;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#070605e0;justify-content:space-between;align-items:center;gap:16px;margin:0 calc(-1*clamp(16px,4vw,48px));padding:16px clamp(16px,4vw,48px);display:flex;position:sticky;bottom:0}.lobby-foot .hint{margin:0}.join-btn{letter-spacing:.14em;border-radius:12px;padding:14px 44px;font-size:16px;font-weight:800;box-shadow:0 10px 40px #ff5a364d}@media (width<=860px){.lobby-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"preview""room""files"}}@media (width<=480px){.device-row{grid-template-columns:1fr}.join-btn{padding:14px 28px}}.sync-chip{border:1px solid var(--line);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:#00000080;border-radius:999px;align-items:center;gap:6px;margin-left:4px;padding:4px 10px;font-size:10px;transition:border-color .2s,color .2s;display:inline-flex}.sync-chip:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;animation:.9s infinite alternate blink}.sync-chip:hover:not(:disabled){border-color:var(--ink)}.sync-chip:disabled{cursor:default}.sync-chip.is-synced{color:var(--sync);border-color:color-mix(in srgb, var(--sync) 50%, transparent)}.sync-chip.is-synced:before{background:var(--sync);animation:none}.tiles-grid .tile:not(.tile-empty){border:2px solid color-mix(in srgb, var(--c,var(--line)) 70%, transparent);transition:border-color .4s var(--ease)}.shot-btn{z-index:6;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:46px;height:46px;transition:border-color .2s, transform .15s var(--ease), opacity .4s, bottom .45s var(--ease);animation:rise .6s var(--ease) both;background:#0000008c;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:28px;left:50%;transform:translate(-50%)}.shot-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linejoin:round;width:20px;height:20px}.shot-btn:hover{border-color:var(--ink)}.shot-btn:active{transform:translate(-50%)scale(.92)}.shot-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mode-viewer .shot-btn{bottom:calc(114px + clamp(64px,11vh,112px))}.mode-viewer.controls-hidden .shot-btn{opacity:0;pointer-events:none}.shot-flash{z-index:50;pointer-events:none;background:#fff;animation:.45s ease-out forwards shot-flash;position:fixed;inset:0}@keyframes shot-flash{0%{opacity:.85}to{opacity:0}}.logout-panel{width:min(480px,100%)}.logout-lede{color:#cfc6ba;margin-top:18px;font-size:14px}.logout-lede strong{color:var(--ink);font-family:var(--mono);font-weight:500}.logout-panel .file-list{border:1px solid var(--line);border-radius:12px;max-height:220px;padding:0 12px}.logout-actions{align-items:center;gap:8px;margin-top:18px;display:flex}@media (width<=720px){.shot-btn{width:42px;height:42px;bottom:30px}.logout-actions{flex-wrap:wrap}}
