:root{--bg-primary:#282a36;--bg-surface:#44475a99;--border-color:#6272a44d;--text-primary:#f8f8f2;--text-secondary:#6272a4;--accent-pink:#ff79c6;--accent-cyan:#8be9fd;--accent-purple:#bd93f9;--accent-jump-color:#a4befb;--font-title:"Outfit", sans-serif;--font-body:"Plus Jakarta Sans", sans-serif;--glow-shadow:0 0 20px #8be9fd33}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);min-height:100vh;position:relative;overflow-x:hidden}.glow-bg{z-index:-1;filter:blur(80px);background:radial-gradient(circle at 10% 20%,#bd93f926 0%,#0000 40%),radial-gradient(circle at 90% 80%,#8be9fd26 0%,#0000 40%),radial-gradient(circle,#ff79c60d 0%,#0000 60%);width:100vw;height:100vh;position:fixed;top:0;left:0}.app-container{flex-direction:column;max-width:1200px;min-height:100vh;margin:0 auto;padding:2rem 1.5rem;display:flex}.app-header{text-align:center;margin-bottom:3rem}.logo{justify-content:center;align-items:center;gap:.75rem;margin-bottom:.5rem;display:flex}.logo .icon{filter:drop-shadow(0 0 10px #00f0ff80);font-size:2.5rem;animation:4s ease-in-out infinite float}.logo h1{font-family:var(--font-title);background:linear-gradient(135deg, #fff 20%, var(--accent-cyan) 60%, var(--accent-pink) 100%);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;font-size:2.75rem;font-weight:700}.subtitle{color:var(--text-secondary);font-size:1.1rem;font-weight:300}.main-content{flex-direction:column;flex-grow:1;justify-content:center;align-items:center;width:100%;display:flex}.glass-card{background:var(--bg-surface);-webkit-backdrop-filter:blur(16px);border:1px border-color var(--border-color);border:1px solid var(--border-color);border-radius:24px;box-shadow:0 8px 32px #0000005e}.upload-zone{aspect-ratio:16/10;cursor:pointer;background:#1416254d;border:2px dashed #ffffff26;border-radius:24px;justify-content:center;align-items:center;width:100%;max-width:600px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.upload-zone:before{content:"";background:radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%), #00f0ff14 0%, transparent 60%);opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.upload-zone:hover:before{opacity:1}.upload-zone:hover{border-color:var(--accent-cyan);transform:translateY(-4px);box-shadow:0 0 30px #00f0ff26}.file-input{display:none}.upload-label{text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:1rem;padding:2rem;display:flex}.upload-icon{width:64px;height:64px;color:var(--accent-cyan);background:#00f0ff0d;border:1px solid #00f0ff33;border-radius:50%;justify-content:center;align-items:center;transition:transform .3s;display:flex}.upload-zone:hover .upload-icon{color:#fff;filter:drop-shadow(0 0 8px var(--accent-cyan));background:#00f0ff1a;transform:scale(1.1)rotate(5deg)}.upload-label h3{font-family:var(--font-title);font-size:1.5rem;font-weight:500}.upload-label p{color:var(--text-secondary);font-size:.9rem}.analysis-screen{width:100%;max-width:500px}.loading-card{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;padding:3rem 2rem;display:flex}.loader{width:100px;height:100px;position:relative}.spinner{border:4px solid #ffffff08;border-top-color:var(--accent-pink);border-bottom-color:var(--accent-cyan);border-radius:50%;width:100%;height:100%;animation:1.5s linear infinite spin}.glow-ring{border:2px solid #0000;border-color:#0000 #00f0ff66 #0000 #9d4edd66;border-radius:50%;animation:3s linear infinite spin-reverse;position:absolute;inset:-8px}.status-desc{color:var(--text-secondary);font-size:.95rem}.progress-bar-container{background:#ffffff0d;border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--accent-pink), var(--accent-purple), var(--accent-cyan));border-radius:3px;width:0%;height:100%;transition:width .1s;box-shadow:0 0 10px #00f0ff80}.player-screen{grid-template-columns:1fr;justify-content:center;align-items:center;gap:3rem;width:100%;display:grid}@media (width>=900px){.player-screen{grid-template-columns:1.2fr 1fr;align-items:center}}.visualization-container{justify-content:center;align-items:center;display:flex;position:relative}.canvas-wrapper{aspect-ratio:1;width:100%;max-width:500px;position:relative}#jukebox-canvas{width:100%;height:100%;display:block}.center-controls{z-index:10;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.play-btn{background:linear-gradient(135deg, var(--accent-pink), var(--accent-purple));color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;transition:all .3s cubic-bezier(.175,.885,.32,1.275);display:flex;box-shadow:0 4px 20px #ff2a7466,inset 0 2px 4px #fff3}.play-btn:hover{transform:translate(0)scale(1.1);box-shadow:0 0 30px #ff2a7499,inset 0 2px 4px #ffffff4d}.play-btn:active{transform:translate(0)scale(.95)}.play-btn svg{width:28px;height:28px}.hidden{display:none!important}.controls-panel{flex-direction:column;gap:1.5rem;width:100%;display:flex}.stats-grid{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.stat-card{border:1px solid var(--border-color);text-align:center;background:#ffffff05;border-radius:16px;flex-direction:column;gap:.25rem;padding:1rem;display:flex}.clear-btn-card{cursor:pointer;border:1px solid var(--border-color);background:#ffffff05;transition:all .2s ease-in-out}.clear-btn-card:hover{background:#ff555514;border-color:#f556;transform:translateY(-2px)}.clear-btn-card:active{transform:translateY(0)}.clear-btn-card .icon{margin-top:.15rem;font-size:1.25rem;transition:transform .2s}.clear-btn-card:hover .icon{transform:scale(1.2)rotate(10deg)}.stat-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.stat-val{font-family:var(--font-title);color:#fff;font-size:1.5rem;font-weight:700}.controls-card{flex-direction:column;gap:1.75rem;padding:2rem;display:flex}.control-group{flex-direction:column;gap:.75rem;display:flex}.control-header{justify-content:space-between;align-items:center;display:flex}.control-header label{font-family:var(--font-title);font-size:1rem;font-weight:500}.control-val{font-family:var(--font-title);font-size:1.1rem;font-weight:700}#val-threshold{color:var(--accent-cyan)}#val-probability{color:var(--accent-jump-color)}#val-volume{color:var(--accent-purple)}.control-desc{color:var(--text-secondary);font-size:.8rem;line-height:1.4}.styled-slider{-webkit-appearance:none;background:#ffffff1a;border-radius:3px;outline:none;width:100%;height:6px;transition:background .3s}.styled-slider::-webkit-slider-thumb{appearance:none;background:var(--accent-cyan);cursor:pointer;border-radius:50%;width:18px;height:18px;transition:transform .1s,background .1s;box-shadow:0 0 10px #8be9fd99}.styled-slider::-webkit-slider-thumb:hover{background:#fff;transform:scale(1.2)}#slider-probability::-webkit-slider-thumb{background:var(--accent-jump-color);box-shadow:0 0 10px #a4befb99}#slider-probability::-webkit-slider-thumb:hover{background:#fff}#slider-volume::-webkit-slider-thumb{background:var(--accent-purple);box-shadow:0 0 10px #bd93f999}#slider-volume::-webkit-slider-thumb:hover{background:#fff}.control-actions{margin-top:.5rem}.btn{font-family:var(--font-title);cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;width:100%;padding:.85rem 1.5rem;font-size:1rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-secondary{color:#fff;border:1px solid var(--border-color);background:#ffffff0d}.btn-secondary:hover{background:#ffffff1a;border-color:#fff3}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spin-reverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-fade-in{animation:.8s cubic-bezier(.16,1,.3,1) forwards fadeIn}.animate-slide-up{animation:.8s cubic-bezier(.16,1,.3,1) forwards slideUp}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
