.canvas-container[data-v-4af6d0a3]{position:relative;width:100%;height:100%;min-height:140px;background:#000;touch-action:none}.canvas-container.keyboard-only[data-v-4af6d0a3]{min-height:0;background:transparent;touch-action:pan-y}.canvas-container.keyboard-only .main-canvas[data-v-4af6d0a3]{display:none}.main-canvas[data-v-4af6d0a3],.piano-canvas[data-v-4af6d0a3]{position:absolute;top:0;left:0;width:100%;height:100%}.piano-canvas[data-v-4af6d0a3]{pointer-events:none}.phrase-staff-shell[data-v-1a674c52]{width:100%;height:100%;border:0;border-radius:0;background:transparent;padding:0;touch-action:pan-y}.phrase-staff-host[data-v-1a674c52]{width:100%;height:100%;min-height:0;overflow:hidden}.phrase-staff-host[data-v-1a674c52] svg{display:block;margin:0 auto;pointer-events:none}.landing-shell[data-v-d0701d83]{min-height:100vh;width:100%;overflow-x:hidden}.landing-shell[data-v-d0701d83] :is(.hero-grid,.hero-copy,.hero-visual,.practice-demo,.demo-topbar,.demo-score,.staff-live,.demo-keyboard,.how-grid,.session-track,.session-card,.cta-card,.cta-actions,.faq-list){min-width:0}.landing-shell[data-v-d0701d83] .icon-row,.landing-shell[data-v-d0701d83] .icon-row-item,.landing-shell[data-v-d0701d83] .btn{min-width:0;max-width:100%}.hero-section[data-v-d0701d83]{margin-top:2px;padding-top:8px}.hero-grid[data-v-d0701d83]{display:grid;grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);gap:clamp(16px,2.4vw,32px);align-items:stretch;width:100%;max-width:1180px;margin-inline:auto}.hero-copy[data-v-d0701d83]{position:relative;isolation:isolate;align-self:stretch;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;border-radius:24px;padding:clamp(22px,3vw,34px);border:1px solid rgba(139,191,248,.22);background:linear-gradient(140deg,#091830eb,#071125db),radial-gradient(circle at 8% 8%,rgba(86,176,255,.16),transparent 52%);box-shadow:0 26px 42px #0000006b,inset 0 1px #c4e4ff38}.hero-copy-glow[data-v-d0701d83]{position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at 0% 16%,rgba(90,176,255,.26),transparent 44%),radial-gradient(circle at 92% 88%,rgba(91,230,205,.18),transparent 48%);z-index:-1}.hero-copy h1[data-v-d0701d83]{margin:0 0 .9rem;display:grid;gap:.25rem;font-size:clamp(2.35rem,4.8vw,4.35rem);line-height:.99;letter-spacing:-.025em;text-wrap:balance;max-width:10.5ch}.hero-title-top[data-v-d0701d83]{color:#f1f8fffa}.hero-title-accent[data-v-d0701d83]{display:inline-block;width:fit-content;max-width:100%;background:linear-gradient(98deg,#8df0ff,#86b7ff 48%,#a2ffd9);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:0 0 22px rgba(110,211,255,.26)}.hero-kicker[data-v-d0701d83]{text-transform:uppercase;letter-spacing:.19rem;font-size:.72rem;margin:0 0 .78rem;color:#c5e2ffe6;font-weight:700;width:fit-content;border-radius:999px;border:1px solid rgba(136,198,255,.4);background:#1a407359;padding:5px 10px}.hero-subtitle[data-v-d0701d83]{margin:0 0 1rem;color:#d0e2f5e6;max-width:48ch;font-size:clamp(1rem,1.14vw,1.12rem);line-height:1.6}.hero-benefits[data-v-d0701d83]{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 1.15rem;max-width:40rem}.hero-benefit-pill[data-v-d0701d83]{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;border-radius:999px;border:1px solid rgba(148,194,241,.45);background:#11223fb8;color:#e5f0fcf5;font-size:.82rem;font-weight:600;padding:6px 11px}.hero-benefit-check[data-v-d0701d83]{color:#79f0bf;text-shadow:0 0 10px rgba(121,240,191,.38);font-weight:800}.hero-note[data-v-d0701d83]{margin:0 0 .9rem}.hero-cta-group[data-v-d0701d83]{margin-top:0}.hero-friction-text[data-v-d0701d83]{margin:.8rem 0 0;font-size:.8rem;color:#bfd9f4e0;max-width:48ch}.hero-visual[data-v-d0701d83]{position:relative;display:flex;align-self:stretch;align-items:stretch;min-width:0;max-width:100%;box-sizing:border-box}.practice-demo[data-v-d0701d83]{position:relative;width:100%;border-radius:18px;padding:clamp(10px,1.4vw,14px);background:linear-gradient(180deg,#071327f5,#091223f5);border:1px solid rgba(118,176,235,.35);box-shadow:0 24px 44px #00000080,inset 0 0 40px #6cadf814;display:grid;align-content:start;gap:clamp(8px,1vw,12px);min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden}.demo-topbar[data-v-d0701d83]{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:10px;border-radius:10px;border:1px solid rgba(152,195,236,.28);background:#08162cc7;padding:8px 10px;font-size:.78rem;min-width:0;max-width:100%;box-sizing:border-box}.demo-topbar[data-v-d0701d83]>*{min-width:0}.demo-topbar strong[data-v-d0701d83]{font-size:.84rem;line-height:1.2;min-width:0;overflow-wrap:anywhere;word-break:break-word}.demo-chip-stats[data-v-d0701d83]{margin-left:auto;justify-self:end}.demo-badge[data-v-d0701d83]{border-radius:999px;border:1px solid rgba(126,184,244,.72);padding:3px 8px;font-size:.7rem;letter-spacing:.05em;background:#2f7dff2e;max-width:100%}.demo-chip[data-v-d0701d83]{border-radius:999px;border:1px solid rgba(147,184,224,.5);padding:3px 8px;background:#0d1c32a6;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.demo-chip.mode[data-v-d0701d83]{border-color:#6fecb78c;background:#083829ad}.demo-score[data-v-d0701d83]{border-radius:12px;border:1px solid rgba(182,209,236,.4);background:#f4f8fcfa;padding:clamp(10px,1.4vw,14px);min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden}.demo-subtitle[data-v-d0701d83]{display:block;color:#354657e0;font-size:.75rem;margin-bottom:6px}.staff-live[data-v-d0701d83]{height:clamp(172px,24vw,250px);overflow:hidden}.staff-live[data-v-d0701d83] .phrase-staff-host{height:100%;min-height:clamp(172px,24vw,250px)}.demo-notes-used[data-v-d0701d83]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.76rem;color:#c4dbf6eb;min-width:0}.demo-notes-used em[data-v-d0701d83]{font-style:normal;border-radius:999px;border:1px solid rgba(138,188,244,.52);background:#172e4e9e;padding:2px 8px}.demo-keyboard[data-v-d0701d83]{height:clamp(122px,16vw,176px);border-radius:10px;overflow:hidden;padding-inline:clamp(4px,1.1vw,8px);border:1px solid rgba(183,207,233,.36);background:#080c14eb;transition:box-shadow .16s ease,border-color .16s ease;min-width:0;max-width:100%;box-sizing:border-box;touch-action:pan-y pinch-zoom}.demo-keyboard.ok[data-v-d0701d83]{border-color:#63ecadcc;box-shadow:0 0 0 2px #63ecad52 inset}.demo-keyboard.miss[data-v-d0701d83]{border-color:#ff7878cc;box-shadow:0 0 0 2px #ff787847 inset}.demo-keyboard[data-v-d0701d83] .canvas-container,.demo-keyboard[data-v-d0701d83] .canvas-container.keyboard-only{width:100%!important;height:100%!important;max-width:100%!important;min-height:0;background:transparent;display:block}.demo-keyboard[data-v-d0701d83] canvas{width:100%!important;height:100%!important;max-width:100%!important;display:block}.demo-cta[data-v-d0701d83]{margin:0;font-size:clamp(.76rem,1.05vw,.9rem);color:#c8e9fff2;text-align:center}.demo-stack-cta[data-v-d0701d83]{display:none}.hero-actions[data-v-d0701d83]{display:flex;flex-wrap:wrap;gap:.7rem;align-items:stretch;justify-content:flex-start;width:100%;max-width:36rem}.hero-actions[data-v-d0701d83] .btn-primary{box-shadow:0 12px 28px #61c7ff59,0 0 0 1px #a8e8ff3d inset}.hero-actions[data-v-d0701d83] .btn{flex:0 1 auto;min-width:clamp(180px,30%,240px);white-space:normal;text-align:center}.hero-actions[data-v-d0701d83] .btn-secondary{background:#ffffff0d;border-color:#aed6fd57}.social-proof-strip[data-v-d0701d83]{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:center;margin-top:-.5rem;padding-bottom:var(--space-lg)}.proof-badge[data-v-d0701d83]{text-transform:none;font-size:.95rem;max-width:100%}.mission-section[data-v-d0701d83]{background:#ffffff05;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}.sessions-section[data-v-d0701d83]{margin-top:var(--space-lg);background:#07070ca6;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow-soft)}.section-heading h2[data-v-d0701d83]{margin:0;font-size:clamp(1.9rem,3vw,2.5rem)}.section-heading p[data-v-d0701d83]{margin:.4rem 0 0;color:var(--color-muted)}.section-heading[data-v-d0701d83]:before{content:"";display:block;width:60px;height:2px;margin-bottom:.4rem;background:linear-gradient(90deg,#66f6ff00,#66f6ff99)}.mission-body[data-v-d0701d83]{margin-top:var(--space-md);max-width:720px;color:var(--color-muted)}.how-grid[data-v-d0701d83],.player-grid[data-v-d0701d83]{margin-top:var(--space-lg);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md);grid-auto-rows:minmax(180px,auto)}.how-step[data-v-d0701d83]{padding:var(--space-md);background:#ffffff05;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 40px #00000040;transition:transform .35s ease,border-color .35s ease}.session-track[data-v-d0701d83]{margin-top:var(--space-lg);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md);align-items:stretch;position:relative;overflow:hidden}.session-track[data-v-d0701d83]:before{content:"";position:absolute;inset:15% 5%;border-radius:var(--radius-lg);border:1px dashed rgba(255,255,255,.1);pointer-events:none}.session-card[data-v-d0701d83]{padding:var(--space-md);background:#ffffff08;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.08);position:relative;z-index:1;display:flex;flex-direction:column;gap:.25rem;box-shadow:0 14px 30px #0000004d;transition:transform .3s ease,border-color .3s ease,background .3s ease}.session-card[data-v-d0701d83]:after{content:"";position:absolute;top:16px;right:-12px;width:15px;height:15px;border-radius:999px;border:2px solid rgba(255,255,255,.4);background:transparent}.session-card.active[data-v-d0701d83]{background:linear-gradient(135deg,#66f6ff26,#090a12f2);border-color:#66f6ff99;transform:translateY(-6px)}.session-card.next[data-v-d0701d83]{opacity:.9;border-color:#ffffff4d}.session-card.secondary[data-v-d0701d83]{opacity:.7;border-style:dashed}.session-card.active[data-v-d0701d83]:after{background:linear-gradient(135deg,#66f6ff,#8b6bff)}.session-meta[data-v-d0701d83]{display:flex;justify-content:space-between;font-size:.8rem;letter-spacing:.1em}.session-tag[data-v-d0701d83]{text-transform:uppercase;color:var(--color-accent)}.session-duration[data-v-d0701d83]{margin-top:auto;font-size:.85rem;color:var(--color-muted)}.player-highlight-card[data-v-d0701d83]{padding:var(--space-md);background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);box-shadow:0 18px 30px #00000040;transition:transform .3s ease,border-color .3s ease}.player-highlight-card.primary[data-v-d0701d83]{background:radial-gradient(circle at 20% 20%,rgba(102,246,255,.15),transparent 70%);border-color:#66f6ff66;transform:translateY(-4px);grid-row:span 2}.player-highlight-card[data-v-d0701d83]:not(.primary){background:#ffffff05}.how-grid .card[data-v-d0701d83],.player-grid .card[data-v-d0701d83]{min-height:180px;display:flex;flex-direction:column;gap:.35rem}.card h3[data-v-d0701d83]{margin:0}.card p[data-v-d0701d83]{margin:0;color:var(--color-muted)}.step-index[data-v-d0701d83]{font-size:.85rem;letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted)}.card-meta[data-v-d0701d83]{margin-top:auto;font-size:.8rem;color:var(--color-accent-strong)}.cta-section[data-v-d0701d83]{background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.12),transparent 50%)}.cta-card[data-v-d0701d83]{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,auto);gap:1.5rem;align-items:center;justify-content:space-between}.cta-card h2[data-v-d0701d83]{margin:0 0 .5rem;font-size:clamp(2rem,3vw,2.6rem)}.cta-card p[data-v-d0701d83]{margin:0;color:var(--color-muted)}.cta-note[data-v-d0701d83]{margin-top:.5rem;font-size:.9rem;color:var(--color-muted)}.cta-actions[data-v-d0701d83]{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-end}.faq-list[data-v-d0701d83]{margin-top:var(--space-lg);display:grid;gap:var(--space-md)}.faq-list details[data-v-d0701d83]{background:#ffffff08;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);border:1px solid rgba(255,255,255,.08);color:var(--color-muted)}.faq-list summary[data-v-d0701d83]{cursor:pointer;font-weight:600;margin:0}.landing-footer[data-v-d0701d83]{padding:var(--space-lg) 0;border-top:1px solid rgba(255,255,255,.08);text-align:center;font-size:.85rem;color:var(--color-muted)}.hero-section[data-v-d0701d83]{animation:none;opacity:1;transform:none;padding-top:8px}@keyframes fadeUp-d0701d83{to{opacity:1;transform:translateY(0)}}@media(max-width:1120px){.hero-grid[data-v-d0701d83]{grid-template-columns:minmax(0,1fr);align-items:start;max-width:920px}.hero-visual[data-v-d0701d83]{order:2}.hero-copy[data-v-d0701d83]{order:1;justify-content:flex-start;padding:clamp(20px,3.6vw,28px)}.hero-copy h1[data-v-d0701d83]{max-width:12ch}.hero-subtitle[data-v-d0701d83],.hero-friction-text[data-v-d0701d83],.hero-benefits[data-v-d0701d83],.hero-actions[data-v-d0701d83]{max-width:100%}.demo-topbar[data-v-d0701d83]{align-items:center}.demo-stack-cta[data-v-d0701d83]{display:inline-flex;width:100%;justify-content:center}}@media(max-width:768px){.section-block[data-v-d0701d83]{padding:var(--space-lg) 14px}.hero-section[data-v-d0701d83]{margin-top:0;padding-top:4px}.hero-copy[data-v-d0701d83]{border-radius:20px;padding:18px}.hero-copy h1[data-v-d0701d83]{font-size:clamp(1.95rem,7vw,3.1rem);max-width:none}.hero-subtitle[data-v-d0701d83]{max-width:none}.hero-benefits[data-v-d0701d83]{gap:8px;margin-bottom:1rem}.hero-benefit-pill[data-v-d0701d83]{font-size:.76rem;padding:5px 9px}.hero-actions[data-v-d0701d83] .btn{flex:1 1 calc(50% - .35rem);min-width:min(100%,220px)}.demo-topbar[data-v-d0701d83]{gap:6px;font-size:.72rem;padding:7px 8px}.demo-topbar strong[data-v-d0701d83]{font-size:.78rem}.cta-card[data-v-d0701d83]{grid-template-columns:1fr;align-items:flex-start}.session-track[data-v-d0701d83]{grid-template-columns:repeat(2,minmax(0,1fr))}.session-track[data-v-d0701d83]:before{inset:8px}.session-card[data-v-d0701d83]:after{display:none}.how-grid[data-v-d0701d83],.player-grid[data-v-d0701d83],.landing-shell[data-v-d0701d83] .icon-row{grid-template-columns:repeat(2,minmax(0,1fr))}.player-highlight-card.primary[data-v-d0701d83]{grid-row:span 1}.proof-badge[data-v-d0701d83]{font-size:.86rem}.section-heading h2[data-v-d0701d83]{font-size:clamp(1.35rem,7.4vw,1.9rem)}.faq-list details[data-v-d0701d83]{padding:10px 12px;border-radius:12px}.hero-kicker[data-v-d0701d83]{letter-spacing:.14rem;font-size:.66rem;padding:4px 8px}.demo-chip[data-v-d0701d83],.demo-meta[data-v-d0701d83],.demo-topbar strong[data-v-d0701d83],.demo-badge[data-v-d0701d83]{width:100%;justify-self:stretch;text-align:left}.staff-live[data-v-d0701d83]{height:clamp(164px,28vw,188px)}.demo-notes-used[data-v-d0701d83]{overflow-x:auto;padding-bottom:2px;scrollbar-width:thin;overscroll-behavior-x:contain}.demo-keyboard[data-v-d0701d83]{height:clamp(118px,21vw,142px);padding-inline:0}}@media(max-width:480px){.hero-copy[data-v-d0701d83]{border-radius:16px;padding:14px}.demo-topbar[data-v-d0701d83]{gap:8px}.hero-copy h1[data-v-d0701d83]{font-size:clamp(1.7rem,9.4vw,2.15rem)}.hero-subtitle[data-v-d0701d83]{font-size:.92rem;line-height:1.45}.hero-actions[data-v-d0701d83]{gap:.5rem}.hero-actions[data-v-d0701d83] .btn{flex-basis:100%;min-width:100%}.hero-friction-text[data-v-d0701d83]{font-size:.75rem}.practice-demo[data-v-d0701d83]{padding:8px;border-radius:14px;gap:6px}.demo-score[data-v-d0701d83]{padding:8px}.demo-meta[data-v-d0701d83],.demo-chip-stats[data-v-d0701d83],.demo-chip.mode[data-v-d0701d83]{width:100%}.staff-live[data-v-d0701d83]{height:154px}.demo-keyboard[data-v-d0701d83]{height:120px;padding-inline:0}.demo-chip[data-v-d0701d83],.demo-badge[data-v-d0701d83]{font-size:.66rem;padding:3px 6px}.demo-topbar strong[data-v-d0701d83],.demo-topbar span[data-v-d0701d83]{line-height:1.15}.demo-subtitle[data-v-d0701d83],.demo-notes-used[data-v-d0701d83],.demo-cta[data-v-d0701d83]{font-size:.72rem}.how-grid[data-v-d0701d83],.player-grid[data-v-d0701d83],.session-track[data-v-d0701d83],.landing-shell[data-v-d0701d83] .icon-row{grid-template-columns:1fr}.cta-actions[data-v-d0701d83]{width:100%;justify-content:stretch}.cta-actions[data-v-d0701d83] .btn{flex:1 1 100%}}@media(max-height:560px)and (orientation:landscape){.section-block[data-v-d0701d83]{padding-top:var(--space-lg);padding-bottom:var(--space-lg)}.hero-grid[data-v-d0701d83]{gap:14px}.hero-copy[data-v-d0701d83]{padding:14px}.hero-copy h1[data-v-d0701d83]{font-size:clamp(1.85rem,5vw,2.8rem);margin-bottom:.65rem}.hero-subtitle[data-v-d0701d83]{font-size:.94rem;margin-bottom:.8rem}.hero-benefits[data-v-d0701d83]{gap:6px;margin-bottom:.8rem}.practice-demo[data-v-d0701d83]{padding:8px;gap:8px}.demo-topbar[data-v-d0701d83]{grid-template-columns:repeat(3,minmax(0,1fr))}.staff-live[data-v-d0701d83]{height:138px}.demo-keyboard[data-v-d0701d83]{height:104px}}.uploader[data-v-78df6060]{display:flex;flex-direction:column;gap:18px;padding:16px;background:#0a0a0ad9;border-radius:16px;border:1px solid rgba(255,255,255,.1);min-height:260px;color:#fff;font-size:.9rem}.uploader-header[data-v-78df6060]{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.uploader-title[data-v-78df6060]{margin:0;font-size:.95rem;text-transform:uppercase;letter-spacing:.08em}.uploader-subtitle[data-v-78df6060]{margin:6px 0 0;color:#ffffffa6;font-size:.8rem}.panel-close[data-v-78df6060]{background:#ffffff0f;border:1px solid rgba(255,255,255,.2);color:#fff;width:32px;height:32px;border-radius:10px;cursor:pointer;font-size:1.1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center}.panel-close[data-v-78df6060]:hover{border-color:#fff6}.hidden-input[data-v-78df6060]{display:none}.panel-section[data-v-78df6060]{border-top:1px solid rgba(255,255,255,.1);padding-top:12px}.panel-section[data-v-78df6060]:first-of-type{border-top:none;padding-top:0}.panel-section h3[data-v-78df6060]{margin:0 0 8px;font-size:1rem;letter-spacing:.5px;text-transform:uppercase;font-weight:600}.panel-section-header[data-v-78df6060]{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.global-track-actions[data-v-78df6060]{display:flex;gap:8px;flex-wrap:wrap}.global-track-actions button[data-v-78df6060]{border-radius:999px;padding:4px 14px;font-size:.75rem;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;cursor:pointer}.section-note[data-v-78df6060]{margin:0;color:#ffffffb3;font-size:.8rem}.track-item[data-v-78df6060]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.track-title[data-v-78df6060]{display:flex;align-items:center;gap:8px}.track-info[data-v-78df6060]{display:flex;align-items:center;gap:12px}.track-name[data-v-78df6060]{margin:0;font-weight:600}.track-name+small[data-v-78df6060]{display:block;font-size:.75rem;color:#ffffffa6}.track-dot[data-v-78df6060]{width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg,#ff5f5f,#ffd15f);display:inline-block}.track-controls[data-v-78df6060]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.track-status-pill[data-v-78df6060]{font-size:.7rem;letter-spacing:.3px;padding:2px 10px;border-radius:999px;background:#00c87326;color:#00ffb0;display:inline-flex;margin:4px 0 8px}.track-btn[data-v-78df6060]{border-radius:8px;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font-size:.75rem;padding:4px 10px;cursor:pointer}.track-btn.active[data-v-78df6060]{background:#1effc0;border-color:transparent;color:#050608}.playalong-btn[data-v-78df6060]{background:transparent;border:1px solid rgba(255,255,255,.4);padding:4px 10px;border-radius:999px;color:#fff;font-size:.75rem;cursor:pointer}.playalong-btn.active[data-v-78df6060]{background:#00c173;border-color:transparent;color:#040508}.hand-select[data-v-78df6060]{border-radius:8px;border:1px solid rgba(255,255,255,.25);background:#ffffff0d;color:#fff;font-size:.75rem;padding:4px 8px;cursor:pointer}.device-status-row[data-v-78df6060]{display:flex;align-items:center;gap:12px;border-radius:12px;padding:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.status-dot[data-v-78df6060]{width:14px;height:14px;border-radius:50%;background:#ffffff4d;border:1px solid rgba(255,255,255,.5);transition:background .2s}.status-dot.connected[data-v-78df6060]{background:#25d366;border-color:transparent}.status-dot.active[data-v-78df6060]{box-shadow:0 0 8px 2px #fff9}.status-text[data-v-78df6060]{flex:1}.activity-dot[data-v-78df6060]{width:12px;height:12px;border-radius:50%;background:#ffffff4d;transition:box-shadow .2s}.activity-dot.active[data-v-78df6060]{box-shadow:0 0 10px 3px #00ff8a}.device-picker[data-v-78df6060]{width:100%;background:#ffffff0d;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#fff;padding:6px 10px;margin-bottom:12px}.device-settings[data-v-78df6060]{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.device-settings input[type=range][data-v-78df6060]{width:180px}.transpose-value[data-v-78df6060]{font-size:.75rem;margin-left:8px;display:inline-block;color:#fffc}.playalong-warning[data-v-78df6060]{margin:4px 0;font-size:.75rem;color:#ffbb79;letter-spacing:.2px}.playalong-btn.disabled[data-v-78df6060]{opacity:.4;cursor:not-allowed}.controller-calibration[data-v-78df6060]{margin-top:12px;display:flex;flex-direction:column;gap:8px}.calibration-row[data-v-78df6060]{display:flex;gap:8px;flex-wrap:wrap}.calibration-status[data-v-78df6060]{color:#ffffffbf}.loading-skeleton[data-v-78df6060]{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px}.loading-skeleton p[data-v-78df6060]{margin:0;font-size:.85rem;opacity:.7}.skeleton-bars[data-v-78df6060]{display:flex;flex-direction:column;gap:6px}.skeleton-bars span[data-v-78df6060]{height:6px;border-radius:999px;background:linear-gradient(135deg,#fff3,#ffffff0d);opacity:.7}[data-v-9cf088e8] .vf-stave path,[data-v-9cf088e8] .vf-stave rect{stroke:#00000026;fill:#00000026}[data-v-9cf088e8] .vf-note-group{transition:opacity .12s ease,fill .12s ease,stroke .12s ease;opacity:1}[data-v-9cf088e8] .vf-notehead{transition:fill .12s ease,opacity .12s ease}[data-v-9cf088e8] .vf-note-active{filter:none;opacity:1}.course-mode[data-v-9cf088e8] .vf-note-preview{opacity:1!important}.course-mode[data-v-9cf088e8] .vf-note-group *{fill:#1f1f1f!important;stroke:#1f1f1f!important}.course-mode[data-v-9cf088e8] .vf-note-preview *{stroke:#1f1f1f!important;stroke-width:1px!important}.course-mode[data-v-9cf088e8] .vf-note-preview *:not([fill=none]){fill:#1f1f1f!important}.course-mode[data-v-9cf088e8] .vf-note-preview [fill=none]{fill:none!important}.course-mode[data-v-9cf088e8] .vf-note-target{opacity:1!important;filter:drop-shadow(0 0 4px rgba(0,0,0,.25))}.course-mode[data-v-9cf088e8] .vf-note-target[data-clef=treble] *{fill:#2f6cff!important;stroke:#2f6cff!important}.course-mode[data-v-9cf088e8] .vf-note-target[data-clef=bass] *{fill:#ff8c42!important;stroke:#ff8c42!important}.course-mode[data-v-9cf088e8] .score-canvas svg .vf-clef>*,.course-mode[data-v-9cf088e8] .score-canvas svg .vf-clef [class*=glyph],.course-mode[data-v-9cf088e8] .score-canvas svg .vf-timesig>*,.course-mode[data-v-9cf088e8] .score-canvas svg [class*=timesig]>*,.course-mode[data-v-9cf088e8] .score-canvas svg .vf-stave-connector,.course-mode[data-v-9cf088e8] .score-canvas svg [class*=staveconnector],.course-mode[data-v-9cf088e8] .score-canvas svg [class*=stave-connector]{opacity:0!important}.score-vexflow[data-v-9cf088e8]{position:relative;display:flex;flex-direction:column;height:100%;background:#f6f6f4;overflow:hidden}.score-controls[data-v-9cf088e8]{position:absolute;top:12px;right:12px;z-index:20}.controls-row[data-v-9cf088e8]{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.clef-calibration-row[data-v-9cf088e8]{margin-top:8px;justify-content:flex-end}.clef-control[data-v-9cf088e8]{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:8px;background:#081122d6;border:1px solid rgba(136,168,224,.35);color:#d7e6ff;font-size:12px;font-weight:700}.clef-control input[data-v-9cf088e8]{width:70px;padding:4px 6px;border-radius:6px;border:1px solid rgba(136,168,224,.42);background:#030b19f2;color:#f2f6ff;font-size:12px}.control-group[data-v-9cf088e8]{display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border-radius:10px;background:#0000000a;border:1px solid rgba(0,0,0,.08)}.control-label[data-v-9cf088e8]{min-width:46px;text-align:center;font-size:12px;font-weight:700;color:#0000008c;-webkit-user-select:none;user-select:none}.step-btn[data-v-9cf088e8]{width:30px;height:28px;border-radius:8px;border:1px solid rgba(0,0,0,.12);background:#ffffffbf;color:#333;font-weight:900;cursor:pointer;transition:all .15s}.step-btn[data-v-9cf088e8]:hover:not(:disabled){background:#fff;border-color:#00000038}.step-btn[data-v-9cf088e8]:disabled{opacity:.45;cursor:not-allowed}.toggle-btn[data-v-9cf088e8]{padding:6px 12px;background:#0000000d;border:1px solid rgba(0,0,0,.1);border-radius:6px;color:#555;font-size:13px;cursor:pointer;transition:all .2s;font-weight:600}.toggle-btn[data-v-9cf088e8]:hover{background:#0000001a;color:#000}.toggle-btn.active[data-v-9cf088e8]{background:#667eea;border-color:transparent;color:#fff}.score-viewport[data-v-9cf088e8]{position:relative;flex:1;overflow:hidden;width:100%;touch-action:pan-y}.score-track[data-v-9cf088e8]{position:absolute;left:0;top:0;height:100%;display:flex;align-items:flex-start;will-change:transform;z-index:1}.fixed-notation-layer[data-v-9cf088e8]{position:absolute;inset:0;pointer-events:none;z-index:7}.fixed-left-mask[data-v-9cf088e8]{position:absolute;left:0;top:0;bottom:0;width:0;background:#f6f6f4;z-index:1}.treble-clef[data-v-9cf088e8],.bass-clef[data-v-9cf088e8]{position:absolute;color:#222;font-family:Bravura,Noto Music,serif;line-height:1;pointer-events:none;z-index:3}.fixed-staff-lines[data-v-9cf088e8]{position:absolute;width:40px;display:block;pointer-events:none;z-index:2}.staff-line[data-v-9cf088e8]{position:absolute;left:0;right:0;height:var(--fixed-line-thickness, 1px);background:#00000026;transform:translateY(-50%)}.fixed-barline[data-v-9cf088e8]{position:absolute;width:2px;background:#00000040;z-index:2}.playhead-layer[data-v-9cf088e8]{position:absolute;inset:0;z-index:10;pointer-events:none}.score-canvas[data-v-9cf088e8]{display:block;min-height:0;height:auto}[data-v-9cf088e8] .score-canvas>svg{display:block}.playhead[data-v-9cf088e8]{position:absolute;left:50%;top:0;bottom:0;width:2px;background:#5078ffe6;z-index:11;pointer-events:none;transform:translate(-50%)}.course-mode .playhead[data-v-9cf088e8]{display:none}.score-loading[data-v-9cf088e8],.score-error[data-v-9cf088e8],.score-empty[data-v-9cf088e8]{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;color:#888;gap:12px}.score-error[data-v-9cf088e8]{color:#ff6b6b}.score-error button[data-v-9cf088e8]{padding:8px 16px;background:#ff6b6b;border:none;border-radius:6px;color:#fff;cursor:pointer}.spinner[data-v-9cf088e8]{width:32px;height:32px;border:3px solid rgba(0,0,0,.1);border-top-color:#667eea;border-radius:50%;animation:spin-9cf088e8 .8s linear infinite}@keyframes spin-9cf088e8{to{transform:rotate(360deg)}}.top-control-bar[data-v-6fe5b7e5]{position:sticky;top:0;z-index:200;background:#000000eb;padding:var(--panel-padding);display:flex;flex-direction:column;gap:clamp(10px,1.5vw,18px);border-bottom:1px solid rgba(255,255,255,.08);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.control-panel[data-v-6fe5b7e5]{display:flex;flex-direction:column;gap:6px}.control-row[data-v-6fe5b7e5]{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}.single-row[data-v-6fe5b7e5]{justify-content:flex-start}.icon-btn[data-v-6fe5b7e5]{width:42px;height:42px;border-radius:12px;border:none;background:#ffffff14;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:transform .14s ease,background .14s ease}.icon-btn[data-v-6fe5b7e5]:hover:not(:disabled){transform:translateY(-2px);background:#ffffff2e}.icon-btn[data-v-6fe5b7e5]:disabled{opacity:.4;cursor:not-allowed}.icon-btn.active[data-v-6fe5b7e5]{background:#667eea}.info-pill[data-v-6fe5b7e5]{border-radius:999px;padding:0 10px;background:#ffffff14;color:#fffc;font-size:.75rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-pill[data-v-6fe5b7e5]{min-width:140px;flex:1 1 180px}.loop-meta[data-v-6fe5b7e5]{display:flex;align-items:center;gap:10px;margin-left:auto}.loop-status[data-v-6fe5b7e5]{color:#ffffffd9;font-size:.7rem;letter-spacing:.04em;padding:4px 10px;border-radius:999px;background:#ffffff0d}.tempo-mini[data-v-6fe5b7e5]{display:flex;align-items:center;gap:8px}.tempo-mini .mini[data-v-6fe5b7e5]{width:28px;height:28px;border-radius:8px;border:none;background:#ffffff1f;color:#fff;cursor:pointer}.score-scale[data-v-6fe5b7e5]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#ffffff14;color:#ffffffd9;font-size:.7rem}.zoom-controls[data-v-6fe5b7e5]{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#ffffff14}.zoom-btn[data-v-6fe5b7e5]{width:30px;height:30px;border-radius:8px;border:none;background:#ffffff1f;color:#fff;cursor:pointer;font-weight:700;line-height:1}.zoom-btn.text[data-v-6fe5b7e5]{width:auto;padding:0 10px;font-size:.72rem;font-weight:600}.zoom-btn[data-v-6fe5b7e5]:disabled{opacity:.45;cursor:not-allowed}.zoom-label[data-v-6fe5b7e5]{font-size:.7rem;color:#ffffffbf;font-family:JetBrains Mono,monospace;white-space:nowrap}.scale-btn[data-v-6fe5b7e5]{width:26px;height:26px;border-radius:8px;border:none;background:#ffffff1a;color:#fff;cursor:pointer;font-weight:700}.sr-only[data-v-6fe5b7e5]{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;clip:rect(0 0 0 0);overflow:hidden}.progress-wrap[data-v-6fe5b7e5]{position:relative;width:100%;border-radius:calc(var(--panel-radius) * .7);display:flex;flex-direction:column;gap:clamp(8px,1vw,12px);padding:clamp(6px,.8vw,10px);background:#ffffff05}.top-control-bar.collapsed[data-v-6fe5b7e5]{padding-bottom:8px}.progress-row[data-v-6fe5b7e5]{display:flex;align-items:center;gap:10px}.hide-toggle[data-v-6fe5b7e5]{border:none;background:#ffffff26;color:#fff;width:30px;height:30px;border-radius:50%;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s ease}.hide-toggle[data-v-6fe5b7e5]:hover{background:#ffffff4d}.tempo-pan[data-v-6fe5b7e5]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pan-controls[data-v-6fe5b7e5]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.pan-btn[data-v-6fe5b7e5]{border:none;background:#ffffff26;color:#fff;width:32px;height:32px;border-radius:8px;font-size:1rem;cursor:pointer;transition:background .2s ease}.pan-btn[data-v-6fe5b7e5]:hover{background:#ffffff4d}.pan-label[data-v-6fe5b7e5]{font-size:.75rem;color:#ffffffb3;font-family:JetBrains Mono,monospace;min-width:64px;text-align:right;white-space:nowrap}.progress-canvas[data-v-6fe5b7e5]{width:100%;height:32px;border-radius:10px;border:1px solid rgba(255,255,255,.1);cursor:pointer;touch-action:none}.progress-tooltip[data-v-6fe5b7e5]{position:absolute;top:-32px;transform:translate(-50%);background:#000c;padding:4px 8px;border-radius:6px;font-size:.75rem;border:1px solid rgba(255,255,255,.2);pointer-events:none}@media(max-width:768px){.control-row[data-v-6fe5b7e5]{justify-content:center}}.practice-feedback[data-v-57f8eb23]{position:absolute;top:clamp(90px,9vh,140px);right:var(--main-padding);padding:var(--panel-padding);border-radius:calc(var(--panel-radius) * .5);font-weight:600;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);max-width:clamp(180px,24vw,260px)}.practice-feedback.success[data-v-57f8eb23]{background:#25d37626;color:#0cf38f}.practice-feedback.warning[data-v-57f8eb23]{background:#ffe50026;color:#fff176}.practice-feedback.error[data-v-57f8eb23]{background:#ff444426;color:#ff6b6b}.practice-feedback.info[data-v-57f8eb23]{background:#6495ed33;color:#9fb4ff}.fade-enter-active[data-v-57f8eb23],.fade-leave-active[data-v-57f8eb23]{transition:opacity .3s ease}.fade-enter-from[data-v-57f8eb23],.fade-leave-to[data-v-57f8eb23]{opacity:0}.practice-stats-panel[data-v-767ac189]{position:absolute;top:clamp(160px,12vh,220px);left:var(--main-padding);background:#040404d9;padding:var(--panel-padding);border-radius:calc(var(--panel-radius) * .8);border:1px solid rgba(255,255,255,.1);display:flex;gap:clamp(14px,2vw,20px);font-size:.85rem;z-index:100;flex-wrap:wrap}.stat .label[data-v-767ac189]{display:block;font-size:.7rem;opacity:.7;text-transform:uppercase;letter-spacing:1px}.stat strong[data-v-767ac189]{font-size:1rem}.shortcuts-overlay[data-v-0219d667]{position:fixed;inset:0;background:#030303d9;display:flex;align-items:center;justify-content:center;z-index:250}.overlay-inner[data-v-0219d667]{background:#0a0a0af2;border-radius:var(--panel-radius);padding:clamp(18px,2vw,32px);border:1px solid rgba(255,255,255,.14);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-width:clamp(240px,70vw,420px);max-width:clamp(320px,80vw,480px);width:min(420px,90vw)}.overlay-inner h4[data-v-0219d667]{margin:0 0 16px;font-size:1.1rem;letter-spacing:.2em;text-transform:uppercase;color:#fffc}.overlay-inner ul[data-v-0219d667]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.overlay-inner li[data-v-0219d667]{display:flex;justify-content:space-between;gap:12px;font-size:.9rem;color:#ffffffe6}.combo[data-v-0219d667]{font-weight:700;letter-spacing:.1em;text-transform:uppercase}.description[data-v-0219d667]{opacity:.8}.edit-menu[data-v-edafe3d2]{background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px;color:#fff}.tabs[data-v-edafe3d2]{display:flex;gap:8px}.tabs button[data-v-edafe3d2]{flex:1;padding:8px 0;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:transparent;color:#fff;cursor:pointer}.tabs button.active[data-v-edafe3d2]{background:#00ff8a;color:#020a06;border-color:transparent}.tab-content[data-v-edafe3d2]{display:flex;flex-direction:column;gap:10px}.filter-row[data-v-edafe3d2]{display:flex;gap:10px;flex-wrap:wrap}.filter-row label[data-v-edafe3d2]{display:flex;flex-direction:column;font-size:.75rem;letter-spacing:.3px;color:#ffffffb3}.filter-row input[data-v-edafe3d2],.filter-row select[data-v-edafe3d2],.edit-menu textarea[data-v-edafe3d2]{border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;padding:6px 8px;color:#fff}.mini[data-v-edafe3d2]{border:none;border-radius:999px;padding:6px 14px;background:#ffffff1a;color:#fff;cursor:pointer}.copy-btn[data-v-edafe3d2]{border:1px solid rgba(255,255,255,.3);background:#00ff8a1f;color:#00ff8a}.note-table[data-v-edafe3d2]{max-height:220px;overflow-y:auto;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:6px;background:#ffffff03}.note-row[data-v-edafe3d2]{display:grid;grid-template-columns:repeat(12,minmax(60px,1fr));gap:8px;font-size:.75rem;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.08)}.note-row[data-v-edafe3d2]:last-child{border-bottom:none}.note-row.header[data-v-edafe3d2]{border-bottom:1px solid rgba(255,255,255,.2);font-size:.7rem;letter-spacing:.3px;text-transform:uppercase;color:#ffffffb3}.empty[data-v-edafe3d2]{text-align:center;color:#ffffff80;padding:10px 0;font-size:.8rem}.primary[data-v-edafe3d2]{border:none;background:linear-gradient(135deg,#17fbd8,#00a884);color:#020a06;padding:8px 16px;border-radius:999px;font-weight:600;cursor:pointer}.library-sidebar[data-v-75ed9f3e]{position:fixed;top:var(--topbar-h);right:0;bottom:0;width:min(360px,85vw);max-width:100%;background:#030305fa;border-left:1px solid rgba(255,255,255,.08);padding:18px;display:flex;flex-direction:column;gap:16px;z-index:260;box-shadow:-12px 0 30px #000000a6;border-radius:16px 0 0 16px;height:calc(100vh - var(--topbar-h))}.library-header[data-v-75ed9f3e]{display:flex;align-items:center;justify-content:space-between;gap:12px}.close-btn[data-v-75ed9f3e]{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:6px 16px;border-radius:999px;cursor:pointer}.song-panel[data-v-75ed9f3e]{display:flex;flex-direction:column;gap:12px}.filter-grid[data-v-75ed9f3e]{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.filter-grid input[data-v-75ed9f3e],.filter-grid select[data-v-75ed9f3e]{border-radius:8px;padding:6px 8px;background:#ffffff14;border:1px solid rgba(255,255,255,.2);color:#fff}.song-list[data-v-75ed9f3e]{display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 260px);overflow-y:auto}.group[data-v-75ed9f3e]{background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:16px;padding:14px}.song-card[data-v-75ed9f3e]{padding:14px;border-radius:14px;border:1px solid transparent;background:#ffffff05;display:flex;flex-direction:column;gap:12px}.song-card.active[data-v-75ed9f3e]{border-color:#3dd598;background:#3dd59814}.song-info[data-v-75ed9f3e]{display:flex;align-items:center;justify-content:space-between}.card-actions[data-v-75ed9f3e]{display:flex;flex-wrap:wrap;gap:8px}.card-actions button[data-v-75ed9f3e]{border-radius:8px;background:#ffffff14;border:none;padding:6px 10px;color:#fff;cursor:pointer}.expander[data-v-75ed9f3e]{padding-top:12px}.card-loading[data-v-75ed9f3e]{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;color:#c5ffe5;margin-top:6px}.loading-indicator[data-v-75ed9f3e]{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.25);border-top-color:#00ff8a;animation:spin-75ed9f3e .8s linear infinite}.status-badge[data-v-75ed9f3e]{font-size:.8rem;padding:4px 12px;border-radius:999px;color:#050505;font-weight:600}.status-badge.uploaded[data-v-75ed9f3e]{background:#1effb1}.status-badge.dirty[data-v-75ed9f3e]{background:#ffb347}.status-badge.local[data-v-75ed9f3e]{background:#ffffff4d}@keyframes spin-75ed9f3e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:768px){.library-sidebar[data-v-75ed9f3e]{width:100%;height:100%;border-radius:0;padding:18px}}:root{--main-padding: clamp(20px, 2.5vw, 40px);--panel-padding: clamp(16px, 1.75vw, 26px);--panel-width: clamp(260px, 26vw, 360px);--panel-radius: clamp(18px, 2vw, 24px);--layout-gap: clamp(16px, 2vw, 32px);--score-height: clamp(220px, 32vh, 380px);--score-height-scale: 1;--piano-min-height: clamp(250px, 38vh, 560px);--topbar-h: 72px;--player-min-h: 620px}.app-shell[data-v-54c922a7]{min-height:100vh;background:radial-gradient(circle at top,rgba(11,123,255,.25),transparent 50%),#030303;display:flex;flex-direction:column;position:relative}.session-banner[data-v-54c922a7]{padding:12px 18px;background:#00000059;color:#ffffffbf;font-size:.9rem}.session-banner.error[data-v-54c922a7]{background:#78191959;color:#ffb3b3}.content-shell[data-v-54c922a7]{display:flex;flex:1;gap:var(--layout-gap);padding:var(--main-padding);height:calc(100vh - var(--topbar-h));overflow:hidden;position:relative}.main-area[data-v-54c922a7]{flex:1;display:flex;flex-direction:column;gap:var(--layout-gap);min-width:0}.split-layout[data-v-54c922a7]{display:flex;flex:1;min-height:0}.stage-container[data-v-54c922a7]{position:relative;display:flex;flex-direction:column;flex:1;min-height:0;border-radius:var(--panel-radius);overflow:hidden;background:#05050599;border:1px solid rgba(255,255,255,.08)}.score-visibility-btn[data-v-54c922a7]{position:absolute;top:10px;right:10px;z-index:25;border:1px solid rgba(255,255,255,.26);border-radius:999px;background:#0000007a;color:#ffffffeb;font-size:.75rem;font-weight:600;padding:6px 12px;cursor:pointer}.score-section[data-v-54c922a7]{flex:0 0 calc(var(--score-height) * var(--score-height-scale, 1));min-height:130px;display:flex;flex-direction:column;background:#1a1a2e;border-bottom:1px solid rgba(255,255,255,.08);overflow:hidden}.piano-section[data-v-54c922a7]{flex:1;min-height:var(--piano-min-height);position:relative;background:#000;overflow:hidden}.side-panel[data-v-54c922a7]{position:absolute;top:0;right:0;bottom:0;width:var(--panel-width);max-width:100%;background:#04060cf2;border-left:1px solid rgba(255,255,255,.08);border-radius:16px 0 0 16px;box-shadow:-12px 0 30px #0000008c;padding:0;transition:transform .25s ease,opacity .25s ease;transform:translate(16px);opacity:0;pointer-events:none;z-index:250}.pixel-debug[data-v-54c922a7]{position:fixed;right:16px;bottom:16px;width:min(360px,92vw);max-height:40vh;overflow:hidden;border-radius:12px;background:#080a0ee6;border:1px solid rgba(255,255,255,.12);color:#ffffffd9;font-size:.78rem;display:flex;flex-direction:column;z-index:999}.pixel-debug-header[data-v-54c922a7]{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.12);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.7rem}.pixel-debug-empty[data-v-54c922a7]{padding:12px;opacity:.7}.pixel-debug-list[data-v-54c922a7]{padding:8px 12px 12px;overflow:auto;display:flex;flex-direction:column;gap:8px}.pixel-debug-row[data-v-54c922a7]{display:grid;grid-template-columns:70px 1fr;gap:8px;align-items:start}.pixel-debug-kind[data-v-54c922a7]{text-transform:uppercase;font-size:.65rem;opacity:.7}.pixel-debug-name[data-v-54c922a7]{font-weight:600}.pixel-debug-payload[data-v-54c922a7]{grid-column:1 / -1;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.68rem;opacity:.75;word-break:break-word}.side-panel.open[data-v-54c922a7]{opacity:1;transform:translate(0);pointer-events:auto}.panel-inner[data-v-54c922a7]{height:100%}.empty-state[data-v-54c922a7]{display:flex;flex-direction:column;align-items:flex-start;gap:12px;background:#ffffff0a;border-radius:16px;padding:20px;border:1px solid rgba(255,255,255,.08)}.empty-upload[data-v-54c922a7]{background:#fff;border:none;border-radius:999px;padding:10px 16px;font-weight:600;cursor:pointer}.song-loading-overlay[data-v-54c922a7]{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:10px;background:#00000059;color:#fff;z-index:10}.loading-spinner[data-v-54c922a7]{width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;animation:spin-54c922a7 .8s linear infinite}@keyframes spin-54c922a7{to{transform:rotate(360deg)}}@media(max-width:980px){:root{--score-height: clamp(180px, 30vh, 300px);--piano-min-height: clamp(260px, 50vh, 620px)}.content-shell[data-v-54c922a7]{flex-direction:column;height:auto;overflow:visible}.split-layout[data-v-54c922a7]{min-height:80vh}.side-panel[data-v-54c922a7]{width:min(90vw,var(--panel-width))}}@media(max-height:760px){:root{--score-height: clamp(210px, 32vh, 300px);--piano-min-height: clamp(200px, 44vh, 360px)}}.onboarding-mask[data-v-5c148142]{position:fixed;inset:0;z-index:110;display:grid;place-items:center;background:#02060cbd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.onboarding-card[data-v-5c148142]{width:min(620px,calc(100vw - 24px));background:linear-gradient(145deg,#151d2ffa,#050912fa);border:1px solid rgba(168,216,255,.35);border-radius:20px;padding:22px}.onboarding-card h2[data-v-5c148142]{margin:8px 0}.step[data-v-5c148142]{margin:0;font-size:.75rem;letter-spacing:.2em;color:#b3d5f4cc}.btn[data-v-5c148142]{border-radius:999px;border:1px solid transparent;padding:10px 14px;font-weight:700}.btn.strong[data-v-5c148142]{background:linear-gradient(135deg,#58d7ff,#9dffa8);color:#031218}.learn-header[data-v-4846a0d9]{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}.title-block h1[data-v-4846a0d9]{margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1}.eyebrow[data-v-4846a0d9]{margin:0;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:#ebf3ffa6}.subtitle[data-v-4846a0d9]{margin:8px 0 0;color:#d3e3f5d9}.transport[data-v-4846a0d9]{display:flex;gap:8px;flex-wrap:wrap}.btn[data-v-4846a0d9]{border-radius:999px;border:1px solid transparent;padding:10px 14px;font-weight:700}.btn.strong[data-v-4846a0d9]{background:linear-gradient(135deg,#58d7ff,#9dffa8);color:#031218}.btn.ghost[data-v-4846a0d9]{background:#ffffff14;border-color:#ffffff47;color:#fff}.btn[data-v-4846a0d9]:disabled{opacity:.45}@media(max-width:700px){.transport[data-v-4846a0d9]{width:100%}.btn[data-v-4846a0d9]{flex:1;min-width:110px}}.mode-row[data-v-7c8e9a26]{display:flex;gap:8px;flex-wrap:wrap}.pill[data-v-7c8e9a26]{border-radius:999px;border:1px solid rgba(176,214,246,.35);background:#ffffff0f;color:#f0f9ffe6;padding:7px 12px;font-weight:700;font-size:.84rem}.pill.active[data-v-7c8e9a26]{background:linear-gradient(145deg,#65d7ff,#9effbe);color:#02131a;border-color:transparent}.coach-row[data-v-308033bc]{border-radius:14px;border:1px solid rgba(170,203,236,.28);background:#080f1bd6;padding:10px 12px}.coach-row.good[data-v-308033bc]{border-color:#74fabe73}.coach-row.warn[data-v-308033bc]{border-color:#ffb87c80}.panel[data-v-c1d8fd63]{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto;padding-right:2px}.card[data-v-c1d8fd63]{background:#080f19db;border:1px solid rgba(166,210,244,.24);border-radius:14px;padding:10px 12px}.card span[data-v-c1d8fd63]{display:block;font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;color:#bbd6edd9}.card strong[data-v-c1d8fd63]{color:#ecf8ff}.card p[data-v-c1d8fd63]{margin:7px 0 0}.objective .meter[data-v-c1d8fd63]{margin-top:10px;height:8px;border-radius:999px;background:#ffffff1f;overflow:hidden}.objective .fill[data-v-c1d8fd63]{height:100%;background:linear-gradient(90deg,#67d7ff,#87ffcf)}@media(max-width:1200px){.panel[data-v-c1d8fd63]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));overflow:visible}}.panel[data-v-8189e9c9]{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto;padding-right:2px}.card[data-v-8189e9c9]{background:#080f19db;border:1px solid rgba(166,210,244,.24);border-radius:14px;padding:10px 12px}.card span[data-v-8189e9c9]{display:block;font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;color:#bbd6edd9}.card strong[data-v-8189e9c9]{color:#ecf8ff}.card p[data-v-8189e9c9]{margin:7px 0 0}.stat-grid[data-v-8189e9c9]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.badge-list[data-v-8189e9c9]{margin-top:8px;display:grid;gap:6px}.badge[data-v-8189e9c9]{border:1px solid rgba(187,215,237,.25);border-radius:999px;padding:5px 10px;font-size:.82rem;color:#c9def1bf}.badge.on[data-v-8189e9c9]{color:#04231e;border-color:transparent;background:linear-gradient(145deg,#7af1ff,#9dffb9)}.btn[data-v-8189e9c9]{border-radius:999px;border:1px solid transparent;padding:10px 14px;font-weight:700}.btn.ghost[data-v-8189e9c9]{background:#ffffff14;border-color:#ffffff47;color:#fff}@media(max-width:1200px){.panel[data-v-8189e9c9]{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));overflow:visible}.stat-grid[data-v-8189e9c9]{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.stat-grid[data-v-8189e9c9]{grid-template-columns:repeat(2,1fr)}}.timeline[data-v-444a4f44]{border-radius:14px;background:#070e18d6;border:1px solid rgba(148,203,250,.24);padding:10px 12px}.time-row[data-v-444a4f44]{display:flex;justify-content:space-between;margin-bottom:6px;font-size:.88rem;color:#d2e4f4e6}.timeline input[data-v-444a4f44]{width:100%}.progress-text[data-v-444a4f44]{text-align:right;margin-top:6px;color:#b9d6f0d6;font-size:.85rem}:root{--lesson-space-1: 8px;--lesson-space-2: 16px;--lesson-space-3: 24px;--lesson-space-4: 32px;--lesson-space-5: 48px;--lesson-color-neutral: #d7e0eb;--lesson-color-neutral-strong: #f5f8fc;--lesson-color-accent: #2f7dff;--lesson-color-success: #1abf7a;--lesson-color-warning: #ffb24d;--lesson-color-surface: #0f1726;--lesson-color-surface-soft: #17243a}.lesson-flow{min-height:100vh;background:radial-gradient(circle at 10% 12%,rgba(47,125,255,.22),transparent 36%),radial-gradient(circle at 88% 4%,rgba(26,191,122,.18),transparent 36%),linear-gradient(180deg,#07101d,#050b16)}.lesson-stage-screen{min-height:100vh}.lesson-stage{min-height:100vh;width:min(var(--lesson-shell-max-w, 980px),100%);margin:0 auto;padding:var(--lesson-shell-pad, var(--lesson-space-5));display:flex;align-items:center;justify-content:center}.lesson-stage.note-practice-shell{width:min(var(--lesson-shell-max-w, 1200px),100%);padding:var(--lesson-shell-pad, 10px)}.lesson-stage-result{width:min(780px,100%)}.lesson-playalong{min-height:100vh}.lesson-stage-card,.lesson-result-card{width:min(760px,100%);background:linear-gradient(180deg,#17243af5,#0f1726f5);color:var(--lesson-color-neutral-strong);border:1px solid rgba(152,180,214,.26);border-radius:20px;padding:max(var(--lesson-card-pad, var(--lesson-space-4)),10px);box-shadow:0 18px 48px #040b1473}.stage-eyebrow{margin:0;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:#cddef6b3}.stage-title,.lesson-stage-card h3,.lesson-result-card h3{margin:0;font-size:clamp(1.2rem,1.5vw,1.6rem);line-height:1.25}.stage-copy{margin:0;color:#e3efffe6;line-height:1.45}.stage-actions,.actions{display:flex;gap:var(--lesson-space-1);flex-wrap:wrap}.stage-btn{border:1px solid transparent;background:var(--lesson-color-accent);color:#fff;border-radius:12px;padding:10px 14px;font-weight:600;cursor:pointer;transition:transform .16s ease,filter .16s ease,background .16s ease}.stage-btn:hover{filter:brightness(1.05)}.stage-btn:active{transform:scale(.98)}.stage-btn:disabled{cursor:not-allowed;opacity:.55}.stage-btn.ghost{background:transparent;border-color:#d2e6ff4d}.note-pill,.target-pill{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:7px 12px;border-radius:999px;border:1px solid rgba(205,224,248,.26);background:#e4f0ff0f;color:var(--lesson-color-neutral-strong)}.note-row,.target-row,.staff-note-row{display:flex;flex-wrap:wrap;gap:var(--lesson-space-1)}.target-pill.pending{background:#e5edf61a;border-color:#c7d6e847}.target-pill.active{background:#2f7dff47;border-color:#89bbfff2;transform:scale(1.06);animation:lesson-active-pulse .28s ease}.target-pill.completed{background:#1abf7a3d;border-color:#74ecb6e6;box-shadow:0 0 12px #3ad59259;animation:lesson-complete-pop .22s ease}.practice-progress{display:flex;gap:6px;margin-top:var(--lesson-space-1)}.practice-progress-dot{width:9px;height:9px;border-radius:50%;background:#cfdeee47}.practice-progress-dot.done{background:var(--lesson-color-success);box-shadow:0 0 8px #1abf7a73}.practice-progress-dot.active{background:var(--lesson-color-accent);transform:scale(1.2)}.lesson-stage-enter-active,.lesson-stage-leave-active{transition:opacity .24s ease,transform .24s ease}.lesson-stage-enter-from{opacity:0;transform:translateY(8px) scale(.985)}.lesson-stage-leave-to{opacity:0;transform:translateY(-6px) scale(.985)}@keyframes lesson-active-pulse{0%{transform:scale(1)}50%{transform:scale(1.09)}to{transform:scale(1.06)}}@keyframes lesson-complete-pop{0%{transform:scale(1.04)}to{transform:scale(1)}}@media(max-width:900px){.lesson-stage{padding:var(--lesson-shell-pad, var(--lesson-space-3))}.lesson-stage.note-practice-shell{padding:max(6px,var(--lesson-shell-pad, 6px))}.lesson-stage-card,.lesson-result-card{padding:var(--lesson-space-3);border-radius:16px}}.lesson-stage.note-practice-shell[data-viewport-mode=low-height]{min-height:100dvh;height:100dvh;align-items:flex-start;justify-content:flex-start;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.lesson-stage.note-practice-shell[data-viewport-mode=balanced],.lesson-stage.note-practice-shell[data-viewport-mode=spacious]{align-items:center;justify-content:center}.note-practice-workstation[data-v-e3bdc88a]{width:min(var(--np-max-width),100%);max-height:var(--np-max-height);min-height:min(100%,420px);padding:var(--lesson-card-pad, 10px);border-radius:14px;display:grid;grid-template-rows:auto 1fr auto;gap:8px;overflow:hidden;align-content:stretch}.np-topbar[data-v-e3bdc88a]{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:10px;border:1px solid rgba(162,195,229,.28);background:#0c1422c7;overflow-x:auto;overflow-y:hidden;white-space:nowrap;scrollbar-width:thin}.np-badge[data-v-e3bdc88a]{padding:3px 8px;border-radius:999px;border:1px solid rgba(161,201,255,.72);background:radial-gradient(circle at 20% 30%,rgba(147,212,255,.32),transparent 62%),linear-gradient(135deg,#2f7dff4d,#36e0ad38);color:#eef7fffc;font-size:11px;font-weight:800;letter-spacing:.06em;text-shadow:0 0 8px rgba(127,202,255,.48);box-shadow:0 0 0 1px #78b7ff33 inset,0 0 14px #3498ff47}.np-chip[data-v-e3bdc88a]{border-radius:999px;border:1px solid rgba(167,189,217,.36);background:#0b111cad;color:#e8f1fcf0;font-size:12px;font-weight:700;padding:5px 10px}.stage-select[data-v-e3bdc88a]{min-height:30px;border-radius:10px;border:1px solid rgba(210,230,255,.32);background:#0c1321eb;color:#f5f8fc;padding:4px 8px;appearance:none;-webkit-appearance:none;-moz-appearance:none;max-width:240px}.stage-select option[data-v-e3bdc88a]{background:#0f1726;color:#f5f8fc}.np-practice-zone[data-v-e3bdc88a]{min-height:0;display:grid;grid-template-rows:minmax(var(--np-score-min-height),var(--np-score-flex)) minmax(var(--np-keyboard-height),auto);gap:8px}.np-score-zone[data-v-e3bdc88a]{min-height:0;min-block-size:var(--np-score-min-height);position:relative;border:1px solid rgba(183,207,236,.35);border-radius:12px;background:#f5fafffa;overflow:hidden}.np-progress[data-v-e3bdc88a]{position:absolute;top:6px;right:8px;z-index:3;padding:2px 8px;border-radius:999px;background:#0c1a2ec2;color:#e4f1fff5;font-size:11px;font-weight:800}.note-practice-keyboard[data-v-e3bdc88a]{height:var(--np-keyboard-height);border-radius:12px;overflow:hidden;border:1px solid rgba(133,178,223,.42);background:#080c14f2;transition:box-shadow .14s ease,border-color .14s ease,background .14s ease}.note-practice-keyboard.flash-correct[data-v-e3bdc88a]{border-color:#58eba9eb;box-shadow:0 0 0 2px #58eba973 inset;background:#073425f0}.note-practice-keyboard.flash-incorrect[data-v-e3bdc88a]{border-color:#ff6e6ef2;box-shadow:0 0 0 2px #ff6e6e73 inset;background:#461414eb}.np-actions[data-v-e3bdc88a]{justify-content:flex-start;align-items:center;gap:6px;margin-top:2px}.np-back-arrow[data-v-e3bdc88a]{min-width:40px;padding-inline:0;margin-right:auto}@media(max-width:768px){.note-practice-workstation[data-v-e3bdc88a]{width:100%;border-radius:10px}.np-topbar[data-v-e3bdc88a]{scrollbar-width:none}.np-topbar[data-v-e3bdc88a]::-webkit-scrollbar{display:none}.np-chip[data-v-e3bdc88a],.stage-select[data-v-e3bdc88a],.np-progress[data-v-e3bdc88a]{font-size:11px}.np-actions[data-v-e3bdc88a]{padding-bottom:max(2px,env(safe-area-inset-bottom))}}.note-practice-workstation[data-viewport-mode=low-height][data-v-e3bdc88a]{min-height:max-content;max-height:none;width:100%;border-radius:10px;overflow:visible;align-content:start}.note-practice-workstation[data-viewport-mode=low-height] .np-topbar[data-v-e3bdc88a]{gap:4px;padding:5px 6px}.note-practice-workstation[data-viewport-mode=low-height] .np-chip[data-v-e3bdc88a],.note-practice-workstation[data-viewport-mode=low-height] .stage-select[data-v-e3bdc88a],.note-practice-workstation[data-viewport-mode=low-height] .np-progress[data-v-e3bdc88a]{font-size:10px}.note-practice-workstation[data-viewport-mode=low-height] .stage-select[data-v-e3bdc88a]{min-height:28px;max-width:180px;padding:3px 7px}.note-practice-workstation[data-viewport-mode=low-height] .np-practice-zone[data-v-e3bdc88a],.note-practice-workstation[data-viewport-mode=low-height] .np-score-zone[data-v-e3bdc88a],.note-practice-workstation[data-viewport-mode=low-height] .note-practice-keyboard[data-v-e3bdc88a]{touch-action:pan-y}.note-practice-workstation[data-viewport-mode=spacious][data-v-e3bdc88a]{border-radius:16px}.note-practice-workstation[data-viewport-mode=spacious] .np-topbar[data-v-e3bdc88a]{padding:10px 12px}.result-accuracy[data-v-9d13af15]{font-size:2rem;font-weight:700}.result-ok[data-v-9d13af15]{color:#29d67a;margin:0}.result-warn[data-v-9d13af15]{color:#ffbc8d;margin:0}.learn-shell[data-v-00e323f8]{--lesson-keyboard-h: 200px;--lesson-overlay-gap: 8px;--lesson-score-inset: 24px;min-height:calc(100vh - 90px);padding:clamp(12px,1.8vw,22px);display:flex;flex-direction:column;gap:12px;background:radial-gradient(circle at 10% 0%,rgba(67,132,255,.3),transparent 35%),radial-gradient(circle at 85% 8%,rgba(40,255,180,.24),transparent 40%),linear-gradient(180deg,#04060f,#03060d)}.learn-shell.student[data-v-00e323f8]{min-height:100dvh;height:100dvh;overflow:hidden;padding:0;gap:0;background:#fff;touch-action:manipulation;overscroll-behavior:none}.learn-shell.focus[data-v-00e323f8]{background:radial-gradient(circle at 50% 8%,rgba(70,125,255,.25),transparent 45%),linear-gradient(180deg,#050710,#04060c)}.learn-stage[data-v-00e323f8]{flex:1;min-height:0;display:grid;grid-template-columns:minmax(180px,250px) minmax(0,1fr) minmax(220px,290px);gap:12px}.learn-shell.student .learn-stage[data-v-00e323f8]{grid-template-columns:minmax(0,1fr);gap:0}.learn-stage.focus-layout[data-v-00e323f8]{grid-template-columns:minmax(0,1fr)}.score-hero[data-v-00e323f8]{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px}.score-hero.student-hero[data-v-00e323f8]{position:relative;min-height:100dvh;padding-bottom:calc(var(--lesson-keyboard-h) - var(--lesson-score-inset));display:block;gap:0}.lesson-score-container[data-v-00e323f8]{position:relative;height:calc(100dvh - var(--lesson-keyboard-h) + var(--lesson-score-inset));width:100%;overflow:hidden;background:#fff}.lesson-overlays[data-v-00e323f8]{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;flex-direction:column;gap:var(--lesson-overlay-gap);padding:6px 10px;pointer-events:none}.overlay-row[data-v-00e323f8]{pointer-events:auto;border-radius:8px;border:1px solid rgba(188,211,236,.7);background:#ffffffa6;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.overlay-row-1[data-v-00e323f8]{position:relative;z-index:3;min-height:44px;max-height:56px;padding:4px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.overlay-row-2[data-v-00e323f8]{position:relative;z-index:1;min-height:34px;max-height:40px;padding:4px 8px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:8px;align-items:center}.overlay-mobile-bar[data-v-00e323f8]{display:none}.mobile-progress-btn[data-v-00e323f8]{min-width:30px;width:30px;height:30px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;flex:0 0 auto}.mobile-progress-slider[data-v-00e323f8]{min-width:0;width:100%}.mobile-progress-time[data-v-00e323f8]{font-size:11px}.mobile-lesson-menu-wrap[data-v-00e323f8]{position:relative;flex:0 0 auto}.mobile-menu-btn[data-v-00e323f8]{min-width:32px}.mobile-lesson-menu[data-v-00e323f8]{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:min(300px,82vw);border-radius:12px;border:1px solid rgba(152,207,255,.45);background:#091523f7;padding:8px;box-shadow:0 12px 28px #00000052;display:grid;gap:8px}.mobile-lesson-menu-section[data-v-00e323f8]{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.mobile-lesson-menu-info[data-v-00e323f8]{padding-top:2px}.mobile-midi-select-wrap[data-v-00e323f8]{display:grid;gap:6px;width:100%}.mobile-midi-label[data-v-00e323f8]{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#b4d6f7eb}.mobile-midi-select[data-v-00e323f8]{width:100%;min-width:0}.start-playing-pop[data-v-00e323f8]{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:160;pointer-events:none;border-radius:999px;border:1px solid rgba(122,224,173,.8);background:linear-gradient(135deg,#0a5a3efa,#0d8458f5);color:#e6fff2fa;font-weight:900;letter-spacing:.04em;font-size:clamp(1.08rem,1.9vw,1.5rem);padding:14px 28px;box-shadow:0 20px 38px #00000057,0 0 28px #6df2b89e}.start-playing-pop-enter-active[data-v-00e323f8],.start-playing-pop-leave-active[data-v-00e323f8]{transition:opacity .18s ease,transform .18s ease}.start-playing-pop-enter-from[data-v-00e323f8],.start-playing-pop-leave-to[data-v-00e323f8]{opacity:0;transform:translate(-50%,calc(-50% - 8px)) scale(.9)}.overlay-controls-left[data-v-00e323f8]{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.overlay-controls-right[data-v-00e323f8]{position:relative;z-index:4;display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;min-width:0}.overlay-stats-center[data-v-00e323f8]{position:absolute;left:50%;transform:translate(-50%);display:inline-flex;align-items:center;gap:6px;pointer-events:none;white-space:nowrap;min-width:0}.overlay-inline-stats[data-v-00e323f8]{display:none}.stat-pill[data-v-00e323f8]{border-radius:999px;border:1px solid rgba(144,187,226,.62);background:linear-gradient(180deg,#f7fcffe0,#e4f0fcd6);color:#162d46f5;padding:4px 8px;font-size:11px;font-weight:700}.stat-pill strong[data-v-00e323f8]{color:#092138}.stat-pill-mode[data-v-00e323f8]{border-color:#67c69ab3;background:linear-gradient(180deg,#e1faeee6,#c8f0ded6);color:#0b482cf5}.overlay-chip[data-v-00e323f8]{border-radius:999px;border:1px solid rgba(125,194,255,.52);background:#dcefffcc;color:#143756f2;padding:4px 8px;font-size:11px;font-weight:700}.score-frame[data-v-00e323f8]{position:relative;z-index:1;height:100%;width:100%;min-height:0;display:flex;align-items:center;justify-content:center;border-radius:20px;overflow:hidden;border:1px solid rgba(255,255,255,.2);box-shadow:0 30px 70px #00000073;background:linear-gradient(180deg,#fffffff2,#f7fafff5)}.score-stage[data-v-00e323f8]{height:100%;min-height:300px;width:100%;max-width:100%;display:grid;grid-template-rows:minmax(12px,.22fr) minmax(260px,1fr) minmax(10px,.14fr);justify-items:stretch;align-items:stretch}.score-stage[data-v-00e323f8] .score-vexflow{grid-row:2;width:100%;min-height:260px;height:100%}.learn-shell.student .score-frame[data-v-00e323f8]{height:100%;min-height:320px;border-bottom-left-radius:12px;border-bottom-right-radius:12px}.learn-shell.student .score-stage[data-v-00e323f8]{min-height:0;grid-template-rows:minmax(8px,.14fr) minmax(240px,1fr) minmax(8px,.08fr)}.lesson-score-frame[data-v-00e323f8]{height:100%;min-height:0;border-radius:0;border:none;box-shadow:none;background:#fff}.lesson-score-stage[data-v-00e323f8]{min-height:0;height:100%;display:block}.lesson-score-stage[data-v-00e323f8] .score-vexflow{height:100%;min-height:0}.student-coach[data-v-00e323f8]{border-radius:12px;padding:10px 12px;border:1px solid rgba(122,196,245,.45);background:#1e679938;color:#e4f1fdf2;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.student-live-stats[data-v-00e323f8]{border-radius:10px;padding:8px 12px;border:1px solid rgba(137,165,196,.35);background:#0a0e148f;color:#e6edf7f2;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.student-progress-controls[data-v-00e323f8]{border-radius:10px;padding:8px 12px;border:1px solid rgba(137,165,196,.35);background:#070c139e;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center}.progress-btn[data-v-00e323f8]{border-radius:999px;border:1px solid rgba(160,198,238,.5);background:#061424cc;color:#e6f0fcf7;font-weight:700;padding:6px 10px}.student-progress-slider[data-v-00e323f8]{width:100%;accent-color:#69b5ff}.progress-time[data-v-00e323f8]{color:#e2ebf8f2;font-weight:700;font-size:12px;white-space:nowrap}.back-path-btn[data-v-00e323f8]{margin-left:8px;border-radius:999px;border:1px solid rgba(175,219,252,.65);background:#061324c7;color:#e2f2fff2;padding:8px 12px;font-weight:700}.playalong-btn[data-v-00e323f8]{border-radius:999px;border:1px solid rgba(152,207,255,.6);background:#071c34db;color:#ecf7fffa;padding:8px 14px;font-weight:700}.icon-btn[data-v-00e323f8]{min-width:34px;height:34px;padding:0;display:inline-flex;align-items:center;justify-content:center;color:currentColor;line-height:1}.icon-btn[data-v-00e323f8] svg{width:17px;height:17px;stroke-width:2.2}.playalong-btn.active[data-v-00e323f8]{border-color:#60cfa0cc;background:#0a3727eb}.playalong-btn[data-v-00e323f8]:disabled{opacity:.5}.midi-inline[data-v-00e323f8]{margin-left:auto;display:inline-flex;align-items:center;gap:8px;border-radius:999px;border:1px solid rgba(170,186,207,.45);background:#0a1423ad;color:#e7eef9f2;padding:6px 10px}.overlay-controls-right .midi-inline[data-v-00e323f8]{margin-left:0}.midi-inline.connected[data-v-00e323f8]{border-color:#4cd3a28c;background:#082e23b8}.midi-inline-dot[data-v-00e323f8]{width:8px;height:8px;border-radius:50%;background:#ef9959e6}.midi-inline.connected .midi-inline-dot[data-v-00e323f8]{background:#57eca8f2;box-shadow:0 0 8px #57eca8d9}.midi-inline-label[data-v-00e323f8]{font-size:12px;font-weight:700}.midi-inline-select[data-v-00e323f8]{border-radius:999px;border:1px solid rgba(188,204,222,.35);background:#040a12d9;color:#edf4fff5;padding:6px 10px;min-width:110px}.controls-sep[data-v-00e323f8]{color:#2f435aa6;font-size:13px;font-weight:700;margin:0 2px}.midi-picker-wrap[data-v-00e323f8]{position:relative}.midi-picker-btn[data-v-00e323f8]{font-size:inherit}.midi-picker-pop[data-v-00e323f8]{position:absolute;top:calc(100% + 6px);right:0;z-index:50;display:flex;flex-direction:column;gap:6px;border-radius:10px;border:1px solid rgba(152,207,255,.45);background:#091523f2;padding:6px;box-shadow:0 8px 18px #00000040}.midi-picker-pop .midi-inline-select[data-v-00e323f8]{min-width:180px}.calibration-chip[data-v-00e323f8]{border-radius:999px;border:1px solid rgba(127,222,181,.48);background:#072c1fb3;color:#d4fae6f5;padding:6px 10px;font-size:12px;font-weight:700}.midi-required[data-v-00e323f8]{border-radius:12px;padding:10px 12px;border:1px solid rgba(125,194,255,.52);background:linear-gradient(180deg,#0e2b4a73,#091d3180);color:#dceffffa;display:flex;align-items:center;gap:10px}.midi-required-dot[data-v-00e323f8]{width:10px;height:10px;border-radius:50%;background:#6cc3ff;box-shadow:0 0 10px #6cc3ffbf;flex:0 0 auto}.midi-required-copy[data-v-00e323f8]{display:flex;flex-direction:column;gap:2px}.student-keyboard[data-v-00e323f8]{position:relative;z-index:5;height:clamp(140px,18vh,210px);margin-top:-40px;border-radius:0 0 14px 14px;border:none;background:transparent;overflow:hidden;box-shadow:none}.lesson-keyboard[data-v-00e323f8]{position:fixed;left:0;right:0;bottom:0;z-index:24;height:var(--lesson-keyboard-h);margin-top:0;border-radius:0;background:transparent;transform:translateY(calc(var(--lesson-score-inset) * -1))}.student-keyboard[data-v-00e323f8] .canvas-container.keyboard-only{height:100%;min-height:0;background:transparent}.student-keyboard[data-v-00e323f8] .piano-canvas{filter:drop-shadow(0 -6px 12px rgba(26,42,71,.12))}.status[data-v-00e323f8]{border-radius:12px;padding:10px 14px;font-weight:600}.status-loading[data-v-00e323f8]{background:#3c6cc533;border:1px solid rgba(104,184,255,.45)}.status-error[data-v-00e323f8]{background:#ad2a2a38;border:1px solid rgba(255,114,114,.5)}.course-loading-overlay[data-v-00e323f8]{position:fixed;inset:0;z-index:140;display:grid;place-items:center;background:#02071085;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:16px}.course-loading-icon[data-v-00e323f8]{width:24px;height:24px;border-radius:50%;border:2px solid rgba(128,194,255,.35);border-top-color:#77edb9fa;animation:course-spin-00e323f8 .8s linear infinite}.course-loading-enter-active[data-v-00e323f8],.course-loading-leave-active[data-v-00e323f8]{transition:opacity .16s ease}.course-loading-enter-from[data-v-00e323f8],.course-loading-leave-to[data-v-00e323f8]{opacity:0}@keyframes course-spin-00e323f8{to{transform:rotate(360deg)}}.hidden-input[data-v-00e323f8]{display:none}.calibration-modal-backdrop[data-v-00e323f8]{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:#02071080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:16px}.calibration-modal[data-v-00e323f8]{width:min(560px,96vw);max-height:min(86vh,860px);overflow-y:auto;border-radius:16px;border:1px solid rgba(130,188,244,.45);background:linear-gradient(180deg,#09182bfa,#081321fa);color:#e9f3fffa;box-shadow:0 20px 46px #0006;padding:16px;display:grid;gap:8px}.calibration-modal[data-v-00e323f8]>*{min-width:0}.calibration-modal-title[data-v-00e323f8]{font-size:1.08rem;font-weight:800;overflow-wrap:anywhere}.calibration-modal-subtitle[data-v-00e323f8]{font-size:.9rem;color:#c6daf2eb}.calibration-modal-controller-row[data-v-00e323f8]{margin-top:6px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center}.calibration-modal-controller-label[data-v-00e323f8]{font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:#99cdfff2;font-weight:700}.calibration-modal-controller-select[data-v-00e323f8]{border-radius:10px;border:1px solid rgba(188,204,222,.35);background:#040a12e0;color:#edf4fff5;padding:8px 10px;min-height:34px}.calibration-modal-current[data-v-00e323f8]{margin-top:4px;border-radius:12px;border:1px solid rgba(136,190,243,.32);background:#0d2037ad;padding:10px;display:grid;gap:6px;min-width:0}.calibration-modal-current-title[data-v-00e323f8]{font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:#a4d2fff2;font-weight:800}.calibration-modal-current-grid[data-v-00e323f8]{display:grid;grid-template-columns:auto auto 1fr;gap:6px 10px;font-size:.86rem;align-items:center}.calibration-modal-current-grid span[data-v-00e323f8]{color:#b2ceeeeb}.calibration-modal-current-grid strong[data-v-00e323f8]{color:#e9f3fffc;min-width:0;overflow-wrap:anywhere}.calibration-modal-current-empty[data-v-00e323f8]{font-size:.86rem;color:#bfd5ede0}.calibration-row-btn[data-v-00e323f8]{border-radius:999px;border:1px solid rgba(152,207,255,.6);background:#071c34db;color:#ecf7fffa;padding:5px 10px;font-size:.78rem;font-weight:700}.calibration-row-btn.active[data-v-00e323f8]{border-color:#60cfa0cc;background:#0a3727eb}.calibration-row-btn[data-v-00e323f8]:disabled{opacity:.55}.calibration-row-spacer[data-v-00e323f8]{width:1px}.calibration-modal-current-device[data-v-00e323f8]{justify-self:start;border-radius:999px;border:1px solid rgba(136,190,243,.42);background:#0f2946bd;color:#ddedfffa;padding:3px 9px;font-size:.78rem;font-weight:700}.calibration-range-summary[data-v-00e323f8]{display:inline-flex;flex-wrap:wrap;align-items:center;gap:5px 8px;font-size:.8rem;color:#c3dbf5f0}.calibration-range-summary strong[data-v-00e323f8]{color:#e9f3fffc}.calibration-controller-info[data-v-00e323f8]{min-width:0;overflow:hidden}.calibration-controller-grid[data-v-00e323f8]{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:.8rem}.calibration-controller-grid span[data-v-00e323f8]{color:#b4d6f7eb}.calibration-controller-grid strong[data-v-00e323f8]{color:#dfedfff5;min-width:0;overflow-wrap:anywhere}.calibration-controller-grid .mono[data-v-00e323f8]{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;word-break:break-all}.calibration-range-guide[data-v-00e323f8]{min-width:0;overflow-x:auto}.calibration-range-guide-title[data-v-00e323f8]{font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:#a4d2fff2;font-weight:800;margin-bottom:6px}.calibration-range-table[data-v-00e323f8]{width:100%;border-collapse:collapse;font-size:.78rem}.calibration-range-table th[data-v-00e323f8],.calibration-range-table td[data-v-00e323f8]{text-align:left;padding:4px 6px;border-bottom:1px solid rgba(129,175,222,.2);vertical-align:top;overflow-wrap:anywhere}.calibration-range-table th[data-v-00e323f8]{color:#b4d6f7eb;font-weight:700}.calibration-range-table td[data-v-00e323f8]{color:#dfedfff5}.calibration-range-table tbody tr:last-child td[data-v-00e323f8]{border-bottom:none}.calibration-range-table tbody tr.active td[data-v-00e323f8]{background:#0c34568f;color:#eaf7ff}.calibration-mini[data-v-00e323f8]{margin-top:4px;min-width:0}.calibration-mini-toggle[data-v-00e323f8]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:10px;border:1px solid rgba(136,190,243,.36);background:#0a1a2db3;color:#dfedfffa;padding:8px 10px;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;font-weight:800}.calibration-mini-toggle.open[data-v-00e323f8]{border-color:#60cfa08c}.calibration-mini-icon[data-v-00e323f8]{font-size:12px}.calibration-mini-panel[data-v-00e323f8]{margin-top:6px;border-radius:12px;border:1px solid rgba(136,190,243,.28);background:#0a1a2d8f;padding:8px 10px;min-width:0}.calibration-modal-step-title[data-v-00e323f8]{margin-top:6px;font-size:.84rem;letter-spacing:.05em;text-transform:uppercase;color:#84c4fff5;font-weight:800}.calibration-modal-step-body[data-v-00e323f8]{font-size:.96rem;font-weight:700}.calibration-modal-state[data-v-00e323f8]{margin-top:4px;display:flex;flex-wrap:wrap;gap:6px}.calibration-modal-chip[data-v-00e323f8]{display:inline-flex;align-items:center;border-radius:999px;border:1px solid rgba(136,190,243,.5);background:#0f2946bd;color:#ddedfffa;padding:5px 10px;font-size:.84rem;font-weight:700}.calibration-modal-cancel[data-v-00e323f8]{border-radius:999px;border:1px solid rgba(152,207,255,.6);background:#071c34db;color:#ecf7fffa;padding:8px 12px;font-weight:700}.calibration-modal-actions[data-v-00e323f8]{margin-top:10px;display:flex;align-items:center;justify-content:space-between;gap:8px}.calibration-modal-save[data-v-00e323f8]{border-radius:999px;border:1px solid rgba(96,207,160,.8);background:#0a3727eb;color:#e7fff5fa;padding:8px 14px;font-weight:800}.calibration-modal-save[data-v-00e323f8]:disabled{opacity:.55}.calibration-modal-enter-active[data-v-00e323f8],.calibration-modal-leave-active[data-v-00e323f8]{transition:opacity .16s ease}.calibration-modal-enter-active .calibration-modal[data-v-00e323f8],.calibration-modal-leave-active .calibration-modal[data-v-00e323f8]{transition:transform .16s ease,opacity .16s ease}.calibration-modal-enter-from[data-v-00e323f8],.calibration-modal-leave-to[data-v-00e323f8]{opacity:0}.calibration-modal-enter-from .calibration-modal[data-v-00e323f8],.calibration-modal-leave-to .calibration-modal[data-v-00e323f8]{opacity:0;transform:translateY(6px) scale(.98)}@media(max-width:1200px){.learn-stage[data-v-00e323f8]{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto auto}.overlay-row-1[data-v-00e323f8]{min-height:44px;max-height:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto) minmax(0,1fr);align-items:start}.overlay-stats-center[data-v-00e323f8]{position:static;transform:none;justify-self:center;flex-wrap:wrap;justify-content:center;white-space:normal}}@media(max-width:800px){.learn-shell.student .score-frame[data-v-00e323f8]{min-height:250px}.score-stage[data-v-00e323f8]{min-height:260px;grid-template-rows:minmax(10px,.2fr) minmax(210px,1fr) minmax(8px,.12fr)}.calibration-modal[data-v-00e323f8]{padding:14px}.calibration-modal-controller-row[data-v-00e323f8]{grid-template-columns:minmax(0,1fr)}.calibration-modal-current-grid[data-v-00e323f8]{grid-template-columns:auto minmax(110px,auto) minmax(0,1fr);gap:6px 8px}.calibration-range-table[data-v-00e323f8]{font-size:.74rem}.calibration-range-table th[data-v-00e323f8],.calibration-range-table td[data-v-00e323f8]{padding:4px}.calibration-controller-grid[data-v-00e323f8]{font-size:.76rem}.student-keyboard[data-v-00e323f8]{height:clamp(112px,16vh,156px)}.student-progress-controls[data-v-00e323f8]{grid-template-columns:auto minmax(0,1fr) auto}.progress-time[data-v-00e323f8]{grid-column:1 / -1;text-align:right}.overlay-row-1 .back-path-btn[data-v-00e323f8],.overlay-row-1 .playalong-btn[data-v-00e323f8],.overlay-row-2 .progress-btn[data-v-00e323f8]{font-size:12px}.overlay-row-1 .icon-btn[data-v-00e323f8]{min-width:30px;height:30px}.overlay-row-1 .icon-btn[data-v-00e323f8] svg{width:15px;height:15px}.mobile-lesson-menu .stat-pill[data-v-00e323f8],.mobile-lesson-menu .overlay-chip[data-v-00e323f8],.mobile-lesson-menu .calibration-chip[data-v-00e323f8]{font-size:10px;padding:4px 7px}.mobile-lesson-menu .playalong-btn.icon-btn[data-v-00e323f8]{min-width:32px;height:32px}.mobile-lesson-menu .playalong-btn.icon-btn[data-v-00e323f8] svg{width:15px;height:15px}.mobile-lesson-menu .midi-inline-select[data-v-00e323f8]{font-size:12px}}@media(max-width:960px){.lesson-score-container[data-v-00e323f8]{display:flex;flex-direction:column}.lesson-overlays[data-v-00e323f8]{position:relative;top:auto;left:auto;right:auto;padding:6px 8px 0}.lesson-score-frame[data-v-00e323f8]{flex:1 1 auto}}@media(max-width:800px)and (orientation:portrait){.overlay-mobile-bar[data-v-00e323f8]{display:grid;grid-template-columns:auto auto auto minmax(0,1fr) auto auto;gap:6px;align-items:center;min-height:40px;padding:4px 6px}.overlay-row-1[data-v-00e323f8],.overlay-row-2[data-v-00e323f8]{display:none}.mobile-progress-slider[data-v-00e323f8]{grid-column:4}.mobile-progress-time[data-v-00e323f8]{display:none}.mobile-lesson-menu-wrap[data-v-00e323f8]{grid-column:6;justify-self:end}.overlay-mobile-bar .back-path-btn[data-v-00e323f8],.overlay-mobile-bar .playalong-btn[data-v-00e323f8],.overlay-mobile-bar .progress-btn[data-v-00e323f8]{font-size:12px}.overlay-mobile-bar .icon-btn[data-v-00e323f8]{min-width:30px;height:30px}.overlay-mobile-bar .icon-btn[data-v-00e323f8] svg{width:15px;height:15px}}@media(orientation:landscape)and (max-height:640px){.lesson-overlays[data-v-00e323f8]{flex-direction:row;align-items:center;gap:6px;padding:4px 8px;min-width:0}.overlay-stats-center[data-v-00e323f8]{display:none}.student-keyboard[data-v-00e323f8]{height:88px}.student-keyboard[data-v-00e323f8] .canvas-container.keyboard-only{transform:scaleY(.84);transform-origin:center bottom}.overlay-mobile-bar[data-v-00e323f8]{display:none}.overlay-row-1[data-v-00e323f8],.overlay-row-2[data-v-00e323f8]{display:flex;min-width:0}.overlay-row-1[data-v-00e323f8]{flex:0 0 auto;align-items:center;justify-content:flex-start;gap:6px;min-height:36px;max-height:36px;padding:3px 6px;overflow:hidden}.overlay-row-2[data-v-00e323f8]{flex:1 1 auto;display:flex;gap:6px;align-items:center;min-width:0;min-height:36px;max-height:36px;padding:3px 6px}.overlay-inline-stats[data-v-00e323f8]{display:flex;align-items:center;gap:4px;flex:0 0 auto;min-width:0;overflow-x:auto;white-space:nowrap;scrollbar-width:none}.overlay-inline-stats[data-v-00e323f8]::-webkit-scrollbar{display:none}.overlay-inline-stats .stat-pill[data-v-00e323f8]{font-size:10px;padding:3px 6px}.overlay-inline-stats .stat-pill-compact[data-v-00e323f8]{min-width:0;padding:3px 5px}.overlay-inline-stats .stat-pill-mode[data-v-00e323f8]{min-width:22px;justify-content:center;padding-inline:5px}.overlay-controls-right .overlay-chip[data-v-00e323f8],.overlay-controls-right .calibration-chip[data-v-00e323f8]{display:none}.midi-picker-btn[data-v-00e323f8]{border-color:#60b4ffb8;background:#0e427ae6;color:#eaf5fffa}.midi-picker-btn.active[data-v-00e323f8],.midi-picker-btn[data-v-00e323f8]:disabled{border-color:#60b4ffb8;background:#0e427ae6}.overlay-controls-left[data-v-00e323f8],.overlay-controls-right[data-v-00e323f8]{min-width:0;flex-wrap:nowrap}.student-progress-slider[data-v-00e323f8]{flex:1 1 180px;min-width:90px;max-width:180px;height:10px}.progress-time[data-v-00e323f8]{flex:0 0 auto;font-size:10px;min-width:0;white-space:nowrap}}.learn-shell.student[data-viewport-mode=low-height] .lesson-overlays[data-v-00e323f8]{flex-direction:row;align-items:center;gap:6px;padding:4px 8px;min-width:0}.learn-shell.student[data-viewport-mode=low-height] .overlay-stats-center[data-v-00e323f8]{display:none}.learn-shell.student[data-viewport-mode=low-height] .student-keyboard[data-v-00e323f8]{height:var(--lesson-keyboard-h)}.learn-shell.student[data-viewport-mode=low-height] .student-keyboard[data-v-00e323f8] .canvas-container.keyboard-only{transform:scaleY(.84);transform-origin:center bottom}.learn-shell.student[data-viewport-mode=low-height] .overlay-mobile-bar[data-v-00e323f8]{display:none}.learn-shell.student[data-viewport-mode=low-height] .overlay-row-1[data-v-00e323f8],.learn-shell.student[data-viewport-mode=low-height] .overlay-row-2[data-v-00e323f8]{display:flex;min-width:0}.learn-shell.student[data-viewport-mode=low-height] .overlay-row-1[data-v-00e323f8]{flex:0 0 auto}.learn-shell.student[data-viewport-mode=balanced] .lesson-overlays[data-v-00e323f8],.learn-shell.student[data-viewport-mode=spacious] .lesson-overlays[data-v-00e323f8]{gap:var(--lesson-overlay-gap)}.course-shell[data-v-5c56d894]{min-height:calc(100vh - 90px);padding:var(--course-shell-pad, clamp(18px, 2vw, 28px));background:linear-gradient(180deg,#061021,#040912);max-width:var(--course-shell-max-w, 1040px);margin:0 auto}.course-header h1[data-v-5c56d894]{margin:6px 0}.eyebrow[data-v-5c56d894]{margin:0;text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;color:#bed9f6e6}.top-stats[data-v-5c56d894]{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.top-stats span[data-v-5c56d894]{border:1px solid rgba(167,205,242,.35);border-radius:999px;padding:6px 12px;background:#ffffff0f}.dev-unlock-btn[data-v-5c56d894]{border:1px solid rgba(255,210,127,.55);border-radius:999px;padding:6px 12px;background:#8c5c0c59;color:#ffebc2fa;font-weight:700}.done-banner[data-v-5c56d894]{margin-top:12px;border:1px solid rgba(146,241,184,.5);background:#21946840;border-radius:10px;padding:8px 10px}.path-section[data-v-5c56d894]{margin-top:24px}.course-shell[data-viewport-mode=spacious] .path-list[data-v-5c56d894]{gap:16px}.path-list[data-v-5c56d894]{display:grid;gap:12px}.lesson-node[data-v-5c56d894]{position:relative;border-radius:14px;border:1px solid rgba(165,201,235,.35);background:#ffffff0d;color:#fff;text-align:left;padding:12px;display:grid;grid-template-columns:36px 1fr;gap:10px}.node-dot[data-v-5c56d894]{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(185,220,248,.5)}.node-copy p[data-v-5c56d894]{margin:4px 0 0;color:#c9e2f9d1}.connector[data-v-5c56d894]{position:absolute;left:27px;bottom:-14px;width:2px;height:16px;background:#a6cdf080}.lesson-node.completed[data-v-5c56d894]{border-color:#7bf1c499;background:#2a9e7a40}.lesson-node.current[data-v-5c56d894]{border-color:#ffe68ab8;background:#a4841e40}.lesson-node.available[data-v-5c56d894]{border-color:#98cfffa6}.lesson-node.locked[data-v-5c56d894]{opacity:.6}.course-footer[data-v-5c56d894]{margin-top:24px;border:1px solid rgba(251,228,119,.65);background:#b28a1940;border-radius:12px;padding:10px 12px}.hidden-input[data-v-5c56d894]{display:none}.uploaded-section-head[data-v-5c56d894]{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.uploaded-section-copy[data-v-5c56d894]{margin:6px 0 0;color:#c9e2f9c2}.upload-song-btn[data-v-5c56d894],.delete-song-btn[data-v-5c56d894]{border-radius:999px;padding:8px 12px;font-weight:700}.upload-song-btn[data-v-5c56d894]{border:1px solid rgba(123,241,196,.5);background:#17715257;color:#e6fff5f5}.delete-song-btn[data-v-5c56d894]{border:1px solid rgba(255,169,169,.45);background:#76252552;color:#ffe3e3f5;align-self:center}.uploaded-song-row[data-v-5c56d894]{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}.uploaded-song-node[data-v-5c56d894]{width:100%}.uploaded-empty[data-v-5c56d894],.uploaded-error[data-v-5c56d894]{border-radius:12px;padding:10px 12px}.uploaded-empty[data-v-5c56d894]{border:1px solid rgba(165,201,235,.26);background:#ffffff0a;color:#c9e2f9d1}.uploaded-error[data-v-5c56d894]{border:1px solid rgba(255,157,157,.4);background:#822a2a3d;color:#ffdadaf5}.missing[data-v-5c56d894]{min-height:calc(100vh - 90px);display:grid;place-items:center}@media(max-width:700px){.uploaded-section-head[data-v-5c56d894],.uploaded-song-row[data-v-5c56d894]{grid-template-columns:1fr}.upload-song-btn[data-v-5c56d894],.delete-song-btn[data-v-5c56d894]{width:100%}}.intro-shell[data-v-8a8f18e6]{min-height:calc(100vh - 90px);display:grid;place-items:center;padding:var(--intro-shell-pad, 10px);background:linear-gradient(180deg,#050d1c,#040913)}.intro-card[data-v-8a8f18e6]{position:relative;width:min(760px,94vw);min-height:430px;max-height:min(var(--intro-card-max-h, 620px),100%);border-radius:14px;border:1px solid rgba(173,212,246,.35);background:#0b1322e0;padding:var(--intro-card-pad, 10px);display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;overflow:hidden}.intro-content[data-v-8a8f18e6]{min-height:0;overflow:hidden;padding:8px;display:grid;grid-template-rows:auto auto auto minmax(0,1fr);gap:8px}.kicker[data-v-8a8f18e6]{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;color:#b6d4eed9}.intro-card h1[data-v-8a8f18e6]{margin:6px 0 0;line-height:1.18}.intro-copy[data-v-8a8f18e6]{color:#d5e4f5e6;margin:0;font-size:.96rem;line-height:1.35}.theory-card[data-v-8a8f18e6]{margin-top:2px;min-height:0;overflow:auto;border-radius:16px;border:1px solid rgba(146,188,228,.32);background:linear-gradient(180deg,#101f34d1,#0d1828bd);padding:12px;display:grid;gap:6px}.theory-track[data-v-8a8f18e6]{margin:0;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;color:#a3cdf1db}.theory-card h2[data-v-8a8f18e6]{margin:0;font-size:clamp(.98rem,1.15vw,1.18rem);line-height:1.3;color:#f3f9fffc}.theory-unit[data-v-8a8f18e6]{margin:0;color:#84d6b8f5;font-size:.85rem;font-weight:700}.theory-summary[data-v-8a8f18e6]{margin:0;color:#dbecfdf2;font-size:.9rem;line-height:1.35}.theory-list[data-v-8a8f18e6]{margin:0;padding-left:18px;color:#cfe3f7f2;display:grid;gap:4px;font-size:.87rem;line-height:1.3}.theory-checkpoint[data-v-8a8f18e6]{margin:0;border-radius:10px;border:1px solid rgba(119,217,177,.38);background:#0a382880;color:#dcfff0f7;padding:8px 10px;font-size:.86rem;line-height:1.28}.actions[data-v-8a8f18e6]{display:flex;gap:10px;margin-top:0;flex-wrap:wrap;padding:0 8px 8px}.btn[data-v-8a8f18e6]{border-radius:999px;border:1px solid transparent;padding:10px 16px;font-weight:700}.btn.strong[data-v-8a8f18e6]{background:linear-gradient(135deg,#58d7ff,#9dffa8);color:#031218}.btn.ghost[data-v-8a8f18e6]{background:#ffffff14;border-color:#ffffff47;color:#fff}.btn[data-v-8a8f18e6]:disabled{opacity:.45}.missing[data-v-8a8f18e6]{min-height:calc(100vh - 90px);display:grid;place-items:center}.start-loading-overlay[data-v-8a8f18e6]{position:absolute;inset:0;border-radius:inherit;display:grid;place-items:center;background:#040c16bd;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.start-loading-icon[data-v-8a8f18e6]{width:24px;height:24px;border-radius:50%;border:2px solid rgba(128,194,255,.35);border-top-color:#77edb9fa;animation:start-spin-8a8f18e6 .8s linear infinite}.start-loading-enter-active[data-v-8a8f18e6],.start-loading-leave-active[data-v-8a8f18e6]{transition:opacity .16s ease}.start-loading-enter-from[data-v-8a8f18e6],.start-loading-leave-to[data-v-8a8f18e6]{opacity:0}@keyframes start-spin-8a8f18e6{to{transform:rotate(360deg)}}@media(max-width:1024px){.intro-card[data-v-8a8f18e6]{width:min(760px,96vw)}}@media(max-width:768px){.intro-card[data-v-8a8f18e6]{width:100%;border-radius:10px;min-height:0}.intro-content[data-v-8a8f18e6]{padding:6px}.actions[data-v-8a8f18e6]{padding:0 6px 6px;gap:6px}}.intro-shell[data-viewport-mode=low-height][data-v-8a8f18e6]{align-items:start;padding-top:max(8px,var(--intro-shell-pad, 10px))}.intro-shell[data-viewport-mode=low-height] .intro-card[data-v-8a8f18e6]{min-height:0}.admin-layout[data-v-6408f343]{min-height:100vh;padding:36px clamp(20px,4vw,80px) 60px;background:#0c1016;color:#eef1f5;font-family:IBM Plex Sans,Segoe UI,sans-serif}.admin-header[data-v-6408f343]{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:18px}.admin-kicker[data-v-6408f343]{margin:0 0 6px;font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:#ffffff80}.admin-indicator[data-v-6408f343]{font-size:.75rem;text-transform:uppercase;letter-spacing:.14em;color:#ffffff73;border:1px solid rgba(255,255,255,.2);padding:6px 10px;border-radius:999px}.admin-nav[data-v-6408f343]{display:flex;align-items:center;gap:12px;padding:14px 0 0;color:#fff9;font-size:.85rem}.admin-nav-label[data-v-6408f343]{text-transform:uppercase;letter-spacing:.12em;font-size:.65rem}.admin-nav-item[data-v-6408f343]{padding:4px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.18);color:#ffffffbf}.admin-content[data-v-6408f343]{margin-top:28px}.admin-meta[data-v-e184f87e]{margin:18px 0 12px;font-size:.9rem;color:#ffffffa6}.admin-controls[data-v-e184f87e]{display:flex;align-items:center;gap:12px;margin-bottom:16px}.admin-filter[data-v-e184f87e]{display:flex;flex-direction:column;gap:6px;font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:#ffffff8c}.admin-filter select[data-v-e184f87e]{background:#121826;border:1px solid rgba(255,255,255,.15);color:#f2f5f8;padding:8px 10px;border-radius:8px;font-size:.85rem;text-transform:none;letter-spacing:normal}.admin-error[data-v-e184f87e]{background:#7819194d;border:1px solid rgba(255,255,255,.1);padding:16px 20px;border-radius:12px}.admin-table[data-v-e184f87e]{display:flex;flex-direction:column;gap:10px}.admin-row[data-v-e184f87e]{display:grid;grid-template-columns:minmax(160px,1fr) minmax(120px,.6fr) minmax(160px,1fr) minmax(160px,1fr) minmax(260px,2fr);gap:12px;align-items:center;padding:14px 16px;background:#0c1018b3;border-radius:12px;border:1px solid rgba(255,255,255,.06)}.admin-row--head[data-v-e184f87e]{background:transparent;border:none;padding:0 4px;text-transform:uppercase;font-size:.7rem;letter-spacing:.08em;color:#ffffff80}.admin-row--loading[data-v-e184f87e]{justify-content:center;text-align:center;color:#fff9}.admin-row.inactive[data-v-e184f87e]{opacity:.65}.admin-cell[data-v-e184f87e]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-sort[data-v-e184f87e]{display:flex;align-items:center;gap:8px;background:transparent;border:none;color:inherit;text-align:left;padding:0;cursor:pointer}.admin-sort-indicator[data-v-e184f87e]{font-size:.65rem;opacity:.6}.admin-pill[data-v-e184f87e]{padding:4px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.2);font-size:.75rem;text-transform:capitalize}.admin-user[data-v-e184f87e]{display:flex;flex-direction:column;gap:4px}.admin-user-id[data-v-e184f87e]{font-weight:600;font-size:.9rem}.admin-user-sub[data-v-e184f87e]{font-size:.75rem;color:#ffffff80}@media(max-width:900px){.admin-row[data-v-e184f87e]{grid-template-columns:1fr;gap:6px}.admin-row--head[data-v-e184f87e]{display:none}.admin-cell[data-v-e184f87e]{white-space:normal}}:root{font-family:Inter,Space Grotesk,system-ui,sans-serif;line-height:1.6;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-bg: #03030a;--color-surface: rgba(11, 15, 25, .85);--color-muted: rgba(255, 255, 255, .65);--color-border: rgba(255, 255, 255, .08);--color-accent: #66f6ff;--color-accent-strong: #9effda;--color-card: rgba(255, 255, 255, .04);--radius-sm: 12px;--radius-md: 20px;--radius-lg: 30px;--space-xxs: .25rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1.25rem;--space-lg: 2rem;--space-xl: 3rem;--space-xxl: 4rem;--shadow-soft: 0 18px 40px rgba(0, 0, 0, .5);--shadow-card: 0 12px 30px rgba(0, 0, 0, .35);--shadow-focus: 0 0 0 3px rgba(102, 246, 255, .35)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 0% 0%,rgba(102,246,255,.12),transparent 45%),var(--color-bg);color:#fff}#app{min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border:none;border-radius:var(--radius-lg);font-size:.95rem;padding:.9rem 1.6rem;font-weight:600;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}.btn-primary{background:linear-gradient(135deg,#66f6ff,#8b6bff);color:#050607;box-shadow:0 12px 35px #66f6ff59}.btn-secondary{background:#ffffff14;border:1px solid var(--color-border);color:#fff}.btn:hover{transform:translateY(-2px)}.section-block{padding:var(--space-xl) var(--space-lg)}.container{width:min(1180px,100%);max-width:1180px;margin:0 auto;padding-inline:clamp(12px,2.4vw,28px)}.card{background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);padding:var(--space-md);box-shadow:var(--shadow-card)}.badge{display:inline-flex;align-items:center;gap:.25rem;background:#ffffff14;border-radius:var(--radius-sm);padding:.4rem .9rem;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.badge.accent{border:1px solid rgba(102,246,255,.5);color:var(--color-accent)}.chip{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .85rem;border-radius:999px;font-size:.78rem;background:#ffffff0f;border:1px solid var(--color-border)}.chip.primary{border-color:#66f6ff99}.icon-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md)}.icon-row-item{display:grid;grid-template-rows:auto auto 1fr;gap:.45rem;align-items:start;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:0 18px 40px #00000040}.icon-row-icon{font-size:1.65rem;line-height:1}.icon-row-title{margin:0;font-weight:700}.icon-row-description{margin:0;color:var(--color-muted);font-size:.9rem}@media(max-width:1100px){.icon-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.section-block{padding:var(--space-lg) 14px}.container{padding-inline:0}}@media(max-width:480px){.icon-row{grid-template-columns:1fr}}@media(max-width:720px){.icon-row{grid-template-columns:1fr}}@media(max-width:640px){.section-block{padding:var(--space-lg) var(--space-sm)}.btn{width:100%;justify-content:center;min-height:44px}}.app-header[data-v-fddbea62]{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px clamp(16px,3vw,40px);border-bottom:1px solid rgba(255,255,255,.08);background:#00000080;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand[data-v-fddbea62]{display:inline-flex;align-items:center;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:.74rem;color:#ffffffd9}.nav-links[data-v-fddbea62]{display:flex;align-items:center;gap:8px;min-width:0}.nav-links a[data-v-fddbea62]{font-size:.8rem;color:#ffffffb3;border:1px solid rgba(255,255,255,.2);padding:4px 10px;border-radius:999px;transition:border-color .2s ease,color .2s ease,background .2s ease}.login-btn[data-v-fddbea62],.lang-btn[data-v-fddbea62]{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;color:#ffffffe6;border:1px solid rgba(255,255,255,.4);background:transparent;border-radius:999px;padding:4px 10px;cursor:pointer;transition:border-color .2s ease,background .2s ease}.lang-btn[data-v-fddbea62]:hover,.login-btn[data-v-fddbea62]:hover{border-color:#fff9;background:#ffffff14}.nav-links a.router-link-active[data-v-fddbea62]{color:#fff;border-color:#ffffff80;background:#ffffff14}.nav-links a[data-v-fddbea62]:hover{color:#fff;border-color:#fff6}@media(max-width:980px){.app-header[data-v-fddbea62]{padding:7px 10px;gap:8px}.brand[data-v-fddbea62]{font-size:.68rem;letter-spacing:.06em;white-space:nowrap}.nav-links[data-v-fddbea62]{gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.nav-links a[data-v-fddbea62],.login-btn[data-v-fddbea62],.lang-btn[data-v-fddbea62]{font-size:.74rem;padding:4px 8px;white-space:nowrap}}@media(max-width:640px){.app-header[data-v-fddbea62]{flex-direction:column;align-items:stretch;padding:8px 10px 6px}.brand[data-v-fddbea62]{align-self:flex-start}.nav-links[data-v-fddbea62]{justify-content:flex-start;flex-wrap:nowrap;margin-inline:-2px;padding-inline:2px}.nav-links a[data-v-fddbea62],.login-btn[data-v-fddbea62],.lang-btn[data-v-fddbea62]{flex:0 0 auto;font-size:.72rem;padding:4px 7px}}@media(max-width:420px){.app-header[data-v-fddbea62]{gap:6px}.brand[data-v-fddbea62]{font-size:.64rem;letter-spacing:.05em}.nav-links[data-v-fddbea62]{gap:5px}}.auth-overlay[data-v-e545b89c]{position:fixed;inset:0;background:#07090cad;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1100}.auth-modal[data-v-e545b89c]{width:min(420px,92vw);background:#0b0f14;border-radius:14px;padding:28px;border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 60px #0000008c;position:relative;display:flex;flex-direction:column;gap:20px;color:#f6f7f9}.auth-header[data-v-e545b89c]{display:flex;flex-direction:column;gap:8px}.auth-kicker[data-v-e545b89c]{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#ffffff80;margin:0}.auth-header h3[data-v-e545b89c]{margin:0;font-size:1.6rem;font-weight:600}.auth-subtitle[data-v-e545b89c]{margin:0;color:#ffffffb3;font-size:.95rem;line-height:1.4}.auth-section[data-v-e545b89c]{display:flex;flex-direction:column;gap:12px}.auth-btn[data-v-e545b89c]{width:100%;display:inline-flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#f6f7f9;font-weight:600;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}.auth-btn[data-v-e545b89c]:hover{border-color:#ffffff40;background:#ffffff14;transform:translateY(-1px)}.auth-btn[data-v-e545b89c]:focus-visible{outline:2px solid rgba(89,155,255,.7);outline-offset:2px}.auth-btn[data-v-e545b89c]:disabled{opacity:.65;cursor:not-allowed;transform:none}.auth-icon[data-v-e545b89c]{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:#ffffffd9}.auth-icon svg[data-v-e545b89c]{width:20px;height:20px}.auth-btn-text[data-v-e545b89c]{flex:1;text-align:left}.auth-divider[data-v-e545b89c]{display:flex;align-items:center;gap:12px;color:#ffffff73;font-size:.85rem}.auth-divider[data-v-e545b89c]:before,.auth-divider[data-v-e545b89c]:after{content:"";flex:1;height:1px;background:#ffffff1f}.auth-form[data-v-e545b89c]{display:flex;flex-direction:column;gap:10px}.auth-label[data-v-e545b89c]{font-size:.9rem;color:#ffffffbf}.auth-form input[data-v-e545b89c]{border-radius:12px;border:1px solid rgba(255,255,255,.16);background:#ffffff0a;color:#f6f7f9;padding:12px 14px;font-size:.95rem}.auth-form input[data-v-e545b89c]:focus{outline:none;border-color:#599bffb3;box-shadow:0 0 0 3px #599bff33}.auth-helper[data-v-e545b89c]{margin:0;font-size:.85rem;color:#fff9}.link-btn[data-v-e545b89c]{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;margin-top:-2px;padding:0;border:none;background:transparent;color:#8fc7ff;cursor:pointer;font-size:.84rem}.link-btn[data-v-e545b89c]:hover{color:#b9deff}.terms-check[data-v-e545b89c]{display:flex;align-items:flex-start;gap:8px;margin-top:2px;font-size:.84rem;color:#ffffffd1}.terms-check input[data-v-e545b89c]{margin-top:2px;width:15px;height:15px}.legal-box[data-v-e545b89c]{border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#ffffff08;padding:8px 10px}.legal-box summary[data-v-e545b89c]{cursor:pointer;font-size:.82rem;color:#dceafcf2;font-weight:600}.legal-box p[data-v-e545b89c]{margin:8px 0 0;font-size:.79rem;line-height:1.4;color:#cddff3d1}.primary-btn[data-v-e545b89c]{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:#f6f7f9;color:#0b0f14;font-weight:600;padding:12px 16px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.primary-btn[data-v-e545b89c]:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0003}.primary-btn[data-v-e545b89c]:disabled{opacity:.65;cursor:not-allowed;transform:none;box-shadow:none}.guest-btn[data-v-e545b89c]{background:transparent;color:#fff9;border:none;cursor:pointer;font-size:.9rem}.guest-btn[data-v-e545b89c]:hover{color:#ffffffd9}.auth-footer[data-v-e545b89c]{display:flex;align-items:center;justify-content:space-between;gap:12px}.account-card[data-v-e545b89c]{background:#ffffff0f;border-radius:12px;border:1px solid rgba(255,255,255,.12);padding:14px 16px}.account-name[data-v-e545b89c]{margin:0;font-weight:600;font-size:1rem}.account-email[data-v-e545b89c]{margin:4px 0 0;font-size:.85rem;color:#ffffffb3}.ghost-btn[data-v-e545b89c]{background:transparent;border:1px solid rgba(255,255,255,.2);color:#fffc;padding:6px 12px;border-radius:999px;cursor:pointer}.status[data-v-e545b89c]{font-size:.85rem;color:#ffffffb3;margin:0}.status.success[data-v-e545b89c]{color:#a7f3d0}.status.error[data-v-e545b89c]{color:#fca5a5}.close-btn[data-v-e545b89c]{position:absolute;top:12px;right:12px;background:transparent;border:none;color:#ffffffb3;font-size:1.4rem;cursor:pointer}.close-btn[data-v-e545b89c]:focus-visible{outline:2px solid rgba(89,155,255,.7);outline-offset:2px}.spinner[data-v-e545b89c]{width:14px;height:14px;border-radius:50%;border:2px solid rgba(11,15,20,.2);border-top-color:#0b0f14a6;animation:spin-e545b89c .8s linear infinite}.auth-btn .spinner[data-v-e545b89c]{border-color:#ffffff40;border-top-color:#ffffffbf}@keyframes spin-e545b89c{to{transform:rotate(360deg)}}.auth-modal-enter-active[data-v-e545b89c],.auth-modal-leave-active[data-v-e545b89c]{transition:opacity .2s ease,transform .2s ease}.auth-modal-enter-from[data-v-e545b89c],.auth-modal-leave-to[data-v-e545b89c]{opacity:0;transform:scale(.97)}.default-layout[data-v-4782ac73]{min-height:100vh;background:radial-gradient(circle at 20% -40%,rgba(102,246,255,.2),transparent 45%),#03030a;color:#fff;display:flex;flex-direction:column}.page-content[data-v-4782ac73]{flex:1;display:flex;flex-direction:column;gap:0}
