.admin-shell{flex-direction:column;gap:20px;width:min(620px,100%);display:flex}.lobby-card.admin-card{gap:18px;width:100%}.admin-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-head h2{font-family:var(--font-display);margin:0;font-size:18px}.admin-head p,.admin-empty{color:var(--text-muted);margin:4px 0 0;font-size:13px}.admin-warn{border:1px solid color-mix(in srgb, var(--owner) 30%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--owner) 8%, transparent);color:var(--owner);margin:0;padding:10px 12px;font-size:13px;line-height:1.45}.admin-create{gap:8px;display:flex}.admin-create input{border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-2);min-width:0;height:40px;color:var(--text);font:inherit;flex:1;padding:0 12px}.admin-create input:focus{border-color:var(--rim);outline:none}.admin-fresh{border:1px solid color-mix(in srgb, var(--speaking) 35%, transparent);border-radius:var(--radius-md);background:color-mix(in srgb, var(--speaking) 7%, transparent);flex-direction:column;gap:10px;padding:14px;display:flex}.admin-fresh p{color:var(--text-muted);margin:0;font-size:13px}.admin-fresh-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-fresh-row code{border-radius:var(--radius-sm);background:var(--stage);color:var(--text);font-family:var(--font-mono);letter-spacing:.04em;-webkit-user-select:all;user-select:all;flex:220px;padding:9px 12px;font-size:14px}.admin-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.admin-list li{border-top:1px solid var(--line);align-items:center;gap:12px;padding:12px 0;display:flex}.admin-dot{background:var(--text-faint);border-radius:50%;flex:none;width:8px;height:8px}.admin-dot.is-online{background:var(--speaking);box-shadow:0 0 0 3px color-mix(in srgb, var(--speaking) 20%, transparent)}.admin-who{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.admin-who strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-who span{color:var(--text-faint);font-size:12px}.admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}@media (width<=520px){.admin-list li{flex-wrap:wrap}.admin-actions{justify-content:flex-start;width:100%;padding-left:20px}}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-latin-400-normal-B40WzpMT.woff2)format("woff2"),url(/assets/geist-latin-400-normal-akEymXtG.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-latin-500-normal-CTWBw9NS.woff2)format("woff2"),url(/assets/geist-latin-500-normal-BDXIbFrL.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/geist-latin-600-normal-CSETrqM2.woff2)format("woff2"),url(/assets/geist-latin-600-normal-DsPlZH-9.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/geist-latin-700-normal-CFi8mLqe.woff2)format("woff2"),url(/assets/geist-latin-700-normal-Bod5GerT.woff)format("woff")}@font-face{font-family:Geist;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/geist-latin-800-normal-BiOIUYzx.woff2)format("woff2"),url(/assets/geist-latin-800-normal-GCBa5Xwv.woff)format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-latin-400-normal-DTRLJnHl.woff2)format("woff2"),url(/assets/geist-mono-latin-400-normal-B2yvC1Cq.woff)format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-latin-500-normal-YINYabwD.woff2)format("woff2"),url(/assets/geist-mono-latin-500-normal-D-GG86Jb.woff)format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/chakra-petch-latin-500-normal-BR1ody1F.woff2)format("woff2"),url(/assets/chakra-petch-latin-500-normal-CnUQnZ4D.woff)format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/chakra-petch-latin-600-normal-DVQm9bgb.woff2)format("woff2"),url(/assets/chakra-petch-latin-600-normal-DQKfcdKo.woff)format("woff")}@font-face{font-family:Chakra Petch;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/chakra-petch-latin-700-normal-CnDBPjkL.woff2)format("woff2"),url(/assets/chakra-petch-latin-700-normal-D1s_c2du.woff)format("woff")}@property --ring-angle{syntax:"<angle>";inherits:false;initial-value:0deg}:root{--bg:#0b0a12;--surface:#13111d;--surface-2:#1b1828;--surface-3:#262238;--stage:#07060a;--line:#ffffff12;--line-strong:#ffffff21;--text:#f3f0ff;--text-muted:#a39dbb;--text-faint:#6c6684;--accent:#f3f0ff;--accent-hover:#fff;--accent-soft:#f3f0ff1a;--on-accent:#0b0a12;--live:#ff4f7b;--live-soft:#ff4f7b24;--rim:#e9e5fb;--danger:#ff8fa6;--danger-bg:#2e1520;--danger-hover:#3d1b2a;--speaking:#5eeac4;--owner:#ffc56b;--radius-xl:20px;--radius-lg:16px;--radius-md:12px;--radius-sm:8px;--gap:12px;--dock-h:60px;--font-display:"Chakra Petch", Geist, system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, Consolas, monospace;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--shadow-pop:0 18px 48px #0000008c, 0 0 0 1px var(--line-strong);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:Geist,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.5}*,:before,:after{box-sizing:border-box}body{background:var(--bg);margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.4}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent}code{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.9em}.tabular{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);white-space:nowrap;min-height:40px;transition:background .15s, border-color .15s, transform .12s var(--ease-out), box-shadow .2s;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:14px;font-weight:600;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3);border-color:var(--line-strong)}.btn-lg{min-height:48px;font-size:15px}.btn-sm,.btn-pill{border-radius:10px;min-height:34px;padding:6px 12px;font-size:13px}.btn-sm.is-active,.btn-pill.is-active{border-color:color-mix(in srgb, var(--owner) 45%, transparent);background:color-mix(in srgb, var(--owner) 10%, var(--surface-2));color:var(--owner)}.btn-block{width:100%}.icon-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-muted);transition:background .15s, color .15s, transform .12s var(--ease-out);background:0 0;border:none;flex:none;place-items:center;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.icon-btn:active:not(:disabled){transform:scale(.9)}.chip,.pill-static{border:1px solid var(--line);background:var(--surface);height:34px;color:var(--text-muted);border-radius:10px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.chip-owner,.pill-static{color:var(--owner)}.field{color:var(--text-muted);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.field small{color:var(--text-faint);font-weight:500}.field input,.field textarea,.chat-form input{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg);width:100%;color:var(--text);padding:11px 14px;font-size:15px;font-weight:500;transition:border-color .15s,box-shadow .15s}.field input::placeholder,.field textarea::placeholder,.chat-form input::placeholder{color:var(--text-faint)}.field input:hover,.field textarea:hover,.chat-form input:hover{border-color:var(--line-strong)}.field input:focus,.field textarea:focus,.chat-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.field textarea{resize:vertical;min-height:96px;font:inherit;font-size:15px}.form-error{color:var(--danger);animation:shake .35s var(--ease-out);margin:0;font-size:13px;font-weight:600}@keyframes shake{25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.loading{color:var(--text-muted)}.lobby{isolation:isolate;place-items:center;min-height:100dvh;padding:24px 16px;display:grid;position:relative;overflow:hidden}.lobby:before{content:"";z-index:-1;background-image:radial-gradient(#ffffff12 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(60% 55% at 50% 45%,#000 20%,#0000 75%);mask-image:radial-gradient(60% 55% at 50% 45%,#000 20%,#0000 75%)}.lobby:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#ff4f7b21,#0000 65%);border-radius:50%;width:520px;height:520px;position:absolute;top:30%;left:50%;translate:-50% -50%}.lobby-shell{flex-direction:column;gap:28px;width:min(400px,100%);display:flex}.lobby-hero{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.lobby-wordmark{font-family:var(--font-display);letter-spacing:.04em;text-transform:uppercase;margin:6px 0 0;font-size:64px;font-weight:700;line-height:.9}.lobby-tagline{max-width:34ch;color:var(--text-muted);text-wrap:balance;margin:8px 0 0}.lobby-card{border:1px solid var(--line);border-radius:var(--radius-xl);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-direction:column;gap:16px;width:min(400px,100%);padding:24px;display:flex;box-shadow:0 24px 60px #0006}.lobby-card .btn-primary{margin-top:4px}.lobby-hint{color:var(--text-faint);text-align:center;margin:0;font-size:13px}.lobby-shell>*{animation:rise-in .7s var(--ease-out) both;animation-play-state:paused}.lobby-shell>:nth-child(2){animation-delay:.12s}.is-ready .lobby-shell>*{animation-play-state:running}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}}.room{gap:var(--gap);height:100dvh;padding:var(--gap) 16px;background:var(--bg);flex-direction:column;display:flex}.banner{border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);background:var(--danger-bg);color:var(--danger);border-radius:var(--radius-md);text-align:center;animation:fade-in .3s var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.room-header{align-items:center;gap:14px;min-height:44px;display:flex}.room-brand{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);flex:none;place-items:center;width:44px;height:44px;display:grid}.room-streamer{min-width:0;animation:fade-in .4s var(--ease-out);align-items:center;gap:12px;display:flex}.room-title{flex-direction:column;min-width:0;line-height:1.3;display:flex}.room-title strong{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.room-title>span{min-width:0;color:var(--text-muted);white-space:nowrap;align-items:center;gap:8px;font-size:12px;display:flex;overflow:hidden}.room-title-category{text-overflow:ellipsis;color:var(--accent);font-weight:600;overflow:hidden}.live-badge{background:var(--live);height:22px;color:var(--on-accent);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-radius:6px;flex:none;align-items:center;gap:6px;padding:0 9px;font-size:14px;font-weight:700;display:inline-flex}.live-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.4s ease-in-out infinite blink}@keyframes blink{50%{opacity:.25}}.header-timer{flex:none}.room-header-actions{flex:none;align-items:center;gap:8px;margin-left:auto;display:flex}.room-body{gap:var(--gap);flex:1;grid-template-columns:minmax(0,1fr) 340px;min-height:0;display:grid}.room-main{gap:var(--gap);flex-direction:column;min-width:0;min-height:0;display:flex}.stage{border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--stage);isolation:isolate;flex:1;min-height:220px;position:relative;overflow:hidden;container-type:inline-size}.stage.is-live:after{content:"";z-index:8;border-radius:inherit;background:conic-gradient(from var(--ring-angle), transparent 0deg, var(--live) 50deg, transparent 110deg, transparent 180deg, color-mix(in srgb, var(--live) 55%, transparent) 230deg, transparent 290deg);pointer-events:none;padding:1.5px;animation:6s linear infinite ring-spin;position:absolute;inset:0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor,source-over;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}@keyframes ring-spin{to{--ring-angle:360deg}}.stage-video{object-fit:contain;background:var(--stage);width:100%;height:100%;animation:.5s ease-out fade-in;display:block}.stage-empty{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:16px;display:flex;position:absolute;inset:0}.stage-idle{background:radial-gradient(ellipse 50% 45% at 50% 50%, #ff4f7b12, transparent 70%), radial-gradient(#ffffff0d 1px, transparent 1px) 0 0 / 20px 20px, var(--surface)}.stage-idle .ghost{margin-bottom:8px}.stage-empty p{margin:0}.stage-empty-title{font-family:var(--font-display);letter-spacing:.01em;color:var(--text);font-size:28px;font-weight:700;line-height:1.1}.stage-empty-text{max-width:36ch;font-size:14px}.stage-empty .btn{margin-top:12px}.stage-tabs{z-index:3;pointer-events:none;flex-wrap:wrap;gap:6px;display:flex;position:absolute;top:12px;left:12px;right:12px}.stage-tab{border:1px solid var(--line);height:30px;color:var(--text-muted);background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;border-radius:9px;align-items:center;gap:6px;padding:0 11px;font-size:12px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.stage-tab:hover{color:var(--text)}.stage-tab.is-active{border-color:var(--accent);color:var(--text);background:color-mix(in srgb, var(--accent) 16%, var(--bg))}.dot{border-radius:50%;width:8px;height:8px}.stage-bar{border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:3;align-items:center;gap:2px;height:40px;padding:0 4px;display:flex;position:absolute;bottom:12px;right:12px}.stage-bar-note{color:var(--text-muted);padding:0 8px;font-size:12px;font-weight:600}input[type=range]{accent-color:var(--accent);cursor:pointer}.stage-bar input[type=range]{width:84px;margin:0 6px 0 2px}.reaction-layer{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.reaction-float{flex-direction:column;align-items:center;animation:2.8s ease-out forwards float-up;display:flex;position:absolute;bottom:12px}.reaction-emoji{filter:drop-shadow(0 4px 10px #0006);font-size:34px;line-height:1}.reaction-name{color:var(--name-color);background:color-mix(in srgb, var(--bg) 75%, transparent);border-radius:6px;margin-top:2px;padding:0 6px;font-size:11px;font-weight:700}@keyframes float-up{0%{opacity:0;transform:translate(0)scale(.6)}12%{opacity:1;transform:translateY(-20px)scale(1.15)}80%{opacity:1}to{transform:translate(var(--drift), -260px) scale(1);opacity:0}}.camera-grid{flex:none;grid-template-columns:repeat(auto-fill,minmax(150px,190px));gap:10px;display:grid}.tile{aspect-ratio:16/9;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);animation:pop-in .35s var(--ease-spring);position:relative;overflow:hidden}.tile:after{content:"";border-radius:inherit;pointer-events:none;transition:box-shadow .2s;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #0000}.tile.is-speaking{border-color:#0000}.tile.is-speaking:after{box-shadow:inset 0 0 0 2px var(--speaking), inset 0 0 18px #5eeac440;animation:1.2s ease-in-out infinite speak-glow}@keyframes speak-glow{50%{box-shadow:inset 0 0 0 2px var(--speaking), inset 0 0 6px #5eeac41a}}.tile-video{object-fit:cover;width:100%;height:100%;display:block}.is-mirrored{transform:scaleX(-1)}.tile-avatar{place-items:center;padding-bottom:14px;display:grid;position:absolute;inset:0}.tile-name{background:color-mix(in srgb, var(--bg) 82%, transparent);border-radius:6px;align-items:center;gap:4px;max-width:calc(100% - 12px);height:22px;padding:0 7px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;bottom:6px;left:6px}.tile-name-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tile-status{color:var(--text-muted);background:color-mix(in srgb, var(--bg) 82%, transparent);border-radius:6px;padding:1px 7px;font-size:11px;font-weight:600;position:absolute;top:6px;left:6px}.icon-owner{color:var(--owner);flex:none}.icon-live{color:var(--live);flex:none}.avatar{width:var(--avatar-size);height:var(--avatar-size);background:var(--avatar-color,var(--accent));color:var(--on-accent);font-weight:800;font-size:calc(var(--avatar-size) * .42);border-radius:30%;flex:none;place-items:center;display:grid;overflow:hidden}.panel-head{min-height:28px;color:var(--accent);align-items:center;gap:8px;display:flex}.panel-title{color:var(--text);margin:0;font-size:14px;font-weight:700}.chat{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;gap:10px;min-height:0;padding:12px 14px 14px;display:flex}.chat-messages{overflow-wrap:anywhere;flex-direction:column;flex:1;gap:4px;min-height:0;margin:0 -6px;padding:0 6px;font-size:14px;list-style:none;display:flex;overflow-y:auto}.chat-message{animation:msg-in .25s var(--ease-out);padding:3px 0;line-height:1.45}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}}.chat-author{font-weight:700}.chat-system,.chat-empty{color:var(--text-faint);text-align:center;padding:4px 0;font-size:12px;animation:.3s ease-out fade-in}.chat-system{animation:msg-in .25s var(--ease-out)}.chat-system-icon{vertical-align:-1px;margin-right:6px;display:inline-block}.chat-system-icon.is-music{color:var(--speaking)}.chat-system-icon.is-warning{color:var(--owner)}.chat-system-icon.is-join,.chat-system-icon.is-return{color:var(--text-muted)}.chat-empty{margin:auto 0}.chat-form{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg);align-items:center;gap:2px;padding:3px 3px 3px 0;transition:border-color .15s,box-shadow .15s;display:flex}.chat-form:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.chat-form input,.chat-form input:hover,.chat-form input:focus{min-width:0;box-shadow:none;background:0 0;border:none;flex:1;padding:7px 12px;font-size:14px}.chat-form button[type=submit]:not(:disabled){color:var(--accent)}.segmented{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:3px;display:inline-flex}.segmented button{color:var(--text-muted);background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.segmented button.is-active{background:var(--surface-3);color:var(--text)}.popover{transform-origin:bottom;animation:popover-in .22s var(--ease-out)}@keyframes popover-in{0%{opacity:0;translate:0 8px;scale:.94}}.reaction-picker{position:relative}.reaction-tray{background:var(--surface-2);box-shadow:var(--shadow-pop);z-index:10;border-radius:14px;gap:2px;padding:6px;display:flex;position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%)}.reaction-tray button{width:40px;height:40px;transition:transform .18s var(--ease-spring), background .15s;background:0 0;border:none;border-radius:10px;font-size:21px}.reaction-tray button:hover{background:var(--surface-3);transform:translateY(-3px)scale(1.15)}.reaction-tray button:active{transform:scale(.9)}.toast-stack{z-index:70;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100vw - 24px);display:flex;position:fixed;top:14px;left:50%;translate:-50%}.toast{pointer-events:auto;border-radius:var(--radius-md);background:var(--surface-2);max-width:min(480px,100vw - 32px);box-shadow:var(--shadow-pop);overflow-wrap:anywhere;animation:drop-in .35s var(--ease-spring);align-items:center;gap:10px;padding:11px 16px;font-size:14px;font-weight:500;display:flex}.toast:before{content:"";background:var(--accent);border-radius:2px;flex:none;align-self:stretch;width:4px}@keyframes drop-in{0%{opacity:0;translate:0 -16px}}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;scale:.9}}.camera-stack{z-index:3;flex-direction:column;gap:8px;width:168px;display:flex;position:absolute;top:12px;left:12px}.camera-stack .tile{box-shadow:0 6px 18px #00000073}.camera-stack-avatars{flex-wrap:wrap;gap:6px;display:flex}.stack-avatar{box-shadow:0 0 0 2px var(--stage);border-radius:30%;transition:box-shadow .2s}.stack-avatar.is-speaking{box-shadow:0 0 0 2px var(--stage), 0 0 0 4px var(--speaking)}.hide-sm{display:inline}@media (width<=1100px){.room-body{grid-template-columns:minmax(0,1fr) 300px}}@media (width<=900px){.room{height:auto;min-height:100dvh;padding:10px 12px calc(var(--dock-h) + 28px + env(safe-area-inset-bottom))}.room-body{grid-template-columns:minmax(0,1fr)}.stage{aspect-ratio:16/9;border-radius:var(--radius-lg);flex:none;min-height:0}.camera-grid{scroll-snap-type:x mandatory;gap:8px;margin:0 -12px;padding:0 12px 2px;display:flex;overflow-x:auto}.camera-grid .tile{scroll-snap-align:start;flex:none;width:150px}.chat{height:420px}.room-header{flex-wrap:wrap;gap:10px}.room-header>.room-title{flex:1}.room-streamer{flex:100%;order:3}.controls{z-index:30;padding:0 8px calc(8px + env(safe-area-inset-bottom));pointer-events:none;position:fixed;bottom:0;left:0;right:0}}@media (width<=560px){.room-header>.room-title{display:none}.room-header-actions{margin-left:auto}.room-brand{width:38px;height:38px}.room-brand .ghost{width:26px;height:26px}.hide-sm{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.popover.reaction-tray,.popover.points-panel,.popover.mic-panel{left:8px;right:8px;bottom:calc(var(--dock-h) + 20px + env(safe-area-inset-bottom));width:auto;position:fixed;transform:none}.popover.reaction-tray{justify-content:space-between}.reaction-tray button{width:36px;height:36px;font-size:19px}.toast{width:calc(100vw - 24px)}.toast-stack{top:auto;bottom:calc(var(--dock-h) + 24px + env(safe-area-inset-bottom))}.confirm-toast{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.reaction-float{animation:1.4s forwards fade-out!important}.stage.is-live:after{animation:none!important}}@keyframes fade-out{to{opacity:0}}.app-release{justify-content:center;display:flex}.app-release .btn{color:var(--text-muted)}.app-release .btn:hover{color:var(--text)}.app-download-icon{width:34px;padding:0}a.btn{color:inherit;text-decoration:none}@media (hover:none){.tip{display:none}}.select{border:1px solid var(--line);background:var(--bg);min-height:34px;color:var(--text);text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:0 10px 0 12px;font-size:13px;font-weight:600;transition:border-color .15s,background .15s;display:inline-flex}.select:hover{border-color:var(--line-strong)}.select.is-open,.select:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.select-value{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.select-chevron{color:var(--text-muted);transition:transform .2s var(--ease-out);flex:none}.select.is-open .select-chevron{color:var(--accent);transform:rotate(180deg)}.field .select{border-radius:var(--radius-md);width:100%;min-height:46px;padding:0 12px 0 14px;font-size:15px;font-weight:500}.select-list{z-index:90;border-radius:var(--radius-md);background:var(--surface-2);box-shadow:var(--shadow-pop);animation:popover-in .16s var(--ease-out);flex-direction:column;gap:2px;margin:0;padding:5px;list-style:none;display:flex;position:fixed;overflow-y:auto}.select-option{border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap;cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:8px 10px;font-size:14px;font-weight:500;display:flex}.select-option.is-active{background:var(--surface-3);color:var(--text)}.select-option[aria-selected=true]{color:var(--text);font-weight:700}.select-option svg{color:var(--accent);flex:none}.field>small{color:var(--text-faint);font-size:12px;font-weight:500}.check{color:var(--text-muted);cursor:pointer;align-items:center;gap:10px;font-size:14px;font-weight:500;display:flex}.checkbox{appearance:none;border:2px solid var(--line-strong);background:var(--bg);cursor:pointer;border-radius:6px;flex:none;place-items:center;width:20px;height:20px;margin:0;transition:background .12s,border-color .12s;display:grid}.checkbox:after{content:"";border:solid var(--on-accent);width:5px;height:10px;transition:scale .15s var(--ease-spring);border-width:0 2.5px 2.5px 0;margin-top:-2px;rotate:45deg;scale:0}.checkbox:hover{border-color:var(--accent)}.checkbox:checked{border-color:var(--accent);background:var(--accent)}.checkbox:checked:after{scale:1}.btn-danger{border-color:color-mix(in srgb, var(--danger) 25%, transparent);background:var(--danger-bg);color:var(--danger)}.btn-danger:hover:not(:disabled){border-color:color-mix(in srgb, var(--danger) 40%, transparent);background:var(--danger-hover)}.live-timer{font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:13px;font-weight:600}.side-column{gap:var(--gap);flex-direction:column;min-height:0;margin-right:-6px;padding-right:6px;display:flex;overflow-y:auto}.side-column .chat{flex:1 0 260px}@keyframes soft-blink{50%{opacity:.5}}.stage-video-cam{object-fit:cover}.stage-pip{aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-md);width:clamp(120px,22%,260px);box-shadow:0 0 0 1px var(--line-strong), 0 10px 28px #00000080;background:var(--stage);z-index:1;animation:pop-in .35s var(--ease-spring);position:absolute;bottom:64px;right:16px}.scene-card{text-align:center;background:radial-gradient(ellipse 50% 45% at 50% 45%, #ff4f7b1a, transparent 70%), radial-gradient(#ffffff0d 1px, transparent 1px) 0 0 / 20px 20px, var(--surface);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;animation:.4s ease-out fade-in;display:flex;position:absolute;inset:0}.scene-card .avatar{animation:pop-in .5s var(--ease-spring);margin-bottom:6px}.scene-card-title{font-family:var(--font-display);letter-spacing:.01em;text-wrap:balance;max-width:32ch;font-size:28px;font-weight:700;line-height:1.1}.scene-card-text{color:var(--text-muted);align-items:center;gap:8px;font-weight:600;display:inline-flex}.scene-card-category{color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:2px 10px;font-size:12px;font-weight:700}.watch-gate-avatar{justify-items:center;margin-bottom:8px;display:grid;position:relative}.watch-gate-avatar .avatar{box-shadow:0 0 0 3px var(--surface), 0 0 0 5px var(--live), 0 0 32px #ff4f7b59;animation:pop-in .5s var(--ease-spring)}.watch-gate-avatar .live-badge{position:absolute;bottom:-10px}.watch-gate .scene-card-text{flex-wrap:wrap;justify-content:center}.watch-gate-btn{margin-top:8px;padding:0 28px}.watch-gate-hint{color:var(--text-faint);font-size:12px}.split-cell .watch-gate .watch-gate-hint,.split-cell .watch-gate .scene-card-text{display:none}.studio{border:1px solid color-mix(in srgb, var(--live) 30%, var(--line));border-radius:var(--radius-lg);background:linear-gradient(180deg, #ff4f7b0f, transparent 120px), var(--surface);max-height:52%;animation:panel-in .4s var(--ease-out);flex-direction:column;flex:none;gap:14px;padding:14px;display:flex;overflow-y:auto}@keyframes panel-in{0%{opacity:0;transform:translateY(-8px)}}.studio-header{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.studio-stats{color:var(--text-muted);flex:100%;font-size:12px}.studio-details{flex-direction:column;gap:6px;display:flex}.studio-details input{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:8px 11px;font-size:13px;font-weight:500;transition:border-color .15s}.studio-details input:hover{border-color:var(--line-strong)}.studio-details input:focus{border-color:var(--accent);outline:none}.scenes{flex-wrap:wrap;gap:6px;display:flex}.scene{border:1px solid var(--line);background:var(--surface-2);white-space:nowrap;min-height:36px;color:var(--text-muted);transition:background .15s, color .15s, border-color .15s, transform .12s var(--ease-out);border-radius:10px;flex:auto;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.scene svg{flex:none}.scene:hover{background:var(--surface-3);color:var(--text)}.scene:active{transform:scale(.95)}.scene.is-active{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--surface-2));color:var(--text)}.scene.is-active svg{color:var(--accent)}.studio-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.studio-group{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding-top:12px;display:flex}.studio-label{color:var(--text-muted);font-size:12px;font-weight:700}.fader{color:var(--text-muted);align-items:center;gap:10px;display:flex}.fader input{flex:1;min-width:0}.fader.is-disabled{opacity:.4}.fader-value{text-align:right;font-variant-numeric:tabular-nums;width:40px;font-size:12px;font-weight:600}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:40;background:#040308b3;place-items:center;padding:16px;animation:.2s ease-out fade-in;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line-strong);border-radius:var(--radius-xl);background:var(--surface);width:min(440px,100%);max-height:calc(100dvh - 32px);animation:modal-in .35s var(--ease-spring);flex-direction:column;gap:16px;padding:22px;display:flex;overflow-y:auto;box-shadow:0 30px 80px #0009}@keyframes modal-in{0%{opacity:0;transform:translateY(16px)scale(.96)}}.modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-header h2{font-family:var(--font-display);letter-spacing:.01em;margin:0;font-size:26px;font-weight:700;line-height:1.1}.modal-hint{background:var(--surface-2);color:var(--text-muted);border-radius:10px;margin:0;padding:10px 12px;font-size:12px}.studio-warning{border:1px solid color-mix(in srgb, var(--owner) 30%, transparent);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--owner) 10%, transparent);color:var(--owner);margin:0;padding:8px 10px;font-size:12px;animation:.3s ease-out fade-in}@media (width<=900px){.studio{max-height:none}.side-column{margin-right:0;padding-right:0;overflow:visible}}@container (width<=560px){.scene-card{gap:6px;padding:12px 12px 56px}.scene-card .avatar{width:52px;height:52px;margin-bottom:2px;font-size:22px}.scene-card-title{font-size:20px}.scene-card-text{font-size:13px}.stage-empty .ghost{width:60px;height:60px;margin-bottom:0}.stage-empty-title{font-size:16px}.stage-empty-text{font-size:13px}.stage-empty .btn{margin-top:6px}.stage-bar{height:36px;bottom:8px;right:8px}.stage-bar input[type=range]{width:64px}}@container (width<=420px){.stage-empty{gap:4px}.stage-empty .stage-empty-text:not(:only-child){display:none}.stage-empty .btn{min-height:34px;padding:6px 12px;font-size:13px}}@container (width<=560px){.watch-gate{padding-bottom:16px}.watch-gate-avatar{margin-bottom:4px}.watch-gate-avatar .live-badge,.watch-gate-hint,.watch-gate .scene-card-text{display:none}.watch-gate-btn{min-height:38px;margin-top:4px}}.modal.share-picker{width:min(760px,100%)}.share-picker .modal-header h2{flex:1}.share-picker .modal-header{gap:4px}.share-tabs{align-self:flex-start}.share-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;max-height:46dvh;padding:2px;display:grid;overflow-y:auto}.share-empty{text-align:center;color:var(--text-faint);grid-column:1/-1;margin:0;padding:32px 0;font-size:13px}.share-source{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);min-width:0;color:var(--text);text-align:left;flex-direction:column;gap:8px;padding:8px;transition:border-color .12s,background .12s;display:flex}.share-source:hover{border-color:var(--line-strong);background:var(--surface-3)}.share-source.is-selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.share-thumb{aspect-ratio:16/9;background:var(--bg);border-radius:8px;place-items:center;max-width:100%;display:grid;overflow:hidden}.share-thumb img{object-fit:contain;width:100%;height:100%}.share-name{align-items:center;gap:6px;min-width:0;font-size:12px;font-weight:500;display:flex}.share-name img{flex:none;width:16px;height:16px}.share-name span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-options{grid-template-columns:minmax(0,1fr) 200px;align-items:end;gap:16px;display:grid}.check.share-audio{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2);color:var(--text);align-self:stretch;padding:10px 12px}.share-audio>span{flex:1;min-width:0;display:grid}.share-audio small{color:var(--text-muted);font-size:12px;font-weight:400}.share-audio>svg{color:var(--text-muted);flex:none}.share-actions{justify-content:flex-end;gap:8px;display:flex}.modal-hint a{color:var(--text)}@media (width<=560px){.share-options{grid-template-columns:minmax(0,1fr)}}.side-panel{display:contents}.side-column.is-tabbed{gap:10px}.side-column.is-tabbed .side-panel{gap:var(--gap);flex-direction:column;display:flex}.side-column.is-tabbed .side-panel.is-hidden{display:none}.side-column.is-tabbed .side-panel-chat,.side-column.is-tabbed .side-panel-chat .chat{flex:1;min-height:0}@media (width<=900px) and (height>=560px){.room:has(.side-column.is-tabbed){height:100dvh;min-height:0;overflow:hidden}.room-body:has(.side-column.is-tabbed){flex:1;grid-template-rows:auto minmax(0,1fr);min-height:0}.side-column.is-tabbed{min-height:0;overflow:hidden}.side-column.is-tabbed .side-panel:not(.is-hidden){flex:1;min-height:0;overflow-y:auto}.side-column.is-tabbed .side-panel-chat:not(.is-hidden){overflow:hidden}.side-column.is-tabbed .side-panel-chat .chat{flex:1;height:auto;min-height:0}}@media (width<=900px) and (height<=559px){.side-column.is-tabbed .side-panel-chat .chat{height:320px}}.side-tabs{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);scrollbar-width:none;gap:4px;padding:4px;display:flex;overflow-x:auto}.side-tab{border-radius:var(--radius-md);min-height:40px;color:var(--text-muted);white-space:nowrap;background:0 0;border:none;flex:1 0 auto;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;transition:background .15s,color .15s;display:inline-flex;position:relative}.side-tab.is-active{background:var(--surface-3);color:var(--text)}.side-tab-badge{background:var(--live);color:#fff;border-radius:9px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:1;display:grid}.side-column.is-tabbed .chat>.panel-head,.side-column.is-tabbed .music-header>svg,.side-column.is-tabbed .music-header>.studio-label{display:none}@media (width<=900px) and (height<=500px) and (orientation:landscape){.stage{aspect-ratio:auto;height:calc(100dvh - var(--dock-h) - 36px - env(safe-area-inset-bottom))}.watch-gate-avatar,.watch-gate-hint,.watch-gate .scene-card-text{display:none}}.side-column.is-tabbed .side-panel:not(.is-hidden){animation:tab-panel-in .28s var(--ease-out)}@keyframes tab-panel-in{0%{opacity:0;translate:0 6px}}.side-tab-badge{animation:badge-pop .32s var(--ease-spring)}@keyframes badge-pop{0%{scale:.4}}.side-tab-eq{align-items:flex-end;gap:2px;height:12px;display:inline-flex}.side-tab-eq i{background:var(--speaking);border-radius:1px;width:3px;height:4px;transition:height .2s}.side-tab-eq.is-playing i{animation:.9s ease-in-out infinite eq-bar}.side-tab-eq.is-playing i:nth-child(2){animation-delay:-.3s}.side-tab-eq.is-playing i:nth-child(3){animation-delay:-.6s}@keyframes eq-bar{0%,to{height:4px}50%{height:12px}}.side-tab-dot{background:var(--live);border-radius:50%;width:7px;height:7px;animation:1.6s ease-out infinite dot-pulse}@keyframes dot-pulse{0%{box-shadow:0 0 0 0 var(--live-soft)}70%,to{box-shadow:0 0 0 6px #0000}}.stage-video-cam{object-fit:cover;background:var(--stage);width:100%;height:100%;display:block}.alert{z-index:4;border:1px solid var(--line-strong);border-radius:var(--radius-md);background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:calc(100% - 24px);animation:alert-in .45s var(--ease-spring), alert-out .35s ease-in 3.65s forwards;pointer-events:none;align-items:center;gap:10px;padding:6px 16px 6px 6px;font-size:13px;font-weight:600;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000073}.alert-icon{background:var(--accent);width:26px;height:26px;color:var(--on-accent);border-radius:8px;place-items:center;display:grid}.alert-text{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}@keyframes alert-in{0%{opacity:0;transform:translate(-50%,-20px)scale(.9)}}@keyframes alert-out{to{opacity:0;transform:translate(-50%,-16px)}}.poll{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);animation:panel-in .35s var(--ease-out);flex-direction:column;flex:none;gap:10px;padding:12px 14px 14px;display:flex}.poll-header{justify-content:space-between;align-items:center;min-height:28px;display:flex}.poll-header .studio-label{color:var(--text);font-size:14px}.poll-meta{background:var(--accent-soft);font-variant-numeric:tabular-nums;color:var(--accent);border-radius:6px;padding:1px 8px;font-size:12px;font-weight:700}.poll-question{overflow-wrap:anywhere;font-weight:700}.poll-options{flex-direction:column;gap:6px;display:flex}.poll-option{border:1px solid var(--line);background:var(--surface-2);text-align:left;min-height:38px;transition:border-color .15s, transform .12s var(--ease-out);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:flex;position:relative;overflow:hidden}.poll-option:hover:not(:disabled){border-color:var(--line-strong)}.poll-option:active:not(:disabled){transform:scale(.98)}.poll-option:disabled{opacity:1}.poll-option.is-mine{border-color:var(--accent)}.poll-option.is-winner{border-color:color-mix(in srgb, var(--speaking) 60%, transparent)}.poll-option.is-winner .poll-fill{background:#5eeac433}.poll-fill{background:color-mix(in srgb, var(--accent) 20%, transparent);transition:width .6s var(--ease-out);position:absolute;inset:0 auto 0 0}.poll-text,.poll-percent{position:relative}.poll-text{overflow-wrap:anywhere}.poll-percent{font-variant-numeric:tabular-nums;color:var(--text-muted)}.poll-footer{color:var(--text-faint);justify-content:space-between;align-items:center;font-size:12px;display:flex}.poll-input{border:1px solid var(--line);background:var(--bg);border-radius:10px;width:100%;padding:8px 11px;font-size:13px;font-weight:500;transition:border-color .15s}.poll-input:hover{border-color:var(--line-strong)}.poll-input:focus{border-color:var(--accent);outline:none}.poll-input-row{align-items:center;gap:4px;display:flex}.poll-new{border-style:dashed;border-color:var(--line-strong);width:100%;min-height:42px;color:var(--text-muted);background:0 0;flex:none}.poll-new:hover:not(:disabled){border-color:var(--accent);color:var(--text);background:var(--accent-soft)}.link-btn{color:var(--accent);background:0 0;border:none;padding:0;font-size:12px;font-weight:700}.link-btn:hover{text-decoration:underline}.chat-message.is-highlighted{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--highlight-color) 14%, transparent);box-shadow:inset 3px 0 0 var(--highlight-color);animation:msg-in .25s var(--ease-out), highlight-flash 1.2s ease-out;margin:2px 0;padding:7px 10px}@keyframes highlight-flash{0%{background:color-mix(in srgb, var(--highlight-color) 40%, transparent)}}.emoji-picker{position:relative}.emoji-popover{z-index:10;border-radius:var(--radius-md);background:var(--surface-2);width:296px;box-shadow:var(--shadow-pop);transform-origin:100% 100%;grid-template-columns:repeat(8,1fr);gap:2px;padding:8px;display:grid;position:absolute;bottom:calc(100% + 12px);right:-40px}.emoji-popover button{aspect-ratio:1;border-radius:var(--radius-sm);transition:background .15s, transform .15s var(--ease-spring);background:0 0;border:none;font-size:18px}.emoji-popover button:hover{background:var(--surface-3);transform:scale(1.15)}@media (width<=380px){.emoji-popover{width:calc(100vw - 40px)}}.stage-split{background:var(--stage);gap:3px;display:grid;position:absolute;inset:0}.split-2{grid-template-columns:1fr 1fr}.split-3,.split-4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.split-cell{cursor:pointer;background:var(--stage);min-width:0;min-height:0;animation:.35s ease-out fade-in;position:relative;overflow:hidden}.split-cell:after{content:"";pointer-events:none;transition:box-shadow .2s;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #0000}.split-cell:hover:after{box-shadow:inset 0 0 0 2px var(--line-strong)}.split-cell.is-focused:after{box-shadow:inset 0 0 0 2px var(--accent)}.split-name{z-index:2;background:color-mix(in srgb, var(--bg) 82%, transparent);border-radius:6px;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;bottom:8px;left:8px}.split-cell .scene-card-title{font-size:20px}.split-cell .stage-pip{bottom:38px;right:8px}.icon-btn.is-on{color:var(--accent)}.rec-btn{color:var(--danger)}.rec-btn.is-recording{background:var(--danger-bg);animation:1.4s ease-in-out infinite blink}.rec-timer{color:var(--danger);padding-right:6px;font-size:12px}.rec-row{flex-wrap:nowrap}.studio-hint{color:var(--text-faint);font-size:12px}.raid-input{flex:1;min-width:0}.points-panel{border-radius:var(--radius-lg);background:var(--surface-2);width:min(340px,100vw - 32px);box-shadow:var(--shadow-pop);z-index:10;flex-direction:column;gap:12px;padding:12px;display:flex;position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%)}.points-hint{color:var(--text-muted);margin:0 0 2px;font-size:12px}.reward{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;gap:8px;padding:10px;display:flex}.reward.is-locked{opacity:.5}.reward-header{justify-content:space-between;font-size:13px;font-weight:700;display:flex}.reward-cost{color:var(--owner);font-variant-numeric:tabular-nums;align-items:center;gap:4px;display:inline-flex}.reward-cost svg{fill:currentColor}.reward-options{flex-wrap:wrap;gap:4px;display:flex}.reward-options .btn-pill{min-height:30px;padding:4px 10px;font-size:12px}.reward-emoji{background:var(--surface-2);width:34px;height:34px;transition:background .15s, transform .15s var(--ease-spring);border:none;border-radius:9px;font-size:18px}.reward-emoji:hover:not(:disabled){background:var(--surface-3);transform:scale(1.12)}.reward-form{gap:6px;display:flex}.reward-form input{border:1px solid var(--line);background:var(--bg);border-radius:10px;flex:1;min-width:0;padding:6px 11px;font-size:13px}.reward-form input:focus{border-color:var(--accent);outline:none}.raid{left:50%;bottom:calc(var(--dock-h) + 40px);z-index:45;border:1px solid var(--accent);border-radius:var(--radius-lg);background:linear-gradient(90deg, #ff4f7b24, transparent 60%), var(--surface-2);width:min(560px,100vw - 24px);animation:raid-in .5s var(--ease-spring);align-items:center;gap:12px;padding:12px 14px;display:flex;position:fixed;translate:-50%;box-shadow:0 0 40px #ff4f7b40,0 18px 48px #0000008c}@keyframes raid-in{0%{opacity:0;translate:-50% 24px;scale:.95}}.raid-icon{background:var(--accent);width:40px;height:40px;color:var(--on-accent);border-radius:12px;flex:none;place-items:center;animation:.9s ease-in-out infinite alternate raid-rocket;display:grid}@keyframes raid-rocket{to{transform:translate(2px,-3px)rotate(-6deg)}}.raid-text{min-width:0;color:var(--text-muted);flex-direction:column;flex:1;font-size:13px;display:flex}.raid-text strong{color:var(--text);font-size:14px}@media (width<=900px){.raid{flex-wrap:wrap}.raid .btn{flex:1}}.mic-chevron.is-open svg{transform:rotate(180deg)}.mic-panel{z-index:10;border-radius:var(--radius-lg);background:var(--surface-2);width:min(300px,100vw - 32px);box-shadow:var(--shadow-pop);transform-origin:0 100%;flex-direction:column;gap:8px;padding:12px;display:flex;position:absolute;bottom:calc(100% + 14px);left:0}.mic-meter{background:var(--surface);border-radius:2px;height:4px;overflow:hidden}.mic-meter span{background:var(--speaking);border-radius:2px;width:0;height:100%;transition:width .1s linear;display:block}.mic-select{width:100%}.mic-row{border-top:1px solid var(--line);align-items:center;gap:10px;padding-top:12px;display:flex}.switch{cursor:pointer;flex:1;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.switch input{opacity:0;pointer-events:none;position:absolute}.switch-track{background:var(--surface-3);border-radius:9px;flex:none;width:30px;height:18px;transition:background .15s;position:relative}.switch-track:after{content:"";background:var(--text-muted);width:14px;height:14px;transition:translate .15s var(--ease-out), background .15s;border-radius:50%;position:absolute;top:2px;left:2px}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track:after{background:var(--bg);translate:12px}.switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.ptt-key{border:1px solid var(--line-strong);background:var(--bg);min-width:34px;height:28px;color:var(--text);font:500 12px/1 var(--font-mono);white-space:nowrap;border-bottom-width:2px;border-radius:6px;padding:0 8px}.ptt-key:hover{border-color:var(--text-muted)}.ptt-key.is-capturing{border-color:var(--accent)}.mic-hint{color:var(--text-muted);margin:0;font-size:12px}.stage.is-fullscreen{z-index:60;background:#000;border:none;border-radius:0;min-height:0;position:fixed;inset:0}.stage.is-fullscreen:after{display:none}.stage.is-fullscreen .stage-video{background:#000}.stage.is-idle,.stage.is-idle *{cursor:none!important}.stage .stage-bar,.stage .stage-tabs,.fs-controls{transition:opacity .3s, translate .3s var(--ease-out)}.stage.is-idle .stage-bar,.stage.is-idle .stage-tabs,.stage.is-idle .fs-controls{opacity:0;pointer-events:none}.stage.is-idle .fs-controls{translate:0 12px}.fs-controls{z-index:5;border:1px solid var(--line-strong);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);max-width:calc(100% - 24px);animation:fs-in .4s var(--ease-out);border-radius:16px;align-items:center;gap:6px;padding:6px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #00000080}@keyframes fs-in{0%{opacity:0;translate:0 16px}}.fs-btn{background:var(--surface-2);width:40px;height:40px;transition:background .15s, transform .12s var(--ease-out);border:none;border-radius:11px;flex:none;place-items:center;display:grid}.fs-btn:hover{background:var(--surface-3)}.fs-btn:active{transform:scale(.92)}.fs-btn.is-danger{background:var(--danger-bg);color:var(--danger)}.fs-reactions{gap:0;display:flex}.fs-reactions button{width:36px;height:36px;transition:transform .18s var(--ease-spring), background .15s;background:0 0;border:none;border-radius:9px;font-size:19px}.fs-reactions button:hover{background:var(--surface-3);transform:translateY(-3px)scale(1.15)}.fs-music{max-width:180px;color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex;overflow:hidden}.fs-music svg{color:var(--accent);flex:none}.stage.is-fullscreen .stage-bar{top:14px;bottom:auto}@media (width<=900px){.fs-reactions button:nth-child(n+5),.fs-music{display:none}.stage.is-fullscreen{aspect-ratio:auto}}.float-chat{z-index:4;pointer-events:none;width:min(360px,60%);transition:bottom .3s var(--ease-out);flex-direction:column;align-items:flex-end;gap:6px;margin:0;padding:0;list-style:none;display:flex;position:absolute;bottom:80px;right:16px}.float-bubble{background:color-mix(in srgb, var(--bg) 76%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow-wrap:anywhere;max-width:100%;box-shadow:0 0 0 1px var(--line), 0 6px 16px #00000059;animation:bubble-in .4s var(--ease-spring), bubble-out .6s ease-in 6.4s forwards;border-radius:12px;padding:7px 12px;font-size:14px}.float-bubble b{color:var(--author-color);font-weight:800}.float-bubble.is-system{color:var(--text-muted);font-size:12px}.float-bubble.is-highlighted{box-shadow:inset 3px 0 0 var(--author-color), 0 0 0 1px var(--line), 0 6px 16px #00000059}@keyframes bubble-in{0%{opacity:0;transform:translateY(24px)scale(.92)}}@keyframes bubble-out{to{opacity:0;transform:translateY(-36px)}}.fs-chat-input{background:var(--surface-2);border-radius:11px;align-items:center;gap:2px;width:min(320px,50vw);padding:0 4px 0 12px;animation:.2s ease-out fade-in;display:flex}.fs-chat-input input{background:0 0;border:none;outline:none;flex:1;min-width:0;padding:8px 0;font-size:14px}.fs-btn.is-on{background:var(--text);color:var(--on-accent)}.stage.is-idle .float-chat{bottom:20px}@media (width<=560px){.raid{bottom:calc(var(--dock-h) + 24px + env(safe-area-inset-bottom))}}.ghost{flex:none;overflow:visible}.ghost.is-animated .ghost-body{animation:2.6s ease-in-out infinite ghost-float}.ghost.is-animated .ghost-eyes{transform-box:fill-box;transform-origin:50%;animation:4.2s infinite ghost-blink}.ghost.is-animated .ghost-eyes-look{animation:2.4s ease-in-out infinite ghost-look}.ghost.is-animated.ghost-sleep .ghost-body{transform-box:fill-box;transform-origin:bottom;animation:3.2s ease-in-out infinite ghost-breathe}.ghost.is-animated .ghost-zzz text{opacity:0;animation:3s ease-out infinite ghost-z}.ghost.is-animated .ghost-zzz text:nth-child(2){animation-delay:.6s}.ghost.is-animated .ghost-zzz text:nth-child(3){animation-delay:1.2s}.ghost.is-animated.ghost-sad .ghost-body{animation:3.6s ease-in-out infinite ghost-float}.ghost.is-animated .ghost-led{animation:1.6s ease-in-out infinite ghost-led}.ghost.is-animated.ghost-sleep .ghost-led{opacity:.35;animation:none}@keyframes ghost-led{50%{opacity:.4}}@keyframes ghost-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes ghost-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03,.97)}}@keyframes ghost-blink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes ghost-look{0%,to{transform:translate(0)}25%{transform:translate(-2.5px)}65%{transform:translate(2.5px)}}@keyframes ghost-z{0%{opacity:0;transform:translateY(4px)}30%{opacity:1}to{opacity:0;transform:translate(3px,-4px)}}.ghost-state{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:12px;display:flex}.ghost-state p{margin:0}.loading-dots:after{content:"";text-align:left;width:1.2em;animation:1.2s steps(4,end) infinite loading-dots;display:inline-block}@keyframes loading-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}@media (prefers-reduced-motion:reduce){.ghost.is-animated *,.loading-dots:after{animation:none!important}.ghost.is-animated .ghost-zzz text{opacity:1}}.music{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);flex-direction:column;flex:none;gap:10px;padding:12px 14px 14px;display:flex}.music-header{min-height:28px;color:var(--accent);align-items:center;gap:8px;display:flex}.music-header .studio-label{color:var(--text);font-size:14px}.music-count{background:var(--surface-2);color:var(--text-muted);border-radius:6px;margin-left:auto;padding:1px 8px;font-size:12px;font-weight:600}.music-header .icon-btn{width:28px;height:28px;margin-left:auto}.music-count+.icon-btn{margin-left:0}.music-player{border-radius:var(--radius-md);background:var(--stage);min-width:200px;height:200px;box-shadow:inset 0 0 0 1px var(--line);position:relative;overflow:hidden}.music-player iframe{border:0;width:100%;height:100%;display:block}.music-player-note{text-align:center;color:var(--text-muted);place-items:center;margin:0;padding:12px;font-size:13px;display:grid;position:absolute;inset:0}.music-unlock{background:color-mix(in srgb, var(--stage) 75%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--text);border:none;justify-content:center;align-items:center;gap:8px;font-weight:700;animation:.3s ease-out fade-in;display:flex;position:absolute;inset:0}.music-unlock svg{color:var(--accent)}.music-now{flex-direction:column;gap:2px;min-width:0;animation:.4s ease-out fade-in;display:flex}.music-now strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.music-now span{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.music-now b{font-weight:700}.music-progress{font-variant-numeric:tabular-nums;color:var(--text-muted);align-items:center;gap:8px;font-size:11px;font-weight:600;display:flex}.music-bar{background:var(--surface-3);border-radius:2px;flex:1;height:4px;overflow:hidden}.music-bar span{border-radius:inherit;background:var(--accent);height:100%;box-shadow:0 0 8px var(--accent);transition:width 1s linear;display:block}.music-controls{align-items:center;gap:2px;display:flex}.music-vote{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);height:30px;color:var(--text-muted);align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.music-vote:hover:not(:disabled){border-color:var(--line-strong);color:var(--text)}.music-vote.is-voted{border-color:color-mix(in srgb, var(--speaking) 40%, transparent);color:var(--speaking)}.music-vote-count{background:var(--surface-3);color:var(--text);border-radius:6px;padding:1px 6px}.music-vote.is-voted .music-vote-count{animation:badge-pop .32s var(--ease-spring)}.music-controls input[type=range]{flex:1;min-width:0;margin-left:6px}.music-empty{color:var(--text-faint);margin:0;font-size:13px}.music-queue{flex-direction:column;gap:2px;max-height:220px;margin:0 -6px;padding:0;list-style:none;display:flex;overflow-y:auto}.music-item{border-radius:var(--radius-sm);animation:msg-in .3s var(--ease-out);align-items:center;gap:8px;padding:5px 6px;transition:background .15s;display:flex}.music-item:hover{background:var(--surface-2)}.music-index{text-align:center;width:16px;color:var(--text-faint);font-variant-numeric:tabular-nums;flex:none;font-size:12px;font-weight:600}.music-item img,.music-thumb-empty{object-fit:cover;background:var(--surface-2);border-radius:5px;flex:none;width:48px;height:27px}.music-item-text{flex-direction:column;flex:1;min-width:0;line-height:1.3;display:flex}.music-item-text span{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.music-item-text small{font-size:11px;font-weight:600}.music-item .icon-btn{width:28px;height:28px;color:var(--text-faint)}.music-item .icon-btn:hover{color:var(--danger)}.music-add{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--bg);color:var(--text-faint);align-items:center;gap:6px;padding:3px 3px 3px 12px;transition:border-color .15s,box-shadow .15s;display:flex}.music-add:hover{border-color:var(--line-strong)}.music-add:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);color:var(--accent)}.music-add input{background:0 0;border:none;outline:none;flex:1;min-width:0;padding:6px 0;font-size:13px;font-weight:500}.music-add input::placeholder{color:var(--text-faint)}.music-thumb-empty{color:var(--text-faint);place-items:center;display:grid}.btn{transition:background .12s,border-color .12s,color .12s,transform 80ms}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--on-accent);font-family:var(--font-display);text-transform:uppercase;letter-spacing:.05em;border:none;font-size:15px;font-weight:600}.btn-primary.btn-lg{font-size:16px}.btn-primary.btn-sm{font-size:13px}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.controls{flex:none;justify-content:center;display:flex}.dock{pointer-events:auto;align-items:center;gap:14px;display:flex}.dock-pill{border:1px solid var(--line-strong);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:999px;align-items:center;gap:2px;padding:4px;display:flex;box-shadow:0 12px 32px #0006}.control,.points-pill,.mic-chevron{height:42px;color:var(--text);background:0 0;border:none;flex:none;justify-content:center;align-items:center;transition:background .12s,color .12s,transform 80ms;display:inline-flex;position:relative}.control{border-radius:50%;width:42px}.control:hover,.points-pill:hover,.points-pill.is-open,.mic-chevron:hover,.mic-chevron.is-open{background:var(--surface-3)}.control:active,.points-pill:active{transform:scale(.92)}.control.is-off{color:var(--text-faint);background:var(--surface-2)}.control.is-off:hover{color:var(--text-muted);background:var(--surface-3)}.control.is-active{background:var(--surface-3)}.control.is-danger{color:var(--danger)}.control.is-danger:hover{background:var(--danger-bg)}.control-group{align-items:center;display:flex;position:relative}.mic-menu{display:flex}.mic-chevron{width:20px;color:var(--text-faint);border-radius:8px;margin-left:-2px}.mic-chevron:hover{color:var(--text)}.mic-chevron svg{transition:transform .25s var(--ease-out)}.points{position:relative}.points-pill{color:var(--owner);font:500 13px/1 var(--font-mono);border-radius:999px;gap:6px;padding:0 12px}.points-pill svg{fill:currentColor}.live-btn{border:2px solid var(--text);background:var(--bg);border-radius:50%;flex:none;place-items:center;width:58px;height:58px;padding:0;transition:border-color .15s,transform 80ms;display:grid;position:relative;box-shadow:0 12px 32px #00000073}.live-btn:before{content:"";background:var(--live);width:22px;height:22px;transition:width .18s var(--ease-out), height .18s var(--ease-out), border-radius .18s var(--ease-out);border-radius:50%}.live-btn:hover:before{width:26px;height:26px}.live-btn:active{transform:scale(.94)}.live-btn.is-live{border-color:var(--live);box-shadow:0 0 0 4px var(--live-soft), 0 12px 32px #00000073}.live-btn.is-live:before,.live-btn.is-live:hover:before{border-radius:4px;width:18px;height:18px}.tip{z-index:20;border:1px solid var(--line-strong);background:var(--surface-3);color:var(--text);white-space:nowrap;opacity:0;pointer-events:none;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font:500 12px/1 Geist,Segoe UI,system-ui,sans-serif;transition:opacity .12s,translate .12s;display:inline-flex;position:absolute;bottom:calc(100% + 12px);left:50%;translate:-50% 4px}:is(.control,.live-btn,.points-pill,.mic-chevron):is(:hover,:focus-visible)>.tip{opacity:1;transition-delay:.25s;translate:-50%}:is(.points:has(.points-panel) .tip,.reaction-picker:has(.reaction-tray) .tip,.mic-menu:has(.mic-panel) .tip){display:none}kbd{border:1px solid var(--line-strong);background:var(--bg);min-width:20px;color:var(--text-muted);font:500 11px/1 var(--font-mono);text-align:center;border-bottom-width:2px;border-radius:4px;padding:3px 5px;display:inline-block}.room-code{border:1px solid var(--line);background:var(--surface);border-radius:10px;align-items:stretch;height:34px;display:inline-flex;overflow:hidden}.room-code-lock{border:none;border-right:1px solid var(--line);width:34px;color:var(--text-faint);background:0 0;place-items:center;transition:background .12s,color .12s;display:grid}button.room-code-lock:hover{background:var(--surface-2);color:var(--text)}.room-code-lock.is-locked{color:var(--owner)}.room-code-copy{color:var(--text-muted);background:0 0;border:none;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.room-code-copy:hover{background:var(--surface-2);color:var(--text)}.room-code-id{color:var(--text);font:500 12px/1 var(--font-mono)}.live-timer,.studio-stats{font-family:var(--font-mono)}@media (width<=560px){.dock{justify-content:space-between;gap:6px;width:100%}.control{width:38px;height:38px}.points-pill,.mic-chevron{height:38px}.points-pill{padding:0 8px}.live-btn{width:52px;height:52px}.tip{display:none}}.watch-gate-btn{animation:1.6s ease-in-out .6s infinite watch-bob}.watch-gate-btn:active:not(:disabled){animation:none}@keyframes watch-bob{0%,to{translate:0}50%{translate:0 -3px}}.confirm-toast{border:1px solid color-mix(in srgb, var(--danger) 30%, var(--line));gap:14px;padding:10px 10px 13px 16px}.confirm-toast:before{background:var(--danger)}.confirm-text{font-weight:600}.confirm-actions{gap:6px;margin-left:auto;display:flex}input[type=range]{appearance:none;cursor:pointer;background:0 0;height:20px}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--fill,0%), var(--surface-3) var(--fill,0%));border-radius:3px;height:6px}input[type=range]::-moz-range-track{background:var(--surface-3);border-radius:3px;height:6px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:3px;height:6px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--text);border:none;border-radius:5px;width:16px;height:16px;margin-top:-5px;transition:transform .1s;box-shadow:0 1px 3px #00000080}input[type=range]::-moz-range-thumb{background:var(--text);border:none;border-radius:5px;width:16px;height:16px;box-shadow:0 1px 3px #00000080}input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.12)}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--accent-soft), 0 1px 3px #00000080}input[type=range]:disabled{cursor:default}.tile.is-interactive{font:inherit;color:inherit;text-align:left;cursor:pointer;padding:0;transition:border-color .15s,transform 80ms}.tile.is-interactive:hover{border-color:var(--line-strong)}.tile.is-interactive:active{transform:translateY(2px)}.tile.is-open{border-color:var(--accent)}.tile-volume{background:color-mix(in srgb, var(--bg) 82%, transparent);font-variant-numeric:tabular-nums;color:var(--text-muted);border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700;position:absolute;top:6px;right:6px}.icon-server-muted{color:var(--danger);flex:none}.icon-local-muted{color:var(--text-muted);flex:none}.user-menu{z-index:90;border-radius:var(--radius-lg);background:var(--surface-2);width:260px;box-shadow:var(--shadow-pop);animation:popover-in .18s var(--ease-out);flex-direction:column;gap:4px;padding:10px;display:flex;position:fixed}.user-menu-head{align-items:center;gap:8px;min-width:0;padding:2px 2px 6px;display:flex}.user-menu-head strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.user-menu-tag{background:var(--danger-bg);color:var(--danger);border-radius:6px;flex:none;margin-left:auto;padding:1px 7px;font-size:11px;font-weight:700}.user-menu-volume{align-items:center;gap:6px;padding:4px 2px;display:flex}.user-menu-volume input{flex:1;min-width:0}.user-menu-value{text-align:right;font-variant-numeric:tabular-nums;width:42px;color:var(--text-muted);font-size:12px;font-weight:700}.user-menu-item{border-radius:var(--radius-sm);text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:8px 10px;font-size:13px;font-weight:600;transition:background .12s;display:flex}.user-menu-item:hover{background:var(--surface-3)}.user-menu-item.is-danger{color:var(--danger)}.user-menu-item.is-danger:hover{background:var(--danger-bg)}.user-menu-sep{border:none;border-top:1px solid var(--line);width:100%;margin:4px 0}
