.app{width:100vw;height:100vh;background-image:url(/img/background.png);background-size:cover;background-position:center;background-repeat:no-repeat;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.app.slideshow-bg{background-image:none;background-color:#000}.slideshow-container{position:absolute;top:0;left:0;right:0;bottom:0;z-index:0;display:flex;align-items:center;justify-content:center;background-color:#000}.slideshow-image{position:absolute;height:100%;width:auto;max-width:none;object-fit:contain;opacity:0;-webkit-transition:opacity 1s ease-in-out;transition:opacity 1s ease-in-out;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.slideshow-image.active{opacity:1}.loading{color:#fff;font-size:1.5rem;text-align:center;padding:2rem;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:20px;border:1px solid rgba(255,255,255,.2);z-index:1}.login-container{display:flex;align-items:center;justify-content:center;z-index:1}.login-button{background:linear-gradient(135deg,#1db954,#1ed760);color:#fff;border:none;padding:1rem 2.5rem;font-size:1.1rem;font-weight:600;border-radius:50px;cursor:pointer;transition:all .3s ease;box-shadow:0 8px 24px #1db9544d}.login-button:hover{transform:translateY(-2px);box-shadow:0 12px 32px #1db95466}.login-button:active{transform:translateY(0)}.fullscreen-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;z-index:900;opacity:0;pointer-events:none;overflow:hidden;-webkit-transition:opacity .8s ease-out;transition:opacity .8s ease-out;-webkit-transform:translateZ(0);transform:translateZ(0);will-change:opacity}.fullscreen-backdrop.visible{opacity:1}.fullscreen-cover-bg{position:absolute;top:-100px;left:-100px;right:-100px;bottom:-100px;background-size:cover;background-position:center;-webkit-filter:blur(100px) saturate(150%) brightness(.8);filter:blur(100px) saturate(150%) brightness(.8);-webkit-transform:scale(1.3) translateZ(0);transform:scale(1.3) translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.now-playing-wrapper{position:fixed;z-index:1000;display:flex;justify-content:center;align-items:center;bottom:2rem;left:50%;right:auto;top:auto;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px;will-change:transform,top,bottom,left,right}.now-playing-wrapper.expanded{top:0;left:0;right:0;bottom:0;-webkit-transform:translate3d(0,0,0);transform:translateZ(0);-webkit-transition:transform .7s cubic-bezier(.4,0,.2,1),top .7s cubic-bezier(.4,0,.2,1),left .7s cubic-bezier(.4,0,.2,1),right .7s cubic-bezier(.4,0,.2,1),bottom .7s cubic-bezier(.4,0,.2,1);transition:transform .7s cubic-bezier(.4,0,.2,1),top .7s cubic-bezier(.4,0,.2,1),left .7s cubic-bezier(.4,0,.2,1),right .7s cubic-bezier(.4,0,.2,1),bottom .7s cubic-bezier(.4,0,.2,1)}.now-playing-wrapper.collapsed{bottom:2rem;left:50%;right:auto;top:auto;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0);-webkit-transition:transform 1s cubic-bezier(.4,0,.2,1),top 1s cubic-bezier(.4,0,.2,1),left 1s cubic-bezier(.4,0,.2,1),right 1s cubic-bezier(.4,0,.2,1),bottom 1s cubic-bezier(.4,0,.2,1);transition:transform 1s cubic-bezier(.4,0,.2,1),top 1s cubic-bezier(.4,0,.2,1),left 1s cubic-bezier(.4,0,.2,1),right 1s cubic-bezier(.4,0,.2,1),bottom 1s cubic-bezier(.4,0,.2,1)}.now-playing{position:relative;display:flex;align-items:center;background:#ffffff40;-webkit-backdrop-filter:blur(40px) saturate(180%);backdrop-filter:blur(40px) saturate(180%);border:1px solid rgba(255,255,255,.3);box-shadow:0 8px 32px #0000004d,inset 0 1px #fff6,inset 0 -1px #ffffff1a;cursor:pointer;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:transform,width,padding,border-radius,flex-direction,gap}.now-playing-wrapper.expanded .now-playing{flex-direction:column;padding:1.5rem;gap:1.25rem;border-radius:24px;background:#ffffff38;-webkit-transition:padding .7s cubic-bezier(.4,0,.2,1),gap .7s cubic-bezier(.4,0,.2,1),border-radius .7s cubic-bezier(.4,0,.2,1),background .7s cubic-bezier(.4,0,.2,1);transition:padding .7s cubic-bezier(.4,0,.2,1),gap .7s cubic-bezier(.4,0,.2,1),border-radius .7s cubic-bezier(.4,0,.2,1),background .7s cubic-bezier(.4,0,.2,1)}.now-playing.no-glass{background:transparent!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:none!important;box-shadow:none!important}.now-playing-wrapper.collapsed .now-playing{flex-direction:row;width:50vw;padding:.75rem;gap:.75rem;border-radius:16px;-webkit-transition:width 1s cubic-bezier(.4,0,.2,1),padding 1s cubic-bezier(.4,0,.2,1),gap 1s cubic-bezier(.4,0,.2,1),border-radius 1s cubic-bezier(.4,0,.2,1);transition:width 1s cubic-bezier(.4,0,.2,1),padding 1s cubic-bezier(.4,0,.2,1),gap 1s cubic-bezier(.4,0,.2,1),border-radius 1s cubic-bezier(.4,0,.2,1)}.now-playing:hover{background:#fff3;box-shadow:0 12px 40px #0006,inset 0 1px #ffffff80,inset 0 -1px #ffffff1a}.album-cover{overflow:hidden;flex-shrink:0;box-shadow:0 4px 12px #0003;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden;will-change:width,height,border-radius,box-shadow}.now-playing-wrapper.collapsed .album-cover{width:56px;height:56px;border-radius:8px;-webkit-transition:width 1s cubic-bezier(.4,0,.2,1),height 1s cubic-bezier(.4,0,.2,1),border-radius 1s cubic-bezier(.4,0,.2,1),box-shadow 1s cubic-bezier(.4,0,.2,1);transition:width 1s cubic-bezier(.4,0,.2,1),height 1s cubic-bezier(.4,0,.2,1),border-radius 1s cubic-bezier(.4,0,.2,1),box-shadow 1s cubic-bezier(.4,0,.2,1)}.now-playing-wrapper.expanded .album-cover{width:280px;height:280px;border-radius:16px;box-shadow:0 16px 48px #0006;-webkit-transition:width .7s cubic-bezier(.4,0,.2,1),height .7s cubic-bezier(.4,0,.2,1),border-radius .7s cubic-bezier(.4,0,.2,1),box-shadow .7s cubic-bezier(.4,0,.2,1);transition:width .7s cubic-bezier(.4,0,.2,1),height .7s cubic-bezier(.4,0,.2,1),border-radius .7s cubic-bezier(.4,0,.2,1),box-shadow .7s cubic-bezier(.4,0,.2,1)}.album-cover img{width:100%;height:100%;object-fit:cover;display:block;-webkit-transform:translateZ(0);transform:translateZ(0)}.track-info{min-width:0;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.3);-webkit-transform:translateZ(0);transform:translateZ(0);will-change:text-align}.now-playing-wrapper.collapsed .track-info{flex:1;text-align:left;padding-right:.25rem;-webkit-transition:padding 1s cubic-bezier(.4,0,.2,1);transition:padding 1s cubic-bezier(.4,0,.2,1)}.now-playing-wrapper.expanded .track-info{text-align:center;width:100%;-webkit-transition:width .7s cubic-bezier(.4,0,.2,1);transition:width .7s cubic-bezier(.4,0,.2,1)}.track-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em;will-change:font-size,margin}.now-playing-wrapper.collapsed .track-title{font-size:1rem;margin-bottom:.25rem;-webkit-transition:font-size 1s cubic-bezier(.4,0,.2,1),margin 1s cubic-bezier(.4,0,.2,1);transition:font-size 1s cubic-bezier(.4,0,.2,1),margin 1s cubic-bezier(.4,0,.2,1)}.now-playing-wrapper.expanded .track-title{font-size:1.75rem;margin-bottom:.5rem;-webkit-transition:font-size .7s cubic-bezier(.4,0,.2,1),margin .7s cubic-bezier(.4,0,.2,1);transition:font-size .7s cubic-bezier(.4,0,.2,1),margin .7s cubic-bezier(.4,0,.2,1)}.track-artist{opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:400;will-change:font-size}.now-playing-wrapper.collapsed .track-artist{font-size:.875rem;-webkit-transition:font-size 1s cubic-bezier(.4,0,.2,1);transition:font-size 1s cubic-bezier(.4,0,.2,1)}.now-playing-wrapper.expanded .track-artist{font-size:1.125rem;-webkit-transition:font-size .7s cubic-bezier(.4,0,.2,1);transition:font-size .7s cubic-bezier(.4,0,.2,1)}.no-track{color:#fff;font-size:.95rem;text-shadow:0 2px 8px rgba(0,0,0,.3);padding:.5rem .25rem}.progress-bar{position:absolute;background:#ffffff1a;border-radius:2px;overflow:hidden;-webkit-transform:translateZ(0);transform:translateZ(0);will-change:bottom,left,right,height}.now-playing-wrapper.collapsed .progress-bar{bottom:4px;left:12px;right:12px;height:2px;-webkit-transition:bottom 1s cubic-bezier(.4,0,.2,1),left 1s cubic-bezier(.4,0,.2,1),right 1s cubic-bezier(.4,0,.2,1),height 1s cubic-bezier(.4,0,.2,1);transition:bottom 1s cubic-bezier(.4,0,.2,1),left 1s cubic-bezier(.4,0,.2,1),right 1s cubic-bezier(.4,0,.2,1),height 1s cubic-bezier(.4,0,.2,1)}.now-playing-wrapper.expanded .progress-bar{bottom:10px;left:1.5rem;right:1.5rem;height:3px;border-radius:3px;-webkit-transition:bottom .7s cubic-bezier(.4,0,.2,1),left .7s cubic-bezier(.4,0,.2,1),right .7s cubic-bezier(.4,0,.2,1),height .7s cubic-bezier(.4,0,.2,1);transition:bottom .7s cubic-bezier(.4,0,.2,1),left .7s cubic-bezier(.4,0,.2,1),right .7s cubic-bezier(.4,0,.2,1),height .7s cubic-bezier(.4,0,.2,1)}.progress-bar-fill{height:100%;background:#ffffff59;border-radius:2px;-webkit-transition:width .1s linear;transition:width .1s linear;-webkit-transform:translateZ(0);transform:translateZ(0)}.now-playing-container{position:fixed;bottom:2rem;left:50%;-webkit-transform:translate3d(-50%,0,0);transform:translate3d(-50%,0,0);z-index:1000}.now-playing-container .now-playing{width:50vw;flex-direction:row;padding:.75rem;gap:.75rem;border-radius:16px}.now-playing-container .album-cover{width:56px;height:56px;border-radius:8px}.now-playing-container .track-info{flex:1;text-align:left;padding-right:.25rem}.now-playing-container .track-title{font-size:1rem;margin-bottom:.25rem}.now-playing-container .track-artist{font-size:.875rem}.now-playing-container .progress-bar{bottom:4px;left:12px;right:12px;height:2px}.settings-page{width:100vw;min-height:100vh;min-height:-webkit-fill-available;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);padding:2rem;padding-bottom:calc(2rem + env(safe-area-inset-bottom));box-sizing:border-box;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;position:fixed;top:0;left:0;right:0;bottom:0}.settings-container{max-width:600px;margin:0 auto;padding-bottom:2rem}.shortcuts-grid{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;align-items:center}.shortcut-key{background:#ffffff26;color:#fff;padding:.25rem .5rem;border-radius:6px;font-family:monospace;font-size:.875rem;font-weight:600;text-align:center;min-width:2rem;border:1px solid rgba(255,255,255,.2)}.shortcut-desc{color:#fffc;font-size:.9rem}.settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.settings-header h1{color:#fff;font-size:1.5rem;font-weight:600;margin:0}.back-button,.reset-button{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;padding:.5rem 1rem;border-radius:8px;cursor:pointer;font-size:.875rem;-webkit-transition:all .2s ease;transition:all .2s ease}.back-button:hover,.reset-button:hover{background:#fff3}.reset-button{color:#ff6b6b;border-color:#ff6b6b4d}.reset-button:hover{background:#ff6b6b33}.settings-section{background:#ffffff14;border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;border:1px solid rgba(255,255,255,.1)}.settings-section h2{color:#fff;font-size:1.1rem;font-weight:600;margin:0 0 1.25rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.1)}.setting-item{margin-bottom:1.25rem}.setting-item:last-child{margin-bottom:0}.setting-item label{display:flex;justify-content:space-between;align-items:center;color:#ffffffe6;font-size:.95rem;margin-bottom:.5rem}.setting-item .value{color:#fff9;font-size:.875rem;font-family:monospace}.setting-item input[type=range]{width:100%;height:6px;border-radius:3px;background:#ffffff1a;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.setting-item input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:#4a90d9;cursor:pointer;border:2px solid white;box-shadow:0 2px 8px #0000004d}.setting-item input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#4a90d9;cursor:pointer;border:2px solid white;box-shadow:0 2px 8px #0000004d}.text-input{width:100%;padding:.75rem 1rem;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff;font-size:.95rem;outline:none;transition:all .2s ease;box-sizing:border-box}.text-input:focus{border-color:#4a90d9;background:#ffffff1f}.text-input::placeholder{color:#fff6}.color-input{width:100%;height:40px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;cursor:pointer;padding:4px}.color-input::-webkit-color-swatch-wrapper{padding:0}.color-input::-webkit-color-swatch{border-radius:4px;border:none}.settings-subheader{color:#fffc;font-size:.95rem;font-weight:500;margin:1.5rem 0 1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.button-group{display:flex;gap:.5rem}.button-group button{flex:1;padding:.6rem 1rem;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#ffffffb3;font-size:.875rem;cursor:pointer;-webkit-transition:all .2s ease;transition:all .2s ease}.button-group button:hover{background:#ffffff1a}.button-group button.active{background:#4a90d9;border-color:#4a90d9;color:#fff}.button-group.triple button{font-size:.8rem;padding:.5rem .75rem}.preview-section{background:linear-gradient(135deg,#4a90d933,#8a2be233)}.preview-player{display:flex;align-items:center;padding:.75rem;gap:.75rem;border-radius:16px;border:1px solid rgba(255,255,255,.3);position:relative;margin:0 auto;box-shadow:0 8px 32px #0000004d}.preview-cover{width:56px;height:56px;border-radius:8px;background:linear-gradient(135deg,#667eea,#764ba2);flex-shrink:0}.preview-info{flex:1;min-width:0}.preview-title{color:#fff;font-size:1rem;font-weight:600;margin-bottom:.25rem}.preview-artist{color:#ffffffb3;font-size:.875rem}.preview-progress{position:absolute;bottom:4px;left:12px;right:12px;height:2px;background:#ffffff1a;border-radius:2px;overflow:hidden}.preview-progress:after{content:"";position:absolute;left:0;top:0;height:100%;width:40%;background:#ffffff59;border-radius:2px}@media (max-width: 640px){.settings-page{padding:1rem}.settings-header h1{font-size:1.25rem}.back-button,.reset-button{padding:.4rem .75rem;font-size:.8rem}.settings-section{padding:1rem}.button-group.triple button{font-size:.7rem;padding:.4rem .5rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#root{width:100vw;height:100vh}
