.login-page{position:relative;height:100vh;overflow:hidden;background:#000}.slideshow-container{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;opacity:0;transition:opacity .6s ease}.slideshow-container.slideshow-ready{opacity:1}.album-slide{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity 1.5s ease}.album-slide--visible{opacity:1}.album-slide__bg{position:absolute;top:-60px;right:-60px;bottom:-60px;left:-60px;background-size:cover;background-position:center;filter:blur(80px) brightness(.5) saturate(1.3)}.overlay{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;gap:48px;padding:0 8vw}.overlay__top{display:flex;align-items:center;justify-content:space-between;padding:28px 40px;border-radius:24px;border:.5px solid rgba(255,255,255,.5);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);box-shadow:0 1px 4px #0000000f,inset 0 .5px #fff9;transition:background 1.5s ease,border-color 1.5s ease;max-width:720px;gap:32px}.overlay__bottom{display:flex;flex-direction:column;align-items:center;justify-content:center}.brand-title{font-size:2.8125rem;font-weight:600;letter-spacing:-.02em;line-height:1.15;margin:0;transition:color 1.5s ease}.album-info{margin:20px 0 0;width:420px;text-align:center}.album-info__title{color:#fff;font-size:1rem;font-weight:600;margin:0 0 4px;text-shadow:0 1px 8px rgba(0,0,0,.3)}.album-info__artist{color:#ffffffb3;font-size:.875rem;font-weight:400;margin:0;text-shadow:0 1px 8px rgba(0,0,0,.3)}.login-button{color:#000;border:.5px solid rgba(255,255,255,.5);border-radius:980px;padding:16px 32px;font-size:1.125rem;font-family:inherit;font-weight:500;white-space:nowrap;cursor:pointer;backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);box-shadow:0 1px 4px #0000000f,inset 0 .5px #fff9;transition:background 1.5s ease,border-color 1.5s ease,color 1.5s ease,transform .1s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent;flex-shrink:0}.login-button:hover{filter:brightness(1.15);box-shadow:0 2px 8px #00000014,inset 0 .5px #ffffffb3}.login-button:active{transform:scale(.97)}.album-carousel{position:relative;width:420px;height:420px}.carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:36px;height:36px;border-radius:50%;border:.5px solid rgba(255,255,255,.4);background:#ffffff26;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fffc;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.carousel-arrow--prev{left:-654.5px}.carousel-arrow--next{right:-654.5px}.carousel-arrow:hover{background:#ffffff4d}.carousel-arrow:active{transform:translateY(-50%) scale(.92)}.album-carousel__card{position:absolute;top:0;left:0;width:420px;height:420px;object-fit:contain;border-radius:8px;box-shadow:0 8px 32px #0006;transition:transform .8s cubic-bezier(.25,.1,.25,1),opacity .8s cubic-bezier(.25,.1,.25,1);-webkit-user-select:none;user-select:none;pointer-events:none}@media (max-width: 768px){.overlay__top{flex-direction:column;align-items:flex-start;gap:16px;padding:20px 24px;border-radius:20px}.album-carousel,.album-carousel__card{width:240px;height:240px}.album-info{width:240px}.brand-title{font-size:1.5rem}.login-button{min-height:44px}.carousel-arrow{width:44px;height:44px}}.album-background{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0;overflow:hidden;transition:z-index 0s}.album-images{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-auto-rows:120px;gap:0;height:200vh;width:calc(100% + 120px);margin-left:-60px;animation:scrollDown 90s linear infinite}.album-image-container{width:100%;height:100%;overflow:hidden}.album-art{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .6s ease}.album-art.loaded{opacity:1}@keyframes scrollDown{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.album-background.interactive{z-index:2;overflow-y:auto;-webkit-overflow-scrolling:touch}.month-separator{background:#fff;color:#000;font-size:22px;font-weight:800;letter-spacing:-.01em;padding:20px 24px;line-height:1}.album-background.interactive .album-images{animation:none;height:auto;width:100%;margin-left:0}.interactive-tile{position:relative;border:none;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.interactive-tile .album-art{transition:transform .3s cubic-bezier(.4,0,.2,1)}.interactive-tile:hover .album-art{transform:scale(1.06)}.tile-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#00000080;opacity:0;transition:opacity .25s cubic-bezier(.4,0,.2,1)}.interactive-tile:hover .tile-overlay{opacity:1}.tile-play{width:36px;height:36px;border-radius:50%;background:#fff3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;margin-bottom:auto;margin-top:auto;transition:background .2s}.tile-play.playing{background:#ffffff59}.tile-play.error{background:#ff505066}.tile-info{position:absolute;bottom:0;left:0;right:0;padding:20px 8px 6px;background:linear-gradient(transparent,#000000bf);display:flex;flex-direction:column;gap:1px}.tile-track{color:#fff;font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-artist{color:#ffffffa6;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (hover: none){.tile-overlay{opacity:1;background:#0003}.tile-play{display:none}}@media (max-width: 768px){.album-images{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-auto-rows:100px;width:calc(100% + 100px);margin-left:-50px}.album-background.interactive .album-images{width:100%;margin-left:0}}@media (max-width: 480px){.album-images{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));grid-auto-rows:80px;width:calc(100% + 80px);margin-left:-40px;animation-duration:60s}.album-background.interactive .album-images{width:100%;margin-left:0;animation:none}}.song-cards-grid{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;padding:16px 0 8px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none}.song-cards-grid::-webkit-scrollbar{display:none}.song-card{flex:0 0 auto;width:156px;scroll-snap-align:start;opacity:0;transform:translateY(12px) scale(.96);animation:songCardIn .45s cubic-bezier(.22,1,.36,1) forwards}@keyframes songCardIn{to{opacity:1;transform:translateY(0) scale(1)}}.song-card-art-wrapper{position:relative;width:156px;height:156px;border-radius:4px;overflow:hidden;background:#0000000a;box-shadow:0 2px 8px #00000014,0 1px 2px #0000000a;transition:transform .3s cubic-bezier(.22,1,.36,1),box-shadow .3s ease}.song-card-art-wrapper:hover{transform:scale(1.03);box-shadow:0 8px 24px #00000024,0 2px 6px #0000000f}.song-card-skeleton{width:100%;height:100%;background:linear-gradient(110deg,#0000000a 30%,#00000014,#0000000a 70%);background-size:200% 100%;animation:shimmer 1.4s ease-in-out infinite;border-radius:4px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.song-card-art{width:100%;height:100%;object-fit:cover;display:block;animation:artFadeIn .35s ease-out}@keyframes artFadeIn{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.song-card-play-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000;border:none;cursor:pointer;opacity:0;transition:opacity .25s ease,background .25s ease;padding:0;-webkit-tap-highlight-color:transparent}.song-card-art-wrapper:hover .song-card-play-overlay,.song-card-play-overlay--active{opacity:1;background:#00000059;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.song-card-play-overlay svg{filter:drop-shadow(0 2px 8px rgba(0,0,0,.3));transition:transform .2s cubic-bezier(.22,1,.36,1)}.song-card-play-overlay:hover svg{transform:scale(1.15)}.song-card-play-overlay:active svg{transform:scale(.95)}.song-card-spinner{display:block;width:24px;height:24px;border:2.5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:songCardSpin .65s linear infinite}@keyframes songCardSpin{to{transform:rotate(360deg)}}.song-card-error-icon{font-size:20px;font-weight:700;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.3)}.song-card-info{padding:8px 2px 0;display:flex;flex-direction:column;gap:1px}.song-card-title{font-size:14px;font-weight:600;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}.song-card-artist{font-size:13px;font-weight:400;color:#000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 480px){.song-card{width:130px}.song-card-art-wrapper{width:130px;height:130px}.song-cards-grid{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}}@media (hover: none) and (pointer: coarse){.song-card-art-wrapper:hover{transform:none;box-shadow:0 2px 8px #00000014,0 1px 2px #0000000a}.song-card-art-wrapper:active{transform:scale(.97)}.song-card-play-overlay{opacity:1;background:#00000026}}.chat-panel-container{padding:0;color:#000;display:flex;flex-direction:column;min-height:0;flex:1}.predefined-buttons{display:flex;justify-content:flex-start;gap:8px;margin-bottom:24px;flex-wrap:wrap}.predefined-buttons button{background:linear-gradient(135deg,#ffffff8c,#ffffff59);border:.5px solid rgba(255,255,255,.5);border-radius:980px;font-size:13px;font-family:inherit;font-weight:500;color:#000;padding:8px 18px;cursor:pointer;backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);box-shadow:0 1px 4px #0000000f,inset 0 .5px #fff9;transition:background .2s ease,transform .1s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent}.predefined-buttons button:hover{background:linear-gradient(135deg,#ffffffb3,#ffffff80);box-shadow:0 2px 8px #00000014,inset 0 .5px #ffffffb3}.predefined-buttons button:active{transform:scale(.97)}.conversation{padding:0 0 24px;min-height:200px;max-height:60vh;overflow-y:auto;-webkit-overflow-scrolling:touch;margin-bottom:20px;border-bottom:1px solid rgba(0,0,0,.08)}.message.user{text-align:right;color:#000;margin-bottom:12px;font-size:.95em}.message.assistant{text-align:left;color:#000;margin-bottom:12px;font-size:.95em;line-height:1.6}.chat-loading{margin-bottom:12px;display:flex;align-items:center;height:24px}.chat-loading svg{color:#000;animation:chat-spin 1.2s ease-in-out infinite}@keyframes chat-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chat-input-form{display:flex;gap:12px;align-items:center;margin:0 -32px -12px;padding:0 12px 12px}.chat-input-form input{flex:1;border:.5px solid rgba(255,255,255,.45);border-radius:980px;padding:12px 20px;font-size:15px;font-family:inherit;color:#000;background:linear-gradient(135deg,#ffffff80,#ffffff4d);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);box-shadow:0 1px 4px #0000000d,inset 0 .5px #ffffff80;outline:none;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.chat-input-form input:focus{border-color:#fff9;background:linear-gradient(135deg,#ffffffa6,#ffffff73);box-shadow:0 2px 8px #00000014,inset 0 .5px #ffffffb3}.chat-input-form button{background:#000;color:#fff;border:none;border-radius:980px;font-size:13px;font-family:inherit;font-weight:500;padding:12px 24px;cursor:pointer;transition:background .2s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.chat-input-form button:hover{background:#333}.chat-input-form button:active{transform:scale(.96)}@media (max-width: 768px){.chat-input-form{margin:0 -24px -12px}}@media (max-width: 480px){.predefined-buttons{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-left:-16px;margin-right:-16px;padding:0 16px}.predefined-buttons::-webkit-scrollbar{display:none}.predefined-buttons button{flex-shrink:0;min-height:44px}.conversation{flex:1;max-height:none;min-height:0}.chat-input-form{margin:0 -16px;padding:12px 16px calc(12px + var(--sab));position:sticky;bottom:0;flex-shrink:0;background:linear-gradient(180deg,#ffffff8c,#ffffffbf);backdrop-filter:blur(16px) saturate(160%);-webkit-backdrop-filter:blur(16px) saturate(160%);border-top:.5px solid rgba(255,255,255,.4)}.chat-input-form input{font-size:16px}}.genre-search,.genre-search-input-wrap{position:relative}.genre-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:#00000059;pointer-events:none}.genre-search-input{width:100%;box-sizing:border-box;padding:10px 16px 10px 40px;font-size:14px;font-family:inherit;font-weight:500;color:#000;border:.5px solid rgba(255,255,255,.45);border-radius:980px;background:linear-gradient(135deg,#ffffff80,#ffffff4d);backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);box-shadow:0 1px 4px #0000000f,inset 0 .5px #fff9;outline:none;transition:box-shadow .2s ease,border-color .2s ease;-webkit-tap-highlight-color:transparent}.genre-search-input:focus{border-color:#00000026;box-shadow:0 2px 8px #00000014,inset 0 .5px #ffffffb3}.genre-search-input:disabled{opacity:.5;cursor:not-allowed}.genre-search-input::placeholder{color:#00000059;font-weight:400}.genre-search-dropdown{margin:0;padding:6px;list-style:none;box-sizing:border-box;max-height:272px;overflow-y:auto;border-radius:16px;background:linear-gradient(135deg,#ffffffd9,#ffffffbf);backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);border:.5px solid rgba(255,255,255,.5);box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f,inset 0 .5px #fffc;z-index:9999;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .15s ease,transform .15s ease}.genre-search-dropdown--open{opacity:1;transform:translateY(0);pointer-events:auto}.genre-search-item{display:flex;align-items:center;justify-content:space-between;height:44px;padding:0 12px;margin:0 0 2px;border-radius:10px;font-size:14px;font-weight:450;color:#000;cursor:pointer;transition:background .1s ease;-webkit-tap-highlight-color:transparent}.genre-search-item--highlight{background:#0000000f}.genre-search-item--selected{font-weight:550}.genre-search-check{font-size:14px;color:#000}.genre-search-empty{display:flex;align-items:center;height:44px;padding:0 12px;font-size:14px;color:#0006;font-style:italic}@media (max-width: 480px){.genre-search-input{font-size:16px;min-height:44px}.genre-search-item{min-height:44px}}.discover-panel-container{padding:0;color:#000}.discover-section{margin-bottom:20px}.discover-label{display:block;font-size:12px;font-weight:600;letter-spacing:.02em;color:#000;margin-bottom:8px}.discover-pills{display:flex;gap:8px;flex-wrap:wrap}.discover-pill{background:linear-gradient(135deg,#ffffff8c,#ffffff59);border:.5px solid rgba(255,255,255,.45);border-radius:980px;font-size:13px;font-family:inherit;font-weight:500;color:#000;padding:8px 18px;cursor:pointer;backdrop-filter:blur(12px) saturate(150%);-webkit-backdrop-filter:blur(12px) saturate(150%);box-shadow:0 1px 4px #0000000f,inset 0 .5px #fff9;transition:background .2s ease,color .2s ease,transform .1s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent}.discover-pill:hover{background:linear-gradient(135deg,#ffffffb3,#ffffff80);box-shadow:0 2px 8px #00000014,inset 0 .5px #ffffffb3}.discover-pill:active{transform:scale(.97)}.discover-pill.selected{background:#000;color:#fff;border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 2px 8px #00000026}.discover-pill:disabled{opacity:.5;cursor:not-allowed}.discover-button{background:#000;color:#fff;border:none;border-radius:980px;font-size:15px;font-family:inherit;font-weight:500;padding:12px 32px;cursor:pointer;transition:background .2s ease,transform .1s ease;margin:0 -20px;-webkit-tap-highlight-color:transparent}.discover-button:hover{background:#333}.discover-button:active{transform:scale(.97)}.discover-button:disabled{opacity:.5;cursor:not-allowed}.discover-response{padding:20px 0 24px;min-height:200px;max-height:60vh;overflow-y:auto;-webkit-overflow-scrolling:touch;border-top:1px solid rgba(0,0,0,.1);font-size:.95em;line-height:1.6;color:#000}@media (max-width: 480px){.discover-pills{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;margin-left:-16px;margin-right:-16px;padding:0 16px}.discover-pills::-webkit-scrollbar{display:none}.discover-pill{flex-shrink:0;min-height:44px;display:inline-flex;align-items:center}.discover-button{width:100%;margin:0;min-height:44px}}.dashboard-container{position:relative;min-height:100vh;min-height:100dvh;display:flex;justify-content:center;padding:40px 24px}.dashboard-loading{text-align:center;padding:20px;font-size:1.2em;color:#000}.chat-container{position:relative;z-index:1;width:100%;max-width:640px;padding:40px 32px 12px;text-align:left;align-self:flex-start;background:linear-gradient(135deg,#ffffff73,#ffffff2e,#ffffff4d);backdrop-filter:blur(20px) saturate(180%) brightness(1.08);-webkit-backdrop-filter:blur(20px) saturate(180%) brightness(1.08);border-radius:24px;border:.5px solid rgba(255,255,255,.45);box-shadow:0 8px 32px #0000001a,0 2px 8px #0000000d,inset 0 1px #fff9,inset 0 -.5px #ffffff26;overflow:hidden;transition:opacity .4s cubic-bezier(.4,0,.2,1),transform .4s cubic-bezier(.4,0,.2,1)}.chat-container.chat-hidden{opacity:0;transform:scale(.94) translateY(10px);pointer-events:none}.chat-container:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#fff3,#fff0);border-radius:24px 24px 0 0;pointer-events:none;z-index:0}.chat-container>*{position:relative;z-index:1}.tab-bar{display:flex;justify-content:flex-start;border-bottom:1px solid rgba(0,0,0,.1);padding-bottom:0;gap:32px;margin-bottom:32px}.tab-button{background:none;border:none;border-bottom:2px solid transparent;padding:12px 0;font-size:13px;font-family:inherit;font-weight:500;letter-spacing:.01em;color:#00000073;cursor:pointer;margin-bottom:-1px;transition:color .2s ease;-webkit-tap-highlight-color:transparent}.tab-button:hover{color:#000c}.tab-button.active{color:#000;font-weight:600;border-bottom:2px solid #000}.device-picker-spacer{flex:1}.library-button{background:#000;color:#fff;border:none;border-radius:980px;font-size:13px;font-family:inherit;font-weight:500;letter-spacing:-.01em;padding:10px 20px;cursor:pointer;align-self:center;white-space:nowrap;transition:background .2s ease,transform .1s ease;-webkit-tap-highlight-color:transparent}.library-button:hover{background:#333}.library-button:active{transform:scale(.96)}.library-close-button{position:fixed;top:16px;right:16px;z-index:3;width:40px;height:40px;border:none;border-radius:50%;background:#b4b4b440;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#ffffffd9;font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;animation:fadeIn .3s cubic-bezier(.4,0,.2,1) both}.library-close-button:hover{background:#ffffff4d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (max-width: 768px){.dashboard-container{padding:24px 16px}.chat-container{max-width:100%;padding:28px 24px 12px;border-radius:20px}.tab-button{min-height:44px}}@media (max-width: 480px){.dashboard-container{padding:0;padding-top:var(--sat);align-items:stretch;min-height:100dvh}.chat-container{display:flex;flex-direction:column;max-width:100%;padding:16px 16px 0;border-radius:0;align-self:stretch;flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.tab-bar{gap:0;flex-shrink:0}.tab-button{flex:1;text-align:center;min-height:44px}.library-close-button{top:calc(8px + var(--sat));right:8px}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;--sat: env(safe-area-inset-top);--sar: env(safe-area-inset-right);--sab: env(safe-area-inset-bottom);--sal: env(safe-area-inset-left)}body,html,#root{margin:0;padding:0;height:100%;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;background:transparent;color:#000;line-height:1.5;-webkit-font-smoothing:antialiased}body{overflow-x:hidden;overscroll-behavior:none}*{scrollbar-width:none}*::-webkit-scrollbar{display:none}::selection{background:#1db954;color:#fff}
