body{color:#222;background-color:#e9ecef;margin:0;padding:30px 10px;font-family:Arial,sans-serif}.card{text-align:center;background-color:#fff;border-radius:10px;max-width:540px;margin:0 auto;padding:24px;box-shadow:0 2px 8px #0000001a}h1{margin:0}.subtitle{color:#666;margin-top:6px}.stats{flex-wrap:wrap;justify-content:center;gap:10px;margin:20px 0;display:flex}.stat{color:#666;background-color:#f4f4f4;border-radius:6px;width:64px;padding:8px;font-size:13px}.stat b{color:#222;font-size:24px;display:block}#status{margin:0;font-size:22px;font-weight:700}#pulse{height:28px;margin:6px 0 0;font-size:22px}#track{background-color:#f4f4f4;border-radius:6px;height:40px;margin-top:10px;position:relative;overflow:hidden}#hit-line{z-index:1;background-color:#222;width:3px;height:100%;position:absolute;top:0;left:15%}.block{background-color:#888;border-radius:4px;height:24px;position:absolute;top:8px}.block.listen{background-color:#8ab4f8}.block.hit{background-color:#4caf50}.block.miss{background-color:#e53935}#piano{background-color:#222;border-radius:8px 8px 0 0;height:200px;margin:10px 0 20px;padding:12px 12px 0}.keys{height:100%;display:flex;position:relative}.key{color:#888;cursor:pointer;background-color:#fff;border:1px solid #aaa;border-radius:0 0 5px 5px;flex-direction:column;flex:1;justify-content:flex-end;min-width:0;padding:0 0 12px;font-size:12px;display:flex}.key b{color:#222;font-size:18px}.key.pressed{background-color:#ddd}.black-key{pointer-events:none;background-color:#111;border-radius:0 0 3px 3px;width:7%;height:58%;position:absolute;top:0;transform:translate(-50%)}#piano.locked .key{opacity:.6;cursor:not-allowed}button{color:#fff;cursor:pointer;background-color:#222;border:none;border-radius:6px;padding:10px 28px;font-size:16px}#start-btn:hover,#play-again-btn:hover{background-color:#444}.small{color:#888;font-size:13px}#gameover{background-color:#00000080;width:100%;height:100%;position:fixed;top:0;left:0}#gameover-box{text-align:center;background-color:#fff;border-radius:10px;max-width:320px;margin:100px auto;padding:24px}#gameover-box h2{margin-top:0}#gameover-melody{font-weight:700}#replay-btn{color:#222;background-color:#e9ecef}@media (width<=400px){body{padding:10px 6px}.card{padding:16px 10px}#piano{height:170px;padding:8px 8px 0}.key b{font-size:15px}.stat{width:50px;font-size:11px}}
