.app{width:100%;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.upload-zone{width:600px;height:400px;border:3px dashed #4a5568;border-radius:20px;display:flex;align-items:center;justify-content:center;transition:all .3s ease;background:#ffffff0d;cursor:pointer}.upload-zone:hover,.upload-zone.dragging{border-color:#0f0;background:#00ff001a;transform:scale(1.05)}.upload-content{text-align:center}.upload-content h2{font-size:3rem;margin-bottom:20px}.upload-content p{font-size:1.2rem;margin-bottom:30px;color:#a0aec0}.upload-button{padding:15px 40px;font-size:1.1rem;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50px;color:#fff;cursor:pointer;transition:all .3s ease;display:inline-block}.upload-button:hover{transform:translateY(-2px);box-shadow:0 10px 20px #667eea66}.difficulty-selector{margin-top:40px;text-align:center}.difficulty-selector h3{margin-bottom:20px;font-size:1.3rem}.difficulty-buttons{display:flex;gap:15px;justify-content:center}.difficulty-buttons button{padding:12px 30px;font-size:1rem;background:#ffffff1a;border:2px solid #4a5568;border-radius:10px;color:#fff;cursor:pointer;transition:all .3s ease}.difficulty-buttons button:hover{border-color:#0f0;transform:translateY(-2px)}.difficulty-buttons button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea}.loading{text-align:center}.loading h2{font-size:2.5rem;margin-bottom:20px}.loading p{font-size:1.2rem;color:#a0aec0;margin-bottom:40px}.spinner{width:60px;height:60px;border:6px solid rgba(255,255,255,.1);border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.game-container{width:100%;height:100vh;position:relative;background:radial-gradient(circle at center,#1a1a2e,#000)}.game-container canvas{width:100%!important;height:100%!important}@keyframes bgPulse{0%,to{background-size:100% 100%}50%{background-size:110% 110%}}.hud{position:absolute;top:20px;left:0;right:0;display:flex;justify-content:space-around;align-items:center;padding:0 40px;z-index:10;pointer-events:none}.hud>div{background:#000000b3;padding:15px 30px;border-radius:10px;font-size:1.3rem;font-weight:700;pointer-events:auto}.score{color:gold}.combo{color:#0f0;font-size:1.5rem;animation:comboPulse .5s ease-in-out infinite}@keyframes comboPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.time{color:#fff}.back-button{padding:10px 20px;background:#ff0000b3;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;transition:all .3s ease}.back-button:hover{background:#ff0000e6;transform:scale(1.05)}.feedback{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:4rem;font-weight:700;text-shadow:0 0 20px currentColor;animation:feedbackPulse .5s ease-out;pointer-events:none;z-index:100}@keyframes feedbackPulse{0%{transform:translate(-50%,-50%) scale(.5);opacity:0}50%{transform:translate(-50%,-50%) scale(1.2);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:0}}.miss-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#ff00004d;animation:missFlash .2s ease-out;pointer-events:none;z-index:50}@keyframes missFlash{0%{opacity:1}to{opacity:0}}.controls-info{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;gap:15px;z-index:10}.key{width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:#000000b3;border:3px solid;border-radius:10px;font-size:1.5rem;font-weight:700;transition:all .1s ease;cursor:pointer}.key.pressed{transform:scale(1.2);box-shadow:0 0 20px currentColor;background:#fff3}.key.red{border-color:red;color:red}.key.red.pressed{background:#ff00004d}.key.yellow{border-color:#ff0;color:#ff0}.key.yellow.pressed{background:#ffff004d}.key.green{border-color:#0f0;color:#0f0}.key.green.pressed{background:#00ff004d}.key.blue{border-color:#00f;color:#00f}.key.blue.pressed{background:#0000ff4d}.key.purple{border-color:#f0f;color:#f0f}.key.purple.pressed{background:#ff00ff4d}@media (max-width: 768px){.upload-zone{width:90%;height:300px}.upload-content h2{font-size:2rem}.hud{flex-direction:column;gap:10px;padding:10px}.controls-info{gap:8px}.key{width:50px;height:50px;font-size:1.2rem}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;min-height:100vh;overflow:hidden}#root{width:100vw;height:100vh}
