.editor{color:#000;font-size:calc(var(--dp) * 15px);-webkit-user-select:none;user-select:none;background:#fff;position:fixed;inset:0}.editor[hidden]{display:none}.editor-canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.editor-bar{gap:calc(var(--dp) * 6px);padding:calc(var(--dp) * 8px);padding-top:calc(var(--dp) * 8px + env(safe-area-inset-top,0px));background:#ffffffd9;flex-wrap:wrap;display:flex;position:absolute;top:0;left:0;right:0}.editor-name,.editor-button{padding:calc(var(--dp) * 6px) calc(var(--dp) * 8px);border:calc(var(--dp) * 1px) solid #000;color:#000;font:inherit;background:#fff}.editor-name{flex:1 1 calc(var(--dp) * 120px);-webkit-user-select:text;user-select:text;min-width:0}.editor-button{cursor:pointer;flex:none}.editor-button:disabled{color:#aaa;cursor:default;border-color:#aaa}.editor-button-on,.editor-button:not(:disabled):active{color:#fff;background:#29aa27;border-color:#29aa27}.editor-status{padding:calc(var(--dp) * 8px);padding-bottom:calc(var(--dp) * 8px + env(safe-area-inset-bottom,0px));color:#555;pointer-events:none;background:#ffffffd9;position:absolute;bottom:0;left:0;right:0}.player{align-items:center;gap:calc(var(--dp) * 4px) calc(var(--dp) * 10px);padding:calc(var(--dp) * 8px) calc(var(--dp) * 12px);padding-bottom:calc(var(--dp) * 8px + env(safe-area-inset-bottom,0px));color:#000;font-size:calc(var(--dp) * 16px);-webkit-user-select:none;user-select:none;touch-action:none;background:#ffffffd9;flex-wrap:wrap;transition:opacity .3s;display:flex;position:fixed;bottom:0;left:0;right:0}.player[hidden]{display:none}.player-idle{opacity:0}.player-button{min-width:calc(var(--dp) * 44px);padding:calc(var(--dp) * 6px) calc(var(--dp) * 8px);border:calc(var(--dp) * 1px) solid #000;color:#000;font:inherit;cursor:pointer;background:#fff;flex:none}.player-button:active{color:#00a000;border-color:#00a000}.player-toggle{min-width:calc(var(--dp) * 60px)}.player-timeline{height:calc(var(--dp) * 20px);background:linear-gradient(#c4c4c4, #c4c4c4) center / 100% calc(var(--dp) * 4px) no-repeat;cursor:pointer;flex:1 0 100%;order:-1;position:relative}.player-played{height:calc(var(--dp) * 4px);background:#29aa27;position:absolute;top:50%;left:0;transform:translateY(-50%)}.player-clock{font-variant-numeric:tabular-nums;flex:1}.player-marks{pointer-events:none;position:absolute;inset:0}.player-mark{width:calc(var(--dp) * 3px);height:calc(var(--dp) * 12px);background:#000;position:absolute;top:50%;transform:translate(-50%,-50%)}.player-mark-crash{background:#d00000}.player-mark-finish{background:#29aa27}.player-button[hidden]{display:none}a.player-button{text-align:center;text-decoration:none}.player-keys{left:calc(var(--dp) * 12px);right:calc(var(--dp) * 12px);margin-bottom:calc(var(--dp) * 10px);pointer-events:none;justify-content:space-between;display:flex;position:absolute;bottom:100%}.player-keys[hidden]{display:none}.player-key{border:calc(var(--dp) * 1px) solid #000;width:calc(var(--dp) * 44px);height:calc(var(--dp) * 40px);padding:calc(var(--dp) * 6px);background:#fff;justify-content:center;align-items:center;display:flex}.player-key-group{gap:calc(var(--dp) * 6px);display:flex}.player-key.held{background:#29aa27}.player-key svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:85%;height:85%}@media (pointer:coarse),(max-width:600px){.player-timeline{min-height:44px}}@font-face{font-family:Roboto Condensed;src:url(../assets/fonts/RobotoCondensed-Regular.ttf)format("truetype");font-display:block}:root{--dp:1}html,body{overscroll-behavior:none;background:#fff;height:100%;margin:0;font-family:Roboto Condensed,Arial Narrow,sans-serif;overflow:hidden}#game{touch-action:none;width:100vw;height:100dvh;display:block}.fullscreen-button{top:calc(var(--dp) * 8px + env(safe-area-inset-top,0px));right:calc(var(--dp) * 48px + env(safe-area-inset-right,0px));width:calc(var(--dp) * 36px);height:calc(var(--dp) * 36px);padding:calc(var(--dp) * 8px);color:#999;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;position:fixed}.fullscreen-button[hidden]{display:none}.fullscreen-button:hover,.fullscreen-button:active{color:#000}.fullscreen-button svg{fill:none;stroke:currentColor;stroke-width:2px;width:100%;height:100%;display:block}.keypad{justify-content:space-between;gap:calc(var(--dp) * 16px);padding:calc(var(--dp) * 12px);padding-bottom:calc(var(--dp) * 12px + env(safe-area-inset-bottom,0px));pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:flex;position:fixed;bottom:0;left:0;right:0}.keypad[hidden]{display:none}.keypad-group{gap:calc(var(--dp) * 8px);display:flex}.keypad-button{width:calc(var(--dp) * 56px);height:calc(var(--dp) * 56px);padding:calc(var(--dp) * 10px);border:calc(var(--dp) * 1px) solid #000;border-radius:calc(var(--dp) * 8px);color:#000;pointer-events:auto;touch-action:none;background:#ffffffbf;justify-content:center;align-items:center;display:flex}.keypad-button.pressed{background:#29aa27}.control-icon{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:100%;height:100%}.menu{inset:0;bottom:var(--keypad-height,0px);color:#000;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:#ffffff80;flex-direction:column;display:flex;position:fixed}.menu[hidden]{display:none}.menu-title{padding:calc(var(--dp) * 25px) calc(var(--dp) * 30px) calc(var(--dp) * 13px);font-size:calc(var(--dp) * 30px);line-height:1.1}.menu-items{padding:0 calc(var(--dp) * 30px) calc(var(--dp) * 15px);scrollbar-width:none;flex-direction:column;flex:1;display:flex;overflow-y:auto}.menu-items>*{flex-shrink:0}.menu-back{padding-top:calc(var(--dp) * 12px);margin-top:auto}.menu-items::-webkit-scrollbar{display:none}.menu-item{padding:calc(var(--dp) * 5px) 0;font-size:calc(var(--dp) * 20px);cursor:pointer;align-items:center;line-height:1.2;display:flex}.menu-item:active{color:#00a000}.menu-label{text-overflow:ellipsis;white-space:pre;min-width:0;overflow:hidden}.menu-helmet{width:calc(var(--dp) * 17.6px);height:calc(var(--dp) * 8px);flex:none}.menu-helmet-image{width:calc(var(--dp) * 8px);height:calc(var(--dp) * 8px);animation:1.8s steps(36,end) infinite menu-helmet-spin;display:none}.menu-item.selected .menu-helmet-image{display:block}@keyframes menu-helmet-spin{to{transform:rotate(360deg)}}.menu-lock{width:calc(var(--dp) * 7px);height:calc(var(--dp) * 8px);margin-right:calc(var(--dp) * 5px)}.menu-lock-after{margin-left:calc(var(--dp) * 8px)}.menu-text{padding:calc(var(--dp) * 3px) 0;font-family:Roboto,Helvetica Neue,Arial,sans-serif;font-size:calc(var(--dp) * 15px);max-width:calc(var(--dp) * 520px);align-items:center;line-height:1.5;display:flex}.menu-text-big{font-family:inherit;font-size:calc(var(--dp) * 20px);line-height:1.2}.menu-medal{width:calc(var(--dp) * 6px);height:calc(var(--dp) * 10px);margin-right:calc(var(--dp) * 8px)}.menu-name{gap:calc(var(--dp) * 14px);padding:calc(var(--dp) * 10px) calc(var(--dp) * 17.6px) calc(var(--dp) * 14px);display:flex}.menu-name-letter{align-items:center;gap:calc(var(--dp) * 6px);min-width:calc(var(--dp) * 24px);font-size:calc(var(--dp) * 30px);cursor:pointer;flex-direction:column;display:flex}.menu-name-char{text-align:center;border-bottom:calc(var(--dp) * 2px) solid transparent;min-width:1ch}.menu-name-letter.selected .menu-name-char{border-bottom-color:#000}.menu-name-arrow{width:calc(var(--dp) * 8px);height:calc(var(--dp) * 4px);padding:calc(var(--dp) * 6px) calc(var(--dp) * 8px);opacity:.25}.menu-name-letter.selected .menu-name-arrow{opacity:1}.menu-button{top:calc(var(--dp) * 6px);right:calc(var(--dp) * 4px);padding:calc(var(--dp) * 8px) calc(var(--dp) * 12px);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;position:fixed}.menu-button[hidden]{display:none}.menu-button-icon{width:calc(var(--dp) * 6px);height:calc(var(--dp) * 22px);display:block}.splash{text-align:center;background:#fff;flex-direction:column;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.splash-logo{width:calc(var(--dp) * 260px);margin:0 auto;display:block}.splash-credit{font-size:calc(var(--dp) * 18px);white-space:pre-line;line-height:1.5}.splash-tagline{margin-top:calc(var(--dp) * 8px);font-size:calc(var(--dp) * 14px);color:#666}.splash-progress{height:calc(var(--dp) * 3px);background:#c4c4c4;position:absolute;top:0;left:0;right:0}.splash-progress-bar{background:#29aa27;width:0;height:100%}.menu-dim{color:#888}.menu-input{min-width:0;max-width:calc(var(--dp) * 240px);border:0;border-bottom:calc(var(--dp) * 1px) solid #000;color:inherit;font:inherit;-webkit-user-select:text;user-select:text;background:0 0;border-radius:0;outline:none;flex:1;padding:0}.toasts{top:calc(var(--dp) * 48px + env(safe-area-inset-top,0px));align-items:center;gap:calc(var(--dp) * 6px);pointer-events:none;flex-direction:column;display:flex;position:fixed;left:0;right:0}.toast{max-width:90%;padding:calc(var(--dp) * 6px) calc(var(--dp) * 14px);color:#fff;font-size:calc(var(--dp) * 16px);text-align:center;background:#29aa27;animation:.25s ease-out toast-in}@keyframes toast-in{0%{opacity:0;transform:translateY(calc(var(--dp) * -8px))}}@media (prefers-reduced-motion:reduce){.toast{animation:none}}
