:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#0d0d0f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-accent: #3d8ef0;--color-accent-dim: rgba(61, 142, 240, .15);--color-accent-border: rgba(61, 142, 240, .28);--color-accent-hover: #1a6fd4;--color-badge-you: #3d8ef0;--color-badge-you-bg: rgba(61, 142, 240, .12);--color-badge-you-bdr: rgba(61, 142, 240, .22);--color-badge-host: #e8a020;--color-badge-host-bg: rgba(232, 160, 32, .13);--color-badge-host-bdr: rgba(232, 160, 32, .25);--color-badge-ctrl: #8b7cf8;--color-badge-ctrl-bg: rgba(139, 124, 248, .12);--color-badge-ctrl-bdr: rgba(139, 124, 248, .25);--color-badge-ctrl-row: rgba(60, 40, 140, .3);--color-drag-indicator: rgba(139, 124, 248, .55);--color-danger: #f05050;--color-danger-dim: rgba(240, 80, 80, .13);--color-danger-border: rgba(240, 80, 80, .28);--color-danger-text: #f47070;--color-success: #3ec97a;--color-success-dim: rgba(62, 201, 122, .12);--color-success-border: rgba(62, 201, 122, .25)}body{margin:0;min-width:320px}.user-list{width:210px;background:#141626eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(61,142,240,.16);border-radius:10px;box-shadow:0 4px 24px #0006;padding:10px}.user-list__status{font-size:12px;color:#555;margin-bottom:0;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.08)}.user-list__entries{display:flex;flex-direction:column;gap:2px;margin-top:8px;margin-bottom:8px}.user-entry{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:5px 6px;border-radius:6px}.user-entry--host{background:#e8a02012}.user-entry__name{font-size:13px;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.user-entry--me .user-entry__name,.user-entry--host .user-entry__name{color:#fff}.user-entry__left{display:flex;align-items:center;gap:4px;min-width:0}.user-entry__right{display:flex;align-items:center;gap:0;flex-shrink:0}.user-dot{width:6px;height:6px;border-radius:50%;background:var(--color-accent);flex-shrink:0;box-shadow:0 0 5px 1px #3d8ef08c,0 0 10px 3px #3d8ef033;animation:dot-pulse 2.4s ease-in-out infinite}@keyframes dot-pulse{0%,to{box-shadow:0 0 5px 1px #3d8ef08c,0 0 10px 3px #3d8ef033}50%{box-shadow:0 0 3px #3d8ef040,0 0 6px 1px #3d8ef014}}.badge{font-size:11px;padding:0 5px;border-radius:4px;height:18px;display:inline-flex;align-items:center;justify-content:center}.badge svg{display:block}.badge--ctrl svg{margin-right:0}.badge--host{background:var(--color-badge-host-bg);color:var(--color-badge-host);border:1px solid var(--color-badge-host-bdr)}.badge--ctrl{background:var(--color-badge-ctrl-bg);color:var(--color-badge-ctrl);border:1px solid var(--color-badge-ctrl-bdr);transition:transform .15s ease}.user-entry--ctrl{box-shadow:inset 2px 0 0 var(--color-accent)}.user-entry[style*=pointer]:hover{background:#ffffff0f}.name-form{border-top:1px solid rgba(255,255,255,.07);padding-top:8px}.name-input{width:100%;padding:6px 8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:12px;outline:none;box-sizing:border-box}.name-input:focus{border-color:#ffffff38}.name-input::placeholder{color:#444}.transfer-btn{background:none;border:none;color:var(--color-accent);cursor:pointer;padding:2px 0;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;max-width:0;overflow:hidden;margin-left:0;opacity:0;transform:translate(10px);pointer-events:none;transition:color .15s,background .15s,opacity .15s ease,transform .15s ease,max-width .15s ease,padding .15s ease,margin-left .15s ease}.user-entry:hover .transfer-btn{max-width:28px;padding:2px 4px;margin-left:3px;opacity:1;transform:translate(0);pointer-events:auto}.transfer-btn:hover{color:#fff;background:#3d8ef026}.kick-btn{background:none;border:none;color:var(--color-danger);cursor:pointer;padding:2px 0;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;max-width:0;overflow:hidden;margin-left:0;opacity:0;transform:translate(10px);pointer-events:none;transition:color .15s,background .15s,opacity .15s ease,transform .15s ease,max-width .15s ease,padding .15s ease,margin-left .15s ease}.user-entry:hover .kick-btn{max-width:28px;padding:2px 4px;margin-left:3px;opacity:1;transform:translate(0);pointer-events:auto}.kick-btn:hover{color:var(--color-danger-text);background:var(--color-danger-dim)}.queue-panel{width:320px;background:#141626eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(61,142,240,.16);border-radius:10px;box-shadow:0 4px 24px #0006;padding:10px;display:flex;flex-direction:column;min-height:0}.queue-panel__header{font-size:11px;font-weight:700;color:#555;text-transform:uppercase;letter-spacing:.08em;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;display:flex;align-items:center;justify-content:space-between}.queue-panel__body{display:flex;flex-direction:column}.queue-list-fade{position:relative}.queue-list-fade:not(.queue-list-fade--bottom):after{content:"";position:absolute;bottom:0;left:0;right:0;height:48px;background:linear-gradient(to bottom,transparent,rgba(10,11,20,.92));pointer-events:none;border-radius:0 0 4px 4px}.queue-panel__list{display:flex;flex-direction:column;gap:6px;max-height:400px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#333 transparent}.queue-item{display:flex;align-items:center;gap:8px;position:relative;border-top:2px solid transparent;transition:border-color .1s}.queue-item:hover{background:#ffffff05;border-radius:4px}.queue-item[draggable=true]{cursor:grab}.queue-item[draggable=true]:active{cursor:grabbing}.queue-item--drag-over{border-top-color:var(--color-drag-indicator)}.queue-item__thumb{width:60px;height:34px;border-radius:4px;object-fit:cover;background:#111;flex-shrink:0}.queue-item__title{font-size:13px;color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1;line-height:1.3}.queue-item__actions{display:flex;gap:4px;flex-shrink:0;max-width:0;overflow:hidden;opacity:0;pointer-events:none;transition:max-width .15s,opacity .15s}.queue-item:hover .queue-item__actions{max-width:100px;opacity:1;pointer-events:auto}.queue-item__btn{border:1px solid transparent;border-radius:4px;cursor:pointer;font-size:11px;padding:3px 6px;line-height:1;transition:background .1s,color .1s,border-color .1s}.queue-item__btn--play{background-color:var(--color-accent);color:#fff}.queue-item__btn--play:hover{background-color:var(--color-accent-hover)}.queue-item__btn--remove{background:none;border-color:var(--color-danger);color:var(--color-danger)}.queue-item__btn--remove:hover{background:var(--color-danger-dim);border-color:var(--color-danger);color:var(--color-danger)}.queue-empty{font-size:12px;color:#3a3a4a;text-align:center;margin:6px 0 4px}.queue-panel__footer{display:flex;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}.queue-panel__footer-btn{flex:1;padding:6px 10px;background:none;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#666;cursor:pointer;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;transition:background .15s,color .15s,border-color .15s}.queue-panel__footer-btn--skip{background-color:var(--color-accent);color:#fff;border-color:transparent}.queue-panel__footer-btn--skip:hover{background-color:var(--color-accent-hover);border-color:transparent}.queue-panel__footer-btn--clear{background:none;border-color:var(--color-danger);color:var(--color-danger)}.queue-panel__footer-btn--clear:hover{background:var(--color-danger-dim);border-color:var(--color-danger);color:var(--color-danger)}.queue-header__pill{display:flex;align-items:stretch;border:1px solid var(--color-accent-border);border-radius:6px;overflow:hidden;background:var(--color-accent-dim)}.queue-header__btn{background:none;border:none;border-left:1px solid var(--color-accent-border);color:var(--color-accent);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px 7px;transition:background .15s,color .15s;flex-shrink:0}.queue-header__btn:first-child{border-left:none}.queue-header__btn:hover{background:#3d8ef026}.queue-header__btn--active,.queue-header__btn--active:hover{background:var(--color-badge-ctrl);color:#fff}.queue-featured{border-radius:6px;overflow:hidden;border-top:2px solid transparent;transition:border-color .1s;flex-shrink:0}.queue-featured[draggable=true]{cursor:grab}.queue-featured[draggable=true]:active{cursor:grabbing}.queue-featured.queue-item--drag-over{border-top-color:var(--color-drag-indicator)}.queue-featured__thumb-wrap{position:relative;width:100%;aspect-ratio:16 / 9}.queue-featured__thumb{width:100%;height:100%;object-fit:cover;display:block;border-radius:6px;background:#111}.queue-featured__overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;background:#0000008c;opacity:0;transition:opacity .15s;border-radius:6px}.queue-featured:hover .queue-featured__overlay{opacity:1}.queue-featured__overlay .queue-item__btn{font-size:14px;padding:6px 10px}.queue-featured__title{margin:6px 2px 8px;font-size:13px;font-weight:500;color:#ddd;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.queue-divider{height:1px;background:#ffffff0f;margin:6px 0;flex-shrink:0}.animated-gradient-text{position:relative;margin:0 auto;display:flex;max-width:fit-content;flex-direction:row;align-items:center;justify-content:center;border-radius:1.25rem;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:box-shadow .5s ease-out;overflow:hidden;cursor:pointer}.animated-gradient-text.with-border{padding:.35rem .75rem}.gradient-overlay{position:absolute;inset:0;border-radius:inherit;z-index:0;pointer-events:none}.gradient-overlay:before{content:"";position:absolute;border-radius:inherit;width:calc(100% - 2px);height:calc(100% - 2px);left:50%;top:50%;transform:translate(-50%,-50%);background-color:#060010;z-index:-1}.text-content{display:inline-block;position:relative;z-index:2;background-clip:text;-webkit-background-clip:text;color:transparent}.player-layout{display:flex;flex-direction:column;height:100vh}.player-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.player-resize-wrap{position:relative}.player-resize-handle{position:absolute;right:-10px;top:15%;height:70%;width:20px;cursor:ew-resize;display:flex;align-items:center;justify-content:center;z-index:5}.player-resize-handle:after{content:"";width:1px;height:100%;background:#ffffff14;border-radius:3px;transition:width .15s ease,background .15s ease,box-shadow .15s ease}.player-resize-handle:before{content:"";position:absolute;width:3px;height:24px;background-image:radial-gradient(circle at center,rgba(255,255,255,.65) 1.5px,transparent 1.5px);background-size:3px 8px;background-repeat:repeat-y;background-position:center top;opacity:0;z-index:1;pointer-events:none;transition:opacity .15s}.player-resize-handle:hover:before{opacity:1}.player-resize-handle:hover:after{width:4px;background:var(--color-accent);box-shadow:0 0 8px 2px #3d8ef073,0 0 16px 4px #3d8ef02e}.player-wrapper{width:100%;aspect-ratio:16 / 9;border-radius:14px;overflow:hidden;background-color:#000;box-shadow:0 8px 40px #0009}.youtube-player{width:100%;height:100%}.youtube-player iframe{display:block}.bottom-bar{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 16px;background:#141626f2;border-top:1px solid rgba(61,142,240,.16);box-shadow:0 -4px 24px #0006}.vusync-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:inherit;position:relative;isolation:isolate;background-color:#000;background-image:linear-gradient(135deg,#121c488c,#06061259 45%,#1c0e3a80)}.vusync-title-wrap{font-size:clamp(3rem,8vw,7rem);font-weight:700;letter-spacing:-.03em}@keyframes blob1-drift{0%{transform:translate(-60%,-40%) scale(1)}20%{transform:translate(30%,-55%) scale(1.1)}40%{transform:translate(55%,20%) scale(.95)}60%{transform:translate(10%,55%) scale(1.05)}80%{transform:translate(-55%,20%) scale(1)}to{transform:translate(-60%,-40%) scale(1)}}@keyframes blob2-drift{0%{transform:translate(50%,-50%) scale(1.1)}25%{transform:translate(-40%,30%) scale(.9)}50%{transform:translate(-10%,-30%) scale(1.05)}75%{transform:translate(45%,45%) scale(1)}to{transform:translate(50%,-50%) scale(1.1)}}@keyframes create-btn-pulse{0%,to{box-shadow:0 0 8px 2px #3d8ef080,0 0 20px 6px #3d8ef02e}50%{box-shadow:0 0 4px 1px #3d8ef033,0 0 10px 2px #3d8ef012}}.lobby-hero{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;box-sizing:border-box;border-radius:inherit;position:relative;isolation:isolate;background-color:#000;background-image:linear-gradient(135deg,#121c488c,#06061259 45%,#1c0e3a80)}.lobby-hero:before,.vusync-placeholder:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(61,142,240,.06) 0%,transparent 70%);animation:blob1-drift 36s ease-in-out infinite}.lobby-hero:after,.vusync-placeholder:after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:-1;background:radial-gradient(ellipse 65% 55% at 50% 50%,rgba(139,124,248,.05) 0%,transparent 65%);animation:blob2-drift 48s ease-in-out infinite;animation-delay:-8s}.lobby-hero__logo{height:108px;width:auto;margin-bottom:6px;filter:drop-shadow(0 0 24px rgba(61,142,240,.4))}.lobby-hero__wordmark{font-size:4.5rem;font-weight:700;letter-spacing:-.03em;line-height:1}.lobby-hero__tagline{margin:0 0 24px;font-size:15px;color:#555}.lobby-hero__form{display:flex;flex-direction:column;gap:10px;width:100%;max-width:520px;align-items:stretch}.lobby-hero__name-input{padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:16px;outline:none;box-sizing:border-box}.lobby-hero__name-input:focus{border-color:#ffffff38}.lobby-hero__name-input::placeholder{color:#333}.lobby-hero__cta{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-top:6px}.lobby-hero__btn{padding:13px 28px;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s,opacity .2s;white-space:nowrap;flex-shrink:0}.lobby-hero__btn:disabled{opacity:.4;cursor:default}.lobby-hero__btn--create{width:100%;background-color:var(--color-accent);color:#fff;border:none;box-shadow:0 0 8px 2px #3d8ef080,0 0 20px 6px #3d8ef02e;animation:create-btn-pulse 2.4s ease-in-out infinite}.lobby-hero__btn--create:hover:not(:disabled){background-color:var(--color-accent-hover);animation:none;box-shadow:0 0 12px 4px #3d8ef0a6,0 0 28px 8px #3d8ef040}.lobby-hero__btn--join{background-color:var(--color-accent);color:#fff;border:none;flex-shrink:0;box-shadow:0 0 8px 2px #3d8ef080,0 0 20px 6px #3d8ef02e;animation:create-btn-pulse 2.4s ease-in-out infinite;animation-delay:-1.2s}.lobby-hero__btn--join:hover:not(:disabled){background-color:var(--color-accent-hover);animation:none;box-shadow:0 0 12px 4px #3d8ef0a6,0 0 28px 8px #3d8ef040}.lobby-hero__divider{display:flex;align-items:center;gap:12px;color:#4a4a4a;font-size:12px;letter-spacing:.06em;text-transform:lowercase}.lobby-hero__divider:before,.lobby-hero__divider:after{content:"";flex:1;height:1px;background:#ffffff38}.lobby-hero__join-form{display:flex;gap:8px;align-items:stretch}.lobby-hero__join-input{flex:1;min-width:0;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:16px;outline:none;box-sizing:border-box}.lobby-hero__join-input:focus{border-color:#ffffff38}.lobby-hero__join-input::placeholder{color:#333}.lobby-hero__join-input:disabled{opacity:.4}.lobby-hero__status{margin:0;font-size:13px;color:#555;text-align:center}.room-controls{display:flex;align-items:center;gap:8px}.room-join-form{display:flex;gap:8px}.room-join-input{padding:10px 14px;background-color:#2a2a2a;border:1px solid #444;border-radius:6px;color:#fff;font-size:14px;width:120px;outline:none}.room-join-input:focus{border-color:#666}.room-btn{padding:10px 20px;background:#ffffff0d;color:var(--color-accent);border:1px solid var(--color-accent);border-radius:6px;font-size:14px;cursor:pointer;transition:border-color .2s}.room-btn:hover:not(:disabled){border-color:var(--color-accent-hover)}.room-btn--create{border-color:var(--color-accent);color:var(--color-accent)}.room-btn--create:hover:not(:disabled){border-color:var(--color-accent-hover)}.room-btn--leave{border-color:var(--color-danger);color:var(--color-danger);padding:10px 12px;display:flex;align-items:center;justify-content:center}.room-btn--leave:hover:not(:disabled){background-color:var(--color-danger-dim);border-color:var(--color-danger)}.room-btn:disabled{opacity:.4;cursor:default}.bar-row{display:flex;align-items:center;width:100%;position:relative}.bar-row__center{display:flex;align-items:center;gap:12px;margin:0 auto;width:860px}.bar-row .url-form{flex:1;width:auto;max-width:none}.room-code{color:#ccc}.room-code--clickable{cursor:pointer;transition:color .15s}.room-code--clickable:hover{color:#fff}.room-code strong{font-family:monospace;color:#fff;letter-spacing:.05em}.room-status{color:#888}.url-form{display:flex;gap:8px;width:100%;max-width:640px;border-left:1px solid rgba(255,255,255,.07);padding-left:12px}.url-input{flex:1;padding:10px 14px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:14px;outline:none}.url-input:focus{border-color:#ffffff38}.url-submit{padding:10px 20px;background-color:var(--color-accent);color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s}.url-submit:hover{background-color:var(--color-accent-hover)}.right-panel{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;align-items:flex-end;z-index:10;max-height:calc(100vh - 110px)}.bar-row__leave{position:absolute;right:0}.url-queue-btn{padding:10px 14px;background:#ffffff0d;color:#aaa;border:1px solid rgba(255,255,255,.1);border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:border-color .2s,background .2s,color .2s;white-space:nowrap}.url-queue-btn:hover:not(:disabled){background:#ffffff17;border-color:#fff3;color:#fff}.url-queue-btn:disabled{opacity:.35;cursor:default}.toast-container{position:fixed;top:16px;display:flex;flex-direction:column;gap:8px;z-index:200;pointer-events:none}.toast-container--left{left:16px}.toast-container--right{right:16px}.toast{padding:10px 16px;border-radius:8px;font-size:13px;font-weight:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:toast-in .2s ease}.toast--danger{background:var(--color-danger-dim);border:1px solid var(--color-danger-border);color:var(--color-danger-text)}.toast--success{background:var(--color-success-dim);border:1px solid var(--color-success-border);color:var(--color-success)}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.lock-btn-wrap{display:flex;align-items:center;gap:6px;flex-shrink:0}.lock-btn{background:none;border:1px solid rgba(255,255,255,.1);cursor:pointer;font-size:18px;padding:4px 6px;border-radius:6px;line-height:1;color:#666;transition:background .15s,border-color .15s}.lock-btn:hover{background:#ffffff14;border-color:#fff3}.lock-btn--locked{border-color:#e8a02059;color:var(--color-badge-host)}.lock-btn--locked:hover{background:#e8a02014;border-color:#e8a0208c}.pw-modal-backdrop{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:300;animation:toast-in .15s ease}.pw-modal{background:#1e1e1e;border:1px solid #333;border-radius:12px;padding:28px 32px;min-width:320px;max-width:420px;width:90vw;box-shadow:0 16px 48px #000000b3;display:flex;flex-direction:column;gap:16px}.pw-modal__title{margin:0;font-size:15px;color:#ccc;font-weight:500}.pw-modal__title--error{color:var(--color-danger-text)}.pw-modal__form{display:flex;flex-direction:column;gap:12px}.pw-modal__input{padding:10px 14px;background-color:#2a2a2a;border:1px solid #444;border-radius:6px;color:#fff;font-size:14px;outline:none;width:100%;box-sizing:border-box}.pw-modal__input:focus{border-color:#666}.pw-modal__actions{display:flex;gap:8px;justify-content:flex-end}
