.waveform-container{width:100%;height:150px;margin-bottom:2rem;border-radius:15px;overflow:hidden;background:#00000080;border:1px solid var(--border);box-shadow:inset 0 2px 10px #00000080;position:relative}.waveform-canvas{width:100%;height:100%;display:block}.waveform-container:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(139,92,246,.1) 0%,transparent 70%);animation:rotate 20s linear infinite;pointer-events:none}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.waveform-container{height:100px}}.audio-recorder{width:100%;animation:fadeIn .5s ease-out}.recorder-header{text-align:center;margin-bottom:3rem}.recorder-header h2{font-size:2.5rem;margin-bottom:.5rem;background:linear-gradient(135deg,var(--text-primary) 0%,var(--primary-light) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.recorder-subtitle{color:var(--text-secondary);font-size:1.2rem;font-weight:300}.recorder-container{background:var(--bg-secondary);border-radius:20px;padding:3rem;box-shadow:0 10px 40px #0000004d;border:1px solid var(--border)}.recorder-controls{display:flex;flex-direction:column;align-items:center;gap:2rem;margin-bottom:2rem}.record-btn{display:flex;align-items:center;gap:1rem;padding:1.5rem 3rem;font-size:1.2rem;font-weight:600;border-radius:60px;transition:all .3s ease;position:relative;overflow:hidden}.record-btn.start{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff}.record-btn.start:hover{transform:scale(1.05);box-shadow:0 10px 30px #8b5cf666}.record-btn.stop{background:linear-gradient(135deg,var(--error) 0%,#dc2626 100%);color:#fff}.record-btn.stop:hover{transform:scale(1.05);box-shadow:0 10px 30px #ef444466}.record-icon,.stop-icon{font-size:1.5rem}.recording-indicator{display:flex;align-items:center;gap:1rem;font-size:1.2rem;color:var(--text-primary)}.recording-dot{width:12px;height:12px;background:var(--error);border-radius:50%;animation:pulse 1.5s ease-in-out infinite;box-shadow:0 0 20px #ef444480}.playback-controls{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}.playback-controls audio{width:100%;max-width:400px;filter:invert(1);opacity:.9}.playback-actions{display:flex;gap:1rem}.action-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--bg-tertiary);color:var(--text-primary);border-radius:30px;font-weight:500;transition:all .3s ease}.action-btn:hover{background:var(--primary);transform:translateY(-2px);box-shadow:0 5px 20px #8b5cf64d}.action-btn.primary{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%)}.action-btn.primary:hover{transform:scale(1.05);box-shadow:0 10px 30px #8b5cf666}.recorder-tips{background:#8b5cf61a;border-radius:15px;padding:2rem;margin-top:2rem;border:1px solid rgba(139,92,246,.2)}.recorder-tips h3{color:var(--primary-light);font-size:1.2rem;margin-bottom:1rem}.recorder-tips ul{list-style:none;padding-left:0}.recorder-tips li{color:var(--text-secondary);margin-bottom:.75rem;padding-left:1.5rem;position:relative}.recorder-tips li:before{content:"✨";position:absolute;left:0}.input-mode-selector{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.mode-btn{padding:.75rem 1.5rem;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:30px;font-weight:500;transition:all .3s ease;border:1px solid var(--border)}.mode-btn:hover{background:var(--bg-tertiary);border-color:var(--primary)}.mode-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 5px 20px #8b5cf64d}.text-input-container{display:flex;flex-direction:column;gap:1.5rem;align-items:center;width:100%}.text-description-input{width:100%;max-width:600px;padding:1rem 1.5rem;background:#00000080;border:1px solid var(--border);border-radius:15px;color:var(--text-primary);font-size:1.1rem;font-family:inherit;resize:vertical;transition:all .3s ease}.text-description-input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 20px #8b5cf633}.text-description-input::placeholder{color:var(--text-muted)}@media (max-width: 768px){.recorder-container{padding:2rem 1.5rem}.recorder-header h2{font-size:2rem}.record-btn{padding:1.25rem 2.5rem;font-size:1.1rem}.playback-actions{flex-direction:column;width:100%}.action-btn{width:100%;justify-content:center}.input-mode-selector{flex-direction:column}.mode-btn{width:100%}}.song-identifier{width:100%;animation:fadeIn .5s ease-out}.identifier-container{background:var(--bg-secondary);border-radius:20px;padding:3rem;box-shadow:0 10px 40px #0000004d;border:1px solid var(--border);text-align:center}.identifier-container h2{font-size:2.5rem;margin-bottom:2rem;background:linear-gradient(135deg,var(--text-primary) 0%,var(--primary-light) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.progress-container{margin-bottom:3rem}.progress-bar{width:100%;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden;margin-bottom:1rem;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,var(--primary) 0%,var(--accent) 100%);border-radius:4px;transition:width .5s ease-out;position:relative;overflow:hidden}.progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-status{color:var(--text-secondary);font-size:1.1rem;margin-top:.5rem}.sound-wave{display:flex;align-items:center;justify-content:center;gap:4px;height:60px;margin:3rem 0}.wave-bar{width:4px;background:linear-gradient(180deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:2px;animation:wave 1s ease-in-out infinite;box-shadow:0 0 10px #8b5cf64d}@keyframes wave{0%,to{transform:scaleY(1)}50%{transform:scaleY(.3)}}.identifier-info{background:#8b5cf61a;border-radius:15px;padding:2rem;margin-top:2rem;border:1px solid rgba(139,92,246,.2)}.identifier-info p{color:var(--primary-light);font-weight:600;margin-bottom:1rem}.identifier-info ul{list-style:none;text-align:left;max-width:400px;margin:0 auto}.identifier-info li{color:var(--text-secondary);margin-bottom:.75rem;padding-left:2rem;position:relative}.identifier-info li:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:8px;height:8px;background:var(--primary);border-radius:50%;box-shadow:0 0 10px #8b5cf680}@media (max-width: 768px){.identifier-container{padding:2rem 1.5rem}.identifier-container h2{font-size:2rem}.sound-wave{height:40px}.wave-bar{width:3px}}.music-analysis{width:100%;animation:fadeIn .5s ease-out}.music-analysis.loading{display:flex;justify-content:center;align-items:center;min-height:400px}.analysis-loader{text-align:center}.loader-icon{font-size:4rem;display:block;margin-bottom:1rem;animation:pulse 2s ease-in-out infinite}.analysis-header{background:var(--bg-secondary);border-radius:20px;padding:2rem;margin-bottom:2rem;border:1px solid var(--border)}.song-info{display:flex;gap:2rem;align-items:center}.album-cover{width:150px;height:150px;border-radius:15px;object-fit:cover;box-shadow:0 10px 30px #0000004d}.song-details h2{font-size:2rem;margin-bottom:.5rem}.artist{font-size:1.2rem;color:var(--text-secondary);margin-bottom:1rem}.metadata{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.badge{background:var(--bg-tertiary);color:var(--text-secondary);padding:.4rem .8rem;border-radius:20px;font-size:.9rem;border:1px solid var(--border)}.confidence{color:var(--success);font-weight:600}.analysis-tabs{display:flex;gap:1rem;margin-bottom:2rem;justify-content:center}.tab{background:var(--bg-secondary);color:var(--text-secondary);padding:.75rem 1.5rem;border-radius:30px;font-weight:500;transition:all .3s ease;border:1px solid var(--border)}.tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.tab.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 5px 20px #8b5cf64d}.analysis-content{background:var(--bg-secondary);border-radius:20px;padding:3rem;border:1px solid var(--border);min-height:400px;animation:fadeIn .3s ease-out}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;margin:2rem 0}.metric-card{background:var(--bg-tertiary);border-radius:15px;padding:1.5rem;text-align:center;border:1px solid var(--border);transition:all .3s ease}.metric-card:hover{transform:translateY(-5px);box-shadow:0 10px 30px #0000004d;border-color:var(--primary)}.metric-value{font-size:2.5rem;font-weight:700;color:var(--primary);margin-bottom:.5rem}.metric-label{color:var(--text-secondary);font-size:.9rem}.similar-songs{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.similar-song{background:var(--bg-tertiary);border-radius:10px;padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;border:1px solid var(--border);transition:all .3s ease}.similar-song:hover{border-color:var(--primary);transform:translate(5px)}.song-title{font-weight:600;color:var(--text-primary)}.song-artist{color:var(--text-secondary);font-size:.9rem}.match-percentage{color:var(--primary);font-weight:600;font-size:.9rem}.structure{background:var(--bg-tertiary);padding:1rem 1.5rem;border-radius:10px;margin:1rem 0;font-family:monospace;color:var(--text-secondary)}.hooks-list{list-style:none;margin-top:1rem}.hooks-list li{background:#8b5cf61a;padding:1rem 1.5rem;border-radius:10px;margin-bottom:1rem;border-left:3px solid var(--primary);color:var(--text-secondary)}.emotion-tags{display:flex;flex-wrap:wrap;gap:1rem;margin:1rem 0 2rem}.primary-emotion{background:var(--primary);color:#fff;padding:.5rem 1rem;border-radius:25px;font-weight:600;font-size:1.1rem}.secondary-emotion{background:var(--bg-tertiary);color:var(--text-secondary);padding:.5rem 1rem;border-radius:25px;border:1px solid var(--border)}.energy-chart{display:flex;align-items:flex-end;justify-content:space-between;height:150px;margin:1rem 0 2rem;gap:2px}.energy-bar{flex:1;background:linear-gradient(180deg,var(--primary) 0%,var(--primary-dark) 100%);border-radius:4px 4px 0 0;transition:all .3s ease;opacity:.8}.energy-bar:hover{opacity:1;transform:scaleY(1.1)}.cultural-impact{background:#8b5cf61a;padding:1.5rem;border-radius:15px;line-height:1.8;color:var(--text-secondary);border:1px solid rgba(139,92,246,.2)}@media (max-width: 768px){.song-info{flex-direction:column;text-align:center}.album-cover{width:120px;height:120px}.analysis-tabs{flex-wrap:wrap}.analysis-content{padding:2rem 1.5rem}.metrics-grid{grid-template-columns:repeat(2,1fr)}}.remix-generator{width:100%;animation:fadeIn .5s ease-out}.generator-header{text-align:center;margin-bottom:3rem}.generator-header h2{font-size:2.5rem;margin-bottom:.5rem;background:linear-gradient(135deg,var(--text-primary) 0%,var(--accent) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.generator-header p{color:var(--text-secondary);font-size:1.2rem}.remix-styles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:3rem}.remix-style-card{background:var(--bg-secondary);border:2px solid var(--border);border-radius:20px;padding:2rem;text-align:center;transition:all .3s ease;position:relative;overflow:hidden;cursor:pointer}.remix-style-card:hover{transform:translateY(-5px);border-color:var(--primary);box-shadow:0 10px 30px #8b5cf64d}.remix-style-card.selected{border-color:var(--primary);background:#8b5cf61a}.style-icon{font-size:3rem;margin-bottom:1rem;display:block;filter:grayscale(0);transition:all .3s ease}.remix-style-card:hover .style-icon{transform:scale(1.1);filter:drop-shadow(0 0 20px rgba(139,92,246,.5))}.remix-style-card h3{font-size:1.5rem;margin-bottom:.5rem;color:var(--text-primary)}.remix-style-card p{color:var(--text-secondary);font-size:.9rem;margin:0}.generating-overlay{position:absolute;inset:0;background:#0a0a0ae6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem}.generating-overlay span{color:var(--primary);font-weight:600}.generated-remix{animation:fadeIn .5s ease-out}.remix-visualization{position:relative;overflow:hidden;border-radius:20px;margin-bottom:2rem;box-shadow:0 10px 40px #0006}.remix-visual{width:100%;height:auto;display:block}.visual-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.9) 100%);padding:2rem;color:#fff;text-align:center}.visual-overlay h3{font-size:2rem;margin-bottom:.5rem;text-shadow:0 2px 10px rgba(0,0,0,.5)}.visual-overlay p{font-size:1.1rem;opacity:.9;margin:0}.remix-player{background:var(--bg-secondary);border-radius:20px;padding:2rem;margin-bottom:2rem;border:1px solid var(--border)}.player-info{text-align:center;margin-bottom:1.5rem}.player-info h4{font-size:1.5rem;margin-bottom:.5rem}.player-info p{color:var(--text-secondary);margin:0}.player-controls{display:flex;justify-content:center}.play-button{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;padding:1rem 2rem;border-radius:50px;font-size:1.1rem;font-weight:600;display:flex;align-items:center;gap:.5rem;transition:all .3s ease}.play-button:hover{transform:scale(1.05);box-shadow:0 10px 30px #8b5cf666}.remix-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.remix-challenge{background:linear-gradient(135deg,#8b5cf61a,#f59e0b1a);border-radius:20px;padding:2rem;text-align:center;border:1px solid rgba(139,92,246,.2)}.remix-challenge h4{font-size:1.5rem;margin-bottom:.5rem;color:var(--text-primary)}.remix-challenge p{color:var(--text-secondary);margin-bottom:1.5rem}.challenge-btn{background:linear-gradient(135deg,var(--accent) 0%,#dc2626 100%);color:#fff;padding:.75rem 2rem;border-radius:30px;font-weight:600;transition:all .3s ease}.challenge-btn:hover{transform:scale(1.05);box-shadow:0 10px 30px #f59e0b66}@media (max-width: 768px){.generator-header h2{font-size:2rem}.remix-styles-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.remix-style-card{padding:1.5rem 1rem}.style-icon{font-size:2.5rem}.remix-actions{flex-direction:column}.action-btn{width:100%;justify-content:center}}.app{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--bg-primary) 0%,var(--bg-secondary) 100%)}.app-header{background:#1a1a1af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);padding:1.5rem 0;position:sticky;top:0;z-index:100;animation:fadeIn .5s ease-out}.logo-container{text-align:center;margin-bottom:1.5rem}.app-title{font-size:3rem;background:linear-gradient(135deg,var(--primary) 0%,var(--accent) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.5rem;letter-spacing:-.02em}.ai-badge{font-size:.8em;opacity:.8}.app-tagline{color:var(--text-secondary);font-size:1.1rem;font-weight:300}.app-nav{display:flex;gap:1rem;justify-content:center;align-items:center;flex-wrap:wrap;max-width:600px;margin:0 auto}.nav-btn{background:var(--bg-tertiary);color:var(--text-secondary);padding:.75rem 1.5rem;border-radius:50px;font-weight:500;font-size:1rem;transition:all .3s ease;position:relative;overflow:hidden}.nav-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .5s ease}.nav-btn:hover:before{left:100%}.nav-btn:hover{background:var(--primary);color:var(--text-primary);transform:translateY(-2px);box-shadow:0 5px 20px #8b5cf64d}.nav-btn.active{background:var(--primary);color:var(--text-primary);box-shadow:0 5px 20px #8b5cf64d}.nav-btn:disabled{opacity:.3;cursor:not-allowed;transform:none;box-shadow:none}.app-main{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;min-height:calc(100vh - 200px)}.mode-container{width:100%;max-width:900px;animation:fadeIn .5s ease-out}.app-footer{background:var(--bg-secondary);border-top:1px solid var(--border);padding:1.5rem;text-align:center;color:var(--text-muted);font-size:.9rem}@media (max-width: 768px){.app-title{font-size:2.5rem}.app-nav{gap:.75rem}.nav-btn{padding:.6rem 1.2rem;font-size:.9rem}.app-main{padding:1rem}}:root{--primary: #8b5cf6;--primary-dark: #7c3aed;--primary-light: #a78bfa;--secondary: #10b981;--accent: #f59e0b;--bg-primary: #0a0a0a;--bg-secondary: #1a1a1a;--bg-tertiary: #2a2a2a;--text-primary: #ffffff;--text-secondary: #a0a0a0;--text-muted: #6b7280;--border: #333333;--success: #10b981;--error: #ef4444;--warning: #f59e0b}*{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;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}button{cursor:pointer;border:none;outline:none;font-family:inherit;font-size:inherit;transition:all .3s ease}button:hover{transform:translateY(-2px)}button:active{transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}a{color:var(--primary);text-decoration:none;transition:color .3s ease}a:hover{color:var(--primary-light)}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;margin-bottom:1rem}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin-bottom:1rem}ul{list-style:none}.container{max-width:1200px;margin:0 auto;padding:0 20px}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-in{animation:fadeIn .5s ease-out}.pulse{animation:pulse 2s ease-in-out infinite}.spinner{width:40px;height:40px;border:4px solid var(--bg-tertiary);border-top-color:var(--primary);border-radius:50%;animation:spin 1s linear infinite}
