:root{color:#233c2f;font-synthesis:none;--ink:#233c2f;--muted:#526457;--accent:#286344;--paper:#faf8f2;--line:#d9dfd5;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:#f0f2ec;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;min-height:44px;color:var(--ink);background:0 0;border:0;border-radius:9px;padding:10px 16px;font-size:14px;font-weight:500;line-height:1.35}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:3px;outline:3px solid #be863f}a{color:inherit;text-decoration:none}p,h1,h2{margin:0}button.primary{background:var(--accent);color:#fff;justify-content:center;align-items:center;gap:14px;display:inline-flex;box-shadow:0 3px #193d2914}button.primary:hover{background:#1e5337}button.outline{background:#fff6;border:1px solid #bbc9bc}.quiet:hover{background:#e0e7dc}.studio{max-width:1160px;margin:auto;padding:0 40px}.studio-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;height:92px;display:flex}.brand{letter-spacing:-.8px;align-items:center;gap:10px;font-size:21px;font-weight:650;display:flex}.brand-mark{color:#f5f6ed;background:#244831;border-radius:9px;place-items:center;width:32px;height:32px;font-family:Georgia,serif;font-size:28px;display:grid}.brand-caption{letter-spacing:.02em;color:var(--muted);border-left:1px solid #cbd5c8;margin-left:5px;padding-left:12px;font-size:11px;font-weight:400}.header-actions{align-items:center;gap:10px;display:flex}.piece-heading{justify-content:space-between;align-items:center;gap:16px;padding:36px 0 28px;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-bottom:9px;font-size:11px;font-weight:600;line-height:1.5}h1{letter-spacing:-1.2px;font-family:Georgia,serif;font-size:clamp(30px,4vw,43px);font-weight:400;line-height:1.15}.subtitle{color:var(--muted);margin-top:10px;font-size:13px;line-height:1.6}.music-desk{background:var(--paper);border:1px solid #dde1d7;border-radius:18px;overflow:hidden;box-shadow:0 6px 22px #2d463305}.score-heading{letter-spacing:.05em;color:#637160;justify-content:space-between;align-items:center;min-height:54px;padding:14px 26px 0;font-size:11px;font-weight:500;display:flex}.score-heading select{color:#355441;background:0 0;border:0;border-radius:5px;max-width:156px;min-height:44px;padding:5px;font-size:12px}.tutor-strip{background:#e6ecdf;justify-content:space-between;align-items:center;gap:22px;min-height:112px;padding:22px 26px;display:flex}.tutor-message{align-items:flex-start;gap:13px;max-width:570px;display:flex}.tutor-dot{border:2px solid #43714a;border-radius:50%;flex:none;width:9px;height:9px;margin-top:5px}.tutor-label{text-transform:uppercase;letter-spacing:.07em;color:#405936;margin-bottom:7px;font-size:11px;font-weight:600}.tutor-message p:last-child{max-width:53ch;font-size:14px;line-height:1.6}.transport{flex-shrink:0;align-items:center;gap:8px;display:flex}.keyboard-section{padding-top:24px}.keyboard-toolbar{min-height:44px;color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-bottom:9px;font-size:12px;display:flex}.keyboard-toolbar>div{align-items:center;display:flex}.keyboard-toolbar button{font-size:12px}.toolbar-separator{color:#a7b2a3;padding:0 10px}.compact{min-width:44px;padding:10px}footer{letter-spacing:.02em;color:#647660;min-height:48px;padding-bottom:env(safe-area-inset-bottom);justify-content:space-between;align-items:center;gap:12px;font-size:11px;display:flex}.notice{color:#805724;padding:10px;font-size:13px;line-height:1.5}.ear-workspace{text-align:center;min-height:236px;padding:26px 22px}.ear-notes{flex-wrap:wrap;justify-content:center;gap:8px;margin:14px 0;display:flex}.ear-notes span{color:#456c4e;padding:6px;font-family:Georgia,serif;font-size:24px}.ear-prompt{max-width:32ch;margin:12px auto;font-size:17px;line-height:1.5}.ear-entry{text-align:left;background:#e9eee3;justify-content:space-between;align-items:center;gap:16px;width:100%;margin:20px 0 10px;padding:18px;display:flex}.ear-entry strong,.ear-entry small{display:block}.ear-entry small{color:var(--muted);margin-top:5px;font-size:12px}dialog{color:var(--ink);background:#f6f7f0;border:1px solid #d3dbce;border-radius:20px;width:min(560px,100% - 24px);max-height:calc(100dvh - 48px);padding:28px;box-shadow:0 24px 90px #19352333}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#17301c55}.dialog-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}h2{letter-spacing:-.5px;font-family:Georgia,serif;font-size:27px;font-weight:400}.piece-row{text-align:left;border-top:1px solid #dfe5d8;border-radius:0;align-items:center;gap:18px;width:100%;padding:22px 0;display:flex}.piece-row:hover{background:#e9eee455}.piece-row>span:nth-child(2){flex:1}.piece-row strong,.piece-row small{display:block}.piece-row strong{font-size:16px;font-weight:500}.piece-row small{color:var(--muted);margin-top:6px;font-size:12px;line-height:1.6}.piece-number{color:#647660;font-variant-numeric:tabular-nums;font-size:12px}.setting{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;min-height:64px;font-size:15px;display:flex}.setting input[type=checkbox]{width:24px;height:24px;accent-color:var(--accent)}.setting.stacked{flex-direction:column;align-items:stretch;padding:20px 0}.setting.stacked span{justify-content:space-between;display:flex}.setting input[type=range]{width:100%;accent-color:var(--accent)}details{padding-top:12px;font-size:13px;line-height:1.7}summary{cursor:pointer;min-height:44px;padding:10px 0;display:list-item}details p{color:var(--muted);margin:5px 0 16px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=760px){.studio{padding:0 20px}.studio-header{height:74px}.brand-caption{display:none}.piece-heading{padding:26px 0 20px}.tutor-strip{flex-direction:column;align-items:stretch;gap:15px;min-height:136px;padding:18px 20px}.tutor-message{max-width:none}.transport{justify-content:flex-end}.transport button.primary{flex:1}.score-heading{padding:12px 20px 0}.header-actions{gap:2px}.header-actions button{padding:10px;font-size:12px}.keyboard-section{padding-top:16px}.subtitle{font-size:12px}.free-link{padding:10px;font-size:12px}.ear-workspace{min-height:218px}}@media (width<=420px){.studio{padding:0 14px}.brand{gap:7px;font-size:18px}.brand-mark{width:28px;height:28px;font-size:24px}.header-actions .quiet{padding:8px;font-size:11px}.piece-heading{gap:8px}h1{font-size:30px}.eyebrow,.keyboard-toolbar>span{font-size:11px}.toolbar-separator{padding:0 5px}.keyboard-toolbar button{padding:9px;font-size:11px}footer,.score-heading{font-size:11px}.tutor-message p:last-child{font-size:13px}}@media (height<=500px) and (width>=600px){.studio-header{height:58px}.piece-heading{padding:14px 0}h1{font-size:28px}.piece-heading .eyebrow,.subtitle{display:none}.tutor-strip{flex-direction:row;min-height:74px;padding:12px 20px}.music-desk{border-radius:12px}.score-heading{min-height:40px;padding-top:6px}.keyboard-section{padding-top:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (width<=760px){.piece-heading{padding:21px 0 18px}.score-heading{min-height:48px;padding-top:6px}.tutor-strip{gap:13px;min-height:126px;padding:16px 20px}.keyboard-section{padding-top:13px}}@media (height<=500px) and (width>=600px){.studio{max-width:none;padding:0 18px}.studio-header{height:44px}.brand{font-size:18px}.brand-caption{display:none}.studio main{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;column-gap:18px;display:grid}.piece-heading{grid-column:1/-1;min-height:44px;padding:8px 0}.piece-heading h1{font-size:24px}.piece-heading .free-link{min-height:36px;padding:4px 10px}.music-desk{grid-column:1}.keyboard-section{grid-column:2;padding-top:0}.score-heading{min-height:36px;padding:0 14px}.score-heading select{min-height:36px}.tutor-strip{flex-direction:column;align-items:stretch;gap:8px;min-height:98px;padding:10px 14px;display:flex}.tutor-label,.tutor-dot{display:none}.tutor-message p:last-child{font-size:12px;line-height:1.4}.transport{justify-content:flex-start}.transport button{font-size:12px}.transport .primary{flex:1}.keyboard-toolbar{margin-bottom:5px}.keyboard-toolbar .toolbar-separator,.keyboard-toolbar>span{font-size:11px}.keyboard-toolbar button{padding:8px;font-size:11px}footer{display:none}.notice{grid-column:1/-1}.ear-workspace{min-height:170px;padding:10px}.ear-prompt{margin:8px auto;font-size:14px}.ear-notes{margin:6px 0}}body{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.welcome-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:200px;padding:24px;display:flex}.welcome-card p{max-width:34ch;font-size:16px;line-height:1.5}.welcome-symbol{color:var(--accent);font-family:Georgia,serif;font-size:48px}.practice-picker{border:0;flex-wrap:wrap;gap:10px;margin:8px 0;padding:14px 0;display:flex}.practice-picker legend{font-size:14px;font-weight:600}.practice-picker label{border:1px solid var(--line);border-radius:8px;align-items:center;gap:6px;min-height:44px;padding:8px;display:flex}.practice-picker input{accent-color:var(--accent)}.mode-description{color:#526457;font-size:14px;line-height:1.5}.badge-list{flex-wrap:wrap;gap:8px;margin:20px 0;display:flex}.badge-list span{color:#233c2f;background:#d6eadd;border-radius:20px;padding:10px 14px}.free-link{white-space:nowrap}@media (width<=420px){.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:0}.header-actions button{min-height:44px;padding:6px;font-size:11px}.studio-header{height:auto;min-height:74px}.welcome-card{min-height:170px;padding:18px}.welcome-card h2{font-size:24px}.tutor-message p:last-child{font-size:15px}.piece-heading .eyebrow{display:none}}.studio-profile{align-items:center;gap:5px;display:flex}.header-actions .studio-profile{padding:6px}.music-filters{flex-wrap:wrap;gap:12px;margin:16px 0;display:flex}.music-filters label{flex:1;gap:6px;min-width:130px;font-size:14px;display:grid}.music-filters select{border:1px solid var(--line);background:var(--paper);width:100%;min-height:44px;color:var(--ink);border-radius:8px;padding:8px}.manage-music{justify-content:space-between;align-items:center;gap:10px;display:flex}.import-dialog{width:min(640px,100vw - 20px);padding:16px}.import-frame{border:0;width:100%;height:min(680px,100dvh - 140px);display:block}.focus-studio{max-width:1500px;padding:env(safe-area-inset-top) 20px env(safe-area-inset-bottom)}.focus-studio .studio-header{border:0;height:58px}.focus-studio .brand{letter-spacing:-.6px;font-size:18px}.focus-studio .header-actions{gap:0}.icon-control{min-width:44px}.piano-surface{min-height:calc(100dvh - 74px - env(safe-area-inset-top) - env(safe-area-inset-bottom));flex-direction:column;gap:8px;display:flex}.focus-cue{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:8px 0;display:flex}.focus-cue h1{letter-spacing:0;font-family:inherit;font-size:16px;font-weight:500;line-height:1.35}.focus-cue p{font-size:clamp(18px,3vw,24px);line-height:1.35}.focus-score{background:var(--paper);border-radius:14px;overflow:hidden}.focus-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;min-height:44px;display:flex}.focus-controls select{max-width:145px;min-height:44px;color:var(--ink);background:0 0;border:0;border-radius:8px}.focus-studio .keyboard-section{flex-direction:column;flex:1;min-height:220px;padding:0;display:flex}.focus-studio .keyboard-viewport{flex-direction:column;flex:1;padding-bottom:0;display:flex}.focus-studio .piano-keys{--piano-height:100%;flex:1;min-height:220px}.focus-studio .large-key-grid{flex:1}.focus-studio .piano-key{padding-bottom:24px}@media (width<=600px){.focus-studio{padding-left:10px;padding-right:10px}.focus-controls button{padding:8px 10px}.focus-cue{padding:6px 0}}@media (orientation:landscape) and (height<=500px){.focus-studio .studio-header{height:48px}.focus-cue{flex-direction:row;justify-content:center;padding:0}.focus-score{max-height:105px;overflow:auto}.piano-surface{gap:4px;min-height:calc(100dvh - 54px)}.focus-studio .keyboard-section,.focus-studio .piano-keys{min-height:140px}}.focus-controls.welcome-controls{display:none}
