/* =========================================================================
 * N Music PRO - Web Audio Player
 * Desarrollador / Empresa : Ramly
 * Autor                   : Nilson Tongo
 * Contacto                : ramly4000300@gmail.com
 * Facebook                : https://www.facebook.com/ramly04
 * Año                     : 2026
 *
 * AVISO LEGAL:
 * Todos los derechos reservados. Prohibida la copia, clonación,
 * distribución o uso no autorizado de este código fuente.
 * ========================================================================= */
@import url('https://fonts.googleapis.com/css2?family=SF+Pro+Display:wght@300;400;500;600;700;800&display=swap');:root{--n-ease:cubic-bezier(0.16,1,0.3,1);--n-spring:cubic-bezier(0.34,1.56,0.64,1)}body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Arial,sans-serif;user-select:none;-webkit-user-select:none;overflow:hidden;background-color:#000}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.4)}.ambient-bg{position:fixed;top:-25%;left:-25%;width:150%;height:150%;z-index:0;filter:blur(80px) brightness(0.8);transition:background-color 2.5s var(--n-ease);pointer-events:none;opacity:.85;will-change:transform}.blob{position:absolute;border-radius:50%;mix-blend-mode:screen;animation:float 26s infinite alternate ease-in-out;transition:background-color 2s ease;will-change:transform}@keyframes float{0%{transform:translate(0px,0px) scale(1)}50%{transform:translate(50px,-30px) scale(1.1)}100%{transform:translate(-30px,40px) scale(0.95)}}input[type=range]{-webkit-appearance:none;appearance:none;background:transparent}input[type=range]:focus{outline:0}input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;cursor:pointer;background:rgba(255,255,255,0.25);border-radius:9999px;transition:height .3s var(--n-ease),background .2s}input[type=range]:hover::-webkit-slider-runnable-track{height:8px;background:rgba(255,255,255,0.5)}input[type=range]::-webkit-slider-thumb{height:14px;width:14px;border-radius:50%;background:#fff;cursor:pointer;-webkit-appearance:none;margin-top:-5px;box-shadow:0 0 10px rgba(255,255,255,0.8),0 2px 6px rgba(0,0,0,0.6);opacity:1;transition:transform .3s var(--n-spring),background-color .15s}input[type=range]:hover::-webkit-slider-thumb,input[type=range]:active::-webkit-slider-thumb{transform:scale(1.4);background:#fa233b}.n-glass{background:rgba(25,25,30,0.82);backdrop-filter:blur(40px) saturate(180%);-webkit-backdrop-filter:blur(40px) saturate(180%);border:1px solid rgba(255,255,255,0.15)}.n-glass-card{background:rgba(255,255,255,0.06);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.08);transition:transform .35s var(--n-ease),background-color .3s,border-color .3s,box-shadow .35s}.n-glass-card:hover{transform:translateY(-4px) scale(1.015);box-shadow:0 15px 30px -5px rgba(0,0,0,0.5)}.lyric-line{font-family:inherit;font-size:1.85rem;transition:opacity .4s var(--n-ease),transform .4s var(--n-ease),color .3s var(--n-ease),text-shadow .3s var(--n-ease);transform-origin:center center;will-change:transform,opacity;font-weight:800;line-height:1.38;width:100%;max-width:82%;margin-left:auto;margin-right:auto;box-sizing:border-box;word-wrap:break-word;overflow-wrap:break-word;padding-left:.5rem;padding-right:.5rem;display:block}.lyric-line.active{color:#fff;text-shadow:0 8px 40px rgba(255,255,255,0.9),0 0 22px rgba(250,35,59,0.55);transform:scale(1.16) translateY(-3px);opacity:1}.lyric-line.inactive{color:rgba(255,255,255,0.38);opacity:.42;transform:scale(0.85)}.lyric-line.inactive:hover{color:rgba(255,255,255,0.88);cursor:pointer;transform:scale(0.92);opacity:.88}.lyrics-focused .lyric-line{max-width:78%}.lyrics-focused .lyric-line.active{transform:scale(1.22) translateY(-4px);text-shadow:0 10px 55px rgba(255,255,255,0.95),0 0 30px rgba(250,35,59,0.65)}.lyrics-focused .lyric-line.inactive{transform:scale(0.88);opacity:.38}.lyrics-mask{mask-image:linear-gradient(to bottom,transparent 0,black 15%,black 85%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,black 15%,black 85%,transparent 100%);scroll-behavior:smooth}.panel-transition{transition:opacity .45s var(--n-ease),transform .45s var(--n-ease);will-change:opacity,transform}.panel-hidden{opacity:0!important;transform:scale(0.94) translateY(18px)!important;pointer-events:none!important;display:none!important}.panel-visible{opacity:1!important;transform:scale(1) translateY(0)!important;pointer-events:auto!important;display:flex!important}@keyframes panelFadeIn{0%{opacity:0;transform:scale(0.94) translateY(18px)}100%{opacity:1;transform:scale(1) translateY(0)}}.panel-anim{animation:panelFadeIn .45s var(--n-ease) forwards}@keyframes effectSwitchAnim{0%{opacity:.2;transform:scale(0.96)}100%{opacity:1;transform:scale(1)}}.animate-effect-switch{animation:effectSwitchAnim .35s var(--n-ease) forwards}@keyframes menuPop{0%{opacity:0;transform:translateY(-8px) scale(0.94)}100%{opacity:1;transform:translateY(0) scale(1)}}.animate-menu-pop{animation:menuPop .28s var(--n-spring) forwards}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@keyframes popIn{0%{opacity:0;transform:scale(0.85) translateY(30px)}70%{transform:scale(1.01) translateY(-2px)}100%{opacity:1;transform:scale(1) translateY(0)}}@keyframes popOut{0%{opacity:1;transform:scale(1) translateY(0)}100%{opacity:0;transform:scale(0.9) translateY(20px)}}@keyframes overlayFadeIn{0%{opacity:0}100%{opacity:1}}@keyframes tabSlideIn{0%{opacity:0;transform:translateY(14px) scale(0.99)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes coverGlow{0%,100%{box-shadow:0 20px 40px -10px rgba(250,35,59,0.35);transform:scale(1)}50%{box-shadow:0 28px 60px -5px rgba(250,35,59,0.6);transform:scale(1.02)}}.animate-tab-in{animation:tabSlideIn .38s var(--n-ease) forwards}.animate-modal-pop{animation:popIn .4s var(--n-spring) forwards}.animate-modal-pop-out{animation:popOut .28s var(--n-ease) forwards}.animate-overlay-in{animation:overlayFadeIn .35s var(--n-ease) forwards}.playing-cover-glow{animation:coverGlow 4.5s infinite ease-in-out}.btn-spring{transition:transform .28s var(--n-spring),background-color .2s,box-shadow .25s,opacity .2s,color .2s}.btn-spring:hover{transform:translateY(-2px) scale(1.05)}.btn-spring:active{transform:scale(0.9)!important}.sidebar-item{transition:transform .25s var(--n-ease),background-color .2s,color .2s}.sidebar-item:hover{transform:translateX(4px)}.sidebar-item:active{transform:scale(0.96)}.song-row{transition:transform .2s var(--n-ease),background-color .18s,color .18s}.song-row:hover{transform:translateX(3px) scale(1.002)}.player-bar-visible{transform:translateY(0) scale(1);opacity:1;pointer-events:auto;transition:transform .48s var(--n-spring),opacity .35s var(--n-ease)}.player-bar-hidden{transform:translateY(120px) scale(0.85);opacity:0;pointer-events:none;transition:transform .48s var(--n-ease),opacity .35s var(--n-ease)}#miniPlayerCircle{position:fixed;width:80px;height:80px;border-radius:50%;background:rgba(20,20,25,0.88);backdrop-filter:blur(25px) saturate(180%);-webkit-backdrop-filter:blur(25px) saturate(180%);border:1.5px solid rgba(255,255,255,0.2);z-index:60;box-shadow:0 16px 40px rgba(0,0,0,0.65),0 0 20px rgba(250,35,59,0.2);display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform .48s var(--n-spring),opacity .32s var(--n-ease),border-color .3s;cursor:grab;will-change:transform,opacity}#miniPlayerCircle:active{cursor:grabbing}#miniPlayerCircle:hover{border-color:rgba(250,35,59,0.7);box-shadow:0 20px 45px rgba(0,0,0,0.75),0 0 28px rgba(250,35,59,0.45)}.mini-circle-visible{transform:scale(1);opacity:1;pointer-events:auto}.mini-circle-hidden{transform:scale(0);opacity:0;pointer-events:none}.no-gpu .ambient-bg,.no-gpu .n-glass,.no-gpu .n-glass-card,.no-gpu #miniPlayerCircle{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important}@keyframes noticeFadeOut{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(0.95)}}.animate-notice-fade{animation:noticeFadeOut .5s var(--n-ease) forwards}