:root{--sans:system-ui, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root,[data-theme=dark]{--bg:#13110c;--panel:#1d1a13;--panel-translucent:#1d1a13d9;--divider:#332f26;--text:#f5f0e6;--text-muted:#a79e8c;--accent:#f2b04a;--keybed:#0a0805;--white-key:#f8f5ee;--white-key-active:#f6e2b4;--black-key:#17140e;--black-key-top:#2e2a1f;--black-key-active:#c79a45;--label:#6a6455;--label-black:#d8d2c3}[data-theme=light]{--bg:#f3efe6;--panel:#fffdf8;--panel-translucent:#fffdf8d9;--divider:#e2dccf;--text:#23201a;--text-muted:#78716a;--accent:#cf8c22;--keybed:#cbc4b5;--white-key:#fff;--white-key-active:#f6e6c0;--black-key:#23201a;--black-key-top:#423d33;--black-key-active:#cf9c3f;--label:#a39c8e;--label-black:#ece8de}*{box-sizing:border-box}html,body{overscroll-behavior:none;background:var(--bg);height:100%;color:var(--text);margin:0;padding:0}#app{height:100dvh}button{cursor:pointer;font-family:inherit}h1,h2,h3{font-weight:700}.keyboard[data-v-36379983]{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.keyboard__badge[data-v-36379983]{z-index:5;color:var(--text-muted);background:var(--panel-translucent);pointer-events:none;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;position:absolute;top:6px;left:10px}.keyboard__scroller[data-v-36379983]{scrollbar-width:none;background:var(--keybed);border-radius:10px;flex:1;min-height:0;position:relative;overflow:auto hidden}.keyboard__scroller[data-v-36379983]::-webkit-scrollbar{display:none}.keyboard__surface[data-v-36379983]{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;height:100%;position:relative}.key[data-v-36379983]{box-sizing:border-box;cursor:pointer;justify-content:center;align-items:flex-end;display:flex;position:absolute;top:0}.key--white[data-v-36379983]{background:var(--white-key);border:1px solid var(--key-border);border-radius:0 0 6px 6px;bottom:0;box-shadow:inset 0 -6px 8px #00000014}.key--white.key--active[data-v-36379983]{background:var(--white-key-active)}.key--black[data-v-36379983]{z-index:2;background:linear-gradient(180deg, var(--black-key-top), var(--black-key));border:1px solid #000;border-radius:0 0 5px 5px;top:0;box-shadow:0 4px 6px #0006}.key--black.key--active[data-v-36379983]{background:var(--black-key-active)}.key__label[data-v-36379983]{color:var(--label);pointer-events:none;margin-bottom:8px;font-size:11px;font-weight:600}.key__label--black[data-v-36379983]{color:var(--label-black);margin-bottom:6px}.pan-btn[data-v-36379983]{z-index:6;width:30px;height:46px;color:var(--text);background:var(--panel-translucent);opacity:.75;border:none;border-radius:8px;font-size:22px;line-height:1;position:absolute;top:50%;transform:translateY(-50%)}.pan-btn--left[data-v-36379983]{left:4px}.pan-btn--right[data-v-36379983]{right:4px}.keyboard__pan[data-v-36379983]{appearance:none;cursor:grab;background:0 0;width:100%;height:22px;margin-top:8px}.keyboard__pan[data-v-36379983]:active{cursor:grabbing}.keyboard__pan[data-v-36379983]::-webkit-slider-runnable-track{background:var(--divider);border-radius:999px;height:6px}.keyboard__pan[data-v-36379983]::-moz-range-track{background:var(--divider);border-radius:999px;height:6px}.keyboard__pan[data-v-36379983]::-webkit-slider-thumb{appearance:none;background:var(--accent);border:2px solid var(--panel);border-radius:999px;width:46px;height:16px;margin-top:-5px;transition:transform .12s,filter .12s;box-shadow:0 1px 4px #0006}.keyboard__pan[data-v-36379983]::-moz-range-thumb{background:var(--accent);border:2px solid var(--panel);border-radius:999px;width:46px;height:16px;transition:transform .12s,filter .12s;box-shadow:0 1px 4px #0006}.keyboard__pan[data-v-36379983]:hover::-webkit-slider-thumb{filter:brightness(1.12)}.keyboard__pan[data-v-36379983]:active::-webkit-slider-thumb{filter:brightness(1.12);transform:scaleY(1.25)}.keyboard__pan[data-v-36379983]:hover::-moz-range-thumb{filter:brightness(1.12)}.keyboard__pan[data-v-36379983]:active::-moz-range-thumb{filter:brightness(1.12);transform:scaleY(1.25)}.keyboard__pan[data-v-36379983]:focus-visible{outline:none}.keyboard__pan[data-v-36379983]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--panel), 0 0 0 5px var(--accent)}.keyboard__pan[data-v-36379983]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 3px var(--panel), 0 0 0 5px var(--accent)}.drawer[data-v-534f85d1]{z-index:50;pointer-events:none;position:fixed;inset:0}.drawer__scrim[data-v-534f85d1]{opacity:0;background:#00000080;transition:opacity .2s;position:absolute;inset:0}.drawer__panel[data-v-534f85d1]{background:var(--panel);width:min(360px,82vw);height:100%;color:var(--text);flex-direction:column;transition:transform .24s;display:flex;position:absolute;top:0;right:0;transform:translate(100%);box-shadow:-8px 0 24px #00000059}.drawer--open[data-v-534f85d1]{pointer-events:auto}.drawer--open .drawer__scrim[data-v-534f85d1]{opacity:1}.drawer--open .drawer__panel[data-v-534f85d1]{transform:translate(0)}.drawer__head[data-v-534f85d1]{border-bottom:1px solid var(--divider);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.drawer__head h2[data-v-534f85d1]{margin:0;font-size:17px}.drawer__body[data-v-534f85d1]{flex-direction:column;flex:1;gap:18px;padding:12px 18px 24px;display:flex;overflow-y:auto}.row[data-v-534f85d1]{justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.row--stack[data-v-534f85d1]{flex-direction:column;align-items:stretch;gap:8px}.row--stack input[type=range][data-v-534f85d1]{width:100%;accent-color:var(--accent)}.row em[data-v-534f85d1]{color:var(--text-muted);font-style:normal}.row__hint[data-v-534f85d1]{color:var(--text-muted);font-size:12px}.segmented button[data-v-534f85d1]:disabled{opacity:.5;cursor:default}.row--switch input[data-v-534f85d1]{width:44px;height:24px;accent-color:var(--accent)}.segmented[data-v-534f85d1]{border:1px solid var(--divider);border-radius:8px;display:inline-flex;overflow:hidden}.segmented button[data-v-534f85d1]{color:var(--text-muted);background:0 0;border:none;padding:6px 14px;font-size:13px}.segmented button.active[data-v-534f85d1]{color:#fff;background:var(--accent)}.offline[data-v-534f85d1]{border-top:1px solid var(--divider);padding-top:16px}.offline h3[data-v-534f85d1]{margin:0 0 8px;font-size:15px}.offline__status[data-v-534f85d1]{color:var(--text-muted);margin:0 0 10px;font-size:13px}.offline__bar[data-v-534f85d1]{background:var(--divider);border-radius:999px;height:6px;margin-bottom:12px;overflow:hidden}.offline__fill[data-v-534f85d1]{background:var(--accent);height:100%;transition:width .2s}.offline__actions[data-v-534f85d1]{gap:10px;display:flex}.btn[data-v-534f85d1]{color:#fff;background:var(--accent);border:none;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.btn[data-v-534f85d1]:disabled{opacity:.5}.btn--ghost[data-v-534f85d1]{color:var(--text);border:1px solid var(--divider);background:0 0}.icon-btn[data-v-534f85d1]{width:32px;height:32px;color:var(--text);background:0 0;border:none;font-size:16px}.app[data-v-30b1c12f]{background:var(--bg);width:100vw;height:100dvh;color:var(--text);flex-direction:column;display:flex;overflow:hidden}.topbar[data-v-30b1c12f]{flex:none;justify-content:space-between;align-items:center;padding:6px 14px;display:flex}.topbar__title[data-v-30b1c12f]{align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.topbar__logo[data-v-30b1c12f]{font-size:18px}.topbar__actions[data-v-30b1c12f]{align-items:center;gap:10px;display:flex}.chip[data-v-30b1c12f]{color:var(--text-muted);background:var(--panel);border:1px solid var(--divider);border-radius:999px;padding:5px 14px;font-size:13px;font-weight:600}.chip--on[data-v-30b1c12f]{color:#fff;background:var(--accent);border-color:var(--accent)}.icon-btn[data-v-30b1c12f]{background:0 0;border:none;width:34px;height:34px;font-size:17px}.stage[data-v-30b1c12f]{flex-direction:column;flex:1;gap:10px;min-height:0;padding:0 10px 10px;display:flex}.stage--dual[data-v-30b1c12f]{gap:12px}.overlay[data-v-30b1c12f]{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#06080ce6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.overlay__card[data-v-30b1c12f]{text-align:center;max-width:90vw;padding:32px 40px}.overlay__logo[data-v-30b1c12f]{font-size:46px}.overlay__card h1[data-v-30b1c12f]{margin:8px 0 6px;font-size:24px}.overlay__card p[data-v-30b1c12f]{color:var(--text-muted);margin:0 0 20px}.overlay__error[data-v-30b1c12f]{color:#ff8080}.overlay__quality[data-v-30b1c12f]{border:1px solid var(--divider);border-radius:10px;margin:0 0 6px;display:inline-flex;overflow:hidden}.overlay__quality-btn[data-v-30b1c12f]{color:var(--text-muted);background:var(--panel);border:none;padding:8px 20px;font-size:14px;font-weight:600}.overlay__quality-btn.active[data-v-30b1c12f]{color:#fff;background:var(--accent)}.overlay__quality-hint[data-v-30b1c12f]{color:var(--text-muted);margin:0 0 20px;font-size:12px}.overlay__btn[data-v-30b1c12f]{color:#fff;background:var(--accent);border:none;border-radius:12px;padding:12px 32px;font-size:16px;font-weight:700}.overlay__bar[data-v-30b1c12f]{background:#ffffff26;border-radius:999px;width:260px;max-width:70vw;height:8px;margin:0 auto;overflow:hidden}.overlay__fill[data-v-30b1c12f]{background:var(--accent);height:100%;transition:width .2s}.rotate-hint[data-v-30b1c12f]{z-index:40;color:var(--text);background:var(--panel-translucent);pointer-events:none;border-radius:999px;padding:8px 18px;font-size:13px;position:fixed;bottom:14px;left:50%;transform:translate(-50%)}
