@import"https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,500;0,600;1,500&display=swap";.mm-auth-backdrop{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:16px;background:#0f172a8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.mm-auth-modal{position:relative;width:min(400px,100%);max-height:min(90dvh,640px);overflow-y:auto;padding:24px 22px 20px;border-radius:18px;background:#fff;color:#1e1b2e;box-shadow:0 24px 48px #0f172a59;font-family:var(--mm-label-font, system-ui, sans-serif)}.mm-auth-close{position:absolute;top:10px;right:12px;border:none;background:transparent;font-size:1.5rem;line-height:1;color:#6b7280;cursor:pointer;padding:4px 8px}.mm-auth-title{margin:0 0 10px;font-size:1.35rem;font-weight:800;letter-spacing:-.02em}.mm-auth-lead{margin:0 0 16px;font-size:.9rem;line-height:1.45;color:#4b5563}.mm-auth-stack{display:flex;flex-direction:column;gap:10px}.mm-auth-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:44px;padding:10px 14px;border-radius:12px;border:1px solid transparent;font:inherit;font-size:.92rem;font-weight:700;cursor:pointer}.mm-auth-btn:disabled{opacity:.65;cursor:wait}.mm-auth-btn--google{background:#fff;border-color:#e5e7eb;color:#1f2937;box-shadow:0 1px 2px #0f172a0f}.mm-auth-btn--google:hover{background:#f9fafb}.mm-auth-btn--primary{background:#4f5fc9;color:#fff}.mm-auth-btn--primary:hover{background:#3f4db0}.mm-auth-btn--secondary{background:#f3f4f6;color:#1f2937;border-color:#e5e7eb}.mm-auth-btn--secondary:hover{background:#e5e7eb}.mm-auth-btn--ghost{background:transparent;color:#6b7280;font-weight:600}.mm-auth-form{display:flex;flex-direction:column;gap:12px}.mm-auth-label{display:flex;flex-direction:column;gap:6px;font-size:.82rem;font-weight:600;color:#4b5563}.mm-auth-input{padding:10px 12px;border-radius:10px;border:1px solid #e5e7eb;font:inherit;font-size:1rem;color:#111827}.mm-auth-input:focus{outline:none;border-color:#8b9cf7;box-shadow:0 0 0 3px #8b9cf740}.mm-auth-error{margin:0;padding:10px 12px;border-radius:10px;background:#fee2e2;color:#b91c1c;font-size:.85rem}.mm-auth-links{display:flex;flex-wrap:wrap;gap:8px 14px;justify-content:center}.mm-auth-links button{border:none;background:none;color:#4f5fc9;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;text-decoration:underline;padding:0}.session-stats-hub{display:flex;flex-direction:column;gap:6px;min-width:0}button.session-stats-hub--action{appearance:none;border:none;background:transparent;padding:4px 6px;margin:0;text-align:left;cursor:pointer;font:inherit;color:inherit;border-radius:12px;box-shadow:none;transition:background .15s}button.session-stats-hub--action:hover{background:#ffffff73;transform:none}button.session-stats-hub--action:focus-visible{outline:2px solid rgba(139,156,247,.55);outline-offset:3px}.session-stats-hub--compact .session-stats-hub-metrics{gap:10px}.session-stats-hub-main{display:flex;flex-direction:column;gap:4px}.session-stats-hub-metrics{display:flex;flex-wrap:wrap;gap:14px;align-items:baseline}.session-stats-metric{display:flex;flex-direction:column;gap:1px}.session-stats-label{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--mm-ink-muted, var(--text-dim))}.session-stats-metric strong{font-size:.95rem;font-weight:800;color:var(--mm-ink, var(--text))}.mm-playground-theme .session-stats-label{color:var(--mm-ink-muted)}.mm-playground-theme .session-stats-metric strong{color:var(--mm-ink)}.mm-playground-theme{--mm-bg: #f8f6ff;--mm-surface: #ffffff;--mm-ink: #2d2a3e;--mm-ink-muted: #8b87a0;--mm-primary: #8b9cf7;--mm-primary-strong: #4f5fc9;--mm-accent: #f5a8c8;--mm-up: #7dd3b0;--mm-down: #f0a0b8;--mm-node: #ffffff;--mm-node-stroke: rgba(139, 156, 247, .55);--mm-trail: rgba(139, 156, 247, .35);--mm-path: #8b9cf7;--mm-path-resolved: #a8b4f8;--mm-glow-correct: rgba(125, 211, 176, .6);--mm-glow-wrong: rgba(240, 160, 184, .5);--mm-interval-perfect: #7b8fd4;--mm-interval-imperfect: #d9b55a;--mm-interval-dissonant: #e07088;--mm-guide-idle: rgba(45, 42, 62, .06);--mm-guide-active: rgba(45, 42, 62, .14);--mm-ghost: rgba(139, 156, 247, .45);--mm-ghost-stroke: rgba(139, 156, 247, .7);--mm-label-font: "DM Sans", "Segoe UI", system-ui, sans-serif}.mm-playground{position:relative;width:100%;height:100%;min-height:280px;background:var(--mm-bg);border-radius:var(--radius);overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}.mm-playground-watermark{position:absolute;inset:0;z-index:0;pointer-events:none;background-repeat:no-repeat;background-position:center center;background-size:cover;opacity:.26;filter:saturate(.9)}.mm-playground-svg{position:relative;z-index:1;display:block;width:100%;height:100%;cursor:crosshair}.mm-playground-settle-node{fill:var(--mm-node);stroke-linecap:round}.mm-playground-settle-node--correct{fill:var(--mm-node);stroke:var(--mm-primary)}.mm-playground-settle-node--wrong{fill:#f0a0b8d9;stroke:#e07088f2}.mm-playground-settle-ring{fill:none;stroke:#f0a0b8a6;stroke-width:2.5;pointer-events:none}.mm-playground-settle-particle{fill:#f0a0b8e6;pointer-events:none}.mm-playground-settle-line--wrong{stroke-dasharray:7 5}.mm-playground-path-segment{fill:none;stroke-linecap:round;stroke-linejoin:round}.mm-playground-path-segment--perfect{stroke:var(--mm-interval-perfect)}.mm-playground-path-segment--imperfect{stroke:var(--mm-interval-imperfect)}.mm-playground-path-segment--dissonant{stroke:var(--mm-interval-dissonant)}.mm-playground-path{fill:none;stroke-linecap:round;stroke-linejoin:round}.mm-playground-path--resolved{stroke:var(--mm-primary);stroke-width:3.5}.mm-playground-guide{stroke:var(--mm-guide-idle);stroke-width:1}.mm-playground-guide--active{stroke:var(--mm-guide-active);stroke-width:1.5}.mm-playground-trail{stroke:var(--mm-trail);stroke-width:2.5;stroke-dasharray:6 8;stroke-linecap:round;animation:mm-trail-dash .6s linear infinite}.mm-playground-trail--perfect{stroke:var(--mm-interval-perfect)}.mm-playground-trail--imperfect{stroke:var(--mm-interval-imperfect)}.mm-playground-trail--dissonant{stroke:var(--mm-interval-dissonant)}@keyframes mm-trail-dash{to{stroke-dashoffset:-14}}.mm-playground-label{pointer-events:none}.mm-playground-label-group{pointer-events:none;filter:drop-shadow(0 3px 10px rgba(45,42,62,.22))}.mm-playground-label-pill{stroke-width:2.5px}.mm-playground-label-pill--perfect{fill:#7b8fd4f0;stroke:#fffffff2}.mm-playground-label-pill--imperfect{fill:#d9b55af5;stroke:#ffffffe6}.mm-playground-label-pill--dissonant{fill:#e07088f0;stroke:#fffffff2}.mm-playground-label-pill--muted{fill:#78748abf;stroke:#ffffffb3}.mm-playground-label-text{font-family:"Segoe UI","Tahoma",var(--mm-label-font);font-size:15px;font-weight:800;letter-spacing:.02em;paint-order:stroke fill;stroke-linejoin:round}.mm-playground-label-text--perfect,.mm-playground-label-text--dissonant{fill:#fff;stroke:#1e1e2d73;stroke-width:3px}.mm-playground-label-text--imperfect{fill:#2d2a3e;stroke:#ffffff8c;stroke-width:3px}.mm-playground-label-text--muted{fill:#ffffffe0;stroke:#1e1e2d59}.mm-playground-burst-particle,.mm-ripple-layer,.mm-ripple{pointer-events:none}.mm-ripple-ring{fill:none;stroke-width:2.5;transform-box:fill-box;transform-origin:center;animation:mm-ripple-expand .65s ease-out forwards}.mm-ripple-ring--2{animation-delay:80ms}.mm-ripple-ring--3{animation-delay:.16s}.mm-ripple--tap .mm-ripple-ring,.mm-ripple--drag-start .mm-ripple-ring{stroke:var(--mm-primary)}.mm-ripple--cancel .mm-ripple-ring{stroke:var(--mm-accent)}.mm-ripple--background .mm-ripple-ring{stroke:var(--mm-guide-active);stroke-width:2}.mm-ripple--drag-release.mm-ripple--up .mm-ripple-ring{stroke:var(--mm-up)}.mm-ripple--drag-release.mm-ripple--down .mm-ripple-ring{stroke:var(--mm-down)}.mm-ripple--drag-release:not(.mm-ripple--up):not(.mm-ripple--down) .mm-ripple-ring{stroke:var(--mm-primary)}@keyframes mm-ripple-expand{0%{transform:scale(1);stroke-opacity:.55}to{transform:scale(4.5);stroke-opacity:0}}.mm-hit-feedback{position:absolute;z-index:35;pointer-events:none;text-align:center;white-space:nowrap;will-change:transform,opacity}.mm-hit-feedback--centered{left:50%;top:clamp(2.25rem,7.5vh,3.5rem);transform:translate(-50%);animation:mm-hit-pop-centered 1.15s cubic-bezier(.22,1,.36,1) forwards}.mm-hit-feedback--centered.mm-hit-feedback--reduced{animation:mm-hit-pop-reduced .55s ease forwards}.mm-hit-feedback__combo{display:block;font-family:var(--mm-label-font);font-size:.88rem;font-weight:800;letter-spacing:.06em;line-height:1;margin-bottom:.15rem;opacity:.92}.mm-hit-feedback__text{display:block;font-family:var(--mm-label-font);font-size:clamp(1.05rem,2.8vw,1.45rem);font-weight:800;letter-spacing:.03em;line-height:1.1;text-shadow:0 1px 0 rgba(255,255,255,.85),0 4px 18px rgba(45,42,62,.14)}.mm-hit-feedback--correct .mm-hit-feedback__combo{color:#3a9e78}.mm-hit-feedback--correct .mm-hit-feedback__text{color:#1f9a6e}.mm-hit-feedback--wrong .mm-hit-feedback__text{color:#e04d6f}@keyframes mm-hit-pop-centered{0%{opacity:0;transform:translate(-50%) translateY(10px) scale(1.45)}14%{opacity:1;transform:translate(-50%) translateY(0) scale(1)}68%{opacity:1;transform:translate(-50%) translateY(-2px) scale(1)}to{opacity:0;transform:translate(-50%) translateY(-12px) scale(.94)}}@keyframes mm-hit-pop-reduced{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}.mm-playground-top-chrome-left{position:absolute;top:10px;left:10px;z-index:22;display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;max-width:min(38%,9.5rem);pointer-events:none}.mm-playground-top-chrome-left>*{pointer-events:auto}.mm-playground-step{position:relative;top:auto;left:auto;font-size:.75rem;color:var(--mm-ink-muted);background:#ffffffd1;border:1px solid rgba(139,156,247,.22);padding:.28rem .55rem;border-radius:999px;white-space:nowrap;line-height:1.2}.mm-playground-kbd-hint{position:absolute;left:12px;bottom:76px;font-size:.68rem;color:var(--mm-ink-muted);max-width:200px;line-height:1.35;pointer-events:none}.mm-playground-float-bar{position:relative;left:auto;bottom:auto;transform:none;z-index:20;display:flex;flex-wrap:nowrap;align-items:stretch;gap:.2rem;max-width:100%;width:max-content;margin:0;padding:.28rem .4rem;border-radius:999px;background:#ffffffe6;border:1px solid rgba(139,156,247,.28);box-shadow:0 6px 24px #2d2a3e1a,0 2px 8px #8b9cf714;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;box-sizing:border-box}.mm-playground-float-bar::-webkit-scrollbar{display:none}.mm-playground-float-btn{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-width:64px;padding:.4rem .5rem;border:none;border-radius:999px;background:transparent;color:var(--mm-ink);font-family:var(--mm-label-font);font-size:.62rem;font-weight:600;line-height:1.1;cursor:pointer;transition:background .15s,color .15s,transform .1s,min-width .22s ease,padding .22s ease}.mm-playground-float-btn svg{color:var(--mm-primary-strong, var(--mm-primary));flex-shrink:0}.mm-playground-float-btn__label{display:block;max-width:5rem;max-height:3.2em;margin:0;overflow:hidden;text-align:center;white-space:normal;opacity:1;transform:translateY(0);transition:opacity .22s ease,max-height .22s ease,max-width .22s ease,transform .22s ease,margin .22s ease}@media(prefers-reduced-motion:reduce){.mm-playground-float-btn,.mm-playground-float-btn__label{transition:none}}.mm-playground-float-btn:hover{background:#8b9cf724}.mm-playground-float-btn:active{transform:scale(.95)}.mm-playground-float-btn--next{background:linear-gradient(135deg,var(--mm-primary),#a78bfa);color:#fff;min-width:64px;padding-inline:.65rem}.mm-playground-float-btn--next svg{color:#fff}.mm-playground-float-btn--next:hover{background:linear-gradient(135deg,#7a8ef5,#9b7df8)}button.mm-playground-float-btn.mm-playground-float-btn--melody{background:#8b9cf738;color:var(--mm-ink);box-shadow:0 0 0 1px #8b9cf759,0 0 #8b9cf766;animation:mm-melody-pulse 2.2s ease-in-out infinite}button.mm-playground-float-btn.mm-playground-float-btn--melody svg{color:var(--mm-primary-strong, var(--mm-primary))}button.mm-playground-float-btn.mm-playground-float-btn--melody:hover{background:#8b9cf74d}@keyframes mm-melody-pulse{0%,to{box-shadow:0 0 0 1px #8b9cf766,0 0 #8b9cf759}55%{box-shadow:0 0 0 1px #8b9cf78c,0 0 0 7px #8b9cf700}}@media(prefers-reduced-motion:reduce){button.mm-playground-float-btn.mm-playground-float-btn--melody{animation:none;box-shadow:0 0 0 2px #8b9cf766}}.mm-playground-float-btn--compact{min-width:48px}.mm-visual-card--playground .mm-playground{flex:1;min-height:0}.mm-reference-layout.mm-playground-layout{grid-template-rows:auto 1fr;background:var(--mm-bg)}.mm-reference-layout.mm-playground-layout .mm-visual-card--playground{position:relative;display:flex;flex-direction:column;min-height:min(78vh,560px)}.mm-reference-layout.mm-playground-layout .mm-visual-card{min-height:min(70vh,520px);padding:0;background:transparent;border:none;box-shadow:none}.mm-reference-layout.mm-playground-layout .mm-header{background:var(--mm-surface);border-radius:var(--radius);box-shadow:0 2px 16px #2d2a3e0f;border:1px solid rgba(139,156,247,.15)}.mm-reference-layout.mm-playground-layout button.mm-icon-btn,.mm-reference-layout.mm-playground-layout a.mm-icon-btn,.mm-reference-layout.mm-playground-layout .mm-icon-btn{background:#ffffffb8;border:1px solid rgba(139,156,247,.25);color:var(--mm-ink);padding:0}.mm-reference-layout.mm-playground-layout button.mm-icon-btn:hover,.mm-reference-layout.mm-playground-layout a.mm-icon-btn:hover,.mm-reference-layout.mm-playground-layout .mm-icon-btn:hover{background:#8b9cf71f;border-color:#8b9cf766;transform:none}.mm-reference-layout.mm-playground-layout .mm-command-bar{background:var(--mm-surface);border:1px solid rgba(139,156,247,.2);box-shadow:0 2px 16px #2d2a3e0f;padding:.45rem;gap:.5rem}.mm-reference-layout.mm-playground-layout .mm-btn-play{background:#8b9cf71a;color:var(--mm-ink);border:1px solid rgba(139,156,247,.35);font-size:.72rem;font-weight:600;padding:.5rem .35rem;transition:background .15s,border-color .15s,transform .12s}.mm-reference-layout.mm-playground-layout .mm-btn-play:hover{background:#8b9cf733;border-color:var(--mm-primary)}.mm-reference-layout.mm-playground-layout .mm-btn-play:active{transform:scale(.97)}.mm-reference-layout.mm-playground-layout .mm-btn-play span{color:var(--mm-primary);font-size:1.1rem}.mm-reference-layout.mm-playground-layout .mm-btn-secondary{background:var(--mm-surface);color:var(--mm-ink-muted);border:1px solid rgba(139,156,247,.25)}.mm-reference-layout.mm-playground-layout .mm-btn-secondary:hover{background:#8b9cf714;color:var(--mm-ink)}.mm-reference-layout.mm-playground-layout .mm-btn-next{background:linear-gradient(135deg,var(--mm-primary),#a78bfa);color:#fff;border:none;box-shadow:0 4px 14px #8b9cf759}.mm-reference-layout.mm-playground-layout .mm-btn-hint{background:#f5a8c826;color:var(--mm-ink);border:1px solid rgba(245,168,200,.4)}.mm-reference-layout.mm-playground-layout .mm-flavor-hint-overlay--chrome,.mm-reference-layout.mm-playground-layout .mm-flavor-badge--chrome{position:static;top:auto;left:auto;z-index:auto;display:inline-flex;align-items:center;width:max-content;max-width:100%;margin:0;padding:.22rem .55rem;border-radius:999px;font-size:.62rem;font-weight:700;line-height:1.2;white-space:nowrap;color:var(--mm-ink-muted);background:#ffffffe0;border:1px solid rgba(139,156,247,.35);box-shadow:0 2px 10px #2d2a3e14}.mm-reference-layout.mm-playground-layout .mm-flavor-hint-overlay--chrome:hover{background:#8b9cf729;color:var(--mm-ink)}@media(prefers-reduced-motion:reduce){.mm-playground-trail{animation:none}.mm-ripple-ring{animation:none;stroke-opacity:0}}.mm-playground{display:flex;flex-direction:column;min-width:0}.mm-playground-stage{position:relative;flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.mm-playground-stage .mm-playground-svg{height:100%}.mm-playground-stage .mm-playground-watermark{border-radius:0}.mm-playground-kbd-toggle{position:absolute;top:10px;right:10px;z-index:24;display:grid;place-items:center;width:40px;height:40px;padding:0;margin:0;border-radius:12px;border:1px solid rgba(139,156,247,.35);background:#ffffffe0;color:var(--mm-ink);cursor:pointer;box-shadow:0 2px 10px #2d2a3e1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transform:none!important}.mm-playground-kbd-toggle:hover,.mm-playground-kbd-toggle:active,.mm-playground-kbd-toggle:focus-visible{transform:none!important}.mm-playground-kbd-toggle-icon{display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;line-height:1}.mm-playground-kbd-toggle-icon svg{display:block}.mm-playground-kbd-toggle.is-active{background:#8b9cf738;border-color:#8b9cf78c}.mm-playground-dock{flex:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:.55rem;width:100%;max-height:0;padding:0 .45rem;overflow:hidden;opacity:0;pointer-events:none;box-sizing:border-box;background:#ffffffeb;border-top:1px solid transparent;transform:translateY(28px);transition:max-height .5s cubic-bezier(.4,0,.2,1),opacity .35s ease,padding .5s cubic-bezier(.4,0,.2,1),border-color .3s ease}.mm-playground-dock.is-open{max-height:min(48vh,300px);padding:.45rem .45rem calc(.5rem + env(safe-area-inset-bottom,0px));opacity:1;pointer-events:auto;border-top-color:#8b9cf738;transform:translateY(0);transition:max-height .55s cubic-bezier(.22,1,.36,1),opacity .3s ease-out,padding .55s cubic-bezier(.22,1,.36,1),border-color .28s ease-out;animation:mm-dock-bounce-in .58s cubic-bezier(.22,1,.36,1) both}.mm-playground-dock.is-closing{max-height:0;padding-top:0;padding-bottom:0;opacity:0;pointer-events:none;border-top-color:transparent;animation:mm-dock-bounce-out .64s cubic-bezier(.22,1,.36,1) both}.mm-playground--pads .mm-playground-stage{animation:mm-stage-bounce-in .58s cubic-bezier(.22,1,.36,1) both}.mm-playground--pads-closing .mm-playground-stage{animation:mm-stage-bounce-out .64s cubic-bezier(.22,1,.36,1) both}@keyframes mm-dock-bounce-in{0%{transform:translateY(36px)}55%{transform:translateY(-11px)}78%{transform:translateY(4px)}to{transform:translateY(0)}}@keyframes mm-dock-bounce-out{0%{transform:translateY(0);opacity:1}22%{transform:translateY(-11px);opacity:1}52%{transform:translateY(26px);opacity:.55}78%{transform:translateY(36px);opacity:.18}92%{transform:translateY(39px);opacity:.05}to{transform:translateY(40px);opacity:0}}@keyframes mm-stage-bounce-in{0%{transform:translateY(16px)}55%{transform:translateY(-8px)}78%{transform:translateY(3px)}to{transform:translateY(0)}}@keyframes mm-stage-bounce-out{0%{transform:translateY(0)}24%{transform:translateY(-9px)}52%{transform:translateY(5px)}76%{transform:translateY(1.5px)}90%{transform:translateY(.4px)}to{transform:translateY(0)}}.mm-playground-float-host{position:absolute;z-index:21;pointer-events:none;display:flex;justify-content:center;min-width:0}.mm-playground-float-host--top{top:10px;left:50%;transform:translate(-50%);max-width:min(100% - 7.5rem,22rem);width:max-content}.mm-playground-float-host .mm-playground-float-bar{pointer-events:auto}.mm-playground-float-host--enter .mm-playground-float-bar{animation:mm-float-surge-in .45s cubic-bezier(.22,1,.36,1) both}@keyframes mm-float-surge-in{0%{opacity:0;transform:translateY(-8px) scale(.94)}70%{opacity:1;transform:translateY(1px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}.mm-playground-float-host--top.mm-playground-float-host--enter{animation:mm-float-host-in .45s cubic-bezier(.22,1,.36,1) both}.mm-playground-float-host--top.mm-playground-float-host--enter .mm-playground-float-bar{animation:none}@keyframes mm-float-host-in{0%{opacity:0;transform:translate(-50%) translateY(-8px) scale(.94)}70%{opacity:1;transform:translate(-50%) translateY(1px) scale(1.02)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.mm-playground-dock-center{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;align-self:center;container-type:inline-size;container-name:dock-center}.mm-playground-dock .mm-playground-float-bar{position:relative;left:auto;bottom:auto;transform:none;max-width:100%;width:max-content;overflow:visible}@container dock-center (max-width: 15.5rem){.mm-playground-float-btn{min-width:42px;padding:.32rem .3rem;gap:0}.mm-playground-float-btn__label{opacity:0;max-height:0;max-width:0;margin:0;transform:translateY(4px);pointer-events:none}}.mm-kbd-rail{display:flex;flex-direction:column;justify-content:stretch;gap:.35rem;padding:0;min-width:0;width:100%;max-width:none;height:100%;min-height:0;box-sizing:border-box}.mm-kbd-rail--degrees,.mm-kbd-rail--qualities{justify-self:stretch}.mm-kbd-grid{display:grid;gap:.3rem;min-height:0}.mm-kbd-grid--3x3{flex:1 1 auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));min-height:9.5rem}.mm-kbd-grid--qualities{flex:1 1 auto;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));min-height:5.5rem}.mm-kbd-grid--dirs{flex:0 0 auto;grid-template-columns:repeat(2,minmax(0,1fr));min-height:2.75rem}.mm-kbd-key{touch-action:manipulation;display:grid;place-items:center;min-height:48px;height:100%;border:1px solid rgba(139,156,247,.28);border-radius:12px;background:#fffffffa;color:var(--mm-ink);font-family:var(--mm-label-font);font-size:.95rem;font-weight:700;cursor:pointer;padding:.2rem;box-shadow:0 1px 2px #2d2a3e0a}.mm-kbd-key--quality{font-size:.82rem}.mm-kbd-key.is-active{background:#8b9cf759;border-color:#4f5fc98c;color:var(--mm-primary-strong)}.mm-kbd-key.is-disabled,.mm-kbd-key:disabled{opacity:.35;cursor:not-allowed}.mm-visual-card--playground{min-width:0;overflow:hidden}@media(prefers-reduced-motion:reduce){.mm-playground-dock,.mm-playground-dock.is-open,.mm-playground-dock.is-closing{transition:none;animation:none;transform:none}.mm-playground--pads .mm-playground-stage,.mm-playground--pads-closing .mm-playground-stage,.mm-playground-float-host--enter .mm-playground-float-bar,.mm-playground-float-host--top.mm-playground-float-host--enter{animation:none}}@media(max-width:700px){.mm-playground-float-bar{overflow-x:auto}.mm-playground-float-btn{min-width:42px;padding:.32rem .3rem;gap:0}.mm-playground-float-btn__label{opacity:0;max-height:0;max-width:0;margin:0;transform:translateY(4px);pointer-events:none}.mm-playground-dock{gap:.35rem}.mm-playground-dock.is-open{max-height:min(52vh,280px);padding-inline:.4rem}.mm-playground-float-host--top{top:8px;max-width:min(100% - 6.75rem,15rem)}.mm-playground-float-bar{padding:.22rem .3rem;gap:.12rem}.mm-playground-step{font-size:.68rem;padding:.22rem .45rem}.mm-playground-top-chrome-left{top:8px;left:8px;gap:.35rem;max-width:min(34%,7.25rem)}.mm-reference-layout.mm-playground-layout .mm-flavor-hint-overlay--chrome,.mm-reference-layout.mm-playground-layout .mm-flavor-badge--chrome{font-size:.6rem;padding:.2rem .48rem}.mm-flavor-hint-detail{display:none}.mm-kbd-grid--3x3{min-height:10.5rem;gap:.35rem}.mm-kbd-grid--qualities{min-height:6.5rem}.mm-kbd-key{min-height:48px;font-size:1rem;border-radius:12px}.mm-kbd-key--quality{font-size:.85rem}}@media(max-width:400px){.mm-playground-dock.is-open{max-height:min(54vh,300px);gap:.4rem;padding-inline:.35rem}.mm-kbd-grid{gap:.3rem}.mm-kbd-grid--3x3{min-height:11rem}.mm-kbd-key{min-height:48px;font-size:.95rem}.mm-kbd-key--quality{font-size:.8rem}.mm-playground-kbd-toggle{width:36px;height:36px;top:8px;right:8px}.mm-playground-kbd-toggle-icon{font-size:1.05rem}.mm-playground-top-chrome-left{left:6px;top:8px;max-width:min(32%,6.5rem)}.mm-playground-float-host--top{max-width:min(100% - 6.25rem,13.5rem)}.mm-playground-float-btn{min-width:38px;padding:.28rem .22rem}.mm-playground-float-btn--next{min-width:42px;padding-inline:.45rem}}.mm-play-intro{position:absolute;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,2rem);background:#1c1e308c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);transition:background .45s ease,backdrop-filter .45s ease}.mm-play-intro--flying{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}.mm-play-intro__btn{position:relative;display:flex;align-items:center;justify-content:center;width:clamp(5.5rem,22vmin,9.5rem);height:clamp(5.5rem,22vmin,9.5rem);margin:0;padding:0;border:none;border-radius:50%;cursor:pointer;color:var(--mm-primary-strong, var(--mm-primary));background:#ffffffeb;box-shadow:0 0 0 1px #8b9cf759,0 12px 40px #2d2a3e38,0 0 #8b9cf759;transform:translate(0) scale(1);opacity:1;transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .55s cubic-bezier(.22,1,.36,1),box-shadow .25s ease,background .2s ease;animation:mm-play-intro-pulse 2.2s ease-in-out infinite;will-change:transform,opacity}.mm-play-intro__btn:hover{background:#fff;box-shadow:0 0 0 2px #8b9cf773,0 16px 48px #2d2a3e42}.mm-play-intro__btn:active{transform:scale(.96)}.mm-play-intro--flying .mm-play-intro__btn{animation:none;box-shadow:none;background:transparent;pointer-events:none}.mm-play-intro__icon{width:58%!important;height:58%!important}@keyframes mm-play-intro-pulse{0%,to{box-shadow:0 0 0 1px #8b9cf759,0 12px 40px #2d2a3e38,0 0 #8b9cf759}50%{box-shadow:0 0 0 1px #8b9cf773,0 12px 40px #2d2a3e38,0 0 0 14px #8b9cf700}}@media(prefers-reduced-motion:reduce){.mm-play-intro__btn{animation:none;transition:opacity .2s ease}}.dashboard-page{position:relative;height:100dvh;min-height:100dvh;display:flex;flex-direction:column;background:var(--mm-bg);color:var(--mm-ink);font-family:var(--mm-label-font);overflow:hidden}.dashboard-page-inner{position:relative;z-index:1;flex:1;min-height:0;max-width:960px;margin:0 auto;width:100%;padding:clamp(12px,3vw,24px);display:flex;flex-direction:column;gap:clamp(14px,2.5vw,20px);box-sizing:border-box;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.dashboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.dashboard-header-main{display:flex;align-items:center;gap:.85rem;min-width:0;flex:1}.dashboard-header-titles{min-width:0}.dashboard-header-titles h1{margin:0 0 4px;font-size:clamp(1.35rem,4vw,1.75rem);font-weight:800;letter-spacing:-.02em;color:var(--mm-ink)}.dashboard-header-titles p{margin:0;font-size:.9rem;color:var(--mm-ink-muted)}.dashboard-card{background:#ffffffd1;border:1px solid rgba(139,156,247,.18);border-radius:18px;padding:clamp(14px,2.5vw,20px);box-shadow:0 10px 28px #4f5fc90f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dashboard-card h2{margin:0 0 12px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mm-ink-muted)}.dashboard-card p{margin:0 0 6px;color:var(--mm-ink);font-size:.95rem}.dashboard-card p:last-child{margin-bottom:0}.dashboard-grid{display:grid;gap:clamp(12px,2vw,16px);grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid--stats-only{grid-template-columns:1fr}.dashboard-card--wide{width:100%}.dashboard-page .dashboard-btn,a.dashboard-btn,button.dashboard-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;font-family:var(--mm-label-font);font-weight:700;cursor:pointer;text-decoration:none;transition:transform .15s,opacity .15s,background .15s,color .15s;border:1px solid transparent;box-sizing:border-box;box-shadow:none}.dashboard-page .dashboard-btn--primary,a.dashboard-btn--primary,button.dashboard-btn--primary{padding:12px 22px;color:#fff;background:linear-gradient(135deg,var(--mm-primary),#a78bfa);box-shadow:0 8px 24px #8b9cf752;border:none;font-size:.95rem}.dashboard-page .dashboard-btn--ghost,button.dashboard-btn--ghost{padding:8px 14px;font-size:.8rem;font-weight:600;color:var(--mm-ink-muted);background:#ffffffb8;border:1px solid rgba(139,156,247,.22);box-shadow:none}.dashboard-page .dashboard-btn--soft,button.dashboard-btn--soft{padding:8px 14px;font-size:.78rem;font-weight:600;color:var(--mm-ink);background:#8b9cf71f;border:1px solid rgba(139,156,247,.28);box-shadow:none;flex-shrink:0}.dashboard-page .dashboard-btn--locked,button.dashboard-btn--locked{opacity:.72;color:var(--mm-ink-muted);background:#94a3b824;border-color:#94a3b84d}@media(prefers-reduced-motion:no-preference){.dashboard-page .dashboard-btn--primary:hover,.dashboard-page .dashboard-btn--ghost:hover,.dashboard-page .dashboard-btn--soft:hover{transform:translateY(-1px)}.dashboard-page .dashboard-btn--primary:active,.dashboard-page .dashboard-btn--ghost:active,.dashboard-page .dashboard-btn--soft:active{transform:scale(.98)}}.dashboard-page .dashboard-btn--ghost:hover,button.dashboard-btn--ghost:hover{color:var(--mm-ink);background:#fffffff2}.dashboard-page .dashboard-btn--soft:hover,button.dashboard-btn--soft:hover{background:#8b9cf733}.dashboard-history{margin:0;padding:0;list-style:none;display:grid;gap:10px}.dashboard-history li{color:var(--mm-ink);font-size:.92rem;line-height:1.45;padding:10px 12px;border-radius:12px;background:#f8f6ffbf;border:1px solid rgba(139,156,247,.12)}.dashboard-history li strong{color:var(--mm-ink);font-weight:700}.dashboard-empty{margin:0;color:var(--mm-ink-muted);font-size:.9rem}.dashboard-path-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.dashboard-path-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:14px;background:#f8f6ffbf;border:1px solid rgba(139,156,247,.12)}.dashboard-path-copy{min-width:0}.dashboard-path-copy strong{display:block;margin-bottom:2px;font-size:.95rem;color:var(--mm-ink)}.dashboard-path-copy span{display:block;font-size:.82rem;color:var(--mm-ink-muted);line-height:1.4}.dashboard-xp-line{margin:.65rem 0 0;font-size:.85rem;color:var(--mm-ink-muted)}.dashboard-page .mm-level-pill{color:var(--mm-ink-muted);background:#8b9cf71f}.dashboard-page .session-stats-label{color:var(--mm-ink-muted)}.dashboard-page .session-stats-metric strong{color:var(--mm-ink)}@media(max-width:720px){.dashboard-grid{grid-template-columns:1fr}.dashboard-path-item{flex-direction:column;align-items:stretch}.dashboard-btn--soft{width:100%}}.dashboard-header-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.dashboard-page .dashboard-header-actions .mm-icon-btn{background:#ffffffb8;border:1px solid rgba(139,156,247,.25);color:var(--mm-ink)}.dashboard-page .dashboard-header-actions .mm-icon-btn:hover{background:#fffffff2}.dashboard-footer{margin-top:auto;padding-top:.5rem;display:flex;justify-content:center}.dashboard-page .dashboard-btn--logout,button.dashboard-btn--logout{font-size:.75rem;font-weight:600;opacity:.85}.dashboard-stats-metrics{display:flex;flex-wrap:wrap;gap:clamp(12px,3vw,20px);align-items:flex-start}.dashboard-stats-metrics .session-stats-metric{flex:1 1 5.5rem;min-width:4.5rem}.dashboard-stats-metrics .session-stats-metric strong{font-size:clamp(1.05rem,2.8vw,1.25rem)}.dashboard-stats-hint{display:block;margin-top:2px;font-size:.68rem;font-weight:600;color:var(--mm-ink-muted);letter-spacing:.02em}.dashboard-heatmap{display:flex;flex-direction:column;gap:14px}.dashboard-heatmap-empty{text-align:center;padding:.5rem .25rem .15rem}.dashboard-heatmap-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(6px,1.5vw,10px)}.dashboard-heatmap-cell{display:flex;align-items:center;justify-content:center;min-height:42px;padding:.35rem .3rem;border-radius:12px;border:1px solid rgba(139,156,247,.12);background:#8b9cf70f;color:var(--mm-ink-muted);box-sizing:border-box;transition:background .15s ease,border-color .15s ease,color .15s ease}.dashboard-heatmap-cell__label{font-size:clamp(.62rem,1.8vw,.72rem);font-weight:700;letter-spacing:.01em;text-align:center;line-height:1.2}.dashboard-heatmap-cell--idle{background:#8b9cf70f;color:var(--mm-ink-muted)}.dashboard-heatmap-cell--weak{background:#f0a0b847;border-color:#dc82a047;color:var(--mm-ink)}.dashboard-heatmap-cell--mid{background:#8b9cf729;border-color:#8b9cf747;color:var(--mm-ink)}.dashboard-heatmap-cell--strong{background:#96c8b447;border-color:#78b49b4d;color:var(--mm-ink)}@media(prefers-reduced-motion:no-preference){.dashboard-heatmap-cell:hover,.dashboard-heatmap-cell:focus-visible{background:#ffffff8c;border-color:#8b9cf759}}.dashboard-heatmap-cell:focus-visible{outline:2px solid rgba(139,156,247,.5);outline-offset:2px}.dashboard-heatmap-focus{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.dashboard-heatmap-focus__label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mm-ink-muted)}.dashboard-heatmap-focus__chips{display:flex;flex-wrap:wrap;gap:6px}.dashboard-page span.dashboard-heatmap-chip,span.dashboard-heatmap-chip{cursor:default;pointer-events:none;padding:6px 12px;font-size:.75rem}@media(max-width:720px){.dashboard-heatmap-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:420px){.dashboard-heatmap-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-heatmap-cell{min-height:44px}}.home-page{position:relative;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--mm-bg);color:var(--mm-ink);font-family:var(--mm-label-font)}.home-page-scrim{position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,#0f172a85,#0f172a47 32%,#0f172a38 58%,#0f172a7a)}.home-page-inner{position:relative;z-index:1;flex:1;min-height:0;display:flex;flex-direction:column;padding:clamp(10px,2.5vw,24px);padding-bottom:max(8px,env(safe-area-inset-bottom,0px));max-width:960px;margin:0 auto;width:100%;box-sizing:border-box}.home-topbar{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:clamp(8px,2vw,24px)}.home-hero{flex-shrink:0;text-align:center;margin-bottom:clamp(10px,2.5vw,28px)}.home-hero h1{margin:0 0 6px;font-family:var(--mm-label-font);font-size:clamp(1.45rem,5vw,2.2rem);font-weight:800;color:#fff;letter-spacing:-.02em;text-shadow:0 1px 2px rgba(15,23,42,.45),0 6px 24px rgba(15,23,42,.35)}.home-hero p{margin:0;font-size:clamp(.82rem,2.5vw,1.05rem);color:#ffffffe6;text-shadow:0 1px 10px rgba(15,23,42,.4)}.home-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.home-dock{flex-shrink:0;display:flex;flex-direction:column;align-items:stretch;gap:4px;padding-top:12px;background:transparent}.home-preset-section{min-height:0}.home-preset-section h2{margin:0 0 10px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#ffffffe6;text-shadow:0 1px 6px rgba(15,23,42,.45)}.home-category-tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.home-category-tab{font-size:.72rem;font-weight:600;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.9);background:#fff;color:var(--mm-ink);cursor:pointer;box-shadow:0 2px 10px #0f172a2e}.home-category-tab:hover{background:#fff;color:var(--mm-primary-strong);box-shadow:0 4px 14px #0f172a3d}.home-category-tab.active{background:var(--mm-primary-strong);color:#fff;border-color:transparent;box-shadow:0 4px 16px #4f5fc96b}.home-category-tab.active:hover{color:#fff;background:var(--mm-primary-strong)}.home-preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;align-items:stretch;padding:2px 2px 8px;--home-preset-tile-h: 108px}@media(min-width:720px){.home-preset-grid{grid-template-columns:repeat(4,1fr);gap:12px;--home-preset-tile-h: 124px}}.home-preset-card-wrap{position:relative;min-width:0;height:var(--home-preset-tile-h)}.home-preset-card{position:relative;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;box-sizing:border-box;width:100%;height:var(--home-preset-tile-h);text-align:left;padding:12px 34px 30px 12px;border-radius:16px;border:2px solid rgba(139,156,247,.15);background:#ffffffc7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 16px #2d2a3e0f;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s;overflow:hidden}.home-preset-info{position:absolute;top:0;right:0;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;background:transparent;color:var(--mm-primary-strong, #4f5fc9);font-size:.72rem;font-weight:800;line-height:1;cursor:help}.home-preset-info:before{content:"?";display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;border:1px solid rgba(79,95,201,.35);background:#fffffff2;box-shadow:0 1px 4px #0f172a1f}.home-preset-info:hover:before,.home-preset-info:focus-visible:before{background:var(--mm-primary-strong, #4f5fc9);color:#fff;border-color:transparent}.home-preset-info:focus-visible{outline:none}.home-preset-info:focus-visible:before{outline:2px solid var(--mm-primary-strong, #4f5fc9);outline-offset:2px}.home-preset-toast{position:fixed;left:50%;bottom:calc(96px + env(safe-area-inset-bottom,0px));z-index:80;transform:translate(-50%);width:min(420px,calc(100vw - 28px));max-height:min(48vh,320px);overflow-y:auto;padding:14px 16px 12px;border-radius:16px;border:1px solid rgba(139,156,247,.28);background:#fffffff5;box-shadow:0 12px 40px #0f172a47;color:var(--mm-ink, #2d2a3e);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.home-preset-toast-title{display:block;margin:0 0 6px;font-family:var(--mm-label-font);font-size:.95rem;font-weight:800;letter-spacing:-.01em}.home-preset-toast-blurb{margin:0 0 10px;font-size:.8rem;line-height:1.4;color:var(--mm-ink, #2d2a3e)}.home-preset-toast-list{margin:0;padding:0;list-style:none;display:grid;gap:4px;font-size:.78rem;line-height:1.35;color:var(--mm-ink-muted, #5b5670)}.home-preset-toast-hint{display:block;margin-top:10px;font-size:.65rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#2d2a3e73;text-align:center}@media(prefers-reduced-motion:no-preference){.home-preset-card:hover{transform:translateY(-1px);box-shadow:0 8px 24px #2d2a3e1a}}.home-preset-card[aria-pressed=true]{border-color:var(--mm-primary);background:#fffffff2;box-shadow:0 8px 28px #8b9cf72e}.home-preset-card:focus-visible{outline:2px solid var(--mm-primary);outline-offset:2px}.home-preset-card--locked{opacity:.72;background:#f8fafcd1}.home-preset-card--locked .home-preset-card-label,.home-preset-card--locked .home-preset-card-desc{color:var(--mm-ink-muted, #6b7280)}.home-preset-lock{position:absolute;top:8px;right:8px;font-size:.85rem;line-height:1;filter:drop-shadow(0 1px 2px rgba(15,23,42,.25))}.home-preset-toast--lock{border-color:#f5a8c873}.home-preset-card-label{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;height:2.5em;font-family:var(--mm-label-font);font-size:.86rem;font-weight:700;letter-spacing:-.01em;line-height:1.25;color:var(--mm-ink);margin:0 0 4px}.home-preset-card-desc{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;overflow:hidden;height:1.35em;font-family:var(--mm-label-font);font-size:.7rem;font-weight:400;line-height:1.35;color:var(--mm-ink-muted)}@media(min-width:720px){.home-preset-card{padding:14px 36px 30px 16px}.home-preset-card-label{font-size:.92rem;margin:0 0 6px}.home-preset-card-desc{height:2.7em;-webkit-line-clamp:2;line-clamp:2;font-size:.74rem}}.home-preset-badge{position:absolute;left:10px;right:auto;bottom:8px;z-index:1;max-width:calc(100% - 20px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:3px 8px;border-radius:999px;background:#d9b55a33;color:#8a6d1a;pointer-events:none}.home-play-wrap{display:flex;justify-content:center;padding:8px 0 4px;overflow:visible}.home-play-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:min(280px,90vw);min-height:48px;padding:14px 32px;border:none;border-radius:999px;font-family:var(--mm-label-font);font-size:1rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--mm-primary),#a78bfa);box-shadow:0 2px 8px #0f172a47,0 6px 14px #8b9cf747;cursor:pointer;transition:transform .15s,opacity .15s,box-shadow .15s}.home-play-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}@media(prefers-reduced-motion:no-preference){.home-play-btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 3px 10px #0f172a4d,0 8px 18px #8b9cf752}.home-play-btn:not(:disabled):active{transform:scale(.98)}}.home-auth-footer{text-align:center;padding:6px 0 4px;font-size:.75rem;color:#ffffffe0;text-shadow:0 1px 6px rgba(15,23,42,.45)}.home-auth-status-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 8px}.home-auth-cta{margin-left:4px;padding:6px 14px!important;border-radius:999px!important;border:1px solid rgba(255,255,255,.45)!important;background:#fffffff2!important;color:#3f4db0!important;font-weight:800!important;font-size:.78rem!important;text-decoration:none!important;box-shadow:0 2px 10px #0f172a33}.home-auth-cta:hover{background:#fff!important}.home-auth-sep{opacity:.7}.home-auth-user{opacity:.95}.home-auth-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.02em;background:#ffffff29;border:1px solid rgba(255,255,255,.28);color:#fff}.home-auth-badge--beta_entitled{background:#34d39947;border-color:#34d39973}.home-auth-badge--beta_preview,.home-auth-badge--beta_restricted{background:#fbbf2447;border-color:#fbbf2473}.home-auth-badge--guest,.home-auth-badge--loading{background:#ffffff24}.home-auth-badge--cloud{background:#8b9cf752;border-color:#8b9cf780}.home-beta-panel{margin-top:8px;padding:10px 12px;border-radius:12px;background:#0f172a6b;border:1px solid rgba(255,255,255,.18);text-align:left;max-width:420px;margin-left:auto;margin-right:auto}.home-beta-status,.home-beta-msg{margin:0 0 6px;font-size:.72rem;color:#ffffffeb}.home-beta-form{display:flex;flex-direction:column;gap:8px}.home-beta-form label{display:flex;flex-direction:column;gap:4px;font-size:.72rem;font-weight:600}.home-beta-form textarea{resize:vertical;min-height:48px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:#ffffffeb;color:var(--mm-ink, #2d2a3e);padding:8px;font:inherit}.home-beta-form button,.home-beta-resubmit{align-self:flex-start;text-decoration:none!important;padding:6px 12px;border-radius:8px;background:#8b9cf7d9!important;color:#fff!important;border:none!important}.home-beta-rejected{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.home-auth-footer button{background:none;border:none;color:#c5d0ff;font-weight:600;cursor:pointer;text-decoration:underline;font-size:inherit}.home-auth-footer button:disabled{opacity:.6;cursor:wait}.home-auth-error{color:#ff8aa8;margin-top:6px}@media(max-height:700px){.home-hero p{display:none}.home-topbar{margin-bottom:6px}.home-hero{margin-bottom:8px}.home-hero h1{font-size:1.35rem;margin-bottom:0}.home-preset-section h2,.home-category-tabs{margin-bottom:8px}.home-preset-card{--home-preset-tile-h: 96px;height:var(--home-preset-tile-h);padding:10px 32px 26px 12px}.home-preset-card-wrap{height:var(--home-preset-tile-h)}.home-preset-grid{--home-preset-tile-h: 96px}.home-preset-card-label{font-size:.8rem}}.home-page .session-stats-label{color:#ffffffc7;text-shadow:0 1px 4px rgba(15,23,42,.4)}.home-page .session-stats-metric strong{color:#fff;text-shadow:0 1px 6px rgba(15,23,42,.45)}.home-page .mm-level-pill{color:#ffffffeb;text-shadow:0 1px 4px rgba(15,23,42,.4)}.home-page button.session-stats-hub--action{background:#ffffff1f;border:1px solid rgba(255,255,255,.28);padding:8px 12px;box-shadow:0 2px 12px #0f172a2e}.home-page button.session-stats-hub--action:hover{background:#ffffff38}.train-preset-chip{font-size:.72rem;font-weight:600;padding:6px 12px;border-radius:999px;border:1px solid rgba(139,156,247,.25);background:#8b9cf71f;color:var(--mm-ink-muted, var(--text-dim));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}.train-preset-chip--custom{background:#f5a8c826;border-color:#f5a8c866;color:var(--mm-ink, var(--text))}.settings-preset-banner{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;margin-bottom:12px;border-radius:16px;background:#ffffffe6;border:1px solid rgba(139,156,247,.22);box-shadow:0 4px 16px #2d2a3e0d;font-size:.85rem;color:var(--mm-ink, #2d2a3e)}.settings-preset-banner strong{color:var(--mm-ink, #2d2a3e)}.settings-preset-banner a{color:var(--mm-primary-strong, #4f5fc9);font-weight:600}.mm-playground--staff{position:relative;background:#faf8f5;border-radius:12px;box-shadow:0 4px 24px #00000014;min-height:240px;overflow:hidden;touch-action:none;cursor:crosshair}.mm-playground--staff.mm-playground--shake{animation:mm-staff-shake .45s ease}@keyframes mm-staff-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}.mm-staff-score-host,.mm-staff-score{width:100%;height:100%}.mm-staff-score svg{display:block}.mm-staff-overlay{pointer-events:none}.mm-staff-ghost-label-text{font-family:Lora,Georgia,Times New Roman,serif;font-size:13px;font-weight:600}.mm-playground-step--staff{color:#1a1a1a;background:#ffffffe0;border:1px solid rgba(0,0,0,.08)}.mm-staff-aim-hint{font-family:Lora,Georgia,serif;font-weight:600}.mm-dual-staff{position:relative;display:flex;flex-direction:column;height:100%}.mm-dual-staff-row{position:relative;flex:1;min-height:0}.mm-dual-staff-voice-label{position:absolute;left:8px;top:6px;z-index:2;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#666}.mm-dual-staff-brace{display:none}.mm-reference-layout.mm-playground-layout .mm-visual-card--playground .mm-playground--staff{background:#faf8f5}.mm-reference-layout.mm-playground-layout.mm-playground-theme--staff{--mm-bg: #f3f0ea;--mm-ink: #1a1a1a;--mm-ink-muted: #5c5c5c;--mm-primary: #4a5fc1;--mm-primary-strong: #3548a8;background:var(--mm-bg)}.mm-reference-layout.mm-playground-layout.mm-playground-theme--staff .mm-playground-float-bar{background:#fffffff0;border-color:#0000001f;box-shadow:0 8px 32px #0000001a,0 2px 8px #0000000f}.mm-reference-layout.mm-playground-layout.mm-playground-theme--staff .mm-playground-float-btn{color:var(--mm-ink)}.mm-reference-layout.mm-playground-layout.mm-playground-theme--staff .mm-playground-float-btn svg{color:var(--mm-primary-strong)}.mm-reference-layout.mm-playground-layout.mm-playground-theme--staff .mm-flavor-hint-overlay--chrome,.mm-reference-layout.mm-playground-layout.mm-playground-theme--staff .mm-flavor-badge--chrome{color:var(--mm-ink-muted);background:#ffffffeb;border:1px solid rgba(0,0,0,.1)}.mm-reference-layout.mm-playground-layout.mm-playground-theme--staff .mm-visual-card--playground{background:transparent;box-shadow:none}:root{--bg: #0f172a;--panel: #1e293b;--panel-border: rgba(255, 255, 255, .08);--primary: #6366f1;--primary-glow: rgba(99, 102, 241, .4);--accent: #d946ef;--up: #34d399;--down: #f472b6;--gold: #fbbf24;--text: #f8fafc;--text-dim: #94a3b8;--success: #10b981;--error: #ef4444;--font: "Segoe UI", system-ui, -apple-system, sans-serif;--radius: 16px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;scrollbar-width:none}*::-webkit-scrollbar{display:none;width:0;height:0}body{margin:0;height:100dvh;font-family:var(--font);background:radial-gradient(circle at top right,#1e293b 0%,var(--bg) 70%);color:var(--text);overflow:hidden}h1,h2,h3,p{margin-top:0}.page{max-width:1100px;margin:0 auto;padding:.75rem;display:grid;gap:.75rem;height:100dvh;overflow:auto;min-width:0;width:100%;box-sizing:border-box}.training-page{overflow:hidden;grid-template-rows:auto minmax(0,.86fr) minmax(0,1fr);gap:.6rem;min-width:0}.page-center{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem;overflow:hidden}.card{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:.95rem;box-shadow:0 8px 20px #00000040;min-height:0}.training-visual-card,.training-input-card{display:flex;flex-direction:column;min-height:0}.training-input-card>p{margin:.25rem 0 .55rem;color:var(--text-dim)}.landing{max-width:640px}.landing h1{color:var(--gold);letter-spacing:.5px}.landing p{color:var(--text-dim)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem .95rem;background:var(--panel);border-radius:var(--radius);border:1px solid var(--panel-border)}.topbar h1{margin-bottom:.25rem}.topbar p{margin:0;color:var(--text-dim)}.grid-2{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.column{display:flex;flex-direction:column;gap:.6rem}.row{display:flex;flex-wrap:wrap;gap:.45rem}button,.link-btn{border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#334155;color:var(--text);font-weight:700;padding:.58rem .9rem;cursor:pointer;text-decoration:none;transition:.18s}button:hover,.link-btn:hover{transform:translateY(-1px)}.link-btn{background:linear-gradient(90deg,var(--primary),#7c3aed);border-color:transparent;box-shadow:0 4px 12px var(--primary-glow)}button.secondary,.secondary{background:#ffffff0d;color:var(--text-dim)}button:disabled{opacity:.45;cursor:not-allowed}.error{color:var(--error)}.history{margin:0;padding-left:1rem;color:#dbe4f0;display:grid;gap:.45rem}.melody-canvas{width:100%;height:clamp(165px,30dvh,285px);background:#0b1220;border-radius:12px;border:1px solid var(--panel-border);box-shadow:inset 0 0 40px #0000008c}.audio-status{margin:.5rem 0 0;color:var(--gold);font-size:.85rem;font-weight:600}.interval-grid-wrapper{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem;flex:1;min-height:0}.interval-column{border:1px solid var(--panel-border);border-radius:12px;overflow:hidden;background:#0003;min-height:0;display:flex;flex-direction:column}.interval-column h3{margin:0;text-align:center;font-size:.83rem;letter-spacing:.7px;text-transform:uppercase;padding:.5rem}.interval-column:first-child h3{color:var(--down);background:#f472b61f}.interval-column:last-child h3{color:var(--up);background:#34d3991f}.interval-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.42rem;padding:.42rem;min-height:0;overflow:auto}.interval-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.08rem;min-height:50px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:9px;padding:.2rem;font-size:.82rem}.interval-btn small{color:#fff9;font-size:.62rem}.interval-btn.up:hover:not(:disabled){background:var(--up);color:#03170f;box-shadow:0 0 14px #34d39973;border-color:transparent}.interval-btn.down:hover:not(:disabled){background:var(--down);color:#24010f;box-shadow:0 0 14px #f472b673;border-color:transparent}.timeline{margin-top:.8rem;display:flex;gap:.4rem;flex-wrap:wrap}.timeline-point{background:#ffffff14;color:var(--text);border:1px solid var(--panel-border);min-width:40px}.timeline-point.active{background:linear-gradient(90deg,var(--primary),#7c3aed);border-color:transparent;color:#fff;box-shadow:0 0 12px var(--primary-glow)}.timeline-point.done{border:1px solid var(--success)}.yt-frame iframe{width:100%;height:clamp(170px,30dvh,300px);border-radius:12px;border:1px solid var(--panel-border)}.settings-modal-overlay{position:fixed;inset:0;z-index:100;background:#2d2a3e73;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:grid;place-items:center;padding:1rem}.settings-modal{width:min(640px,100%);max-height:min(90dvh,900px);background:var(--mm-surface, #ffffff);border:1px solid rgba(139,156,247,.2);border-radius:24px;box-shadow:0 20px 50px #2d2a3e2e;display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:var(--mm-ink, #2d2a3e);font-family:var(--mm-label-font, "DM Sans", "Segoe UI", system-ui, sans-serif)}.settings-modal-header,.settings-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.95rem 1.1rem}.settings-modal-header{border-bottom:1px solid rgba(139,156,247,.15)}.settings-modal-header h2{margin:0;font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--mm-ink, #2d2a3e)}.settings-modal-footer{border-top:1px solid rgba(139,156,247,.15)}.settings-modal-scroll{overflow:auto;padding:.95rem 1.1rem .35rem;background:var(--mm-bg, #f8f6ff)}.settings-modal-btn,.settings-modal button.secondary.settings-modal-btn{border:1px solid rgba(139,156,247,.25);border-radius:999px;background:#ffffffd9;color:var(--mm-ink-muted, #8b87a0);font-weight:600;padding:.5rem .95rem;box-shadow:none}.settings-modal-btn:hover,.settings-modal button.secondary.settings-modal-btn:hover{background:#8b9cf71a;color:var(--mm-ink, #2d2a3e);transform:none}.settings-modal-btn--primary,.settings-modal button.settings-modal-btn--primary{border:none;color:#fff;background:linear-gradient(135deg,var(--mm-primary, #8b9cf7),#a78bfa);box-shadow:0 6px 18px #8b9cf759}.settings-modal-btn--primary:hover,.settings-modal button.settings-modal-btn--primary:hover{color:#fff;background:linear-gradient(135deg,var(--mm-primary, #8b9cf7),#a78bfa);transform:translateY(-1px)}.settings-group{margin-bottom:.8rem;border:1px solid rgba(139,156,247,.15);background:#ffffffe0;border-radius:16px;padding:.85rem;display:grid;gap:.45rem;box-shadow:0 4px 16px #2d2a3e0d}.settings-group h3{margin:0 0 .15rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--mm-ink-muted, #8b87a0)}.settings-group label{font-size:.9rem;font-weight:600;color:var(--mm-ink, #2d2a3e)}.settings-group input[type=range]{width:100%;accent-color:var(--mm-primary, #8b9cf7)}.settings-range-labels{display:flex;justify-content:space-between;font-size:.74rem;color:var(--mm-ink-muted, #8b87a0)}.settings-help{margin:0;font-size:.78rem;color:var(--mm-ink-muted, #8b87a0);line-height:1.45}.settings-cursor-zones{margin:.2rem 0 0;padding-left:1.1rem;font-size:.76rem;color:var(--mm-ink-muted, #8b87a0);line-height:1.5}.settings-cursor-zones li{margin-bottom:.35rem}.settings-cursor-zones strong{color:#8a6d1a;font-weight:700}.settings-note{margin:.35rem 0 0;font-size:.76rem;line-height:1.45;color:var(--mm-ink-muted, #8b87a0)}.settings-note-warn{padding:.5rem .65rem;border-radius:12px;background:#d9b55a1f;border:1px solid rgba(217,181,90,.35);color:#8a6d1a}.settings-chip-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.settings-chip-grid-modes{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:520px){.settings-chip-grid-modes{grid-template-columns:repeat(3,minmax(0,1fr))}}.settings-mode-toolbar{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.55rem}.settings-chip-grid-intervals{grid-template-columns:repeat(4,minmax(0,1fr))}.settings-chip,.settings-modal .settings-chip{background:#ffffffe6;color:var(--mm-ink, #2d2a3e);border:1px solid rgba(139,156,247,.22);border-radius:999px;padding:.45rem .55rem;font-size:.8rem;font-weight:600;box-shadow:none}.settings-chip:hover,.settings-modal .settings-chip:hover{background:#8b9cf71a;transform:none}.settings-chip.active,.settings-modal .settings-chip.active{background:linear-gradient(135deg,var(--mm-primary, #8b9cf7),#a78bfa);border-color:transparent;color:#fff;box-shadow:0 4px 14px #8b9cf74d}@media(max-width:900px){.grid-2,.interval-grid-wrapper{grid-template-columns:1fr}.training-page{grid-template-rows:auto minmax(0,.8fr) minmax(0,1fr)}.interval-grid,.settings-chip-grid-intervals{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-height:820px){.page{padding:.5rem;gap:.5rem}.topbar{padding:.55rem .7rem}.topbar h1{font-size:1.45rem;margin-bottom:.1rem}.card{padding:.7rem}.interval-btn{min-height:44px;font-size:.75rem}.interval-btn small{font-size:.58rem}}@media(max-height:720px){.training-page{grid-template-rows:auto minmax(0,.75fr) minmax(0,1fr)}.melody-canvas,.yt-frame iframe{height:clamp(135px,25dvh,210px)}}.mm-reference-layout{grid-template-rows:auto minmax(0,180px) minmax(0,1fr) auto;overflow:hidden;gap:.5rem}.mm-reference-layout.mm-playground-layout{grid-template-rows:auto minmax(0,1fr)}.mm-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .85rem;background:var(--panel);border-radius:var(--radius);border:1px solid var(--panel-border);min-height:58px;min-width:0;width:100%;box-sizing:border-box;overflow:hidden}.mm-header-left{position:relative;display:flex;align-items:center;gap:.55rem;flex:1;min-width:0}.mm-rank-icon{font-size:1.35rem;flex-shrink:0}.mm-rank-text{display:flex;flex-direction:column;min-width:0}.mm-level-pill{width:fit-content;font-size:.62rem;color:var(--text-dim);border-radius:5px;background:#00000038;padding:1px 6px;margin-bottom:.1rem}.mm-rank-title{color:var(--gold);font-weight:800;font-size:.72rem;text-transform:uppercase;letter-spacing:.35px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:min(100%,200px)}.mm-rank-title-loading{color:var(--text-dim);text-transform:none;font-weight:600;letter-spacing:0}.mm-xp-track{position:absolute;left:0;bottom:-.52rem;width:100%;height:3px;border-radius:2px;background:#0000004d;overflow:hidden}.mm-xp-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));transition:width .35s ease}.mm-xp-track-loading{opacity:.85}.mm-xp-fill-indeterminate{width:40%;animation:mmXpIndeterminate 1.1s ease-in-out infinite}@keyframes mmXpIndeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}.mm-header-right{display:flex;align-items:center;gap:.65rem;flex-shrink:1;min-width:0;max-width:100%}.mm-header-session-stats{display:flex;align-items:baseline;gap:12px;min-width:0}.mm-header-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.mm-header--train-slim{justify-content:space-between;gap:.75rem;min-height:52px;padding:.55rem .75rem}.mm-header--train-slim .train-preset-chip{flex:0 1 auto;min-width:0;max-width:min(52vw,220px)}.mm-header--train-slim .mm-header-actions{margin-left:auto}.session-stats-metric--score strong{color:var(--gold, #fbbf24)}.mm-playground-theme .session-stats-metric--score strong{color:var(--mm-primary-strong, #4f5fc9)}.mm-bicinium-pill{font-size:.55rem;padding:.12rem .35rem;border-radius:999px;background:#a855f740;border:1px solid rgba(168,85,247,.4);color:#e9d5ff}.mm-poly-warning{margin:.5rem 1rem 0;padding:.5rem .75rem;border-radius:8px;background:#dc26261f;border:1px solid rgba(248,113,113,.35);font-size:.85rem}.settings-select{width:100%;margin:.35rem 0 .5rem;padding:.5rem .65rem;border-radius:999px;background:#fffffff2;border:1px solid rgba(139,156,247,.25);color:var(--mm-ink, #2d2a3e);font-weight:600}.settings-checkbox-row{display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin:.5rem 0}.settings-pair-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:.35rem 0 .75rem}.settings-pair-row .settings-select{flex:1;min-width:120px;margin:0}.interval-grid-vertical .interval-btn.vertical{min-width:72px}.mm-stat-badge{min-width:45px;padding:.22rem .42rem;border-radius:8px;text-align:center;display:flex;flex-direction:column;background:#0000004d;border:1px solid var(--panel-border)}.mm-stat-badge span{font-size:.53rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.5px}.mm-stat-badge strong{font-size:.88rem}.mm-stat-badge.trophy strong{color:var(--gold)}button.mm-icon-btn,a.mm-icon-btn,.mm-icon-btn{appearance:none;box-sizing:border-box;border:none;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;min-height:36px;padding:0;margin:0;line-height:0;border-radius:12px;background:transparent;color:var(--text);font-size:0;font-weight:600;cursor:pointer;text-decoration:none;flex-shrink:0;box-shadow:none;transform:none;vertical-align:middle}button.mm-icon-btn:hover,a.mm-icon-btn:hover,.mm-icon-btn:hover{background:#ffffff1a;transform:none}button.mm-icon-btn:focus-visible,a.mm-icon-btn:focus-visible,.mm-icon-btn:focus-visible{outline:2px solid rgba(139,156,247,.55);outline-offset:2px}.mm-icon-btn svg{display:block;width:18px;height:18px;flex-shrink:0;margin:0;pointer-events:none}.mm-visual-card{position:relative;padding:.4rem;overflow:hidden}.mm-visual-card .melody-canvas{height:100%;border-radius:14px}.mm-feedback{position:absolute;top:.7rem;left:50%;transform:translate(-50%);background:#000000bd;border:1px solid rgba(251,191,36,.3);color:var(--gold);border-radius:999px;padding:.2rem .65rem;font-size:.78rem;font-weight:700}.mm-feedback-idle{border-color:#fbbf244d;color:var(--gold)}.mm-feedback-correct{border-color:#10b9818c;color:#6ee7b7;background:#052e20c7;animation:mmPulseGood .36s ease-out}.mm-feedback-wrong{border-color:#ef44448c;color:#fca5a5;background:#450a0ac7;animation:mmShakeBad .32s ease-out}.mm-flavor-badge,.mm-bounce-badge{position:absolute;bottom:.75rem;font-size:.62rem;border-radius:4px;padding:.13rem .35rem;background:#0009;font-weight:700}.mm-flavor-badge{top:.65rem;bottom:auto;left:.7rem;right:auto;color:var(--primary);border:1px solid var(--primary);max-width:min(96%,280px);line-height:1.25;text-align:left;z-index:22}.mm-transition-step-badge{position:absolute;bottom:.75rem;left:.7rem;z-index:2;padding:.13rem .4rem;font-size:.62rem;font-weight:700;line-height:1.25;color:var(--text-dim);background:#0009;border:1px solid rgba(255,255,255,.12);border-radius:4px;letter-spacing:.04em;font-variant-numeric:tabular-nums}.mm-flavor-hint-overlay{position:absolute;top:.65rem;left:.7rem;bottom:auto;right:auto;z-index:22;margin:0;padding:.2rem .42rem;max-width:min(96%,280px);font-size:.62rem;font-weight:700;line-height:1.25;text-align:left;font-family:inherit;cursor:pointer;color:#e0e7ff;background:#6366f152;border:1px solid rgba(129,140,248,.55);border-radius:4px;box-shadow:0 2px 10px #00000059}.mm-flavor-hint-overlay:hover{background:#6366f17a}.mm-bounce-badge{left:.7rem;color:var(--accent);border:1px solid var(--accent)}.mm-input-card{padding:.4rem;overflow:hidden}.mm-interval-grid{flex:1}.mm-reference-layout .interval-grid-wrapper{gap:.45rem}.mm-reference-layout .interval-column{border-radius:13px}.mm-reference-layout .interval-column h3{font-size:.75rem;padding:.42rem}.mm-reference-layout .interval-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;padding:.34rem;overflow:auto;flex:1;min-height:0}.mm-reference-layout .interval-btn{min-height:46px;font-size:.77rem;border-radius:8px}.mm-reference-layout .interval-btn small{font-size:.56rem}.interval-btn.is-correct{border-color:#10b981cc;background:#10b98133;box-shadow:0 0 0 1px #10b98159,0 0 14px #10b98147;animation:mmPulseGood .32s ease-out}.interval-btn.is-wrong{border-color:#ef4444cc;background:#ef444433;box-shadow:0 0 0 1px #ef444459,0 0 14px #ef444433;animation:mmShakeBad .32s ease-out}.mm-command-bar{display:flex;flex-wrap:wrap;gap:.42rem;min-height:56px;height:auto;border-radius:16px;padding:.35rem;background:var(--panel);border:1px solid var(--panel-border)}.mm-btn{border:none;border-radius:11px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-direction:column;line-height:1}.mm-btn span{font-size:1rem;margin-bottom:.07rem}.mm-btn-play{flex:1 1 0;min-width:88px;color:#fff;background:#334155;border:1px solid rgba(255,255,255,.1);font-size:.68rem}.mm-btn-secondary{flex:0 1 auto;min-width:64px;color:#e2e8f0;background:#0f172aa6;border:1px solid rgba(148,163,184,.35);font-size:.65rem}.mm-pair-hint{font-size:.85em;opacity:.85}.mm-btn-next{flex:1.5 1 120px;background:var(--primary);color:#fff;text-transform:uppercase;letter-spacing:.6px}.mm-btn-hint{flex:1 1 100px;min-width:88px;background:#6366f138;color:#e0e7ff;border:1px solid rgba(129,140,248,.45);font-size:.65rem;text-transform:none;letter-spacing:.02em;padding:.35rem .45rem}.mm-btn-hint:disabled{opacity:.45;cursor:not-allowed}.mm-btn-hint:not(:disabled):hover{background:#6366f159}@keyframes mmPulseGood{0%{transform:scale(.96)}65%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes mmShakeBad{0%{transform:translate(0)}25%{transform:translate(-3px)}50%{transform:translate(3px)}75%{transform:translate(-2px)}to{transform:translate(0)}}@media(min-width:1200px){.mm-reference-layout .interval-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:860px){.mm-reference-layout{gap:.35rem}.mm-rank-title{max-width:min(100%,130px);font-size:.68rem}.mm-header{padding:.4rem;flex-wrap:wrap;align-items:flex-start}.mm-header-left{flex:1 1 140px}.mm-header-right{flex:1 1 auto;justify-content:flex-end;flex-wrap:wrap;row-gap:.25rem}.mm-stat-badge{min-width:36px;padding:.2rem .3rem}.mm-stat-badge span{font-size:.48rem}.mm-stat-badge strong{font-size:.78rem}.mm-header-right .train-preset-chip{max-width:min(120px,28vw)}.mm-header-session-stats{gap:8px}.mm-icon-btn{flex-shrink:0}.mm-reference-layout .interval-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.28rem;padding:.28rem}.mm-reference-layout .interval-btn{min-height:42px;font-size:.72rem}.mm-reference-layout .interval-btn small{font-size:.52rem}}@media(max-width:480px){.page.training-page{padding:.4rem}.mm-header{gap:.35rem;min-height:0}.mm-header-right .train-preset-chip{max-width:96px;font-size:.58rem;padding:3px 8px}.mm-stat-badge{min-width:32px;padding:.15rem .22rem}.mm-profile-meta{display:none}}.mm-profile-trigger{border:none;background:transparent;padding:0;margin:0;text-align:left;cursor:pointer;flex:1;min-width:0;font:inherit;color:inherit}.mm-profile-meta{display:flex;align-items:center;gap:.45rem;font-size:.68rem;color:var(--text-dim);margin-top:.06rem}.mm-mastery-stars{letter-spacing:.04em}.mm-profile-overlay{position:fixed;inset:0;z-index:220;background:#000000d9;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;padding:.75rem}.mm-profile-modal{padding:0;height:80vh;max-height:600px;display:flex;flex-direction:column;overflow:hidden;background:#0f172a;border-radius:24px;width:90%;max-width:400px;border:1px solid rgba(255,255,255,.1);box-shadow:0 25px 50px #0009;position:relative}.profile-header-compact{background:#1e293b;padding:20px 20px 15px;position:relative;border-bottom:1px solid rgba(255,255,255,.1);display:block;align-items:center;gap:15px;flex-shrink:0;z-index:10;box-shadow:0 4px 20px #0003}.profile-top-row{display:flex;align-items:center;gap:15px;margin-bottom:15px;padding-right:96px}.profile-avatar-small{font-size:2rem;width:60px;height:60px;background:#ffffff0d;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid var(--primary);box-shadow:0 0 10px #6366f14d}.profile-info-compact{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.mastery-meta-row{display:flex;align-items:center;gap:8px;font-size:.8rem;color:var(--primary);font-weight:700;margin-top:4px;text-transform:uppercase;letter-spacing:.5px}.mastery-icon-badge{background:#ffffff1a;width:24px;height:24px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:1rem}.profile-xp-track{height:6px;background:#ffffff1a;border-radius:3px;margin:10px 0 8px;overflow:hidden;position:relative}.profile-xp-fill{height:100%;background:var(--primary);width:0%;transition:width .5s ease-out;box-shadow:0 0 10px #6366f14d}.profile-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:5px}.mini-stat-box{background:#ffffff08;border-radius:8px;padding:6px 10px;display:flex;align-items:center;gap:10px}.mini-stat-icon{font-size:1.1rem;opacity:.8}.mini-stat-info{display:flex;flex-direction:column;line-height:1}.mini-stat-val{font-weight:800;font-size:.9rem;color:#fff}.mini-stat-label{font-size:.55rem;text-transform:uppercase;color:var(--text-dim);margin-top:3px}.timeline-connector-top{position:absolute;left:50px;bottom:-20px;width:2px;height:20px;background:#ffffff1a;z-index:0}.timeline-scroll-area{flex:1;overflow-y:auto;overflow-x:hidden;padding:20px;background:linear-gradient(180deg,#0f172a,#1e1b4b);scrollbar-width:none}.timeline-scroll-area::-webkit-scrollbar{display:none}.tl-node{display:flex;align-items:center;gap:15px;padding:10px;margin-bottom:0;position:relative;opacity:.5;transition:all .3s}.tl-node:before{content:"";position:absolute;left:29px;top:40px;bottom:-20px;width:2px;background:#ffffff1a;z-index:0}.tl-node:last-child:before{display:none}.tl-icon{width:40px;height:40px;border-radius:50%;background:#334155;display:flex;align-items:center;justify-content:center;font-size:1.2rem;z-index:1;border:2px solid #475569}.tl-content{background:#ffffff08;padding:8px 12px;border-radius:8px;flex:1}.profile-footer-fixed{padding:15px;background:#1e293b;border-top:1px solid rgba(255,255,255,.1);z-index:10;flex-shrink:0}.btn-prestige{background:linear-gradient(135deg,#fbbf24,#b45309);border:1px solid #fbbf24;color:#fff;padding:15px;width:100%;border-radius:16px;font-size:1.1rem;font-weight:900;text-transform:uppercase;letter-spacing:1px;box-shadow:0 4px 15px #fbbf2466;cursor:pointer;position:relative;overflow:hidden;transition:all .3s;display:flex;flex-direction:column;align-items:center;justify-content:center}.btn-prestige:hover{transform:scale(1.02);box-shadow:0 0 25px #fbbf2499}.btn-prestige:active{transform:scale(.98)}.btn-prestige:disabled{background:#334155;border-color:#475569;color:#64748b;box-shadow:none;cursor:not-allowed;filter:grayscale(1)}.btn-prestige .shiny{position:absolute;top:0;left:-100%;width:50%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:skew(-20deg);animation:shine 3s infinite}@keyframes shine{0%{left:-100%}to{left:200%}}.prestige-main-txt{font-size:1.2rem;font-weight:900}.prestige-sub-txt{font-size:.75rem;opacity:1;margin-top:4px;font-weight:700;color:#ffffffe6}.modal-help-icon{width:24px;height:24px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:.9rem;color:var(--text-dim);cursor:pointer;transition:all .2s}.modal-help-icon:hover{background:#fff3;color:var(--text)}.modal-help-icon:active{transform:scale(.95)}.mm-yt-header-meta{flex-wrap:wrap;justify-content:flex-end}.mm-yt-feedback{margin:0;font-size:.72rem;color:var(--text-dim);max-width:160px;text-align:right;line-height:1.25}
