@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";:root{--bg-color: #0d0d0d;--panel-bg: rgba(255, 255, 255, .05);--accent-color: #7b2ff7;--accent-gradient: linear-gradient(135deg, #7b2ff7 0%, #a163f9 100%);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .6);--border-radius-lg: 24px;--border-radius-md: 16px;--glass-border: rgba(255, 255, 255, .1);--card-shadow: 0 8px 32px 0 rgba(0, 0, 0, .8)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{margin:0;padding:0;background-color:var(--bg-color);color:var(--text-primary);font-family:Outfit,sans-serif;display:flex;justify-content:center;align-items:center;min-height:100vh;overflow-x:hidden}#root{width:100%;display:flex;justify-content:center}.app-shell{width:100%;max-width:420px;height:min(850px,90vh);position:relative;background:var(--bg-color);border-radius:var(--border-radius-lg);overflow:hidden;box-shadow:var(--card-shadow);border:1px solid var(--glass-border)}button{cursor:pointer;border:none;background:none;font-family:inherit;transition:all .2s ease}button:active{transform:scale(.95)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#fff3}.now-playing{height:100%;display:flex;flex-direction:column;padding:12px;background:linear-gradient(180deg,#7b2ff726,#0d0d0d00);position:relative;overflow:hidden}.now-playing:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,#7b2ff71a,#0d0d0d00 70%);z-index:-1;filter:blur(80px)}.top-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;position:relative;z-index:10}.title{font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-secondary)}.icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--panel-bg);color:var(--text-primary);border:1px solid var(--glass-border)}.album-art-container{width:100%;display:flex;justify-content:center;margin:0 auto}.album-art{width:350px;height:350px;margin-bottom:16px;border-radius:var(--border-radius-lg);object-fit:cover;box-shadow:0 20px 40px #00000080;transition:transform .5s cubic-bezier(.175,.885,.32,1.275)}.progress-container{width:100%;margin-top:auto}.progress-bar-wrapper{position:relative;width:100%;height:6px;background:#ffffff1a;border-radius:3px;cursor:pointer}.progress-bar-fill{position:absolute;top:0;left:0;height:100%;background:var(--accent-gradient);border-radius:3px;box-shadow:0 0 10px #7b2ff780}.progress-bar-wrapper input[type=range]{position:absolute;top:-5px;left:0;width:100%;height:16px;opacity:0;cursor:pointer;z-index:3}.progress-time{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;font-weight:500;color:var(--text-secondary)}.current-time{color:var(--accent-color)}.total-duration{opacity:.8}.controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:60px}.control-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:50%;color:var(--text-primary);opacity:.8;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.control-btn:hover{opacity:1;transform:scale(1.1);background:#ffffff1a}.prev-btn:hover{color:#ff0080;text-shadow:0 0 10px #ff0080}.next-btn:hover{color:#00d2ff;text-shadow:0 0 10px #00d2ff}.list-btn:hover{color:#e1ff00;text-shadow:0 0 10px #e1ff00}.heart-btn:hover{color:#ff4d4d;text-shadow:0 0 10px #ff4d4d}.play-btn-wrapper{position:relative;width:96px;height:96px;display:flex;align-items:center;justify-content:center}.playing-ring{position:absolute;top:50%;left:50%;width:88px;height:88px;transform:translate(-50%,-50%);border-radius:50%;border:4px solid transparent;background:linear-gradient(var(--bg-color),var(--bg-color)) padding-box,linear-gradient(90deg,#ff0080,#7b2ff7,#00d2ff,#ff0080) border-box;background-size:300% 300%;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;-webkit-mask-composite:destination-out;animation:rotate-gradient 3s linear infinite;opacity:0;transition:opacity .5s ease;z-index:1}.playing-ring.active{opacity:1;animation:rotate-gradient 3s linear infinite,glow-pulse-button 2s ease-in-out infinite alternate}@keyframes rotate-gradient{0%{transform:translate(-50%,-50%) rotate(0);background-position:0% 50%}50%{background-position:100% 50%}to{transform:translate(-50%,-50%) rotate(360deg);background-position:0% 50%}}@keyframes glow-pulse-button{0%{filter:drop-shadow(0 0 5px rgba(123,47,247,.4));transform:translate(-50%,-50%) scale(.98)}to{filter:drop-shadow(0 0 15px rgba(123,47,247,.6));transform:translate(-50%,-50%) scale(1.05)}}.play-pause-btn{width:72px;height:72px;border-radius:50%;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 16px #7b2ff74d;transition:all .3s ease;z-index:2}.play-pause-btn:hover{box-shadow:0 0 30px #7b2ff799;transform:scale(1.1)}.play-pause-btn svg{fill:#fff}.footer-actions{display:flex;justify-content:center}.open-list-btn{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;padding:10px 20px;background:var(--panel-bg);border-radius:20px;border:1px solid var(--glass-border);color:var(--text-secondary)}.open-list-btn:hover{color:var(--text-primary);background:#ffffff1a}.song-info{padding:14px}.song-info-name{overflow:hidden;text-overflow:ellipsis}.modal-backdrop{position:absolute;inset:0;background:#0006;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;justify-content:center;align-items:flex-end;z-index:1000;border-radius:var(--border-radius-lg)}.modal-sheet{width:100%;background:#121212fa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top-left-radius:var(--border-radius-lg);border-top-right-radius:var(--border-radius-lg);border:1px solid var(--glass-border);border-bottom:none;padding:24px;max-height:70%;display:flex;flex-direction:column;box-shadow:0 -10px 40px #000c;position:relative;z-index:1001}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-header h3{margin:0;font-size:18px;font-weight:700;color:var(--text-primary)}.close-btn{color:var(--text-secondary)}.song-list{overflow-y:auto;flex:1;padding-right:4px}.song-row{display:flex;align-items:center;gap:16px;padding:12px;border-radius:var(--border-radius-md);margin-bottom:8px;transition:all .2s ease;cursor:pointer}.song-row:hover{background:#ffffff0d}.song-row.active{background:#7b2ff733;border:1px solid rgba(123,47,247,.4);box-shadow:0 4px 20px #7b2ff733}.song-row.active .song-name{color:var(--accent-color);font-weight:700}.song-row.active .song-artist{color:#7b2ff7cc}.song-index{width:24px;font-size:14px;font-weight:600;color:var(--text-secondary);text-align:center}.song-row.active .song-index{color:var(--accent-color)}.song-details{flex:1;overflow:hidden}.song-name{font-size:15px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-artist{font-size:13px;color:var(--text-secondary)}.playing-indicator{display:flex;gap:2px;align-items:flex-end;height:12px}.bar{width:3px;background:var(--accent-color);border-radius:1px}
