:root{--bg:#000;--text:#fff;--text-dim:#ffffffa8;--ink:#0b0b0c;--accent:#ff3b5c;--accent-soft:#ff3b5cd9;--on-accent:#fff;--live:#35d07f;--danger:#ff6b6b;--surface:linear-gradient(96deg, #dcdcdc7d 12%, #e6e1e133 94%);--surface-border:1px solid #ffffff3b;--surface-blur:blur(20px);--surface-strong:#18181bd1;--radius-sm:12px;--radius-md:18px;--radius-lg:26px;--radius-pill:999px;--space-1:6px;--space-2:10px;--space-3:16px;--space-4:24px;--space-5:36px;--shadow:0 10px 30px #00000059;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;font-family:Inter,sans-serif}html,body{height:100%}body{background:var(--bg);color:var(--text);margin:0;padding:0;overflow:hidden}video#video{object-fit:cover;object-position:50% 50%;z-index:0;background:#000;width:100vw;height:100vh;position:fixed;top:0;left:0}body.stage-client video#video{touch-action:none}video#video.pannable{cursor:grab}video#video.panning{cursor:grabbing}.surface{background:var(--surface);border:var(--surface-border);-webkit-backdrop-filter:var(--surface-blur)}.btn{-webkit-appearance:none;appearance:none;color:var(--text);background:var(--surface);border:var(--surface-border);-webkit-backdrop-filter:var(--surface-blur);border-radius:var(--radius-pill);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;gap:8px;padding:.85rem 1.4rem;font-size:16px;font-weight:600;line-height:1;transition:transform .12s,background .15s,opacity .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn svg{display:block}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.ghost{background:#ffffff1a}.btn.subtle{-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--text-dim);background:0 0;border:none;padding:.6rem 1rem;font-weight:500}.btn.subtle:hover{color:var(--text)}.link{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:0;font-weight:600;text-decoration:underline}.screen{z-index:20;justify-content:center;align-items:center;gap:var(--space-4);padding:calc(var(--safe-top) + var(--space-4)) var(--space-4) calc(var(--safe-bottom) + var(--space-4));text-align:center;flex-direction:column;display:none;position:fixed;top:0;bottom:0;left:0;right:0}.brand-logo{width:210px;max-width:62vw;height:auto}#role-bg{z-index:0;border-radius:inherit;background:radial-gradient(150% 120% at 50% 122%,#ffcf6b 0%,#ff9d5c 24%,#ef6f7b 46%,#7c3b74 74%,#2a1740 100%) 50%/220% 220%;animation:12s ease-in-out infinite sky-pan;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}#role-select>:not(#role-bg){z-index:1;position:relative}.dune{filter:blur(55px);opacity:.8;will-change:transform;mix-blend-mode:screen;border-radius:50%;position:absolute}.dune-1{background:radial-gradient(circle,#ffcd6ed9,#ffcd6e00 66%);width:92vw;height:92vw;animation:9s ease-in-out infinite dune-drift-1;bottom:-32%;left:-25%}.dune-2{background:radial-gradient(circle,#ff6b81b3,#ff6b8100 64%);width:84vw;height:84vw;animation:11s ease-in-out infinite dune-drift-2;bottom:-22%;right:-30%}.dune-3{background:radial-gradient(circle,#966cd28c,#966cd200 68%);width:74vw;height:74vw;animation:10s ease-in-out infinite dune-drift-3;top:-28%;left:18%}.grain{opacity:.05;background-image:radial-gradient(#fff5e1e6 .5px,#0000 .6px),radial-gradient(#fff5e1b3 .5px,#0000 .6px);background-position:0 0,1px 2px;background-size:3px 3px,5px 5px;animation:8s linear infinite sand-blow;position:absolute;top:-50%;bottom:-50%;left:-50%;right:-50%}@keyframes sky-pan{0%{background-position:18% 30%}50%{background-position:82% 72%}to{background-position:18% 30%}}@keyframes dune-drift-1{0%{transform:translate(0,0)scale(1)rotate(0)}33%{transform:translate(28vw,-20vh)scale(1.3)rotate(14deg)}66%{transform:translate(-10vw,8vh)scale(1.12)rotate(-6deg)}to{transform:translate(0,0)scale(1)rotate(0)}}@keyframes dune-drift-2{0%{transform:translate(0,0)scale(1)rotate(0)}33%{transform:translate(-30vw,-16vh)scale(1.26)rotate(-13deg)}66%{transform:translate(12vw,10vh)scale(1.1)rotate(7deg)}to{transform:translate(0,0)scale(1)rotate(0)}}@keyframes dune-drift-3{0%{transform:translate(0,0)scale(1)rotate(0)}33%{transform:translate(22vw,22vh)scale(1.35)rotate(12deg)}66%{transform:translate(-16vw,-12vh)scale(1.08)rotate(-8deg)}to{transform:translate(0,0)scale(1)rotate(0)}}@keyframes sand-blow{0%{transform:translate(0,0)}to{transform:translate(6px,10px)}}@media (prefers-reduced-motion:reduce){.dune,.grain{animation:none}}.role-choices{gap:var(--space-3);flex-direction:column;width:100%;max-width:320px;display:flex}.role-btn{-webkit-appearance:none;appearance:none;align-items:center;gap:var(--space-3);width:100%;color:var(--text);background:var(--surface);border:var(--surface-border);-webkit-backdrop-filter:var(--surface-blur);border-radius:var(--radius-pill);cursor:pointer;padding:.4rem;font-size:19px;font-weight:600;transition:transform .12s,background .15s;display:flex}.role-btn:active{transform:scale(.98)}.role-ico{width:54px;height:54px;color:var(--text);background:#ffffff24;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.safety-note{color:var(--text-dim);align-items:center;gap:7px;margin:0;font-size:14px;display:inline-flex}.safety-note .ico-lock,.safety-note .link{color:#fff}#scan-frame{border-radius:var(--radius-lg);border:var(--surface-border);background:#ffffff0f;width:260px;max-width:74vw;height:260px;max-height:74vw;position:relative;overflow:hidden}#scan-video{object-fit:cover;width:100%;height:100%;display:block}.scan-reticle{border-radius:var(--radius-md);opacity:0;transition:opacity .2s;position:absolute;top:16%;bottom:16%;left:16%;right:16%;box-shadow:0 0 0 3px #ffffffd9}body.scanning .scan-reticle{opacity:1}.scan-hint{max-width:300px;color:var(--text-dim);margin:0;font-size:14px;line-height:1.4}#connect{z-index:20;width:min(300px,86vw);padding:var(--space-5) var(--space-4) var(--space-3);border-radius:var(--radius-lg);-webkit-backdrop-filter:var(--surface-blur);align-items:center;gap:var(--space-3);text-align:center;background:#121214eb;border:1px solid #ffffff1f;flex-direction:column;display:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #0009}.connect-logo{width:150px;max-width:60%}.qr-surface{border-radius:var(--radius-md);background:#fff;padding:14px;line-height:0}.qr-surface .qr{width:200px;height:200px}.qr-surface .qr canvas,.qr-surface .qr img{display:block;width:200px!important;height:200px!important}#connect .connect-status{color:var(--text);font-size:15px;line-height:1.45}body.stage-host:not(.has-stream) video#video,body.stage-host.show-qr video#video{filter:brightness(.4)}#connect .connect-actions{display:flex}#connect .reset-btn{margin-top:-4px}.status-pill{z-index:30;top:calc(var(--safe-top) + 16px);border-radius:var(--radius-pill);background:var(--surface);border:var(--surface-border);-webkit-backdrop-filter:var(--surface-blur);white-space:nowrap;align-items:center;gap:9px;padding:.55rem 1rem;font-size:14px;font-weight:600;display:none;position:fixed;left:50%;transform:translate(-50%)}.status-dot{background:var(--text-dim);border-radius:50%;flex:none;width:9px;height:9px}.status-pill.live .status-dot,#video-off .status-dot{background:var(--live);box-shadow:0 0 8px var(--live);animation:2s ease-in-out infinite pulse}.status-pill.warn .status-dot{background:#f5b53d;box-shadow:0 0 8px #f5b53d}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}#sound-indicator{z-index:30;top:calc(var(--safe-top) + 16px);border-radius:var(--radius-pill);background:var(--surface);border:var(--surface-border);-webkit-backdrop-filter:var(--surface-blur);align-items:center;gap:10px;padding:.55rem .95rem;display:none;position:fixed;left:16px}#sound-indicator .sound-ico{color:var(--text-dim);flex:none}#sound-indicator .sound-text{flex-direction:column;line-height:1.15;display:flex}#sound-indicator .sound-level{font-size:14px;font-weight:700}#sound-indicator .sound-ago{color:var(--text-dim);font-size:11px;font-weight:500}#sound-indicator .wave{opacity:.25;transition:opacity .2s}#sound-indicator.lvl-low .sound-ico,#sound-indicator.lvl-medium .sound-ico,#sound-indicator.lvl-hard .sound-ico{color:var(--text)}#sound-indicator.lvl-low .wave-1,#sound-indicator.lvl-medium .wave-1,#sound-indicator.lvl-medium .wave-2,#sound-indicator.lvl-hard .wave-1,#sound-indicator.lvl-hard .wave-2{opacity:1}#sound-indicator.lvl-hard{background:#ff6b6b47;border-color:#ff6b6b80}#sound-indicator.lvl-hard .sound-level{color:#ffd9d9}#melody-indicator{z-index:30;top:calc(var(--safe-top) + 16px);border-radius:var(--radius-pill);background:var(--surface);border:var(--surface-border);-webkit-backdrop-filter:var(--surface-blur);color:var(--text-dim);white-space:nowrap;opacity:.85;align-items:center;gap:8px;padding:.45rem .8rem;animation:3s ease-in-out infinite melody-breathe;display:none;position:fixed;right:16px}#melody-indicator svg{flex:none}#melody-indicator .melody-indicator-text{flex-direction:column;line-height:1.15;display:flex}#melody-indicator .melody-indicator-label{color:var(--text);font-size:13px;font-weight:700}#melody-indicator .melody-indicator-note{font-size:11px;font-weight:500}body.has-stream.melody-playing #melody-indicator{display:flex}@keyframes melody-breathe{0%,to{opacity:.9}50%{opacity:.6}}#reconnect-overlay{z-index:35;padding:var(--space-4);text-align:center;-webkit-backdrop-filter:blur(6px);background:#0000009e;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:none;position:fixed;top:0;bottom:0;left:0;right:0}body.stage-client.reconnecting #reconnect-overlay{display:flex}#reconnect-overlay strong{font-size:18px;font-weight:700}#reconnect-overlay .reconnect-hint{max-width:260px;color:var(--text-dim);font-size:14px;font-weight:500;line-height:1.4}.reconnect-spinner{border:3px solid #ffffff38;border-top-color:#f5b53d;border-radius:50%;width:40px;height:40px;animation:.9s linear infinite reconnect-spin}@keyframes reconnect-spin{to{transform:rotate(360deg)}}#toolbar{z-index:40;left:50%;bottom:calc(var(--safe-bottom) + 24px);justify-content:center;align-items:flex-end;gap:var(--space-1);width:calc(100vw - 16px);max-width:480px;display:none;position:fixed;transform:translate(-50%)}body.has-stream #toolbar{display:flex}.toast{z-index:55;left:50%;bottom:calc(var(--safe-bottom) + 112px);background:var(--surface-strong);color:#fff;border-radius:var(--radius-md);text-align:center;opacity:0;pointer-events:none;max-width:min(90vw,420px);padding:.7rem 1rem;font-size:13px;line-height:1.35;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%)translateY(8px);box-shadow:0 10px 32px #00000061}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.toast--update{text-align:left;align-items:center;gap:.6rem;display:flex}.toast--update.show{pointer-events:auto}.toast--update .update-text{flex:1;min-width:0}.toast--update .update-action{border-radius:var(--radius-pill);color:var(--text);border:var(--surface-border);cursor:pointer;background:#ffffff24;flex:none;padding:.4rem .9rem;font-size:13px;font-weight:600}.toast--update .update-dismiss{color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex:none;padding:0 4px;font-size:20px;line-height:1}.tbtn{-webkit-appearance:none;appearance:none;min-width:0;max-width:92px;color:var(--text);background:var(--surface);border:var(--surface-border);-webkit-backdrop-filter:var(--surface-blur);border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;flex:1 1 0;align-items:center;gap:5px;padding:.6rem .35rem;transition:transform .12s,background .15s;display:none;position:relative}.tbtn:active{transform:scale(.96)}.tbtn-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:11px;font-weight:600;overflow:hidden}.tbtn.primary{background:#ffffff1f}#talk-back{touch-action:none}#talk-back.talking{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}#toggle-video[aria-pressed=true],#melody-toggle[aria-pressed=true],#alerts-toggle[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--on-accent)}.ico-video-off,.ico-sound-off,.ico-fit-contain,#toggle-video[aria-pressed=true] .ico-video-on{display:none}#toggle-video[aria-pressed=true] .ico-video-off{display:block}#mute-toggle[aria-pressed=true] .ico-sound-on{display:none}#mute-toggle[aria-pressed=true] .ico-sound-off{display:block}#fit-toggle[aria-pressed=true] .ico-fit-fill{display:none}#fit-toggle[aria-pressed=true] .ico-fit-contain{display:block}.tbtn-badge{background:var(--accent);min-width:20px;height:20px;color:var(--on-accent);text-align:center;border-radius:10px;padding:0 5px;font-size:11px;font-weight:700;line-height:20px;position:absolute;top:-6px;right:-6px}body.stage-host.has-stream #toggle-video,body.stage-host.has-stream #melody-toggle,body.stage-host.has-stream #add-parent,body.stage-host.has-stream.multi-camera #switch-camera,body.stage-client.has-stream #fit-toggle,body.stage-client.has-stream #mute-toggle,body.stage-client.has-stream #talk-back,body.stage-client.has-stream #alerts-toggle,body.stage-client.has-stream #melody-toggle,body.stage-client.has-stream #invite{display:inline-flex}body.stage-role #role-select,body.stage-client.need-scan:not(.has-stream) #scan,body.stage-host:not(.has-stream) #connect,body.stage-host.show-qr #connect,body.stage-host.has-stream #host-status,body.stage-client.connecting #client-status,body.stage-client.has-stream #client-status,body.stage-client.has-stream #sound-indicator{display:flex}body.stage-host.has-stream #volume-levels{display:block}#volume-levels{z-index:10;bottom:calc(var(--safe-bottom) + 118px);display:none;position:fixed;left:50%;transform:translate(-50%)}#volume-levels .group{justify-content:center;align-items:flex-end;gap:4px;height:40px;display:flex}#volume-levels span{background-color:#fffc;border-radius:2px 2px 0 0;align-self:flex-end;width:5px;height:1px;display:inline-block}.overlay{z-index:60;padding:var(--space-4);-webkit-backdrop-filter:blur(6px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.overlay[hidden]{display:none}.overlay-card{width:min(420px,92vw);max-height:86vh;padding:var(--space-4);border-radius:var(--radius-lg);color:var(--ink);align-items:center;gap:var(--space-3);text-align:center;background:#fff;border:1px solid #0b0b0c0f;flex-direction:column;display:flex;overflow-y:auto;box-shadow:0 24px 70px #00000059}.overlay-card h2{color:var(--ink);margin:0;font-size:20px;font-weight:700}.overlay-sub{color:#0b0b0c99;margin:0;font-size:14px}.safety-list{text-align:left;color:#0b0b0ca8;margin:0;padding-left:1.1rem;font-size:14px;line-height:1.5}.safety-list strong{color:var(--ink)}.author-link{color:var(--accent);font-weight:600;text-decoration:none}.overlay-card .btn{width:100%}.overlay-card .btn.subtle{color:#0b0b0c8c}.overlay-card .btn.subtle:hover{color:var(--ink)}#invite-overlay .qr-surface{align-self:center}#video-off{z-index:35;background:#000;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}#video-off[hidden]{display:none}.video-off-inner{color:var(--text-dim);flex-direction:column;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.video-off-hint{opacity:.7;font-size:12px;font-weight:500}#install-banner{z-index:40;left:50%;bottom:calc(var(--safe-bottom) + 16px);border-radius:var(--radius-pill);max-width:calc(100vw - 32px);color:var(--text);background:var(--surface);border:var(--surface-border);-webkit-backdrop-filter:var(--surface-blur);opacity:0;pointer-events:none;align-items:center;gap:10px;padding:8px 8px 8px 18px;font-size:14px;font-weight:600;transition:transform .35s,opacity .35s;display:flex;position:fixed;transform:translate(-50%)translateY(160%)}#install-banner.show{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}body.has-stream #install-banner.show{bottom:calc(var(--safe-bottom) + 112px)}#install-banner .install-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#install-banner .install-action{border-radius:var(--radius-pill);color:var(--text);border:var(--surface-border);cursor:pointer;background:#ffffff1f;flex:none;padding:.45rem 1rem;font-size:14px;font-weight:600}#install-banner .install-action[hidden]{display:none}#install-banner .install-dismiss{color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex:none;padding:0 8px;font-size:22px;font-weight:400;line-height:1}
/*# sourceMappingURL=cammirror.7c41fef0.css.map */
