/* The jump game owns the full stage; home controls and modal layers never overlap it. */
.jump-mode #app{max-width:none;padding-right:0}
.jump-mode #app>:not(#stage):not(#sheetBackdrop):not(.jump-ui):not(#toast):not(.achievement-toast){display:none!important}
.jump-mode #stage{margin:0!important;height:100%;flex:1;background:#dbecee}
.jump-mode #stage>:not(#scene){display:none!important}
.jump-mode #sheetBackdrop{right:0;z-index:40}
.jump-ui{position:absolute;inset:0;z-index:9;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;color:#31534a;font-family:inherit;isolation:isolate}
.jump-ui[hidden],.jump-ui [hidden]{display:none!important}
.jump-ui button{font:inherit;cursor:pointer;min-height:44px;-webkit-tap-highlight-color:transparent;touch-action:none}
.jump-ui button:focus-visible{outline:3px solid #4b9c84;outline-offset:4px}
.jump-top{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));left:max(14px,env(safe-area-inset-left,0px));right:max(14px,env(safe-area-inset-right,0px));display:flex;align-items:center;gap:12px;z-index:4}
.jump-top>div{flex:1}.jump-top b{display:block;font-size:17px;letter-spacing:.04em}.jump-top small{display:block;font-size:11px;margin-top:3px;color:#647e79}
.jump-top button{border:1px solid #ffffffcc;background:#ffffffdd;border-radius:24px;color:#456d60;padding:0 17px;box-shadow:0 3px 0 #adc7c666}
.jump-top button:first-child{width:46px;padding:11px}.jump-top svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round}
.jump-top button:active{transform:translateY(2px);box-shadow:none}
.jump-scorebar{position:absolute;top:calc(76px + env(safe-area-inset-top,0px));left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:2}
.jump-scorebar>div:first-child{display:flex;align-items:baseline;gap:10px}.jump-score{font-size:39px;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:#345d50;text-shadow:0 2px #ffffff88}
.jump-scorebar span{font-size:11px}.jump-wallet{display:flex;gap:10px;align-items:center;padding:9px 12px;border:1px solid #ffffffbb;border-radius:20px;background:#f8fffa9c}.jump-wallet b{font-size:12px}.jump-wallet span{color:#668b7d}
.jump-ui .runner-cheer{z-index:2;pointer-events:none;left:50%;max-width:calc(100% - 16px)}
.jump-ui .nr-kicker{font-size:10px}.jump-ui .nr-reason{font-size:12px}.jump-combo{position:absolute;top:calc(122px + env(safe-area-inset-top,0px));left:25px;font-size:11px;font-weight:800;color:#628b75;pointer-events:none}
.jump-bottom{position:absolute;bottom:calc(17px + env(safe-area-inset-bottom,0px));left:20px;right:20px;max-width:470px;margin:auto;text-align:center;pointer-events:none;z-index:3}
.jump-guide{font-size:12px;font-weight:650;margin:0 0 10px;text-shadow:0 1px 2px #ffffff}
.jump-hold{position:relative;width:100%;height:64px;overflow:hidden;border:2px solid #fff;border-radius:36px;background:#f7fffb;color:#386151;box-shadow:0 5px 0 #b1cec5,0 8px 20px #789f931c;pointer-events:auto;isolation:isolate}
.jump-hold b{position:relative;z-index:2;font-size:17px;letter-spacing:.06em;pointer-events:none}.jump-charge-fill{position:absolute;inset:0;background:#a8dcc6;transform:scaleX(0);transform-origin:left;pointer-events:none}
.jump-charge-target{position:absolute;top:6px;bottom:6px;width:4px;border-radius:3px;background:#498d77;opacity:.55;pointer-events:none}
.jump-hold.is-charging{box-shadow:0 2px 0 #9ec4b6;transform:translateY(3px)}.jump-hold.is-airborne{color:#77978a}.jump-tip{display:block;margin-top:11px;font-size:10px;color:#68897f}
.jump-modal{position:absolute;inset:0;z-index:12;display:flex;align-items:center;justify-content:center;padding:20px;background:#22433d40;backdrop-filter:blur(5px);touch-action:pan-y}
.jump-modal section{width:min(100%,390px);max-height:calc(100% - 12px);overflow:auto;overscroll-behavior:contain;padding:26px 24px 21px;border:2px solid #fff;border-radius:28px;background:#fafffc;box-shadow:0 12px 50px #37584730;touch-action:pan-y;text-align:center}
.jump-modal h2{font-size:24px;margin:0 0 17px;color:#315b48}.jump-panel-body{font-size:13px;line-height:1.75;color:#617b6f}.jump-panel-body p{margin:8px 0 14px}.jump-panel-body details{text-align:left;border-top:1px solid #dbe9df;margin:15px 0 6px;padding:9px 0;font-size:11px}.jump-panel-body summary{min-height:30px;cursor:pointer;line-height:30px}
.jump-result-score b{font-size:55px;display:block;line-height:1.2;color:#3b7559}.jump-result-score span{font-size:12px}.jump-result-wallet{background:#e6f4ea;border:1px solid #d4e9d9;border-radius:15px;padding:13px;font-weight:750;color:#467654}
.jump-modal button{width:100%;border-radius:28px;padding:12px 16px;border:0;margin-top:10px}.jump-modal .jump-primary{background:#477c60;color:#fff;box-shadow:0 4px #315841;font-size:16px;font-weight:750}.jump-modal .jump-secondary{background:#edf4ee;color:#678371;font-size:13px}
.jump-modal button:active{transform:translateY(2px)}
.jump-card-icon{position:relative;width:44px;height:44px;border-radius:14px;background:#e4f1e8;flex:none;overflow:hidden}.jump-card-icon::before,.jump-card-icon::after{content:'';position:absolute;bottom:8px;width:15px;height:9px;border-radius:4px;background:#81b89e;box-shadow:0 3px #58977c}.jump-card-icon::before{left:5px}.jump-card-icon::after{right:4px;bottom:17px;background:#e3b8c3;box-shadow:0 3px #ba8998}.jump-card-icon i{position:absolute;left:9px;top:7px;width:22px;height:14px;border-top:2px dashed #769d89;border-radius:50%;transform:rotate(-25deg)}
@media(max-height:650px){.jump-top{top:calc(8px + env(safe-area-inset-top,0px))}.jump-scorebar{top:calc(66px + env(safe-area-inset-top,0px))}.jump-score{font-size:30px}.jump-combo{top:calc(101px + env(safe-area-inset-top,0px))}.jump-hold{height:55px}.jump-bottom{bottom:calc(12px + env(safe-area-inset-bottom,0px))}.jump-guide{margin-bottom:7px}.jump-tip{margin-top:8px}}
@media(orientation:landscape) and (max-height:600px){.jump-top{right:auto;width:235px}.jump-top b{font-size:14px}.jump-top small{font-size:10px}.jump-top{gap:8px}.jump-top button{padding:0 12px}.jump-scorebar{top:14px;left:auto;right:22px;gap:14px}.jump-combo{left:auto;right:25px;top:58px}.jump-bottom{left:auto;right:20px;width:270px;bottom:14px}.jump-hold{height:48px}.jump-hold b{font-size:14px}.jump-guide{font-size:10px}.jump-tip{display:none}.jump-modal section{padding:18px 24px}.jump-modal h2{font-size:20px;margin-bottom:9px}.jump-result-score b{font-size:35px}}
@media(prefers-reduced-motion:reduce){.jump-ui button{transition:none}.jump-hold.is-charging{transform:none}}
