.home[data-v-a27c7df2]{min-height:100%;padding:28px 20px 40px;gap:24px;position:relative}.clouds[data-v-a27c7df2]{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cloud[data-v-a27c7df2]{position:absolute;font-size:54px;opacity:.75}.c1[data-v-a27c7df2]{top:40px;left:6%}.c2[data-v-a27c7df2]{top:120px;right:8%;font-size:70px}.c3[data-v-a27c7df2]{top:260px;left:12%;font-size:40px}.hero[data-v-a27c7df2]{text-align:center}.logo[data-v-a27c7df2]{font-size:62px}.sub[data-v-a27c7df2]{font-size:20px;opacity:.8;margin:4px 0 0}.panel[data-v-a27c7df2]{padding:22px 28px}.big[data-v-a27c7df2]{font-size:22px;padding:14px 30px}.stat-row[data-v-a27c7df2]{flex-wrap:wrap;justify-content:center}.stat[data-v-a27c7df2]{text-align:center;min-width:150px}.stat .k[data-v-a27c7df2]{font-size:15px;opacity:.7}.stat .v[data-v-a27c7df2]{font-size:24px;font-weight:900}.actions[data-v-a27c7df2]{flex-wrap:wrap;justify-content:center}.chapters[data-v-a27c7df2]{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;width:min(1000px,100%)}.chapter[data-v-a27c7df2]{padding:14px 18px;display:flex;flex-direction:column;gap:4px}.chapter .ic[data-v-a27c7df2]{font-size:30px}.chapter .nm[data-v-a27c7df2]{font-weight:900;font-size:19px}.chapter .ds[data-v-a27c7df2]{font-size:15px;opacity:.75;line-height:1.5}.settings[data-v-a27c7df2]{width:min(760px,100%)}.wrap-row[data-v-a27c7df2]{flex-wrap:wrap}.name-input[data-v-a27c7df2]{font-family:inherit;font-size:18px;font-weight:800;padding:6px 12px;border:3px solid var(--ink);border-radius:12px;width:150px;outline:none}.small-text[data-v-a27c7df2]{font-size:14px}.stars[data-v-4face970]{display:inline-flex;gap:4px;line-height:1}.star[data-v-4face970]{color:#cfd3e0;text-shadow:2px 2px 0 rgba(43,45,66,.25)}.star.on[data-v-4face970]{color:var(--yellow);-webkit-text-stroke:2px var(--ink)}.star.pop[data-v-4face970]{animation:pop .4s ease both}.map[data-v-38bbc9ee]{padding:20px 20px 40px;max-width:1080px;margin:0 auto;width:100%}.head[data-v-38bbc9ee]{position:sticky;top:0;z-index:5;background:#fff9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;padding:8px 14px;flex-wrap:wrap}.spacer[data-v-38bbc9ee]{flex:1}.stars-total[data-v-38bbc9ee]{font-weight:900}.chapter[data-v-38bbc9ee]{padding:16px 18px}.ch-head[data-v-38bbc9ee]{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.ch-icon[data-v-38bbc9ee]{width:52px;height:52px;display:flex;align-items:center;justify-content:center;font-size:28px;border:4px solid var(--ink);border-radius:16px}.ch-stars[data-v-38bbc9ee]{margin-left:auto;font-weight:900}.small[data-v-38bbc9ee]{font-size:14px}.nodes[data-v-38bbc9ee]{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:14px}.node[data-v-38bbc9ee]{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px 10px;border:4px solid var(--ink);border-radius:20px;background:var(--c, #fff);box-shadow:0 6px 0 var(--ink);cursor:pointer;font-family:inherit;color:var(--ink);transition:transform .08s ease}.node[data-v-38bbc9ee]:active{transform:translateY(4px);box-shadow:0 2px 0 var(--ink)}.node .num[data-v-38bbc9ee]{font-size:28px;font-weight:900}.node .nm[data-v-38bbc9ee]{font-size:14px;font-weight:800;text-align:center;line-height:1.3}.node.locked[data-v-38bbc9ee]{background:#e7e9f2;color:#8b90a5;box-shadow:0 6px #b9bfd0;cursor:not-allowed}.node.cleared[data-v-38bbc9ee]{outline:4px solid var(--green);outline-offset:2px}.toast[data-v-38bbc9ee]{position:fixed;left:50%;bottom:32px;transform:translate(-50%);background:var(--ink);color:#fff;padding:12px 24px;border-radius:999px;font-size:18px;z-index:40}.toast-enter-active[data-v-38bbc9ee],.toast-leave-active[data-v-38bbc9ee]{transition:opacity .2s ease}.toast-enter-from[data-v-38bbc9ee],.toast-leave-to[data-v-38bbc9ee]{opacity:0}.mask[data-v-53d6f2d9]{position:fixed;top:0;right:0;bottom:0;left:0;background:#2b2d4273;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.panel[data-v-53d6f2d9]{width:min(560px,100%);padding:28px;text-align:center;position:relative;max-height:92vh;overflow:auto}.ribbon[data-v-53d6f2d9]{font-size:30px;font-weight:900}.hero[data-v-53d6f2d9]{margin:6px 0 10px}.emoji[data-v-53d6f2d9]{font-size:76px;display:inline-block}.stats[data-v-53d6f2d9]{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:10px;margin:18px 0 6px}.stat[data-v-53d6f2d9]{background:#f2f5ff;border:3px solid var(--ink);border-radius:16px;padding:8px 4px}.stat .k[data-v-53d6f2d9]{font-size:14px;opacity:.7}.stat .v[data-v-53d6f2d9]{font-size:22px;font-weight:900}.stat small[data-v-53d6f2d9]{font-size:12px;font-weight:700}.record[data-v-53d6f2d9]{margin-top:10px;color:#e08b00;font-weight:900;font-size:20px}.tip[data-v-53d6f2d9]{margin:8px 0 18px;font-size:17px;opacity:.85}.actions[data-v-53d6f2d9]{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.confetti[data-v-b03e4dd2]{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:60}.piece[data-v-b03e4dd2]{position:absolute;top:-10%;border-radius:3px;animation-name:fall-b03e4dd2;animation-timing-function:linear;animation-iteration-count:1}@keyframes fall-b03e4dd2{0%{top:-10%;opacity:1}to{top:110%;opacity:.9}}.kb[data-v-27ba209e]{display:flex;flex-direction:column;gap:8px;padding:18px;background:#fffdf6;border:5px solid var(--ink);border-radius:22px;box-shadow:0 8px 0 var(--ink)}.kb-row[data-v-27ba209e]{display:flex;gap:8px}.key[data-v-27ba209e]{display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:800;border:4px solid var(--ink);border-radius:12px;background:#fff;box-shadow:0 4px 0 var(--ink);transition:transform .1s ease,background .15s ease,color .15s ease}.key.is-active[data-v-27ba209e]{background:var(--yellow);transform:translateY(3px) scale(1.06);box-shadow:0 1px 0 var(--ink);animation:pop .25s ease}.key.is-right[data-v-27ba209e]{background:var(--green);color:#fff;transform:translateY(3px) scale(1.06);box-shadow:0 1px 0 var(--ink)}.key.is-wrong[data-v-27ba209e]{background:var(--red);color:#fff;animation:shake .3s ease}.wrap[data-v-a801e922]{padding:8px 0}.prompt[data-v-a801e922]{padding:14px 40px;text-align:center;transition:background .15s ease}.prompt.ok[data-v-a801e922]{background:#d8f7f1}.prompt.bad[data-v-a801e922]{background:#ffe0e0;animation:shake .3s ease}.label[data-v-a801e922]{font-size:18px;opacity:.7}.big-key[data-v-a801e922]{font-size:76px;font-weight:900;line-height:1.1;text-transform:uppercase}.hint[data-v-a801e922]{font-size:17px;opacity:.8}.wrap[data-v-1a8d3214]{padding:6px 0}.badge[data-v-1a8d3214]{background:var(--yellow);border:4px solid var(--ink);border-radius:999px;padding:6px 20px;font-weight:900;box-shadow:0 4px 0 var(--ink)}.target[data-v-1a8d3214]{padding:22px 28px;display:flex;flex-wrap:wrap;justify-content:center;gap:4px;transition:background .15s ease}.target.bad[data-v-1a8d3214]{background:#ffe0e0;animation:shake .3s ease}.ch[data-v-1a8d3214]{font-size:52px;font-weight:900;line-height:1.2;color:#b9bfd0;border-bottom:6px solid transparent;min-width:26px;text-align:center}.target.sentence .ch[data-v-1a8d3214]{font-size:34px}.ch.done[data-v-1a8d3214]{color:var(--green)}.ch.cur[data-v-1a8d3214]{color:var(--ink);background:var(--yellow);border-radius:10px;border-bottom-color:var(--orange);animation:pop .2s ease}.ch.space[data-v-1a8d3214]{min-width:22px;opacity:.55}.hint[data-v-1a8d3214]{font-size:17px;opacity:.8}.wrap[data-v-4b776e15]{padding:6px 0}.wrap-row[data-v-4b776e15]{flex-wrap:wrap;justify-content:center;align-items:stretch}.badge[data-v-4b776e15]{background:var(--purple);color:#fff;border:4px solid var(--ink);border-radius:999px;padding:6px 20px;font-weight:900;box-shadow:0 4px 0 var(--ink)}.target[data-v-4b776e15]{padding:18px 26px;display:flex;gap:8px;transition:background .15s ease}.target.bad[data-v-4b776e15]{background:#ffe0e0;animation:shake .3s ease}.d[data-v-4b776e15]{width:54px;height:70px;display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:900;color:#b9bfd0;border:4px dashed #d6dae8;border-radius:14px}.d.done[data-v-4b776e15]{color:#fff;background:var(--green);border-style:solid;border-color:var(--ink)}.d.cur[data-v-4b776e15]{color:var(--ink);background:var(--yellow);border-style:solid;border-color:var(--ink);transform:scale(1.06)}.tips[data-v-4b776e15]{padding:14px 20px;align-self:center}.tips .t[data-v-4b776e15]{font-weight:900;margin-bottom:6px}.tips ul[data-v-4b776e15]{margin:0;padding-left:22px;font-size:16px;line-height:1.7}.hint[data-v-4b776e15]{font-size:17px;opacity:.8}.wrap[data-v-770f407a]{padding:4px 0}.badge[data-v-770f407a]{align-self:center;background:var(--pink);border:4px solid var(--ink);border-radius:999px;padding:6px 22px;font-weight:900;box-shadow:0 4px 0 var(--ink)}.area[data-v-770f407a]{position:relative;height:420px;overflow:hidden;background:linear-gradient(180deg,#eafaff,#f4ffe9);cursor:crosshair;transition:background .15s ease}.area.bad[data-v-770f407a]{background:#ffe6e6}.area.grabbing[data-v-770f407a]{cursor:grabbing}.target[data-v-770f407a]{position:absolute;display:flex;align-items:center;justify-content:center;line-height:1;cursor:pointer;filter:drop-shadow(0 6px 6px rgba(43,45,66,.25))}.target.slide[data-v-770f407a]{transition:left .16s ease,top .16s ease}.target.dragging[data-v-770f407a]{transition:none;transform:scale(1.1)}.drop[data-v-770f407a]{position:absolute;border:5px dashed var(--ink);border-radius:22px;background:#ffd93d59;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:18px;opacity:.9}.toast[data-v-770f407a]{position:absolute;left:50%;bottom:16px;transform:translate(-50%);background:var(--ink);color:#fff;padding:8px 18px;border-radius:999px;font-size:16px}.toast-enter-active[data-v-770f407a],.toast-leave-active[data-v-770f407a]{transition:opacity .2s ease}.toast-enter-from[data-v-770f407a],.toast-leave-to[data-v-770f407a]{opacity:0}.hint[data-v-770f407a]{font-size:17px;opacity:.8}.wrap[data-v-50df389f]{padding:6px 0}.badge[data-v-50df389f]{background:var(--yellow);border:4px solid var(--ink);border-radius:999px;padding:6px 22px;font-weight:900;box-shadow:0 4px 0 var(--ink)}.panel[data-v-50df389f]{padding:18px 40px;text-align:center;min-width:380px;transition:background .15s ease}.panel.bad[data-v-50df389f]{background:#ffe0e0;animation:shake .3s ease}.label[data-v-50df389f]{font-size:22px;opacity:.75}.keys[data-v-50df389f]{display:flex;gap:12px;justify-content:center;align-items:center;margin:10px 0}.key[data-v-50df389f]{display:inline-flex;align-items:center;justify-content:center;min-width:86px;padding:10px 14px;font-size:30px;font-weight:900;border:5px solid var(--ink);border-radius:16px;background:var(--yellow);box-shadow:0 6px 0 var(--ink)}.key.dim[data-v-50df389f]{background:#fff;opacity:.55}.plus[data-v-50df389f]{font-size:26px;font-weight:900}.keys-text[data-v-50df389f]{font-size:18px;opacity:.7}.steps[data-v-50df389f]{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:16px;opacity:.85}.hint[data-v-50df389f]{font-size:17px;opacity:.8}.wrap[data-v-bd1199e2]{padding:6px 0}.badge[data-v-bd1199e2]{background:var(--red);color:#fff;border:4px solid var(--ink);border-radius:999px;padding:6px 22px;font-weight:900;box-shadow:0 4px 0 var(--ink)}.pinyin[data-v-bd1199e2]{font-size:22px;letter-spacing:2px;color:#4a4f6a;background:#fff;border:3px dashed #b9bfd0;border-radius:999px;padding:4px 22px}.target[data-v-bd1199e2]{padding:18px 26px;display:flex;gap:6px;flex-wrap:wrap;justify-content:center;transition:background .15s ease}.target.bad[data-v-bd1199e2]{background:#ffe0e0;animation:shake .3s ease}.ch[data-v-bd1199e2]{font-size:46px;font-weight:900;color:#b9bfd0;min-width:40px;text-align:center;border-bottom:6px solid transparent}.ch.done[data-v-bd1199e2]{color:var(--green)}.ch.cur[data-v-bd1199e2]{color:var(--ink);background:var(--yellow);border-radius:10px;border-bottom-color:var(--orange)}.input[data-v-bd1199e2]{width:min(520px,90%);font-family:inherit;font-size:26px;font-weight:800;text-align:center;padding:12px 18px;border:5px solid var(--ink);border-radius:18px;background:#fff;box-shadow:0 6px 0 var(--ink);outline:none;-webkit-user-select:text;user-select:text}.note[data-v-bd1199e2]{font-size:15px;opacity:.75}.hint[data-v-bd1199e2]{font-size:17px;opacity:.8}.play[data-v-04b6633a]{padding:16px 20px 40px;max-width:1080px;margin:0 auto;gap:14px}.top[data-v-04b6633a]{flex-wrap:wrap;gap:12px;align-items:center}.spacer[data-v-04b6633a]{flex:1}.lv-name[data-v-04b6633a]{font-size:22px;font-weight:900;display:flex;align-items:center;gap:8px}.ch-dot[data-v-04b6633a]{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:3px solid var(--ink);border-radius:12px;font-size:20px}.small[data-v-04b6633a]{font-size:14px}.best[data-v-04b6633a]{font-size:15px;font-weight:800;opacity:.8}.hud[data-v-04b6633a]{display:flex;gap:18px;align-items:center;padding:10px 18px;flex-wrap:wrap}.hud-item[data-v-04b6633a]{display:flex;align-items:center;gap:10px}.hud-item .k[data-v-04b6633a]{font-size:14px;opacity:.7}.hud-item .v[data-v-04b6633a]{font-size:20px;font-weight:900}.hud-item .v.danger[data-v-04b6633a]{color:var(--red)}.hud-item .v.combo.hot[data-v-04b6633a]{color:var(--orange)}.bar[data-v-04b6633a]{width:180px;height:16px;border:3px solid var(--ink);border-radius:999px;background:#fff;overflow:hidden}.bar i[data-v-04b6633a]{display:block;height:100%;background:var(--green);transition:width .2s ease}.stage[data-v-04b6633a]{min-height:480px;padding:20px;position:relative;background:linear-gradient(180deg,#fffdf6,#f7fbff)}.ready[data-v-04b6633a]{text-align:center;gap:10px}.ready-icon[data-v-04b6633a]{font-size:84px}.tip-card[data-v-04b6633a]{padding:14px 22px;text-align:left;font-size:17px;line-height:1.9;background:#f2f7ff}.count[data-v-04b6633a]{font-size:120px;font-weight:900;color:var(--orange);text-shadow:4px 4px 0 #fff}.big[data-v-04b6633a]{font-size:22px;padding:14px 34px}.app[data-v-6f6f85be]{min-height:100%}:root{--ink: #2b2d42;--orange: #ff8a3d;--yellow: #ffd93d;--green: #4ecdc4;--red: #ff6b6b;--purple: #a78bfa;--blue: #5aa9ff;--pink: #ff9fb2;--paper: #fffdf6;--radius: 24px;--shadow: 0 6px 0 var(--ink)}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:Comic Sans MS,PingFang SC,Microsoft YaHei,Hiragino Sans GB,sans-serif;font-size:20px;color:var(--ink);background:linear-gradient(180deg,#8fd8ff,#c9f0ff 45%,#d9f7c4);background-attachment:fixed;-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none}button{font-family:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:4px solid var(--ink);border-radius:999px;background:var(--paper);color:var(--ink);font-weight:800;font-size:20px;padding:10px 26px;cursor:pointer;box-shadow:var(--shadow);transition:transform .06s ease,box-shadow .06s ease,filter .15s ease}.btn:hover{filter:brightness(1.05)}.btn:active{transform:translateY(4px);box-shadow:0 2px 0 var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.4)}.btn.primary{background:var(--orange);color:#fff}.btn.green{background:var(--green);color:#fff}.btn.blue{background:var(--blue);color:#fff}.btn.yellow{background:var(--yellow)}.btn.red{background:var(--red);color:#fff}.btn.ghost{background:#ffffffb3}.btn.small{font-size:16px;padding:6px 16px;border-width:3px;box-shadow:0 4px 0 var(--ink)}.card{background:var(--paper);border:4px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow)}.col{display:flex;flex-direction:column}.row{display:flex;align-items:center}.center{display:flex;align-items:center;justify-content:center}.gap8{gap:8px}.gap16{gap:16px}.gap24{gap:24px}.title-xl{font-size:56px;font-weight:900;letter-spacing:2px;text-shadow:4px 4px 0 #fff,8px 8px 0 rgba(43,45,66,.15)}.title-lg{font-size:34px;font-weight:900}.title-md{font-size:26px;font-weight:800}.muted{opacity:.7}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@keyframes rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spinSlow{to{transform:rotate(360deg)}}.floaty{animation:floaty 2.6s ease-in-out infinite}.pop{animation:pop .28s ease}.shake{animation:shake .36s ease}.rise{animation:rise .3s ease both}
