:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}html,body{background:#131228;width:100%;height:100%;font-family:Consolas,Courier New,monospace;overflow:hidden}#app{width:100vw;height:100vh;position:relative}.game-canvas{touch-action:none;display:block;position:absolute;inset:0}.hud{pointer-events:none;z-index:10;flex-direction:column;align-items:center;display:flex;position:absolute;inset:0}.hud__score{letter-spacing:2px;color:#fff;text-shadow:0 2px 10px #0009;margin-top:34px;font-size:52px;font-weight:700}.hud__combo{letter-spacing:4px;color:#ffd23f;text-shadow:0 2px 8px #0009;min-height:22px;margin-top:2px;font-size:18px;font-weight:700}.hud__best{letter-spacing:3px;color:#fff;opacity:.75;text-shadow:0 2px 6px #0009;margin-top:4px;font-size:13px}.hud__health{background:#ffffff1f;border-radius:6px;width:220px;max-width:60vw;height:10px;margin-top:14px;overflow:hidden;box-shadow:0 2px 8px #00000080}.hud__health-fill{background:#2bee2b;border-radius:6px;width:100%;height:100%;transition:width .15s,background .15s}.hud__judgment{letter-spacing:4px;opacity:0;color:#fff;text-shadow:0 4px 14px #0009;margin-top:auto;margin-bottom:26vh;font-size:40px;font-weight:700}.hud__judgment.is-shown{animation:.4s ease-out judgment-pop}.hud__judgment--perfect{color:#7cff5c}.hud__judgment--good{color:#3fd0ff}.hud__judgment--miss{color:#ff3f81}@keyframes judgment-pop{0%{opacity:0;transform:scale(.6)}25%{opacity:1;transform:scale(1.15)}60%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1)}}.overlay{text-align:center;pointer-events:auto;z-index:20;background:radial-gradient(circle,#3c286e40 0%,#0c0a1cb8 90%);flex-direction:column;justify-content:center;align-items:center;gap:16px;transition:opacity .3s;display:flex;position:absolute;inset:0}.overlay.hidden{display:none}.overlay__title{letter-spacing:6px;color:#ffd23f;text-shadow:0 0 18px #ffd23f80,0 6px 16px #0009;font-size:46px;font-weight:700}.overlay__subtitle{letter-spacing:2px;color:#fff;opacity:.9;text-shadow:0 2px 6px #0009;font-size:15px}.overlay__score{letter-spacing:2px;color:#fff;text-shadow:0 2px 6px #0009;font-size:20px}.overlay__hint{letter-spacing:2px;color:#cfe6ff;opacity:.9;text-shadow:0 2px 6px #0009;margin-top:10px;font-size:13px}.countdown{pointer-events:none;z-index:25;letter-spacing:6px;color:#fff;text-shadow:0 6px 26px #0000008c;opacity:0;justify-content:center;align-items:center;font-size:150px;font-weight:700;display:flex;position:absolute;inset:0}.countdown.is-shown{animation:.75s ease-out countdown-pop}@keyframes countdown-pop{0%{opacity:0;transform:scale(.4)}20%{opacity:1;transform:scale(1.12)}40%{transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}
