@charset "UTF-8";
:root{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#303d36;background:#f4f8ed;font-synthesis:none;--ink:#303d36;--green:#d4f065;--pink:#ff86a1;--line:#d4dfca;--cream:#fffdf5;--shadow:#dae3d1}
*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #345db9;outline-offset:4px}button:disabled{cursor:default}button img{pointer-events:none}button svg{pointer-events:none}h1,h2,p{margin:0}button{border:0}button:hover{filter:brightness(1.035)}[hidden]{display:none!important}
.app{height:100dvh;max-width:1280px;margin:auto;padding:14px 28px 7px;padding-top:max(14px,env(safe-area-inset-top));padding-bottom:max(7px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}
.masthead{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0}.brand{display:flex;align-items:center;gap:9px}.brand>img{transform:rotate(-9deg)}.eyebrow{display:block;font-size:10px;font-weight:800;letter-spacing:1.7px;color:#64725d}.brand h1{font-size:26px;line-height:1.25;letter-spacing:-1px;font-weight:900}.brand h1 span{color:#638039}.edition{font-size:11px;font-weight:800;align-self:flex-end;margin-bottom:4px;padding:5px 9px;border:1px solid #ccd7bb;border-radius:20px;white-space:nowrap}.masthead nav{display:flex;gap:7px}.tool{background:#fffdf5;border:1px solid #cbd6c0;border-radius:12px;min-height:44px;padding:8px 13px;font-size:13px;font-weight:700;box-shadow:0 2px 0 #dce4d2}.tool.pause{background:#303d36;color:#fffdf5;border-color:#303d36}
.game{flex:1;min-height:0;display:flex;flex-direction:column;border:2px solid var(--ink);border-radius:23px;overflow:hidden;background:var(--cream);box-shadow:0 5px 0 #d1dcc6}.hud{height:58px;display:flex;align-items:center;justify-content:space-between;padding:9px 22px;gap:12px;flex-shrink:0;background:#fffdf5;border-bottom:2px solid var(--ink)}.level-info{display:flex;align-items:center;gap:12px}.level-info>span{background:#eaf0d8;border-radius:7px;padding:5px 10px;font-size:12px;font-weight:700}.level-info strong{font-size:17px;letter-spacing:.2px}.stats{display:flex;align-items:center;gap:24px}.lives{font-size:22px;color:#d94b74;white-space:nowrap;letter-spacing:2px}.score,.remaining{display:flex;align-items:center;gap:8px}.stats small{font-size:10px;color:#697560;font-weight:600}.stats strong{font-size:21px;font-weight:900;font-variant-numeric:tabular-nums}
.stage{position:relative;flex:1;min-height:0;background:#d9f0df;display:grid;place-items:center;overflow:hidden;isolation:isolate}canvas{display:block;touch-action:none;max-width:100%;max-height:100%}.toast{position:absolute;left:50%;top:15px;transform:translate(-50%,-10px);border:2px solid var(--ink);background:#fffdf5eF;box-shadow:0 3px 0 #303d3620;border-radius:20px;padding:8px 18px;max-width:90%;font-size:13px;font-weight:700;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#eff6e666;backdrop-filter:blur(4px);padding:16px}.overlay-card{max-width:465px;background:#fffdf5f7;border:2px solid var(--ink);padding:26px 30px 20px;border-radius:25px;box-shadow:6px 7px 0 #303d3625;text-align:center}.tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.5px;background:var(--green);border-radius:20px;padding:6px 12px;margin-bottom:11px}.overlay h2{font-size:30px;line-height:1.25;font-weight:900;letter-spacing:-.7px}.overlay p{font-size:14px;line-height:1.7;color:#67715b;margin:11px 0 15px}.how-icons{display:flex;justify-content:center;gap:14px;margin:17px 0 21px;font-size:12px;font-weight:700}.how-icons b{display:block;font-size:25px;line-height:1.4;color:#7f913b}.primary{background:var(--green);border:2px solid var(--ink);min-height:54px;border-radius:14px;width:100%;font-weight:900;font-size:18px;box-shadow:0 4px 0 var(--ink);padding:10px 16px;transition:transform .15s}.primary:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}.secondary{border:1px solid #bdc7b3;background:#f1f3e9;border-radius:12px;min-height:44px;padding:9px 20px;margin-top:13px;width:100%;font-weight:700}.text-button{background:transparent;text-decoration:underline;font-size:13px;margin-top:14px;padding:8px}.overlay .overlay-note{font-size:11px;margin:14px 0 0;color:#7c866e}.result-stars{font-size:38px;letter-spacing:8px;margin:8px;color:#cf9819}
.control-deck{height:100px;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:2px solid var(--ink);flex-shrink:0;background:#fffdf5}.directions,.actions{display:flex;gap:12px;flex-shrink:0}.pad{user-select:none;-webkit-user-select:none;touch-action:none;min-width:76px;height:70px;border:2px solid var(--ink);border-radius:17px;background:#eef1e6;box-shadow:0 5px 0 #c2cdb9;display:flex;align-items:center;justify-content:center;gap:9px;transition:transform .08s,background .08s}.pad svg{width:30px;height:30px;stroke:var(--ink);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;fill:none}.pad.pressed{transform:translateY(4px);box-shadow:0 1px 0 #a6b398;background:#dce7d0}.pad.jump{width:91px;gap:1px;flex-direction:column;font-size:12px;font-weight:800;background:#ffdf98;box-shadow:0 5px 0 #dbbb74}.pad.jump.pressed{background:#efc46c;box-shadow:0 1px 0 #dbbb74}.pad.fire{background:var(--pink);box-shadow:0 5px 0 #c75d7a;width:161px;font-size:18px;font-weight:900}.pad.fire small{display:block;font-size:10px;font-weight:600;line-height:1.5;opacity:.8}.pad.fire.pressed{background:#ec6e90;box-shadow:0 1px 0 #c75d7a}.pad.ready{background:var(--green);box-shadow:0 5px 0 #9cb449}.cat-comment{display:flex;gap:8px;align-items:center;max-width:340px;min-width:0}.cat-face{width:53px;flex-shrink:0}.cat-face svg{display:block;width:100%}.cat-comment small{font-size:10px;color:#7b846c}.cat-comment p{font-size:13px;font-weight:700;line-height:1.45;margin-top:3px}.control-deck[data-disabled=true] .pad{opacity:.55}
footer{font-size:10px;color:#7f8a74;display:flex;justify-content:space-between;flex-shrink:0;padding:0 4px}footer b{font-weight:500;margin-left:8px}
dialog{color:var(--ink);border:2px solid var(--ink);border-radius:24px;box-shadow:8px 8px 0 #303d3625;background:var(--cream);width:min(620px,94vw);max-height:88dvh;padding:23px}dialog::backdrop{background:#253d3780;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dialog-heading h2{font-size:22px}.close{min-width:44px;min-height:44px;border-radius:50%;border:1px solid #d5ddcc;background:#eef1e6;font-size:29px;line-height:1}.guide{padding-left:24px}.guide li{padding:0 0 15px 6px}.guide strong{font-size:16px}.guide p{font-size:13px;line-height:1.75;color:#68715e;margin-top:3px}.keyboard-help,.map-note{font-size:12px;line-height:1.7;color:#727c66;margin:10px 0 17px}.chapter-heading{font-size:14px;margin:19px 0 9px;display:flex;align-items:center;gap:9px}.chapter-heading span{font-size:11px;color:#819269;font-weight:500}.map-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.level-button{border:1px solid #cbd8bc;min-height:75px;border-radius:13px;background:#eef3e5;padding:10px 3px;font-weight:800}.level-button strong{display:block;font-size:22px}.level-button small{font-size:10px;font-weight:500;white-space:nowrap}.level-button .stars{display:block;color:#997016;font-size:12px;letter-spacing:1px;height:17px}.level-button.current{border:2px solid #303d36;background:var(--green)}
@media(min-width:1400px){.app{padding-top:20px;padding-bottom:12px;gap:13px}.masthead{min-height:57px}}
@media(max-width:1000px){.app{padding:10px 14px 6px;gap:8px}.edition{display:none}.cat-comment{max-width:245px}.stats{gap:14px}.control-deck{padding:12px 16px}.brand h1{font-size:24px}}
@media(max-width:760px){.app{padding:8px 9px max(6px,env(safe-area-inset-bottom));gap:7px}.masthead{gap:8px;align-items:center}.brand>img{width:38px;height:38px}.brand h1{font-size:21px}.eyebrow{font-size:8px;letter-spacing:1px}.masthead nav{gap:4px}.tool{font-size:11px;padding:6px 8px;border-radius:10px}.tool#help{display:none}.hud{height:55px;padding:8px 13px}.level-info{gap:7px}.level-info>span{font-size:10px;padding:5px 7px}.level-info strong{font-size:14px}.lives{font-size:18px;letter-spacing:0}.stats{gap:9px}.score{display:none}.remaining{gap:4px}.stats strong{font-size:18px}.stats small{font-size:9px}.control-deck{height:91px;padding:10px 12px;gap:8px}.cat-comment{display:none}.directions,.actions{gap:8px}.pad{min-width:65px;height:65px}.pad.jump{width:70px}.pad.fire{width:132px;font-size:16px}.pad.fire img{width:31px}.game{border-radius:19px}footer span:first-child{display:none}footer{justify-content:center;font-size:9px}.overlay-card{padding:22px;max-width:410px}.overlay h2{font-size:27px}}
@media(max-width:480px){.brand h1{font-size:17px}.brand>img{width:31px;height:31px}.brand{gap:5px}.brand .eyebrow{font-size:6px;letter-spacing:.6px}.tool{font-size:10px;padding:6px;min-height:44px}.tool#sound{font-size:0;min-width:44px}.tool#sound:after{content:'声音';font-size:11px}.tool#sound[aria-pressed=false]:after{content:'静音'}.tool#levels{max-width:45px;line-height:1.2}.hud{padding:8px 9px}.level-info>span{display:none}.level-info strong{font-size:13px}.pad{min-width:54px;height:62px;border-radius:14px}.directions,.actions{gap:6px}.pad.jump{width:57px;font-size:10px}.pad.fire{width:103px;font-size:14px;gap:3px}.pad.fire img{width:27px}.control-deck{padding:10px;height:88px}.stats{gap:9px}.overlay{padding:11px}.overlay-card{padding:20px 16px;width:100%}.overlay h2{font-size:25px}.overlay p{font-size:12px}.how-icons{margin:12px 0 16px;font-size:11px}.tag{font-size:10px}.primary{font-size:16px;min-height:49px}.map-grid{grid-template-columns:repeat(3,1fr)}.toast{font-size:11px;padding:8px 11px}.overlay .overlay-note{font-size:10px}}
@media(max-height:620px) and (min-width:700px){.app{padding-top:5px;gap:5px}.brand h1{font-size:19px}.brand>img{width:35px;height:35px}.hud{height:42px}.control-deck{height:77px;padding:7px 17px}.pad{height:58px;min-width:70px}.pad.jump{width:80px}.pad.fire{width:146px}.overlay-card{padding:15px 24px}.overlay h2{font-size:25px}.overlay p{margin:7px 0;font-size:12px}.how-icons{display:none}.tag{margin-bottom:7px}footer{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
