@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700;900&display=swap');
:root{--bg:#101016;--panel:#181820;--panel2:#20202a;--text:#f5f3f7;--muted:#92909e;--purple:#a78bfa;--line:#ffffff12}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans','Noto Sans SC',sans-serif;font-size:14px}button{font:inherit;color:inherit;border:0;cursor:pointer;background:none}button:focus-visible,input:focus-visible{outline:2px solid var(--purple);outline-offset:3px}.app-shell{display:flex;min-height:calc(100vh - 92px);padding-bottom:0}.sidebar{width:246px;flex:none;background:#14141b;border-right:1px solid var(--line);padding:30px 18px 110px;position:relative}.brand{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;font-size:22px;font-weight:800;letter-spacing:1px;margin:0 8px 52px}.brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:13px;background:linear-gradient(135deg,#bd9cff,#7658df);font-size:24px;color:white;box-shadow:0 8px 24px #8c69ec55}.brand-sub{display:block;font-size:8px;letter-spacing:2.6px;color:#8f8b9c;font-weight:600;margin-top:2px}.nav-label,.playlist-head{font-size:11px;color:#777583;letter-spacing:1.5px;padding:0 12px 12px}.nav-item{display:flex;align-items:center;gap:15px;width:100%;height:45px;text-align:left;padding:0 13px;border-radius:10px;color:#a4a1ae;margin:3px 0;transition:.2s}.nav-item span{font-size:19px;width:18px;text-align:center}.nav-item:hover,.nav-item.active{background:#282433;color:#c6adff}.nav-item.active{box-shadow:inset 2px 0 #b394ff}.side-divider{height:1px;background:var(--line);margin:26px 4px 22px}.playlist-head{display:flex;justify-content:space-between;align-items:center}.playlist-head button{font-size:22px;color:#b49bff}.playlist-nav{display:grid;gap:4px}.playlist-link{padding:10px 12px;text-align:left;color:#a5a2ae;border-radius:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-link:hover{background:#ffffff0b;color:white}.empty-small{font-size:11px;color:#6f6d79;line-height:1.7;padding:8px 12px}.sidebar-bottom{position:absolute;bottom:22px;left:18px;right:18px;border-top:1px solid var(--line);padding:18px 4px 0;display:flex;align-items:center;gap:10px}.profile-dot,.avatar{background:linear-gradient(135deg,#a78bfa,#6d55c7);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700}.sidebar-bottom b,.sidebar-bottom small{display:block}.sidebar-bottom b{font-size:12px}.sidebar-bottom small{font-size:10px;color:var(--muted);margin-top:4px}.more{margin-left:auto;color:#85818f;font-size:20px}.main{min-width:0;flex:1}.topbar{height:88px;display:flex;align-items:center;padding:0 5.2%;gap:25px;border-bottom:1px solid var(--line)}.history{display:flex;gap:12px}.history button{font-size:28px;color:#8f8c98}.search{display:flex;align-items:center;gap:10px;width:min(430px,46vw);height:42px;padding:0 14px;background:#1b1b24;border:1px solid #ffffff0c;border-radius:22px;color:#8d8998}.search span{font-size:24px}.search input{background:none;border:0;outline:0;color:white;min-width:0;flex:1;font:inherit}.search input::placeholder{color:#777482}.search kbd{font-size:10px;border:1px solid #ffffff20;padding:3px 6px;border-radius:5px;color:#777}.top-actions{margin-left:auto;display:flex;align-items:center;gap:18px}.upload-btn{background:#a88afa;color:#171321;border-radius:20px;padding:10px 17px;font-weight:700;font-size:12px}.upload-btn:hover,.primary-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.avatar{border:0}.content{max-width:1350px;margin:auto;padding:34px 5.2% 120px}.hero{min-height:330px;border-radius:22px;position:relative;overflow:hidden;background:linear-gradient(110deg,#272035 0%,#242039 45%,#3b2d54 100%);padding:43px 5%;display:flex;align-items:center}.hero:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 78% 48%,#a58aff26,transparent 42%);pointer-events:none}.hero-copy{position:relative;z-index:2}.eyebrow{font-size:9px;letter-spacing:2.2px;color:#c4aaff;font-weight:700}.eyebrow i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#b99bff;margin:0 8px 1px 0;box-shadow:0 0 12px #b99bff}.hero h1{font-size:clamp(34px,4vw,52px);line-height:1.22;letter-spacing:-1.8px;margin:18px 0 12px;font-weight:800}.hero h1 em{font-style:normal;color:#c6aaff}.hero p{color:#b6afc5;font-size:13px;margin-bottom:25px}.primary-btn{padding:12px 20px;border-radius:22px;background:#c2a8ff;color:#211b2c;font-weight:700;font-size:12px;transition:.2s}.hero-art{position:absolute;width:43%;height:100%;right:2%;top:0;display:grid;place-items:center}.vinyl{width:min(250px,70%);aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle,#15141c 0 2px,#24212d 3px 4px,#14131a 5px 7px);box-shadow:0 20px 60px #09080e88,0 0 0 10px #ffffff06;display:grid;place-items:center;animation:spin 24s linear infinite}.vinyl-label{width:32%;aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,#d5b9ff,#7659ba);display:grid;place-items:center;color:#292035;font-size:24px;font-weight:900;position:relative}.vinyl-label span{position:absolute;font-size:12px;bottom:13px}.orb{position:absolute;border-radius:50%;filter:blur(1px)}.orb-one{width:90px;height:90px;background:#bd8aff55;right:12%;top:13%}.orb-two{width:44px;height:44px;background:#ffc18d66;left:13%;bottom:16%}.art-caption{position:absolute;bottom:27px;right:16%;font-size:8px;letter-spacing:3px;color:#b9a9d0}.art-caption b{color:#ffc18d;margin-left:9px}.hero-index{position:absolute;bottom:22px;left:5%;font-size:9px;letter-spacing:2px;color:#a99bbd}.hero-index span{color:#6f637f;margin:0 7px}.section{margin-top:42px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:19px}.muted{color:#777482}.section-heading h2{font-size:20px;margin:8px 0 0;letter-spacing:.2px}.section-note,.text-btn{font-size:11px;color:#817e8c}.text-btn:hover{color:#c4aaff}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.feature-card{height:150px;border-radius:15px;text-align:left;padding:18px 20px;position:relative;overflow:hidden;transition:.2s}.feature-card:hover{transform:translateY(-3px);filter:brightness(1.1)}.feature-purple{background:linear-gradient(120deg,#312744,#47355d)}.feature-orange{background:linear-gradient(120deg,#3c2d2c,#60433d)}.feature-blue{background:linear-gradient(120deg,#253444,#304b5b)}.feature-icon{position:absolute;right:20px;top:16px;font-size:27px;opacity:.6}.feature-kicker{display:block;font-size:8px;letter-spacing:1.7px;color:#c1aaff;margin-bottom:18px}.feature-orange .feature-kicker{color:#f3b49b}.feature-blue .feature-kicker{color:#a6d2eb}.feature-card b{display:block;font-size:17px;margin-bottom:5px}.feature-card small{color:#b2aebb;font-size:10px}.feature-arrow{position:absolute;right:19px;bottom:17px;color:#c3b2df}.track-list{display:grid}.track-row{display:grid;grid-template-columns:38px minmax(100px,1fr) minmax(80px,.6fr) 50px 34px;align-items:center;gap:14px;padding:10px 12px;border-bottom:1px solid #ffffff0a;border-radius:9px}.track-row:hover{background:#ffffff08}.track-num{color:#777482;font-size:12px;text-align:center}.track-cover{width:38px;height:38px;border-radius:8px;background:linear-gradient(135deg,#5b466f,#b18ed2);display:grid;place-items:center;color:#fff;font-size:17px}.track-title{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-artist,.track-album{font-size:10px;color:#898694;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-album{margin:0}.track-duration{font-size:10px;color:#898694;text-align:right}.track-actions{color:#8c8797;font-size:18px}.track-actions.liked{color:#c39dff}.bottom-note{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:42px;padding-top:20px;color:#696675;font-size:8px;letter-spacing:2px}.bottom-note span{letter-spacing:0}.player{height:92px;position:fixed;z-index:10;bottom:0;left:0;right:0;background:#17171fef;backdrop-filter:blur(18px);border-top:1px solid #ffffff17;display:grid;grid-template-columns:1fr 1.2fr 1fr;align-items:center;padding:0 3.2%}.now-playing{display:flex;align-items:center;gap:12px;min-width:0}.mini-cover{width:48px;height:48px;flex:none;border-radius:9px;background:linear-gradient(135deg,#5b466f,#b18ed2);display:grid;place-items:center;font-size:22px}.now-meta{min-width:0}.now-meta b,.now-meta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.now-meta b{font-size:12px}.now-meta small{font-size:10px;color:#8e8a98;margin-top:6px}.like-btn{font-size:21px;color:#aaa3b3;margin-left:4px}.like-btn.liked{color:#c49eff}.player-center{max-width:500px;width:100%;justify-self:center}.controls{display:flex;align-items:center;justify-content:center;gap:24px;height:42px}.controls button{color:#a9a5b1;font-size:17px}.controls button:hover{color:white}.controls .play-main{width:34px;height:34px;border-radius:50%;background:#c0a2ff;color:#1b1626;font-size:13px;padding-left:3px}.progress-row{display:flex;align-items:center;gap:10px;color:#8c8895;font-size:9px}input[type=range]{accent-color:#b89aff;cursor:pointer}.progress-row input{flex:1;height:3px}.player-right{display:flex;align-items:center;justify-content:flex-end;gap:14px;color:#a5a1ae}.player-right input{width:85px;height:3px}.player-right button{font-size:20px;color:#a5a1ae}.toast{position:fixed;bottom:110px;left:50%;transform:translate(-50%,15px);background:#302a3c;color:#eee;padding:11px 18px;border-radius:9px;font-size:12px;opacity:0;pointer-events:none;transition:.25s;z-index:20}.toast.show{opacity:1;transform:translate(-50%,0)}.empty-state{text-align:center;padding:48px 15px;color:#898594}.empty-state strong{display:block;color:#e9e5ef;font-size:16px;margin-bottom:9px}.empty-state button{margin-top:15px}.view-title{font-size:25px;margin:7px 0 8px}.view-desc{color:#8d8997;font-size:12px;margin-bottom:24px}.view-toolbar{display:flex;gap:10px;margin-bottom:16px}.pill-btn{border:1px solid #ffffff20;padding:9px 14px;border-radius:20px;font-size:11px;color:#c3b4dc}.playlist-hero{background:linear-gradient(120deg,#332944,#252236);border-radius:16px;padding:25px;display:flex;gap:20px;align-items:center;margin-bottom:25px}.playlist-cover{width:105px;height:105px;border-radius:12px;background:linear-gradient(135deg,#bd9cff,#58458c);display:grid;place-items:center;font-size:38px}.playlist-hero h2{margin:8px 0;font-size:23px}.playlist-hero p{color:#aaa4b4;font-size:11px}
@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:850px){.sidebar{width:205px}.hero-art{opacity:.65;right:-6%;width:48%}.player{grid-template-columns:1fr 1.3fr;padding:0 18px}.player-right{display:none}.content{padding-left:4%;padding-right:4%}}
@media(max-width:620px){.app-shell{min-height:calc(100vh - 82px)}.sidebar{width:62px;padding:20px 8px 100px}.brand{margin:0 4px 40px}.brand>span:last-child,.nav-label,.nav-item:not(.active),.nav-item{font-size:0}.nav-item{justify-content:center;padding:0;height:44px}.nav-item span{font-size:20px}.side-divider,.playlist-head,.playlist-nav,.sidebar-bottom{display:none}.topbar{height:70px;padding:0 14px;gap:10px}.history{display:none}.search{width:100%;height:38px}.search kbd{display:none}.upload-btn{font-size:0;padding:9px 12px}.upload-btn:first-letter{font-size:16px}.top-actions{gap:8px}.avatar{width:30px;height:30px}.content{padding:20px 14px 115px}.hero{min-height:300px;padding:28px 22px}.hero h1{font-size:36px}.hero-art{width:53%;right:-16%;opacity:.48}.hero p{max-width:200px;line-height:1.7}.section{margin-top:32px}.feature-grid{grid-template-columns:1fr;gap:9px}.feature-card{height:105px;padding:14px 17px}.feature-kicker{margin-bottom:9px}.feature-icon{font-size:22px}.section-note{display:none}.track-row{grid-template-columns:22px 34px minmax(0,1fr) 40px 25px;gap:8px;padding:9px 3px}.track-cover{width:34px;height:34px}.track-album{display:none}.player{height:82px;grid-template-columns:1fr 1fr;padding:0 12px}.mini-cover{width:40px;height:40px}.now-playing{gap:8px}.now-meta b{font-size:10px}.now-meta small{font-size:9px}.like-btn{font-size:18px}.controls{gap:13px}.controls button{font-size:14px}.controls .play-main{width:31px;height:31px}.progress-row{gap:6px}.bottom-note{font-size:7px}.bottom-note span{display:none}}