@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}.App{background:radial-gradient(circle at 20% 50%,#7877c64d 0,#0000 50%),radial-gradient(circle at 80% 20%,#ff77c64d 0,#0000 50%),radial-gradient(circle at 40% 80%,#78dbff4d 0,#0000 50%),linear-gradient(135deg,#1e1e2e,#2d1b69 50%,#11998e);background-attachment:fixed;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;text-align:center}.App-header{color:#fff;flex-direction:column;justify-content:flex-start;min-height:100vh;padding:3rem 2rem 2rem}.App-header,.nav-bar{align-items:center;display:flex}.nav-bar{justify-content:space-between;margin-bottom:1rem;max-width:1200px;padding:0 1rem;width:100%}.nav-spacer{flex:1 1}.hero-section{margin-bottom:2rem;max-width:600px;text-align:center}.hero-header{flex-direction:column;gap:1rem;position:relative;width:100%}.hero-header,.return-button{align-items:center;display:flex}.return-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;color:#ffffffb3;font-size:.8rem;font-weight:400;height:fit-content;opacity:.8;padding:6px 12px;text-decoration:none;transition:all .2s ease}.return-button:hover{background:#ffffff1a;border-color:#fff3;color:#ffffffe6;opacity:1;text-decoration:none}.return-button:active{transform:scale(.95)}@media (min-width:1024px){.return-button{font-size:.85rem;padding:8px 14px}}@media (min-width:768px) and (max-width:1023px){.return-button{font-size:.8rem;padding:7px 13px}}@media (max-width:767px){.nav-bar{padding:0 .5rem}.return-button{font-size:.75rem;padding:5px 10px}}.tab-navigation{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:16px;box-shadow:0 8px 32px #0000001f;display:flex;justify-content:center;margin-bottom:3rem;padding:8px}.tab-button{background:#0000;border:none;border-radius:12px;color:#ffffffb3;cursor:pointer;font-size:1.1rem;font-weight:600;margin:0 4px;overflow:hidden;padding:12px 32px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.tab-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.tab-button:hover:before{left:100%}.tab-button:hover{background:#ffffff1a;color:#ffffffe6}.tab-button.active{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 6px 20px #3b82f64d,inset 0 1px 0 #ffffff1a;color:#fff}.tab-button.active:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 8px 25px #3b82f666,inset 0 1px 0 #ffffff26}.App-header h1{-webkit-text-fill-color:#0000;animation:gradientShift 3s ease-in-out infinite;background:linear-gradient(135deg,#fff,#a78bfa 50%,#06b6d4);-webkit-background-clip:text;background-clip:text;background-size:200% 200%;font-size:4rem;font-weight:700;line-height:1.1;margin-bottom:1rem}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.App-header p{color:#e5e7eb;font-size:1.3rem;font-weight:400;line-height:1.6;margin:0;opacity:.85}.panels-container{align-items:flex-start;display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;max-width:1400px;width:100%}.left-panel{display:flex;flex:1 1;flex-direction:column;gap:4rem;max-width:600px;min-width:480px}.note-selection-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:24px;box-shadow:0 8px 32px #0000001f,inset 0 1px 0 #ffffff1a;margin-bottom:2rem;overflow:hidden;padding:2.5rem;position:relative;transition:all .3s ease}.note-selection-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.note-selection-panel:hover{box-shadow:0 12px 40px #0003,inset 0 1px 0 #ffffff26;transform:translateY(-4px)}.note-selection-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem}.note-selection-panel p{color:#d1d5db;font-size:1.1rem;font-weight:400;margin-bottom:1.8rem;opacity:.8}.right-panel{flex:1 1;max-width:600px;min-width:480px}.desktop-only{display:block}.mobile-only{display:none}.exercise-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:24px;box-shadow:0 8px 32px #0000001f,inset 0 1px 0 #ffffff1a;height:fit-content;overflow:hidden;padding:2.5rem;position:relative;transition:all .3s ease}.exercise-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.exercise-panel:hover{box-shadow:0 12px 40px #0003,inset 0 1px 0 #ffffff26;transform:translateY(-4px)}.exercise-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#a78bfa);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem}.exercise-panel p{color:#d1d5db;font-size:1.1rem;font-weight:400;margin-bottom:1.8rem;opacity:.8}.chord-progression{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:24px;box-shadow:0 8px 32px #0000001f,inset 0 1px 0 #ffffff1a;flex:1 1;margin-bottom:2rem;max-width:600px;min-width:480px;overflow:hidden;padding:2.5rem;position:relative;transition:all .3s ease}.chord-progression:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.chord-progression:hover{box-shadow:0 12px 40px #0003,inset 0 1px 0 #ffffff26;transform:translateY(-4px)}.chord-progression h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#a78bfa);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem}.chord-progression p{color:#d1d5db;font-size:1.1rem;font-weight:400;margin-bottom:1.8rem;opacity:.8}.random-note{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:24px;box-shadow:0 8px 32px #0000001f,inset 0 1px 0 #ffffff1a;flex:1 1;max-width:600px;min-width:480px;overflow:hidden;padding:2.5rem;position:relative;transition:all .3s ease}.random-note:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.random-note:hover{box-shadow:0 12px 40px #0003,inset 0 1px 0 #ffffff26;transform:translateY(-4px)}.random-note h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem}.random-note h3{color:#f3f4f6;font-size:1.4rem;font-weight:500;margin-bottom:1.2rem}.random-note p{color:#d1d5db;font-size:1.1rem;font-weight:400;margin-bottom:1.8rem;opacity:.8}.note-selection{margin-bottom:0}.key-selector{margin-bottom:2rem}.key-selector h3{color:#f3f4f6;font-size:1.4rem;font-weight:500;margin-bottom:1.2rem}.key-buttons{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(6,1fr);margin-bottom:1rem}.key-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:2px solid #ffffff26;border-radius:10px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;overflow:hidden;padding:10px 8px;position:relative;text-align:center;transition:all .4s cubic-bezier(.4,0,.2,1)}.key-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.key-button:hover:before{left:100%}.key-button:hover{background:#ffffff26;border-color:#ffffff4d;box-shadow:0 6px 20px #00000026;transform:translateY(-2px) scale(1.02)}.key-button.selected{background:linear-gradient(135deg,#06b6d4,#0891b2);border-color:#06b6d4;box-shadow:0 6px 20px #06b6d44d,inset 0 1px 0 #fff3;color:#fff}.key-button.selected:hover{background:linear-gradient(135deg,#0891b2,#0e7490);box-shadow:0 8px 25px #06b6d466,inset 0 1px 0 #ffffff40;transform:translateY(-2px) scale(1.02)}.key-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.key-button:disabled:hover{background:#ffffff14;border-color:#ffffff26;box-shadow:none;transform:none}.progression-selector{margin-bottom:2rem}.progression-selector h3{color:#f3f4f6;font-size:1.4rem;font-weight:500;margin-bottom:1.2rem}.progression-buttons{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:1rem}.progression-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:2px solid #ffffff26;border-radius:12px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;overflow:hidden;padding:12px 16px;position:relative;text-align:center;transition:all .4s cubic-bezier(.4,0,.2,1)}.progression-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.progression-button:hover:before{left:100%}.progression-button:hover{background:#ffffff26;border-color:#ffffff4d;box-shadow:0 6px 20px #00000026;transform:translateY(-2px) scale(1.02)}.progression-button.selected{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#f59e0b;box-shadow:0 6px 20px #f59e0b4d,inset 0 1px 0 #fff3;color:#fff}.progression-button.selected:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 8px 25px #f59e0b66,inset 0 1px 0 #ffffff40;transform:translateY(-2px) scale(1.02)}.progression-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.progression-button:disabled:hover{background:#ffffff14;border-color:#ffffff26;box-shadow:none;transform:none}.note-buttons{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(6,1fr);margin-bottom:1.5rem;margin-left:auto;margin-right:auto;max-width:480px}.note-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:2px solid #ffffff26;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;overflow:hidden;padding:16px 12px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.note-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.note-button:hover:before{left:100%}.note-button:hover{background:#ffffff26;border-color:#ffffff4d;box-shadow:0 8px 25px #00000026;transform:translateY(-3px) scale(1.02)}.note-button.selected{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;box-shadow:0 8px 25px #10b9814d,inset 0 1px 0 #fff3;color:#fff}.note-button.selected:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 12px 30px #10b98166,inset 0 1px 0 #ffffff40;transform:translateY(-3px) scale(1.02)}.selection-info{color:#d1d5db;font-size:.95rem;font-weight:400;margin-bottom:1rem;opacity:.75}.play-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#10b981,#059669);border:1px solid #ffffff1a;border-radius:16px;box-shadow:0 8px 25px #10b98140,inset 0 1px 0 #ffffff1a;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin:1rem 0;overflow:hidden;padding:18px 36px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.play-button:before{background:linear-gradient(90deg,#0000,#ffffff26,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s ease;width:100%}.play-button:hover:not(:disabled):before{left:100%}.play-button:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 12px 35px #10b98159,inset 0 1px 0 #ffffff26;transform:translateY(-3px) scale(1.02)}.play-button:active{transform:translateY(-1px) scale(1.01)}.play-button:disabled{box-shadow:0 4px 15px #0000001a;cursor:not-allowed;opacity:.5;transform:none}.random-button{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 8px 25px #3b82f640,inset 0 1px 0 #ffffff1a}.random-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 12px 35px #3b82f659,inset 0 1px 0 #ffffff26}.progression-info{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;margin-top:2rem;padding:1.5rem;text-align:left}.progression-info p{font-size:1rem;margin-bottom:1rem;text-align:center}.progression-info ul{list-style:none;margin:0;padding:0}.progression-info li{border-bottom:1px solid #ffffff1a;font-size:.9rem;padding:.5rem 0;text-align:center}.progression-info li:last-child{border-bottom:none}.note-info{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;margin-top:2rem;padding:1.5rem;text-align:center}.note-info p{font-size:1rem;margin-bottom:.5rem;text-align:center}.note-info p:last-child{font-size:.9rem;margin-bottom:0;opacity:.8}@media (max-width:1200px){.panels-container{align-items:center;flex-direction:column}.chord-progression,.random-note{max-width:600px;min-width:400px}}@media (max-width:768px){.App-header{padding:1rem}.App-header h1{font-size:2rem}.panels-container{gap:1rem}.chord-progression,.random-note{min-width:300px;padding:1.5rem}.note-buttons{grid-template-columns:repeat(4,1fr)}}.score-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;box-shadow:0 8px 32px #0000001f,inset 0 1px 0 #ffffff1a;margin-bottom:2.5rem;overflow:hidden;padding:2rem;position:relative}.score-card:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.score-display{display:flex;justify-content:space-around;margin-bottom:1.5rem}.score-item{align-items:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;display:flex;flex-direction:column;gap:.8rem;min-width:80px;padding:1rem}.score-label{color:#d1d5db;font-size:.9rem;font-weight:500;letter-spacing:.5px;opacity:.7;text-transform:uppercase}.score-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#10b981,#059669);-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:700;line-height:1;text-shadow:none}.reset-button{background:linear-gradient(135deg,#f59e0b,#d97706);border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 6px 20px #f59e0b40,inset 0 1px 0 #ffffff1a;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;overflow:hidden;padding:12px 24px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.reset-button:before{background:linear-gradient(90deg,#0000,#ffffff26,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.reset-button:hover:before{left:100%}.reset-button:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 8px 25px #f59e0b59,inset 0 1px 0 #ffffff26;transform:translateY(-2px) scale(1.02)}.feedback{animation:feedbackPulse .6s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid #ffffff1a;border-radius:16px;box-shadow:0 8px 25px #00000026,inset 0 1px 0 #ffffff1a;font-size:1.15rem;font-weight:600;margin-bottom:2rem;padding:1.5rem;text-align:center}@keyframes feedbackPulse{0%{opacity:0;transform:scale(.9)}50%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.feedback.correct{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 8px 25px #10b9814d,inset 0 1px 0 #ffffff26;color:#fff}.feedback.incorrect{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 8px 25px #ef44444d,inset 0 1px 0 #ffffff26;color:#fff}.exercise-controls{flex-wrap:wrap}.exercise-controls,.exercise-controls-compact{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.exercise-controls-compact{align-items:center;background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;padding:1.5rem}.control-button,.exercise-controls-compact{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.control-button{border:2px solid #0000;border-radius:10px;cursor:pointer;font-size:.9rem;font-weight:600;min-width:100px;overflow:hidden;padding:10px 20px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}.control-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.control-button:hover:before{left:100%}.control-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.control-button:disabled:hover{box-shadow:none;transform:none}.control-button.reset-button{background:linear-gradient(135deg,#ef44441a,#dc26261a);border-color:#ef44444d;color:#fca5a5}.control-button.reset-button:hover{background:linear-gradient(135deg,#ef444426,#dc262626);border-color:#ef444466;box-shadow:0 6px 20px #ef444433;transform:translateY(-2px) scale(1.02)}.control-button.start-button{background:linear-gradient(135deg,#22c55e1a,#16a34a1a);border-color:#22c55e4d;color:#86efac;min-width:140px}.control-button.start-button:hover{background:linear-gradient(135deg,#22c55e26,#16a34a26);border-color:#22c55e66;box-shadow:0 6px 20px #22c55e33;transform:translateY(-2px) scale(1.02)}.control-button.stop-button{background:linear-gradient(135deg,#f59e0b1a,#d977061a);border-color:#f59e0b4d;color:#fcd34d}.control-button.stop-button:hover{background:linear-gradient(135deg,#f59e0b26,#d9770626);border-color:#f59e0b66;box-shadow:0 6px 20px #f59e0b33;transform:translateY(-2px) scale(1.02)}.control-button.repeat-button{background:linear-gradient(135deg,#8b5cf61a,#7c3aed1a);border-color:#8b5cf64d;color:#a78bfa}.control-button.repeat-button:hover{background:linear-gradient(135deg,#8b5cf626,#7c3aed26);border-color:#8b5cf666;box-shadow:0 6px 20px #8b5cf633;transform:translateY(-2px) scale(1.02)}.exercise-button{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 8px 25px #8b5cf640,inset 0 1px 0 #ffffff1a}.exercise-button:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 12px 35px #8b5cf659,inset 0 1px 0 #ffffff26}.stop-button{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 8px 25px #ef444440,inset 0 1px 0 #ffffff1a}.stop-button:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 12px 35px #ef444459,inset 0 1px 0 #ffffff26}.answer-section{animation:slideIn .5s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;box-shadow:0 8px 32px #0000001f,inset 0 1px 0 #ffffff1a;margin-bottom:2.5rem;overflow:hidden;padding:2rem;position:relative}.answer-section:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}@keyframes slideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.answer-section h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.repeat-section{background:#ffffff08;border:1px solid #ffffff0d;border-radius:10px;display:flex;justify-content:center;margin-bottom:1.5rem;padding:1rem}.repeat-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#8b5cf61a,#7c3aed1a);border:2px solid #8b5cf64d;border-radius:10px;color:#a78bfa;cursor:pointer;font-size:.9rem;font-weight:600;min-width:120px;overflow:hidden;padding:8px 16px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.repeat-button:before{background:linear-gradient(90deg,#0000,#8b5cf633,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.repeat-button:hover:before{left:100%}.repeat-button:hover{background:linear-gradient(135deg,#8b5cf626,#7c3aed26);border-color:#8b5cf666;box-shadow:0 8px 25px #8b5cf633,inset 0 1px 0 #ffffff1a;transform:translateY(-2px) scale(1.02)}.repeat-button:active{box-shadow:0 4px 15px #8b5cf626,inset 0 1px 0 #ffffff0d;transform:translateY(-1px) scale(1.01)}.repeat-button:disabled{color:#6b7280;cursor:not-allowed;opacity:.5}.repeat-button:disabled,.repeat-button:disabled:hover{background:#ffffff0d;border-color:#ffffff1a;transform:none}.repeat-button:disabled:hover{box-shadow:none}.answer-buttons{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin:0 auto;max-width:540px}.answer-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#3b82f6,#2563eb);border:2px solid #ffffff26;border-radius:14px;box-shadow:0 6px 20px #3b82f640,inset 0 1px 0 #ffffff1a;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;overflow:hidden;padding:18px 12px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.answer-button:before{background:linear-gradient(90deg,#0000,#ffffff26,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.answer-button:hover:before{left:100%}.answer-button:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#ffffff40;box-shadow:0 10px 30px #3b82f659,inset 0 1px 0 #ffffff26;transform:translateY(-3px) scale(1.02)}.exercise-info{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;margin-top:2rem;padding:1.5rem}.exercise-info p{font-size:1rem;font-weight:700;margin-bottom:1rem;text-align:center}.exercise-info ol{margin:0 auto;max-width:400px;padding-left:1.5rem;text-align:left}.exercise-info li{font-size:.9rem;line-height:1.4;padding:.3rem 0}.note-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.note-button:disabled:hover{background:#ffffff1a;border-color:#ffffff4d;transform:none}.settings-container{margin:0 auto;max-width:1200px;width:100%}.settings-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:24px;box-shadow:0 8px 32px #0000001f,inset 0 1px 0 #ffffff1a;margin:0 auto;max-width:800px;overflow:hidden;padding:2.5rem;position:relative;transition:all .3s ease;width:100%}.settings-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.settings-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem;text-align:center}.settings-panel p{color:#d1d5db;font-size:1.1rem;margin-bottom:2.5rem;opacity:.8;text-align:center}.stats-container{margin:0 auto;max-width:1200px;width:100%}.stats-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:24px;box-shadow:0 8px 32px #0000001f,inset 0 1px 0 #ffffff1a;overflow:hidden;padding:2.5rem;position:relative}.stats-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.stats-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem;text-align:center}.stats-panel>p{color:#d1d5db;font-size:1.1rem;margin-bottom:2.5rem;opacity:.8;text-align:center}.stats-summary{margin-bottom:3rem}.summary-card{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:16px;padding:2rem}.summary-card h3{color:#f3f4f6;font-size:1.4rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.summary-stats{display:flex;gap:2rem;justify-content:space-around}.summary-item{align-items:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;display:flex;flex-direction:column;gap:.8rem;min-width:120px;padding:1rem}.summary-label{color:#d1d5db;font-size:.9rem;font-weight:500;opacity:.7;text-align:center}.summary-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#10b981,#059669);-webkit-background-clip:text;background-clip:text;font-size:1.8rem;font-weight:700}.note-histogram{margin-bottom:3rem}.note-histogram h3{color:#f3f4f6;font-size:1.4rem;font-weight:600;margin-bottom:2rem;text-align:center}.histogram-container{grid-gap:12px;background:#ffffff0a;border:1px solid #ffffff14;border-radius:16px;display:grid;gap:12px;grid-template-columns:repeat(12,1fr);padding:2rem}@media (max-width:1199px) and (orientation:landscape),(max-width:1199px) and (orientation:portrait),(max-width:480px){.histogram-container{gap:6px!important;grid-template-columns:repeat(6,1fr)!important;padding:.5rem!important}}@media (max-width:480px){.histogram-container{gap:4px!important;grid-template-columns:repeat(4,1fr)!important;padding:.3rem!important}}.histogram-bar{gap:8px}.bar-container,.histogram-bar{align-items:center;display:flex;flex-direction:column}.bar-container{height:120px;justify-content:flex-end;position:relative}.bar{border-radius:4px 4px 0 0;position:relative;transition:all .3s ease;width:20px}.correct-bar{background:linear-gradient(180deg,#10b981,#059669);box-shadow:0 2px 8px #10b9814d}.incorrect-bar{background:linear-gradient(180deg,#ef4444,#dc2626);box-shadow:0 2px 8px #ef44444d;margin-top:2px}.bar-label{color:#f3f4f6;font-size:.9rem;font-weight:600;text-align:center}.bar-stats{align-items:center;display:flex;flex-direction:column;gap:2px}.accuracy{color:#10b981;font-size:.8rem;font-weight:600}.attempts{color:#d1d5db;font-size:.7rem;opacity:.6}.analysis-section{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr;margin-bottom:2rem}.confusion-list{display:flex;flex-direction:column;gap:1rem}.confusion-item{align-items:center;background:#ffffff08;border:1px solid #ffffff1a;border-radius:8px;display:flex;font-size:.9rem;justify-content:space-between;padding:8px 12px;transition:all .3s ease}.confusion-item:hover{background:#ffffff0d;border-color:#ffffff26;transform:translateY(-1px)}.confusion-pair{align-items:center;display:flex;font-weight:600;gap:.5rem}.actual-note{background:#10b9811a;border:1px solid #10b98133;border-radius:4px;color:#10b981;font-size:.85rem;min-width:24px;padding:.2rem .5rem;text-align:center}.arrow{color:#6b7280;font-size:.9rem;font-weight:400}.guessed-note{background:#ef44441a;border:1px solid #ef444433;border-radius:4px;color:#ef4444;font-size:.85rem;min-width:24px;padding:.2rem .5rem;text-align:center}.confusion-details{align-items:center;display:flex;gap:.3rem}.confusion-count{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;background-clip:text;color:#fbbf24;font-size:.9rem;font-weight:700}.confusion-desc{color:#9ca3af;font-size:.7rem;letter-spacing:.5px;text-transform:uppercase}.analysis-card{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:16px;padding:1.5rem}.analysis-card h3{color:#f3f4f6;font-size:1.2rem;font-weight:600;margin-bottom:1rem;text-align:center}.note-list{display:flex;flex-direction:column;gap:8px}.note-item{align-items:center;border-radius:8px;display:flex;font-size:.9rem;justify-content:space-between;padding:8px 12px}.note-item.perfect{background:linear-gradient(135deg,#fbbf2426,#f59e0b26);border:2px solid #fbbf2466;box-shadow:0 4px 15px #fbbf2433,inset 0 1px 0 #ffffff1a;overflow:hidden;position:relative}.note-item.perfect:before{animation:perfectShimmer 2s infinite;background:linear-gradient(90deg,#0000,#fbbf241a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes perfectShimmer{0%{left:-100%}50%{left:100%}to{left:100%}}.note-item.strong{background:#10b9811a;border:1px solid #10b98133}.note-item.weak{background:#ef44441a;border:1px solid #ef444433}.note-name{color:#f3f4f6}.note-accuracy,.note-name{font-weight:600}.note-item.perfect .note-accuracy{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 3px rgba(251,191,36,.3));font-size:1.2rem}.note-item.strong .note-accuracy{color:#10b981}.note-item.weak .note-accuracy{color:#ef4444}.note-total{color:#d1d5db;font-size:.8rem;opacity:.7}.no-data{color:#d1d5db;font-style:italic;margin:0;opacity:.6}.no-data,.stats-actions{text-align:center}.reset-stats-button{background:linear-gradient(135deg,#f59e0b,#d97706);border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 6px 20px #f59e0b40,inset 0 1px 0 #ffffff1a;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;overflow:hidden;padding:12px 24px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.reset-stats-button:before{background:linear-gradient(90deg,#0000,#ffffff26,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.reset-stats-button:hover:before{left:100%}.reset-stats-button:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 8px 25px #f59e0b59,inset 0 1px 0 #ffffff26;transform:translateY(-2px) scale(1.02)}.chord-practice-container{margin:0 auto;max-width:800px;width:100%}.chord-practice-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;box-shadow:0 8px 32px #0000001f;padding:2rem;text-align:center}.chord-practice-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#ff6b6b,#ee5a24);-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:700;margin-bottom:1rem}.chord-practice-panel p{color:#fffc;font-size:1.1rem;line-height:1.6;margin-bottom:2rem}@media (max-width:768px){.chord-practice-panel{margin:0 1rem;padding:1.5rem}.placeholder-content{padding:2rem 1rem}.placeholder-features{gap:.75rem;grid-template-columns:1fr}.chord-practice-panel h2{font-size:1.5rem}}.menu-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh;padding:2rem}.menu-content{max-width:1200px;text-align:center;width:100%}.menu-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#f0f0f0);-webkit-background-clip:text;background-clip:text;font-size:3.5rem;font-weight:800;margin-bottom:1rem;text-shadow:0 4px 8px #0000001a}.menu-description{color:#fffc;font-size:1.2rem;font-weight:300;margin-bottom:3rem}.menu-items{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));margin-bottom:3rem}.menu-item{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;box-shadow:0 8px 32px #0000001f;color:inherit;display:flex;overflow:hidden;padding:2rem;position:relative;text-decoration:none;transition:all .4s cubic-bezier(.4,0,.2,1)}.menu-item:before{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.menu-item:hover{border-color:#ffffff4d;box-shadow:0 20px 40px #0003;transform:translateY(-8px) scale(1.02)}.menu-item:hover:before{opacity:1}.menu-item-thumbnail{flex-shrink:0;height:120px;margin-right:2rem;width:120px}.thumbnail-content{align-items:center;background:#ffffff1a;border:2px solid #fff3;border-radius:16px;display:flex;flex-direction:column;height:100%;justify-content:center;overflow:hidden;position:relative;width:100%}.thumbnail-content:before{background:linear-gradient(45deg,#0000 30%,#ffffff1a 50%,#0000 70%);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-100%);transition:transform .6s ease}.menu-item:hover .thumbnail-content:before{transform:translateX(100%)}.thumbnail-icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));font-size:2.5rem;margin-bottom:.5rem}.thumbnail-preview{align-items:center;color:#ffffffe6;display:flex;flex-direction:column;font-size:.7rem;font-weight:500;gap:.25rem}.preview-note,.preview-scale{color:#fff;font-size:.8rem;font-weight:700}.preview-chord,.preview-keys{opacity:.8}.preview-progress,.preview-tempo{background:#fff3;border-radius:4px;font-size:.6rem;opacity:.7;padding:.1rem .3rem}.menu-item-content{flex:1 1;text-align:left}.menu-item-content h3{color:#fff;font-size:1.5rem;font-weight:700;margin-bottom:.5rem;text-shadow:0 2px 4px #0000001a}.menu-item-content p{color:#fffc;font-size:1rem;line-height:1.5;margin-bottom:1rem}.menu-item-status{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.status-badge{border-radius:20px;font-size:.75rem;font-weight:600;letter-spacing:.5px;padding:.25rem .75rem;text-transform:uppercase}.status-active{background:linear-gradient(135deg,#4ade80,#22c55e);box-shadow:0 2px 8px #4ade804d;color:#fff}.status-development{background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 2px 8px #fbbf244d;color:#fff}.status-features{color:#ffffffb3;font-size:.8rem;font-weight:400}.menu-item-arrow{color:#fff9;font-size:1.5rem;margin-left:1rem;transition:all .3s ease}.menu-item:hover .menu-item-arrow{color:#ffffffe6;transform:translateX(4px)}.menu-footer{margin-top:3rem}.footer-content{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50px;display:flex;display:inline-flex;gap:1rem;justify-content:center;padding:1rem 2rem}.footer-icon{animation:bounce 2s infinite;font-size:1.5rem}.footer-content p{color:#ffffffb3;font-size:1rem;font-weight:400;margin:0}.footer-bottom{align-items:center;border-top:1px solid #ffffff1a;display:flex;justify-content:center;margin-top:2rem;padding-top:2rem}.footer-inline{color:#ffffffa6;font-size:.9rem;font-weight:300;margin:0}.email-link{color:#ffffffb3;font-size:.9rem;font-weight:400;text-decoration:none;transition:color .2s ease}.email-link:hover{color:#ffffffe6;text-decoration:underline}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@media (max-width:768px){.menu-container{padding:1rem}.menu-title{font-size:2.5rem}.menu-items{gap:1.5rem;grid-template-columns:1fr}.menu-item{flex-direction:column;padding:1.5rem;text-align:center}.menu-item-thumbnail{height:100px;margin-bottom:1.5rem;margin-right:0;width:100px}.menu-item-content{text-align:center}.menu-item-status{justify-content:center}.menu-item-arrow{margin-left:0;margin-top:1rem}}.rhythm-practice-container{margin:0 auto;max-width:800px;width:100%}.rhythm-practice-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;box-shadow:0 8px 32px #0000001f;padding:2rem;text-align:center}.rhythm-practice-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#a55eea,#8854d0);-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:700;margin-bottom:1rem}.rhythm-practice-panel p{color:#fffc;font-size:1.1rem;line-height:1.6;margin-bottom:2rem}@media (max-width:768px){.rhythm-practice-panel{margin:0 1rem;padding:1.5rem}.placeholder-content{padding:2rem 1rem}.placeholder-features{gap:.75rem;grid-template-columns:1fr}.rhythm-practice-panel h2{font-size:1.5rem}}.scale-practice-container{margin:0 auto;max-width:800px;width:100%}.scale-practice-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;box-shadow:0 8px 32px #0000001f;padding:2rem;text-align:center}.scale-practice-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:700;margin-bottom:1rem}.scale-practice-panel p{color:#fffc;font-size:1.1rem;line-height:1.6;margin-bottom:2rem}.placeholder-content{background:#ffffff0d;border:2px dashed #fff3;border-radius:16px;margin-top:2rem;padding:3rem 2rem}.placeholder-icon{font-size:4rem;margin-bottom:1rem;opacity:.7}.placeholder-content h3{color:#ffffffe6;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.placeholder-content p{color:#ffffffb3;font-size:1rem;margin-bottom:2rem}.placeholder-features{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:0 auto;max-width:600px}.feature-item{background:#ffffff1a;border:1px solid #ffffff1a;border-radius:8px;color:#fffc;font-size:.9rem;padding:.75rem 1rem;transition:all .3s ease}.feature-item:hover{background:#ffffff26;border-color:#fff3;transform:translateY(-2px)}@media (max-width:768px){.scale-practice-panel{margin:0 1rem;padding:1.5rem}.placeholder-content{padding:2rem 1rem}.placeholder-features{gap:.75rem;grid-template-columns:1fr}.scale-practice-panel h2{font-size:1.5rem}}
/*# sourceMappingURL=main.5c68f6fb.css.map*/