*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;color:#203c34;background:#edf1e9;font-family:system-ui,-apple-system,"Microsoft YaHei",sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #d78750;outline-offset:5px}button:disabled{cursor:default}#app{height:100%;height:100dvh;min-height:320px;position:relative;overflow:hidden}canvas{display:block;width:100%;height:100%;touch-action:none;outline-offset:-5px!important}header{position:absolute;top:max(27px,env(safe-area-inset-top));left:4%;right:4%;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.brand{color:inherit;text-decoration:none;font-weight:900;font-size:25px;letter-spacing:2px;pointer-events:auto}.brand span{display:block;font-size:8px;letter-spacing:3px;font-weight:500;margin-top:5px;color:#6d8479}nav{display:flex;gap:12px;pointer-events:auto}nav button{border:1px solid #c7d3c644;background:#ffffff70;border-radius:50px;height:43px;padding:0 18px;color:#4f6c5d;font-size:12px;backdrop-filter:blur(10px)}nav button:last-child{width:43px;padding:0;font-size:17px}.scoreboard{position:absolute;top:72px;left:50%;transform:translateX(-50%);text-align:center;pointer-events:none}.label{font-size:10px;letter-spacing:2px;color:#809285}.scoreboard strong{display:block;font-size:76px;line-height:1.2;font-weight:350;letter-spacing:-4px;font-variant-numeric:tabular-nums}.best{font-size:10px;color:#84917e;margin-top:8px}.best b{font-weight:600;margin-left:7px;color:#637f63}#toast{position:absolute;left:12px;right:12px;top:215px;text-align:center;font-size:12px;letter-spacing:1px;color:#708775;pointer-events:none}#toast.combo{color:#c18046;font-weight:700}#floating{position:absolute;left:50%;top:37%;transform:translate(-50%,15px);opacity:0;pointer-events:none;font-size:35px;font-weight:800;color:#d58d4e;transition:opacity .22s,transform .3s}#floating.show{opacity:1;transform:translate(-50%,-12px)}.controls{position:absolute;bottom:max(60px,calc(env(safe-area-inset-bottom) + 42px));left:50%;transform:translateX(-50%);width:320px;max-width:calc(100% - 64px);user-select:none;-webkit-user-select:none}.instruction{font-size:10px;color:#7d9382;display:flex;justify-content:space-between;gap:10px;margin-bottom:9px;min-height:15px}.track{height:6px;border-radius:9px;background:#c6d4c580;position:relative;margin-bottom:19px;overflow:hidden}.track i{position:absolute;height:100%;width:1px;left:25%;background:#edf1e9aa}.track i:nth-last-child(2){left:50%}.track i:last-child{left:75%}#guide{position:absolute;background:#e5ae60a0;top:0;height:100%;border-left:1px solid #d39a4d;border-right:1px solid #d39a4d}#power{height:100%;width:0;background:#315a48;position:relative;border-radius:9px}#jump{display:flex;align-items:center;justify-content:center;gap:22px;background:#244d3d;color:#fff;border:1px solid #426551;border-radius:20px;width:100%;height:75px;box-shadow:0 7px 0 #17392c,0 14px 28px #355c4020;touch-action:none;transition:background .15s,transform .1s,box-shadow .1s}#jump.pressing{transform:translateY(4px);box-shadow:0 3px 0 #17392c;background:#37674d}#jump>span:nth-child(2){font-size:16px;letter-spacing:2px}#jump small{display:block;font-size:9px;letter-spacing:4px;color:#b0c7af;margin-top:5px}.jump-icon{font-size:29px;font-weight:300}kbd{font:8px system-ui;letter-spacing:1px;border:1px solid #67866c;border-radius:5px;padding:5px;color:#b9cdb6}#tutorial{text-align:center;font-size:9px;color:#8c9b88;letter-spacing:.5px;margin:18px 0 0}footer{position:absolute;bottom:max(19px,env(safe-area-inset-bottom));left:4%;right:4%;display:flex;justify-content:space-between;color:#92a08e;font-size:10px}footer button{color:#718770;font-size:10px;border:0;background:none}footer span{pointer-events:none}.overlay{position:absolute;inset:0;z-index:10;display:grid;place-items:center;background:#e9eee4d9;backdrop-filter:blur(15px)}[hidden]{display:none!important}.dialog{text-align:center;padding:30px;max-width:420px;width:100%}.eyebrow{font-size:10px;letter-spacing:3px;color:#83967b}.dialog h1{font-size:36px;font-weight:600;letter-spacing:-1px;margin:16px 0 30px}.dialog strong{font-size:85px;display:block;font-weight:350;line-height:1.2}.dialog>p:not(.eyebrow){font-size:12px;color:#7d9275}.medallion{width:64px;height:64px;border-radius:22px;background:#d8e3ce;color:#6c8b5f;font-size:40px;margin:0 auto 30px;transform:rotate(-9deg)}.primary{background:#284f3c;color:#fff;border:0;padding:18px;width:100%;border-radius:14px;margin-top:26px;box-shadow:0 5px 0 #183828}.dialog .quiet{font-size:9px!important;margin-top:24px;color:#99a590!important}@media(max-width:600px){header{top:max(22px,env(safe-area-inset-top));left:24px;right:24px}.brand{font-size:21px}.brand span{font-size:6px}nav button{height:37px;padding:0 12px}nav button:last-child{width:37px}.scoreboard{top:91px}.scoreboard strong{font-size:65px}#toast{top:217px;font-size:10px}.controls{bottom:max(66px,calc(env(safe-area-inset-bottom) + 50px));width:290px}#jump{height:70px;border-radius:17px}footer{left:24px;right:24px;font-size:8px}footer button{font-size:9px}kbd{display:none}}@media(max-height:620px){.scoreboard{top:20px}.scoreboard strong{font-size:45px}.scoreboard .label,.best{font-size:8px}#toast{top:115px}.controls{bottom:35px;width:260px}#jump{height:50px}.track{margin-bottom:10px}#tutorial{display:none}footer{bottom:9px}.instruction{font-size:8px}header{top:18px}}

@media(max-height:620px) and (min-width:650px){.controls{left:auto;right:35px;transform:none;width:220px;bottom:95px}.scoreboard{left:auto;right:105px;transform:none;top:90px}.scoreboard strong{font-size:48px}#toast{left:auto;right:35px;top:auto;bottom:58px;width:220px;font-size:10px}header{left:30px;right:30px}footer{left:30px;right:30px}.instruction{font-size:8px}#jump{height:57px}kbd{display:none}}
canvas:focus-visible{outline:1px solid #68816b55}

.instruction{color:#57725d}.controls::before{content:"";position:absolute;inset:-17px -22px -15px;z-index:-1;pointer-events:none;border-radius:24px;background:linear-gradient(180deg,#e6ede100,#e6ede1e8 22%,#e6ede1e8 82%,#e6ede100);filter:blur(9px)}
