html,body,#root{height:100%;margin:0}body{background:#cfe8f5;color:#fff;font-family:system-ui,sans-serif;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}.game{position:fixed;top:0;right:0;bottom:0;left:0}.game-canvas{display:block;width:100%;height:100%;touch-action:none}.loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:0 16px;color:#1d3a2a;font-size:1.2rem;text-align:center}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;text-shadow:0 2px 6px rgba(0,0,0,.55);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.hud-top{position:absolute;top:16px;left:50%;transform:translate(-50%);text-align:center}.hud-timer{font-size:2.6rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.02em}.hud-progress{width:min(360px,60vw);height:6px;margin-top:4px;border-radius:3px;background:#00000059;overflow:hidden}.hud-progress-fill{height:100%;background:#ffd84a}.hud-speed{position:absolute;left:24px;bottom:20px;font-size:3.4rem}.hud-speed-value{font-weight:800;font-variant-numeric:tabular-nums}.hud-speed-unit{margin-left:6px;font-size:1rem;opacity:.85}.hud-speed-near .hud-speed-value{color:#ffd84a}.hud-speed-over .hud-speed-value{color:#ff6b4a;animation:burn .18s infinite alternate}.hud-speed-value{display:inline-block;transform-origin:left bottom;transition:font-size .15s}@keyframes burn{0%{text-shadow:0 0 6px #ffb347,0 -4px 14px #ff5a1f,0 2px 6px rgba(0,0,0,.55);transform:rotate(-1.5deg)}to{text-shadow:0 0 12px #ffd84a,0 -9px 22px #ff3d00,0 2px 6px rgba(0,0,0,.55);transform:rotate(1.5deg)}}.hud-streak{font-size:1.1rem;font-weight:800;color:#ffd84a;font-variant-numeric:tabular-nums}.hud-edge{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,transparent 52%,rgba(255,120,40,.16) 78%,rgba(40,10,0,.6) 100%);transition:opacity .12s}.hud-sound{position:absolute;right:16px;bottom:14px;padding:4px 10px;border:none;border-radius:8px;background:#0000004d;color:#fff;font:inherit;font-size:.8rem;opacity:.7;cursor:pointer;pointer-events:auto}.hud-sound:hover{opacity:1}.hud-stumble{position:absolute;left:50%;top:30%;transform:translate(-50%) rotate(2deg);font-size:clamp(1.3rem,6.5vw,2.2rem);font-weight:800;color:#ff6b4a;white-space:nowrap}.hud-hint{position:absolute;left:50%;bottom:24px;transform:translate(-50%);padding:6px 14px;border-radius:999px;background:#0006;font-size:.95rem;white-space:nowrap}.hud-start{position:absolute;left:50%;top:34%;transform:translate(-50%);font-size:1.6rem;font-weight:700}.hud-fall{position:absolute;left:50%;top:22%;transform:translate(-50%) rotate(-2deg);animation:comment-pop .25s ease-out;font-size:clamp(1.1rem,5.2vw,2rem);font-weight:800;color:#ffd84a;white-space:nowrap}.hud-dev{position:absolute;left:24px;top:16px;font-family:ui-monospace,monospace;font-size:.8rem;line-height:1.5}.hud-balance{width:180px;height:8px;border-radius:4px;background:#0006;overflow:hidden}.hud-balance-fill{height:100%;background:#7be08a}.dev-panel,.dev-toggle{position:absolute;top:12px;right:12px;font-family:ui-monospace,monospace;font-size:.75rem}.dev-panel{width:330px;max-height:calc(100% - 24px);overflow-y:auto;padding:10px;border-radius:10px;background:#101814db;color:#e6efe8}.dev-panel button,.dev-toggle{padding:3px 8px;border:1px solid rgba(255,255,255,.25);border-radius:6px;background:#ffffff14;color:inherit;font:inherit;cursor:pointer}.dev-toggle{background:#101814db;color:#e6efe8}.dev-header{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px}.dev-header span{flex:1;opacity:.7}.dev-group-title{width:100%;margin:3px 0;text-align:left}.dev-field{display:grid;grid-template-columns:128px 1fr 44px;align-items:center;gap:6px;padding:1px 0}.dev-field-changed .dev-field-name{color:#ffd84a}.dev-field-value{text-align:right;font-variant-numeric:tabular-nums}.dev-field input{width:100%;min-width:0}.dev-note{margin-top:8px;opacity:.65}.hud-target{margin-top:6px;font-size:.95rem;font-variant-numeric:tabular-nums;opacity:.9}.hud-count{position:absolute;left:50%;top:30%;transform:translate(-50%);font-size:clamp(4rem,24vmin,7rem);font-weight:900;color:#ffd84a;animation:count-pop .9s ease-out both}@keyframes count-pop{0%{opacity:0;transform:translate(-50%) scale(1.8)}25%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:.75;transform:translate(-50%) scale(.9)}}.hud-flyover{position:absolute;left:50%;top:24px;transform:translate(-50%);font-family:ui-monospace,monospace;font-size:clamp(.75rem,3.4vw,1.1rem);white-space:nowrap}.hud-tap{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:auto}.hud-ghost{display:table;margin:3px auto 0;padding:1px 9px;border-radius:999px;background:#0000004d;font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums}.hud-ghost-best{color:#bfe9ff}.hud-ghost-leader{color:#ffd84a}.medal{display:inline-flex;align-items:center;gap:6px}.medal-disc{display:inline-block;width:14px;height:14px;border-radius:50%;background:#ffffff2e;box-shadow:inset 0 -2px #00000040;flex:none}.medal-gold .medal-disc,.medal-disc.medal-gold{background:#f5c542}.medal-silver .medal-disc,.medal-disc.medal-silver{background:#cfd6dc}.medal-bronze .medal-disc,.medal-disc.medal-bronze{background:#c9834a}@keyframes comment-pop{0%{opacity:0;transform:translate(-50%) rotate(-2deg) scale(1.5)}to{opacity:1;transform:translate(-50%) rotate(-2deg) scale(1)}}.menu{position:absolute;left:5%;top:50%;transform:translateY(-50%);width:min(440px,90%);max-height:94%;overflow-y:auto;padding:24px 28px;border-radius:18px;background:#14221ad6;box-sizing:border-box}.menu-title{margin:0;font-size:2.3rem;font-weight:900;letter-spacing:-.02em;color:#ffd84a}.menu-tagline{margin:4px 0 18px;opacity:.85}.menu-note{opacity:.85}.menu-row{display:flex;gap:8px;margin-bottom:10px}.menu button,.menu-seed{padding:8px 10px;border:1px solid rgba(255,255,255,.25);border-radius:9px;background:#ffffff14;color:#fff;font:inherit}.menu button{cursor:pointer}.menu button:hover{background:#ffffff2e}.menu-seed{flex:1;min-width:0;font-family:ui-monospace,monospace}.menu-size{flex:1;display:flex;flex-direction:column;align-items:center;font-weight:700}.menu-size small{font-weight:400;opacity:.75}.menu button.menu-size-active{border-color:#ffd84a;background:#ffd84a33}.menu-times{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px 14px;margin:16px 0;font-variant-numeric:tabular-nums}.menu-best strong{margin-left:auto}.menu-best{grid-column:1 / -1;display:flex;gap:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.15)}.menu button.menu-start{width:100%;padding:13px;border:none;background:#ffd84a;color:#1d2a1f;font-size:1.25rem;font-weight:800}.menu button.menu-start:hover{background:#ffe585}.menu-keys{margin:12px 0 0;font-size:.8rem;line-height:1.6;opacity:.75}.menu-recent{margin-top:16px;display:flex;flex-direction:column;gap:5px}.menu-recent-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;opacity:.7}.menu-recent button{display:flex;align-items:center;gap:8px;padding:6px 10px;text-align:left;font-size:.9rem;font-variant-numeric:tabular-nums}.menu-recent-id{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.results{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);min-width:320px;max-height:96%;overflow-y:auto;box-sizing:border-box;pointer-events:auto;--pad-y: 22px;--pad-x: 32px;padding:var(--pad-y) var(--pad-x);border-radius:18px;background:#14221adb;text-align:center;text-shadow:none}.results-time{font-size:3.4rem;font-weight:900;font-variant-numeric:tabular-nums;color:#ffd84a}.results-medal{justify-content:center;font-size:1.3rem;font-weight:800}.results-medal .medal-disc{width:22px;height:22px}.results-how{margin-top:6px;opacity:.9}.results-best{margin-top:6px;font-weight:800;color:#7be08a}.results-note{margin-top:6px;opacity:.75}.results-stats{width:100%;margin:14px 0;border-collapse:collapse;text-align:left}.results-stats td{padding:3px 0}.results-stats td:last-child{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.results-board{margin-bottom:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.15)}.results-rank{margin-bottom:6px;font-size:1.15rem;font-weight:800;color:#ffd84a}.results-name{display:flex;gap:8px}.results-name input,.results-name button,.results-retry{padding:8px 10px;border:1px solid rgba(255,255,255,.25);border-radius:9px;background:#ffffff14;color:#fff;font:inherit}.results-name input{flex:1;min-width:0;user-select:text;-webkit-user-select:text}.results-name button,.results-retry{cursor:pointer}.results-name button:hover,.results-retry:hover{background:#ffffff2e}.results-retry{padding:3px 8px}.results-times{display:flex;justify-content:center;gap:16px;font-variant-numeric:tabular-nums;opacity:.9}.results-keys{margin-top:6px;font-size:.85rem;opacity:.75}.results-slope{margin-top:6px;font-family:ui-monospace,monospace;font-size:.8rem;opacity:.6}.results-actions{position:sticky;bottom:0;display:flex;gap:8px;margin:10px calc(-1 * var(--pad-x)) calc(-1 * var(--pad-y));padding:10px var(--pad-x) var(--pad-y);background:#17261d}.results-actions button{flex:1;padding:10px 6px;white-space:nowrap;border:1px solid rgba(255,255,255,.25);border-radius:9px;background:#2b3d32;color:#fff;font:inherit;font-weight:700;cursor:pointer}.results-actions button:hover{background:#3a5043}.results-actions button.results-again{flex:2;border:none;background:#ffd84a;color:#1d2a1f}.results-actions button.results-again:hover{background:#ffe585}.menu-player label,.menu-label{align-self:center;opacity:.8}.menu-player{margin:0 0 12px}.side{position:absolute;right:5%;top:50%;transform:translateY(-50%);width:min(380px,38%);max-height:94%;overflow-y:auto;padding:20px 24px;border-radius:18px;background:#14221ad6;box-sizing:border-box}.side-title,.side-tab{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em}.side-title{margin-bottom:8px;opacity:.7}.side-note{margin:0;opacity:.85;line-height:1.4}.side-count{margin:8px 0 0;font-size:.85rem;opacity:.7}.board{width:100%;border-collapse:collapse;text-align:left;font-variant-numeric:tabular-nums}.board td{padding:4px 6px}.board-rank{width:1.6em;text-align:right;opacity:.7}.board-name{max-width:9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.board-manner{font-size:.85rem;opacity:.7;white-space:nowrap}.board-time{text-align:right;font-weight:700}.board-you td{background:#ffd84a33;color:#ffe585}.board-you td:first-child{border-radius:7px 0 0 7px}.board-you td:last-child{border-radius:0 7px 7px 0}.board-gap td{padding:0 6px;text-align:center;opacity:.5}.side-lists{margin-top:16px;padding-top:12px;border-top:1px solid rgba(255,255,255,.15);display:flex;flex-direction:column;gap:5px}.side-tabs{display:flex;gap:14px;margin-bottom:4px}.side button{border:none;background:none;color:#fff;font:inherit;cursor:pointer}.side button.side-tab{padding:0 0 3px;border-bottom:2px solid transparent;font-size:.8rem;opacity:.6}.side button.side-tab-active{border-bottom-color:#ffd84a;opacity:1}.side button.side-slope{display:flex;flex-direction:column;gap:1px;padding:6px 10px;border:1px solid rgba(255,255,255,.25);border-radius:9px;background:#ffffff14;text-align:left;font-size:.9rem}.side button.side-slope:hover{background:#ffffff2e}.side-slope-id,.side-slope-info{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.side-slope-info{font-size:.8rem;font-variant-numeric:tabular-nums;opacity:.7}.touch{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;--button: clamp(62px, 19vmin, 100px)}.touch-pad{position:absolute;bottom:max(6px,env(safe-area-inset-bottom));padding:12px;gap:10px;pointer-events:auto;touch-action:none}.touch-steer{left:max(2px,env(safe-area-inset-left));display:flex}.touch-move{right:max(2px,env(safe-area-inset-right));display:grid;grid-template-columns:var(--button) var(--button);grid-template-areas:"jump run" "jump brake";align-items:center}@media (orientation: portrait){.touch-pad{bottom:max(26px,calc(env(safe-area-inset-bottom) + 14px))}}.touch-button{display:flex;align-items:center;justify-content:center;width:var(--button);height:var(--button);box-sizing:border-box;border:2px solid rgba(255,255,255,.5);border-radius:22%;background:#0c140f4d;color:#fff;font-size:clamp(.75rem,3.5vmin,1rem);font-weight:800;letter-spacing:.04em;text-transform:uppercase;text-shadow:0 1px 3px rgba(0,0,0,.6)}.touch-left,.touch-right{font-size:clamp(1.4rem,7vmin,2.2rem)}.touch-jump{grid-area:jump;border-radius:50%}.touch-run{grid-area:run}.touch-brake{grid-area:brake}.touch-held{border-color:#ffd84a;background:#ffd84a80}.touch-top{position:absolute;top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));display:flex;gap:6px;pointer-events:auto}@media (orientation: portrait){.touch-top{flex-direction:column}}.touch-top button,.hud-touch .hud-sound{padding:9px 11px;border:none;border-radius:9px;background:#00000059;color:#fff;font:inherit;font-size:.8rem;font-weight:700;opacity:1}.hud-touch .hud-speed{left:max(14px,env(safe-area-inset-left));top:max(10px,env(safe-area-inset-top));bottom:auto;font-size:2.1rem}.hud-touch .hud-speed-value{transform-origin:left top}.hud-touch .hud-speed-unit{font-size:.8rem}.hud-touch .hud-streak{font-size:.85rem}.hud-touch .hud-top{top:max(10px,env(safe-area-inset-top));max-width:50vw}.hud-touch .hud-timer{font-size:2rem}.hud-touch .hud-progress{width:min(300px,38vw);margin:4px auto 0}.hud-touch .hud-target,.hud-touch .hud-ghost{font-size:.8rem}.hud-touch .hud-sound{top:max(10px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));bottom:auto}@media (max-width: 900px){.screens{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;gap:10px;box-sizing:border-box;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));overflow-y:auto}.screens .menu,.screens .side{position:static;flex:none;width:auto;max-height:none;overflow:visible;transform:none}.screens .menu{padding:16px 18px}.menu-title{font-size:1.8rem}.menu-tagline{margin-bottom:12px}.menu button.menu-start{position:sticky;bottom:6px;z-index:1;box-shadow:0 4px 14px #00000073}}@media (max-width: 900px) and (orientation: landscape){.screens{flex-direction:row;align-items:flex-start}.screens .menu,.screens .side{flex:1 1 0;min-width:0}}.menu-touch{margin:10px 0 0}.menu-touch button{flex:1}@media (max-width: 600px),(max-height: 480px){.results{width:min(440px,94%);min-width:0;--pad-y: 14px;--pad-x: 16px}.results-time{font-size:2.4rem}.results-stats{margin:8px 0;font-size:.9rem}}
