:root{--bg: #09090b;--surface: #111114;--surface-2: #18181d;--surface-3: #222229;--border: rgb(255 255 255 / .07);--border-strong: rgb(255 255 255 / .12);--text: #f4f4f5;--text-2: #a1a1aa;--text-3: #71717a;--accent: #8b5cf6;--accent-hover: #9d74ff;--accent-soft: rgb(139 92 246 / .16);--accent-grad: linear-gradient(135deg, #8b5cf6 0%, #d946ef 100%);--success: #22c55e;--warning: #f59e0b;--danger: #f43f5e;--glass: rgb(20 20 26 / .72);--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--shadow-lg: 0 20px 50px -12px rgb(0 0 0 / .6), 0 0 0 1px var(--border);--ease: cubic-bezier(.2, .8, .2, 1);--topbar-h: 60px;--chat-w: 360px;--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-emoji: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}.hidden{display:none!important}.spacer{flex:1}.ico{flex-shrink:0;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent}input{width:100%;min-height:44px;padding:10px 14px;border-radius:var(--r-md);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);font:inherit;font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}input::placeholder{color:var(--text-3)}input:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}input:focus-visible{outline:none}button{font:inherit;color:inherit;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 18px;border-radius:var(--r-md);border:1px solid transparent;font-weight:600;font-size:15px;white-space:nowrap;transition:background .15s,transform .1s,box-shadow .15s,border-color .15s}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent-grad);color:#fff;box-shadow:0 8px 24px -8px #8b5cf699}.btn-primary:hover{box-shadow:0 10px 28px -6px #8b5cf6bf;filter:brightness(1.08)}.btn-secondary{background:var(--surface-3);border-color:var(--border-strong)}.btn-secondary:hover{background:#2a2a33}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--surface-3);color:var(--text)}.btn-lg{min-height:50px;font-size:16px}.btn-sm{min-height:38px;padding:0 14px;font-size:14px}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;padding:0;border:none;border-radius:var(--r-md);background:transparent;color:var(--text-2);transition:background .15s,color .15s}.icon-btn:hover{background:var(--surface-3);color:var(--text)}.field{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:500;color:var(--text-2)}.field-error{margin:0;min-height:20px;color:var(--danger);font-size:13px;text-align:center}.lobby{position:relative;min-height:100dvh;display:grid;place-items:center;padding:max(24px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom));overflow:hidden}.lobby-glow{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(40% 35% at 30% 25%,rgb(139 92 246 / .28),transparent 70%),radial-gradient(35% 30% at 75% 70%,rgb(217 70 239 / .2),transparent 70%);filter:blur(40px);pointer-events:none;animation:drift 18s ease-in-out infinite alternate}@keyframes drift{to{transform:translate3d(3%,-2%,0) scale(1.05)}}.lobby-card{position:relative;width:100%;max-width:420px;display:flex;flex-direction:column;gap:24px;padding:56px 28px 20px;background:#111114bf;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid var(--border-strong);border-radius:24px;box-shadow:var(--shadow-lg)}.lobby-brand{display:flex;align-items:center;justify-content:center;gap:12px}.logo{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:var(--accent-grad);color:#fff;box-shadow:0 10px 26px -8px #8b5cf6b3}.lobby-card h1{margin:0;font-size:22px;font-weight:700;letter-spacing:-.02em}.step{position:relative;display:none;flex-direction:column;gap:12px;margin:0}.step.active{display:flex;animation:step-in .32s var(--ease)}@keyframes step-in{0%{opacity:0;transform:translate(14px)}}.step[data-step=connecting]{align-items:center;padding:16px 0 8px}.step-icon{width:48px;height:48px;display:grid;place-items:center;margin:0 auto 2px;border-radius:16px;background:var(--accent-soft);color:var(--accent-hover)}.step-title{margin:0;text-align:center;font-size:19px;font-weight:700;letter-spacing:-.01em}.step-sub{margin:-6px 0 6px;text-align:center;color:var(--text-2);font-size:14px}.step .field-error{margin:-4px 0 0;min-height:0}.step .field-error:empty{display:none}.back-btn{position:absolute;top:0;left:-6px;display:grid;place-items:center;width:38px;height:38px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--text-2);transition:background .15s,color .15s}.back-btn:hover{background:var(--surface-3);color:var(--text)}.spinner-inline{width:36px;height:36px;margin-bottom:6px;border:3px solid rgb(255 255 255 / .12);border-top-color:var(--accent-hover);border-radius:50%;animation:spin .8s linear infinite}.btn.loading{pointer-events:none;opacity:.7}.greeting{margin:0 0 4px;text-align:center;color:var(--text-2);font-size:15px}.greeting b{color:var(--text)}.link-btn{display:inline;margin-left:4px;padding:0;border:none;background:none;color:var(--accent-hover);font-size:13px;font-weight:500}.link-btn:hover{text-decoration:underline}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:18px 16px 16px;border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface-2);text-align:left;transition:border-color .15s,background .15s,transform .12s,box-shadow .15s}.choice:hover{border-color:#8b5cf68c;background:#1d1b26;box-shadow:0 10px 30px -12px #8b5cf673;transform:translateY(-2px)}.choice:active{transform:translateY(0) scale(.98)}.choice-icon{width:44px;height:44px;display:grid;place-items:center;margin-bottom:8px;border-radius:14px;background:var(--accent-soft);color:var(--accent-hover)}#create .choice-icon{background:var(--accent-grad);color:#fff}.choice-title{font-weight:700;font-size:15px}.choice-sub{color:var(--text-3);font-size:12.5px;line-height:1.35}.resume{display:flex;align-items:center;gap:10px;min-height:46px;padding:0 14px;border:1px dashed var(--border-strong);border-radius:var(--r-md);background:transparent;color:var(--text-2);font-size:14px;transition:border-color .15s,color .15s,background .15s}.resume span{flex:1;text-align:left}.resume:hover{border-color:#8b5cf68c;background:var(--surface-2);color:var(--text)}.link-btn.center{align-self:center;margin:2px 0 0}.wipe-link{display:inline-flex;align-items:center;gap:6px;margin-top:-12px;color:var(--text-3);font-size:12px}.wipe-link:hover{color:var(--danger)}.toggle-row{display:flex;align-items:center;gap:10px;color:var(--text-2);font-size:13px;cursor:pointer}.toggle-row input{width:18px;height:18px;min-height:0;margin:0;padding:0;accent-color:var(--accent);flex-shrink:0}.chat-head{align-items:center}.lang-picker{position:relative;display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface-2);color:var(--text-2);font-size:13px;cursor:pointer;transition:border-color .15s,color .15s}.lang-picker:hover,.lang-picker:focus-within{border-color:#8b5cf680;color:var(--text)}.lang-picker select{-moz-appearance:none;appearance:none;-webkit-appearance:none;border:none;background:transparent;color:inherit;font:inherit;cursor:pointer;outline:none;padding:0}.lang-picker select option{background:var(--surface-2);color:var(--text)}.lobby-lang{position:absolute;top:14px;inset-inline-end:14px}.lobby-foot{display:flex;align-items:center;justify-content:center;gap:6px;margin:0;color:var(--text-3);font-size:12px}@media(max-width:380px){.choice-grid{grid-template-columns:1fr}.choice{flex-direction:row;align-items:center;gap:12px}.choice-icon{margin:0}.choice-sub{display:none}}.room{height:100dvh;display:grid;grid-template-rows:var(--topbar-h) minmax(0,1fr)}.topbar{display:flex;align-items:center;gap:10px;padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left));padding-top:env(safe-area-inset-top);height:calc(var(--topbar-h) + env(safe-area-inset-top));border-bottom:1px solid var(--border);background:#09090bd9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);min-width:0}.brand{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:var(--accent-grad);color:#fff;flex-shrink:0}.room-chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-2);font-size:13px;min-width:0;transition:background .15s,border-color .15s}.room-chip:hover{background:var(--surface-3);border-color:#8b5cf680}.room-chip code{color:var(--text);font:600 13px/1 ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;letter-spacing:.04em;max-width:20ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:767px){.room-chip code{max-width:11ch}}.conn{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-3);white-space:nowrap}.conn-dot{width:8px;height:8px;border-radius:50%;background:var(--warning);box-shadow:0 0 0 3px #f59e0b2e}.conn.online .conn-dot{background:var(--success);box-shadow:0 0 0 3px #22c55e2e}.conn.online .conn-text{display:none}.conn.offline .conn-dot{background:var(--danger);box-shadow:0 0 0 3px #f43f5e2e}.avatars{display:flex;align-items:center;padding-left:8px}.avatars .avatar{width:32px;height:32px;margin-left:-8px;border:2px solid var(--bg);font-size:13px}.avatars .avatar-more{background:var(--surface-3);color:var(--text-2);font-size:11px}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:hsl(var(--hue, 260) 55% 42%);color:#fff;font-weight:700;font-size:14px;flex-shrink:0;-webkit-user-select:none;user-select:none}.room-body{position:relative;display:grid;grid-template-columns:minmax(0,1fr) var(--chat-w);min-height:0}.stage{display:flex;flex-direction:column;justify-content:center;gap:10px;padding:20px;min-width:0;min-height:0;overflow:auto}.player{position:relative;width:min(100%,calc((100dvh - var(--topbar-h) - 80px) * 16 / 9));aspect-ratio:16 / 9;margin-inline:auto;background:#000;border-radius:var(--r-xl);overflow:hidden;box-shadow:0 30px 60px -20px #000c,0 0 0 1px var(--border);isolation:isolate}.player video{width:100%;height:100%;display:block;object-fit:contain;background:#000}.room.idle.playing .player{cursor:none}.now-playing{margin:0;text-align:center;color:var(--text-3);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:24px;text-align:center;background:radial-gradient(60% 60% at 50% 40%,#1a1625,#000)}.empty-icon{width:64px;height:64px;display:grid;place-items:center;margin-bottom:8px;border-radius:20px;background:var(--accent-soft);color:var(--accent-hover)}.empty-title{margin:0;font-weight:600;font-size:17px}.empty-sub{margin:0 0 14px;color:var(--text-2);font-size:14px}.unlock{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;border:none;background:#0009;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;font-size:16px;font-weight:500}.unlock-icon{width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:var(--accent-grad);box-shadow:0 0 0 10px #8b5cf633;animation:pulse 1.8s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 18px #8b5cf60d}}.spinner{position:absolute;top:50%;left:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border:3px solid rgb(255 255 255 / .15);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;pointer-events:none;z-index:2}@keyframes spin{to{transform:rotate(360deg)}}.controls{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:40px 14px max(10px,env(safe-area-inset-bottom));background:linear-gradient(to top,rgb(0 0 0 / .85),rgb(0 0 0 / .4) 60%,transparent);transition:opacity .25s var(--ease),transform .25s var(--ease)}.room.idle.playing .controls{opacity:0;transform:translateY(8px);pointer-events:none}.room:not(.has-src) .controls{display:none}.room:not(.is-owner) .owner-only{display:none!important}.room:not(.is-owner) .player video{cursor:default}.seek:disabled{cursor:default}.seek:disabled::-webkit-slider-thumb{transform:scale(0)!important}.seek:disabled::-moz-range-thumb{transform:scale(0)!important}.avatar.is-owner{position:relative;overflow:visible}.avatar.is-owner:after{content:"👑";position:absolute;top:-9px;right:-6px;font-size:13px;line-height:1;font-family:var(--font-emoji);filter:drop-shadow(0 1px 2px rgb(0 0 0 / .6))}.controls-row{display:flex;align-items:center;gap:4px}.ctrl-btn{position:relative;display:grid;place-items:center;width:42px;height:42px;padding:0;border:none;border-radius:50%;background:transparent;color:#fff;transition:background .15s,transform .1s}.ctrl-btn:hover{background:#ffffff24}.ctrl-btn:active{transform:scale(.92)}.volume{display:flex;align-items:center}.volume-range{width:0;opacity:0;transition:width .2s var(--ease),opacity .2s}.volume:hover .volume-range,.volume:focus-within .volume-range{width:84px;opacity:1}.time{margin-left:6px;font-size:13px;font-weight:500;color:#ffffffe6;font-variant-numeric:tabular-nums;white-space:nowrap}.seek-wrap{padding:0 6px 4px}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:0;height:20px;padding:0;border:none;border-radius:0;background:transparent;box-shadow:none;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--accent) var(--p, 0%),rgb(255 255 255 / .28) var(--p, 0%));transition:height .15s}input[type=range]::-moz-range-track{height:4px;border-radius:4px;background:linear-gradient(to right,var(--accent) var(--p, 0%),rgb(255 255 255 / .28) var(--p, 0%))}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0006;transform:scale(0);transition:transform .15s}input[type=range]::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:#fff;transform:scale(0);transition:transform .15s}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:focus-visible::-webkit-slider-thumb,input[type=range]:active::-webkit-slider-thumb{transform:scale(1)}input[type=range]:hover::-moz-range-thumb,input[type=range]:focus-visible::-moz-range-thumb{transform:scale(1)}.seek:hover::-webkit-slider-runnable-track{height:6px}input[type=range]:focus{box-shadow:none}.badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;line-height:18px}.fs-only{display:none}.chat{position:relative;display:flex;flex-direction:column;min-height:0;background:var(--surface);border-left:1px solid var(--border)}.chat-head{display:flex;align-items:baseline;gap:8px;padding:16px 18px 12px;border-bottom:1px solid var(--border)}.chat-title{font-weight:700;font-size:16px}.chat-count{color:var(--text-3);font-size:13px}.messages{flex:1;display:flex;flex-direction:column;margin:0;padding:12px 8px;list-style:none;overflow-y:auto;overscroll-behavior:contain}.messages>:first-child{margin-top:auto}.msg{display:flex;align-items:flex-end;gap:8px;padding:0 4px;margin-top:8px;transition:opacity .4s;animation:msg-in .25s var(--ease);-webkit-user-select:text;user-select:text;-webkit-touch-callout:none}@keyframes msg-in{0%{opacity:0;transform:translateY(6px)}}.msg.mine{flex-direction:row-reverse}.msg.mine .avatar{display:none}.msg .avatar{width:32px;height:32px;font-size:13px}.msg.grouped{margin-top:2px}.msg.grouped .avatar{visibility:hidden;height:0}.bubble{position:relative;max-width:min(80%,520px);min-width:0;padding:6px 10px 6px 12px;border-radius:18px 18px 18px 6px;background:var(--surface-3);color:#ececef;transition:box-shadow .15s,filter .15s}.msg.grouped .bubble{border-top-left-radius:6px}.msg.mine .bubble{border-radius:18px 18px 6px;background:linear-gradient(135deg,#7c4dff,#b14aed);color:#fff}.msg.mine.grouped .bubble{border-top-right-radius:6px}.msg.targeted .bubble{box-shadow:0 0 0 2px var(--accent)}.msg-name{margin-bottom:1px;font-weight:600;font-size:13.5px;color:hsl(var(--hue, 260) 85% 74%);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg.mine .msg-name,.msg.grouped .msg-name{display:none}.msg-text{font-size:15px;line-height:1.4;overflow-wrap:anywhere;white-space:pre-wrap}.msg-time{float:right;position:relative;top:6px;margin-left:10px;font-size:11px;line-height:1.4;color:var(--text-3);white-space:nowrap;-webkit-user-select:none;user-select:none}.msg.mine .msg-time{color:#ffffffb3}.msg .bubble.emoji-only,.msg.mine .bubble.emoji-only{padding:0 2px;background:none}.bubble.emoji-only .msg-text{display:flex;align-items:flex-end;gap:6px;font-size:40px;line-height:1.15;font-family:var(--font-emoji)}.msg .bubble.emoji-only .msg-time{float:none;top:auto;margin:0 0 4px;padding:1px 7px;border-radius:999px;background:#00000073;color:#ffffffd9;font-family:var(--font)}.msg-react-btn{align-self:center;display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--border-strong);border-radius:50%;background:var(--surface-2);color:var(--text-2);flex-shrink:0;opacity:0;transform:scale(.85);transition:opacity .12s,transform .12s,color .12s}.msg:hover .msg-react-btn,.msg:focus-within .msg-react-btn{opacity:1;transform:none}.msg-react-btn:hover{color:var(--text)}.reactions{display:flex;flex-wrap:wrap;gap:4px}.has-reactions .reactions{margin-top:6px}.rx{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 8px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-2);font-size:12px;font-weight:600;transition:background .12s,border-color .12s,transform .1s;animation:pop .25s var(--ease)}@keyframes pop{0%{transform:scale(.6)}}.rx:hover{border-color:#ffffff40}.rx:active{transform:scale(.92)}.rx.mine{background:var(--accent-soft);border-color:#8b5cf699;color:#ddd6fe}.rx-emoji{font-family:var(--font-emoji);font-size:15px;line-height:1}.rx-add{padding:0 7px;color:var(--text-3);opacity:0;transition:opacity .12s}.msg:hover .rx-add,.msg:focus-within .rx-add{opacity:1}.msg.mine .rx{background:#ffffff29;border-color:transparent;color:#fff}.msg.mine .rx.mine{background:#ffffff57}.msg.mine .rx-add{color:#fffc}.sys{align-self:center;margin:10px 0 4px;padding:3px 10px;border-radius:999px;background:#ffffff0a;color:var(--text-3);font-size:12px;text-align:center;transition:opacity .4s}.composer{display:flex;align-items:center;gap:6px;padding:10px 12px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--border)}.composer input{flex:1;min-height:42px;border-radius:999px;padding:8px 16px;background:var(--surface-2)}.send-btn{display:grid;place-items:center;width:42px;height:42px;padding:0;border:none;border-radius:50%;background:var(--accent-grad);color:#fff;flex-shrink:0;transition:transform .1s,opacity .15s,filter .15s}.send-btn:hover{filter:brightness(1.1)}.send-btn:active{transform:scale(.92)}.send-btn:disabled{opacity:.4;cursor:default}.reaction-bar{position:absolute;z-index:20;display:flex;align-items:center;gap:2px;padding:4px;border-radius:999px;background:var(--glass);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);box-shadow:var(--shadow-lg);animation:bar-in .18s var(--ease)}@keyframes bar-in{0%{opacity:0;transform:translateY(4px) scale(.95)}}.rb-emoji,.rb-more{display:grid;place-items:center;width:38px;height:38px;padding:0;border:none;border-radius:50%;background:transparent;font-family:var(--font-emoji);font-size:22px;line-height:1;transition:transform .15s var(--ease),background .15s}.rb-emoji:hover,.rb-emoji:focus-visible{transform:scale(1.25) translateY(-2px);background:#ffffff14}.rb-more{color:var(--text-2)}.rb-more:hover{background:#ffffff1a;color:var(--text)}.emoji-picker{position:absolute;left:8px;right:8px;bottom:calc(66px + env(safe-area-inset-bottom));z-index:15;display:flex;flex-direction:column;height:min(340px,60%);border-radius:var(--r-lg);background:var(--glass);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);box-shadow:var(--shadow-lg);overflow:hidden;animation:bar-in .18s var(--ease)}.ep-tabs{display:flex;gap:2px;padding:6px;border-bottom:1px solid var(--border)}.ep-tab{flex:1;display:grid;place-items:center;height:34px;padding:0;border:none;border-radius:var(--r-sm);background:transparent;color:var(--text-3);transition:background .15s,color .15s}.ep-tab:hover{color:var(--text)}.ep-tab.active{background:#ffffff14;color:var(--accent-hover)}.ep-body{flex:1;overflow-y:auto;padding:4px 8px 8px;overscroll-behavior:contain}.ep-section h4{position:sticky;top:0;margin:0;padding:8px 4px 6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);background:linear-gradient(rgb(22 22 28 / .95) 70%,transparent)}.ep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr))}.ep-emoji{aspect-ratio:1;display:grid;place-items:center;padding:0;border:none;border-radius:var(--r-sm);background:transparent;font-family:var(--font-emoji);font-size:24px;line-height:1;transition:background .1s,transform .1s}.ep-emoji:hover,.ep-emoji:focus-visible{background:#ffffff1a;transform:scale(1.12)}.toast{position:absolute;left:50%;bottom:24px;z-index:30;max-width:min(420px,calc(100% - 32px));padding:12px 18px;border-radius:var(--r-md);background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-lg);font-size:14px;transform:translate(-50%);animation:toast-in .25s var(--ease)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}}.dialog{width:min(480px,calc(100% - 32px));padding:0;border:none;border-radius:var(--r-xl);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lg)}.dialog[open]{animation:dialog-in .22s var(--ease)}@keyframes dialog-in{0%{opacity:0;transform:translateY(12px) scale(.98)}}.dialog::backdrop{background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-body{display:flex;flex-direction:column;gap:18px;padding:22px 24px 24px}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin:-6px -10px -4px 0}.dialog-head h2{margin:0;font-size:19px;font-weight:700}.hints{margin:0;padding:12px 14px 12px 32px;border-radius:var(--r-md);background:var(--surface-2);color:var(--text-2);font-size:13px;line-height:1.7}.dialog-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.dialog-sub{margin:-6px 0 0;color:var(--text-2);font-size:14px}.dialog-note{margin:-6px 0 0;color:var(--text-3);font-size:13px}.invite-link{padding:14px 16px;border:1px dashed rgb(139 92 246 / .5);border-radius:var(--r-md);background:var(--surface-2);color:var(--text);font:500 13px/1.5 ui-monospace,SF Mono,Cascadia Code,Consolas,monospace;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.invite-link.pending{color:var(--text-3);font-family:var(--font);-webkit-user-select:none;user-select:none}.btn:disabled{opacity:.5;pointer-events:none}.room.fs{grid-template-rows:minmax(0,1fr)}.room.fs .topbar,.room.fs .now-playing{display:none}.room.fs .room-body{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:block;background:#000}.room.fs .stage{position:absolute;top:0;right:0;bottom:0;left:0;padding:0}.room.fs .player{width:100%;height:100%;aspect-ratio:auto;border-radius:0;box-shadow:none}.room.fs .fs-only{display:grid}.room.fs .chat{position:absolute;top:0;right:0;bottom:92px;z-index:5;width:min(var(--chat-w),42vw);padding-right:env(safe-area-inset-right);background:linear-gradient(to left,rgb(0 0 0 / .55),rgb(0 0 0 / .25) 70%,transparent);border:none;transition:background .4s,opacity .3s}.room.fs .chat-head{display:none}.room.fs .messages{mask-image:linear-gradient(to bottom,transparent 0,#000 25%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 25%)}.room.fs .bubble:not(.emoji-only){backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 14px #00000059}.room.fs .msg:not(.mine) .bubble:not(.emoji-only){background:#18181eb8}.room.fs .msg.mine .bubble:not(.emoji-only){background:linear-gradient(135deg,#7c4dffd9,#b14aedd9)}.room.fs .bubble.emoji-only{filter:drop-shadow(0 2px 6px rgb(0 0 0 / .5))}.room.fs .composer{border-top:none;transition:opacity .3s,transform .3s var(--ease)}.room.fs .composer input{background:#14141ab3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.room.fs.idle .chat{background:transparent}.room.fs.idle .composer{opacity:0;transform:translateY(8px);pointer-events:none}.room.fs.idle .msg:not(.fresh),.room.fs.idle .sys:not(.fresh){opacity:0}.room.fs.idle .msg-react-btn{display:none}.room.fs.idle.playing .chat{bottom:24px}.room.fs.chat-hidden .chat{opacity:0;pointer-events:none}.room.fs .controls{z-index:6}@media(max-width:1100px){:root{--chat-w: 320px}}@media(max-width:767px){:root{--topbar-h: 56px}.topbar{gap:8px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(8px,env(safe-area-inset-right))}.brand,.room-chip-label,.hide-sm,.conn-text{display:none}#change-source{width:40px;padding:0}.avatars .avatar:nth-child(n+4):not(.avatar-more){display:none}.room-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}.stage{padding:0;gap:0;overflow:visible}.player{width:100%;border-radius:0;box-shadow:none}.now-playing{display:none}.chat{border-left:none;border-top:1px solid var(--border)}.chat-head{padding:10px 16px 8px}.toast{top:12px;bottom:auto}.volume-range{display:none}.controls{padding:28px 8px 6px}.emoji-picker{left:6px;right:6px;height:min(320px,70%)}.dialog{width:100%;max-width:none;margin:auto 0 0;border-radius:var(--r-xl) var(--r-xl) 0 0}.dialog-body{padding-bottom:max(24px,env(safe-area-inset-bottom))}.dialog[open]{animation:sheet-in .28s var(--ease)}@keyframes sheet-in{0%{transform:translateY(100%)}}.room.fs .controls{padding-bottom:max(8px,env(safe-area-inset-bottom))}}@media(max-width:767px)and (orientation:portrait){.room.fs .chat{top:auto;left:0;width:100%;height:42%;bottom:96px;background:linear-gradient(to top,rgb(0 0 0 / .6),transparent)}}@media(orientation:landscape)and (max-height:520px){:root{--topbar-h: 48px;--chat-w: min(320px, 38vw)}.room-body{grid-template-columns:minmax(0,1fr) var(--chat-w);grid-template-rows:none}.stage{padding:6px}.player{width:min(100%,calc((100dvh - var(--topbar-h) - 12px) * 16 / 9));border-radius:var(--r-md)}.chat{border-top:none;border-left:1px solid var(--border)}.chat-head{display:none}.room.fs .chat{top:0;left:auto;width:var(--chat-w);height:auto;bottom:76px}}@media(pointer:coarse){.msg-react-btn{display:none}.rx-add{opacity:1}.ctrl-btn{width:44px;height:44px}input[type=range]::-webkit-slider-thumb{transform:scale(1)}input[type=range]::-moz-range-thumb{transform:scale(1)}}[dir=rtl] .flip-rtl{transform:scaleX(-1)}[dir=rtl] .controls{direction:ltr}[dir=rtl] .back-btn{left:auto;right:-6px}[dir=rtl] .back-btn .ico{transform:scaleX(-1)}[dir=rtl] .msg-time{float:left;margin-left:0;margin-right:10px}[dir=rtl] .bubble{border-radius:18px 18px 6px}[dir=rtl] .msg.grouped .bubble{border-top-left-radius:18px;border-top-right-radius:6px}[dir=rtl] .msg.mine .bubble{border-radius:18px 18px 18px 6px}[dir=rtl] .msg.mine.grouped .bubble{border-top-right-radius:18px;border-top-left-radius:6px}[dir=rtl] .room.fs .chat{right:auto;left:0;padding-right:0;padding-left:env(safe-area-inset-left);background:linear-gradient(to right,rgb(0 0 0 / .55),rgb(0 0 0 / .25) 70%,transparent)}[dir=rtl] .avatar.is-owner:after{right:auto;left:-6px}[dir=rtl] .hints{padding:12px 32px 12px 14px}[dir=rtl] .choice,[dir=rtl] .resume span{text-align:right}:lang(fa) body,:lang(fa) input,:lang(fa) button,:lang(fa) select{font-family:"Vazirmatn","Segoe UI",Tahoma,"Noto Sans Arabic",var(--font)}@media(max-width:767px){.room-lang{padding:0 8px}.room-lang .ico{display:none}#invite-btn{width:40px;padding:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
