:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#fff;background-color:#121212;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;min-height:100dvh}.vinyl{border-radius:50%;background:conic-gradient(from 0deg,#111,#1a1a1a,#111,#1a1a1a,#111,#1a1a1a,#111,#1a1a1a,#111,#1a1a1a,#111,#1a1a1a,#111 360deg);position:relative;box-shadow:0 0 0 3px #222,0 0 30px var(--black-50);flex-shrink:0}.vinyl-spinning{animation:spin 2s linear infinite}.vinyl-grooves{position:absolute;inset:10%;border-radius:50%;border:1px solid var(--white-03);box-shadow:inset 0 0 0 8px var(--white-02),inset 0 0 0 16px var(--white-01),inset 0 0 0 24px var(--white-02)}.vinyl-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40%;height:40%;border-radius:50%;overflow:hidden;background:var(--bg-elevated);border:2px solid #333}.vinyl-art{width:100%;height:100%;object-fit:cover}.vinyl-dot{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,var(--accent-coral) 0%,var(--bg-elevated) 70%)}.countdown-overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--black-90);z-index:100}.da-gate{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:1.5rem;background-color:var(--bg-deep);background-image:url(/assets/loading.png);background-size:cover;background-position:center}.da-gate:before{content:"";position:absolute;inset:0;background:linear-gradient(160deg,#04040cd1,#04040ce6),radial-gradient(ellipse at 20% 30%,color-mix(in srgb,var(--accent-coral) 6%,transparent) 0%,transparent 55%),radial-gradient(ellipse at 80% 70%,color-mix(in srgb,var(--accent-cyan) 5%,transparent) 0%,transparent 55%)}.da-card{position:relative;z-index:1;width:min(380px,100%);padding:2rem 1.75rem;border-radius:var(--radius-lg);background:#0a0a0ae0;border:1px solid var(--border-subtle);box-shadow:var(--shadow-lg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);text-align:center;display:flex;flex-direction:column;align-items:center}.da-header{width:100%;display:flex;justify-content:center;margin-bottom:1.5rem}.da-brand-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .8rem .3rem .6rem;border-radius:var(--radius-full);background:#5865f21f;border:1px solid rgba(88,101,242,.28);font-size:.68rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#b4b9ffcc}.da-vinyl-wrap{display:flex;justify-content:center;margin-bottom:1.25rem}.da-title{font-size:2rem;font-weight:900;margin:0 0 .3rem;letter-spacing:-.04em;background:linear-gradient(135deg,var(--accent-coral) 0%,var(--accent-cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.da-subtitle{margin:0 0 1.5rem;font-size:var(--text-sm);color:var(--text-muted)}.da-progress-bar{width:100%;height:4px;border-radius:var(--radius-full);background:var(--bg-elevated);overflow:hidden;margin-bottom:.6rem}.da-progress-fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,var(--accent-coral) 0%,var(--accent-cyan) 100%);transition:width .4s cubic-bezier(.22,1,.36,1)}.da-step-row{width:100%;display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);margin-bottom:1rem}.da-step-label{color:var(--text-secondary);font-weight:500}.da-step-percent{color:var(--accent-cyan);font-variant-numeric:tabular-nums;font-weight:700}.da-steps{width:100%;display:flex;flex-direction:column;gap:.35rem;text-align:left;margin-bottom:.85rem}.da-step{display:flex;align-items:center;gap:.6rem;padding:.45rem .7rem;border-radius:var(--radius-sm);background:transparent;border:1px solid transparent;font-size:var(--text-sm);color:var(--text-dim);transition:background .2s ease,border-color .2s ease,color .2s ease}.da-step[data-state=active]{background:color-mix(in srgb,var(--accent-cyan) 5%,transparent);border-color:color-mix(in srgb,var(--accent-cyan) 15%,transparent);color:var(--text-primary)}.da-step[data-state=done]{color:var(--text-muted)}.da-step-num{width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:.62rem;font-weight:700;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-dim);transition:background .2s ease,border-color .2s ease,color .2s ease}.da-step[data-state=active] .da-step-num{background:color-mix(in srgb,var(--accent-cyan) 12%,transparent);border-color:color-mix(in srgb,var(--accent-cyan) 40%,transparent);color:var(--accent-cyan)}.da-step[data-state=done] .da-step-num{background:color-mix(in srgb,var(--accent-cyan) 7%,transparent);border-color:color-mix(in srgb,var(--accent-cyan) 20%,transparent);color:var(--accent-cyan)}.da-step[data-state=active] .da-step-num-inner{display:inline-block;width:6px;height:6px;border:1.5px solid color-mix(in srgb,var(--accent-cyan) 35%,transparent);border-top-color:var(--accent-cyan);border-radius:50%;animation:spin .7s linear infinite}.da-step[data-state=done] .da-step-num svg{width:10px;height:10px;stroke-width:3}.da-hint{margin:0;font-size:var(--text-xs);color:var(--text-dim);line-height:1.5;min-height:1em}.da-status-icon{width:64px;height:64px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem}.da-status-icon--offline{background:#ffa5001a;border:1px solid rgba(255,165,0,.2);color:#ffb347}.da-status-icon--error{background:color-mix(in srgb,var(--danger) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger) 20%,transparent);color:var(--danger)}.da-state-title{font-size:var(--text-xl);font-weight:800;letter-spacing:-.03em;color:var(--text-primary);margin:0 0 .6rem}.da-state-body{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.6;margin:0 0 1.5rem}.da-error-detail{width:100%;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.6rem .8rem;font-family:SF Mono,Menlo,Consolas,monospace;font-size:.72rem;color:var(--text-secondary);word-break:break-word;text-align:left;line-height:1.5;margin-bottom:1.5rem}.da-action-btn{width:100%;padding:.7rem 1rem;border-radius:var(--radius-sm);border:none;font-weight:700;font-size:var(--text-base);font-family:inherit;cursor:pointer;transition:opacity .15s ease,transform .1s ease}.da-action-btn--primary{background:linear-gradient(135deg,var(--accent-coral) 0%,#ff3333 100%);color:#fff;box-shadow:0 4px 16px color-mix(in srgb,var(--accent-coral) 25%,transparent)}.da-action-btn--primary:hover{opacity:.9;transform:translateY(-1px)}.da-action-btn--primary:active{transform:translateY(0);opacity:1}@media(max-width:520px){.da-gate{align-items:flex-start;padding-top:calc(env(safe-area-inset-top,0px) + 5.5rem)}}.incoming-invites{position:fixed;top:calc(5.5rem + env(safe-area-inset-top,0px));right:calc(1.5rem + env(safe-area-inset-right,0px));z-index:9998;display:flex;flex-direction:column;gap:.75rem;width:min(22rem,calc(100% - 2rem))}.incoming-invite{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:.9rem;padding:1rem 1rem 1.1rem;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--accent-cyan) 30%,var(--box-border));background:radial-gradient(120% 90% at 0% 0%,color-mix(in srgb,var(--accent-cyan) 12%,transparent) 0%,transparent 60%),var(--bg-elevated);box-shadow:0 1.25rem 3rem var(--black-55),0 0 1.5rem color-mix(in srgb,var(--accent-cyan) 12%,transparent);animation:incoming-invite-in .35s cubic-bezier(.2,.9,.3,1.2)}@keyframes incoming-invite-in{0%{opacity:0;transform:translate(1.5rem) scale(.96)}to{opacity:1;transform:none}}.incoming-invite-body{display:flex;align-items:center;gap:.9rem}.incoming-invite-avatar{position:relative;flex-shrink:0;width:3.25rem;height:3.25rem;border-radius:50%;padding:.15rem;background:linear-gradient(135deg,var(--accent-cyan),var(--accent-green))}.incoming-invite-avatar img,.incoming-invite-initial{position:relative;display:grid;place-items:center;width:100%;height:100%;border-radius:50%;object-fit:cover;border:.15rem solid var(--bg-elevated);box-sizing:border-box;background:var(--bg-surface);font-size:1.2rem;font-weight:700;color:var(--text-primary)}.incoming-invite-avatar-pulse{position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent-cyan);animation:incoming-invite-pulse 1.8s ease-out infinite}@keyframes incoming-invite-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.45)}}.incoming-invite-text{display:flex;flex-direction:column;gap:.2rem;min-width:0}.incoming-invite-tag{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-cyan)}.incoming-invite-title{font-size:.9rem;color:var(--text-secondary);line-height:1.3;overflow-wrap:anywhere}.incoming-invite-title strong{color:var(--text-primary)}.incoming-invite-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem .5rem;font-size:.72rem;color:var(--text-muted)}.incoming-invite-meta>span+span:before{content:"·";margin-right:.5rem;color:var(--text-dim)}.incoming-invite-live{color:#f59e0b}.incoming-invite-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:.5rem}.incoming-invite-btn{display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem .75rem;border-radius:var(--radius-sm);font-family:inherit;font-size:.82rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .1s}.incoming-invite-btn:active{transform:scale(.97)}.incoming-invite-btn--decline{background:var(--bg-surface);border:1px solid var(--box-border);color:var(--text-secondary)}.incoming-invite-btn--decline:hover{color:var(--text-primary);border-color:color-mix(in srgb,var(--text-primary) 25%,transparent)}.incoming-invite-btn--accept{background:var(--accent-green);border:1px solid var(--accent-green);color:#06140b}.incoming-invite-btn--accept:hover{box-shadow:0 0 1.1rem color-mix(in srgb,var(--accent-green) 45%,transparent)}.incoming-invite-timer{position:absolute;left:0;bottom:0;height:.2rem;width:100%;transform-origin:left;background:linear-gradient(90deg,var(--accent-cyan),var(--accent-green));animation:incoming-invite-drain linear forwards}@keyframes incoming-invite-drain{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(max-width:600px){.incoming-invites{top:calc(.75rem + env(safe-area-inset-top,0px));left:.75rem;right:.75rem;width:auto}@keyframes incoming-invite-in{0%{opacity:0;transform:translateY(-1rem) scale(.97)}to{opacity:1;transform:none}}}@media(prefers-reduced-motion:reduce){.incoming-invite,.incoming-invite-avatar-pulse{animation:none}}.daily-activity-section{width:100%;max-width:1200px;margin:0 auto;padding:0 1rem}.activity-title{font-size:.9rem;font-weight:600;margin-bottom:.75rem;color:var(--text-muted);text-align:center;text-transform:uppercase;letter-spacing:.5px}.activity-bars-container{position:relative}.activity-bars{display:flex;gap:.5rem;justify-content:center;align-items:flex-end;height:80px;padding:.5rem;background:transparent}.activity-bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;gap:.4rem;cursor:pointer;transition:transform .2s ease}.activity-bar-wrapper:hover{transform:translateY(-2px)}.activity-bar-container{width:100%;height:50px;display:flex;align-items:flex-end;justify-content:center}.activity-bar{width:100%;max-width:20px;background:var(--white-05);border-radius:4px 4px 0 0;position:relative;transition:all .3s ease}.activity-bar-fill{position:absolute;inset:0;background:linear-gradient(180deg,var(--accent-coral) 0%,var(--accent-cyan) 100%);border-radius:4px 4px 0 0;opacity:.8}.activity-bar-wrapper:hover .activity-bar-fill{opacity:1;box-shadow:0 0 12px color-mix(in srgb,var(--accent-coral) 50%,transparent)}.activity-day-label{font-size:.65rem;color:var(--text-muted);text-align:center;white-space:nowrap}.activity-tooltip{position:absolute;top:-100px;left:50%;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.75rem;min-width:200px;box-shadow:0 4px 12px var(--black-30);z-index:10}.tooltip-date{font-size:.85rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.tooltip-stats{display:flex;flex-direction:column;gap:.3rem}.tooltip-stat{display:flex;justify-content:space-between;gap:1rem;font-size:.8rem}.stat-label{color:var(--text-muted)}.stat-value{color:var(--accent-cyan);font-weight:600}@media(max-width:600px){.activity-bars{gap:.3rem}.activity-bar{max-width:16px}.activity-day-label{font-size:.55rem}}.home-page{position:relative;display:flex;flex-direction:column;align-items:center;gap:2rem;width:100%;max-width:520px;margin:0 auto;padding:2.5rem 0 2.2rem}.home-greeting{text-align:center}.home-greeting-text{color:var(--text-muted);font-size:.95rem;margin:0 0 .3rem}.home-greeting-title{font-size:2.4rem;font-weight:800;letter-spacing:-.04em;background:linear-gradient(135deg,var(--accent-coral) 0%,var(--accent-cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.home-main-cards{display:flex;flex-direction:column;gap:.85rem;width:100%}.home-card{display:flex;align-items:center;gap:1.1rem;width:100%;padding:1.25rem 1.4rem;border-radius:var(--radius);border:1px solid var(--border-subtle);background:var(--bg-elevated);cursor:pointer;transition:all .2s;font-family:inherit;text-align:left}.home-card:hover{transform:translateY(-2px)}.home-card-create{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-coral) 12%,transparent),color-mix(in srgb,var(--accent-coral) 4%,transparent));border-color:color-mix(in srgb,var(--accent-coral) 25%,transparent)}.home-card-create:hover{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-coral) 18%,transparent),color-mix(in srgb,var(--accent-coral) 7%,transparent));border-color:color-mix(in srgb,var(--accent-coral) 40%,transparent);box-shadow:0 8px 32px color-mix(in srgb,var(--accent-coral) 15%,transparent)}.home-card-join{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-cyan) 10%,transparent),color-mix(in srgb,var(--accent-cyan) 3%,transparent));border-color:color-mix(in srgb,var(--accent-cyan) 20%,transparent)}.home-card-join:hover{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-cyan) 15%,transparent),color-mix(in srgb,var(--accent-cyan) 6%,transparent));border-color:color-mix(in srgb,var(--accent-cyan) 35%,transparent);box-shadow:0 8px 32px color-mix(in srgb,var(--accent-cyan) 12%,transparent)}.home-card-icon-wrap{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:14px;flex-shrink:0}.home-card-icon-create{background:color-mix(in srgb,var(--accent-coral) 15%,transparent);color:var(--accent-coral)}.home-card-icon-join{background:color-mix(in srgb,var(--accent-cyan) 12%,transparent);color:var(--accent-cyan)}.home-card-coming-soon{background:linear-gradient(135deg,#8b5cf61f,#8b5cf60a);border-color:#8b5cf640}.home-card-coming-soon:hover{background:linear-gradient(135deg,#8b5cf62e,#8b5cf612);border-color:#8b5cf666;box-shadow:0 8px 32px #8b5cf626}.home-card-icon-coming-soon{background:#8b5cf626;color:#8b5cf6}.home-card-body{flex:1;display:flex;flex-direction:column;gap:.25rem}.home-card-title{font-size:1.05rem;font-weight:700;color:var(--text-primary)}.home-card-desc{font-size:.82rem;color:var(--text-muted);line-height:1.4}.home-card-arrow{color:var(--text-dim);flex-shrink:0;transition:transform .2s}.home-card:hover .home-card-arrow{transform:translate(3px)}.home-card-join-active{cursor:default;align-items:flex-start}.home-join-inline{flex:1;display:flex;flex-direction:column;gap:.7rem}.home-join-input{background:color-mix(in srgb,var(--accent-cyan) 7%,transparent);border:1px solid color-mix(in srgb,var(--accent-cyan) 30%,transparent);border-radius:var(--radius-sm);color:var(--accent-cyan);font-family:Courier New,monospace;font-size:1.3rem;font-weight:700;padding:.6rem .9rem;letter-spacing:.2em;outline:none;width:100%;box-sizing:border-box;transition:border-color .2s,box-shadow .2s}.home-join-input:focus{border-color:var(--accent-cyan);box-shadow:var(--glow-cyan)}.home-join-input::placeholder{color:var(--text-dim);font-size:.85rem;letter-spacing:.1em}.home-join-btns{display:flex;gap:.5rem}.home-join-confirm{flex:1;padding:.6rem 1rem;background:var(--accent-cyan);color:#000;border:none;border-radius:var(--radius-sm);font-weight:700;font-size:.9rem;font-family:inherit;cursor:pointer;transition:opacity .2s}.home-join-confirm:disabled{opacity:.4;cursor:not-allowed}.home-join-confirm:not(:disabled):hover{opacity:.88}.home-join-cancel{padding:.6rem 1rem;background:none;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.9rem;font-family:inherit;cursor:pointer;transition:color .15s,border-color .15s}.home-join-cancel:hover{color:var(--text-primary);border-color:var(--white-15)}.home-secondary-actions{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%}.home-secondary-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.85rem 1.5rem;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}.home-secondary-btn:hover{color:var(--text-primary);border-color:var(--white-15);background:var(--bg-elevated)}.home-ghost-btn{background:none;border:none;color:var(--text-dim);font-size:.88rem;font-family:inherit;cursor:pointer;padding:.3rem .75rem;transition:color .15s}.home-ghost-btn:hover{color:var(--text-muted)}.guest-banner{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:#ffc10714;border:1px solid rgba(255,193,7,.2);border-radius:var(--radius);box-sizing:border-box}.guest-banner-icon{flex-shrink:0;color:#ffc107;display:flex;align-items:center}.guest-banner-text{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.guest-banner-text strong{color:var(--text-primary);font-size:.88rem;font-weight:600}.guest-banner-text span{color:var(--text-muted);font-size:.8rem}.guest-banner-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.guest-banner-cta{padding:.35rem .85rem;background:#ffc10726;border:1px solid rgba(255,193,7,.35);border-radius:50px;color:#ffc107;font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;white-space:nowrap}.guest-banner-cta:hover{background:#ffc10740;border-color:#ffc1078c}.guest-banner-dismiss{background:none;border:none;color:var(--text-dim);font-size:.75rem;cursor:pointer;padding:.2rem;line-height:1;transition:color .15s}.guest-banner-dismiss:hover{color:var(--text-muted)}.convert-overlay{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:1000;padding:1rem}.convert-modal{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg, 16px);padding:2rem;width:100%;max-width:380px;display:flex;flex-direction:column;gap:1rem}.convert-title{font-size:1.35rem;font-weight:800;color:var(--text-primary);margin:0;letter-spacing:-.02em}.convert-subtitle{color:var(--text-muted);font-size:.88rem;margin:0;line-height:1.5}.convert-fields{display:flex;flex-direction:column;gap:.6rem}.convert-input{width:100%;padding:.75rem 1rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem;font-family:inherit;outline:none;transition:border-color .2s;box-sizing:border-box}.convert-input:focus{border-color:var(--accent-coral)}.convert-error{color:var(--danger);font-size:.85rem;margin:0}.convert-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:.25rem}.convert-btn-primary{width:100%;padding:.8rem;background:linear-gradient(135deg,var(--accent-coral) 0%,#e03535 100%);border:none;border-radius:50px;color:#fff;font-size:.95rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s;box-shadow:0 4px 20px color-mix(in srgb,var(--accent-coral) 30%,transparent)}.convert-btn-primary:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.convert-btn-primary:disabled{opacity:.6;cursor:default}.convert-btn-ghost{width:100%;padding:.6rem;background:none;border:none;color:var(--text-muted);font-size:.88rem;font-family:inherit;cursor:pointer;transition:color .15s}.convert-btn-ghost:hover{color:var(--text-primary)}@media(max-width:600px){.home-greeting-title{font-size:2rem}}@media(max-width:480px){.home-page{gap:1.25rem;padding:1.5rem 0 2rem}.home-greeting-title{font-size:1.75rem}.home-card{padding:1rem 1.1rem}.home-card-icon-wrap{width:44px;height:44px}}.library-stats-bar{display:flex;gap:1.5rem;margin-bottom:2rem;padding:1.25rem;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-cyan) 5%,transparent),color-mix(in srgb,var(--accent-coral) 5%,transparent));border:1px solid color-mix(in srgb,var(--accent-cyan) 15%,transparent);border-radius:var(--radius)}.library-stat-item{display:flex;align-items:center;gap:.75rem;flex:1}.library-stat-item svg{color:var(--accent-cyan);flex-shrink:0}.library-stat-info{display:flex;flex-direction:column;gap:.25rem}.library-stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.library-stat-value{font-size:1.5rem;font-weight:700;color:var(--text-primary)}.library-sources-divider{padding:.75rem 0;margin:1.5rem 0 1rem;font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center}.library-sources-divider-left{display:flex;flex-direction:column;gap:.25rem;flex:1}.library-sources-hint{font-size:.75rem;color:var(--text-dim);text-transform:none;font-weight:400;letter-spacing:0}.library-bulk-actions{display:flex;gap:.5rem}.library-bulk-btn{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.4rem .75rem;font-size:.75rem;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.35rem;text-transform:none;letter-spacing:normal}.library-bulk-btn:hover{background:var(--bg-elevated);border-color:var(--accent-cyan);color:var(--accent-cyan)}.library-bulk-btn svg{flex-shrink:0}.library-sources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.library-card{background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius);padding:1rem;display:flex;align-items:center;gap:1rem;cursor:pointer;transition:all .2s ease;position:relative;overflow:hidden}.library-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:transparent;transition:background .2s ease}.library-card:hover{background:var(--bg-elevated);border-color:var(--white-15);transform:translateY(-2px)}.library-card-active{border-color:var(--accent-cyan)}.library-card-active:before{background:linear-gradient(90deg,var(--accent-cyan),var(--accent-pink))}.library-card-active .library-card-status svg{color:var(--accent-cyan)}.library-card-excluded{opacity:.5}.library-card-excluded:hover{opacity:.7}.library-card-excluded .library-card-status svg{color:var(--text-muted)}.library-card-liked .library-card-icon svg{color:var(--accent-pink)}.library-card-recent .library-card-icon svg{color:var(--accent-cyan)}.library-special-sources{margin-bottom:0}.library-card-status{flex-shrink:0;display:flex;align-items:center;justify-content:center}.library-card-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--accent-cyan)}.library-card-info{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:0}.library-card-name{font-size:.95rem;font-weight:600;color:var(--text-primary);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.library-card-count{font-size:.8rem;color:var(--text-muted)}.library-card-refresh{flex-shrink:0;width:32px;height:32px;border:none;background:var(--bg-elevated);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;color:var(--accent-cyan);margin-left:auto}.library-card-refresh:hover:not(:disabled){background:var(--accent-cyan);color:var(--bg-deep);transform:scale(1.1)}.library-card-refresh:disabled{opacity:.5;cursor:not-allowed}.refresh-spinner{display:inline-block;animation:spin 1s linear infinite;font-size:18px}.library-refresh-progress{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-cyan) 8%,transparent),color-mix(in srgb,var(--accent-coral) 8%,transparent));border:1px solid color-mix(in srgb,var(--accent-cyan) 30%,transparent);border-radius:var(--radius);padding:1rem;margin-bottom:1.5rem}.refresh-progress-content{display:flex;align-items:center;gap:1rem}.refresh-progress-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:50%;color:var(--accent-cyan);font-size:24px}.refresh-progress-text{display:flex;flex-direction:column;gap:.25rem;flex:1}.refresh-progress-stage{font-size:.95rem;font-weight:600;color:var(--text-primary)}.refresh-progress-count{font-size:.85rem;color:var(--text-muted)}.library-empty-message{text-align:center;color:var(--text-muted);padding:2rem;line-height:1.6}.library-loading{text-align:center;padding:2rem;color:var(--text-muted)}.playlist-detail-overlay{position:fixed;inset:0;background:var(--black-85);display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.playlist-detail-modal{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);width:100%;max-width:700px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px var(--black-50)}.playlist-detail-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-subtle)}.playlist-detail-header h3{font-size:1.3rem;margin:0;color:var(--text-primary)}.playlist-detail-body{flex:1;overflow-y:auto;padding:1.5rem}.playlist-detail-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:3rem 1rem;color:var(--text-muted)}.playlist-detail-stats{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-subtle);color:var(--text-muted);font-size:.9rem}.playlist-songs-list{display:flex;flex-direction:column;gap:.5rem}.playlist-song-item{display:flex;align-items:center;gap:1rem;padding:.75rem;background:var(--bg-elevated);border-radius:var(--radius-sm);transition:all .2s ease}.playlist-song-item:hover{background:var(--bg-surface);border-color:var(--white-10);transform:translate(4px)}.playlist-song-number{width:30px;text-align:center;color:var(--text-muted);font-size:.85rem;font-variant-numeric:tabular-nums;flex-shrink:0}.playlist-song-artwork{width:48px;height:48px;border-radius:4px;object-fit:cover;flex-shrink:0;background:var(--bg-deep)}.playlist-song-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.playlist-song-name{font-size:.95rem;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-song-artist{font-size:.85rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-song-meta{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;min-width:80px}.playlist-song-duration{font-size:.85rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.playlist-song-added{font-size:.75rem;color:var(--text-muted);opacity:.6;white-space:nowrap}.playlist-detail-empty{text-align:center;padding:3rem 1rem;color:var(--text-muted)}@media(max-width:600px){.playlist-detail-modal{max-height:90vh}.playlist-song-number{width:24px;font-size:.8rem}.playlist-song-artwork{width:40px;height:40px}.playlist-song-name{font-size:.9rem}.playlist-song-artist{font-size:.8rem}.playlist-song-meta{min-width:60px}.playlist-song-duration{font-size:.8rem}.playlist-song-added{font-size:.7rem}}@media(min-width:1100px){.library-settings-hint{color:var(--text-muted);font-size:.9rem;margin-bottom:1.5rem;line-height:1.5}.library-stats-bar{gap:.4rem}}.customization-panel{max-width:950px;width:95vw}.customization-section{margin-bottom:2rem}.customization-section-title{display:flex;align-items:center;gap:.75rem;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin-bottom:1rem}.customization-section-title svg{color:var(--accent-primary, var(--accent-cyan))}.customization-mode-toggle{display:flex;gap:1rem}.mode-toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1rem;background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.mode-toggle-btn:hover{background:var(--bg-elevated);border-color:var(--white-15)}.mode-toggle-btn.active{background:linear-gradient(135deg,var(--accent-primary, var(--accent-coral)) 0%,var(--accent-secondary, var(--accent-cyan)) 100%);background-origin:border-box;border-color:transparent;color:#fff}.mode-toggle-btn svg{width:20px;height:20px}.customization-mode-special{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-top:.75rem}.mode-special-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding:.875rem .5rem;background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-muted);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease}.mode-special-btn:hover{background:var(--bg-elevated);border-color:var(--white-15);transform:translateY(-1px)}.mode-special-btn.active{background:var(--bg-elevated);border-color:var(--accent-primary, var(--accent-cyan));color:var(--accent-primary, var(--accent-cyan));box-shadow:0 0 15px color-mix(in srgb,var(--accent-cyan) 20%,transparent)}.mode-special-btn svg{width:18px;height:18px}.mode-special-midnight.active{background:linear-gradient(135deg,#1a1433,#251f47);border-color:#8a63ff;color:#e8e4ff;box-shadow:0 0 20px #8a63ff66}.mode-special-midnight.active svg{filter:drop-shadow(0 0 8px rgba(138,99,255,.6))}.customization-themes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.theme-card{display:flex;flex-direction:column;gap:.75rem;padding:0;background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius);cursor:pointer;transition:all .2s ease;overflow:hidden}.theme-card:hover{border-color:var(--white-20);transform:translateY(-2px)}.theme-card.active{border-color:var(--accent-primary, var(--accent-cyan));box-shadow:0 0 20px color-mix(in srgb,var(--accent-cyan) 30%,transparent)}.theme-preview{width:100%;height:80px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);position:relative}.theme-preview svg{filter:drop-shadow(0 2px 4px var(--black-30))}.theme-name{padding:.75rem;font-size:.9rem;font-weight:500;color:var(--text-primary);text-align:center}.theme-card.active .theme-name{color:var(--accent-primary, var(--accent-cyan))}.theme-card-custom .theme-preview{position:relative}.custom-color-editor{margin-top:1.25rem;padding:1.25rem;background:var(--bg-surface);border:2px solid var(--accent-primary, var(--accent-cyan));border-radius:var(--radius);display:flex;flex-direction:column;gap:1rem;animation:slideDown .18s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.custom-color-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.custom-color-field{display:flex;flex-direction:column;gap:.5rem}.custom-color-label{font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.custom-color-input-group{display:flex;align-items:center;gap:.625rem}.custom-color-swatch{width:44px;height:44px;border-radius:var(--radius-sm, 6px);border:2px solid var(--border-subtle);cursor:pointer;position:relative;overflow:hidden;flex-shrink:0;transition:transform .15s ease,border-color .15s ease}.custom-color-swatch:hover{transform:scale(1.08);border-color:var(--white-25)}.custom-color-native{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.custom-color-hex{flex:1;height:44px;padding:0 .75rem;background:var(--bg-elevated);border:2px solid var(--border-subtle);border-radius:var(--radius-sm, 6px);color:var(--text-primary);font-size:.9rem;font-family:monospace;letter-spacing:.05em;transition:border-color .15s ease}.custom-color-hex:focus{outline:none;border-color:var(--accent-primary, var(--accent-cyan))}.custom-color-preview-strip{height:36px;border-radius:var(--radius-sm, 6px);transition:background .2s ease}.custom-section-header{font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.09em;margin-top:.875rem;margin-bottom:.5rem;padding-bottom:.375rem;border-bottom:1px solid var(--border-subtle)}.custom-compact-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem}.custom-compact-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.custom-compact-field{display:flex;flex-direction:column;gap:.375rem}.custom-compact-label{font-size:.72rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.custom-compact-input-group{display:flex;align-items:center;gap:.375rem}.custom-compact-swatch{width:32px;height:32px;border-radius:5px;border:1.5px solid var(--border-subtle);cursor:pointer;position:relative;overflow:hidden;flex-shrink:0;transition:transform .15s ease,border-color .15s ease}.custom-compact-swatch:hover{transform:scale(1.1);border-color:var(--white-20)}.custom-compact-hex{flex:1;min-width:0;height:32px;padding:0 .5rem;background:var(--bg-elevated);border:1.5px solid var(--border-subtle);border-radius:5px;color:var(--text-primary);font-size:.72rem;font-family:monospace;letter-spacing:.03em;transition:border-color .15s ease}.custom-compact-hex:focus{outline:none;border-color:var(--accent-primary, var(--accent-cyan))}.custom-border-row{display:flex;align-items:center;gap:.75rem}.custom-border-row .custom-compact-field{flex-shrink:0}.custom-border-opacity-range{flex:1;height:4px;accent-color:var(--accent-primary, var(--accent-cyan));cursor:pointer}.custom-border-opacity-value{font-size:.8rem;color:var(--text-secondary);font-family:monospace;min-width:2.5rem;text-align:right;flex-shrink:0}@media(max-width:600px){.custom-compact-grid-3{grid-template-columns:repeat(3,1fr)}.custom-compact-grid-4{grid-template-columns:repeat(2,1fr)}}.customization-language-list{display:flex;flex-direction:column;gap:.5rem}.customization-language-btn{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius);color:var(--text-secondary);font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-align:left}.customization-language-btn:hover{background:var(--bg-elevated);border-color:var(--white-15);color:var(--text-primary)}.customization-language-btn.active{border-color:var(--accent-primary, var(--accent-cyan));color:var(--text-primary)}.customization-language-native{font-weight:600;color:var(--text-primary)}.customization-language-label{color:var(--text-muted);font-size:.85rem;margin-left:auto}.customization-language-btn.active .customization-language-label{margin-left:auto;margin-right:.25rem}.customization-language-btn svg{margin-left:auto;color:var(--accent-primary, var(--accent-cyan));flex-shrink:0}.customization-language-btn.active svg{margin-left:0}@media(max-width:600px){.customization-themes-grid{grid-template-columns:repeat(2,1fr)}.customization-mode-toggle{flex-direction:column}.customization-mode-special{grid-template-columns:repeat(2,1fr)}.customization-panel{width:100vw;max-width:100vw}}@media(min-width:1100px){.customization-panel{max-width:950px;width:95vw}.customization-section{margin-bottom:2rem}}.header-import{width:100%;flex-basis:100%;display:flex;flex-direction:column;gap:0;overflow:hidden;animation:banner-expand .3s ease-out}.header-import-hide{animation:header-import-exit .4s ease-in forwards}@keyframes header-import-exit{0%{max-height:40px;opacity:1}to{max-height:0;opacity:0}}.header-import-info{display:flex;align-items:center;justify-content:space-between;padding:.3rem 0;font-size:.75rem}.header-import-label{color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-import-done .header-import-label{color:var(--accent-green)}.header-import-count{color:var(--text-dim);font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:1rem}.header-import-track{width:100%;height:3px;background:var(--bg-elevated);border-radius:2px;overflow:hidden}.header-import-fill{height:100%;border-radius:2px;background:linear-gradient(90deg,var(--accent-coral),var(--accent-cyan));background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite;transition:width .25s ease-out;width:0%}.header-import-fill-done{background:var(--accent-green);animation:none;transition:width .5s ease-out,background .3s}.header-import-error .header-import-label{color:var(--danger)}.header-import-fill-error{background:var(--danger);animation:none}.header-restart{width:100%;flex-basis:100%;display:flex;flex-direction:column;gap:0;overflow:hidden;animation:banner-expand .3s ease-out}.header-restart-info{display:flex;align-items:center;gap:.5rem;padding:.3rem 0;font-size:.75rem;color:var(--accent-coral)}.header-restart-label{font-weight:600;font-variant-numeric:tabular-nums}.header-restart-track{width:100%;height:3px;background:color-mix(in srgb,var(--accent-coral) 15%,transparent);border-radius:2px;overflow:hidden}.header-restart-fill{height:100%;border-radius:2px;background:var(--accent-coral);transition:width .9s linear}.friends-overlay{position:fixed;inset:0;z-index:9000;background:var(--black-45);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .2s ease-out}.friends-sidebar{position:absolute;top:0;right:0;bottom:0;width:min(22rem,100%);display:flex;flex-direction:column;background:linear-gradient(180deg,color-mix(in srgb,var(--text-primary) 3%,transparent) 0%,transparent 30%),var(--bg-surface);border-left:1px solid var(--box-border);box-shadow:-1.5rem 0 3rem var(--black-45);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);outline:none;animation:slide-in-right .24s cubic-bezier(.2,.8,.2,1)}@media(prefers-reduced-motion:reduce){.friends-overlay,.friends-sidebar{animation:none}}.friends-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1.1rem .9rem .8rem 1.25rem;flex-shrink:0}.friends-head-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.friends-title{margin:0;font-size:1.1rem;font-weight:700;color:var(--text-primary)}.friends-count{font-size:.72rem;color:var(--text-muted)}.friends-close{display:grid;place-items:center;flex-shrink:0;width:2rem;height:2rem;border:none;border-radius:50%;background:none;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.friends-close:hover{background:var(--bg-elevated);color:var(--text-primary)}.friends-search{display:flex;align-items:center;gap:.5rem;margin:0 1rem .5rem;padding:.45rem .7rem;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--white-03);color:var(--text-dim);flex-shrink:0}.friends-search:focus-within{border-color:color-mix(in srgb,var(--accent-cyan) 45%,transparent)}.friends-search input{flex:1;min-width:0;border:none;background:transparent;color:var(--text-primary);font-family:inherit;font-size:.85rem;outline:none}.friends-search input::placeholder{color:var(--text-dim)}.friends-body{flex:1;min-height:0;overflow-y:auto;padding:0 .5rem 1rem}.friends-section{margin:0;padding:.8rem .75rem .35rem;font-size:.65rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}.friends-list{list-style:none;margin:0;padding:0}.friends-row{border-radius:.6rem;transition:background .15s}.friends-row--open{background:color-mix(in srgb,var(--text-primary) 5%,transparent)}.friends-row-head{display:flex;align-items:center}.friends-row-main{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0;width:100%;padding:.5rem .6rem;border:none;border-radius:.6rem;background:none;color:inherit;font-family:inherit;text-align:left;cursor:pointer}button.friends-row-main:hover{background:color-mix(in srgb,var(--text-primary) 4%,transparent)}.friends-row-main:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:-2px}.friends-invite-btn{flex-shrink:0;min-width:3.6rem;margin:0 .5rem 0 .25rem;padding:.35rem .75rem;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent-cyan) 45%,transparent);background:color-mix(in srgb,var(--accent-cyan) 12%,transparent);color:var(--accent-cyan);font-family:inherit;font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer;transition:background .15s,box-shadow .15s,transform .1s}.friends-invite-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent-cyan) 22%,transparent);box-shadow:0 0 .9rem color-mix(in srgb,var(--accent-cyan) 30%,transparent)}.friends-invite-btn:active:not(:disabled){transform:scale(.95)}.friends-invite-btn:disabled{border-color:var(--border-subtle);background:transparent;color:var(--text-muted);cursor:default}.friends-invite-hint{margin:0 .75rem .35rem;font-size:.72rem;line-height:1.4;color:var(--text-dim)}.friends-avatar{position:relative;flex-shrink:0;width:2.5rem;height:2.5rem;border-radius:50%;background:var(--bg-elevated)}.friends-avatar img,.friends-initial{width:100%;height:100%;border-radius:50%;object-fit:cover}.friends-initial{display:grid;place-items:center;font-size:.95rem;font-weight:700;color:var(--text-primary);background:linear-gradient(135deg,color-mix(in srgb,var(--accent-cyan) 35%,var(--bg-elevated)),var(--bg-elevated))}.friends-dot{position:absolute;right:-.05rem;bottom:-.05rem;width:.75rem;height:.75rem;border-radius:50%;border:.15rem solid var(--bg-surface);background:var(--text-dim)}.friends-dot--online{background:var(--accent-green)}.friends-dot--in-game{background:#f59e0b}.friends-dot--here{background:var(--accent-cyan)}.friends-row--offline .friends-avatar img,.friends-row--offline .friends-initial{filter:grayscale(1);opacity:.5}.friends-info{display:flex;flex-direction:column;gap:.05rem;flex:1;min-width:0}.friends-name,.friends-status,.friends-last{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friends-name{font-size:.88rem;font-weight:600;color:var(--text-primary)}.friends-row--offline .friends-name{color:var(--text-secondary)}.friends-status{font-size:.72rem;color:var(--text-muted)}.friends-row--online .friends-status{color:var(--accent-green)}.friends-row--in-game .friends-status{color:#f59e0b}.friends-row--here .friends-status{color:var(--accent-cyan)}.friends-last{font-size:.68rem;color:var(--text-dim)}.friends-chevron{flex-shrink:0;color:var(--text-dim);transition:transform .2s,color .15s}.friends-row--open .friends-chevron{transform:rotate(180deg);color:var(--text-secondary)}.friends-actions{display:flex;flex-direction:column;gap:.4rem;padding:.1rem .6rem .7rem 3.85rem;animation:fade-in .15s ease-out}.friends-action{padding:.45rem .8rem;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:transparent;color:var(--text-secondary);font-family:inherit;font-size:.78rem;font-weight:600;text-align:center;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.friends-action:hover:not(:disabled){background:color-mix(in srgb,var(--text-primary) 6%,transparent);color:var(--text-primary)}.friends-action:disabled{opacity:.55;cursor:default}.friends-action--primary{border-color:color-mix(in srgb,var(--accent-cyan) 45%,transparent);background:color-mix(in srgb,var(--accent-cyan) 12%,transparent);color:var(--accent-cyan)}.friends-action--primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent-cyan) 22%,transparent);color:var(--accent-cyan)}.friends-action--danger{border-color:transparent;color:var(--text-dim);font-weight:500}.friends-action--danger:hover:not(:disabled),.friends-action--confirm{border-color:color-mix(in srgb,var(--accent-coral) 45%,transparent);background:color-mix(in srgb,var(--accent-coral) 10%,transparent);color:var(--accent-coral)}.friends-hint{margin:0;font-size:.7rem;line-height:1.4;color:var(--text-dim)}.friends-empty{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:3rem 1.5rem;text-align:center;color:var(--text-muted);font-size:.82rem;line-height:1.5}.friends-empty p{margin:0;max-width:16rem}.friends-empty-icon{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:50%;background:color-mix(in srgb,var(--text-primary) 5%,transparent);color:var(--text-dim)}.friends-row--skeleton .friends-avatar,.friends-skeleton-text{animation:soft-pulse 1.2s ease-in-out infinite}.friends-skeleton-text{flex:1;height:.7rem;max-width:9rem;border-radius:999px;background:var(--bg-elevated)}.header{width:100%;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:calc(.75rem + var(--safe-area-inset-top, env(safe-area-inset-top, 0px))) 0 0;position:sticky;top:0;background:var(--bg-deep);z-index:50;border-bottom:1px solid var(--border-subtle)}.header:before{content:"";position:absolute;top:0;bottom:-1px;left:calc(50% - 50vw);width:100vw;background:var(--bg-deep);border-bottom:1px solid var(--border-subtle);z-index:-1}.header:after{content:"";position:absolute;top:calc(100% + 1px);left:calc(50% - 50vw);width:100vw;height:.75rem;background:linear-gradient(to bottom,rgba(10,10,10,.85) 0%,transparent 100%);pointer-events:none;z-index:-1}.header>.header-left,.header>.header-right-group{padding-bottom:.75rem}.header-right-group{display:flex;align-items:center;gap:.75rem}.header-user-wrapper{position:relative}.header-left,.header-right{display:flex;align-items:center;gap:1rem;min-width:min(200px,100%)}@media(max-width:600px){.header-left,.header-right{min-width:auto}}.header-breadcrumb{display:flex;align-items:center;gap:.3rem;padding:.3rem .55rem .3rem .4rem;background:none;border:none;cursor:pointer;border-radius:8px;transition:background .15s;margin-left:.1rem}.header-breadcrumb:hover{background:var(--bg-elevated)}.header-breadcrumb-sep{color:var(--text-muted);font-size:.85rem;opacity:.45;font-weight:300;-webkit-user-select:none;user-select:none}.header-breadcrumb-label{font-size:.85rem;font-weight:500;color:var(--text-muted);transition:color .15s}.header-breadcrumb-label-short{display:none}.header-breadcrumb-label-full{display:inline}.header-breadcrumb:hover .header-breadcrumb-label{color:var(--text-primary)}.header-breadcrumb-arrow{color:var(--text-muted);opacity:.6;transition:opacity .15s,transform .15s}.header-breadcrumb:hover .header-breadcrumb-arrow{opacity:1;transform:translate(-2px)}.header-logo{display:flex;align-items:center;gap:.5rem}.header-logo-btn{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:center;border-radius:6px;transition:opacity .15s}.header-logo-btn:hover{opacity:.75}.header-logo-icon{display:flex;color:var(--accent-coral)}.header-logo-text{font-size:1.1rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,var(--accent-coral) 0%,var(--accent-cyan) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-right{position:relative;justify-content:flex-end}.header-user{display:flex;align-items:center;gap:.5rem;height:36px;box-sizing:border-box;padding:0 .6rem 0 .75rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:24px;cursor:pointer;transition:all .2s;color:var(--text-primary);font-family:inherit}.header-user:hover{background:var(--bg-surface);border-color:var(--white-15)}.header-user-name{font-size:.85rem;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-playback-mobile-toggle{display:none;align-items:center;gap:3px;padding:0 2px;background:none;border:none;color:var(--text-dim);cursor:pointer;flex-shrink:0;transition:color .15s}.header-playback-mobile-toggle:hover{color:var(--text-muted)}.header-pmob-icon{display:flex;align-items:center;color:var(--text-muted)}.header-playback-control{position:relative;display:flex;align-items:center}@media(max-width:600px){.header-logo-back-active,.header-breadcrumb-label-full{display:none}.header-breadcrumb-label-short{display:inline}.header-user-name,.header-device-name,.header--playback-active .header-device,.header-playback-play{display:none}.header-playback-mobile-toggle{display:flex}.header-device-dropdown{position:fixed;top:58px;right:.75rem;left:auto;min-width:220px}.header-playback-dropdown{position:fixed;top:58px;right:.75rem;left:auto}}@media(max-width:520px){.header--discord-activity{padding-top:calc(env(safe-area-inset-top,0px) + 5.5rem)}.header--discord-activity .header-device-dropdown,.header--discord-activity .header-playback-dropdown{top:calc(env(safe-area-inset-top,0px) + 4.75rem + 58px)}}.header-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;object-fit:cover;border:2px solid var(--accent-green);background:var(--bg-surface)}.header-avatar-img{width:100%;height:100%;object-fit:cover}.header-avatar-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.9rem;color:var(--text-muted);background:var(--bg-elevated)}.header-chevron{color:var(--text-muted);transition:transform .2s}.header-chevron-open{transform:rotate(180deg)}.header-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;max-width:calc(100vw - var(--space-4));background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:0 8px 32px var(--black-40);overflow:hidden;animation:drop-in-far .15s ease-out}.header-dropdown-profile{display:flex;align-items:center;gap:.75rem;padding:1rem}.header-dropdown-avatar{width:40px;height:40px;border-radius:50%;overflow:hidden;background:var(--bg-surface)}.header-dropdown-avatar img{width:100%;height:100%;object-fit:cover}.header-dropdown-avatar span{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:600;color:var(--text-muted)}.header-dropdown-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.header-dropdown-name{font-weight:600;font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-dropdown-email{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-dropdown-name-row{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.tier-badge{font-size:.6rem;font-weight:700;padding:.15rem .45rem;border-radius:12px;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;line-height:1.4}.tier-badge--backstage{background:#3b82f62e;color:color-mix(in srgb,var(--tier-backstage) 80%,white);border:1px solid rgba(59,130,246,.35)}.tier-badge--headliner{background:#f59e0b2e;color:var(--tier-headliner);border:1px solid rgba(245,158,11,.35)}.tier-badge--stadium{background:linear-gradient(90deg,#8b5cf626,#ec489926);color:color-mix(in srgb,var(--tier-stadium) 80%,white);border:1px solid rgba(139,92,246,.35)}.header-avatar-ring{display:inline-flex;border-radius:50%;padding:2px;background:transparent}.header-avatar-ring--backstage{background:linear-gradient(135deg,var(--tier-backstage),var(--tier-backstage-alt));box-shadow:0 0 8px #3b82f680}.header-avatar-ring--headliner{background:linear-gradient(135deg,var(--tier-headliner),var(--tier-headliner-alt));box-shadow:0 0 8px #f59e0b80}.header-avatar-ring--stadium{background:linear-gradient(135deg,var(--tier-stadium),var(--tier-stadium-alt));box-shadow:0 0 10px #8b5cf68c;animation:stadium-pulse 2.5s ease-in-out infinite}.header-avatar-ring--lg{padding:2.5px}.header-user--backstage{background:#3b82f614!important;border-color:#3b82f64d!important}.header-user--headliner{background:#f59e0b14!important;border-color:#f59e0b4d!important}.header-user--stadium{background:linear-gradient(90deg,#8b5cf614,#ec489914)!important;border-color:#8b5cf659!important}.header-dropdown-profile--backstage{background:linear-gradient(135deg,rgba(59,130,246,.08) 0%,transparent 70%);border-radius:8px;padding:.125rem;margin:-.125rem}.header-dropdown-profile--headliner{background:linear-gradient(135deg,rgba(245,158,11,.08) 0%,transparent 70%);border-radius:8px;padding:.125rem;margin:-.125rem}.header-dropdown-profile--stadium{background:linear-gradient(135deg,#8b5cf61a,#ec48990f);border-radius:8px;padding:.125rem;margin:-.125rem}.header-dropdown-name--backstage{color:#93c5fd}.header-dropdown-name--headliner{color:#fbbf24}.header-dropdown-name--stadium{background:linear-gradient(90deg,#c4b5fd,#f9a8d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-dropdown-item--sub{color:var(--text-secondary)}.header-dropdown-item--sub svg{color:var(--text-muted)}.header-dropdown-item--sub-active-backstage{color:color-mix(in srgb,var(--tier-backstage) 80%,white)!important}.header-dropdown-item--sub-active-headliner{color:var(--tier-headliner)!important}.header-dropdown-item--sub-active-stadium{background:linear-gradient(90deg,#8b5cf60f,#ec48990f);color:#a78bfa!important}.header-dropdown-divider{height:1px;background:var(--border-subtle)}.header-dropdown-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;color:var(--text-primary);font-size:.9rem;font-family:inherit;cursor:pointer;transition:background .15s;text-align:left}.header-dropdown-item:hover{background:var(--white-05)}.header-dropdown-logout{color:var(--danger)}.header-dropdown-logout:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}.header-device{position:relative}.header-device-btn{display:flex;align-items:center;gap:.5rem;height:36px;box-sizing:border-box;padding:0 .6rem 0 .75rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:20px;cursor:pointer;transition:all .2s;color:var(--text-primary);font-family:inherit;font-size:.85rem}.header-device-btn:hover{background:var(--bg-surface);border-color:var(--white-15)}.header-device-icon{display:flex;color:var(--accent-green)}.header-device-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.header-chevron-small{color:var(--text-dim);transition:transform .2s}.header-device-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:240px;max-width:calc(100vw - var(--space-4));background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:0 8px 32px var(--black-40);overflow:hidden;animation:drop-in-far .15s ease-out;z-index:100}.header-device-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-subtle);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.header-device-refresh{display:flex;align-items:center;justify-content:center;padding:.25rem;background:none;border:none;color:var(--text-muted);cursor:pointer;transition:color .15s;border-radius:4px}.header-device-refresh:hover{color:var(--text-primary);background:var(--white-05)}.header-device-refresh:disabled{opacity:.5;cursor:not-allowed}.header-device-dropdown-list{max-height:240px;overflow-y:auto}.header-device-empty{padding:1.5rem 1rem;text-align:center;color:var(--text-muted);font-size:.85rem}.header-device-empty-hint{color:var(--text-dim);font-size:.75rem;margin-top:.25rem}.header-device-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:none;border:none;color:var(--text-primary);font-size:.9rem;font-family:inherit;cursor:pointer;transition:background .15s;text-align:left}.header-device-item:hover{background:var(--white-05)}.header-device-item-active{background:#1db9541a}.header-device-item-active:hover{background:#1db95426}.header-device-item-icon{display:flex;color:var(--text-muted)}.header-device-item-active .header-device-item-icon{color:var(--accent-green)}.header-device-item-icon-yt{color:red!important}.header-device-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-device-item svg:last-child{color:var(--accent-green);flex-shrink:0}.header-playback{display:flex;align-items:center;gap:.35rem;height:36px;box-sizing:border-box;padding:0 .6rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:20px}.header-playback-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:none;border:none;color:var(--text-primary);cursor:pointer;border-radius:50%;transition:background .15s,color .15s;flex-shrink:0}.header-playback-btn:hover{background:var(--white-08);color:var(--accent-cyan)}.header-vol{display:flex;align-items:center;gap:.3rem}.header-vol-slider{-webkit-appearance:none;appearance:none;width:72px;height:3px;border-radius:2px;outline:none;cursor:pointer;background-image:linear-gradient(var(--accent-cyan),var(--accent-cyan));background-color:var(--border-subtle);background-repeat:no-repeat}.header-vol-slider::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--text-primary);cursor:pointer;transition:transform .1s,background .1s}.header-vol-slider::-webkit-slider-thumb:hover{transform:scale(1.3);background:var(--accent-cyan)}.header-vol-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--text-primary);cursor:pointer;border:none}.header-vol-slider::-moz-range-progress{background:var(--accent-cyan);height:3px;border-radius:2px}.header-playback-dropdown{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:0 8px 32px var(--black-40);overflow:hidden;animation:drop-in-far .15s ease-out;z-index:100}.header-pd-play{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.65rem 1rem;background:none;border:none;color:var(--text-primary);font-size:.9rem;font-family:inherit;cursor:pointer;transition:background .15s}.header-pd-play:hover{background:var(--white-05)}.header-dropdown-count{margin-left:.4rem;padding:.15rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--accent-green) 15%,transparent);color:var(--accent-green);font-size:.72rem;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}@media(max-width:600px){.header-device-name{display:none}.header-device-btn{padding:.4rem .5rem}.header-right-group{gap:.5rem}.header-logo-text{font-size:1rem}.header-dropdown{min-width:200px}}@media(max-width:480px){.header{align-self:stretch;width:100vw;margin-left:calc(50% - 50vw);box-sizing:border-box;padding:.5rem .75rem}}.app-links{position:fixed;bottom:calc(1.5rem + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)));left:1.5rem;display:flex;flex-direction:column;gap:.9rem;z-index:200}@media(max-width:600px){.app-links{flex-direction:row;left:50%;transform:translate(-50%);gap:1.4rem;bottom:calc(4.5rem + var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px)))}.app-links-divider{display:none}}.app-link{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;color:var(--white-20);cursor:pointer;transition:color .2s,transform .18s;position:relative;text-decoration:none;line-height:0}.app-link:hover{color:var(--white-70);transform:scale(1.2)}.app-links-divider{width:16px;height:1px;background:var(--white-08);align-self:center;margin:.1rem 0}.maintenance-screen{position:fixed;inset:0;background:var(--bg-deep);display:flex;align-items:center;justify-content:center;z-index:9999;padding:2rem}.maintenance-card{display:flex;flex-direction:column;align-items:center;gap:1.25rem;text-align:center;max-width:420px}.maintenance-icon{width:96px;height:96px;border-radius:50%;background:color-mix(in srgb,var(--accent-coral) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent-coral) 18%,transparent);display:flex;align-items:center;justify-content:center;color:var(--accent-coral);animation:maintenance-pulse 3s ease-in-out infinite}@keyframes maintenance-pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--accent-coral) 0%,transparent)}50%{box-shadow:0 0 0 12px color-mix(in srgb,var(--accent-coral) 8%,transparent)}}.maintenance-title{font-size:2rem;font-weight:800;color:var(--text-primary);letter-spacing:-.03em;margin:0}.maintenance-sub{font-size:.95rem;color:var(--text-muted);line-height:1.7;margin:0}.maintenance-reload{display:inline-flex;align-items:center;gap:.5rem;margin-top:.5rem;padding:.7rem 1.6rem;background:color-mix(in srgb,var(--accent-coral) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent-coral) 30%,transparent);border-radius:12px;color:var(--accent-coral);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.maintenance-reload:hover{background:color-mix(in srgb,var(--accent-coral) 18%,transparent);border-color:color-mix(in srgb,var(--accent-coral) 50%,transparent)}.server-offline,.room-not-found{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;padding:3rem 1.5rem;max-width:400px;margin:0 auto}.offline-icon{color:var(--danger);animation:offline-pulse 2s ease-in-out infinite}.offline-icon-circle{stroke:var(--danger);opacity:.3}.offline-icon-x{stroke:var(--danger)}@keyframes offline-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.95)}}.offline-title{font-size:1.8rem;font-weight:700;color:var(--text-primary);margin:0}.offline-message{color:var(--text-muted);font-size:.95rem;line-height:1.5;margin:0}.offline-status{min-height:32px;display:flex;align-items:center;justify-content:center}.offline-retrying{display:flex;align-items:center;gap:.75rem;color:var(--accent-cyan);font-size:.9rem}.offline-spinner{width:20px;height:20px;border:2px solid var(--border-subtle);border-top-color:var(--accent-cyan);border-radius:50%;animation:spin .8s linear infinite}.offline-countdown{color:var(--text-muted);font-size:.9rem;margin:0}.offline-countdown-number{color:var(--accent-cyan);font-weight:700;font-variant-numeric:tabular-nums}.offline-actions{display:flex;flex-direction:column;align-items:center;gap:1rem;width:100%}.offline-retry-btn{width:100%;max-width:200px}.offline-auto-toggle{display:flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.85rem;cursor:pointer}.offline-auto-toggle input{accent-color:var(--accent-green);width:16px;height:16px}.offline-tips{padding:1rem 1.25rem;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);width:100%;text-align:left}.offline-tips-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);margin:0 0 .75rem}.offline-tips ul{margin:0;padding-left:1.25rem;color:var(--text-muted);font-size:.85rem;line-height:1.8}.offline-tips li::marker{color:var(--text-dim)}.kicked-page{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;max-width:500px;margin:3rem auto;padding:2rem}.kicked-icon{color:var(--danger);animation:kicked-pulse 2s ease-in-out infinite}.kicked-icon-circle{stroke:var(--danger);opacity:.3}.kicked-icon-slash{stroke:var(--danger)}@keyframes kicked-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.kicked-title{font-size:1.8rem;font-weight:700;color:var(--text-primary);margin:0}.kicked-reason{color:var(--danger);font-size:1rem;font-weight:600;margin:0;padding:.75rem 1.5rem;background:color-mix(in srgb,var(--danger) 8%,transparent);border:1px solid color-mix(in srgb,var(--danger) 20%,transparent);border-radius:var(--radius)}.kicked-message{color:var(--text-muted);font-size:.95rem;line-height:1.6;margin:0}.kicked-actions{display:flex;gap:1rem;margin-top:1rem}.kicked-home-btn{display:flex;align-items:center;gap:.5rem}.kicked-info{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-subtle);width:100%}.kicked-info-title{font-size:.9rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem}.kicked-info ul{margin:0;padding-left:1.25rem;color:var(--text-muted);font-size:.85rem;line-height:1.8;text-align:left}.kicked-info li::marker{color:var(--text-dim)}.spotify-error-overlay{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:1rem}.spotify-error-modal{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:1.25rem;padding:2rem 2.25rem;max-width:480px;width:100%;display:flex;flex-direction:column;align-items:center;gap:1.25rem;text-align:center}.spotify-error-icon{color:#fa0;display:flex;align-items:center;justify-content:center}.spotify-error-title{font-size:1.4rem;font-weight:700;color:var(--text-primary);margin:0}.spotify-error-body{color:var(--text-secondary);font-size:.9rem;line-height:1.6;text-align:left;width:100%}.spotify-error-body p{margin:0 0 .75rem}.spotify-error-body ul{margin:0 0 .75rem;padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem}.spotify-error-hint{background:color-mix(in srgb,var(--accent-cyan) 8%,transparent);border-left:3px solid var(--accent-cyan);padding:.6rem .75rem;border-radius:0 .5rem .5rem 0;margin-top:.5rem}.spotify-error-actions{display:flex;flex-direction:column;gap:.6rem;width:100%}.spotify-error-yt-btn{background:linear-gradient(135deg,red,#c00);color:#fff;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:.75rem;font-weight:600;font-size:.95rem;border:none;cursor:pointer}.spotify-error-yt-btn:hover{opacity:.9}.spotify-error-continue-btn{background:transparent;color:var(--text-secondary);border:1px solid var(--border-subtle);padding:.65rem 1.5rem;border-radius:.75rem;font-size:.9rem;cursor:pointer}.spotify-error-continue-btn:hover{color:var(--text-primary);border-color:var(--text-secondary)}.bs-root{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-base, #0e0e0e);z-index:9999;padding:2rem 1.5rem;overflow-y:auto}.bs-glow{position:fixed;top:0;left:50%;transform:translate(-50%);width:700px;height:420px;background:radial-gradient(ellipse at 50% 0%,rgba(239,68,68,.18) 0%,transparent 65%);pointer-events:none}.bs-watermark{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);font-size:clamp(8rem,22vw,18rem);font-weight:900;letter-spacing:.06em;color:#ef44440b;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.bs-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.4rem;width:100%;max-width:480px}.bs-icon{color:var(--accent-coral, var(--accent-coral));animation:bs-icon-pulse 2.5s ease-in-out infinite}.bs-icon-ring{stroke:var(--accent-coral, var(--accent-coral));opacity:.28}.bs-icon-slash{stroke:var(--accent-coral, var(--accent-coral))}@keyframes bs-icon-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.75;transform:scale(1.06)}}.bs-title{font-size:2rem;font-weight:800;color:var(--text-primary, #e8e8e8);margin:0;letter-spacing:-.03em}.bs-reason-badge{color:var(--accent-coral, var(--accent-coral));font-size:.95rem;font-weight:600;padding:.6rem 1.4rem;background:color-mix(in srgb,var(--accent-coral) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent-coral) 22%,transparent);border-radius:999px;line-height:1.4}.bs-body{color:var(--text-muted, #808080);font-size:.9rem;line-height:1.65;margin:0;max-width:380px}.bs-meta{display:flex;align-items:center;gap:.75rem;font-size:.82rem;color:var(--text-secondary, #999)}.bs-meta-item{display:flex;align-items:center;gap:.35rem}.bs-meta-sep{width:3px;height:3px;border-radius:50%;background:var(--text-dim, #505050)}.bs-meta-status{color:var(--accent-coral, var(--accent-coral))}.bs-status-dot{width:6px;height:6px;border-radius:50%;background:var(--accent-coral, var(--accent-coral));box-shadow:0 0 6px var(--accent-coral, var(--accent-coral));animation:bs-dot-blink 1.8s ease-in-out infinite}@keyframes bs-dot-blink{0%,to{opacity:1}50%{opacity:.35}}.bs-actions{display:flex;flex-direction:column;align-items:center;gap:.6rem;margin-top:.4rem}.bs-appeal-btn,.bs-discord-btn{display:flex;align-items:center;gap:.5rem;padding:.65rem 1.4rem;background:var(--white-05);border:1px solid var(--white-10);border-radius:var(--radius-sm, 8px);color:var(--text-secondary, #999);font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s,color .15s,border-color .15s}.bs-appeal-btn:hover,.bs-discord-btn:hover{background:#ffffff17;border-color:var(--white-18);color:var(--text-primary, #e8e8e8)}.bs-discord-btn{color:#7289da;border-color:#7289da40;background:#7289da0f}.bs-discord-btn:hover{background:#7289da1f;border-color:#7289da66;color:#8fa0e8}.bs-form{width:100%;text-align:left;border-top:1px solid var(--white-07);padding-top:1.5rem;display:flex;flex-direction:column;gap:1rem}.bs-form-header{text-align:center}.bs-form-title{font-size:1rem;font-weight:700;color:var(--text-primary, #e8e8e8);margin:0 0 .3rem}.bs-form-sub{font-size:.82rem;color:var(--text-muted, #808080);margin:0}.bs-field{display:flex;flex-direction:column;gap:.35rem;position:relative}.bs-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary, #999)}.bs-input,.bs-textarea{width:100%;box-sizing:border-box;background:var(--white-04);border:1px solid var(--white-08);border-radius:var(--radius-sm, 8px);padding:.55rem .75rem;color:var(--text-primary, #e8e8e8);font-size:.875rem;font-family:inherit;resize:vertical;transition:border-color .15s}.bs-input:focus,.bs-textarea:focus{outline:none;border-color:color-mix(in srgb,var(--accent-coral) 45%,transparent)}.bs-char-count{align-self:flex-end;font-size:.72rem;color:var(--text-muted, #808080);opacity:.6}.bs-error{font-size:.82rem;color:var(--accent-coral, var(--danger));margin:0}.bs-form-actions{display:flex;gap:.6rem;justify-content:flex-end}.bs-cancel-btn{padding:.55rem 1rem;background:transparent;border:1px solid var(--white-10);border-radius:var(--radius-sm, 8px);color:var(--text-secondary, #999);font-size:.85rem;cursor:pointer;transition:background .15s}.bs-cancel-btn:hover{background:var(--white-06)}.bs-submit-btn{padding:.55rem 1.2rem;background:var(--accent-coral, var(--accent-coral));border:none;border-radius:var(--radius-sm, 8px);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s}.bs-submit-btn:hover:not(:disabled){opacity:.85}.bs-submit-btn:disabled{opacity:.45;cursor:not-allowed}.bs-submitted{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding-top:.5rem;color:var(--text-secondary, #999);font-size:.875rem;line-height:1.6}.bs-submitted svg{color:#22c55e}.bs-submitted p{margin:0}.game-chat{position:fixed;bottom:1rem;left:1.5rem;z-index:1000;width:340px;display:flex;flex-direction:column;pointer-events:none}.game-chat:hover{pointer-events:auto}.game-chat-messages{display:flex;flex-direction:column;gap:.25rem;max-height:300px;overflow-y:auto;padding:.5rem;border-radius:var(--radius) var(--radius) 0 0;transition:background .2s ease;pointer-events:none;scrollbar-width:none}.game-chat-messages::-webkit-scrollbar{display:none}.game-chat:hover .game-chat-messages{background:var(--black-70);pointer-events:auto;scrollbar-width:thin;scrollbar-color:var(--white-20) transparent}.game-chat:hover .game-chat-messages::-webkit-scrollbar{display:block;width:4px}.game-chat:hover .game-chat-messages::-webkit-scrollbar-thumb{background:var(--white-20);border-radius:2px}.game-chat-msg{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem;font-size:.8rem;line-height:1.4;padding:.15rem .4rem;border-radius:3px;background:var(--black-55);transition:opacity .5s ease}.game-chat:hover .game-chat-msg{background:var(--black-35)}.game-chat-msg-faded{opacity:0;transition:opacity 1s ease}.game-chat:hover .game-chat-msg-faded{opacity:1;transition:opacity .2s ease}.game-chat-msg-system{justify-content:center}.game-chat-msg-system-text{color:var(--text-dim);font-style:italic;font-size:.75rem}.game-chat-msg-sender{font-weight:600;color:var(--accent-cyan);flex-shrink:0}.game-chat-msg-sender:after{content:":"}.game-chat-msg-text{color:var(--text-primary);word-break:break-word;text-shadow:0 1px 2px rgba(0,0,0,.8)}.game-chat-input-row{display:flex;gap:.5rem;padding:.4rem;background:var(--black-55);border-radius:0 0 var(--radius) var(--radius);pointer-events:auto;transition:background .2s ease}.game-chat-input-row--empty{border-radius:var(--radius)}.game-chat:hover .game-chat-input-row{background:var(--black-70)}.game-chat-input{flex:1;background:var(--black-40);border:1px solid var(--white-15);border-radius:var(--radius-sm);color:var(--text-primary);padding:.4rem .6rem;font-size:.8rem;outline:none;font-family:inherit}.game-chat-input:focus{border-color:var(--accent-cyan);background:var(--black-60)}.game-chat-input::placeholder{color:var(--text-dim)}.game-chat-send{background:var(--accent-cyan);border:none;border-radius:var(--radius-sm);color:var(--bg-deep);width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .2s;flex-shrink:0;font-family:inherit}.game-chat-send:disabled{opacity:.4;cursor:default}.game-chat-send:hover:not(:disabled){opacity:.8}.game-chat-toggle,.game-chat-header{display:none}@media(max-width:768px){.game-chat-toggle{position:fixed;bottom:1rem;left:1rem;z-index:1001;width:56px;height:56px;border-radius:50%;background:var(--accent-coral);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 12px var(--black-40);transition:opacity .2s,transform .2s}.game-chat-toggle:active{transform:scale(.95)}.game-chat-toggle-hidden{opacity:0;pointer-events:none}.game-chat-badge{position:absolute;top:-4px;right:-4px;background:#ff3b3b;color:#fff;font-size:.7rem;font-weight:600;padding:.15rem .4rem;border-radius:10px;min-width:20px;text-align:center;box-shadow:0 2px 6px var(--black-30)}.game-chat{position:fixed;bottom:0;left:0;right:0;width:100%;max-height:60vh;pointer-events:auto;transition:transform .3s ease}.game-chat-collapsed{transform:translateY(100%);pointer-events:none}.game-chat-expanded{transform:translateY(0)}.game-chat-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--black-90);border-top:2px solid var(--accent-cyan);font-weight:600;color:var(--text-primary)}.game-chat-close{background:transparent;border:none;color:var(--text-dim);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;transition:color .2s}.game-chat-close:hover{color:var(--text-primary)}.game-chat-messages{background:var(--black-85);max-height:calc(60vh - 120px);overflow-y:auto;pointer-events:auto}.game-chat:hover .game-chat-messages{background:var(--black-85)}.game-chat-input-row{background:var(--black-90);padding:.75rem 1rem}}@media(max-width:600px){.game-chat{bottom:.5rem;left:.5rem;width:260px}}.ssl-page{display:flex;flex:1;min-height:0;width:100%;overflow:hidden;background:var(--bg-deep, #0a0a0a)}.ssl-sidebar{width:260px;flex-shrink:0;display:flex;flex-direction:column;background:#111;border-right:1px solid var(--white-06);overflow-y:auto;padding:1.5rem 0 2rem}.ssl-sidebar-section{padding:0 1rem}.ssl-sidebar-section--playlists{flex:1;margin-top:1.5rem;display:flex;flex-direction:column;min-height:0}.ssl-sidebar-label{display:flex;align-items:center;gap:.5rem;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted, #666);padding:0 .5rem;margin-bottom:.75rem}.ssl-new-pl-btn{margin-left:auto;background:transparent;border:none;color:var(--text-muted, #666);cursor:pointer;padding:.2rem;border-radius:4px;display:flex;align-items:center;transition:color .15s,background .15s}.ssl-new-pl-btn:hover{color:#fff;background:var(--white-10)}.ssl-nav{display:flex;flex-direction:column;gap:2px}.ssl-nav-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:8px;background:transparent;border:none;color:var(--text-muted, #888);cursor:pointer;font-size:.875rem;font-weight:500;width:100%;text-align:left;transition:background .15s,color .15s}.ssl-nav-item:hover{background:var(--white-07);color:#fff}.ssl-nav-item--active{color:#fff;background:var(--white-10)}.ssl-nav-item--active svg{color:var(--accent-coral, var(--accent-coral))}.ssl-nav-count{margin-left:auto;font-size:.7rem;color:var(--text-muted, #666);background:var(--white-07);padding:.1rem .5rem;border-radius:99px}.ssl-playlist-nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1}.ssl-sidebar-empty{font-size:.75rem;color:var(--text-muted, #666);padding:.5rem .75rem;margin:0;font-style:italic}.ssl-pl-nav-item{display:flex;align-items:center;gap:.625rem;padding:.5rem .75rem;border-radius:8px;background:transparent;border:none;color:var(--text-muted, #999);cursor:pointer;font-size:.8rem;width:100%;text-align:left;transition:background .15s,color .15s}.ssl-pl-nav-item:hover{background:var(--white-07);color:#ddd}.ssl-pl-nav-item--active{background:var(--white-10);color:#fff}.ssl-pl-nav-emoji{font-size:1.1rem;flex-shrink:0;width:1.5rem;text-align:center}.ssl-pl-nav-info{display:flex;flex-direction:column;gap:1px;min-width:0}.ssl-pl-nav-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ssl-pl-nav-meta{font-size:.7rem;color:var(--text-muted, #666)}.ssl-main{flex:1;display:flex;flex-direction:column;overflow-y:auto;min-width:0}.ssl-hero{display:flex;align-items:flex-end;gap:1.5rem;padding:2.5rem 2rem 1.5rem;background:linear-gradient(to bottom,var(--white-04) 0%,transparent 100%);border-bottom:1px solid var(--white-04);position:relative}.ssl-hero--liked{background:linear-gradient(135deg,color-mix(in srgb,var(--accent-coral) 25%,transparent) 0%,rgba(255,100,50,.1) 50%,transparent 100%)}.ssl-hero-back{position:absolute;top:1.5rem;left:1.5rem;background:var(--white-10);border:none;color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.ssl-hero-back:hover{background:var(--white-20)}.ssl-hero-art{width:140px;height:140px;border-radius:8px;background:var(--white-06);display:flex;align-items:center;justify-content:center;font-size:4rem;flex-shrink:0;box-shadow:0 8px 32px var(--black-50)}.ssl-hero-art--liked{background:linear-gradient(135deg,var(--accent-coral) 0%,#ff7043 100%);border-radius:4px}.ssl-hero-meta{display:flex;flex-direction:column;gap:.375rem;padding-bottom:.25rem}.ssl-hero-type{font-size:.65rem;font-weight:700;letter-spacing:.1em;color:var(--text-muted, #888);text-transform:uppercase}.ssl-hero-title{margin:0;font-size:2.25rem;font-weight:800;color:#fff;line-height:1.1}.ssl-hero-sub{font-size:.875rem;color:var(--text-muted, #888)}.ssl-hero-actions{display:flex;gap:.5rem;margin-top:.25rem}.ssl-hero-action{background:var(--white-08);border:1px solid var(--white-12);color:#ccc;padding:.375rem .875rem;border-radius:6px;font-size:.78rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:.375rem;transition:background .15s,color .15s}.ssl-hero-action:hover{background:var(--white-15);color:#fff}.ssl-hero-action--danger:hover{background:color-mix(in srgb,var(--danger) 20%,transparent);border-color:color-mix(in srgb,var(--danger) 40%,transparent);color:#ff6b6b}.ssl-toolbar{display:flex;align-items:center;gap:1rem;padding:1.25rem 2rem .75rem;flex-shrink:0}.ssl-search-wrap{position:relative;flex:1;max-width:400px}.ssl-search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--text-muted, #666);pointer-events:none}.ssl-search{width:100%;background:var(--white-07);border:1px solid var(--white-10);border-radius:99px;color:#fff;padding:.5rem 2.5rem;font-size:.85rem;outline:none;transition:border-color .2s,background .2s;box-sizing:border-box}.ssl-search::placeholder{color:var(--text-muted, #666)}.ssl-search:focus{border-color:var(--white-25);background:var(--white-10)}.ssl-search-clear{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--text-muted, #666);cursor:pointer;padding:.2rem;border-radius:50%;display:flex;align-items:center;transition:color .15s}.ssl-search-clear:hover{color:#fff}.ssl-sort-wrap{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.ssl-sort-label{font-size:.75rem;color:var(--text-muted, #666)}.ssl-sort{background:var(--white-07);border:1px solid var(--white-10);border-radius:6px;color:#ccc;padding:.375rem .625rem;font-size:.8rem;outline:none;cursor:pointer;transition:border-color .2s}.ssl-sort:focus{border-color:var(--white-25)}.ssl-table-head{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(0,200px) minmax(0,140px) minmax(0,100px);padding:0 2rem .5rem;border-bottom:1px solid var(--white-07);margin:0 0 .25rem}.ssl-table-head span{font-size:.7rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted, #666)}.ssl-table-body{flex:1;padding:0 1rem 2rem}.ssl-song-row{display:grid;grid-template-columns:48px minmax(0,1fr) minmax(0,200px) minmax(0,140px) minmax(0,100px);align-items:center;padding:.5rem 1rem;border-radius:8px;transition:background .12s;cursor:default}.ssl-song-row--hovered{background:var(--white-06)}.ssl-col-num{display:flex;align-items:center;justify-content:center}.ssl-row-num{font-size:.8rem;color:var(--text-muted, #888);font-variant-numeric:tabular-nums}.ssl-col-title{display:flex;align-items:center;gap:.75rem;min-width:0}.ssl-row-art{width:40px;height:40px;border-radius:4px;object-fit:cover;flex-shrink:0;background:var(--white-06)}.ssl-row-art--placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-muted, #666)}.ssl-row-name{font-size:.875rem;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ssl-row-artist{font-size:.82rem;color:var(--text-muted, #888);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ssl-row-date{font-size:.78rem;color:var(--text-muted, #666)}.ssl-col-actions{display:flex;align-items:center;justify-content:flex-end;gap:.25rem}.ssl-row-actions{opacity:0;transition:opacity .15s}.ssl-song-row--hovered .ssl-row-actions{opacity:1}.ssl-icon-btn{background:transparent;border:none;color:var(--text-muted, #888);cursor:pointer;padding:.375rem;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.ssl-icon-btn:hover{background:var(--white-10);color:#fff}.ssl-icon-btn--danger:hover{background:color-mix(in srgb,var(--danger) 15%,transparent);color:#ff6b6b}.ssl-icon-btn--add:hover{background:#1db95426;color:var(--accent-green, #1DB954)}.ssl-pl-menu-wrap{position:relative}.ssl-pl-dropdown{position:absolute;right:0;top:calc(100% + 4px);background:#1e1e1e;border:1px solid var(--white-12);border-radius:10px;min-width:200px;z-index:100;box-shadow:0 8px 32px var(--black-60);overflow:hidden}.ssl-pl-dropdown-header{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted, #666);padding:.75rem 1rem .5rem;border-bottom:1px solid var(--white-07)}.ssl-pl-option{display:flex;align-items:center;gap:.625rem;width:100%;padding:.625rem 1rem;background:transparent;border:none;color:#ccc;font-size:.85rem;cursor:pointer;text-align:left;transition:background .1s}.ssl-pl-option:hover{background:var(--white-06);color:#fff}.ssl-pl-option--active{color:#fff}.ssl-pl-option-emoji{font-size:1rem}.ssl-pl-page{padding:2rem}.ssl-pl-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.ssl-pl-page-header h1{margin:0;font-size:1.75rem;font-weight:800;color:#fff}.ssl-create-btn{display:flex;align-items:center;gap:.375rem;background:var(--white-08);border:1px solid var(--white-12);color:#ccc;padding:.5rem 1rem;border-radius:99px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.ssl-create-btn:hover{background:var(--white-15);color:#fff}.ssl-pl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.ssl-pl-card{background:var(--white-03);border:1px solid var(--white-07);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.75rem;transition:background .15s}.ssl-pl-card:hover{background:var(--white-06)}.ssl-pl-card-art{width:100%;aspect-ratio:1;border-radius:8px;background:var(--white-06);border:none;display:flex;align-items:center;justify-content:center;font-size:3rem;cursor:pointer;transition:background .15s}.ssl-pl-card-art:hover{background:var(--white-10)}.ssl-pl-card-info{display:flex;flex-direction:column;gap:2px}.ssl-pl-card-name{background:transparent;border:none;color:#fff;font-size:.875rem;font-weight:600;cursor:pointer;padding:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.ssl-pl-card-name:hover{text-decoration:underline}.ssl-pl-card-meta{font-size:.75rem;color:var(--text-muted, #666)}.ssl-pl-card-actions{display:flex;gap:.375rem;margin-top:auto}.ssl-pl-edit{padding:.5rem 0}.ssl-create-form{background:var(--white-03);border:1px solid var(--white-08);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.ssl-create-form-inner{display:flex;flex-direction:column;gap:.875rem}.ssl-emoji-picker{display:flex;flex-wrap:wrap;gap:.375rem}.ssl-emoji-opt{background:var(--white-06);border:1px solid transparent;border-radius:8px;padding:.375rem;font-size:1.25rem;cursor:pointer;transition:background .1s,border-color .1s;line-height:1}.ssl-emoji-opt:hover{background:var(--white-12)}.ssl-emoji-opt--active{border-color:var(--accent-green, #1DB954);background:#1db9541f}.ssl-create-row{display:flex;gap:.5rem;align-items:center}.ssl-input{flex:1;background:var(--white-07);border:1px solid var(--white-12);border-radius:8px;color:#fff;padding:.5rem .75rem;font-size:.875rem;outline:none;transition:border-color .2s}.ssl-input::placeholder{color:var(--text-muted, #666)}.ssl-input:focus{border-color:var(--white-30)}.ssl-btn{background:var(--white-07);border:1px solid var(--white-10);color:#ccc;padding:.5rem .875rem;border-radius:8px;font-size:.82rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.ssl-btn:hover{background:var(--white-12);color:#fff}.ssl-btn--primary{background:var(--accent-green, #1DB954);border-color:transparent;color:#000;font-weight:700}.ssl-btn--primary:hover:not(:disabled){background:#1ed760}.ssl-btn:disabled{opacity:.4;cursor:not-allowed}.ssl-songs-section{display:flex;flex-direction:column;flex:1;min-height:0}.ssl-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:4rem 2rem;color:var(--text-muted, #666);text-align:center}.ssl-empty-state svg{opacity:.4}.ssl-empty-state p{margin:0;font-size:.9rem;max-width:280px;line-height:1.5}.ssl-spinner{width:36px;height:36px;border:3px solid var(--white-10);border-top-color:var(--accent-green, #1DB954);border-radius:50%;animation:spin .8s linear infinite}@media(max-width:700px){.ssl-page{flex-direction:column}.ssl-sidebar{width:100%;height:auto;border-right:none;border-bottom:1px solid var(--white-06);padding:1rem 0 .5rem;flex-direction:row;overflow-x:auto;overflow-y:hidden}.ssl-sidebar-section{flex-shrink:0}.ssl-sidebar-section--playlists{margin-top:0;margin-left:1rem}.ssl-sidebar-label{display:none}.ssl-playlist-nav{flex-direction:row;overflow-x:auto;overflow-y:hidden;flex:unset}.ssl-pl-nav-item{flex-direction:column;gap:.25rem;padding:.5rem;min-width:80px;text-align:center}.ssl-pl-nav-info{align-items:center}.ssl-pl-nav-meta,.ssl-table-head{display:none}.ssl-song-row{grid-template-columns:1fr auto;grid-template-rows:auto auto}.ssl-col-num,.ssl-col-artist,.ssl-col-date{display:none}.ssl-col-title{grid-column:1}.ssl-col-actions{grid-column:2;grid-row:1 / 3;opacity:1}.ssl-row-actions{opacity:1}.ssl-hero-title{font-size:1.5rem}.ssl-hero-art{width:90px;height:90px;font-size:2.5rem}}.ssl-shell{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;overflow:hidden;background:var(--bg-deep, #0a0a0a)}.ssl-tabs{display:flex;align-items:stretch;background:#0d0d0d;border-bottom:1px solid var(--white-06);flex-shrink:0;padding:0 1rem;gap:0}.ssl-tab-btn{display:flex;align-items:center;gap:.5rem;padding:.9rem 1.25rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-muted, #808080);font-size:.875rem;font-weight:500;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap;margin-bottom:-1px}.ssl-tab-btn svg{flex-shrink:0;opacity:.6;transition:opacity .15s}.ssl-tab-btn:hover{color:var(--text-primary, #e8e8e8)}.ssl-tab-btn:hover svg{opacity:.9}.ssl-tab-btn--active{color:var(--text-primary, #e8e8e8);border-bottom-color:var(--accent-cyan, var(--accent-cyan))}.ssl-tab-btn--active svg{opacity:1;color:var(--accent-cyan, var(--accent-cyan))}.ssl-tab-content{flex:1;min-height:0;overflow-y:auto;padding:2rem}.ssl-spotify-lib{display:flex;flex-direction:column;gap:1.5rem}.ssl-lib-stats-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.ssl-lib-stat{display:flex;align-items:center;gap:1rem;padding:1.25rem;background:var(--bg-surface, #141414);border:1px solid var(--white-06);border-radius:var(--radius, 12px)}.ssl-lib-stat-icon{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ssl-lib-stat-icon--cyan{background:color-mix(in srgb,var(--accent-cyan) 10%,transparent);color:var(--accent-cyan, var(--accent-cyan))}.ssl-lib-stat-icon--coral{background:color-mix(in srgb,var(--accent-coral) 10%,transparent);color:var(--accent-coral, var(--accent-coral))}.ssl-lib-stat-value{font-size:1.6rem;font-weight:700;color:var(--text-primary, #e8e8e8);line-height:1}.ssl-lib-stat-label{font-size:.75rem;color:var(--text-muted, #808080);margin-top:.3rem;text-transform:uppercase;letter-spacing:.05em}.ssl-lib-progress{display:flex;align-items:center;gap:.75rem;padding:.85rem 1.25rem;background:color-mix(in srgb,var(--accent-cyan) 5%,transparent);border:1px solid color-mix(in srgb,var(--accent-cyan) 20%,transparent);border-radius:var(--radius, 12px);font-size:.875rem;color:var(--accent-cyan, var(--accent-cyan))}.ssl-lib-section{display:flex;flex-direction:column;gap:1rem}.ssl-lib-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.ssl-lib-section-title{font-size:1rem;font-weight:600;color:var(--text-primary, #e8e8e8)}.ssl-lib-section-sub{font-size:.8rem;color:var(--text-muted, #808080);margin-top:.2rem}.ssl-lib-sources-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.75rem}.ssl-lib-card{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;background:var(--bg-surface, #141414);border:2px solid var(--white-06);border-radius:var(--radius, 12px);cursor:pointer;transition:all .2s;text-align:left;position:relative;overflow:hidden}.ssl-lib-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:transparent;transition:background .2s}.ssl-lib-card:hover{background:var(--bg-elevated, #1a1a1a);border-color:var(--white-12)}.ssl-lib-card--active{border-color:var(--accent-cyan, var(--accent-cyan))}.ssl-lib-card--active:before{background:linear-gradient(90deg,var(--accent-cyan, var(--accent-cyan)),var(--accent-coral, var(--accent-coral)))}.ssl-lib-card--excluded{opacity:.5}.ssl-lib-card--excluded:hover{opacity:.7}.ssl-lib-card--expanded{border-color:var(--accent-cyan, var(--accent-cyan));background:var(--bg-elevated, #1a1a1a)}.ssl-lib-card-status{flex-shrink:0;color:var(--accent-cyan, var(--accent-cyan))}.ssl-lib-card--excluded .ssl-lib-card-status{color:var(--text-muted, #808080)}.ssl-lib-card-icon{flex-shrink:0}.ssl-lib-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.ssl-lib-card-name{font-size:.9rem;font-weight:600;color:var(--text-primary, #e8e8e8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssl-lib-card-count{font-size:.78rem;color:var(--text-muted, #808080)}.ssl-lib-card-refresh{flex-shrink:0;width:30px;height:30px;border:none;background:var(--bg-elevated, #1a1a1a);border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--accent-cyan, var(--accent-cyan));transition:all .2s;margin-left:auto}.ssl-lib-card-refresh:hover:not(:disabled){background:var(--accent-cyan, var(--accent-cyan));color:#000;transform:scale(1.1)}.ssl-lib-card-refresh:disabled{opacity:.4;cursor:not-allowed}.ssl-lib-song-panel{background:var(--bg-surface, #141414);border:1px solid var(--white-08);border-radius:var(--radius, 12px);overflow:hidden}.ssl-lib-song-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--white-06)}.ssl-lib-song-panel-title{font-size:.95rem;font-weight:600;color:var(--text-primary, #e8e8e8)}.ssl-lib-song-panel-meta{padding:.5rem 1.25rem;font-size:.8rem;color:var(--text-muted, #808080);border-bottom:1px solid var(--white-04)}.ssl-lib-song-list{max-height:400px;overflow-y:auto}.ssl-lib-song-row{display:flex;align-items:center;gap:.75rem;padding:.6rem 1.25rem;transition:background .15s}.ssl-lib-song-row:hover{background:var(--bg-elevated, #1a1a1a)}.ssl-lib-song-num{width:28px;text-align:right;font-size:.8rem;color:var(--text-muted, #808080);flex-shrink:0}.ssl-lib-song-art{width:40px;height:40px;border-radius:4px;object-fit:cover;flex-shrink:0;background:var(--bg-elevated, #1a1a1a)}.ssl-lib-song-info{flex:1;min-width:0}.ssl-lib-song-name{font-size:.875rem;font-weight:500;color:var(--text-primary, #e8e8e8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssl-lib-song-artist{font-size:.78rem;color:var(--text-muted, #808080);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ssl-lib-song-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;flex-shrink:0}.ssl-lib-song-dur{font-size:.8rem;color:var(--text-muted, #808080);font-variant-numeric:tabular-nums}.ssl-lib-song-date{font-size:.72rem;color:var(--text-dim, #505050);white-space:nowrap}.ssl-compare{display:flex;flex-direction:column;gap:1.5rem;max-width:860px;margin:0 auto;width:100%}.ssl-compare-search-section{display:flex;flex-direction:column;gap:.75rem}.ssl-compare-search-title{font-size:1.25rem;font-weight:700;color:var(--text-primary, #e8e8e8)}.ssl-compare-search-sub{font-size:.85rem;color:var(--text-muted, #808080)}.ssl-user-search{display:flex;align-items:center;gap:.75rem;background:var(--bg-surface, #141414);border:1px solid var(--white-10);border-radius:var(--radius, 12px);padding:.75rem 1rem;color:var(--text-muted, #808080);transition:border-color .2s}.ssl-user-search:focus-within{border-color:var(--accent-cyan, var(--accent-cyan))}.ssl-user-search-input{flex:1;background:none;border:none;outline:none;color:var(--text-primary, #e8e8e8);font-size:.95rem}.ssl-user-search-input::placeholder{color:var(--text-muted, #808080)}.ssl-user-results{display:flex;flex-direction:column;gap:.4rem}.ssl-user-no-results{padding:.75rem 1rem;font-size:.875rem;color:var(--text-muted, #808080)}.ssl-user-card{display:flex;align-items:center;gap:.875rem;padding:.75rem 1rem;background:var(--bg-surface, #141414);border:1px solid var(--white-06);border-radius:var(--radius-sm, 8px);cursor:pointer;transition:all .15s;text-align:left}.ssl-user-card:hover{background:var(--bg-elevated, #1a1a1a);border-color:var(--white-12)}.ssl-user-card--selected{border-color:var(--accent-cyan, var(--accent-cyan));background:color-mix(in srgb,var(--accent-cyan) 5%,transparent)}.ssl-user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-cyan, var(--accent-cyan)),var(--accent-coral, var(--accent-coral)));display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;color:#000;flex-shrink:0;overflow:hidden}.ssl-user-avatar img{width:100%;height:100%;object-fit:cover}.ssl-user-name{font-size:.9rem;font-weight:500;color:var(--text-primary, #e8e8e8)}.ssl-compare-error{display:flex;align-items:center;gap:.75rem;padding:1rem 1.25rem;background:color-mix(in srgb,var(--danger) 8%,transparent);border:1px solid color-mix(in srgb,var(--danger) 25%,transparent);border-radius:var(--radius, 12px);font-size:.875rem;color:var(--accent-coral, var(--danger))}.ssl-compare-results{display:flex;flex-direction:column;gap:1.5rem}.ssl-compare-hero{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;padding:2rem;background:var(--bg-surface, #141414);border:1px solid var(--white-06);border-radius:var(--radius, 12px)}.ssl-compare-hero-side{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center}.ssl-compare-hero-side--them{align-items:center}.ssl-compare-hero-avatar{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;color:#000;overflow:hidden;flex-shrink:0}.ssl-compare-hero-avatar img{width:100%;height:100%;object-fit:cover}.ssl-compare-hero-avatar--you{background:linear-gradient(135deg,var(--accent-cyan, var(--accent-cyan)),#0080ff);border:2px solid var(--accent-cyan, var(--accent-cyan))}.ssl-compare-hero-avatar--them{background:linear-gradient(135deg,var(--accent-coral, var(--accent-coral)),#ff8c00);border:2px solid var(--accent-coral, var(--accent-coral))}.ssl-compare-hero-name{font-size:.95rem;font-weight:600;color:var(--text-primary, #e8e8e8)}.ssl-compare-hero-count{font-size:.8rem;color:var(--text-muted, #808080)}.ssl-compare-hero-center{display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:140px}.ssl-compare-score{font-size:3.5rem;font-weight:800;background:linear-gradient(135deg,var(--accent-cyan, var(--accent-cyan)),var(--accent-coral, var(--accent-coral)));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1}.ssl-compare-score-label{font-size:.8rem;font-weight:600;color:var(--text-muted, #808080);text-transform:uppercase;letter-spacing:.07em}.ssl-compare-score-bar{width:100%;height:4px;background:var(--white-08);border-radius:2px;overflow:hidden}.ssl-compare-score-fill{height:100%;background:linear-gradient(90deg,var(--accent-cyan, var(--accent-cyan)),var(--accent-coral, var(--accent-coral)));border-radius:2px;transition:width .6s ease}.ssl-compare-score-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem}.ssl-compare-stat-card{padding:1.25rem;background:var(--bg-surface, #141414);border:1px solid var(--white-06);border-radius:var(--radius, 12px);display:flex;flex-direction:column;gap:.25rem;text-align:center}.ssl-compare-stat-value{font-size:2rem;font-weight:800;line-height:1}.ssl-compare-stat-value--cyan{color:var(--accent-cyan, var(--accent-cyan))}.ssl-compare-stat-value--coral{color:var(--accent-coral, var(--accent-coral))}.ssl-compare-stat-label{font-size:.8rem;font-weight:600;color:var(--text-primary, #e8e8e8)}.ssl-compare-stat-sub{font-size:.73rem;color:var(--text-muted, #808080)}.ssl-compare-section{background:var(--bg-surface, #141414);border:1px solid var(--white-06);border-radius:var(--radius, 12px);padding:1.5rem}.ssl-compare-section-title{font-size:.95rem;font-weight:700;color:var(--text-primary, #e8e8e8);text-transform:uppercase;letter-spacing:.06em;margin-bottom:1.25rem;display:flex;align-items:center;gap:.75rem}.ssl-compare-section-badge{background:var(--white-08);border-radius:999px;padding:.15rem .55rem;font-size:.75rem;font-weight:600;color:var(--text-muted, #808080);text-transform:none;letter-spacing:0}.ssl-era-legend{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-muted, #808080);font-weight:400;text-transform:none;letter-spacing:0;margin-left:auto}.ssl-era-dot{width:10px;height:10px;border-radius:2px;display:inline-block}.ssl-era-dot--you{background:var(--accent-cyan, var(--accent-cyan))}.ssl-era-dot--them{background:var(--accent-coral, var(--accent-coral));margin-left:.75rem}.ssl-era-chart{display:flex;flex-direction:column;gap:.6rem}.ssl-era-row{display:grid;grid-template-columns:40px 1fr 60px;align-items:center;gap:.75rem}.ssl-era-label{font-size:.78rem;font-weight:600;color:var(--text-muted, #808080);text-align:right}.ssl-era-bars{display:flex;flex-direction:column;gap:3px}.ssl-era-bar-wrap{height:8px;background:var(--white-05);border-radius:4px;overflow:hidden}.ssl-era-bar{height:100%;border-radius:4px;min-width:2px;transition:width .4s ease}.ssl-era-bar--you{background:var(--accent-cyan, var(--accent-cyan))}.ssl-era-bar--them{background:var(--accent-coral, var(--accent-coral))}.ssl-era-counts{font-size:.75rem;color:var(--text-dim, #505050);font-variant-numeric:tabular-nums;text-align:right}.ssl-artist-chips{display:flex;flex-wrap:wrap;gap:.5rem}.ssl-artist-chip{display:flex;flex-direction:column;gap:.2rem;padding:.5rem .875rem;background:var(--bg-elevated, #1a1a1a);border:1px solid var(--white-06);border-radius:var(--radius-sm, 8px);min-width:0}.ssl-artist-chip-name{font-size:.82rem;font-weight:600;color:var(--text-primary, #e8e8e8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.ssl-artist-chip-counts{font-size:.72rem;display:flex;gap:.25rem;align-items:center}.ssl-compare-songs{display:flex;flex-direction:column}.ssl-compare-show-more{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.85rem;background:none;border:1px dashed var(--white-10);border-radius:var(--radius-sm, 8px);color:var(--text-muted, #808080);font-size:.85rem;cursor:pointer;transition:all .2s;margin-top:.5rem}.ssl-compare-show-more:hover{border-color:var(--accent-cyan, var(--accent-cyan));color:var(--accent-cyan, var(--accent-cyan))}.ssl-spinner--sm{width:16px;height:16px;border-width:2px;flex-shrink:0}.ssl-empty-state--centered{flex:1;justify-content:center}@media(max-width:700px){.ssl-compare-score-cards{grid-template-columns:repeat(2,1fr)}.ssl-compare-hero{grid-template-columns:1fr;gap:1rem;padding:1.25rem}.ssl-compare-hero-center{order:-1}.ssl-compare-score{font-size:2.5rem}.ssl-tab-content{padding:1rem}.ssl-lib-stats-row{grid-template-columns:repeat(2,1fr)}.ssl-tabs{overflow-x:auto;padding:0 .5rem}.ssl-tab-btn{padding:.75rem .875rem;font-size:.8rem}}.survey-overlay{position:fixed;inset:0;z-index:9999;background:var(--black-85);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:fade-in .3s ease-out both}.survey-content{max-width:460px;width:100%;padding:2rem;display:flex;flex-direction:column;align-items:center;gap:1.5rem}.survey-gate-heading{font-size:2.2rem;font-weight:900;letter-spacing:.06em;text-align:center;line-height:1.15;margin:0;background:linear-gradient(135deg,var(--accent-coral, var(--accent-coral)),var(--accent-cyan, var(--accent-cyan)));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.survey-gate-sub{font-size:.95rem;color:var(--text-muted, #aaa);text-align:center;margin:0;line-height:1.5}.survey-btn-primary{display:flex;align-items:center;justify-content:center;width:100%;padding:1rem 2rem;background:linear-gradient(135deg,var(--accent-coral, var(--accent-coral)),#e03a3a);color:#fff;border:none;border-radius:50px;font-size:1.05rem;font-weight:700;font-family:inherit;cursor:pointer;transition:all .2s;box-shadow:0 4px 20px color-mix(in srgb,var(--accent-coral) 30%,transparent)}.survey-btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 28px color-mix(in srgb,var(--accent-coral) 45%,transparent);filter:brightness(1.07)}.survey-btn-primary:active:not(:disabled){transform:translateY(0)}.survey-btn-primary:disabled{opacity:.55;cursor:not-allowed}.survey-btn-ghost{background:none;border:none;color:var(--text-dim, #666);font-size:.88rem;font-family:inherit;cursor:pointer;padding:.4rem 1rem;transition:color .15s;width:100%;text-align:center}.survey-btn-ghost:hover{color:var(--text-muted, #aaa)}.survey-btn-nope{background:none;border:none;color:var(--text-dim, #555);font-size:.8rem;font-family:inherit;cursor:pointer;padding:.25rem .5rem;opacity:.6;transition:opacity .15s;width:100%;text-align:center}.survey-btn-nope:hover{opacity:1}.survey-gate-actions{display:flex;flex-direction:column;gap:.65rem;width:100%}.survey-progress-track{width:100%;height:3px;background:var(--border-subtle, var(--white-08));border-radius:2px;overflow:hidden}.survey-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-coral, var(--accent-coral)),var(--accent-cyan, var(--accent-cyan)));border-radius:2px;transition:width .4s ease}.survey-q-header{display:flex;flex-direction:column;align-items:center;gap:.5rem;width:100%}.survey-q-label{font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim, #555)}.survey-q-text{font-size:1.5rem;font-weight:900;letter-spacing:.04em;text-align:center;color:var(--text-primary, #fff);margin:0;line-height:1.2}.survey-q-sub{font-size:.85rem;color:var(--text-muted, #aaa);text-align:center;margin:0;line-height:1.4}.survey-options{display:flex;flex-direction:column;gap:.5rem;width:100%}.survey-option{display:flex;align-items:center;justify-content:center;width:100%;padding:.85rem 1.25rem;border:1px solid var(--border-subtle, var(--white-08));border-radius:var(--radius, 10px);background:var(--bg-elevated, var(--white-04));color:var(--text-primary, #fff);font-size:.95rem;font-weight:500;font-family:inherit;cursor:pointer;text-align:center;transition:border-color .18s,background .18s,box-shadow .18s}.survey-option:hover{border-color:var(--accent-coral, var(--accent-coral));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-coral) 20%,transparent)}.survey-option.selected{border-color:var(--accent-coral, var(--accent-coral));background:color-mix(in srgb,var(--accent-coral) 8%,transparent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent-coral) 20%,transparent)}.survey-multi-hint{font-size:.75rem;color:var(--text-dim, #555);text-align:center;letter-spacing:.04em}.survey-textarea{width:100%;min-height:120px;background:var(--bg-elevated, var(--white-04));border:1px solid var(--border-subtle, var(--white-08));border-radius:var(--radius, 10px);color:var(--text-primary, #fff);padding:1rem 1.25rem;font-size:.95rem;font-family:inherit;outline:none;resize:vertical;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.survey-textarea:focus{border-color:var(--accent-coral, var(--accent-coral));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-coral) 12%,transparent)}.survey-textarea::placeholder{color:var(--text-dim, #555)}.survey-actions{display:flex;flex-direction:column;gap:.5rem;width:100%}.survey-back-btn{background:none;border:none;color:var(--text-dim, #666);font-size:.88rem;font-family:inherit;cursor:pointer;padding:.4rem 1rem;transition:color .15s;width:100%;text-align:center}.survey-back-btn:hover{color:var(--text-muted, #aaa)}.survey-back-btn:disabled{opacity:.4;cursor:not-allowed}.survey-skip-link{background:none;border:none;color:var(--text-dim, #555);font-size:.8rem;font-family:inherit;cursor:pointer;padding:.25rem 0;text-align:center;transition:color .15s;text-decoration:underline}.survey-skip-link:hover{color:var(--text-muted, #aaa)}.survey-question-animate{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;animation:fade-in-up-lg .28s ease-out both}.survey-success-wrap{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;animation:fade-in-up-lg .4s ease-out both;text-align:center}.survey-success-ring{position:relative;width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,color-mix(in srgb,var(--accent-cyan) 12%,transparent),#00c86424);border:1.5px solid color-mix(in srgb,var(--accent-cyan) 28%,transparent);display:flex;align-items:center;justify-content:center;animation:ring-pop .5s cubic-bezier(.34,1.56,.64,1) both;box-shadow:0 0 30px color-mix(in srgb,var(--accent-cyan) 15%,transparent)}.survey-success-ring:before{content:"";position:absolute;inset:-10px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent-cyan) 7%,transparent) 0%,transparent 70%);animation:ring-breathe 2.6s ease-in-out infinite}.survey-success-heading{font-size:1.75rem;font-weight:900;letter-spacing:.05em;color:var(--text-primary, #fff);margin:0}.survey-success-sub{font-size:.9rem;color:var(--text-muted, #aaa);margin:0;line-height:1.5}html{font-size:clamp(.875rem,.45vw + .75rem,1.25rem);scrollbar-gutter:stable}@media(max-width:600px){html{scrollbar-gutter:auto;font-size:calc(clamp(.875rem,.45vw + .75rem,1.25rem)*.95)}}:root{--white-01: rgba(255, 255, 255, .01);--white-02: rgba(255, 255, 255, .02);--white-03: rgba(255, 255, 255, .03);--white-04: rgba(255, 255, 255, .04);--white-05: rgba(255, 255, 255, .05);--white-06: rgba(255, 255, 255, .06);--white-07: rgba(255, 255, 255, .07);--white-08: rgba(255, 255, 255, .08);--white-10: rgba(255, 255, 255, .1);--white-12: rgba(255, 255, 255, .12);--white-15: rgba(255, 255, 255, .15);--white-18: rgba(255, 255, 255, .18);--white-20: rgba(255, 255, 255, .2);--white-22: rgba(255, 255, 255, .22);--white-25: rgba(255, 255, 255, .25);--white-30: rgba(255, 255, 255, .3);--white-40: rgba(255, 255, 255, .4);--white-50: rgba(255, 255, 255, .5);--white-60: rgba(255, 255, 255, .6);--white-70: rgba(255, 255, 255, .7);--white-80: rgba(255, 255, 255, .8);--white-90: rgba(255, 255, 255, .9);--white-92: rgba(255, 255, 255, .92);--black-20: rgba(0, 0, 0, .2);--black-25: rgba(0, 0, 0, .25);--black-30: rgba(0, 0, 0, .3);--black-35: rgba(0, 0, 0, .35);--black-40: rgba(0, 0, 0, .4);--black-45: rgba(0, 0, 0, .45);--black-50: rgba(0, 0, 0, .5);--black-55: rgba(0, 0, 0, .55);--black-60: rgba(0, 0, 0, .6);--black-70: rgba(0, 0, 0, .7);--black-85: rgba(0, 0, 0, .85);--black-90: rgba(0, 0, 0, .9);--bg-deep: #0a0a0a;--bg-base: #0a0a0a;--bg-surface: #141414;--bg-elevated: #1a1a1a;--border-subtle: var(--white-06);--box-border: color-mix(in srgb, var(--text-primary) 13%, transparent);--accent-coral: #FF4D4D;--accent-cyan: #00E5FF;--accent-green: #1DB954;--danger: #FF4D4D;--tier-backstage: #3b82f6;--tier-backstage-alt: #06b6d4;--tier-headliner: #f59e0b;--tier-headliner-alt: #f97316;--tier-stadium: #8b5cf6;--tier-stadium-alt: #ec4899;--text-primary: #E8E8E8;--text-secondary: #999999;--text-muted: #808080;--text-dim: #505050;--glow-coral: 0 0 20px color-mix(in srgb, var(--accent-coral) 40%, transparent);--glow-cyan: 0 0 20px color-mix(in srgb, var(--accent-cyan) 40%, transparent);--app-backdrop-image: radial-gradient(ellipse at 20% 50%, color-mix(in srgb, var(--accent-coral) 3%, transparent) 0%, transparent 50%), radial-gradient(ellipse at 80% 50%, color-mix(in srgb, var(--accent-cyan) 3%, transparent) 0%, transparent 50%);--radius-xs: 4px;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--radius-full: 9999px;--text-xs: .65rem;--text-sm: .75rem;--text-base: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 2.5rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 3rem;--shadow-sm: 0 1px 2px var(--black-30);--shadow-md: 0 4px 12px var(--black-40);--shadow-lg: 0 8px 24px var(--black-50);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-modal: 200;--z-toast: 300;--z-overlay: 400}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,sans-serif;background:var(--bg-deep);color:var(--text-primary);min-height:100vh;min-height:100dvh;overflow-x:hidden;overflow-y:auto;background-image:var(--app-backdrop-image)}#root{width:100%;max-width:min(62.5rem,100% - var(--space-4));margin:0 auto;min-height:100vh;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.app{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}.app--fullpage{gap:0;height:100vh;height:100dvh;overflow:hidden}.btn{border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:1rem;font-family:inherit;padding:.75rem 1.5rem;background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-subtle);transition:all .2s ease}.btn:hover{background:#222;border-color:var(--white-10)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent-green);color:#000;font-weight:600;border-color:transparent}.btn-primary:hover{background:#1ed760}.btn-small{font-size:.8rem;padding:.4rem .8rem}.btn-back{font-size:.9rem;padding:.5rem .8rem;background:transparent;border-color:transparent}.btn-back:hover{background:var(--bg-elevated)}.btn-hero{font-size:1.1rem;padding:1rem 2rem;border-radius:var(--radius);font-weight:600;width:100%;max-width:360px;letter-spacing:.01em}.btn-create{background:var(--accent-coral);color:#fff;border-color:transparent;box-shadow:var(--glow-coral)}.btn-create:hover{background:#f66;box-shadow:0 0 30px color-mix(in srgb,var(--accent-coral) 50%,transparent)}.btn-join{background:var(--bg-elevated);border:1px solid var(--accent-cyan);color:var(--accent-cyan)}.btn-join:hover{background:color-mix(in srgb,var(--accent-cyan) 8%,transparent);box-shadow:var(--glow-cyan)}.btn-control{font-size:1.1rem;padding:.8rem 2rem}.loading{color:var(--text-muted);text-align:center;margin-top:4rem}.error-banner{background:color-mix(in srgb,var(--danger) 10%,transparent);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);color:var(--danger);padding:.75rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;width:100%;text-align:center}.error{color:var(--danger);font-size:.9rem}.toast-container{position:fixed;bottom:calc(1.5rem + env(safe-area-inset-bottom,0px));right:calc(1.5rem + env(safe-area-inset-right,0px));z-index:9999;max-width:min(360px,calc(100% - 3rem));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.25rem;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius);box-shadow:0 8px 32px var(--black-40);animation:toast-enter .2s ease-out;position:relative;overflow:hidden;pointer-events:auto}.toast-exit{animation:toast-exit .2s ease-in forwards}@keyframes toast-enter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-exit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast-icon{display:flex;flex-shrink:0;margin-top:1px}.toast-message{flex:1;font-size:.9rem;color:var(--text-primary);line-height:1.4}.toast-dismiss{display:flex;align-items:center;justify-content:center;padding:0;background:none;border:none;color:var(--text-dim);cursor:pointer;transition:color .15s;flex-shrink:0}.toast-dismiss:hover{color:var(--text-primary)}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background:currentColor;opacity:.3;transition:width .05s linear}.skeleton{background:linear-gradient(90deg,var(--bg-elevated) 0%,var(--bg-surface) 50%,var(--bg-elevated) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes spin{to{transform:rotate(360deg)}}.skeleton-text{height:1rem;width:100%;max-width:200px}@keyframes bg-decor-fade-out-only{0%{opacity:1}to{opacity:0}}.bg-decor-waveform{position:fixed;top:50%;left:0;transform:translateY(-50%);width:100vw;pointer-events:none;opacity:0;-webkit-user-select:none;user-select:none;z-index:0;animation:fade-in 2s ease-out forwards}.bg-decor-waveform img{width:100%;display:block;opacity:.06}@media(max-width:600px){.bg-decor-waveform{top:84%}}.bg-decor-soundbars{position:fixed;bottom:-16.8%;left:0;width:100vw;pointer-events:none;opacity:0;-webkit-user-select:none;user-select:none;z-index:0;animation:fade-in 2s ease-out forwards}.bg-decor-soundbars img{width:100%;display:block;opacity:.043}.bg-decor-waveform--fade-out,.bg-decor-soundbars--fade-out{opacity:1;animation-name:bg-decor-fade-out-only;animation-duration:2s;animation-delay:1s;animation-fill-mode:forwards}.app-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1.5rem}@media(max-width:600px){.toast-container{left:1rem;right:1rem;bottom:1rem;max-width:none}}@media(max-width:480px){#root{padding:.75rem .5rem}}.modal-overlay{position:fixed;inset:0;background:var(--black-70);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fade-in .2s ease-out}.modal-content{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius);max-width:600px;width:90vw;max-height:80vh;display:flex;flex-direction:column;animation:slideUp .3s ease-out}.modal-large{max-width:1100px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid var(--border-subtle)}.modal-header h2{font-size:1.4rem;font-weight:600;color:var(--text-primary);margin:0}.modal-close{background:none;border:none;font-size:2rem;color:var(--text-muted);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:6px;transition:all .2s}.modal-close:hover{background:var(--bg-surface);color:var(--text-primary)}.modal-body{padding:1.5rem;overflow-y:auto;flex:1}.modal-footer{padding:1.5rem;border-top:1px solid var(--border-subtle);display:flex;gap:1rem;justify-content:flex-end}.avatar{border-radius:var(--radius-full);overflow:hidden;display:inline-flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:2px solid var(--border-subtle);flex-shrink:0}.avatar-img{width:100%;height:100%;object-fit:cover;border-radius:var(--radius-full)}.avatar-initial{font-weight:700;color:var(--text-primary);text-transform:uppercase;line-height:1}.avatar-xs .avatar-initial{font-size:.55rem}.avatar-sm .avatar-initial{font-size:.7rem}.avatar-md .avatar-initial{font-size:.85rem}.avatar-lg .avatar-initial{font-size:1.1rem}.avatar-xl .avatar-initial{font-size:1.5rem}.logo{display:flex;align-items:center;gap:.5rem}.logo-sm{gap:.5rem}.logo-lg{flex-direction:column;gap:1rem;text-align:center}.logo-icon{color:var(--accent-primary, var(--accent-cyan));display:flex;align-items:center}.logo-text{font-size:1.1rem;font-weight:700;color:var(--text-primary);letter-spacing:-.5px}.logo-text-short{display:none}.logo-text-full{display:inline}@media(max-width:600px){.logo-text-full{display:none}.logo-text-short{display:inline}}.logo-title{font-size:var(--text-3xl);font-weight:800;background:linear-gradient(135deg,var(--accent-primary, var(--accent-coral)),var(--accent-secondary, var(--accent-cyan)));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}body:has(.home-page),body:has(.connect-service-page){overflow-y:hidden}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-up-lg{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes drop-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes drop-in-far{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes ring-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@keyframes ring-breathe{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.5}}@keyframes draw-stroke{to{stroke-dashoffset:0}}@keyframes soft-pulse{50%{opacity:.45}}@keyframes lines-drift{0%{transform:rotate(-35deg) translate(0)}to{transform:rotate(-35deg) translate(360px)}}@keyframes stadium-pulse{0%,to{box-shadow:0 0 8px #8b5cf680}50%{box-shadow:0 0 16px #ec489999}}@keyframes banner-expand{0%{max-height:0;opacity:0}to{max-height:40px;opacity:1}}.da-preview-fallback{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;background:#050505}.da-preview-fallback img{width:100%;height:100%;object-fit:contain}.cg-gate{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem 1rem;text-align:center;background:radial-gradient(ellipse at 50% 35%,color-mix(in srgb,var(--accent-coral) 12%,transparent),transparent 60%),var(--bg-base);color:var(--text-primary)}.cg-gate-title{margin:0;font-size:1.4rem;font-weight:800}.cg-gate-text{margin:0;max-width:24rem;color:var(--text-muted);font-size:.95rem;line-height:1.5}.cg-gate-retry{margin-top:.5rem;padding:.7rem 1.6rem;border:none;border-radius:999px;background:var(--accent-coral);color:#fff;font:inherit;font-weight:700;cursor:pointer}.cg-gate-retry:hover{filter:brightness(1.08)}.vdo-probe{position:fixed;top:0;left:0;width:0;height:0;visibility:hidden;pointer-events:none;font-size:var(--text-base);margin-left:var(--space-4);padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px)}.vdo{position:fixed;right:calc(8px + env(safe-area-inset-right,0px));bottom:calc(8px + env(safe-area-inset-bottom,0px));z-index:2147483647;width:246px;max-width:calc(100vw - 16px);max-height:60vh;max-height:60dvh;overflow-y:auto;display:flex;flex-direction:column;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;line-height:1.5;color:#e8e8e8;background:#0a0a0ceb;border:1px solid var(--white-18);border-radius:6px;box-shadow:0 4px 16px var(--black-50);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.vdo-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:5px 6px 5px 8px;font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-cyan);background:inherit;border-bottom:1px solid var(--white-12)}.vdo-head button{flex:none;width:16px;height:16px;padding:0;font-size:13px;line-height:1;color:inherit;background:none;border:none;border-radius:3px;cursor:pointer}.vdo-head button:hover{background:var(--white-12)}.vdo-body{padding:5px 8px 7px}.vdo-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.vdo-row>span:first-child{flex:0 1 auto;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#9aa0a6}.vdo-row>span:last-child{flex:none;font-variant-numeric:tabular-nums}.vdo-sep{margin-top:6px;padding-top:4px;font-size:9px;letter-spacing:.09em;text-transform:uppercase;color:var(--accent-coral);border-top:1px solid var(--white-12)}html.discord-stage{width:100%;height:100%;overflow:hidden;scrollbar-gutter:auto;background:#000}html.discord-stage body{width:100%;height:100%;min-height:0;margin:0;overflow:hidden;background:none}html.discord-stage #dstage{position:fixed;top:50%;left:50%;width:var(--dstage-w, 1920px);height:var(--dstage-h, 1080px);transform:translate(-50%,-50%) scale(var(--dstage-scale, 1));transform-origin:50% 50%;overflow:hidden;background:var(--bg-deep);background-image:var(--app-backdrop-image)}html.discord-stage #dstage-viewport{width:100%;height:100%;overflow-x:hidden;overflow-y:auto}
