:root{--bg-base: #0b0d12;--bg-raised: #12151c;--bg-panel: rgba(17, 19, 26, .74);--bg-panel-solid: #14161f;--border-soft: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text-primary: #f3f1ea;--text-muted: #9aa0ac;--text-faint: #666c78;--accent: #f2a33a;--accent-strong: #ffb54f;--accent-ink: #241505;--accent-2: #7c9eff;--danger: #e5484d;--success: #3dd68c;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--shadow-panel: 0 12px 40px rgba(0, 0, 0, .45);--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased}button{font-family:inherit}a{color:var(--accent-2)}::selection{background:var(--accent);color:var(--accent-ink)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--text-primary);padding:10px 18px;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:transform .08s ease,background .15s ease,border-color .15s ease}.btn:hover{border-color:var(--border-strong);background:#1a1e28}.btn:active{transform:scale(.98)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover{background:#ffffff0f}.btn-icon{padding:8px;width:38px;height:38px;border-radius:10px}.btn:disabled{opacity:.45;cursor:not-allowed}input[type=text],input[type=search]{background:var(--bg-raised);border:1px solid var(--border-soft);color:var(--text-primary);border-radius:var(--radius-sm);padding:10px 12px;font-size:14px}input[type=text]:focus,input[type=search]:focus{border-color:var(--accent)}.home{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 20% 15%,#1a1610 0%,var(--bg-base) 45%),var(--bg-base)}.home-mark{display:flex;align-items:center;gap:10px;margin-bottom:34px}.home-mark .glyph{font-size:28px}.home-mark .name{font-size:20px;font-weight:700;letter-spacing:.02em}.home-card{width:100%;max-width:420px;background:var(--bg-panel-solid);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:28px}.home-card h1{font-size:20px;margin:0 0 6px}.home-card p{color:var(--text-muted);font-size:14px;margin:0 0 22px}.home-divider{display:flex;align-items:center;gap:12px;margin:22px 0;color:var(--text-faint);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.home-divider:before,.home-divider:after{content:"";flex:1;height:1px;background:var(--border-soft)}.join-row{display:flex;gap:10px}.join-row input{flex:1;text-transform:uppercase;letter-spacing:.12em;font-family:var(--font-mono)}.home-error{color:var(--danger);font-size:13px;margin-top:10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.modal-card{background:var(--bg-panel-solid);border:1px solid var(--border-soft);border-radius:var(--radius-lg);padding:26px;width:100%;max-width:360px}.modal-card h2{margin:0 0 6px;font-size:18px}.modal-card p{color:var(--text-muted);font-size:13px;margin:0 0 16px}.modal-card input{width:100%;margin-bottom:14px}.room{height:100%;display:flex;flex-direction:column;background:#000}.room-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:14px 18px;z-index:10;background:linear-gradient(to bottom,rgba(0,0,0,.65),transparent);pointer-events:none}.room-header>*{pointer-events:auto}.room-code-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;border:1px dashed var(--border-strong);border-radius:999px;background:#00000059;font-family:var(--font-mono);font-size:13px;letter-spacing:.12em;cursor:pointer}.room-code-chip .dot{width:6px;height:6px;border-radius:50%;background:var(--success)}.room-code-chip.disconnected .dot{background:var(--danger)}.room-actions{display:flex;gap:8px}.room-stage{position:relative;flex:1;min-height:0;display:flex}.room-stage:fullscreen,.room-stage:-webkit-full-screen{width:100vw;height:100vh;background:#000}.video-wrap{position:relative;flex:1;background:#000;display:flex;align-items:center;justify-content:center;overflow:hidden}.video-wrap video{width:100%;height:100%;object-fit:contain;background:#000}.video-empty{color:var(--text-muted);text-align:center;padding:32px;max-width:420px}.video-empty .glyph{font-size:40px;margin-bottom:12px;display:block}.load-video-bar{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;gap:8px;background:var(--bg-panel);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--border-soft);border-radius:999px;padding:8px;z-index:8;width:min(560px,calc(100% - 40px))}.load-video-bar input{flex:1;background:transparent;border:none;padding:6px 10px}.load-video-bar input:focus{border:none;outline:none}.mini-controls{position:absolute;top:70px;right:16px;display:flex;gap:6px;z-index:8;opacity:1;transition:opacity .4s ease}.idle-hidden{opacity:0!important;pointer-events:none!important}.host-only-note{position:absolute;bottom:16px;left:16px;background:var(--bg-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border-soft);border-radius:999px;padding:6px 12px;font-size:12px;color:var(--text-muted);z-index:8}.chat-panel{position:absolute;top:0;right:0;bottom:0;width:360px;max-width:88vw;display:flex;flex-direction:column;background:var(--bg-panel);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-left:1px solid var(--border-soft);box-shadow:var(--shadow-panel);z-index:6;transition:transform .25s ease,opacity .25s ease}.chat-panel.collapsed{transform:translate(100%)}.chat-panel.floating{top:auto;height:auto;max-height:58%;justify-content:flex-end;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-left:none;box-shadow:none;pointer-events:none}.chat-panel.floating.collapsed{transform:translate(110%);opacity:0}.chat-toggle{position:absolute;right:20px;bottom:84px;z-index:11;width:30px;height:30px;padding:0;border:1px solid var(--border-strong);border-radius:50%;background:var(--bg-panel-solid);color:var(--text-primary);font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-panel);transition:bottom .25s ease,right .25s ease,opacity .4s ease}.chat-toggle:hover{background:#1a1e28}.chat-toggle.collapsed{bottom:20px}.chat-header{padding:14px 16px;border-bottom:1px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.chat-header h2{font-size:13px;margin:0;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.08em}.presence-list{display:flex;align-items:center}.avatar{width:24px;height:24px;border-radius:50%;background:var(--accent-2);color:#0b0d12;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-left:-6px;border:2px solid var(--bg-panel-solid);flex-shrink:0}.avatar.self{background:var(--accent)}.chat-messages{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:10px;min-height:0}.chat-panel.floating .chat-messages{flex:0 1 auto;padding:28px 12px 6px;pointer-events:auto;-webkit-mask-image:linear-gradient(to bottom,transparent,black 90px,black 100%);mask-image:linear-gradient(to bottom,transparent,black 90px,black 100%)}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}.msg-row{display:flex;flex-direction:column;max-width:82%;position:relative}.msg-row.own{align-self:flex-end;align-items:flex-end}.msg-row.system{align-self:center;max-width:90%}.msg-meta{font-size:11px;color:var(--text-faint);margin-bottom:3px;padding:0 4px;display:flex;align-items:center;gap:6px;text-shadow:0 1px 3px rgba(0,0,0,.9)}.host-badge{color:var(--accent);font-weight:700}.reply-btn{background:none;border:none;color:var(--text-faint);cursor:pointer;font-size:11px;padding:0 2px;opacity:0;transition:opacity .15s ease}.msg-row:hover .reply-btn{opacity:1}.reply-quote{display:flex;gap:6px;align-items:baseline;font-size:11px;padding:3px 10px;margin-bottom:2px;border-left:2px solid var(--accent-2);background:#ffffff0d;border-radius:4px;max-width:100%}.reply-quote-name{color:var(--accent-2);font-weight:700;flex-shrink:0}.reply-quote-text{color:var(--text-faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bubble{background:#232733f0;color:var(--text-primary);padding:8px 12px;border-radius:16px 16px 16px 4px;font-size:14px;line-height:1.4;word-break:break-word;white-space:pre-wrap;box-shadow:0 2px 10px #00000059}.msg-row.own .bubble{background:var(--accent);color:var(--accent-ink);border-radius:16px 16px 4px}.msg-row.system .bubble{background:transparent;color:var(--text-faint);font-size:12px;padding:2px 8px;text-align:center;box-shadow:none;text-shadow:0 1px 3px rgba(0,0,0,.9)}.bubble.gif{padding:4px;background:transparent;box-shadow:none}.bubble.gif img{max-width:220px;max-height:220px;border-radius:12px;display:block}.typing-indicator{font-size:12px;color:var(--text-faint);padding:0 16px 4px;min-height:18px;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.9)}.composer{position:relative;padding:10px 12px;flex-shrink:0;border-top:1px solid var(--border-soft)}.chat-panel.floating .composer{padding:8px 10px 12px;pointer-events:auto;background:var(--bg-panel-solid);border:1px solid var(--border-soft);border-top:1px solid var(--border-soft);border-radius:var(--radius-lg);margin:0 4px 4px;box-shadow:var(--shadow-panel)}.reply-preview{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px;margin-bottom:6px;background:#ffffff0f;border-left:2px solid var(--accent);border-radius:6px;font-size:12px}.reply-preview>div{display:flex;gap:6px;overflow:hidden}.reply-preview .reply-quote-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reply-preview button{background:none;border:none;color:var(--text-faint);cursor:pointer;flex-shrink:0}.composer-row{display:flex;align-items:flex-end;gap:6px}.composer textarea{flex:1;resize:none;background:var(--bg-raised);border:1px solid var(--border-soft);color:var(--text-primary);border-radius:var(--radius-md);padding:10px 12px;font-size:14px;font-family:inherit;max-height:110px;min-height:40px}.composer textarea:focus{border-color:var(--accent);outline:none}.emoji-autocomplete{position:absolute;left:12px;right:12px;bottom:62px;background:var(--bg-panel-solid);border:1px solid var(--border-strong);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-panel);max-height:220px;overflow-y:auto}.emoji-autocomplete-item{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;font-size:14px}.emoji-autocomplete-item .glyph{font-size:18px}.emoji-autocomplete-item .code{color:var(--text-muted);font-family:var(--font-mono);font-size:12px}.emoji-autocomplete-item.active,.emoji-autocomplete-item:hover{background:#f2a33a24}.popover{position:absolute;bottom:62px;right:12px;width:300px;max-height:340px;background:var(--bg-panel-solid);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-panel);display:flex;flex-direction:column;overflow:hidden}.popover-search{padding:8px;border-bottom:1px solid var(--border-soft)}.popover-search input{width:100%}.emoji-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;padding:8px;overflow-y:auto}.emoji-grid button{background:none;border:none;font-size:20px;padding:6px;border-radius:8px;cursor:pointer}.emoji-grid button:hover{background:#ffffff14}.gif-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px;overflow-y:auto}.gif-grid img{width:100%;border-radius:8px;cursor:pointer;display:block;aspect-ratio:1 / 1;object-fit:cover}.popover-empty{padding:24px;text-align:center;color:var(--text-faint);font-size:13px}.subtitle-popover{width:320px}.popover-tabs{display:flex;border-bottom:1px solid var(--border-soft)}.popover-tabs button{flex:1;background:none;border:none;color:var(--text-muted);padding:10px 8px;font-size:13px;cursor:pointer;border-bottom:2px solid transparent}.popover-tabs button.active{color:var(--text-primary);border-bottom-color:var(--accent)}.popover-tabs button.clear{flex:0 0 auto;color:var(--danger)}.subtitle-results{display:flex;flex-direction:column;max-height:260px;overflow-y:auto}.subtitle-result{display:flex;align-items:center;gap:10px;padding:10px 12px;background:none;border:none;border-bottom:1px solid var(--border-soft);color:var(--text-primary);text-align:left;cursor:pointer;font-size:13px}.subtitle-result:hover{background:#ffffff0f}.subtitle-result .lang{flex-shrink:0;text-transform:uppercase;font-size:11px;color:var(--accent-2);font-weight:700;width:28px}.subtitle-result .release{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.youtube-embed,.youtube-embed>div,.youtube-embed iframe{width:100%;height:100%}.youtube-embed{position:absolute;top:0;right:0;bottom:0;left:0}@media (max-width: 720px){.room-stage{flex-direction:column}.chat-panel{position:relative;width:100%;max-width:none;height:42vh;border-left:none;border-top:1px solid var(--border-soft);transition:height .2s ease}.chat-panel.collapsed{height:0;transform:none;overflow:hidden}.video-wrap{flex:none;height:58vh}.chat-header{padding:14px 16px 10px}.chat-toggle{bottom:42vh;right:50%;transform:translate(50%);margin-bottom:8px}.chat-toggle.collapsed{bottom:8px;right:50%;transform:translate(50%)}}
