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}.App{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;text-align:center}.App-header{align-items:center;background:linear-gradient(135deg,#282c34,#1a1e24);color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:flex-start;min-height:100vh;padding-top:40px}h1{color:#61dafb;font-size:2.5rem;font-weight:700;letter-spacing:1px;margin-bottom:10px;text-shadow:0 2px 10px #0000004d}.app-description{color:#bbd8e3;font-size:1rem;margin-bottom:20px;opacity:.8}.piano-key{align-items:flex-end;cursor:pointer;display:flex;justify-content:center;padding-bottom:8px;transition:all .1s ease-in-out}.piano-key,.piano-key.white{box-sizing:border-box;position:relative}.piano-key.white{background-color:#fff;border:1px solid #aaa;border-radius:0 0 5px 5px;height:220px;margin:0;width:60px;z-index:1}.piano-key.black{background-color:#111;border-radius:0 0 5px 5px;box-shadow:0 5px 10px #0009;height:140px;pointer-events:auto;width:36px;z-index:2}.piano-key.white.pressed{background-color:#eee;box-shadow:inset 0 -5px 10px #0003;transform:translateY(3px)}.piano-key.black.pressed{background-color:#000;box-shadow:inset 0 -2px 5px #ffffff1a;transform:translateY(3px)}.key-label{color:#555;font-size:12px;margin-bottom:5px;-webkit-user-select:none;user-select:none}.piano-key.black .key-label{color:#fff}.keyboard-label{background-color:#ffffffe6;border-radius:3px;bottom:30px;box-shadow:0 1px 2px #0003;color:#333;font-size:10px;font-weight:700;left:50%;min-width:15px;padding:2px 4px;position:absolute;text-align:center;transform:translateX(-50%);-webkit-user-select:none;user-select:none}.piano-key.black .keyboard-label{background-color:#ffffffe6;bottom:20px;color:#333}.controls-container{background-color:#3a3a3a;border-radius:8px;box-shadow:0 4px 8px #0003;display:flex;gap:30px;justify-content:center;margin-bottom:20px;padding:15px}.control-group{align-items:center;display:flex;flex-direction:column}.control-group label{color:#ddd;font-size:14px;margin-bottom:8px}input[type=range]{cursor:pointer;width:120px}.octave-buttons{display:flex;gap:10px}.octave-buttons button{align-items:center;background-color:#61dafb;border:none;border-radius:50%;color:#282c34;cursor:pointer;display:flex;font-weight:700;height:30px;justify-content:center;width:30px}.octave-buttons button:disabled{background-color:#3a3a3a;color:#666;cursor:not-allowed}.recorder-container{align-items:center;background-color:#3a3a3a;border-radius:8px;box-shadow:0 4px 8px #0003;display:flex;flex-direction:column;margin-bottom:20px;padding:15px;width:-webkit-fit-content;width:fit-content}.recorder-controls{display:flex;gap:15px;margin-bottom:10px}.recorder-controls button{border:none;border-radius:4px;cursor:pointer;font-weight:700;padding:8px 16px;transition:all .2s}.record-button{background-color:#ff6b6b;color:#fff}.record-button:hover:not(:disabled){background-color:#ff5252}.record-button.active{animation:pulse 1.5s infinite;background-color:#f33}.play-button{background-color:#51cf66;color:#fff}.play-button:hover:not(:disabled){background-color:#40c057}.play-button.active{background-color:#37b24d}.recorder-controls button:disabled{background-color:#666;cursor:not-allowed;opacity:.7}.recorder-info{color:#ddd;font-size:14px;height:20px}.recording-indicator{animation:pulse 1.5s infinite;color:#ff6b6b;font-weight:700}.recording-stats{color:#aaa}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}.piano-container{align-items:center;display:flex;flex-direction:column;margin-top:30px;width:100%}.keyboard-info{margin-bottom:20px;text-align:center}.keyboard-info h2{margin-bottom:10px}.keyboard-mapping{color:#ddd;font-size:14px;margin:5px 0}.octave-display{color:#61dafb;font-size:14px;margin-top:5px}.piano{background-color:#333;border-radius:15px;box-shadow:0 10px 15px #0006;display:inline-block;padding:20px 30px 5px;position:relative}.white-keys{border-spacing:0;display:flex;margin:0;padding:0;position:relative;z-index:1}.black-keys{height:0;left:30px;pointer-events:none;position:absolute;top:20px;width:100%;z-index:2}@media (max-width:768px){.piano{transform:scale(.85);transform-origin:top center}}@media (max-width:576px){.piano{transform:scale(.7);transform-origin:top center}.piano-container{overflow-x:auto;width:100%}}
/*# sourceMappingURL=main.0144f982.css.map*/