@import url(https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Montserrat:wght@400;600;700;800;900&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#000;background-image:linear-gradient(#c084fc0d 1px,#0000 0),linear-gradient(90deg,#c084fc0d 1px,#0000 0);background-size:60px 60px;color:#f5f5f5;font-family:IBM Plex Mono,Courier New,monospace;margin:0;min-height:100vh}body,code{font-family:IBM Plex Mono,monospace}.App{flex-direction:column;min-height:100vh}.App,.ai-access-banner{display:flex;text-align:center}.ai-access-banner{align-items:center;background:#0a0a0a;border-bottom:1px solid #2a2a2a;color:#f5f5f5;flex-wrap:wrap;gap:15px;justify-content:center;padding:10px 20px;position:relative;z-index:1000}.ai-access-banner,.banner-text{font-family:IBM Plex Mono,monospace;font-size:.82rem}.banner-text{color:#888;font-weight:500}.contact-nihal-btn{background:#0000;border:1px solid #c084fc;border-radius:4px;color:#c084fc;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.78rem;font-weight:500;letter-spacing:1px;padding:6px 16px;text-transform:uppercase;transition:all .2s ease}.contact-nihal-btn:hover{background:#c084fc;color:#000}@media (max-width:768px){.ai-access-banner{flex-direction:column;gap:10px;padding:12px 15px}.banner-text{font-size:.9rem}.contact-nihal-btn{font-size:.85rem;padding:7px 18px}}.landing-link{left:15px;position:absolute;top:15px;z-index:1000}.back-to-landing-btn{align-items:center;background:#111;border:1px solid #2a2a2a;border-radius:6px;color:#c084fc;display:flex;font-family:IBM Plex Mono,monospace;font-size:.85rem;font-weight:600;gap:8px;letter-spacing:.5px;padding:8px 16px;text-decoration:none;transition:all .2s ease}.back-to-landing-btn:hover{animation:none;background:#1a1a1a;border-color:#fff;box-shadow:0 8px 25px #00000059;text-shadow:0 0 8px #fffc;transform:translateY(-1px)}@keyframes subtlePulse{0%,to{box-shadow:0 6px 20px #00000040;transform:scale(1)}50%{box-shadow:0 8px 25px #0000004d;transform:scale(1.02)}}.back-to-landing-btn i{font-size:.8rem}.App-header{background:#0a0a0a;border-bottom:1px solid #2a2a2a;color:#f5f5f5;overflow:hidden;padding:1.5rem 2rem;position:relative}.App-header:before{background-image:linear-gradient(#c084fc0a 1px,#0000 0),linear-gradient(90deg,#c084fc0a 1px,#0000 0);background-size:60px 60px;bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.logo-container{margin-bottom:1rem}.logo{background-color:#1e1e1e;border:3px solid #ffffffe6;border-radius:50%;box-shadow:0 4px 16px #00000040,0 0 0 6px #ffffff26;height:80px;padding:5px;transition:transform .3s ease,box-shadow .3s ease;width:80px}.logo:hover{box-shadow:0 6px 24px #0000004d,0 0 0 8px #fff3;transform:scale(1.08) rotate(5deg)}.App-header h1{-webkit-text-stroke:2px #c084fc;color:#0000;font-family:Montserrat,sans-serif;font-size:3rem;font-weight:900;letter-spacing:6px;margin:0;text-transform:uppercase}.App-subtitle{color:#888;font-family:IBM Plex Mono,monospace;font-size:.85rem;font-weight:400;letter-spacing:1px;margin:.5rem 0 0}.App-main{background:#0000;box-sizing:border-box;flex:1 1;max-width:100%;padding:2rem 3rem;transition:all .4s ease;width:100%}.results-container{animation:fadeIn .5s ease-in;margin-top:2rem}.App-main.with-results{grid-gap:2.5rem;align-items:flex-start;display:grid;gap:2.5rem;grid-template-columns:340px 1fr;max-width:100%;padding:2rem 3rem}.App-main.with-results .mood-input-container{position:-webkit-sticky;position:sticky;top:2rem}.App-main.with-results .results-side{animation:slideInFromRight .5s ease-out;min-width:0}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}@media (max-width:860px){.App-main{padding:1.5rem}.App-main.with-results{grid-template-columns:1fr;padding:1.5rem}.App-main.with-results .mood-input-container{position:relative;top:0}}.loader{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:1rem 0;padding:2rem 0}.loader p{color:#c084fc;font-family:IBM Plex Mono,monospace;font-size:.85rem;font-weight:500;letter-spacing:1px;margin-top:1rem}.loader-animation{animation:spin 1s linear infinite;border-color:#c084fc #f472b6 #2a2a2a #2a2a2a;border-radius:50%;border-style:solid;border-width:3px;height:50px;width:50px}.App-footer{background:#0a0a0a;border-top:1px solid #2a2a2a;color:#f5f5f5;font-family:IBM Plex Mono,monospace;font-size:.85rem;margin-top:2rem;overflow:hidden;padding:2.5rem 1rem 2rem;position:relative}.App-footer:before{animation:shimmerBorder 4s linear infinite;background:linear-gradient(90deg,#6e8efb,#a777e3,#ff69b4,#a777e3,#6e8efb);background-size:200% 100%;content:"";height:2px;left:0;position:absolute;right:0;top:0}@keyframes shimmerBorder{0%{background-position:200% 0}to{background-position:-200% 0}}.footer-content{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;margin:0 auto;max-width:1200px}.footer-section{flex:1 1;min-width:200px}.footer-section h3{color:#c084fc;display:inline-block;font-family:IBM Plex Mono,monospace;font-size:.75rem;letter-spacing:2px;margin-bottom:1rem;position:relative;text-transform:uppercase}.footer-section h3:after{background:#c084fc;bottom:-5px;content:"";height:1px;left:0;position:absolute;width:20px}.footer-links{list-style:none;margin:0;padding:0}.footer-links li{margin-bottom:.7rem}.footer-links a{align-items:center;color:#888;display:inline-flex;font-size:.82rem;text-decoration:none;transition:color .2s ease}.footer-links a:hover{color:#c084fc;text-decoration:none}.footer-links .icon{font-size:1.1rem;margin-right:6px}.footer-bottom{border-top:1px solid #2a2a2a;color:#888;font-size:.8rem;margin-top:2rem;padding-top:1.5rem;text-align:center;width:100%}.made-with-love{-webkit-text-fill-color:#0000;background:linear-gradient(90deg,#a777e3,#ff69b4);-webkit-background-clip:text;background-clip:text;font-size:.9rem;font-weight:600;margin-top:.5rem}.jack-mascot{align-items:center;animation:jackFloat 3s ease-in-out infinite;bottom:20px;cursor:pointer;display:flex;flex-direction:column;position:fixed;right:24px;z-index:999}.jack-mascot img{filter:drop-shadow(0 4px 16px rgba(192,132,252,.5));transition:transform .2s ease;width:90px}.jack-mascot:hover img{transform:scale(1.1) rotate(-5deg)}.jack-bubble{background:#111;border:1px solid #c084fc;border-radius:4px;color:#c084fc;font-family:IBM Plex Mono,monospace;font-size:.65rem;letter-spacing:1px;margin-bottom:6px;opacity:0;padding:4px 10px;transform:translateY(4px);transition:all .2s ease;white-space:nowrap}.jack-mascot:hover .jack-bubble{opacity:1;transform:translateY(0)}@keyframes jackFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media (max-width:600px){.jack-mascot{bottom:12px;right:12px}.jack-mascot img{width:64px}}.header-actions{align-items:center;display:flex;flex-wrap:wrap;gap:15px;margin-top:15px;position:relative;width:100%}.header-actions,.header-actions.with-spotify-button{justify-content:center}.header-actions.with-spotify-button .review-button-header{position:absolute;right:0;top:50%;transform:translateY(-50%)}.review-button-header{align-items:center;background:#0000;border:1px solid #f472b6;border-radius:4px;color:#f472b6;cursor:pointer;display:inline-flex;font-family:IBM Plex Mono,monospace;font-size:.72rem;font-weight:500;gap:5px;letter-spacing:1px;overflow:hidden;padding:6px 14px;position:relative;text-transform:uppercase;transition:all .2s ease}.review-button-header:hover{background:#f472b6;color:#000}.review-button-header:active{transform:translateY(0) scale(1.02)}.review-button-header:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.review-button-header:hover:before{left:100%}@keyframes headerReviewGlow{0%{box-shadow:0 3px 10px #ff6b6b4d}to{box-shadow:0 5px 15px #ff6b6b80}}.review-button{display:none}@media (max-width:768px){.header-actions{flex-direction:column;gap:10px;position:static}.header-actions.with-spotify-button .review-button-header{position:static;transform:none}.review-button-header{font-size:13px;padding:6px 14px}}.mood-input{backdrop-filter:none;-webkit-backdrop-filter:none;background:#111;border:1px solid #2a2a2a;border-radius:8px;box-shadow:none;margin-top:1rem;padding:2rem;transition:border-color .3s ease}.mood-input:hover{border-color:#c084fc;box-shadow:none}.emoji-header,.emoji-input-form{display:flex;flex-direction:column}.emoji-header{align-items:center;margin-bottom:1.5rem;position:relative}.emoji-header h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#c084fc,#f472b6);-webkit-background-clip:text;background-clip:text;font-size:.75rem;font-weight:600;letter-spacing:2px;margin:0;text-transform:uppercase}.emoji-header h3,.emoji-header p{font-family:IBM Plex Mono,monospace}.emoji-header p{color:#888;font-size:.8rem;margin:.5rem 0 0}.reset-button{align-items:center;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:4px;color:#888;cursor:pointer;display:flex;font-size:1rem;height:32px;justify-content:center;position:absolute;right:0;top:0;transition:all .2s ease;width:32px}.reset-button:hover{background:#c084fc;border-color:#c084fc;color:#000;transform:rotate(90deg)}.emoji-slider-container{align-items:center;display:flex;justify-content:space-between;margin:2rem 0}.emoji-label{flex:0 0 50px;font-size:2rem;text-align:center;transition:transform .2s}.mood-sad{color:#6a77b0}.mood-energetic{color:#ff6b6b}.emoji-slider{-webkit-appearance:none;appearance:none;background:linear-gradient(90deg,#6a77b0,#896cec,#a777e3,#ff6b8a);border-radius:15px;box-shadow:inset 0 1px 3px #00000026,0 1px 4px #6e8efb33;flex:1 1;height:12px;margin:0 15px;outline:none}.emoji-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#111;border:2px solid #c084fc;border-radius:50%;box-shadow:0 0 0 3px #c084fc33;cursor:pointer;height:28px;-webkit-transition:all .2s;transition:all .2s;width:28px}.emoji-slider::-moz-range-thumb{background:#111;border:2px solid #c084fc;border-radius:50%;cursor:pointer;height:28px;-moz-transition:all .2s;transition:all .2s;width:28px}.emoji-slider::-webkit-slider-thumb:hover{border-color:#6e8efb;box-shadow:0 4px 14px #6e8efb73,0 0 0 5px #6e8efb1f;transform:scale(1.15)}.emoji-slider::-moz-range-thumb:hover{box-shadow:0 4px 14px #6e8efb73;transform:scale(1.15)}.mood-details{align-items:center;display:flex;flex-direction:column;margin-bottom:2rem}.current-emoji{animation:pulseEmoji 2.5s ease-in-out infinite alternate;filter:drop-shadow(0 4px 8px rgba(167,119,227,.3));font-size:4.5rem;line-height:1.1;margin-bottom:.5rem}.mood-description{color:#888;font-weight:400;letter-spacing:1px;text-align:center}.find-music-btn,.mood-description{font-family:IBM Plex Mono,monospace;font-size:.82rem}.find-music-btn{align-self:center;background:#0000;border:1px solid #c084fc;border-radius:4px;color:#c084fc;cursor:pointer;font-weight:500;letter-spacing:2px;margin-top:1rem;max-width:350px;padding:.85rem 2rem;text-transform:uppercase;transition:all .2s;width:100%}.find-music-btn:hover{background:#c084fc;color:#000;transform:translateY(-1px)}.find-music-btn:active{transform:translateY(0)}@keyframes pulseEmoji{0%{filter:drop-shadow(0 4px 8px rgba(167,119,227,.3));transform:scale(1) rotate(-2deg)}to{filter:drop-shadow(0 6px 14px rgba(110,142,251,.4));transform:scale(1.12) rotate(2deg)}}@media (max-width:768px){.mood-input{padding:1.5rem}.emoji-slider-container{margin:1.5rem 0}.current-emoji{font-size:3.5rem}.find-music-btn{padding:.8rem 1.5rem}}.chat-container{backdrop-filter:none;-webkit-backdrop-filter:none;background:#111;border:1px solid #2a2a2a;border-radius:8px;display:flex;flex-direction:column;height:400px;margin:0 auto;max-width:100%;overflow:hidden;width:100%}.chat-header{background:#0a0a0a;border-bottom:1px solid #2a2a2a;color:#f5f5f5;padding:12px 20px;text-align:center}.chat-header h3{color:#c084fc;font-weight:500;letter-spacing:2px;margin:0;text-transform:uppercase}.chat-header h3,.chat-header p{font-family:IBM Plex Mono,monospace;font-size:.75rem}.chat-header p{color:#888;margin:4px 0 0}.chat-messages{background-color:#0a0a0a;display:flex;flex:1 1;flex-direction:column;gap:12px;overflow-y:auto;padding:20px}.welcome-message{animation:fadeIn .5s ease-out;background-color:#111;border:1px solid #2a2a2a;border-radius:6px;color:#888;font-family:IBM Plex Mono,monospace;font-size:.82rem;margin:auto 0;padding:20px;text-align:center}.welcome-message p{margin:8px 0}.chat-message{display:flex;margin-bottom:10px}.user-message{justify-content:flex-end}.bot-message{justify-content:flex-start}.message-bubble{animation-duration:.3s;animation-fill-mode:both;border-radius:18px;max-width:80%;padding:12px 16px;position:relative}.user-message .message-bubble{animation-name:slideInRight;background:linear-gradient(90deg,#8a2be2,#ff69b4);border-bottom-right-radius:4px;color:#fff}.bot-message .message-bubble{animation-name:slideInLeft;background-color:#1a1a1a;border:1px solid #2a2a2a;border-bottom-left-radius:4px;color:#f5f5f5;font-family:IBM Plex Mono,monospace;font-size:.85rem}.message-bubble.mood-response{background:#1a1a1a;border:1px solid #2a2a2a;border-left:3px solid #c084fc}.message-bubble.follow-up{background:#1a1a1a;border:1px solid #2a2a2a;border-left:3px solid #f472b6}.message-bubble.confirmation{background:#1a1a1a;border:1px solid #2a2a2a;border-left:3px solid #4ade80}.message-bubble p{margin:0;word-break:break-word}.typing-indicator{align-items:center;display:flex;padding:12px 16px;width:60px}.typing-indicator span{animation:blink 1.4s infinite both;background-color:#888;border-radius:50%;display:inline-block;height:8px;margin-right:5px;width:8px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s;margin-right:0}.chat-input-form{background-color:#111;border-top:1px solid #2a2a2a;display:flex;padding:12px}.chat-input-form input{background:#0a0a0a;border:1px solid #2a2a2a;border-radius:4px;color:#f5f5f5;flex:1 1;font-family:IBM Plex Mono,monospace;font-size:.85rem;outline:none;padding:10px 16px;transition:border-color .2s}.chat-input-form input:focus{background:#0a0a0a;border-color:#c084fc}.chat-input-form button{align-items:center;background:#0000;border:1px solid #c084fc;border-radius:4px;color:#c084fc;cursor:pointer;display:flex;height:40px;justify-content:center;margin-left:8px;transition:all .2s;width:40px}.chat-input-form button:hover{background:#c084fc;color:#000}.chat-input-form button:disabled{border-color:#2a2a2a;color:#444;cursor:not-allowed}.chat-input-form button.processing{background:#d8a9ff;cursor:wait}.button-spinner{animation:spin 1s linear infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:20px;width:20px}@keyframes blink{0%,to{opacity:.5;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translateX(20px)}to{opacity:1;transform:translateX(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(100px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.chat-container{height:350px}.message-bubble{max-width:85%}.floating-feedback{bottom:10px;left:10px;max-width:none;position:fixed;right:10px}}.mood-badge{font-size:.68rem;padding:.15rem .6rem}.ai-badge{background:#0000;border:1px solid #f472b6;border-radius:4px;color:#f472b6;font-family:IBM Plex Mono,monospace;font-size:.65rem;font-weight:500;padding:.15rem .5rem}.floating-feedback{animation:slideInUp .3s ease-out;background:#111;border:1px solid #2a2a2a;border-radius:6px;bottom:20px;max-width:350px;position:fixed;right:20px;z-index:1000}.floating-feedback-close{background:none;border:none;color:#888;cursor:pointer;font-size:18px;line-height:1;padding:5px;position:absolute;right:15px;top:10px;z-index:1001}.floating-feedback-close:hover{color:#c084fc}.floating-feedback .playlist-feedback{background:#0000;border:none;border-radius:16px;margin:0;padding:1rem}.input-selector{flex-direction:column}.input-selector,.input-type-toggle{align-items:center;display:flex;margin-bottom:1.5rem;width:100%}.input-type-toggle{background:#111;border:1px solid #2a2a2a;border-radius:6px;justify-content:center;margin-left:auto;margin-right:auto;max-width:500px;overflow:hidden;position:relative}.input-type-toggle button{align-items:center;background:#0000;border:none;box-sizing:border-box;color:#888;cursor:pointer;display:flex;flex-direction:column;font-family:IBM Plex Mono,monospace;font-size:.82rem;font-weight:500;gap:6px;justify-content:center;letter-spacing:1px;outline:none;padding:.9rem 1rem;text-align:center;text-transform:uppercase;transition:all .2s ease;width:50%}.input-type-toggle button:first-child{border-radius:16px 0 0 16px}.input-type-toggle button:last-child{border-radius:0 16px 16px 0}.experimental-label{animation:aiGlow 2s infinite alternate;background:linear-gradient(135deg,#ff6b6b,#4ecdc4);border-radius:12px;box-shadow:0 2px 6px #ff6b6b4d;color:#fff;display:inline-block;font-size:.7rem;font-weight:600;letter-spacing:.2px;margin-left:4px;padding:.15rem .4rem;vertical-align:middle}@keyframes aiGlow{0%{opacity:.8;transform:scale(1)}to{box-shadow:0 3px 8px #4ecdc466;opacity:1;transform:scale(1.05)}}.input-type-toggle button.active{background:#1a1a1a;border-right:1px solid #2a2a2a;color:#c084fc}.input-icon{font-size:1.5rem;margin-bottom:4px;transition:all .3s ease}.brain-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.1));text-shadow:0 1px 2px #0000001a}.input-label{font-size:.9rem;opacity:.9}.input-type-toggle button:hover:not(.active){background:#1a1a1a;color:#f472b6}.input-type-toggle button:hover .input-icon{transform:scale(1.15)}.input-type-toggle button:hover .brain-icon{filter:drop-shadow(0 3px 6px rgba(138,43,226,.3));text-shadow:0 2px 4px #8a2be233;transform:scale(1.15)}.input-type-toggle button.active .brain-icon{filter:drop-shadow(0 2px 6px rgba(255,255,255,.3));text-shadow:0 1px 3px #fff3}@media (max-width:600px){.input-type-toggle{max-width:100%}.input-type-toggle button{padding:.7rem 1rem}.input-icon{font-size:1.3rem}.input-label{font-size:.85rem}}.mood-message{background-color:#111;border:1px solid #2a2a2a;border-left:3px solid #c084fc;border-radius:6px;margin-bottom:1.5rem;padding:1.2rem 1.5rem;text-align:left}.mood-badge,.mood-message{font-family:IBM Plex Mono,monospace}.mood-badge{background:#0000;border:1px solid #c084fc;border-radius:4px;color:#c084fc;display:inline-block;font-size:.72rem;letter-spacing:1.5px;margin-bottom:.75rem;padding:.2rem .7rem;text-transform:uppercase}.mood-badge-container{align-items:center;display:flex;gap:.5rem;margin-bottom:1rem}.ai-badge{animation:aiPulse 2s infinite alternate;background:linear-gradient(135deg,#ff6b6b,#4ecdc4);border-radius:15px;color:#fff;cursor:help;display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .6rem}@keyframes aiPulse{0%{transform:scale(1)}to{transform:scale(1.05)}}.message-text{color:#888;font-family:IBM Plex Mono,monospace;font-size:.9rem;line-height:1.7;margin:0}.song-recommendation{margin-top:1rem}.song-recommendation h2{color:#888;font-family:IBM Plex Mono,monospace;font-size:.75rem;letter-spacing:2px;margin-bottom:1.4rem;position:relative;text-align:left;text-transform:uppercase}.song-recommendation h2:after{background:#c084fc;bottom:-8px;content:"";height:1px;left:0;position:absolute;width:20px}.mood-highlight{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#c084fc,#f472b6);-webkit-background-clip:text;background-clip:text;font-weight:700}.songs-loading{align-items:center;color:#888;display:flex;flex-direction:column;font-family:IBM Plex Mono,monospace;font-size:.82rem;gap:1rem;letter-spacing:1px;padding:2rem 1rem}.loading-spinner{animation:spin .9s linear infinite;border:2px solid #2a2a2a;border-radius:50%;border-top-color:#c084fc;height:40px;width:40px}.songs-error{color:#e57373;font-size:.9rem;margin-bottom:.75rem}.songs-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr);margin-top:1rem}@media (min-width:640px){.songs-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:1000px){.songs-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width:1400px){.songs-grid{grid-template-columns:repeat(5,1fr)}}.spotify-note{color:#888;margin-top:1.2rem;text-align:center}.spotify-note small{font-size:.78rem}.song-card{background:#111;border:1px solid #2a2a2a;border-radius:6px;display:flex;flex-direction:column;height:100%;overflow:hidden;transition:border-color .2s ease,transform .2s ease}.song-card:hover{border-color:#c084fc;transform:translateY(-3px)}.song-artwork{background:#1a1a1a;height:160px;overflow:hidden;position:relative}.song-artwork img{height:100%;object-fit:cover;transition:transform .3s ease;width:100%}.song-card:hover .song-artwork img{transform:scale(1.04)}.art-placeholder{align-items:center;background:#1a1a1a;display:flex;height:100%;justify-content:center;width:100%}.art-spinner{animation:spin .9s linear infinite;border:2px solid #2a2a2a;border-radius:50%;border-top-color:#c084fc;height:36px;width:36px}.preview-btn{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000a6;border:none;border-radius:50%;bottom:8px;color:#fff;cursor:pointer;display:flex;font-size:.9rem;height:36px;justify-content:center;position:absolute;right:8px;transition:background .2s ease,transform .2s ease;width:36px}.preview-btn.playing,.preview-btn:hover{background:#c084fc}.song-info{display:flex;flex:1 1;flex-direction:column;padding:.9rem 1rem 1rem;text-align:left}.song-title{color:#f5f5f5;font-size:.88rem;font-weight:600;margin:0 0 .25rem}.song-artist,.song-title{font-family:IBM Plex Mono,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-artist{color:#888;font-size:.78rem;margin:0 0 .15rem}.song-album{color:#555;font-family:IBM Plex Mono,monospace;font-size:.72rem;font-style:italic;margin:0 0 .75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song-actions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin-top:auto}.preview-text-btn{background:#0000;border:1px solid #2a2a2a;border-radius:4px;color:#888;cursor:pointer;font-family:IBM Plex Mono,monospace;font-size:.72rem;padding:.25rem .6rem;transition:all .2s ease;white-space:nowrap}.preview-text-btn.playing,.preview-text-btn:hover{background:#c084fc;border-color:#c084fc;color:#000}.no-preview{color:#444;font-size:.7rem}.no-preview,.open-spotify-btn{font-family:IBM Plex Mono,monospace;white-space:nowrap}.open-spotify-btn{background:#0000;border:1px solid #c084fc;border-radius:4px;color:#c084fc;font-size:.72rem;padding:.25rem .65rem;text-decoration:none;transition:all .2s ease}.open-spotify-btn:hover{background:#c084fc;color:#000}.spotify-login-button{align-items:center;background:linear-gradient(135deg,#1db954,#1ed760);border:none;border-radius:30px;box-shadow:0 4px 16px #1db9544d;color:#fff;cursor:pointer;display:flex;font-family:Poppins,sans-serif;font-size:16px;font-weight:600;justify-content:center;letter-spacing:.5px;margin:0;min-width:220px;overflow:hidden;padding:12px 28px;position:relative;transition:all .3s cubic-bezier(.175,.885,.32,1.275)}.spotify-login-button:hover{background:linear-gradient(135deg,#1ed760,#1db954);box-shadow:0 8px 24px #1db95480;transform:translateY(-3px) scale(1.02)}.spotify-login-button:active{transform:scale(.98) translateY(0)}.spotify-login-button.connecting{background:linear-gradient(135deg,#1db954,#1ed760);box-shadow:0 4px 12px #1db95440,0 0 0 2px #ffffff1a;cursor:progress}.spotify-icon{filter:drop-shadow(0 1px 2px rgba(0,0,0,.1));height:22px;margin-right:10px;width:22px}.connecting-text{margin-right:2px}.dot-animation{animation:pulse 1.4s infinite;animation-fill-mode:both;display:inline-block}.dot-animation:nth-child(2){animation-delay:.2s}.dot-animation:nth-child(3){animation-delay:.4s}.dot-animation:nth-child(4){animation-delay:.6s}.spotify-login-button:after{background:#ffffff21;background:linear-gradient(90deg,#ffffff21 0,#ffffff21 77%,#ffffff80 92%,#fff0);content:"";height:200%;left:-60%;opacity:0;position:absolute;top:-50%;transform:rotate(30deg);width:20%}.spotify-login-button:hover:after{left:130%;opacity:1;transition:all .7s ease-in-out}.user-profile{align-items:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#14141ea6;border:1px solid #ffffff26;border-radius:50px;box-shadow:0 4px 16px #0000004d;display:inline-flex;margin-bottom:5px;margin-top:10px;overflow:hidden;padding:8px 14px;position:relative;transition:all .3s ease}.user-profile:before{background:radial-gradient(circle,#ffd7000d 0,#ff69b40d 100%);content:"";height:200%;left:-50%;opacity:0;position:absolute;top:-50%;transform:rotate(45deg);transition:opacity .6s ease;width:200%;z-index:1}.user-profile:hover{background:#191923bf;box-shadow:0 8px 20px #00000059,0 0 0 1px #fff3;transform:translateY(-3px)}.user-profile:hover:before{opacity:1}.user-info{align-items:center;display:flex;padding:0 8px}.user-avatar{animation:pulse 2s infinite;border:2px solid #ffd700cc;border-radius:50%;cursor:pointer;height:38px;object-fit:cover;transition:all .3s cubic-bezier(.175,.885,.32,1.275);width:38px;z-index:2}.user-avatar:hover{border-color:#fff;box-shadow:0 0 15px #ffd70066;transform:scale(1.15)}.user-avatar-placeholder{align-items:center;background:linear-gradient(45deg,gold,#ff6b6b);border-radius:50%;color:#222;cursor:pointer;display:flex;font-size:16px;font-weight:700;height:38px;justify-content:center;text-shadow:0 1px 2px #fff3;transition:all .3s cubic-bezier(.175,.885,.32,1.275);width:38px}.user-avatar-placeholder:hover{box-shadow:0 0 15px #ffd70066;transform:scale(1.15)}.user-display-name{-webkit-text-fill-color:#0000;-moz-text-fill-color:#0000;background-clip:text;-webkit-background-clip:text;-moz-background-clip:text;background-image:linear-gradient(45deg,gold,#ff69b4);background-size:100%;font-size:15px;font-weight:700;letter-spacing:.5px;margin:0 12px;position:relative;z-index:2}.logout-button{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;justify-content:center;margin-left:4px;padding:8px;transition:all .3s cubic-bezier(.175,.885,.32,1.275);z-index:2}.logout-button:hover{background-color:#ff69b44d;transform:rotate(90deg) scale(1.1)}.logout-button:focus{box-shadow:0 0 0 2px #ffffff80;outline:none}.logout-icon{fill:#fff;height:18px;transition:fill .2s ease;width:18px}.logout-button:hover .logout-icon{fill:gold}@keyframes pulse{0%{box-shadow:0 0 0 0 #ffd700b3}70%{box-shadow:0 0 0 8px #ffd70000}to{box-shadow:0 0 0 0 #ffd70000}}.user-profile-error,.user-profile-loading{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#14141ea6;border-radius:12px;color:#fff;font-size:14px;font-weight:500;letter-spacing:.5px;margin-bottom:5px;margin-top:10px;padding:12px;text-align:center}.user-profile-error{border:1px solid #ff6b6b4d;color:#ff6b6b}.local-dev-auth{margin:15px 0;text-align:center}.instructions-toggle{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;color:#666;cursor:pointer;font-size:12px;padding:5px 10px}.auth-helper{background-color:#f9f9f9;border:1px solid #ddd;border-radius:8px;margin:15px auto;max-width:600px;padding:15px;text-align:left}.auth-helper h3{color:#333;font-size:16px;margin-top:0}.auth-helper li,.auth-helper p{color:#666;font-size:14px;line-height:1.5}.form-group{margin:15px 0}.form-group label{font-size:14px;margin-bottom:5px}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:14px;padding:8px;width:100%}.process-button{background-color:#1db954;border:none;border-radius:20px;color:#fff;cursor:pointer;font-size:14px;margin-top:10px;padding:8px 16px;transition:background-color .2s}.process-button:hover{background-color:#1ed760}.process-button:disabled{background-color:#ccc;cursor:not-allowed}.review-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.review-modal{animation:slideIn .3s ease-out;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;box-shadow:0 20px 40px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;padding:0;width:90%}.review-header{align-items:center;background:#ffffff1a;border-bottom:1px solid #fff3;border-radius:20px 20px 0 0;display:flex;justify-content:space-between;padding:20px}.review-header h2{color:#fff;font-size:1.5rem;font-weight:600;margin:0}.close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:24px;height:40px;justify-content:center;transition:all .3s ease;width:40px}.close-btn:hover{background:#ffffff4d;transform:scale(1.1)}.review-form{color:#fff;padding:30px}.rating-section{margin-bottom:25px}.rating-section label{display:block;font-size:1.1rem;font-weight:500;margin-bottom:15px}.star-rating{align-items:center;display:flex;gap:8px;margin-bottom:10px}.star{background:none;border:none;cursor:pointer;font-size:28px;opacity:.3;transition:all .2s ease}.star.active{opacity:1;transform:scale(1.1)}.star:hover{transform:scale(1.2)}.rating-text{color:#fffc;font-weight:500;margin-left:10px}.form-group{margin-bottom:20px}.form-group label{color:#ffffffe6;display:block;font-weight:500;margin-bottom:8px}.form-group input,.form-group textarea{background:#ffffff1a;border:2px solid #fff3;box-sizing:border-box;font-size:16px;width:100%}.form-group input:focus,.form-group textarea:focus{background:#ffffff26;border-color:#ffffff80;box-shadow:0 0 0 3px #ffffff1a}.form-group textarea{font-family:inherit}.form-actions{display:flex;gap:15px;justify-content:flex-end;margin-top:30px}.cancel-btn,.submit-btn{border:none;border-radius:12px;cursor:pointer;font-size:16px;font-weight:600;min-width:120px;padding:12px 24px;transition:all .3s ease}.cancel-btn{background:#fff3;color:#fff}.cancel-btn:hover{background:#ffffff4d;transform:translateY(-2px)}.submit-btn{background:linear-gradient(135deg,#ff6b6b,#ee5a24);box-shadow:0 4px 15px #ff6b6b4d;color:#fff}.submit-btn:hover:not(:disabled){box-shadow:0 6px 20px #ff6b6b66;transform:translateY(-2px)}.submit-btn:disabled{cursor:not-allowed;opacity:.7;transform:none}.review-success{color:#fff;padding:40px 30px;text-align:center}.success-icon{animation:bounce .6s ease-in-out;font-size:60px;margin-bottom:20px}.review-success h3{font-size:1.5rem;font-weight:600;margin-bottom:10px}.review-success p{color:#fffc;font-size:1.1rem;line-height:1.5}@media (max-width:600px){.review-modal{margin:20px;width:95%}.review-header{padding:15px}.review-header h2{font-size:1.3rem}.review-form{padding:20px}.star{font-size:24px}.form-actions{flex-direction:column}.cancel-btn,.submit-btn{width:100%}}.contact-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.contact-modal{animation:slideIn .3s ease-out;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;box-shadow:0 20px 40px #0000004d;max-height:90vh;max-width:500px;overflow-y:auto;padding:0;width:90%}@keyframes slideIn{0%{opacity:0;transform:translateY(-30px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.contact-header{align-items:center;background:#ffffff1a;border-bottom:1px solid #fff3;border-radius:20px 20px 0 0;display:flex;justify-content:space-between;padding:20px}.contact-header h2{color:#fff;font-size:1.5rem;font-weight:600;margin:0}.contact-close-btn{align-items:center;background:#fff3;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;height:32px;justify-content:center;transition:all .3s ease;width:32px}.contact-close-btn:hover{background:#ffffff4d;transform:scale(1.1)}.contact-content{padding:30px}.contact-form{gap:20px}.contact-form,.form-group{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#fff;font-size:.9rem;font-weight:600;opacity:.9}.form-group input,.form-group textarea{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #ffffff4d;border-radius:12px;color:#fff;font-family:Poppins,sans-serif;font-size:1rem;padding:12px 16px;transition:all .3s ease}.form-group input::placeholder,.form-group textarea::placeholder{color:#fff9}.form-group input:focus,.form-group textarea:focus{background:#fff3;border-color:#fff9;box-shadow:0 4px 12px #ffffff1a;outline:none;transform:translateY(-1px)}.form-group textarea{min-height:100px;resize:vertical}.contact-submit-btn{align-items:center;background:linear-gradient(135deg,#ff6b6b,#4ecdc4);border:none;border-radius:15px;color:#fff;cursor:pointer;display:flex;font-family:Poppins,sans-serif;font-size:1.1rem;font-weight:600;gap:10px;justify-content:center;letter-spacing:.5px;margin-top:10px;padding:15px 30px;transition:all .3s ease}.contact-submit-btn:hover:not(:disabled){box-shadow:0 8px 20px #ff6b6b66;transform:translateY(-2px)}.contact-submit-btn:disabled{cursor:not-allowed;opacity:.7}.spinner{animation:spin 1s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.contact-success{color:#fff;padding:20px 0;text-align:center}.success-icon{animation:bounce .6s ease-out;font-size:3rem;margin-bottom:15px}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-15px)}60%{transform:translateY(-7px)}}.contact-success h3{font-size:1.5rem;font-weight:600;margin:0 0 10px}.contact-success p{font-size:1rem;line-height:1.5;margin:0;opacity:.9}@media (max-width:768px){.contact-modal{margin:10px;width:95%}.contact-header{padding:15px}.contact-header h2{font-size:1.3rem}.contact-content{padding:20px}.form-group input,.form-group textarea{font-size:.95rem;padding:10px 14px}.contact-submit-btn{font-size:1rem;padding:12px 25px}}
/*# sourceMappingURL=main.f046e007.css.map*/