:root{--bg-base:#0d0508;--bg-surface:#170a10;--bg-mid:#21101a;--bg-card:#2b1624;--bg-card-alt:#2f1a28;--accent:#d9c08f;--accent-dark:#c9a876;--accent-shadow:#d9c08f59;--text-base:#f5eef0;--text-secondary:#f5eef0b8;--text-muted:#f5eef073;--text-near:#f5eef0cc;--text-light:#faf6f7;--negative:#e0637a;--warning:#e0a458;--info:#b3527a;--border:#f5eef024;--border-light:#f5eef040;--border-sep:#f5eef066;--shadow-heavy:#00000080 0px 8px 24px;--shadow-medium:#0000004d 0px 8px 8px;--shadow-inset:#0d0508 0px 1px 0px, #7c6470 0px 0px 0px 1px inset;--sidebar-width:260px;--right-panel-width:320px;--player-height:90px;--topbar-height:64px;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:20px;--radius-pill:500px;--radius-full:9999px;--radius-circle:50%;--font:"Noto Sans KR", "Helvetica Neue", Arial, "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Meiryo", "MS Gothic", sans-serif;--font-display:"Syne", "Noto Sans KR", "Helvetica Neue", sans-serif;--transition-fast:.12s ease;--transition-normal:.2s ease;--transition-slow:.35s ease;--z-base:0;--z-overlay:100;--z-topbar:200;--z-panel:300;--z-modal:400;--z-toast:500;--grad-1:linear-gradient(135deg, #d9c08f 0%, #6b5530 100%);--grad-2:linear-gradient(135deg, #b3527a 0%, #4a1030 100%);--grad-3:linear-gradient(135deg, #e0a458 0%, #7a3a0a 100%);--grad-4:linear-gradient(135deg, #c9536b 0%, #5c0f22 100%);--grad-5:linear-gradient(135deg, #9c1457 0%, #34081f 100%);--grad-6:linear-gradient(135deg, #c9a0a8 0%, #4a2530 100%);--grad-7:linear-gradient(135deg, #ecd9ae 0%, #b3527a 100%);--grad-8:linear-gradient(135deg, #7a3a5c 0%, #21101a 100%)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg-base);color:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}a{color:inherit;text-decoration:none}a:hover{color:var(--text-base)}button{font-family:var(--font);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}input,textarea,select{font-family:var(--font);color:var(--text-base);font-size:14px}ul,ol{list-style:none}.grad-1{background:var(--grad-1)}.grad-2{background:var(--grad-2)}.grad-3{background:var(--grad-3)}.grad-4{background:var(--grad-4)}.grad-5{background:var(--grad-5)}.grad-6{background:var(--grad-6)}.grad-7{background:var(--grad-7)}.grad-8{background:var(--grad-8)}.text-accent{color:var(--accent)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-negative{color:var(--negative)}.text-warning{color:var(--warning)}.text-info{color:var(--info)}.text-truncate{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.fw-400{font-weight:400}.fw-600{font-weight:600}.fw-700{font-weight:700}.fw-900{font-weight:900}.fs-10{font-size:10px}.fs-12{font-size:12px}.fs-14{font-size:14px}.fs-16{font-size:16px}.fs-18{font-size:18px}.fs-24{font-size:24px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.align-center{align-items:center}.justify-between{justify-content:space-between}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes eq-pulse{0%{transform:scaleY(.35)}to{transform:scaleY(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 16px var(--accent-shadow)}50%{box-shadow:0 0 32px #d9c08f8c}}.anim-fade-in-up{animation:.25s fadeInUp}.anim-fade-in{animation:.2s fadeIn}.anim-slide-right{animation:.3s slideInRight}.eq-bars{align-items:flex-end;gap:2px;height:14px;display:inline-flex}.eq-bar{background:var(--accent);border-radius:1px;width:3px;animation:.8s ease-in-out infinite alternate eq-pulse}.eq-bar:first-child{height:40%;animation-delay:0s}.eq-bar:nth-child(2){height:100%;animation-delay:.15s}.eq-bar:nth-child(3){height:60%;animation-delay:.3s}.eq-bar:nth-child(4){height:80%;animation-delay:.1s}@media (width<=900px){.hide-mobile{display:none!important}}@media (width>=901px){.hide-desktop{display:none!important}}.app-wrapper{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-shell{flex:1;gap:8px;min-height:0;padding:8px 8px 0;display:flex;overflow:hidden}.app-main-area{flex:1;gap:8px;min-width:0;display:flex;overflow:hidden}.main{background:var(--bg-surface);border-radius:var(--radius-lg);min-width:0;transition:flex var(--transition-slow);flex-direction:column;flex:1;display:flex;overflow:hidden}.content{flex:1;padding:0 24px 24px;overflow:hidden auto}.right-panel{background:var(--bg-surface);border-radius:var(--radius-lg);width:0;transition:width var(--transition-slow);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.right-panel.open{width:var(--right-panel-width)}.player-wrapper{flex-shrink:0;padding:0 8px 8px}.page{display:none}.page.active{animation:.25s fadeInUp;display:block}.section{margin-bottom:32px}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-title{letter-spacing:-.3px;font-size:24px;font-weight:700}.section-more{text-transform:uppercase;letter-spacing:1.4px;color:var(--text-secondary);font-size:12px;font-weight:700;font-family:var(--font);transition:color var(--transition-fast);background:0 0;border:none}.section-more:hover{color:var(--text-base)}.tabs{gap:4px;margin-bottom:24px;display:flex}.tab-btn{color:var(--text-secondary);border-radius:var(--radius-full);font-size:14px;font-weight:700;font-family:var(--font);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;padding:8px 16px}.tab-btn:hover{color:var(--text-base);background:#ffffff12}.tab-btn.active{background:var(--text-base);color:#000}.divider{background:#ffffff14;height:1px;margin:16px 0}.empty-state{text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex}.empty-state-icon{margin-bottom:16px;font-size:56px}.empty-state-title{color:var(--text-base);margin-bottom:8px;font-size:18px;font-weight:700}.empty-state-desc{font-size:14px;line-height:1.5}.page-header{border-radius:var(--radius-lg);align-items:center;gap:32px;margin-bottom:32px;padding:32px;display:flex;position:relative;overflow:hidden}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(178px,1fr));gap:16px;display:grid}@media (width<=1200px){.right-panel.open{width:280px}}@media (width<=900px){.sidebar,.right-panel{display:none}}#page-detail .section{margin-bottom:0;padding:0}#page-detail{padding:0!important}.sidebar{width:var(--sidebar-width);flex-direction:column;flex-shrink:0;gap:8px;display:flex}.sidebar-top{background:var(--bg-surface);border-radius:var(--radius-lg);flex-shrink:0;padding:20px 12px 16px}.logo{cursor:pointer;align-items:center;gap:10px;margin-bottom:24px;padding:0 4px;text-decoration:none;display:flex}.logo-icon{background:var(--accent);border-radius:var(--radius-circle);width:32px;height:32px;transition:transform var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.logo:hover .logo-icon{transform:scale(1.08)}.logo-text{color:var(--text-base);letter-spacing:-.02em;font-family:Syne,Noto Sans KR,sans-serif;font-size:22px;font-weight:900}.nav-list{flex-direction:column;gap:1px;display:flex}.nav-item a{border-radius:var(--radius-md);color:var(--text-secondary);transition:color var(--transition-fast), background var(--transition-fast);align-items:center;gap:14px;padding:10px 12px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.nav-item a:hover{color:var(--text-base);background:#ffffff0d}.nav-item a svg{flex-shrink:0;width:22px;height:22px}.nav-item.active a{color:var(--text-base);background:#ffffff14}.nav-badge{background:var(--accent);color:#000;border-radius:var(--radius-full);text-align:center;min-width:18px;margin-left:auto;padding:2px 7px;font-size:10px;font-weight:700}.nav-divider{background:#ffffff12;height:1px;margin:8px 12px}.sidebar-bottom{background:var(--bg-surface);border-radius:var(--radius-lg);flex-direction:column;flex:1;min-height:0;padding:16px 12px;display:flex;overflow:hidden}.library-header{justify-content:space-between;align-items:center;margin-bottom:12px;padding:0 4px;display:flex}.library-title{color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast);font-size:14px;font-weight:700;font-family:var(--font);background:0 0;border:none;align-items:center;gap:10px;padding:0;display:flex}.library-title:hover{color:var(--text-base)}.library-filters{flex-wrap:wrap;gap:6px;margin-bottom:12px;padding:0 4px;display:flex}.filter-pill{background:var(--bg-mid);color:var(--text-base);border-radius:var(--radius-full);cursor:pointer;font-size:12px;font-weight:700;font-family:var(--font);transition:background var(--transition-fast), color var(--transition-fast);white-space:nowrap;border:none;padding:5px 12px}.filter-pill:hover{background:var(--bg-card)}.filter-pill.active{background:var(--text-base);color:#000}.library-list{flex-direction:column;flex:1;gap:1px;padding:0 4px;display:flex;overflow-y:auto}.library-item{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:12px;padding:7px 8px;display:flex}.library-item:hover{background:#ffffff0f}.library-item.active{background:#ffffff1a}.library-item-art{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:18px;display:flex;overflow:hidden}.library-item-art.circle{border-radius:var(--radius-circle)}.library-item-info{flex:1;overflow:hidden}.library-item-name{color:var(--text-base);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.library-item-name.playing{color:var(--accent)}.library-item-meta{color:var(--text-secondary);margin-top:1px;font-size:11px}.icon-btn{color:var(--text-secondary);border-radius:var(--radius-circle);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:6px;display:flex}.icon-btn:hover{color:var(--text-base);background:#ffffff12}.icon-btn.active,.icon-btn.liked{color:var(--accent)}.topbar{height:var(--topbar-height);z-index:var(--z-topbar);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:linear-gradient(#181818f7 0%,#18181899 100%);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 24px;display:flex;position:sticky;top:0}.topbar-nav{gap:8px;display:flex}.nav-arrow-btn{border-radius:var(--radius-circle);width:32px;height:32px;color:var(--text-base);cursor:pointer;transition:background var(--transition-fast);background:#000000a6;border:none;justify-content:center;align-items:center;display:flex}.nav-arrow-btn:hover{background:#000000e6}.nav-arrow-btn:disabled{opacity:.3;cursor:default}.search-container{flex:1;max-width:360px;margin:0 20px;position:relative}.search-icon{color:var(--text-base);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search-input{background:var(--bg-mid);border-radius:var(--radius-pill);width:100%;color:var(--text-base);font-size:14px;font-weight:400;font-family:var(--font);box-shadow:var(--shadow-inset);transition:box-shadow var(--transition-fast);border:none;outline:none;padding:10px 16px 10px 42px}.search-input:focus{box-shadow:inset 0 0 0 2px #fff}.search-input::placeholder{color:var(--text-secondary)}.topbar-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.topbar-pill-btn{background:var(--text-base);color:#000;border-radius:var(--radius-full);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);text-transform:uppercase;letter-spacing:1.4px;transition:transform var(--transition-fast), background var(--transition-fast);border:none;padding:7px 18px}.topbar-pill-btn:hover{background:#f0f0f0;transform:scale(1.03)}.topbar-outline-btn{border:1px solid var(--border-light);color:var(--text-base);border-radius:var(--radius-full);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);transition:border-color var(--transition-fast), transform var(--transition-fast);background:0 0;padding:7px 18px}.topbar-outline-btn:hover{border-color:var(--text-base);transform:scale(1.03)}.avatar{background:linear-gradient(135deg, var(--accent) 0%, #1a8c3a 100%);border-radius:var(--radius-circle);color:#000;cursor:pointer;width:34px;height:34px;transition:transform var(--transition-fast), box-shadow var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:flex;position:relative}.avatar:hover{box-shadow:0 0 0 2px var(--accent);transform:scale(1.07)}.dropdown{position:relative}.dropdown-menu{background:var(--bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-heavy);min-width:180px;z-index:var(--z-panel);animation:.15s fadeIn;display:none;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.dropdown:hover .dropdown-menu,.dropdown.open .dropdown-menu{display:block}.dropdown-item{color:var(--text-base);cursor:pointer;transition:background var(--transition-fast);font-size:14px;font-weight:400;font-family:var(--font);text-align:left;background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:12px 16px;display:flex}.dropdown-item:hover{background:#ffffff12}.dropdown-item.danger{color:var(--negative)}.dropdown-divider{background:#ffffff12;height:1px;margin:4px 0}.player-bar{height:var(--player-height);background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid #ffffff0f;flex-shrink:0;align-items:center;gap:12px;padding:0 20px;display:flex}.player-track{flex-shrink:0;align-items:center;gap:14px;width:280px;min-width:0;display:flex}.player-art{border-radius:var(--radius-sm);width:54px;height:54px;box-shadow:var(--shadow-medium);flex-shrink:0;justify-content:center;align-items:center;font-size:22px;animation:3s ease-in-out infinite float;display:flex;overflow:hidden}.player-track-info{flex:1;overflow:hidden}.player-track-name{color:var(--text-base);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.player-track-name:hover{cursor:pointer;text-decoration:underline}.player-track-artist{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.player-track-artist:hover{color:var(--text-base);cursor:pointer;text-decoration:underline}.player-track-btns{flex-shrink:0;gap:4px;display:flex}.player-center{flex-direction:column;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.player-controls{align-items:center;gap:4px;display:flex}.ctrl-btn{color:var(--text-secondary);border-radius:var(--radius-circle);transition:color var(--transition-fast), transform var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:8px;display:flex;position:relative}.ctrl-btn:hover{color:var(--text-base);transform:scale(1.07)}.ctrl-btn.active{color:var(--accent)}.ctrl-btn.repeat-one:after{content:"1";color:var(--accent);background:var(--bg-card);border-radius:var(--radius-circle);justify-content:center;align-items:center;width:10px;height:10px;font-size:8px;font-weight:700;line-height:1;display:flex;position:absolute;top:0;right:0}.play-ctrl-btn{background:var(--text-base);border-radius:var(--radius-circle);cursor:pointer;color:#000;width:36px;height:36px;transition:transform var(--transition-fast), background var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.play-ctrl-btn:hover{background:#efefef;transform:scale(1.07)}.play-ctrl-btn .play-icon{display:none}.play-ctrl-btn .pause-icon{display:block}.play-ctrl-btn.paused .play-icon{margin-left:2px;display:block}.play-ctrl-btn.paused .pause-icon{display:none}.progress-area{align-items:center;gap:8px;width:100%;display:flex}.progress-time{color:var(--text-secondary);letter-spacing:.3px;flex-shrink:0;min-width:36px;font-size:11px}.progress-time.end{text-align:right}.progress-bar{background:var(--border);border-radius:var(--radius-full);cursor:pointer;height:4px;transition:height var(--transition-fast);flex:1;position:relative}.progress-bar:hover{height:6px}.progress-fill{background:var(--text-base);border-radius:var(--radius-full);pointer-events:none;height:100%;transition:width .5s linear;position:relative}.progress-bar:hover .progress-fill{background:var(--accent)}.progress-fill:after{content:"";background:var(--text-base);border-radius:var(--radius-circle);width:12px;height:12px;transition:transform var(--transition-fast);position:absolute;top:50%;right:-6px;transform:translateY(-50%)scale(0)}.progress-bar:hover .progress-fill:after{transform:translateY(-50%)scale(1)}.player-right{flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;width:240px;display:flex}.volume-area{align-items:center;gap:6px;display:flex}.volume-bar{background:var(--border);border-radius:var(--radius-full);cursor:pointer;width:86px;height:4px;transition:height var(--transition-fast);position:relative}.volume-bar:hover{height:6px}.volume-fill{background:var(--text-base);border-radius:var(--radius-full);pointer-events:none;width:65%;height:100%;transition:width var(--transition-fast)}.volume-bar:hover .volume-fill{background:var(--accent)}.panel-toggle-btn{color:var(--text-secondary);border-radius:var(--radius-sm);transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:8px;display:flex;position:relative}.panel-toggle-btn:hover{color:var(--text-base)}.panel-toggle-btn.active{color:var(--accent)}.panel-toggle-btn.active:after{content:"";background:var(--accent);border-radius:var(--radius-circle);width:4px;height:4px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}@media (width<=900px){.player-track{width:auto}.player-right{display:none}}.card{background:var(--bg-mid);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-normal), transform .18s ease, box-shadow .18s ease;padding:14px;position:relative}.card:hover{background:var(--bg-card);transform:translateY(-3px);box-shadow:0 10px 28px #00000073}.card:hover .card-play{opacity:1;transform:translateY(0)}.card-art{aspect-ratio:1;width:100%;box-shadow:var(--shadow-medium);border-radius:14px;flex-shrink:0;margin-bottom:12px;position:relative;overflow:hidden}.card-art-inner{justify-content:center;align-items:center;width:100%;height:100%;font-size:52px;display:flex}.cards-shelf{scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:flex-start;gap:14px;padding-bottom:8px;flex-wrap:nowrap!important;width:100%!important;max-width:100%!important;display:flex!important;overflow-x:auto!important}.cards-shelf::-webkit-scrollbar{display:none}.cards-shelf .card{scroll-snap-align:start;flex:0 0 160px!important;width:160px!important;min-width:160px!important;max-width:160px!important}.cards-shelf .card .card-art{aspect-ratio:1;width:100%;height:auto}.chart-list{flex-direction:column;gap:2px;display:flex}.chart-row{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:12px;padding:8px 12px;display:flex}.chart-row:hover{background:var(--bg-card)}.chart-rank{text-align:center;width:24px;color:var(--text-muted);flex-shrink:0;font-size:14px;font-weight:700}.chart-thumb{background:var(--bg-card);border-radius:8px;flex-shrink:0;width:48px;height:48px;overflow:hidden}.chart-thumb img{object-fit:cover;width:100%;height:100%;display:block}.chart-info{text-align:left;flex-direction:column;flex:1;min-width:0;display:flex}.chart-title{color:var(--text-base);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.chart-artist{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.chart-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.chart-add-btn,.chart-like-btn{color:#0000;transition:color var(--transition-fast), transform var(--transition-fast);background:0 0;border:none;border-radius:50%;align-items:center;padding:6px;display:flex}.chart-row:hover .chart-add-btn,.chart-row:hover .chart-like-btn{color:var(--text-secondary)}.chart-like-btn.liked{color:var(--accent)!important}.chart-add-btn:hover,.chart-like-btn:hover{transform:scale(1.15);color:var(--text-base)!important}.chart-play{opacity:0;background:var(--accent);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:opacity .15s;display:flex}.chart-row:hover .chart-play{opacity:1}.chart-play svg{color:#2b0f1f;margin-left:2px}.card-play{background:var(--accent);border-radius:var(--radius-circle);opacity:0;width:44px;height:44px;transition:opacity var(--transition-normal), transform var(--transition-normal), box-shadow var(--transition-fast);border:none;justify-content:center;align-items:center;display:flex;position:absolute;bottom:8px;right:8px;transform:translateY(8px);box-shadow:0 8px 16px #0006}.card-play:hover{box-shadow:0 8px 24px #d9c08f80;transform:scale(1.06)translateY(0)!important}.card-play svg{color:#000;margin-left:2px}.cards-shelf .card .card-subtitle{min-height:33.6px}.card-title{color:var(--text-base);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:14px;font-weight:700;overflow:hidden}.card-subtitle{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.card.artist .card-art{border-radius:50%;box-shadow:0 4px 18px #0006}.card.artist .card-title,.card.artist .card-subtitle{text-align:center}.card.artist:hover{transform:translateY(-4px)}.card.artist .card-play{border-radius:50%;bottom:4px;right:4px}.play-btn-large{background:var(--accent);border-radius:var(--radius-circle);cursor:pointer;width:54px;height:54px;box-shadow:0 8px 24px var(--accent-shadow);transition:transform var(--transition-fast), box-shadow var(--transition-normal);border:none;justify-content:center;align-items:center;animation:2.5s ease-in-out infinite pulse-glow;display:flex}.play-btn-large:hover{transform:scale(1.06);box-shadow:0 12px 32px #d9c08f80}.play-btn-large svg{color:#000;margin-left:3px}.action-btn{border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-circle);cursor:pointer;width:38px;height:38px;transition:color var(--transition-fast), border-color var(--transition-fast), transform var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:flex}.action-btn:hover{color:var(--text-base);border-color:var(--text-base);transform:scale(1.05)}.pill-btn{background:var(--bg-mid);color:var(--text-base);border-radius:var(--radius-full);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);text-transform:uppercase;letter-spacing:1.4px;transition:background var(--transition-fast), transform var(--transition-fast);border:none;padding:8px 18px}.pill-btn:hover{background:#2c2c2c;transform:scale(1.02)}.pill-btn.accent{background:var(--accent);color:#000}.pill-btn.accent:hover{background:var(--accent-dark)}.track-list{flex-direction:column;display:flex}.track-list-header{border-bottom:1px solid #ffffff14;grid-template-columns:32px 1fr 1fr 48px;gap:16px;margin-bottom:4px;padding:0 12px 8px;display:grid}.track-list-header span{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;font-size:12px;font-weight:700}.track-list-header span:last-child{text-align:right}.track-item{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:14px;padding:8px 12px;display:flex}.track-item.active{background:#d9c08f14}.track-num-wrap{text-align:right;flex-shrink:0;justify-content:center;align-items:center;width:20px;display:flex}.track-num{color:var(--text-secondary);font-size:15px}.track-play-icon{color:var(--text-base);display:none}.track-item:hover .track-num{display:none}.track-item.active .track-num{display:none}.track-info{flex:1 1 0;min-width:0;overflow:hidden}.track-name{color:var(--text-base);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.track-name.playing{color:var(--accent)}.track-artist{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:12px;overflow:hidden}.track-album{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:0 0 180px;min-width:0;font-size:13px;overflow:hidden}@media (width<=1100px){.track-album{display:none}}.track-actions{flex-shrink:0;align-items:center;gap:10px;display:flex}.track-like-btn{color:#0000;transition:color var(--transition-fast), transform var(--transition-fast);background:0 0;border:none;align-items:center;padding:4px;display:flex}.track-item:hover .track-like-btn{color:var(--text-secondary)}.track-like-btn.liked{color:var(--accent)!important}.track-like-btn:hover{transform:scale(1.15);color:var(--text-base)!important}.track-duration{color:var(--text-secondary);text-align:right;min-width:38px;font-size:13px}.genre-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:12px;display:grid}.genre-chip{border-radius:var(--radius-md);cursor:pointer;transition:transform var(--transition-fast), filter var(--transition-fast);align-items:flex-end;height:82px;padding:16px;display:flex;position:relative;overflow:hidden}.genre-chip:hover{filter:brightness(1.1);transform:scale(1.03)}.genre-chip-label{color:var(--text-base);z-index:1;font-size:15px;font-weight:700;position:relative}.genre-chip-emoji{opacity:.9;font-size:38px;position:absolute;top:8px;right:12px;transform:rotate(15deg)}.track-add-btn{color:#0000;transition:color var(--transition-fast), transform var(--transition-fast);background:0 0;border:none;align-items:center;padding:4px;display:flex}.track-item:hover .track-add-btn{color:var(--text-secondary)}.track-add-btn:hover{transform:scale(1.15);color:var(--text-base)!important}.track-remove-btn{color:#0000;transition:color var(--transition-fast), transform var(--transition-fast);background:0 0;border:none;align-items:center;padding:4px;display:flex}.track-item:hover .track-remove-btn{color:var(--text-secondary)}.track-remove-btn:hover{transform:scale(1.15);color:#f55!important}.pl-picker-popover{z-index:500;border-radius:var(--radius-md);background:#170a10;border:1px solid #ffffff1a;flex-direction:column;gap:6px;width:260px;max-height:320px;padding:10px;display:flex;position:absolute;box-shadow:0 12px 32px #00000080}.pl-picker-header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;padding:2px 6px 6px;font-size:12px;font-weight:700}.pl-picker-list{flex-direction:column;gap:2px;max-height:190px;display:flex;overflow-y:auto}.pl-picker-item{color:var(--text-base);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:6px;padding:8px;font-family:inherit;font-size:13px;overflow:hidden}.pl-picker-item:hover{background:#ffffff14}.pl-picker-item:disabled{opacity:.5;cursor:default}.pl-picker-empty{text-align:center;color:var(--text-secondary);padding:16px 8px;font-size:12px}.pl-picker-new{border-top:1px solid #ffffff14;gap:6px;padding-top:8px;display:flex}.pl-picker-new input{min-width:0;color:var(--text-base);background:#ffffff0f;border:1px solid #ffffff1a;border-radius:6px;flex:1;padding:7px 8px;font-family:inherit;font-size:12px}.pl-picker-new input:focus{border-color:var(--accent);outline:none}.pl-picker-new button{background:var(--accent);color:#000;cursor:pointer;border:none;border-radius:6px;flex-shrink:0;padding:0 12px;font-family:inherit;font-size:12px;font-weight:700}.sw-toast{color:#f5eef0;opacity:0;pointer-events:none;z-index:999;white-space:nowrap;background:#1a0f16;border-radius:50px;padding:10px 18px;font-size:13px;font-weight:600;transition:opacity .18s,transform .18s;position:fixed;bottom:96px;left:50%;transform:translate(-50%)translateY(12px);box-shadow:0 8px 24px #0006}.sw-toast.show{opacity:1;transform:translate(-50%)translateY(0)}.library-empty-hint{text-align:center;color:var(--text-secondary);padding:20px 12px;font-size:12px;line-height:1.5}.album-save-btn:hover{opacity:.85}.right-panel{background:var(--bg-surface);border-radius:var(--radius-lg);flex-direction:column;display:flex;overflow:hidden}.rp-header{border-bottom:1px solid #ffffff0f;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 16px 12px;display:flex}.rp-tabs{gap:2px;display:flex}.rp-tab{color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;padding:6px 12px}.rp-tab:hover{color:var(--text-base);background:#ffffff12}.rp-tab.active{color:var(--text-base);background:#ffffff1f}.rp-close{color:var(--text-secondary);border-radius:var(--radius-circle);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;padding:6px;display:flex}.rp-close:hover{color:var(--text-base);background:#ffffff12}.rp-body{flex:1;min-height:0;overflow-y:auto}.rp-now-playing{flex-direction:column;align-items:center;gap:16px;padding:20px 16px;display:flex}.rp-album-art{aspect-ratio:1;border-radius:var(--radius-xl);width:100%;box-shadow:var(--shadow-heavy);justify-content:center;align-items:center;max-width:240px;font-size:80px;animation:4s ease-in-out infinite float;display:flex;overflow:hidden}.rp-track-info{width:100%}.rp-track-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.rp-track-name{color:var(--text-base);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:16px;font-weight:700;overflow:hidden}.rp-track-artist{color:var(--text-secondary);margin-top:2px;font-size:13px}.rp-track-artist:hover{color:var(--text-base);cursor:pointer;text-decoration:underline}.rp-progress-wrap{width:100%}.rp-progress-bar{background:var(--border);border-radius:var(--radius-full);cursor:pointer;width:100%;height:4px;transition:height var(--transition-fast);margin-bottom:6px}.rp-progress-bar:hover{height:6px}.rp-progress-fill{background:var(--accent);border-radius:var(--radius-full);pointer-events:none;height:100%}.rp-progress-times{color:var(--text-secondary);justify-content:space-between;font-size:11px;display:flex}.rp-controls{justify-content:space-between;align-items:center;width:100%;display:flex}.rp-play-btn{background:var(--accent);border-radius:var(--radius-circle);cursor:pointer;width:52px;height:52px;box-shadow:0 8px 24px var(--accent-shadow);transition:transform var(--transition-fast), box-shadow var(--transition-normal);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.rp-play-btn:hover{transform:scale(1.07);box-shadow:0 12px 28px #d9c08f73}.rp-play-btn svg{color:#000}.rp-play-btn .rp-pause-icon{display:block}.rp-play-btn .rp-play-icon{margin-left:2px;display:none}.rp-play-btn.paused .rp-pause-icon{display:none}.rp-play-btn.paused .rp-play-icon{display:block}.rp-waveform{align-items:center;gap:2px;width:100%;height:48px;padding:0 2px;display:flex;overflow:hidden}.wave-bar{background:var(--border);min-width:3px;transition:background var(--transition-fast);cursor:pointer;border-radius:2px;flex:1}.wave-bar.played{background:var(--accent)}.wave-bar:hover{background:var(--text-base)}.rp-lyrics{border-top:1px solid #ffffff0f;padding:16px}.rp-section-label{text-transform:uppercase;letter-spacing:1.4px;color:var(--text-secondary);margin-bottom:12px;font-size:11px;font-weight:700}.lyrics-line{color:var(--text-muted);transition:color var(--transition-fast), font-size var(--transition-fast);font-size:14px;line-height:1.9}.lyrics-line.active{color:var(--text-base);font-size:16px;font-weight:700}.rp-queue{border-top:1px solid #ffffff0f;padding:16px}.queue-item{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:10px;padding:7px 8px;display:flex}.queue-item:hover{background:#ffffff0f}.queue-art{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:15px;display:flex}.queue-info{flex:1;overflow:hidden}.queue-name{color:var(--text-base);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.queue-artist{color:var(--text-secondary);font-size:11px}.queue-duration{color:var(--text-secondary);flex-shrink:0;font-size:12px}.rp-related{border-top:1px solid #ffffff0f;padding:16px}.related-artist{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:10px;padding:8px;display:flex}.related-artist:hover{background:#ffffff0f}.related-avatar{border-radius:var(--radius-circle);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex}.related-info{flex:1;overflow:hidden}.related-name{color:var(--text-base);font-size:13px;font-weight:700}.related-meta{color:var(--text-secondary);font-size:11px}.related-follow{border:1px solid var(--border-light);color:var(--text-base);border-radius:var(--radius-full);cursor:pointer;font-size:11px;font-weight:700;font-family:var(--font);transition:border-color var(--transition-fast), background var(--transition-fast);background:0 0;flex-shrink:0;padding:4px 12px}.related-follow:hover{border-color:var(--text-base);background:#ffffff0d}.related-follow.following{border-color:var(--accent);color:var(--accent)}.related-follow.following:hover{background:#d9c08f1a}.rp-lyrics-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.rp-lyrics-head .rp-section-label{margin-bottom:0}.rp-lyrics-tools{align-items:center;gap:8px;display:flex}.lyr-sync{color:var(--text-base,#fff);background:#ffffff1a;border-radius:999px;align-items:center;gap:2px;padding:2px;font-size:11px;display:inline-flex}.lyr-sync[hidden]{display:none}.lyr-sync button{width:20px;height:20px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;font-size:14px;line-height:1}.lyr-sync button:hover{background:#ffffff2e}.lyr-offset-val{text-align:center;cursor:pointer;font-variant-numeric:tabular-nums;min-width:42px}.lyr-expand{width:26px;height:26px;color:var(--text-base,#fff);cursor:pointer;background:#ffffff1a;border:0;border-radius:8px;place-items:center;display:grid}.lyr-expand:hover{background:#fff3}.rp-lyrics{background:var(--lyr-bg,#ffffff0a);border-top:0;border-radius:16px;margin:0;padding:16px;transition:background .5s}.lyr-big{z-index:3000;-webkit-backdrop-filter:blur(10px);opacity:0;pointer-events:none;background:#0000009e;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:fixed;inset:0}.lyr-big.open{opacity:1;pointer-events:auto}.lyr-big-card{background:var(--lyr-bg-big,#20202a);color:#fff;border-radius:24px;flex-direction:column;width:min(780px,92vw);height:min(82vh,760px);transition:transform .28s cubic-bezier(.2,.8,.2,1),background .5s;display:flex;overflow:hidden;transform:translateY(12px)scale(.97);box-shadow:0 30px 90px #0000008c}.lyr-big.open .lyr-big-card{transform:none}.lyr-big-head{flex:none;align-items:center;gap:14px;padding:18px 22px;display:flex}.lyr-big-art{object-fit:cover;border-radius:10px;width:52px;height:52px;box-shadow:0 4px 14px #0006}.lyr-big-art[hidden]{display:none}.lyr-big-meta{flex:1;min-width:0}.lyr-big-title{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:700;overflow:hidden}.lyr-big-artist{opacity:.7;white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.lyr-big-close{color:#fff;cursor:pointer;background:#ffffff1f;border:0;border-radius:50%;width:34px;height:34px;font-size:15px}.lyr-big-close:hover{background:#ffffff3d}.lyr-big-body{text-align:center;scrollbar-width:none;flex:1;padding:0 36px;position:relative;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000,#000 14% 86%,#0000);mask-image:linear-gradient(#0000,#000 14% 86%,#0000)}.lyr-big-body::-webkit-scrollbar{display:none}.lyr-big-body:before,.lyr-big-body:after{content:"";height:42%;display:block}.lb-line{color:#fff;opacity:.4;cursor:pointer;transform-origin:50%;padding:9px 0;font-size:clamp(20px,2.8vw,30px);font-weight:700;line-height:1.45;transition:opacity .3s,transform .3s}.lb-line:hover{opacity:.85!important}.lb-line.active{text-shadow:0 2px 24px #ffffff40;transform:scale(1.08)}.lyr-big-empty{opacity:.7;padding:40px 0;font-size:16px}@media (width<=600px){.lyr-big-card{border-radius:18px}.lyr-big-body{padding:0 18px}}.landing-root{z-index:999999;cursor:none;background:#000;transition:opacity .65s;position:fixed;inset:0;overflow:hidden}.landing-root.landing-fading{opacity:0;pointer-events:none}.landing-cursor{pointer-events:none;z-index:110;mix-blend-mode:difference;will-change:left, top;background:#ffffffd9;border-radius:50%;width:18px;height:18px;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 18px 4px #fff3}.landing-flashlight{z-index:10;-webkit-mask-image:radial-gradient(circle var(--fl) at var(--mx) var(--my), black 0%, #000c 45%, transparent 100%);-webkit-mask-image:radial-gradient(circle var(--fl) at var(--mx) var(--my), black 0%, #000c 45%, transparent 100%);mask-image:radial-gradient(circle var(--fl) at var(--mx) var(--my), black 0%, #000c 45%, transparent 100%);position:absolute;inset:0}.landing-content{box-sizing:border-box;opacity:0;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100vh;transition:opacity .5s;display:flex;position:relative}.landing-content.is-revealed{opacity:1}.landing-nav{z-index:2;justify-content:space-between;align-items:center;width:100%;display:flex;position:relative}.landing-nav-group{align-items:center;gap:3rem;display:flex}.landing-nav-link{color:#fff6;letter-spacing:.3em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:4px 0;font-family:Syne,Noto Sans KR,sans-serif;font-size:11px;font-weight:700;transition:color .15s}.landing-nav-link:hover{color:#fff}.landing-nav-signup{border-radius:999px;color:#fff9!important;border:1px solid #ffffff40!important;padding:7px 20px!important;transition:background .15s,color .15s!important}.landing-nav-signup:hover{background:#ffffff12;color:#fff!important}.landing-center{z-index:2;flex-direction:column;align-items:center;gap:1.2rem;display:flex;position:relative}.landing-logo{letter-spacing:-.02em;color:#fff;margin:0;font-family:Syne,Noto Sans KR,sans-serif;font-size:clamp(7rem,20vw,15rem);font-weight:900;line-height:1}.landing-logo--clickable{cursor:pointer;transition:opacity .15s}.landing-logo--clickable:hover{opacity:.75}.landing-tagline{letter-spacing:.5em;text-transform:uppercase;color:#ffffff4d;margin:0;font-family:Syne,sans-serif;font-size:13px;font-weight:300}.landing-cta{color:#d9c08f;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;background:#d9c08f1a;border:1px solid #d9c08f66;border-radius:999px;margin-top:1.2rem;padding:14px 52px;font-family:Syne,Noto Sans KR,sans-serif;font-size:13px;font-weight:700;transition:background .2s,border-color .2s,color .2s}.landing-cta:hover{color:#f0d8a0;background:#d9c08f33;border-color:#d9c08fb3}.landing-footer{color:#ffffff40;letter-spacing:.12em;text-transform:uppercase;z-index:2;justify-content:space-between;align-items:flex-end;width:100%;font-family:Syne,sans-serif;font-size:10px;display:flex;position:relative}.landing-footer p{margin:0;line-height:1.9}.landing-rings{pointer-events:none;z-index:1;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.landing-ring{border:1px solid #ffffff0f;border-radius:50%;height:0;position:absolute}.landing-instruction{z-index:20;pointer-events:none;color:#fff3;letter-spacing:.6em;text-transform:uppercase;justify-content:center;align-items:center;font-family:Syne,sans-serif;font-size:12px;font-weight:300;animation:2s ease-in-out infinite landing-pulse;display:flex;position:fixed;inset:0}@keyframes landing-pulse{0%,to{opacity:1}50%{opacity:.25}}.hero-banner{background:linear-gradient(135deg, var(--hero-c1,#2a1020) 0%, var(--hero-c2,#1a0812) 40%, #0d0508 100%);border-radius:var(--radius-lg);align-items:center;gap:32px;margin-bottom:32px;padding:32px;display:flex;position:relative;overflow:hidden}.hero-banner:before{content:"";background:radial-gradient(circle, var(--hero-glow,#d9c08f21) 0%, transparent 65%);pointer-events:none;width:380px;height:380px;position:absolute;top:-50%;right:-5%}.hero-art{border-radius:var(--radius-md);width:150px;height:150px;box-shadow:var(--shadow-heavy);background:linear-gradient(135deg,#d9c08f,#8a6d3a);flex-shrink:0;justify-content:center;align-items:center;font-size:60px;display:flex}.hero-info{z-index:1}.hero-type{text-transform:uppercase;letter-spacing:2px;color:var(--text-secondary);margin-bottom:6px;font-size:11px;font-weight:700}.hero-title{font-family:var(--font-display);letter-spacing:-.01em;margin-bottom:10px;font-size:46px;font-weight:800;line-height:1}.hero-meta{color:var(--text-secondary);margin-bottom:20px;font-size:13px}.hero-meta span{color:var(--text-base);font-weight:700}.hero-actions{align-items:center;gap:14px;display:flex}.quick-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-bottom:32px;display:grid}.quick-item{border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);background:#ffffff14;align-items:center;gap:12px;padding-right:12px;display:flex;overflow:hidden}.quick-item:hover{background:#ffffff26}.quick-item:hover .quick-play{opacity:1}.quick-art{border-radius:var(--radius-sm) 0 0 var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;display:flex}.quick-name{color:var(--text-base);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:700;overflow:hidden}.quick-play{background:var(--accent);border-radius:var(--radius-circle);color:#000;opacity:0;width:32px;height:32px;transition:opacity var(--transition-fast);border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.home-tab-row{flex-wrap:wrap;gap:8px;margin:4px 0 16px;display:flex}.home-mode-toggle{z-index:450;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);gap:4px;padding:4px;display:flex;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 14px 34px #00000080}.home-mode-toggle button{font-family:var(--font);border-radius:var(--radius-pill);color:var(--text-muted);white-space:nowrap;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:9px 15px;font-size:11.5px;font-weight:700;transition:background .15s,color .15s;display:flex}.home-mode-toggle button:hover{color:var(--text-base)}.home-mode-toggle button.active{background:var(--accent);color:#2b0f1f}.galaxy-view{--gx-amber:var(--accent);--gx-amber-strong:#ecd9ae;--gx-amber-shadow:var(--accent-shadow);--gx-bg3-hover:#351c2d;--gx-panel:#140a1ce6;--gx-line:#f5eef029;z-index:400;color:var(--text-base);font-family:var(--font);-webkit-font-smoothing:antialiased;background:#07030f;position:fixed;inset:0;overflow:hidden}.galaxy-view.hidden{display:none}.galaxy-view .g-viewport{cursor:grab;background:radial-gradient(at 50% 48%,#2c1326 0%,#180a1e 40%,#07030f 100%);position:absolute;inset:0;overflow:hidden}.galaxy-view .g-viewport.dragging{cursor:grabbing}.galaxy-view .g-viewport.locked{cursor:default}.galaxy-view .gx-nebula{pointer-events:none;filter:blur(32px);border-radius:50%;position:absolute}.galaxy-view .gx-nebula.a{background:radial-gradient(#ffb15a42,#0000 70%);width:44%;height:42%;top:-9%;left:-8%;transform:rotate(20deg)}.galaxy-view .gx-nebula.b{background:radial-gradient(#508ce64d,#0000 70%);width:42%;height:42%;top:44%;left:-5%;transform:rotate(-18deg)}.galaxy-view .gx-nebula.c{background:radial-gradient(#d9639e57,#0000 70%);width:42%;height:40%;top:-4%;left:65%;transform:rotate(14deg)}.galaxy-view .gx-nebula.d{background:radial-gradient(#825ac85c,#0000 70%);width:44%;height:44%;top:62%;left:62%;transform:rotate(-12deg)}.galaxy-view .gx-nebula.e{background:radial-gradient(#3caaaa33,#0000 70%);width:36%;height:30%;top:73%;left:36%}.galaxy-view .gx-milkyway{pointer-events:none;filter:blur(22px);background:linear-gradient(#0000,#bea0ff24 35%,#ffc8e638 50%,#bea0ff24 65%,#0000);width:128%;height:29%;position:absolute;top:37%;left:-14%;transform:rotate(-24deg)}.galaxy-view .gx-milkyway.dust{filter:none;opacity:.5;background-image:radial-gradient(#ffffffd9 .6px,#0000 1.1px),radial-gradient(#ffe2c8b3 .5px,#0000 1px);background-position:0 0,5px 4px;background-size:11px 13px,17px 9px;-webkit-mask-image:linear-gradient(#0000,#000 50%,#0000);mask-image:linear-gradient(#0000,#000 50%,#0000)}.galaxy-view .gx-dgal{pointer-events:none;border-radius:50%;position:absolute}.galaxy-view .g-stars-layer{pointer-events:none;will-change:transform;width:2600px;height:1800px;margin:-900px 0 0 -1300px;position:absolute;top:50%;left:50%}.galaxy-view .star{border-radius:50%;position:absolute}.galaxy-view .g-stars-layer.near .star:nth-child(3n){animation:ease-in-out infinite alternate gx-starTwinkle}@keyframes gx-starTwinkle{0%{opacity:.45}to{opacity:1}}.galaxy-view .star-spike:before,.galaxy-view .star-spike:after{content:"";background:linear-gradient(90deg,#0000 0%,currentColor 50%,#0000 100%);position:absolute;top:50%;left:50%}.galaxy-view .star-spike:before{width:var(--spike-len);height:1px;transform:translate(-50%,-50%)}.galaxy-view .star-spike:after{width:1px;height:var(--spike-len);transform:translate(-50%,-50%)}.galaxy-view .star-diamond{border-radius:2px;transform:rotate(45deg)}.galaxy-view .planets-layer{pointer-events:none;will-change:transform;width:2600px;height:1800px;margin:-900px 0 0 -1300px;position:absolute;top:50%;left:50%}.galaxy-view .planet{border-radius:50%;position:absolute;box-shadow:inset 0 0 30px 6px #0000004d,0 10px 34px #00000073}.galaxy-view .planet:after{content:"";background:radial-gradient(circle at 30% 26%,#fff6,#0000 55%);border-radius:50%;position:absolute;inset:0}.galaxy-view .planet.has-ring:before{content:"";width:var(--ring-w);height:var(--ring-h);transform:translate(-50%,-50%) rotate(var(--ring-rot));pointer-events:none;border:2px solid #ffffff42;border-radius:50%;position:absolute;top:50%;left:50%}.galaxy-view .g-universe{transform-origin:0 0;width:1440px;height:900px;position:absolute;top:0;left:0}.galaxy-view .gx-arms{opacity:.75;pointer-events:none;width:1140px;height:660px;position:absolute;top:100px;left:150px;transform:rotate(-14deg)}.galaxy-view .gx-arms-spin{animation:220s linear infinite gx-spin;position:absolute;inset:0}.galaxy-view .gx-arms-spin i{background:conic-gradient(#ffd69600 0deg,#ffd6965c 38deg,#ffd69600 100deg 180deg,#ff96b952 218deg,#ff96b900 280deg,#ffd69600 360deg);border-radius:50%;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 6%,#000000b3 38%,#0000 72%);mask-image:radial-gradient(#000 6%,#000000b3 38%,#0000 72%)}.galaxy-view .gx-orbits{pointer-events:none;position:absolute;top:0;left:0;overflow:visible}.galaxy-view .gx-body{pointer-events:none;width:1440px;height:900px;transition:opacity .7s;position:absolute;top:0;left:0}.galaxy-view.focus-mode .gx-body:not(.is-target),.galaxy-view.focus-mode .gx-belt,.galaxy-view.focus-mode .gx-orbits,.galaxy-view.focus-mode .gx-odots{opacity:.1}.galaxy-view .gx-belt,.galaxy-view .gx-orbits,.galaxy-view .gx-odots{transition:opacity .7s}.galaxy-view .gx-odots{pointer-events:none;width:1440px;height:900px;position:absolute;top:0;left:0}.galaxy-view .gx-odot{offset-rotate:0deg;border-radius:50%;width:6px;height:6px;animation:linear infinite gx-orbit;position:absolute;top:0;left:0}@keyframes gx-orbit{0%{offset-distance:0%}to{offset-distance:100%}}.galaxy-view .gx-halo{pointer-events:none;border-radius:50%;position:absolute}.galaxy-view .gx-planet{pointer-events:auto;cursor:pointer;border-radius:50%;transition:transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s;position:absolute}.galaxy-view .gx-planet:before{content:"";background:repeating-linear-gradient(8deg,#ffffff12 0 6px,#0000000f 6px 13px);border-radius:50%;position:absolute;inset:0}.galaxy-view .gx-planet:hover{transform:scale(1.1)}.galaxy-view .gx-body.is-target .gx-planet{box-shadow:0 0 0 3px #ffe2a8,0 0 54px #ffe2a899}.galaxy-view .gx-planet.gx-station{justify-content:center;align-items:center;display:flex}.galaxy-view .gx-ring{pointer-events:none;border:3px solid #f7c3bd80;border-radius:50%;position:absolute;transform:rotate(-20deg)}.galaxy-view .mring{pointer-events:none;border:1px dashed #f5eef047;border-radius:50%;position:absolute}.galaxy-view .gx-body.is-target .mring{border-color:#ffe2aa99}.galaxy-view .gx-spin{pointer-events:none;animation:40s linear infinite gx-spin;position:absolute}.galaxy-view .gx-spin.rev{animation-direction:reverse}.galaxy-view .disc{background-position:50%;background-size:cover;border-radius:50%;position:absolute;overflow:hidden}.galaxy-view .disc:after{content:"";background:#0d0508;border-radius:50%;width:14%;height:14%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #ffffff2e}.galaxy-view .disc:before{content:"";background:conic-gradient(from 30deg,#ffffff38,#fff0 25%,#ffffff1f 50%,#fff0 75%,#ffffff38);border-radius:50%;position:absolute;inset:0}.galaxy-view .gx-moon.has-art:after{display:none}.galaxy-view .gx-pulse{pointer-events:none;border:2px solid #9ec0ff;border-radius:50%;animation:2.6s ease-out infinite gx-pulse;position:absolute}@keyframes gx-pulse{0%{opacity:.8;transform:scale(.9)}to{opacity:0;transform:scale(1.6)}}.galaxy-view .gx-corona{pointer-events:none;border-radius:50%;position:absolute}.galaxy-view .gx-corona.c2{background:radial-gradient(circle,#ffc47833 0%,#ffaa641a 30%,#ff966e0a 52%,#ff966e00 70%);width:840px;height:840px;animation:11s ease-in-out infinite alternate-reverse gx-breathe;top:10px;left:300px}.galaxy-view .gx-corona.c1{background:radial-gradient(circle,#ffecbe8c 0%,#ffce824d 24%,#ffb0641f 46%,#ffb06400 70%);width:500px;height:500px;animation:7s ease-in-out infinite alternate gx-breathe;top:180px;left:470px}@keyframes gx-breathe{0%{opacity:.85;transform:scale(1)}to{opacity:1;transform:scale(1.07)}}.galaxy-view .gx-rays{pointer-events:none;background:conic-gradient(from 10deg,#ffe2aa00 0deg,#ffe2aa38 18deg,#ffe2aa00 44deg,#ffe2aa24 83deg,#ffe2aa00 118deg,#ffe2aa33 160deg,#ffe2aa00 196deg,#ffe2aa1f 236deg,#ffe2aa00 270deg,#ffe2aa38 312deg,#ffe2aa00 345deg);border-radius:50%;width:440px;height:440px;animation:200s linear infinite gx-spin;position:absolute;top:210px;left:500px;-webkit-mask-image:radial-gradient(circle,#000 10%,#00000080 38%,#0000 68%);mask-image:radial-gradient(circle,#000 10%,#00000080 38%,#0000 68%)}.galaxy-view .gx-sunpulse{pointer-events:none;background:radial-gradient(circle,#0000 56%,#ffd68c57 58%,#0000 70%);border-radius:50%;width:120px;height:120px;animation:3.4s ease-out infinite gx-sunpulse;position:absolute;top:370px;left:660px}@keyframes gx-sunpulse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(2.1)}}.galaxy-view .gx-sunball{pointer-events:auto;cursor:pointer;background:radial-gradient(circle at 42% 38%,#fffaf0 0%,#ffe9b8 26%,#f5c46a 58%,#d98a2e 100%);border-radius:50%;width:120px;height:120px;transition:transform .35s cubic-bezier(.2,.8,.3,1);position:absolute;top:370px;left:660px;box-shadow:0 0 36px #ffe2a0e6,0 0 90px #ffbe648c,0 0 160px #ffa05a4d}.galaxy-view .gx-sunball:hover{transform:scale(1.06)}.galaxy-view .gx-sat{pointer-events:auto;cursor:pointer;transition:transform .25s}.galaxy-view .gx-sat:hover{transform:scale(1.18)}.galaxy-view .gx-belt{pointer-events:none;width:1440px;height:900px;position:absolute;top:0;left:0}.galaxy-view .rank-card{box-sizing:border-box;cursor:pointer;pointer-events:auto;background:#2b1624f0;border:1px solid #f5eef024;border-radius:12px;align-items:center;gap:6px;width:108px;height:48px;padding:0 8px;transition:transform .2s,border-color .2s;display:flex;position:absolute}.galaxy-view .rank-card:first-child{border-color:#d9c08f66}.galaxy-view .rank-card:hover{border-color:var(--gx-amber-shadow);transform:translateY(-3px)}.galaxy-view .rank-num{font-family:var(--font-display);color:var(--gx-amber);font-size:14px;font-weight:800}.galaxy-view .rank-thumb{background-position:50%;background-size:cover;border-radius:6px;flex-shrink:0;width:26px;height:26px}.galaxy-view .rank-text{flex-direction:column;min-width:0;display:flex}.galaxy-view .rank-title{white-space:nowrap;text-overflow:ellipsis;max-width:60px;font-size:12px;font-weight:700;overflow:hidden}.galaxy-view .rank-artist{color:#f5eef0b8;white-space:nowrap;text-overflow:ellipsis;max-width:60px;font-size:11px;overflow:hidden}.galaxy-view .hud-label{white-space:nowrap;pointer-events:none;z-index:410;text-shadow:0 2px 16px #000000b3;align-items:center;gap:8px;transition:opacity .5s;display:flex;position:fixed;top:0;left:0;transform:translate(-9999px)}.galaxy-view .hud-label b{font-family:var(--font-display);color:var(--text-base);letter-spacing:.01em;font-size:17px;font-weight:800}.galaxy-view .hud-label i{color:#f5eef0c7;background:#f5eef014;border:1px solid #f5eef029;border-radius:999px;padding:2px 9px;font-size:12px;font-style:normal}.galaxy-view .hud-label.sun b{color:#ffe2a8;font-size:19px}.galaxy-view .hud-label .now{color:#f5eef0d1;text-shadow:none;font-size:12px;display:block}.galaxy-view .hud-label.col{flex-direction:column;gap:2px}.galaxy-view .hud-label.col b{font-size:15px}.galaxy-view .hud-label .sub{color:#f5eef0c7;font-size:12px}.galaxy-view.focus-mode .hud-label{opacity:0}.galaxy-view .gx-warp{pointer-events:none;z-index:405;position:fixed;inset:0;overflow:hidden}.galaxy-view .gx-warp-streaks{opacity:0;background:repeating-conic-gradient(from 0deg at var(--wx,50%) var(--wy,50%), #ffffff80 0deg .5deg, transparent .5deg 3.1deg, #ffe2aa61 3.1deg 3.5deg, transparent 3.5deg 7.3deg, #bed2ff57 7.3deg 7.6deg, transparent 7.6deg 11deg);-webkit-mask-image:radial-gradient(circle at var(--wx,50%) var(--wy,50%), transparent 6%, #000 55%);-webkit-mask-image:radial-gradient(circle at var(--wx,50%) var(--wy,50%), transparent 6%, #000 55%);mask-image:radial-gradient(circle at var(--wx,50%) var(--wy,50%), transparent 6%, #000 55%);transform-origin:var(--wx,50%) var(--wy,50%);will-change:transform, opacity;position:absolute;inset:-12%}.galaxy-view .gx-warp-flash{opacity:0;background:radial-gradient(circle at var(--wx,50%) var(--wy,50%), var(--wc,#ffe2a8) 0%, transparent 46%);position:absolute;inset:0}.galaxy-view .gx-topbar{z-index:440;box-sizing:border-box;pointer-events:none;background:linear-gradient(#07030feb,#07030f00);justify-content:space-between;align-items:center;height:72px;padding:0 28px;display:flex;position:fixed;top:0;left:0;right:0}.galaxy-view .gx-topbar>*{pointer-events:auto}.galaxy-view .gx-logo{height:44px;color:var(--accent);font:800 24px var(--font-display);letter-spacing:.14em;cursor:pointer;background:0 0;border:0;padding:0}.galaxy-view .gx-chips{align-items:center;gap:8px;display:flex}.galaxy-view .gx-chip{border:1px solid var(--gx-line);color:#f5eef0d1;font:500 13px var(--font);cursor:pointer;background:#1c0e15b3;border-radius:999px;height:36px;padding:0 16px;transition:background .2s,color .2s,border-color .2s}.galaxy-view .gx-chip:hover{border-color:var(--accent)}.galaxy-view .gx-chip.on{background:var(--accent);color:#1a0d12;border-color:var(--accent);font-weight:700}.galaxy-view .gx-right{align-items:center;gap:10px;display:flex}.galaxy-view .gx-iconbtn{border:1px solid var(--gx-line);width:44px;height:44px;color:var(--text-base);cursor:pointer;background:#140a1cd1;border-radius:12px;justify-content:center;align-items:center;padding:0;display:flex}.galaxy-view .gx-iconbtn:hover{border-color:var(--accent);color:var(--accent)}.galaxy-view .gx-toggle{border:1px solid var(--gx-line);background:#140a1cd1;border-radius:12px;padding:3px;display:flex}.galaxy-view .gx-toggle button{color:#f5eef0cc;height:38px;font:500 13px var(--font);cursor:pointer;background:0 0;border:0;border-radius:9px;padding:0 14px}.galaxy-view .gx-toggle button.on{background:var(--accent);color:#1a0d12;font-weight:700}.galaxy-view .minimap{border:1px solid var(--gx-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:420;cursor:pointer;background:#140a1ce0;border-radius:14px;width:208px;height:140px;position:fixed;top:84px;left:24px;overflow:hidden}.galaxy-view .minimap svg{position:absolute;top:12px;left:0}.galaxy-view .mm-caption{color:#f5eef0c7;pointer-events:none;font-size:10px;position:absolute;top:5px;left:8px}.galaxy-view .mm-frame{border:1px solid var(--gx-amber-strong);pointer-events:none;background:#d9c08f14;border-radius:2px;position:absolute}.galaxy-view .compass-wrap{z-index:430;position:fixed;bottom:36px;left:110px}.galaxy-view .compass-btn{background:var(--bg-surface);border:1px solid var(--border);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;padding:0;transition:box-shadow .3s,transform .3s;display:flex;position:relative;box-shadow:0 12px 34px #00000080}.galaxy-view .compass-btn:hover{box-shadow:0 12px 34px #00000080,0 0 0 8px #d9c08f24}.galaxy-view .compass-btn .ring{border:1.5px solid var(--gx-amber);opacity:.6;pointer-events:none;border-radius:50%;transition:transform .4s cubic-bezier(.2,.8,.3,1);position:absolute;inset:8px}.galaxy-view .compass-wrap.open .compass-btn .ring{transform:rotate(135deg)}.galaxy-view .compass-btn .core{background:var(--gx-amber);width:8px;height:8px;box-shadow:0 0 12px var(--gx-amber-shadow);border-radius:50%}.galaxy-view .spoke{background:var(--bg-mid);border:1px solid var(--border);width:46px;height:46px;font:600 9px var(--font);color:#f5eef0d1;opacity:0;pointer-events:none;cursor:pointer;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;margin:-23px 0 0 -23px;padding:0;transition:transform .38s cubic-bezier(.2,.85,.3,1),opacity .3s;display:flex;position:absolute;top:29px;left:29px;box-shadow:0 8px 22px #0006}.galaxy-view .spoke .dot{border-radius:50%;width:5px;height:5px;margin-bottom:3px}.galaxy-view .spoke.on{background:var(--gx-bg3-hover);color:#fff;border-color:var(--accent)}.galaxy-view .compass-wrap.open .spoke{opacity:1;pointer-events:auto}.galaxy-view .compass-wrap.open .spoke:hover{background:var(--gx-bg3-hover);color:var(--text-base)}.galaxy-view .compass-wrap.open .spoke[data-i="0"]{transform:translateY(-92px)}.galaxy-view .compass-wrap.open .spoke[data-i="1"]{transform:translate(52px,-78px)}.galaxy-view .compass-wrap.open .spoke[data-i="2"]{transform:translate(86px,-34px)}.galaxy-view .compass-wrap.open .spoke[data-i="3"]{transform:translate(-52px,-78px)}.galaxy-view .compass-wrap.open .spoke[data-i="4"]{transform:translate(-86px,-34px)}.galaxy-view .gx-zoom{z-index:430;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.galaxy-view .gx-zoom .pct{color:#f5eef0cc;font-size:12px}.galaxy-view .gx-panel{z-index:436;background:var(--gx-panel);border:1px solid var(--gx-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-sizing:border-box;opacity:0;pointer-events:none;border-radius:18px;flex-direction:column;width:340px;padding:18px;transition:opacity .5s .1s,transform .6s cubic-bezier(.2,.85,.3,1) .1s;display:flex;position:fixed;top:96px;bottom:120px;right:28px;transform:translate(36px);box-shadow:0 24px 60px #0000008c}.galaxy-view .gx-panel.open{opacity:1;pointer-events:auto;transform:none}.galaxy-view .gx-panel-back{cursor:pointer;border:1px solid var(--gx-line);height:36px;color:var(--text-base);font:600 12.5px var(--font);background:#f5eef00f;border-radius:999px;align-self:flex-start;align-items:center;gap:6px;padding:0 14px;display:flex}.galaxy-view .gx-panel-back:hover{border-color:var(--accent);color:var(--accent)}.galaxy-view .gx-panel-head{align-items:center;gap:12px;margin:16px 0 12px;display:flex}.galaxy-view .gx-panel-head .orbdot{width:42px;height:42px;box-shadow:0 0 22px var(--pc,#fff);border-radius:50%;flex:none}.galaxy-view .gx-panel-head .name{font-family:var(--font-display);font-size:20px;font-weight:800}.galaxy-view .gx-panel-head .sub{color:#f5eef0b8;margin-top:2px;font-size:12px}.galaxy-view .gx-panel-play{background:var(--accent);color:#1a0d12;height:44px;font:700 13.5px var(--font);cursor:pointer;border:0;border-radius:12px;margin-bottom:12px}.galaxy-view .gx-panel-list{flex-direction:column;flex:1;gap:4px;margin:0 -6px;padding:0 6px;display:flex;overflow-y:auto}.galaxy-view .gx-row{cursor:pointer;color:inherit;text-align:left;font-family:var(--font);background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;width:100%;padding:8px;display:flex}.galaxy-view .gx-row:hover{background:#f5eef012}.galaxy-view .gx-row .art{background-position:50%;background-size:cover;border-radius:10px;flex:none;width:44px;height:44px}.galaxy-view .gx-row .t{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:700;overflow:hidden}.galaxy-view .gx-row .a{color:#f5eef0b8;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.galaxy-view .gx-row .txt{flex:1;min-width:0}.galaxy-view .gx-row .go{color:var(--accent);font-size:12px}.galaxy-view .g-hint{color:#f5eef0c7;border-radius:var(--radius-pill);border:1px solid var(--gx-line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:420;pointer-events:none;white-space:nowrap;background:#140a1cb3;padding:8px 16px;font-size:12.5px;transition:opacity .6s;position:fixed;bottom:96px;left:50%;transform:translate(-50%)}.galaxy-view .g-hint.hidden{opacity:0}.galaxy-view .gplayer{border:1px solid var(--gx-line);border-radius:var(--radius-pill);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:430;background:#140a1ce0;align-items:center;gap:10px;padding:7px 16px 7px 7px;display:flex;position:fixed;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 16px 40px #00000080}.galaxy-view .gplayer .thumb{object-fit:cover;background:radial-gradient(circle at 40% 35%,#fff6dc,#f0d9a8 40%,#c98a2c 100%);border-radius:50%;flex-shrink:0;width:36px;height:36px;animation:8s linear infinite gx-spin;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff26}.galaxy-view .gplayer .thumb.paused{animation-play-state:paused}@keyframes gx-spin{to{transform:rotate(360deg)}}.galaxy-view .gplayer .meta{flex-direction:column;max-width:130px;line-height:1.25;display:flex}.galaxy-view .gplayer .t{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:700;overflow:hidden}.galaxy-view .gplayer .a{color:#f5eef0b8;white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.galaxy-view .gplayer .ctrl{align-items:center;gap:10px;margin-left:6px;display:flex}.galaxy-view .gplayer .play-btn{background:var(--text-base);width:30px;height:30px;color:var(--bg-base);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:11px;display:flex}.galaxy-view .gplayer .skip{color:#f5eef0b8;cursor:pointer;background:0 0;border:none;font-size:13px}.galaxy-view .gplayer .skip:hover{color:var(--text-base)}.galaxy-view .search-overlay{z-index:445;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;background:#060503b8;justify-content:center;align-items:flex-start;padding-top:14vh;transition:opacity .25s;display:flex;position:fixed;inset:0}.galaxy-view .search-overlay.open{opacity:1;pointer-events:auto}.galaxy-view .search-box{width:min(560px,86vw)}.galaxy-view .search-box input{border:none;border-bottom:2px solid var(--border-light);width:100%;color:var(--text-base);font-family:var(--font-display);background:0 0;outline:none;padding:10px 2px;font-size:clamp(22px,4vw,34px);font-weight:700}.galaxy-view .search-box input::placeholder{color:var(--border-light)}.galaxy-view .search-hint{color:#f5eef0b8;margin-top:14px;font-size:12px}.galaxy-view .search-close-btn{color:#f5eef0b8;z-index:446;cursor:pointer;background:0 0;border:none;font-size:12px;position:fixed;top:26px;right:28px}.galaxy-view .search-close-btn:hover{color:var(--text-base)}.galaxy-view .search-close-btn.hidden{display:none}.galaxy-view .node-detail{z-index:438;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-2xl);opacity:0;pointer-events:none;width:216px;padding:14px;transition:opacity .18s,transform .18s;position:fixed;transform:translate(-50%,-8px)scale(.96);box-shadow:0 20px 50px #0000008c}.galaxy-view .node-detail.open{opacity:1;pointer-events:auto;transform:translate(-50%,-14px)scale(1)}.galaxy-view .node-detail .art{border-radius:var(--radius-xl);background-position:50%;background-size:cover;width:100%;height:110px;margin-bottom:10px}.galaxy-view .node-detail .tag{color:var(--gx-amber);border-radius:var(--radius-pill);background:#d9c08f24;margin-bottom:8px;padding:3px 8px;font-size:10px;display:inline-block}.galaxy-view .node-detail .title{margin-bottom:2px;font-size:13.5px;font-weight:700}.galaxy-view .node-detail .artist{color:#f5eef0b8;margin-bottom:12px;font-size:11.5px}.galaxy-view .node-detail .go{border-radius:var(--radius-pill);background:var(--text-base);width:100%;color:var(--bg-base);text-align:center;cursor:pointer;border:none;padding:8px;font-size:12px;font-weight:700}@media (prefers-reduced-motion:reduce){.galaxy-view .gplayer .thumb,.galaxy-view .star,.galaxy-view .gx-arms-spin,.galaxy-view .gx-rays,.galaxy-view .gx-spin,.galaxy-view .gx-corona,.galaxy-view .gx-sunpulse,.galaxy-view .gx-pulse{animation:none}.galaxy-view .gx-body,.galaxy-view .gx-panel{transition:none}}.galaxy-view .gx-artist-glow{pointer-events:none;border-radius:50%;position:absolute}.galaxy-view .artist-node{font-family:var(--font-display);color:var(--text-base);pointer-events:auto;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-weight:700;transition:transform .25s,box-shadow .25s;display:flex;position:absolute;overflow:hidden;box-shadow:0 8px 26px #00000080,inset 0 0 0 2px #f4ecdf24,0 0 22px #ffd68c38}.galaxy-view .artist-node:hover{transform:scale(1.14);box-shadow:0 10px 34px #0000008c,0 0 0 5px #ffe2aa4d}.galaxy-view .artist-node .an-name{text-align:center;font-size:inherit;background:#00000059;padding:2px 2px 3px;font-weight:600;position:absolute;bottom:0;left:0;right:0}.galaxy-view .artist-node.has-img .an-name{background:#0000008c}.galaxy-view .hud-label.mood{display:none}.galaxy-view .hud-label.mood.has{display:flex}.galaxy-view .hud-label.mood span{color:#ffe2a8;text-shadow:none;background:#1e101ac7;border:1px solid #ffe2aa61;border-radius:999px;padding:3px 12px;font-size:12px;font-weight:600;box-shadow:0 0 0 1px #ffe2aa0a,0 6px 18px #00000073}.galaxy-view[data-moving] .g-universe{will-change:transform}.galaxy-view[data-moving] .g-stars-layer .star,.galaxy-view[data-moving] .gx-arms-spin,.galaxy-view[data-moving] .gx-corona,.galaxy-view[data-moving] .gx-rays,.galaxy-view[data-moving] .gx-sunpulse,.galaxy-view[data-moving] .gx-pulse{animation-play-state:paused}.galaxy-view[data-moving] .minimap,.galaxy-view[data-moving] .gx-panel,.galaxy-view[data-moving] .g-hint,.galaxy-view[data-moving] .gplayer{-webkit-backdrop-filter:none;backdrop-filter:none}.galaxy-view[data-moving] .gx-body .gx-planet{transition:none}.galaxy-view[data-moving] .gx-odot{animation-play-state:paused}.galaxy-view[data-moving] .gx-body,.galaxy-view[data-moving] .gx-belt,.galaxy-view[data-moving] .gx-orbits,.galaxy-view[data-moving] .gx-odots{transition:none}.galaxy-view[data-flying] .hud-label{opacity:0}.search-results-section{margin-top:32px}.search-empty{color:var(--text-secondary);text-align:center;flex-direction:column;align-items:center;padding:48px 24px;display:flex}.search-empty-icon{margin-bottom:16px;font-size:48px}.search-empty-title{color:var(--text-base);margin-bottom:8px;font-size:24px;font-weight:700}.search-input-wrap{margin-bottom:24px;position:relative}.search-input-wrap input{background:var(--bg-card);border-radius:var(--radius-full);width:100%;color:var(--text-base);font-size:16px;font-family:var(--font);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);box-sizing:border-box;border:1px solid #ffffff1f;outline:none;padding:12px 20px 12px 44px}.search-input-wrap input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #d9c08f33}.search-input-wrap svg{color:var(--text-secondary);pointer-events:none;position:absolute;top:50%;left:15px;transform:translateY(-50%)}.search-head{margin-bottom:22px}.search-headline{font-family:var(--font-display);font-size:26px;font-weight:700}.search-sub{color:var(--text-secondary);margin-top:4px;font-size:12.5px}.search-sub b{color:var(--text-base);font-weight:700}.search-bento{grid-template-columns:1fr 1fr;align-items:start;gap:16px;margin-bottom:32px;display:grid}.best-match{background:linear-gradient(135deg, #d9c08f24, transparent 60%), var(--bg-card);border:1px solid #f5eef01a;border-radius:20px;padding:26px;position:relative;overflow:hidden}.best-match .tag{letter-spacing:.12em;text-transform:uppercase;color:#000;background:var(--accent);border-radius:var(--radius-full);margin-bottom:14px;padding:3px 10px;font-size:10.5px;font-weight:800;display:inline-block}.best-match-row{align-items:center;gap:18px;display:flex}.best-match-art{background:var(--bg-mid);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:160px;height:160px;display:flex;overflow:hidden;box-shadow:0 16px 34px #0006}.best-match-title{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;max-width:240px;margin-bottom:4px;font-size:22px;font-weight:700;overflow:hidden}.best-match-artist{color:var(--text-secondary);font-size:13px}.best-match-type{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:6px;font-size:11px;font-weight:700}.best-match-play{background:var(--accent);color:#2b0f1f;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;margin-left:auto;transition:box-shadow .15s;display:flex}.best-match-play:hover{box-shadow:0 0 0 8px #d9c08f42}.rail-card{background:var(--bg-card);border:1px solid #f5eef01a;border-radius:20px;padding:18px}.rail-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:14px;font-size:11.5px;font-weight:800}.artist-mini{border-radius:var(--radius-sm);color:inherit;align-items:center;gap:12px;padding:7px 6px;text-decoration:none;transition:background .12s;display:flex}.artist-mini:hover{background:var(--bg-mid)}.artist-mini-av{width:42px;height:42px;font-family:var(--font-display);color:var(--text-base);background:var(--bg-mid);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex;overflow:hidden}.artist-mini-name{font-size:13px;font-weight:600}.artist-mini-role{color:var(--text-secondary);font-size:10.5px}.search-lower{grid-template-columns:1fr;gap:16px;display:grid}.track-col-title{margin-bottom:10px;font-size:14px;font-weight:700}.genre-cluster{grid-template-columns:1fr 1fr;gap:10px;display:grid}.genre-tile{cursor:pointer;border-radius:14px;align-items:flex-end;min-height:78px;padding:14px;text-decoration:none;display:flex;position:relative;overflow:hidden}.genre-tile.big{grid-column:span 2;min-height:110px}.genre-tile-label{color:#fff;text-shadow:0 2px 8px #0006;font-size:13px;font-weight:700;position:relative}.search-bento{grid-template-columns:1fr}.search-artists{margin-bottom:32px}.search-artists .section-header{margin-bottom:12px}.friends-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:22px;display:flex}.friends-title{font-family:var(--font-display);font-size:26px;font-weight:700}.friends-subtitle{color:var(--text-secondary);margin-top:4px;font-size:12.5px}.friends-header-actions{align-items:center;gap:10px;display:flex}.frm-open-btn{border-radius:var(--radius-full);color:var(--text-base);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);transition:background var(--transition-fast);background:#ffffff12;border:1px solid #ffffff1f;align-items:center;gap:7px;padding:8px 16px;display:flex}.frm-open-btn:hover{background:#ffffff21}.frm-open-btn-badge{background:var(--accent);color:#000;border-radius:var(--radius-full);text-align:center;min-width:16px;padding:1px 6px;font-size:10px;font-weight:900}.friend-search{position:relative}.friend-search input{background:var(--bg-card);border-radius:var(--radius-full);width:200px;color:var(--text-base);font-size:13px;font-family:var(--font);transition:border-color var(--transition-fast);border:1px solid #ffffff1a;outline:none;padding:8px 14px 8px 34px}.friend-search input:focus{border-color:var(--accent)}.friend-search svg{color:var(--text-secondary);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.friends-section-label{text-transform:uppercase;letter-spacing:1.4px;color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:12px;padding:0 4px;font-size:11px;font-weight:700;display:flex}.friends-section-label .online-indicator{background:var(--accent);border-radius:50%;width:7px;height:7px;display:inline-block}.req-banner{background:linear-gradient(120deg, #d9c08f29, #9c14571a 60%, transparent), var(--bg-mid);border:1px solid #d9c08f42;border-radius:20px;align-items:center;gap:18px;margin-bottom:26px;padding:20px 24px;display:flex}.req-banner.hidden{display:none}.req-banner-icon{background:var(--accent);color:#2b0f1f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:19px;display:flex}.req-banner-txt{flex:1;min-width:0}.req-banner-txt b{font-family:var(--font-display);font-size:15px;font-weight:700}.req-banner-txt span{color:var(--text-secondary);margin-top:2px;font-size:12px;display:block}.friends-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px;margin-bottom:28px;display:grid}.friend-card{background:var(--bg-mid);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:background var(--transition-fast);flex-direction:column;align-items:center;padding:20px 12px;display:flex;position:relative}.friend-card:hover{background:var(--bg-card)}.friend-avatar{width:64px;height:64px;font-family:var(--font-display);color:var(--text-base);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin:0 auto 12px;font-size:20px;font-weight:700;display:flex;position:relative}.online-dot{border:2px solid var(--bg-mid);background:#7fd9a8;border-radius:50%;width:12px;height:12px;position:absolute;bottom:1px;right:1px;box-shadow:0 0 0 3px #7fd9a833}.online-dot.offline{box-shadow:none;background:#535353}.friend-info{width:100%}.friend-name{color:var(--text-base);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.friend-status{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:11px;overflow:hidden}.friend-status.online{color:var(--accent)}.friend-card-chevron{display:none}.friend-modal-overlay{-webkit-backdrop-filter:blur(10px);z-index:8000;background:#000000c7;justify-content:center;align-items:center;padding:20px;animation:.18s fadeIn;display:flex;position:fixed;inset:0}.friend-modal-overlay.hidden{display:none}.friend-modal-card{background:var(--bg-surface);border-radius:var(--radius-xl);flex-direction:column;width:100%;max-width:480px;max-height:86vh;animation:.26s fadeInUp;display:flex;overflow:hidden;box-shadow:0 24px 80px #000000a6,0 0 0 1px #ffffff12}.friend-modal-card--sm{max-width:400px}.fdm-header{border-bottom:1px solid #ffffff12;flex-shrink:0;align-items:center;gap:14px;padding:22px 22px 18px;display:flex}.fdm-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:54px;font-size:20px;font-weight:700;display:flex}.fdm-name{font-size:17px;font-weight:700}.fdm-status{color:var(--text-secondary);margin-top:3px;font-size:12px}.fdm-status.online{color:var(--accent)}.fdm-close{color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;border-radius:50%;flex-shrink:0;margin-left:auto;padding:7px;display:flex}.fdm-close:hover{color:var(--text-base);background:#ffffff14}.fdm-playlists-wrap{flex:1;padding:16px;overflow-y:auto}.fdm-section-label{text-transform:uppercase;letter-spacing:1.4px;color:var(--text-secondary);margin-bottom:12px;padding:0 2px;font-size:11px;font-weight:700}.fdm-playlist{border-radius:var(--radius-lg);border:1px solid #ffffff0f;margin-bottom:8px;overflow:hidden}.fdm-playlist-header{cursor:pointer;background:var(--bg-mid);transition:background var(--transition-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:12px;padding:11px 14px;display:flex}.fdm-playlist-header:hover{background:var(--bg-card)}.fdm-playlist-art{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:20px;display:flex}.fdm-playlist-info{flex:1;overflow:hidden}.fdm-playlist-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.fdm-playlist-count{color:var(--text-secondary);margin-top:2px;font-size:12px}.fdm-chevron{color:var(--text-secondary);transition:transform var(--transition-normal);flex-shrink:0}.fdm-chevron.open{transform:rotate(180deg)}.fdm-track-list{background:var(--bg-card);max-height:0;transition:max-height .32s;overflow:hidden}.fdm-track-list.open{max-height:420px}.fdm-track{cursor:pointer;transition:background var(--transition-fast);align-items:center;gap:10px;padding:8px 14px;display:flex}.fdm-track:hover{background:#ffffff0d}.fdm-track:hover .fdm-play-btn{opacity:1}.fdm-track-num{color:var(--text-muted);text-align:center;flex-shrink:0;min-width:16px;font-size:12px}.fdm-track-art{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:14px;display:flex}.fdm-track-info{flex:1;min-width:0;overflow:hidden}.fdm-track-name{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700;overflow:hidden}.fdm-track-artist{color:var(--text-secondary);font-size:11px}.fdm-track-dur{color:var(--text-secondary);flex-shrink:0;font-size:12px}.fdm-play-btn{background:var(--accent);color:#000;cursor:pointer;opacity:0;width:28px;height:28px;transition:opacity var(--transition-fast), transform var(--transition-fast);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.fdm-play-btn:hover{transform:scale(1.1)}.afm-body{padding:28px 28px 24px}.afm-title{margin-bottom:6px;font-size:20px;font-weight:900}.afm-subtitle{color:var(--text-secondary);margin-bottom:22px;font-size:13px;line-height:1.5}.afm-field{margin-bottom:16px}.afm-field label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.afm-field input{background:var(--bg-mid);border-radius:var(--radius-md);width:100%;color:var(--text-base);font-size:14px;font-family:var(--font);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border:1px solid #ffffff1a;outline:none;padding:12px 14px}.afm-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #d9c08f26}.afm-field input::placeholder{color:var(--text-muted)}.afm-hint{color:var(--text-muted);border-radius:var(--radius-sm);background:#ffffff0a;margin-bottom:16px;padding:9px 12px;font-size:12px;line-height:1.6}.afm-btn{background:var(--accent);color:#000;border-radius:var(--radius-full);cursor:pointer;width:100%;font-size:13px;font-weight:700;font-family:var(--font);text-transform:uppercase;letter-spacing:1.4px;transition:background var(--transition-fast), transform var(--transition-fast);border:none;padding:13px}.afm-btn:hover{background:#c9a876;transform:scale(1.01)}.afm-btn:disabled{opacity:.6;cursor:default;transform:none}.afm-error,.afm-success{border-radius:var(--radius-md);margin-bottom:14px;padding:10px 14px;font-size:13px;line-height:1.5}.afm-error{color:var(--negative);background:#e0637a1a;border:1px solid #e0637a4d}.afm-success{color:var(--accent);background:#d9c08f1a;border:1px solid #d9c08f4d}.frm-header{border-bottom:1px solid #ffffff12;flex-shrink:0;justify-content:space-between;align-items:center;padding:20px 22px 16px;display:flex}.frm-title{font-size:17px;font-weight:900}.frm-close{color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;border-radius:50%;padding:7px;display:flex}.frm-close:hover{color:var(--text-base);background:#ffffff14}.frm-list{flex:1;padding:12px;overflow-y:auto}.frm-item{border-radius:var(--radius-lg);transition:background var(--transition-fast);align-items:center;gap:13px;padding:12px 10px;animation:.2s fadeIn;display:flex}.frm-item:hover{background:#ffffff0a}.frm-avatar{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:18px;font-weight:700;display:flex}.frm-info{flex:1;overflow:hidden}.frm-name{font-size:14px;font-weight:700}.frm-meta{color:var(--text-secondary);margin-top:2px;font-size:12px}.frm-actions{flex-shrink:0;gap:8px;display:flex}.frm-accept{background:var(--accent);color:#000;border-radius:var(--radius-full);cursor:pointer;font-size:12px;font-weight:700;font-family:var(--font);transition:background var(--transition-fast), transform var(--transition-fast);border:none;padding:6px 14px}.frm-accept:hover{background:#c9a876;transform:scale(1.04)}.frm-decline{color:var(--text-secondary);border-radius:var(--radius-full);cursor:pointer;font-size:12px;font-weight:700;font-family:var(--font);transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #ffffff2e;padding:6px 12px}.frm-decline:hover{border-color:var(--negative);color:var(--negative)}.sync-center-col{flex-direction:column;align-items:center;max-width:900px;margin:0 auto;padding-top:24px;display:flex}.page-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--accent);text-align:center;margin-bottom:28px;font-size:12px;font-weight:700}.sync-flare-hero{flex-shrink:0;justify-content:center;align-items:center;width:300px;height:300px;margin-bottom:20px;display:flex;position:relative}.sync-flare-glow{filter:blur(6px);background:radial-gradient(circle,#d9c08f38 0%,#d9c08f14 38%,#0000 68%);border-radius:50%;width:100%;height:100%;transition:transform .6s;animation:4s ease-in-out infinite flareBreath;position:absolute}@keyframes flareBreath{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.14)}}.sync-flare-core{filter:blur(1.5px);background:radial-gradient(50% 50%,#fff 0%,#f3e3c2 22%,#d9c08f99 46%,#0000 74%);width:136px;height:42px;position:relative}.sync-flare-core:before{content:"";background:linear-gradient(90deg,#0000 0%,#f3e3c2e6 50%,#0000 100%);width:300px;height:1.5px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sync-flare-core:after{content:"";background:linear-gradient(#0000 0%,#f3e3c259 50%,#0000 100%);width:1.5px;height:300px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.sync-flare-hero.state-loading .sync-flare-glow{animation-duration:1.2s;transform:scale(1.12)}.sync-flare-hero.state-loading .sync-flare-core{width:180px;height:55px}.sync-flare-hero.state-done .sync-flare-glow{background:radial-gradient(circle,#7fc9bb38 0%,#7fc9bb14 38%,#0000 68%)}.sync-flare-hero.state-loading .sync-orbit{border-color:#d9c08f47;animation-duration:1.6s}.sync-flare-hero.state-loading .sync-orbit.ring2{border-color:#d9c08f33;animation-duration:1s}.sync-flare-hero.state-loading .sync-orbit:before{box-shadow:0 0 14px #d9c08f}.sync-loading-visual{flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.sync-loading-orb{flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;display:flex;position:relative}.sync-loading-orb-ring{border:3px solid #0000;border-top-color:var(--accent);border-right-color:var(--info);border-radius:50%;animation:1.1s linear infinite syncOrbSpin;position:absolute;inset:0}.sync-loading-orb-ring.ring2{border-color:#0000 #0000 #b3527a99 #d9c08f99;animation:1.6s linear infinite reverse syncOrbSpin;inset:9px}.sync-loading-orb-core{background:linear-gradient(135deg, var(--accent), var(--info));z-index:2;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;animation:1.5s ease-in-out infinite syncOrbPulse;display:flex}@keyframes syncOrbSpin{to{transform:rotate(360deg)}}@keyframes syncOrbPulse{0%,to{box-shadow:0 0 12px var(--accent-shadow);transform:scale(1)}50%{box-shadow:0 0 26px var(--accent-shadow);transform:scale(1.14)}}.sync-analyzing{flex-shrink:0;align-items:flex-end;gap:5px;height:42px;display:flex}.sync-analyzing .eq-bar{background:linear-gradient(180deg, var(--accent), var(--info));transform-origin:bottom;border-radius:3px;width:6px;animation:.85s ease-in-out infinite eqBounceBig}.sync-analyzing .eq-bar:first-child{height:11px;animation-delay:0s}.sync-analyzing .eq-bar:nth-child(2){height:20px;animation-delay:.1s}.sync-analyzing .eq-bar:nth-child(3){height:32px;animation-delay:.2s}.sync-analyzing .eq-bar:nth-child(4){height:42px;animation-delay:.3s}.sync-analyzing .eq-bar:nth-child(5){height:32px;animation-delay:.4s}.sync-analyzing .eq-bar:nth-child(6){height:20px;animation-delay:.5s}.sync-analyzing .eq-bar:nth-child(7){height:11px;animation-delay:.6s}@keyframes eqBounceBig{0%,to{opacity:.6;transform:scaleY(.25)}50%{opacity:1;transform:scaleY(1)}}.sync-orbit{border:1px dashed #d9c08f1f;border-radius:50%;animation:8s linear infinite orbitSpin;position:absolute;inset:0}.sync-orbit:before{content:"";background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:-3px;left:50%;transform:translate(-50%);box-shadow:0 0 8px #d9c08fcc}.sync-orbit.ring2{border-color:#d9c08f14;animation:5s linear infinite reverse orbitSpin;inset:20px}@keyframes orbitSpin{to{transform:rotate(360deg)}}.orb-caption{letter-spacing:.03em;color:var(--text-muted);text-align:center;min-height:16px;margin-bottom:36px;font-family:ui-monospace,SF Mono,monospace;font-size:13px}.orb-caption.active{color:var(--text-secondary)}.composer{width:100%}.prompt-box{border-bottom:1px solid #f5eef01a;transition:border-color .2s;position:relative}.prompt-box:focus-within{border-color:var(--accent)}.prompt-box textarea{resize:none;width:100%;min-height:58px;max-height:160px;color:var(--text-base);font-size:16px;line-height:1.5;font-family:var(--font);background:0 0;border:none;outline:none;padding:14px 90px 16px 2px}.prompt-box textarea::placeholder{color:#f5eef040}.prompt-actions{align-items:center;gap:16px;display:flex;position:absolute;bottom:13px;right:0}.attach-btn{color:#f5eef040;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;transition:color .15s;display:flex}.attach-btn:hover{color:#f5eef0b3}.send-btn{color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;padding:0;transition:transform .15s,opacity .15s;display:flex}.send-btn:hover{transform:translate(2px)}.img-previews{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.img-chip{border-radius:5px;width:46px;height:46px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #f5eef01a}.img-chip img{object-fit:cover;width:100%;height:100%;display:block}.img-chip .rm{width:13px;height:13px;color:var(--text-base);cursor:pointer;background:#000000b3;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:7px;display:flex;position:absolute;top:1px;right:1px}.mood-chips{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.mood-chip{border-radius:var(--radius-full);color:#f5eef073;cursor:pointer;font-size:13px;font-weight:600;font-family:var(--font);background:0 0;border:1px solid #f5eef01a;padding:9px 18px;transition:all .15s}.mood-chip:hover{color:var(--text-base);border-color:#f5eef040}.mood-chip.active{border-color:var(--accent);color:var(--accent)}.result-area{width:100%;margin-top:42px}.result-meta{border-bottom:1px solid #f5eef01a;flex-wrap:wrap;align-items:baseline;gap:16px;margin-bottom:16px;padding-bottom:16px;display:flex}.result-emotion{font-family:var(--font-display);font-size:27px;font-weight:700}.result-secondary{color:var(--text-secondary);border-left:1px solid #f5eef01a;padding-left:14px;font-size:13.5px}.result-conf{color:var(--text-secondary);margin-left:auto;font-family:ui-monospace,monospace;font-size:12px}.track-rec{cursor:pointer;border-bottom:1px solid #f5eef00d;align-items:center;gap:12px;padding:13px 0;transition:padding-left .15s;display:flex}.track-rec:hover{padding-left:4px}.track-rec .art{background:var(--bg-card);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:20px;display:flex;overflow:hidden}.track-rec .main{flex:1;min-width:0}.track-rec .name{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.track-rec .artist{color:var(--text-secondary);font-size:12.5px}.track-rec .play{color:#f5eef040;flex-shrink:0;align-items:center;gap:6px;font-size:12px;display:flex}.track-rec:hover .play{color:var(--accent)}.sync-stats-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:10px;font-size:12px;font-weight:700}.sync-stats-summary{color:var(--text-secondary);margin-bottom:18px;font-size:13px;line-height:1.6}.sync-stats-summary b{color:var(--text-base);font-weight:700}.sync-stats-bars{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.sync-stats-row{align-items:center;gap:8px;display:flex}.sync-stats-emoji{text-align:center;flex-shrink:0;width:20px;font-size:15px}.sync-stats-label{color:var(--text-secondary);flex-shrink:0;width:52px;font-size:12.5px}.sync-stats-bar-track{background:#f5eef00f;border-radius:4px;flex:1;height:8px;overflow:hidden}.sync-stats-bar-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .4s;display:block}.sync-stats-count{color:var(--text-muted);text-align:right;flex-shrink:0;width:18px;font-size:12px}.sync-stats-conf{color:var(--text-muted);text-align:center;border-top:1px solid #f5eef012;padding-top:10px;font-size:11.5px}.sync-loading-stage{flex-direction:column;align-items:center;gap:16px;padding:16px 0;display:flex}.sync-loading-text{background:linear-gradient(90deg, var(--accent), var(--info), var(--accent));color:#0000;letter-spacing:.03em;background-size:200%;-webkit-background-clip:text;background-clip:text;align-items:center;font-family:ui-monospace,monospace;font-size:13px;font-weight:700;animation:2.2s linear infinite syncTextShimmer;display:inline-flex}@keyframes syncTextShimmer{to{background-position:-200%}}.sync-dots{gap:3px;margin-left:5px;display:inline-flex}.sync-dots span{background:var(--accent);border-radius:50%;width:4px;height:4px;animation:1.4s ease-in-out infinite dotPulse}.sync-dots span:nth-child(2){animation-delay:.2s}.sync-dots span:nth-child(3){animation-delay:.4s}@keyframes dotPulse{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.sync-results-enter{animation:.4s both syncResultsFadeIn}@keyframes syncResultsFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.stats-strip{text-align:center;color:#f5eef040;letter-spacing:.02em;border-top:1px solid #f5eef01a;width:100%;margin-top:50px;padding-top:22px;font-family:ui-monospace,monospace;font-size:12.5px}.stats-strip b{color:#f5eef0b3;font-weight:600}.sync-genres{width:100%;margin-top:26px}.sync-genres-head{flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:12px;display:flex}.sync-genres-title{letter-spacing:.08em;color:var(--text-secondary);font-size:12px;font-weight:800}.sync-genres-hint{color:var(--text-muted);font-size:12px}.sync-genres-clear{cursor:pointer;color:var(--accent);font-size:12px;font-family:var(--font);background:0 0;border:none;margin-left:auto}.sync-genres-clear:hover{text-decoration:underline}.sync-genre-chips{flex-wrap:wrap;gap:8px;display:flex}.sync-genre-chip{border-radius:var(--radius-full);color:#f5eef08c;cursor:pointer;font-size:12.5px;font-weight:600;font-family:var(--font);background:#f5eef00a;border:1px solid #0000;padding:7px 15px;transition:all .15s}.sync-genre-chip:hover{color:var(--text-base);background:#f5eef017}.sync-genre-chip.active{border-color:var(--accent);color:var(--accent);background:#d9c08f29}.sync-analyzing{gap:10px;height:92px}.sync-analyzing .eq-bar{border-radius:6px;width:12px}.sync-analyzing .eq-bar:first-child{height:24px}.sync-analyzing .eq-bar:nth-child(2){height:44px}.sync-analyzing .eq-bar:nth-child(3){height:70px}.sync-analyzing .eq-bar:nth-child(4){height:92px}.sync-analyzing .eq-bar:nth-child(5){height:70px}.sync-analyzing .eq-bar:nth-child(6){height:44px}.sync-analyzing .eq-bar:nth-child(7){height:24px}.sync-loading-stage{gap:22px;padding:24px 0}.sync-loading-text{font-size:22px}.sync-dots span{width:6px;height:6px}.sync-dots{gap:5px;margin-left:8px}.pl-page-title{font-family:var(--font-display);font-size:26px;font-weight:700}.pl-hero-banner{background:linear-gradient(135deg, var(--bg-card), var(--bg-mid));border-radius:var(--radius-lg);cursor:pointer;width:100%;min-height:160px;transition:background var(--transition-fast);border:1px solid #f5eef00f;align-items:center;gap:24px;margin-bottom:16px;padding:28px;display:flex}.pl-hero-banner:hover{background:linear-gradient(135deg, var(--bg-card), #d9c08f0d)}.pl-hero-art{background:var(--bg-mid);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:100px;height:100px;display:flex;overflow:hidden;box-shadow:0 14px 32px #0006}.pl-hero-info{min-width:0}.pl-hero-tag{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:10px;font-weight:800}.pl-hero-name{font-family:var(--font-display);white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:22px;font-weight:700;overflow:hidden}.pl-hero-meta{color:var(--text-secondary);font-size:12px}.pl-featured{grid-template-columns:1.6fr 1fr 1fr;gap:14px;margin-bottom:30px;display:grid}.pl-feat-card{cursor:pointer;border-radius:20px;flex-direction:column;justify-content:flex-end;min-height:190px;padding:18px;transition:transform .16s;display:flex;position:relative;overflow:hidden}.pl-feat-card:hover{transform:translateY(-3px)}.pl-feat-card:before{content:"";background:linear-gradient(#0000 40%,#0000009e 100%);position:absolute;inset:0}.pl-feat-tag{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-size:10px;font-weight:800;position:relative}.pl-feat-name{font-family:var(--font-display);color:#fff;font-size:19px;font-weight:700;position:relative}.pl-feat-meta{color:#ffffffa6;margin-top:2px;font-size:11.5px;position:relative}.pl-feat-play{background:var(--accent);color:#2b0f1f;cursor:pointer;opacity:0;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:opacity .15s,transform .15s;display:flex;position:absolute;top:14px;right:14px;transform:scale(.85)}.pl-feat-card:hover .pl-feat-play{opacity:1;transform:scale(1)}.pl-feat-cover{object-fit:cover;z-index:0;width:100%;height:100%;position:absolute;inset:0}.pl-feat-card:before{z-index:1}.pl-feat-card.has-cover:before{background:linear-gradient(#0000001f 35%,#000000c7 100%)}.pl-feat-tag,.pl-feat-name,.pl-feat-meta,.pl-feat-play{z-index:2}.pl-create-tile{cursor:pointer;border:1.5px dashed #f5eef040;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:190px;transition:border-color .15s,background .15s;display:flex}.pl-create-tile:hover{border-color:var(--accent);background:#d9c08f0d}.pl-create-tile .plus{background:var(--bg-mid);width:40px;height:40px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex}.pl-create-tile .lbl{color:var(--text-secondary);font-size:12.5px;font-weight:700}.pl-create-tile .sub{color:var(--text-muted);font-size:11px}.pl-section-label{font-family:var(--font-display);border-bottom:1px solid #f5eef01a;margin:6px 0 14px;padding-bottom:10px;font-size:15px;font-weight:700}.playlist-toolbar{align-items:center;gap:12px;margin-bottom:24px;display:flex}.playlist-card{background:var(--bg-mid);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-fast), transform var(--transition-fast);position:relative;overflow:hidden}.playlist-card:hover{background:var(--bg-card);transform:translateY(-2px)}.playlist-card:hover .playlist-card-overlay,.playlist-card:hover .pl-menu-btn{opacity:1}.playlist-card-art{aspect-ratio:1;justify-content:center;align-items:center;width:100%;font-size:52px;display:flex;position:relative;overflow:hidden}.playlist-card-overlay{opacity:0;transition:opacity var(--transition-normal);background:#0006;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.playlist-card-body{padding:14px}.playlist-card-name{white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:14px;font-weight:700;overflow:hidden}.playlist-card-meta{color:var(--text-secondary);font-size:12px}.pl-menu-btn{border-radius:var(--radius-circle);width:30px;height:30px;color:var(--text-base);cursor:pointer;opacity:0;transition:opacity var(--transition-fast);background:#0009;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:8px;right:8px}.create-playlist-banner{border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast);background:linear-gradient(135deg,#d9c08f14 0%,#0000 60%);border:1px dashed #d9c08f4d;flex-direction:column;align-items:center;gap:8px;padding:32px;display:flex}.create-playlist-banner:hover{border-color:var(--accent);background:#d9c08f1f}.create-playlist-banner .create-icon{margin-bottom:4px;font-size:36px}.create-playlist-banner .create-title{font-size:15px;font-weight:700}.create-playlist-banner .create-desc{color:var(--text-secondary);font-size:12px}.profile-hero{isolation:isolate;align-items:flex-end;gap:24px;min-height:280px;margin:0 -24px 28px;padding:40px 30px 34px;display:flex;position:relative;overflow:hidden}.profile-hero:before{content:"";z-index:-2;background:radial-gradient(60% 60% at 80% 30%,#b3527a1f,#0000 70%),linear-gradient(135deg,#2a1020 0%,#170a10 55%,#0d0508 100%);position:absolute;inset:0}.profile-hero:after{content:"";z-index:-1;filter:blur(4px);background:radial-gradient(circle,#d9c08f2e 0%,#0000 65%);border-radius:50%;width:50%;height:170%;position:absolute;top:-40%;right:-6%}.profile-avatar-wrap{flex-shrink:0;position:relative}.profile-avatar{border-radius:var(--radius-circle);width:120px;height:120px;font-family:var(--font-display);color:#3a2508;cursor:pointer;transition:filter var(--transition-fast);background:linear-gradient(135deg,#ffd873 0%,#7a5410 100%);justify-content:center;align-items:center;font-size:36px;font-weight:700;display:flex;box-shadow:0 18px 40px #00000073}.profile-avatar:hover{filter:brightness(1.1)}.profile-avatar-edit{background:var(--text-base);border:3px solid var(--bg-surface);border-radius:var(--radius-circle);cursor:pointer;width:30px;height:30px;color:var(--bg-surface);transition:transform var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute;bottom:-2px;right:-2px}.profile-avatar-edit:hover{transform:scale(1.1)}.profile-info{z-index:1}.profile-type{text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin-bottom:6px;font-size:11px;font-weight:800}.profile-name{font-family:var(--font-display);color:var(--text-base);margin-bottom:12px;font-size:clamp(28px,4vw,48px);font-weight:800}.profile-stats{color:#f5eef099;gap:22px;font-size:12.5px;display:flex}.profile-stat{cursor:pointer}.profile-stat b{font-family:var(--font-display);color:var(--text-base);font-size:16px;font-weight:700;display:block}.profile-stat:hover b{text-decoration:underline}.settings-wrap{grid-template-columns:1fr 1fr;align-items:start;gap:16px;padding:26px 6px 0;display:grid}.settings-wrap .span2{grid-column:1/-1}.settings-section{background:var(--bg-mid);border-radius:var(--radius-lg);border:1px solid #f5eef014;padding:20px 22px}.settings-title{font-family:var(--font-display);align-items:center;gap:9px;margin-bottom:16px;font-size:14.5px;font-weight:700;display:flex}.form-group{margin-bottom:16px}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.form-input{background:var(--bg-card);border-radius:var(--radius-md);width:100%;color:var(--text-base);font-size:14px;font-family:var(--font);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border:1px solid #ffffff1a;outline:none;padding:12px 14px}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #d9c08f26}.form-input::placeholder{color:var(--text-muted)}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-hint{color:var(--text-muted);margin-top:4px;font-size:11px}.form-hint.error{color:var(--negative)}.form-hint.success{color:var(--accent)}.btn-primary{background:var(--accent);color:#000;border-radius:var(--radius-full);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);text-transform:uppercase;letter-spacing:1.4px;transition:background var(--transition-fast), transform var(--transition-fast);border:none;padding:12px 24px}.btn-primary:hover{background:#c9a876;transform:scale(1.02)}.btn-danger{border:1px solid var(--negative);color:var(--negative);border-radius:var(--radius-full);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);transition:background var(--transition-fast);background:0 0;padding:10px 20px}.btn-danger:hover{background:#e0637a1a}.toggle-row{border-bottom:1px solid #ffffff0d;justify-content:space-between;align-items:center;padding:12px 0;display:flex}.toggle-row:last-child{border-bottom:none}.toggle-label{font-size:14px;font-weight:700}.toggle-desc{color:var(--text-secondary);margin-top:2px;font-size:12px}.toggle-switch{flex-shrink:0;width:44px;height:24px;position:relative}.toggle-switch input{display:none}.toggle-track{background:var(--border);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast);position:absolute;inset:0}.toggle-track:after{content:"";background:var(--text-base);border-radius:var(--radius-circle);width:18px;height:18px;transition:left var(--transition-fast);position:absolute;top:3px;left:3px}.toggle-switch input:checked+.toggle-track{background:var(--accent)}.toggle-switch input:checked+.toggle-track:after{left:23px}.detail-hero{background:linear-gradient(to bottom, var(--bg-surface), var(--bg-base));align-items:flex-end;min-height:340px;margin:-24px -24px 0;padding:40px;display:flex;position:relative;overflow:hidden}.detail-hero-bg{filter:blur(60px)brightness(.4)saturate(1.5);z-index:0;background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.1)}.detail-hero.h-album:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(165deg,#8a4c138c 0%,#2a180673 55%,#0000 100%);position:absolute;inset:0}.detail-hero.h-genre:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(165deg,#123a348c 0%,#081c1973 55%,#0000 100%);position:absolute;inset:0}.detail-hero.h-playlist:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(165deg,#9c14578c 0%,#3c002873 55%,#0000 100%);position:absolute;inset:0}.detail-hero-content{z-index:1;align-items:flex-end;gap:32px;width:100%;display:flex;position:relative}.detail-hero-art{border-radius:var(--radius-md);background:var(--bg-mid);flex-shrink:0;justify-content:center;align-items:center;width:200px;height:200px;font-size:72px;display:flex;overflow:hidden;box-shadow:0 20px 48px #0009}.detail-hero-info{flex:1;min-width:0}.detail-hero-type{letter-spacing:1.5px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px;font-size:12px;font-weight:700}.detail-hero-name{font-family:var(--font-display);color:var(--text-base);margin-bottom:12px;font-size:clamp(28px,4vw,52px);font-weight:800;line-height:1.1}.detail-hero-desc{color:#f5eef0bf;margin-bottom:6px;font-size:13.5px}.detail-hero-meta{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:24px;font-size:14px;display:flex}.detail-action-row{align-items:center;gap:16px;display:flex}.detail-hero-actions{align-items:center;gap:12px;display:flex}.detail-play-btn,.play-btn-large{background:var(--accent);color:#2b0f1f;cursor:pointer;width:54px;height:54px;transition:box-shadow var(--transition-fast);border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.detail-play-btn:hover,.play-btn-large:hover{box-shadow:0 0 0 9px #d9c08f42}.detail-play-btn:disabled,.play-btn-large:disabled{opacity:.4;cursor:not-allowed}.action-btn{color:#f5eef0b3;cursor:pointer;width:38px;height:38px;transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #f5eef040;border-radius:50%;justify-content:center;align-items:center;display:flex}.action-btn:hover{border-color:var(--accent);color:var(--accent)}.track-body{padding:26px 30px 0}.track-col-head{letter-spacing:.06em;text-transform:uppercase;color:#f5eef040;border-bottom:1px solid #f5eef01a;grid-template-columns:28px 1fr auto auto;gap:14px;margin-bottom:6px;padding:0 10px 8px;font-size:10.5px;font-weight:800;display:grid}.track-body.has-art .track-col-head{grid-template-columns:28px 40px 1fr 1fr auto auto}.track-list{padding:16px 4px 0}.track-item{border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:28px 1fr auto auto;align-items:center;gap:14px;padding:9px 10px;display:grid}.track-body.has-art .track-item,.has-art .track-item{grid-template-columns:28px 40px 1fr minmax(0,160px) auto}.track-item:hover{background:var(--bg-mid)}.track-num-wrap{justify-content:center;align-items:center;display:flex;position:relative}.track-num{color:#f5eef040;font-variant-numeric:tabular-nums;font-size:12.5px}.track-item:hover .track-num{color:var(--accent)}.track-play-icon{display:none}.track-item:hover .track-play-icon{display:block}.track-item:hover .track-num-text{display:none}.track-art{border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex;overflow:hidden}.track-info{min-width:0}.track-name{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:600;overflow:hidden}.track-artist{color:#f5eef073;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:12px;overflow:hidden}.track-album{color:#f5eef073;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.track-actions{align-items:center;gap:10px;display:flex}.track-add-btn,.track-remove-btn{color:#f5eef040;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.track-item:hover .track-add-btn,.track-item:hover .track-remove-btn{color:#f5eef0b3}.track-duration{color:#f5eef073;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px}.artist-hero{background:linear-gradient(to bottom, var(--bg-surface), var(--bg-base));align-items:flex-end;min-height:340px;margin:-24px -24px 0;padding:40px;display:flex;position:relative;overflow:hidden}.artist-hero-bg{filter:blur(60px)brightness(.4)saturate(1.5);z-index:0;background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.1)}.artist-hero:after{content:"";z-index:0;pointer-events:none;background:linear-gradient(165deg,#9c14578c 0%,#3c002873 55%,#0000 100%);position:absolute;inset:0}.artist-hero-content{z-index:1;align-items:flex-end;gap:32px;width:100%;display:flex;position:relative}.artist-hero-eyebrow{letter-spacing:1.5px;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px;font-size:12px;font-weight:700}.artist-hero-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-base);margin:0 0 12px;font-size:clamp(28px,4vw,52px);font-weight:800;line-height:1.1}.artist-hero-row{align-items:flex-end;gap:28px;display:flex}.artist-hero-art{background:var(--bg-mid);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:160px;height:160px;font-size:52px;display:flex;overflow:hidden;box-shadow:0 24px 50px #00000080}.artist-hero-meta{flex:1;min-width:0}.artist-hero-bio{color:#f5eef0bf;max-width:460px;margin-bottom:14px;font-size:13.5px;line-height:1.6}.artist-hero-stats{color:#f5eef080;text-transform:uppercase;margin-bottom:20px;font-family:ui-monospace,monospace;font-size:12px}.artist-hero-actions{align-items:center;gap:14px;display:flex}.artist-play-lg{background:var(--accent);color:#2b0f1f;cursor:pointer;width:56px;height:56px;transition:box-shadow var(--transition-fast);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.artist-play-lg:hover{box-shadow:0 0 0 9px #d9c08f42}.artist-play-lg:disabled{opacity:.4;cursor:not-allowed}.artist-save-btn{color:#f5eef0b3;cursor:pointer;width:38px;height:38px;transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #f5eef040;border-radius:50%;justify-content:center;align-items:center;font-size:18px;display:flex}.artist-save-btn.saved,.artist-save-btn:hover{border-color:var(--accent);color:var(--accent)}.album-rail-wrap{padding:34px 0 0}.album-rail-head{justify-content:space-between;align-items:baseline;margin-bottom:16px;display:flex}.album-rail-title{font-family:var(--font-display);font-size:19px;font-weight:700}.album-rail{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px;margin-bottom:8px;display:grid}.album-card{cursor:pointer}.album-card-art{aspect-ratio:1;background:var(--bg-mid);border-radius:12px;justify-content:center;align-items:center;width:100%;margin-bottom:10px;font-size:52px;transition:transform .18s;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 30px #0006}.album-card:hover .album-card-art{transform:translateY(-4px)}.album-card.active .album-card-art{box-shadow:0 0 0 3px var(--accent), 0 14px 30px #0006}.album-card-name{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.album-card-meta{color:#f5eef073;margin-top:2px;font-size:11px}.selected-album{background:var(--bg-mid);border:1px solid #f5eef01a;border-radius:18px;margin-top:16px;padding:22px 24px}.selected-album:first-child{margin-top:0}.sel-album-head{align-items:center;gap:16px;margin-bottom:16px;display:flex}.sel-album-art{background:var(--bg-card);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:68px;height:68px;font-size:30px;display:flex;overflow:hidden}.sel-album-name{font-size:18px;font-weight:700}.sel-album-meta{color:#f5eef073;margin-top:3px;font-size:13px}.sel-track-row{border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:24px 48px 1fr auto;align-items:center;gap:14px;padding:10px 8px;display:grid}.sel-track-row:hover{background:var(--bg-card)}.sel-track-row .num{color:#f5eef04d;text-align:center;font-size:13px}.sel-track-art{background:var(--bg-card);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:18px;display:flex;overflow:hidden}.sel-track-row .name{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:500;overflow:hidden}.sel-track-row .dur{color:#f5eef04d;font-variant-numeric:tabular-nums;font-size:13px}.sel-album-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.sel-album-save-btn{border-radius:var(--radius-full);color:#f5eef0b3;cursor:pointer;font-size:12.5px;font-weight:700;font-family:var(--font);transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #f5eef040;padding:8px 16px}.sel-album-save-btn.saved,.sel-album-save-btn:hover{border-color:var(--accent);color:var(--accent)}.cpm-emoji-grid{grid-template-columns:repeat(5,1fr);gap:7px;margin-top:8px;display:grid}.cpm-emoji-btn{background:var(--bg-mid);border-radius:var(--radius-md);cursor:pointer;width:44px;height:44px;transition:border-color var(--transition-fast), background var(--transition-fast);font-size:22px;font-family:var(--font);border:2px solid #0000;justify-content:center;align-items:center;display:flex}.cpm-emoji-btn:hover{background:var(--bg-card)}.cpm-emoji-btn.active{border-color:var(--accent);background:#d9c08f1a}.cpm-error{border-radius:var(--radius-md);color:var(--negative);background:#e0637a1a;border:1px solid #e0637a4d;margin-bottom:14px;padding:9px 13px;font-size:13px}.ad-hero{background:linear-gradient(to bottom, var(--bg-surface), var(--bg-base));border-bottom:1px solid #f5eef012;margin:-24px -24px 0;padding:44px 40px 30px;position:relative;overflow:hidden}.ad-hero-bg{filter:blur(60px)brightness(.4)saturate(1.5);opacity:0;background-position:50%;background-size:cover;transition:opacity .5s;position:absolute;inset:0;transform:scale(1.1)}.ad-hero-bg.is-visible{opacity:1}.ad-hero:after{content:"";pointer-events:none;background:linear-gradient(165deg,#9c145766 0%,#3c00284d 55%,#0000 100%);position:absolute;inset:0}.ad-hero-inner{z-index:1;align-items:center;gap:32px;display:flex;position:relative}.ad-art{background:var(--bg-mid);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:152px;height:152px;font-size:52px;display:flex;overflow:hidden;box-shadow:0 18px 44px #b3527a59}.ad-art img{object-fit:cover;width:100%;height:100%}.ad-hero-main{flex:1;min-width:0}.ad-eyebrow{letter-spacing:.3em;color:var(--accent);font-size:13px;font-weight:700}.ad-name{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text-base);overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:6px 0 8px;font-size:clamp(30px,4vw,54px);font-weight:800;line-height:1.08;display:-webkit-box;overflow:hidden}.ad-sub{color:#f5eef0b3;max-width:520px;font-size:14px;line-height:1.55}.ad-actions{align-items:center;gap:12px;margin-top:16px;display:flex}.ad-follow{background:var(--accent);color:#2b0f1f;border:1px solid var(--accent);cursor:pointer;height:44px;transition:background var(--transition-fast), color var(--transition-fast);border-radius:99px;padding:0 26px;font-family:inherit;font-size:15px;font-weight:800}.ad-follow:disabled{opacity:.6;cursor:wait}.ad-follow.saved{color:var(--accent);background:0 0}.ad-play{width:44px;height:44px;color:var(--text-base);cursor:pointer;transition:border-color var(--transition-fast), color var(--transition-fast);background:#150a10b3;border:1px solid #f5eef040;border-radius:50%;justify-content:center;align-items:center;display:flex}.ad-play:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.ad-play:disabled{opacity:.4;cursor:not-allowed}.ad-stats{flex-shrink:0;align-self:flex-end;gap:36px;padding-bottom:6px;display:flex}.ad-stats>div{text-align:right}.ad-stats b{font-size:24px;font-weight:800;display:block}.ad-stats span{color:#f5eef073;letter-spacing:.1em;font-size:11.5px}.ad-body{flex-wrap:wrap;align-items:flex-start;gap:26px;padding-top:26px;display:flex}.ad-body>.ad-albums{flex:260px;min-width:0}.ad-body>.ad-detail{flex:3 420px;min-width:0}.ad-albums{background:var(--bg-mid);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#f5eef040 transparent;border:1px solid #f5eef012;border-radius:18px;max-height:min(640px,100vh - 180px);padding:18px;overflow-y:auto}.ad-albums::-webkit-scrollbar{width:8px}.ad-albums::-webkit-scrollbar-thumb{background:#f5eef038;border-radius:8px}.ad-albums::-webkit-scrollbar-thumb:hover{background:#f5eef061}.ad-albums-title{z-index:1;background:var(--bg-mid);letter-spacing:.12em;color:#f5eef073;margin:-18px -18px 8px;padding:18px 18px 10px;font-size:12px;font-weight:700;position:sticky;top:-18px}.ad-album{cursor:pointer;transition:background var(--transition-fast);border:1px solid #0000;border-radius:12px;align-items:center;gap:14px;padding:10px;display:flex}.ad-album:hover{background:#f5eef00a}.ad-album.active{background:#d9c08f1a;border-color:#d9c08f59}.ad-album-art{background:var(--bg-card);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;font-size:24px;display:flex;overflow:hidden}.ad-album-art img{object-fit:cover;width:100%;height:100%}.ad-album-info{min-width:0}.ad-album-name{font-size:14.5px;font-weight:700}.ad-album-meta{color:#f5eef080;margin-top:3px;font-size:12px}.ad-album-head{flex-wrap:nowrap;align-items:flex-end;gap:24px;display:flex}.ad-album-head>div:last-child{flex:1;min-width:0}.ad-cover{background:var(--bg-card);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:clamp(112px,14vw,168px);height:clamp(112px,14vw,168px);font-size:56px;display:flex;overflow:hidden;box-shadow:0 18px 44px #b3527a47}.ad-cover img{object-fit:cover;width:100%;height:100%}.ad-album-label{letter-spacing:.14em;color:var(--accent);font-size:12px;font-weight:700}.ad-album-title{font-family:var(--font-display);margin:6px 0;font-size:clamp(22px,2.4vw,34px);font-weight:800;line-height:1.3}.ad-album-sub{color:#f5eef099;font-size:13.5px}.ad-album-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.ad-btn{cursor:pointer;height:40px;color:var(--text-base);transition:border-color var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #f5eef040;border-radius:99px;padding:0 22px;font-family:inherit;font-size:14px;font-weight:700}.ad-btn.primary{background:var(--accent);border-color:var(--accent);color:#2b0f1f}.ad-btn:not(.primary):hover,.ad-btn.saved{border-color:var(--accent);color:var(--accent)}.ad-btn:disabled{opacity:.6;cursor:wait}.ad-tracks{background:var(--bg-mid);border:1px solid #f5eef012;border-radius:18px;margin-top:20px;padding:8px}.ad-track{cursor:pointer;border-radius:10px;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:11px 14px;display:grid}.ad-track:hover{background:#f5eef00d}.ad-track.playing{background:#b3527a29}.ad-track .num{color:#f5eef066;text-align:center;font-variant-numeric:tabular-nums;font-size:14px}.ad-track.playing .num{color:var(--accent)}.ad-track .name{font-size:14.5px;font-weight:500}.ad-track .add{color:#f5eef059;cursor:pointer;background:0 0;border:none;align-items:center;padding:0;display:flex}.ad-track:hover .add{color:#f5eef0bf}.ad-track .dur{color:#f5eef080;font-variant-numeric:tabular-nums;font-size:13px}.ad-empty{text-align:center;color:#f5eef066;padding:40px}@media (width<=1100px){.ad-stats{display:none}}@media (width<=640px){.ad-hero{padding:32px 20px 22px}.ad-hero-inner{flex-direction:column;align-items:flex-start}}.ad-marq{white-space:nowrap;min-width:0;display:block;overflow:hidden}.ad-marq-in{will-change:transform;display:inline-block}.ad-marq.is-marq.hover:not(:hover){-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}.ad-marq.is-marq:not(.hover) .ad-marq-in,.ad-album:hover .ad-marq.hover.is-marq .ad-marq-in,.ad-track:hover .ad-marq.hover.is-marq .ad-marq-in{animation:ad-marq var(--mq-time,8s) ease-in-out 1s infinite alternate}@keyframes ad-marq{0%,12%{transform:translate(0)}88%,to{transform:translateX(var(--mq-dist,0px))}}@media (prefers-reduced-motion:reduce){.ad-marq.is-marq .ad-marq-in{animation:none!important}.ad-marq.is-marq{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}}.auth-page{background:var(--bg-base);flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;overflow-y:auto}.auth-logo{cursor:pointer;justify-content:center;align-items:center;gap:10px;margin-bottom:32px;text-decoration:none;display:flex}.auth-logo-icon{background:var(--accent);border-radius:var(--radius-circle);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.auth-logo-text{color:var(--text-base);letter-spacing:-.02em;font-family:Syne,Noto Sans KR,sans-serif;font-size:28px;font-weight:900}.auth-card{background:var(--bg-surface);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-heavy);border:1px solid #ffffff0f;padding:40px 36px}.auth-title{font-size:28px;font-weight:800;font-family:var(--font-display);color:var(--text-base);text-align:center;margin-bottom:8px}.auth-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:28px;font-size:14px;line-height:1.5}.auth-error{border-radius:var(--radius-md);color:var(--negative);background:#f3727f1f;border:1px solid #f3727f4d;margin-bottom:16px;padding:10px 14px;font-size:13px;line-height:1.4}.auth-success{border-radius:var(--radius-md);color:var(--accent);background:#d9c08f1a;border:1px solid #d9c08f4d;margin-bottom:16px;padding:10px 14px;font-size:13px;line-height:1.4}.auth-field{margin-bottom:16px}.auth-field label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.auth-field input{background:var(--bg-mid);border-radius:var(--radius-md);width:100%;color:var(--text-base);font-size:14px;font-family:var(--font);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border:1px solid #ffffff1a;outline:none;padding:13px 14px}.auth-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #d9c08f26}.auth-field input::placeholder{color:var(--text-muted)}.auth-field-hint{color:var(--text-muted);margin-top:4px;font-size:11px}.auth-field-hint.error{color:var(--negative)}.auth-field-hint.success{color:var(--accent)}.auth-btn{background:var(--accent);color:#000;border-radius:var(--radius-full);cursor:pointer;width:100%;font-size:14px;font-weight:700;font-family:var(--font);text-transform:uppercase;letter-spacing:1.4px;transition:background var(--transition-fast), transform var(--transition-fast);border:none;margin-top:8px;padding:14px}.auth-btn:hover{background:#c9a876;transform:scale(1.01)}.auth-btn:disabled{opacity:.6;cursor:default;transform:none}.auth-divider{color:var(--text-muted);align-items:center;gap:12px;margin:20px 0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#ffffff14;flex:1;height:1px}.auth-demo{border-radius:var(--radius-md);color:var(--text-secondary);text-align:center;background:#d9c08f12;border:1px solid #d9c08f2e;margin-top:16px;padding:10px 14px;font-size:12px;line-height:1.6}.auth-demo strong{color:var(--accent);font-weight:700}.auth-switch{text-align:center;color:var(--text-secondary);margin-top:20px;font-size:13px}.auth-switch a{color:var(--text-base);text-underline-offset:3px;font-weight:700;text-decoration:underline}.auth-switch a:hover{color:var(--accent)}.auth-checkbox-row{color:var(--text-secondary);align-items:flex-start;gap:10px;margin-bottom:16px;font-size:13px;line-height:1.5;display:flex}.auth-checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin-top:2px}.auth-checkbox-row a{color:var(--text-base);text-underline-offset:2px;text-decoration:underline}.pw-strength-bar{border-radius:var(--radius-full);background:var(--border);height:3px;margin-top:6px;overflow:hidden}.pw-strength-fill{border-radius:var(--radius-full);width:0;height:100%;transition:width .3s,background .3s}.auth-modal-overlay{-webkit-backdrop-filter:blur(7px);z-index:9000;background:#0009;justify-content:center;align-items:center;padding:20px;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.auth-modal-overlay.hidden{display:none}.auth-modal-card{background:var(--bg-surface);border-radius:var(--radius-xl);width:100%;max-width:420px;max-height:90vh;padding:36px 32px 32px;animation:.28s fadeInUp;overflow-y:auto;box-shadow:0 32px 80px #000000b3,0 0 0 1px #ffffff12}.auth-modal-tabs{border-bottom:1px solid #ffffff14;margin-bottom:24px;display:flex}.auth-modal-tab{color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:700;font-family:var(--font);transition:color var(--transition-fast), border-color var(--transition-fast);letter-spacing:.3px;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:11px 8px}.auth-modal-tab:hover{color:var(--text-secondary)}.auth-modal-tab.active{color:var(--text-base);border-bottom-color:var(--accent)}.auth-standalone-body{background:var(--bg-base);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-standalone-body .auth-wrap{width:100%;max-width:420px;padding:24px}.auth-standalone-body .auth-logo{text-align:center;margin-bottom:28px}.auth-standalone-body .auth-logo-icon{background:var(--accent);border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 12px;display:flex}.auth-standalone-body .auth-logo-text{font-size:22px;font-weight:900}.auth-standalone-body .auth-card{background:var(--bg-surface);border-radius:var(--radius-xl);padding:32px 28px;box-shadow:0 24px 80px #00000080,0 0 0 1px #ffffff12}.auth-standalone-body .auth-title{margin-bottom:4px;font-size:22px;font-weight:900}.auth-standalone-body .auth-subtitle{color:var(--text-secondary);margin-bottom:24px;font-size:13px}.auth-standalone-body .form-group{margin-bottom:14px}.auth-standalone-body .form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.auth-standalone-body .form-group input{background:var(--bg-mid);border-radius:var(--radius-md);width:100%;color:var(--text-base);font-size:14px;font-family:var(--font);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border:1px solid #ffffff1a;outline:none;padding:12px 14px}.auth-standalone-body .form-group input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #d9c08f26}.auth-standalone-body .auth-btn{background:var(--accent);color:#000;border-radius:var(--radius-full);cursor:pointer;width:100%;font-size:13px;font-weight:700;font-family:var(--font);text-transform:uppercase;letter-spacing:1.4px;transition:background var(--transition-fast), transform var(--transition-fast);border:none;margin-top:8px;padding:13px}.auth-standalone-body .auth-btn:hover{background:#c9a876;transform:scale(1.01)}.auth-standalone-body .auth-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-standalone-body .auth-msg-error{border-radius:var(--radius-md);color:var(--negative);background:#e0637a1a;border:1px solid #e0637a4d;margin-bottom:16px;padding:10px 14px;font-size:13px}.auth-standalone-body .auth-msg-success{border-radius:var(--radius-md);color:var(--accent);background:#d9c08f1a;border:1px solid #d9c08f4d;margin-bottom:14px;padding:10px 14px;font-size:13px}.auth-standalone-body .auth-footer{text-align:center;color:var(--text-secondary);margin-top:20px;font-size:13px}.auth-standalone-body .auth-footer a{color:var(--accent);text-decoration:none}.auth-standalone-body .auth-socials{flex-direction:column;gap:10px;margin-bottom:18px;display:flex}.auth-standalone-body .auth-social-btn{border-radius:var(--radius-full);font-size:13px;font-weight:700;font-family:var(--font);justify-content:center;align-items:center;gap:8px;padding:11px;text-decoration:none;display:flex}.auth-standalone-body .auth-social-btn.google{color:#1a1a1a;background:#fff;border:1px solid #0000001a}.auth-standalone-body .auth-social-btn.naver{color:#fff;background:#03c75a;border:none}.auth-standalone-body .auth-divider{color:var(--text-muted);align-items:center;gap:10px;margin:18px 0;font-size:12px;display:flex}.auth-standalone-body .auth-divider:before,.auth-standalone-body .auth-divider:after{content:"";background:#ffffff1a;flex:1;height:1px}.auth-standalone-body .auth-demo{border-radius:var(--radius-md);color:var(--text-secondary);text-align:center;background:#d9c08f0f;border:1px solid #d9c08f26;margin-top:16px;padding:12px 14px;font-size:12px;line-height:1.6}.auth-standalone-body .auth-demo strong{color:var(--text-base)}#splash-screen{background:var(--bg-base);z-index:99999;flex-direction:column;justify-content:center;align-items:center;transition:opacity .75s,transform .75s;display:flex;position:fixed;inset:0}#splash-screen.fading{opacity:0;pointer-events:none;transform:scale(1.05)}.splash-icon{background:var(--accent);border-radius:50%;justify-content:center;align-items:center;width:92px;height:92px;animation:.7s cubic-bezier(.34,1.56,.64,1) .2s both splashIconIn;display:flex;position:relative;box-shadow:0 0 48px #d9c08f66,0 0 96px #d9c08f26}.splash-icon:before,.splash-icon:after{content:"";border:2px solid var(--accent);opacity:0;border-radius:50%;animation:2.4s ease-out 1s infinite splashRipple;position:absolute;inset:0}.splash-icon:after{animation-delay:1.5s}.splash-title{color:var(--text-base);letter-spacing:-.02em;font-family:Syne,Noto Sans KR,sans-serif;font-size:34px;font-weight:900;animation:.55s .8s both splashFadeUp}.splash-tagline{color:var(--text-secondary);letter-spacing:.8px;margin-top:8px;font-size:13px;animation:.55s 1s both splashFadeUp}.splash-dots{gap:8px;margin-top:52px;animation:.4s 1.2s both splashFadeUp;display:flex}.splash-dot{background:var(--accent);opacity:.5;border-radius:50%;width:7px;height:7px;animation:1.1s 1.4s infinite splashDotBounce}.splash-dot:nth-child(2){animation-delay:1.55s}.splash-dot:nth-child(3){animation-delay:1.7s}@keyframes splashIconIn{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes splashFadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes splashRipple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}@keyframes splashDotBounce{0%,80%,to{opacity:.4;transform:translateY(0)}40%{opacity:1;transform:translateY(-9px)}}
