.top[data-v-255f17bc]{align-items:center;gap:14px;height:56px;padding:0 6px;display:flex}.coins[data-v-255f17bc]{height:40px;color:var(--c-coin);background:#ffffff8c;border-radius:20px;align-items:center;gap:4px;padding:0 12px 0 8px;font-size:20px;font-weight:700;display:inline-flex}.gift[data-v-255f17bc]{justify-content:center;align-items:center;width:44px;height:44px;font-size:26px;line-height:1;display:inline-flex}.spacer[data-v-255f17bc]{flex:1}.gear[data-v-255f17bc]{color:#ffffffe6;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;position:relative}.hold-ring[data-v-255f17bc]{border:3px solid #0000;border-radius:50%;position:absolute;inset:4px}.gear.holding .hold-ring[data-v-255f17bc]{border-color:var(--c-amber);animation:hold-grow-255f17bc var(--hold,1.2s) linear forwards}@media (width>=700px) and (height>=900px) and (orientation:portrait){.top[data-v-255f17bc]{height:64px}.coins[data-v-255f17bc]{height:46px;font-size:24px}.gift[data-v-255f17bc],.gear[data-v-255f17bc]{width:52px;height:52px}.gift[data-v-255f17bc]{font-size:32px}.gear svg[data-v-255f17bc]{width:30px;height:30px}}@media (width<=560px){.top[data-v-255f17bc]{flex-direction:column;justify-content:space-between;align-items:center;gap:4px;width:64px;height:100%;min-height:120px;padding:0}.coins[data-v-255f17bc]{background:var(--c-key);height:32px;box-shadow:var(--shadow-chip);padding:0 8px 0 6px;font-size:16px}.gift[data-v-255f17bc],.gear[data-v-255f17bc]{width:36px;height:36px}.gift[data-v-255f17bc]{font-size:24px}.spacer[data-v-255f17bc]{display:none}.gear[data-v-255f17bc]{color:var(--c-gray)}}@keyframes hold-grow-255f17bc{0%{opacity:.4;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.wrap[data-v-f4bf8858]{grid-template-columns:1fr 160px;gap:20px;padding:4px 20px;display:grid}.side[data-v-f4bf8858]{display:none}.screen[data-v-f4bf8858]{background:var(--c-screen);color:var(--c-screen-text);border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:140px;padding:8px 14px 10px;transition:box-shadow .2s;display:flex;overflow:hidden}.screen.is-ok[data-v-f4bf8858]{box-shadow:inset 0 0 0 3px var(--c-ok)}.screen.is-bad[data-v-f4bf8858]{box-shadow:inset 0 0 0 3px var(--c-bad)}.stats[data-v-f4bf8858]{color:#b8c2d2;background:#ffffff14;border-radius:12px;justify-content:center;align-self:stretch;align-items:center;gap:10px;height:24px;margin:-2px 0 2px;font-size:12px;line-height:1;display:flex}.stats[data-v-f4bf8858]:active{background:#ffffff29}.s-item b[data-v-f4bf8858]{color:#fff;font-size:13px}.s-item.ok b[data-v-f4bf8858]{color:var(--c-ok)}.s-item.bad b[data-v-f4bf8858]{color:#ff8a7a}.s-more[data-v-f4bf8858]{color:var(--c-amber)}.dots[data-v-f4bf8858]{justify-content:center;align-self:stretch;gap:6px;margin-bottom:2px;display:flex}.dot[data-v-f4bf8858]{background:#46536a;border-radius:50%;width:10px;height:10px;transition:transform .2s}.dot.cur[data-v-f4bf8858]{background:#fff;transform:scale(1.3)}.dot.ok[data-v-f4bf8858]{background:var(--c-ok)}.dot.retry[data-v-f4bf8858]{background:var(--c-amber)}.dot.bad[data-v-f4bf8858]{background:var(--c-bad)}.pieces[data-v-f4bf8858]{align-items:center;gap:6px;font-size:22px;display:flex}.piece[data-v-f4bf8858]{border:2px solid var(--pc,#7f8b9c);min-width:48px;height:34px;color:var(--pc,#dfe5ee);background:#ffffff0f;border-radius:8px;justify-content:center;align-items:center;padding:0 10px;transition:background .2s,transform .2s;display:inline-flex}.piece.k-initial[data-v-f4bf8858]{--pc:#b39aff}.piece.k-medial[data-v-f4bf8858]{--pc:#6fd0e6}.piece.k-final[data-v-f4bf8858]{--pc:#8ee59a}.piece.k-tone[data-v-f4bf8858]{--pc:#ff8a7a}.piece.k-whole[data-v-f4bf8858]{--pc:#f0b58a;min-width:90px}.piece.empty[data-v-f4bf8858]{background:0 0;border-style:dashed}.piece .ph[data-v-f4bf8858]{font-family:var(--font-ui);opacity:.7;font-size:12px}.piece.lit[data-v-f4bf8858]{background:var(--pc);color:#1f2b3c;transform:scale(1.06)}.piece.bad[data-v-f4bf8858]{border-color:var(--c-bad);color:var(--c-bad);animation:.4s shake-f4bf8858}.plus[data-v-f4bf8858]{color:#6f7c8f;font-size:18px}.main[data-v-f4bf8858]{align-items:center;gap:16px;min-height:56px;display:flex}.icon[data-v-f4bf8858]{justify-content:center;align-items:center;width:56px;height:56px;font-size:40px;line-height:1;display:inline-flex;position:relative}.ring[data-v-f4bf8858]{position:absolute;inset:0;transform:rotate(-90deg)}.ring circle[data-v-f4bf8858]{fill:none;stroke:var(--c-amber);stroke-width:3px;stroke-dasharray:107;stroke-dashoffset:0;animation:ring-shrink-f4bf8858 var(--wait,2s) linear forwards}.big[data-v-f4bf8858]{font-size:50px;font-weight:700;line-height:1.1}.big .u[data-v-f4bf8858]{color:var(--c-amber)}.char[data-v-f4bf8858]{color:#ffd27a;font-size:30px}.char.solo[data-v-f4bf8858]{font-size:44px;font-weight:700}.words[data-v-f4bf8858]{gap:10px;margin-top:2px;display:flex}.word[data-v-f4bf8858]{color:#ffd27a;border:1px solid #ffd27a80;border-radius:14px;padding:2px 12px;font-size:20px;line-height:1.4;transition:background .15s,color .15s,transform .15s}.word.lit[data-v-f4bf8858]{color:#1f2b3c;background:#ffd27a;transform:scale(1.08)}.is-ok .big[data-v-f4bf8858]{color:#8ee59a}.is-bad .big[data-v-f4bf8858]{color:#ff8a7a}.note[data-v-f4bf8858]{color:#b8c2d2;text-align:center;font-size:13px}.actions[data-v-f4bf8858]{gap:10px;margin-top:4px;display:flex}.action[data-v-f4bf8858]{background:var(--c-amber);color:#fff;border-radius:10px;align-items:center;gap:6px;height:40px;padding:0 16px;font-size:17px;display:inline-flex}.action[data-v-f4bf8858]:active{filter:brightness(.92)}.a-icon[data-v-f4bf8858]{font-size:20px}.modes[data-v-f4bf8858]{flex-direction:column;justify-content:center;gap:6px;display:flex}.mode[data-v-f4bf8858]{background:var(--c-gray);color:#fff;border-radius:4px;justify-content:center;align-items:center;gap:6px;height:34px;font-size:17px;line-height:1;transition:background .15s;display:flex}.m-icon[data-v-f4bf8858]{font-size:16px}.mode.active[data-v-f4bf8858]{background:var(--c-orange);font-weight:700}.mode.suggest[data-v-f4bf8858]:not(.active){color:var(--c-orange);animation:.9s ease-in-out infinite key-flash}.mode[data-v-f4bf8858]:not(.active):active{background:#9c9c9c}@keyframes shake-f4bf8858{0%,to{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}@keyframes ring-shrink-f4bf8858{0%{stroke-dashoffset:0}to{stroke-dashoffset:107px}}@media (width<=560px){.wrap[data-v-f4bf8858]{grid-template-columns:auto 1fr;grid-template-areas:"side screen""modes modes";gap:8px;padding:0}.side[data-v-f4bf8858]{grid-area:side;display:block}.screen[data-v-f4bf8858]{grid-area:screen}.modes[data-v-f4bf8858]{grid-area:modes}.screen[data-v-f4bf8858]{min-height:var(--screen-h,120px);gap:3px;padding:6px 12px 8px}.stats[data-v-f4bf8858]{height:20px;margin:0}.dots[data-v-f4bf8858]{margin-bottom:0}.dot[data-v-f4bf8858]{width:8px;height:8px}.pieces[data-v-f4bf8858]{font-size:20px}.piece[data-v-f4bf8858]{min-width:40px;height:28px;padding:0 8px}.main[data-v-f4bf8858]{gap:12px;min-height:48px}.icon[data-v-f4bf8858]{width:48px;height:48px;font-size:34px}.char[data-v-f4bf8858]{font-size:26px}.char.solo[data-v-f4bf8858]{font-size:36px}.note[data-v-f4bf8858]{font-size:12px}.action[data-v-f4bf8858]{height:36px;font-size:16px}.modes[data-v-f4bf8858]{flex-direction:row}.mode[data-v-f4bf8858]{white-space:nowrap;flex:1;gap:3px;font-size:clamp(12px,3.6vw,14px)}.big[data-v-f4bf8858]{font-size:42px}.stats[data-v-f4bf8858]{gap:8px;font-size:11px}.word[data-v-f4bf8858]{padding:1px 10px;font-size:15px}}@media (width>=700px) and (height>=900px) and (orientation:portrait){.wrap[data-v-f4bf8858]{grid-template-columns:1fr 200px}.screen[data-v-f4bf8858]{min-height:var(--screen-h,198px)}.modes[data-v-f4bf8858]{gap:10px}.mode[data-v-f4bf8858]{height:42px;font-size:19px}.m-icon[data-v-f4bf8858]{font-size:18px}.stats[data-v-f4bf8858]{height:28px;font-size:14px}.s-item b[data-v-f4bf8858]{font-size:15px}.pieces[data-v-f4bf8858]{font-size:26px}.piece[data-v-f4bf8858]{min-width:56px;height:40px}.main[data-v-f4bf8858]{min-height:64px}.icon[data-v-f4bf8858]{width:64px;height:64px;font-size:46px}.big[data-v-f4bf8858]{font-size:clamp(50px,5vh,68px)}.char[data-v-f4bf8858]{font-size:clamp(30px,3vh,40px)}.char.solo[data-v-f4bf8858]{font-size:clamp(44px,4.5vh,60px)}.word[data-v-f4bf8858]{font-size:22px}.note[data-v-f4bf8858]{font-size:15px}.action[data-v-f4bf8858]{height:44px;font-size:19px}}@media (width>=900px) and (height<=1040px) and (orientation:landscape){.wrap[data-v-f4bf8858]{grid-template-columns:1fr;gap:10px;padding:0}.screen[data-v-f4bf8858]{min-height:clamp(170px,22vh,260px)}.modes[data-v-f4bf8858]{grid-template-columns:1fr 1fr;display:grid}.mode[data-v-f4bf8858]{height:40px}}.grid[data-v-b0c16544]{gap:var(--row-gap) var(--gap);display:grid}.grid-initial[data-v-b0c16544]{--key-color:var(--c-initial);--sel-bg:#f1e9ff}.grid-final[data-v-b0c16544]{--key-color:var(--c-final);--sel-bg:#e6f5ea}.grid-whole[data-v-b0c16544]{--key-color:var(--c-whole);--sel-bg:#fdeee2}.grid-whole .key[data-v-b0c16544]{font-size:calc(var(--key-font) * .85)}.badge[data-v-b0c16544]{font-family:var(--font-ui);background:var(--c-medial);color:#fff;border-radius:4px;padding:2px 4px;font-size:11px;line-height:1;position:absolute;top:3px;right:5px}.tones[data-v-21b7fb38]{gap:var(--gap);grid-template-columns:repeat(4,1fr);display:grid}.tone[data-v-21b7fb38]{--key-color:var(--c-tone);--sel-bg:#fdeceb;height:max(38px, calc(var(--key-h) * .8))}@media (width<=560px){.tone[data-v-21b7fb38]{height:max(34px, calc(var(--key-h) * .85))}}.bar[data-v-910e53ef]{grid-template-columns:2fr 1fr 1.5fr;gap:30px;display:grid}.act[data-v-910e53ef]{color:#fff;white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;gap:8px;height:60px;font-size:28px;font-weight:500;transition:filter .12s,background .15s;display:flex}.act[data-v-910e53ef]:not(:disabled):active{filter:brightness(.92)}.replay[data-v-910e53ef]{background:var(--c-amber)}.clear[data-v-910e53ef]{background:var(--c-blue)}.confirm[data-v-910e53ef]{background:var(--c-gray)}.confirm.ready[data-v-910e53ef]{background:var(--c-green)}.replay[data-v-910e53ef]:disabled{opacity:.8}.clear[data-v-910e53ef]:disabled{opacity:.35}.confirm.flash[data-v-910e53ef]{animation:.8s ease-in-out infinite act-flash-910e53ef}@keyframes act-flash-910e53ef{0%,to{box-shadow:none;transform:scale(1)}50%{box-shadow:0 0 0 4px var(--c-amber);transform:scale(1.04)}}@media (width>=700px) and (height>=900px) and (orientation:portrait){.act[data-v-910e53ef]{height:72px;font-size:30px}}@media (width<=560px){.bar[data-v-910e53ef]{padding:6px 0 calc(6px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--c-panel) 70%, #fff8ed00);z-index:2;gap:10px;position:sticky;bottom:0}.act[data-v-910e53ef]{gap:4px;height:46px;font-size:20px}.act svg[data-v-910e53ef]{width:22px;height:22px}}.mask[data-v-f37196fe]{z-index:20;background:#00000059;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.box[data-v-f37196fe]{background:var(--c-panel);text-align:center;border-radius:16px;width:min(360px,100%);padding:20px;box-shadow:0 12px 40px #00000040}.icon[data-v-f37196fe]{font-size:48px}.text[data-v-f37196fe]{margin:8px 0 16px;font-size:18px}.btns[data-v-f37196fe]{gap:12px;display:flex}.btns button[data-v-f37196fe]{color:#fff;border-radius:12px;flex:1;height:52px;font-size:18px}.no[data-v-f37196fe]{background:var(--c-blue)}.yes[data-v-f37196fe]{background:var(--c-gray)}.mask[data-v-62c446bb]{z-index:10;background:#00000059;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog[data-v-62c446bb]{background:var(--c-panel);border-radius:var(--radius-panel);flex-direction:column;width:min(520px,100%);max-height:85vh;display:flex;overflow:hidden;box-shadow:0 12px 40px #00000040}.head[data-v-62c446bb]{border-bottom:1px solid var(--c-line);align-items:center;padding:12px 16px;display:flex}.title[data-v-62c446bb]{flex:1;margin:0;font-size:18px}.close[data-v-62c446bb]{color:var(--c-muted);width:32px;height:32px;font-size:26px;line-height:1}.body[data-v-62c446bb]{padding:16px;overflow-y:auto}.q[data-v-47b089aa]{text-align:center;margin:8px 0 16px;font-size:32px}.row[data-v-47b089aa]{gap:10px;display:flex}.row .input[data-v-47b089aa]{text-align:center;flex:1;font-size:22px}.warn[data-v-47b089aa]{color:var(--c-bad);text-align:center;margin:12px 0 0;font-size:14px}.wallet[data-v-109c2604]{justify-content:center;align-items:center;gap:8px;margin-bottom:12px;display:flex}.num[data-v-109c2604]{color:var(--c-coin);font-size:32px}.done[data-v-109c2604]{color:var(--c-final);text-align:center;background:#e6f5ea;border-radius:10px;margin-bottom:12px;padding:12px;font-size:16px}.gifts[data-v-109c2604]{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.gift[data-v-109c2604]{background:var(--c-key);width:100%;box-shadow:var(--shadow-chip);opacity:.45;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;display:flex}.gift.can[data-v-109c2604]{opacity:1;box-shadow:var(--shadow-chip), 0 0 0 2px var(--c-amber)}.gift.can[data-v-109c2604]:active{transform:scale(.97)}.gift.shake[data-v-109c2604]{animation:.4s gift-shake-109c2604}@keyframes gift-shake-109c2604{0%,to{transform:translate(0)}25%{transform:translate(-6px)}50%{transform:translate(6px)}75%{transform:translate(-3px)}}.emoji[data-v-109c2604]{font-size:40px}.name[data-v-109c2604]{font-size:14px}.cost[data-v-109c2604]{color:var(--c-coin);align-items:center;gap:3px;font-size:15px;font-weight:700;display:inline-flex}.tip[data-v-109c2604]{color:var(--c-muted);margin:14px 0 0;font-size:12px}.tabs[data-v-a9eb6c67]{gap:6px;margin-bottom:14px;display:flex}.tab[data-v-a9eb6c67]{background:var(--c-key);height:34px;box-shadow:var(--shadow-chip);border-radius:8px;flex:1;font-size:15px}.tab.on[data-v-a9eb6c67]{background:var(--c-amber);color:#fff}.field.row[data-v-a9eb6c67]{flex-direction:row;align-items:center;gap:10px;font-size:15px}.field.row input[data-v-a9eb6c67]{width:20px;height:20px}.hint[data-v-a9eb6c67]{color:var(--c-muted);margin:0 0 12px;font-size:13px;line-height:1.5}.sub[data-v-a9eb6c67]{margin:16px 0 8px;font-size:14px}.gifts[data-v-a9eb6c67]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.gift-row[data-v-a9eb6c67]{align-items:center;gap:6px;display:flex}.input.emoji[data-v-a9eb6c67]{text-align:center;width:52px;padding:0;font-size:20px}.input.name[data-v-a9eb6c67]{flex:1}.input.cost[data-v-a9eb6c67]{width:80px}.del[data-v-a9eb6c67]{width:32px;height:32px;color:var(--c-muted);font-size:22px}.row-btns[data-v-a9eb6c67]{align-items:center;gap:8px;margin-top:10px;display:flex}.row-btns .input[data-v-a9eb6c67]{flex:1}.plain-list[data-v-a9eb6c67]{color:var(--c-muted);margin:0;padding-left:18px;font-size:13px}.stat[data-v-a9eb6c67]{margin:0 0 10px;font-size:14px}.stat b[data-v-a9eb6c67]{color:var(--c-coin);font-size:18px}.days[data-v-a9eb6c67]{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.day[data-v-a9eb6c67]{background:var(--c-key);color:var(--c-muted);border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:11px;display:flex}.day.on[data-v-a9eb6c67]{color:var(--c-final);background:#e6f5ea}.d-val[data-v-a9eb6c67]{font-size:11px}.weak[data-v-a9eb6c67]{flex-wrap:wrap;gap:6px;display:flex}.weak-item[data-v-a9eb6c67]{background:var(--c-key);box-shadow:var(--shadow-chip);border-radius:8px;padding:4px 8px;font-size:18px}.weak-item small[data-v-a9eb6c67]{font-family:var(--font-ui);color:var(--c-muted);margin-left:3px}.backup[data-v-a9eb6c67]{flex-direction:column;gap:8px;margin-top:8px;display:flex}.input.area[data-v-a9eb6c67]{resize:none;height:80px;padding:8px;font-size:12px}.tip[data-v-fc5cd4f7]{color:var(--c-muted);margin:0 0 8px;font-size:13px}.group+.group[data-v-fc5cd4f7]{margin-top:14px}.sub[data-v-fc5cd4f7]{margin:0 0 8px;font-size:15px;font-weight:600}.list[data-v-fc5cd4f7]{flex-wrap:wrap;gap:8px;display:flex}.item[data-v-fc5cd4f7]{background:var(--c-key);min-width:48px;height:40px;box-shadow:var(--shadow-chip);border-radius:8px;padding:0 10px;font-size:22px}.item[data-v-fc5cd4f7]:active{background:var(--c-key-press)}.c-initial[data-v-fc5cd4f7]{color:var(--c-initial)}.c-final[data-v-fc5cd4f7]{color:var(--c-final)}.c-whole[data-v-fc5cd4f7]{color:var(--c-whole)}.summary[data-v-4d23ca6e]{gap:10px;display:flex}.tile[data-v-4d23ca6e]{background:var(--c-key);box-shadow:var(--shadow-chip);border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 0;display:flex}.t-label[data-v-4d23ca6e]{color:var(--c-muted);font-size:13px}.t-val[data-v-4d23ca6e]{font-size:26px;line-height:1.1}.tile.ok .t-val[data-v-4d23ca6e]{color:var(--c-ok)}.tile.bad .t-val[data-v-4d23ca6e]{color:var(--c-bad)}.hint[data-v-4d23ca6e]{color:var(--c-muted);margin:10px 0;font-size:13px;line-height:1.5}.btns[data-v-4d23ca6e]{gap:8px;margin-top:6px;display:flex}.btns .btn[data-v-4d23ca6e]{flex:1}.btn.danger[data-v-4d23ca6e]{background:var(--c-bad);color:#fff}.btn.link[data-v-4d23ca6e]{justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.confirm[data-v-4d23ca6e]{background:#fde8e6;border-radius:12px;margin-top:10px;padding:12px;font-size:14px}.confirm p[data-v-4d23ca6e]{margin:0 0 8px}.preview[data-v-4d23ca6e]{margin-top:10px}.preview img[data-v-4d23ca6e]{width:100%;box-shadow:var(--shadow-chip);-webkit-touch-callout:default;border-radius:10px}.sub[data-v-4d23ca6e]{margin:16px 0 8px;font-size:14px}.list[data-v-4d23ca6e]{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.row[data-v-4d23ca6e]{background:var(--c-key);box-shadow:var(--shadow-chip);border-left:5px solid var(--c-ok);border-radius:10px;grid-template-columns:24px 1fr auto auto;align-items:center;gap:8px;padding:6px 10px 6px 6px;display:grid}.row.retry[data-v-4d23ca6e]{border-left-color:var(--c-amber)}.row.bad[data-v-4d23ca6e]{border-left-color:var(--c-bad)}.no[data-v-4d23ca6e]{color:var(--c-muted);text-align:center;font-size:12px}.say[data-v-4d23ca6e]{justify-content:flex-start;align-items:baseline;gap:8px;padding:0 4px;display:inline-flex}.py[data-v-4d23ca6e]{font-size:24px;font-weight:700}.char[data-v-4d23ca6e]{color:var(--c-whole);font-size:20px}.res[data-v-4d23ca6e]{color:var(--c-ok);font-size:13px}.row.retry .res[data-v-4d23ca6e]{color:var(--c-amber)}.row.bad .res[data-v-4d23ca6e]{color:var(--c-bad)}.res small[data-v-4d23ca6e]{color:var(--c-muted)}.time[data-v-4d23ca6e]{color:var(--c-muted);font-size:12px}.banner[data-v-934d5844]{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom,0px));background:var(--c-panel);border-radius:var(--radius-panel);z-index:5;flex-wrap:wrap;align-items:center;gap:10px 12px;max-width:560px;margin:0 auto;padding:12px 14px;display:flex;position:fixed;box-shadow:0 8px 28px #00000047}.emoji[data-v-934d5844]{font-size:34px;line-height:1}.text[data-v-934d5844]{flex:200px;min-width:0}.title[data-v-934d5844]{font-size:17px;font-weight:600}.desc[data-v-934d5844]{color:var(--c-muted);margin-top:2px;font-size:14px;line-height:1.5}.share[data-v-934d5844]{vertical-align:-.2em;width:1.15em;height:1.15em;color:var(--c-blue)}.btns[data-v-934d5844]{gap:8px;margin-left:auto;display:flex}.btns .btn[data-v-934d5844]{height:40px;padding:0 16px}.rise-enter-active[data-v-934d5844],.rise-leave-active[data-v-934d5844]{transition:transform .3s ease-out,opacity .3s}.rise-enter-from[data-v-934d5844],.rise-leave-to[data-v-934d5844]{opacity:0;transform:translateY(24px)}.app[data-v-8f058ce8]{flex-direction:column;gap:12px;max-width:760px;margin:0 auto;padding:0 6px 12px;display:flex}.keys[data-v-8f058ce8]{gap:var(--row-gap);flex-direction:column;display:flex}.row-head[data-v-8f058ce8]{align-items:center;gap:8px;display:flex}.finals-head[data-v-8f058ce8]{margin-top:24px}.marks[data-v-8f058ce8]{color:var(--c-tone);gap:1px;margin-left:2px;display:inline-flex}.prog[data-v-8f058ce8]{opacity:.85;margin-left:4px;font-size:.8em}@media (width<=420px){.prog[data-v-8f058ce8]{display:none}}.chip.active .marks[data-v-8f058ce8]{color:#fff}.tag-initial[data-v-8f058ce8]{color:var(--c-initial)}.tag-final[data-v-8f058ce8]{color:var(--c-final)}.whole[data-v-8f058ce8]{color:var(--c-whole);margin-left:auto}.actions[data-v-8f058ce8]{margin-top:24px}@media (width<=560px){.app[data-v-8f058ce8]{padding:calc(6px + env(safe-area-inset-top,0px)) 6px 0;gap:8px}.finals-head[data-v-8f058ce8]{margin-top:4px}.actions[data-v-8f058ce8]{margin-top:0}}@media (width>=700px) and (height>=900px) and (orientation:portrait){.app[data-v-8f058ce8]{max-width:960px;padding:0 12px 12px}}@media (width>=900px) and (height<=1040px) and (orientation:landscape){.app[data-v-8f058ce8]{grid-template-rows:max-content 1fr;grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;gap:8px 12px;max-width:1320px;display:grid}.screen-panel[data-v-8f058ce8]{position:sticky;top:8px}.keys[data-v-8f058ce8]{gap:var(--row-gap);grid-area:1/2/span 2}.finals-head[data-v-8f058ce8],.actions[data-v-8f058ce8]{margin-top:10px}}@font-face{font-family:Andika;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/andika-400-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F}@font-face{font-family:Andika;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/andika-400-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F}@font-face{font-family:Andika;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/andika-700-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F}@font-face{font-family:Andika;font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/andika-700-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F}:root{--c-bg:#f6c3cb;--c-panel:#fff8ed;--c-screen:#1f2b3c;--c-screen-text:#fff;--c-key:#fff;--c-key-press:#f3eee6;--c-initial:#7b45e6;--c-medial:#1f8fa8;--c-final:#3a8a5c;--c-whole:#a9572b;--c-tone:#e0301e;--c-orange:#f4521e;--c-amber:#f5a623;--c-blue:#64a6f2;--c-green:#4cae5b;--c-gray:#b3b3b3;--c-ok:#4cae5b;--c-bad:#e0301e;--c-text:#333;--c-muted:#8a8a8a;--c-line:#eadfd0;--c-coin:#f08a24;--tint-1:#fff;--tint-2:#f6fbf7;--tint-3:#eef8f1;--tint-4:#e6f4ea;--shadow-key:0 2px 4px #0000002e;--shadow-chip:0 1px 3px #0000002e;--radius-panel:14px;--radius-key:10px;--font-ui:"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-pinyin:"Andika", "Arial", "Helvetica Neue", sans-serif;--key-h:46px;--key-font:32px;--gap:8px;--row-gap:16px}@media (width<=560px){:root{--gap:6px;--row-gap:6px;--screen-h:clamp(120px, 15dvh, 180px);--key-h:clamp(34px, calc((100dvh - 288px - var(--screen-h) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)) / 9), 60px);--key-font:clamp(24px, calc(var(--key-h) * .62), 31px)}}@media (width>=700px) and (height>=900px) and (orientation:portrait){:root{--gap:10px;--row-gap:clamp(8px, 1vh, 16px);--screen-h:clamp(198px, 18dvh, 260px);--key-h:clamp(42px, calc((100dvh - 356px - var(--screen-h) - 11 * var(--row-gap)) / 9), 68px);--key-font:clamp(32px, calc(var(--key-h) * .62), 42px)}}@media (width>=900px) and (height<=1040px) and (orientation:landscape){:root{--row-gap:clamp(6px, 1.2vh, 14px);--key-h:clamp(36px, calc((100dvh - 200px - 11 * var(--row-gap)) / 9), 72px);--key-font:clamp(24px, calc(var(--key-h) * .62), 44px)}}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--c-bg);color:var(--c-text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none}button{color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0;padding:0;font-family:inherit}button:disabled{cursor:default}.pinyin{font-family:var(--font-pinyin);letter-spacing:.01em}.panel{background:var(--c-panel);border-radius:var(--radius-panel);padding:14px}.chip{background:var(--c-key);height:34px;box-shadow:var(--shadow-chip);white-space:nowrap;border-radius:8px;align-items:center;padding:0 10px;font-size:18px;line-height:1;transition:transform 80ms,background .15s;display:inline-flex}button.chip:not(:disabled):active{background:var(--c-key-press);transform:translateY(1px)}button.chip:disabled{opacity:.45}.chip.active{background:var(--c-amber);color:#fff}.key{height:var(--key-h);border-radius:var(--radius-key);color:var(--key-color,var(--c-text));background:var(--key-bg,var(--c-key));box-shadow:var(--shadow-key);font-size:var(--key-font);justify-content:center;align-items:center;line-height:1;transition:transform 80ms,background .12s,box-shadow .12s,opacity .2s;display:flex;position:relative}.key:not(:disabled):active{transform:translateY(1px)scale(.98);box-shadow:0 1px 2px #0000002e}.key.selected{background:var(--sel-bg,#f1e9ff);box-shadow:var(--shadow-key), inset 0 0 0 2px currentColor}.key.playing{background:var(--key-color,var(--c-orange));color:#fff;z-index:1;animation:.45s ease-in-out infinite alternate key-sound}.key.off{opacity:.28}.key.wrong{opacity:.35;background:#fde8e6;animation:.4s key-shake}.key.hint{box-shadow:var(--shadow-key), 0 0 0 3px var(--c-amber);animation:.8s ease-in-out infinite key-flash}.key.review{box-shadow:var(--shadow-key), 0 0 0 2px var(--c-amber);animation:1.6s ease-in-out infinite key-breathe}.key:disabled:not(.off):not(.wrong):not(.hint):not(.playing){opacity:.5}.key.blank{box-shadow:var(--shadow-key);cursor:default}@keyframes key-sound{0%{box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--key-color,var(--c-orange)), 0 3px 10px #0000004d;transform:scale(1.04)}to{box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--key-color,var(--c-orange)), 0 6px 18px #00000059;transform:scale(1.12)}}@keyframes key-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}@keyframes key-flash{0%,to{background:var(--c-key);transform:scale(1)}50%{background:#fff1d6;transform:scale(1.05)}}@keyframes key-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.btn{background:var(--c-amber);color:#fff;border-radius:10px;justify-content:center;align-items:center;gap:6px;height:44px;padding:0 18px;font-size:16px;display:inline-flex}.btn:disabled{background:var(--c-gray);opacity:.7}.btn.secondary{background:var(--c-blue)}.btn.plain{background:var(--c-gray)}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field .label{color:var(--c-muted);font-size:14px}.select,.input{border:1px solid var(--c-line);background:var(--c-key);width:100%;height:40px;color:var(--c-text);border-radius:8px;padding:0 10px;font-family:inherit;font-size:15px}@media (width>=700px) and (height>=900px) and (orientation:portrait){.chip{height:40px;padding:0 12px;font-size:20px}}@media (width<=560px){.panel{padding:10px}.chip{height:30px;font-size:16px}.key,.grid,.tones{scroll-margin-bottom:calc(70px + env(safe-area-inset-bottom));scroll-margin-top:8px}}
