:root{color:#254537;font-synthesis:none;--green:#25563f;--muted:#687160;--line:#dfe2d6;--paper:#fffefa;--left:#96671d;background:#f7f6f0;font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation;background:0 0;border:0}button:disabled{opacity:.55;cursor:default}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:4px;outline:3px solid #b16e30}a{color:inherit;text-underline-offset:4px}h1,h2,h3,p{margin:0}input{accent-color:var(--green)}.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}.skip-link{z-index:100;background:#fff;padding:12px;position:fixed;top:-70px;left:15px}.skip-link:focus{top:10px}.noscript{padding:25px}.song-app{max-width:1300px;margin:auto}.song-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1080px;height:84px;margin:auto;display:flex}.brand{align-items:center;gap:10px;padding:0;display:flex}.brand strong{letter-spacing:3px;font-size:24px}.brand-mark{font-size:30px}.brand-tag{color:#56705b;font-size:13px}.song-footer{border-top:1px solid var(--line);max-width:1080px;color:var(--muted);justify-content:space-between;gap:15px;margin:42px auto 0;padding:25px 0 32px;font-size:12px;display:flex}.song-footer a{text-decoration:none}.eyebrow{letter-spacing:2px;color:#778068;font-size:10px}.song-home{max-width:810px;margin:auto;padding:42px 0 0}.home-intro{margin-bottom:29px}.home-intro h1{letter-spacing:1px;margin:12px 0;font:600 39px/1.4 Songti SC,Georgia,serif}.home-intro p{color:var(--muted);font-size:15px}.song-grid{gap:17px;display:grid}.song-card{border:1px solid var(--line);background:var(--paper);border-radius:12px;align-items:center;gap:26px;padding:17px;transition:box-shadow .15s;display:flex}.song-card:hover{box-shadow:0 7px 20px #22332209}.card-cover{border-radius:8px;flex:0 0 164px;height:150px;padding:0;overflow:hidden}.song-art{object-fit:cover;width:100%;height:100%;display:block}.art-sun{color:#986923;background:#f2e4ba}.art-star{color:#607f90;background:#dee7e8}.art-meadow{color:#708157;background:#e3e8d9}.card-cover svg{transform:scale(1.24)}.card-body{flex:1;min-width:0}.song-title-row{justify-content:space-between;align-items:center;gap:15px;display:flex}.song-title-row h2{letter-spacing:1px;font:600 25px/1.4 Songti SC,Georgia,serif}.played-badge{color:#607456;white-space:nowrap;font-size:12px}.song-meta{color:#59705c;margin-top:6px;font-size:13px}.song-description{color:var(--muted);margin:8px 0 14px;font-size:13px;line-height:1.7}.card-actions{gap:11px;display:flex}.primary,.secondary,.preview-button{border-radius:8px;justify-content:center;align-items:center;gap:11px;min-height:43px;padding:11px 22px;font-size:14px;line-height:1.4;display:inline-flex}.primary{background:var(--green);color:#fffffb}.primary:hover:not(:disabled){background:#16442e}.secondary,.preview-button{color:#3c5b42;background:#fffefa;border:1px solid #cbd5c3}.text-button{text-underline-offset:4px;padding:8px 5px;font-size:13px;text-decoration:underline}.home-footnote{text-align:center;color:#6a7760;margin:25px 0 0;font-size:13px;line-height:1.8}.studio{max-width:1080px;margin:auto;padding-top:24px}.studio-title{grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;display:grid}.back-button{justify-self:start;padding:8px 0;font-size:14px}.studio-title h1{letter-spacing:1px;font:600 31px/1.4 Songti SC,Georgia,serif}.key-badge{color:#577054;border:1px solid #cbd1c1;border-radius:20px;justify-self:end;padding:5px 12px;font-size:12px}.version-switch{border:1px solid #cbd2c2;border-radius:30px;max-width:360px;margin:19px auto 27px;padding:3px;display:flex}.version-switch>button{border-radius:25px;flex:1;padding:10px;font-size:14px}.version-switch>button[aria-pressed=true]{background:var(--green);color:#fffefa}.music-workspace{background:var(--paper);border:1px solid var(--line);border-radius:13px;padding:22px 27px 13px;scroll-margin-top:12px}.transport{justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;display:flex}.play-actions,.play-options{align-items:center;gap:12px;display:flex}.transport .primary{min-width:149px}.tempo-label select{color:#516b51;cursor:pointer;background:#fffefa;border:1px solid #cbd1c2;border-radius:7px;padding:10px 32px 10px 13px;font-size:13px}.loop-control{color:#596e51;cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:6px;padding:7px 8px;font-size:13px;display:flex}.loop-control input{width:15px;height:15px;margin:0}.loop-control.enabled{color:#31562f;background:#e9f0df}.score-paper{background:#fcfcf7;border:1px solid #e1e4d8;border-radius:9px;overflow:hidden}.score-toolbar{justify-content:space-between;align-items:center;gap:12px;min-height:50px;padding:13px 15px 3px;display:flex}.range-actions{flex-wrap:wrap;align-items:center;gap:13px;display:flex}.selection-pill{color:#426537;background:#e6efdb;border-radius:6px;padding:7px 10px;font-size:12px}.selection-pill span{margin-left:7px;font-size:16px}.whole-label{color:#65715c;font-size:12px}.select-range-button{color:#597450;padding:7px 0;font-size:12px}.select-range-button.active{color:#8b5819}.number-toggle{color:#52664b;white-space:nowrap;cursor:pointer;align-items:center;gap:9px;min-height:32px;font-size:12px;display:flex;position:relative}.number-toggle input{opacity:0;cursor:pointer;z-index:2;width:34px;height:24px;position:absolute;right:0}.switch-track{background:#9da692;border-radius:20px;width:34px;height:19px;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:13px;height:13px;transition:transform .15s;position:absolute;top:3px;left:3px}.number-toggle input:checked+.switch-track{background:var(--green)}.number-toggle input:checked+.switch-track:after{transform:translate(15px)}.number-toggle input:focus-visible+.switch-track{outline-offset:3px;outline:3px solid #b16e30}.score-caption{color:#637157;justify-content:space-between;align-items:center;gap:15px;padding:5px 16px 7px;font-size:11px;line-height:1.6;display:flex}.score-caption>span:first-child{color:#405c3c;font-family:Georgia,serif;font-size:13px}.score-viewport{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#b6c3a8 #f3f5ed;background:#fffffa;border-top:1px solid #edf0e6;max-height:310px;position:relative;overflow:auto}.score-viewport.grand-score{max-height:380px}.score-stage{isolation:isolate;position:relative}.engraving{z-index:1;pointer-events:none;position:absolute;top:0;left:0}.engraving svg{max-width:100%;height:auto}.measure-wash{z-index:0;pointer-events:none;border:1px solid #0000;border-radius:5px;position:absolute}.measure-wash.selected{background:#eff4e8;border-color:#c9dbb6}.measure-wash.selection-anchor{background:#f5ecd7;border-color:#cda45b}.measure-select{z-index:4;color:#687b5c;border-radius:4px;min-width:30px;min-height:25px;padding:1px 6px;font-size:11px;line-height:20px;position:absolute}.measure-select:hover,.measure-select:focus-visible{background:#dae8c8}.measure-select.choosing{color:#7b5720;background:#f2e4c4;outline:1px dashed #ad803d}.score-note-target{z-index:3;background:0 0;border-radius:10px;width:30px;height:43px;padding:0;position:absolute}.score-note-target:hover{background:#6c925422}.score-note-target.left:hover{background:#b6883726}.score-note-target.current{background:#6c92540d}.score-note-target.current.left{background:#b6883712}.engraving .note-active-right,.engraving .note-active-right *{fill:#4f8c44!important;stroke:#4f8c44!important}.engraving .note-active-left,.engraving .note-active-left *{fill:#b17b20!important;stroke:#b17b20!important}.score-playhead{z-index:2;pointer-events:none;opacity:.85;background:#669451;width:1px;position:absolute}.numbered-note{text-align:center;z-index:2;color:#3e5636;pointer-events:none;width:24px;height:23px;font-family:Georgia,Times New Roman,serif;font-size:17px;line-height:20px;position:absolute}.numbered-note.current{color:#3e7935;font-weight:700}.numbered-note.current.left{color:#956713}.numbered-note span{position:relative}.eighth-number{border-bottom:1.5px solid;padding-bottom:2px}.duration-dot{margin-left:2px;font-style:normal;position:absolute;top:-1px;left:100%}.octave-dot{font-size:22px;font-style:normal;line-height:10px;position:absolute;left:9px}.octave-dot.below{top:19px}.octave-dot.above{top:-8px}.number-extension{font-size:16px;font-style:normal;position:absolute;top:0}.score-error,.score-loading{color:#637555;padding:25px;font-size:14px;line-height:1.7}.score-error{color:#8b512c}.now-playing{justify-content:space-between;align-items:center;gap:15px;min-height:43px;margin:18px 0 12px;display:flex}.hand-hints{flex-wrap:wrap;align-items:center;gap:13px;display:flex}.hand-hint{align-items:center;gap:7px;font-size:15px;font-weight:500;display:inline-flex}.hand-hint i{background:#639354;border-radius:50%;flex:none;width:10px;height:10px}.hand-hint.left i{background:#cf9a36}.note-prompt strong{font-size:16px;font-weight:550}.note-prompt small{color:#607353;margin-top:5px;font-size:12px;line-height:1.75;display:block}.inline-stop{white-space:nowrap;border:1px solid #ccd6c1;border-radius:6px;padding:8px 12px;font-size:12px}.piano-scroll{padding-bottom:7px;overflow-x:auto}.piano{background:#293e2c;border:1px solid #233c28;border-top-width:6px;border-radius:3px 3px 7px 7px;min-width:238px;height:153px;display:flex;position:relative;overflow:hidden;box-shadow:0 5px #d3d7c8}.white-key{background:linear-gradient(#fffefa,#fffffa 80%,#f2f2e6);border-right:1px solid #b7bfae;border-radius:0 0 5px 5px;flex-direction:column;flex:1;justify-content:end;align-items:center;gap:6px;min-width:0;padding:0 0 10px;display:flex;position:relative;box-shadow:inset 0 -4px #e3e5d7}.white-key:last-of-type{border-right:0}.white-key:disabled{opacity:1}.white-key.expected{background:linear-gradient(#a4c58c,#b7d69f 82%,#a2be88);box-shadow:inset 0 -4px #749b57}.white-key.expected.left{background:linear-gradient(#e6be6c,#f3d48a 85%,#e4ba60);box-shadow:inset 0 -4px #bd913b}.white-key.pressed,.white-key:active{filter:brightness(.94);transform:translateY(2px)}.key-pitch{color:#385333;white-space:nowrap;font-size:13px}.white-key kbd{color:#657459;font-family:inherit;font-size:10px}.finger-dot{color:#fff;white-space:nowrap;background:#355e2c;border-radius:7px;padding:3px 6px;font-size:13px;position:absolute;top:63%;transform:translateY(-25px)}.finger-dot small{margin-left:1px;font-size:9px}.white-key.left .finger-dot{background:#82591f}.black-key{z-index:2;pointer-events:auto;background:linear-gradient(90deg,#182a1e,#374938 75%,#17291c);border-bottom:5px solid #16251a;border-radius:0 0 4px 4px;height:57%;position:absolute;top:0;transform:translate(-50%);box-shadow:1px 3px 2px #0004}.two-octaves .piano{min-width:336px}.two-octaves .finger-dot{padding:3px 4px;font-size:11px}.keyboard-caption{color:#66745b;justify-content:space-between;gap:10px;margin-top:10px;font-size:11px;line-height:1.7;display:flex}.keyboard-caption i{padding:0 6px;font-style:normal}.lesson-bottom{border-top:1px solid #e0e6d6;justify-content:space-between;align-items:center;gap:16px;min-height:51px;margin-top:19px;padding:15px 0 0;font-size:13px;display:flex}.lesson-bottom>.text-button{margin-left:auto}.next-phrase{background:var(--green);color:#fffefa;border-radius:7px;padding:10px 18px;font-size:13px}.completion-panel{background:#edf3e3;border:1px solid #d1dfc0;border-radius:8px;justify-content:space-between;align-items:center;gap:15px;margin-top:17px;padding:16px;display:flex}.completion-panel strong{font-size:15px;line-height:1.7}.completion-panel p{color:#617750;font-size:12px;line-height:1.8}.completion-panel button{white-space:nowrap;flex:none;padding:10px 13px;font-size:12px}.message{color:#637452;min-height:21px;margin-top:10px;font-size:12px;line-height:1.8}.below-workspace{max-width:750px;margin:auto;padding-top:18px}.device-choice{justify-content:center;gap:18px;display:flex}.device-choice>button{color:#6b7860;border-bottom:2px solid #0000;padding:7px 10px;font-size:13px}.device-choice>button[aria-pressed=true]{color:#315333;border-bottom-color:#78965e}.mode-hint{text-align:center;color:#6a785f;margin:11px 0 15px;font-size:12px;line-height:1.8}.hand-guide{color:#59704f;background:#f0f2e7;border:1px solid #dce1d3;border-radius:8px;padding:13px 17px;font-size:13px}.hand-guide summary{cursor:pointer}.hand-guide p{margin-top:12px;font-size:13px;line-height:1.9}.storage-warning{color:#745326;background:#fff0d3;border-radius:8px;max-width:1080px;margin:20px auto 0;padding:15px 20px;font-size:13px;line-height:1.7}.about-page{max-width:770px;margin:auto;padding:42px 24px;line-height:1.9}.about-page h1{margin:25px 0;font:600 34px/1.5 Songti SC,Georgia,serif}.about-page h2{margin:30px 0 12px;font-size:21px;font-weight:550}.about-page p,.about-page li{color:#53664f;margin:10px 0;font-size:15px}@media (width<=1160px){.song-header,.studio,.song-footer{margin-left:30px;margin-right:30px}.song-home{padding-left:25px;padding-right:25px}.storage-warning{margin-left:30px;margin-right:30px}}@media (width<=760px){.song-header{height:68px;margin:0 18px}.brand strong{font-size:22px}.brand-mark{font-size:27px}.brand-tag{font-size:11px}.song-home{padding:31px 18px 0}.home-intro{margin-bottom:24px}.home-intro h1{font-size:30px}.home-intro p{font-size:14px}.eyebrow{letter-spacing:1.4px;font-size:9px}.song-card{gap:16px;padding:12px}.card-cover{flex-basis:109px;height:139px}.card-cover svg{transform:scale(1.8)}.song-title-row h2{font-size:22px}.song-title-row{flex-wrap:wrap;gap:4px}.song-meta{font-size:12px}.song-description{display:none}.card-actions{gap:8px;margin-top:17px}.card-actions .primary,.preview-button{min-height:39px;padding:9px 15px;font-size:12px}.played-badge{font-size:10px}.home-footnote{font-size:12px}.song-footer{flex-wrap:wrap;margin:28px 18px 0;padding:22px 0;font-size:10px}.studio{margin:0 13px;padding-top:18px}.studio-title{grid-template-columns:1fr auto 1fr;gap:9px}.studio-title h1{letter-spacing:0;font-size:24px}.back-button{font-size:12px}.key-badge{padding:4px 8px;font-size:11px}.version-switch{max-width:290px;margin:16px auto 20px}.version-switch>button{padding:9px;font-size:13px}.music-workspace{border-radius:10px;padding:15px 12px 8px;scroll-margin-top:6px}.transport{flex-wrap:wrap;gap:10px;margin-bottom:14px}.play-actions{gap:9px}.transport .primary{min-width:130px;padding:10px 15px;font-size:13px}.transport .secondary{padding:10px 16px;font-size:13px}.play-options{gap:6px}.tempo-label select{padding:9px 21px 9px 9px;font-size:12px}.loop-control{padding:7px 0;font-size:12px}.loop-control input{width:13px;height:13px}.play-actions .text-button{font-size:11px}.score-toolbar{gap:5px;padding:10px 9px 3px}.range-actions{flex-wrap:wrap;gap:8px}.selection-pill{padding:5px 7px;font-size:11px}.selection-pill span{margin-left:3px;font-size:14px}.select-range-button{padding:6px 0;font-size:11px}.number-toggle{gap:5px;font-size:11px}.switch-track{width:30px;height:18px}.switch-track:after{width:12px;height:12px}.number-toggle input:checked+.switch-track:after{transform:translate(12px)}.score-caption{gap:6px;padding:4px 10px 6px;font-size:10px}.score-caption>span:first-child{white-space:nowrap;font-size:11px}.score-viewport{max-height:290px}.score-viewport.grand-score{max-height:300px}.now-playing{gap:8px;min-height:39px;margin:14px 0 10px}.hand-hints{gap:8px}.hand-hint{gap:5px;font-size:12px}.hand-hint i{width:8px;height:8px}.note-prompt small{font-size:11px;line-height:1.7}.inline-stop{flex:none;padding:8px;font-size:11px}.piano{height:134px}.key-pitch{font-size:12px}.white-key kbd{display:none}.finger-dot{font-size:12px;top:67%}.computer-keys{display:none}.keyboard-caption{margin-top:7px;font-size:10px}.two-octaves .key-pitch{font-size:9px}.two-octaves .finger-dot{padding:2px;font-size:10px}.two-octaves .finger-dot small{font-size:8px}.lesson-bottom{gap:7px;margin-top:13px;padding-top:12px;font-size:12px}.lesson-bottom .text-button{font-size:12px}.next-phrase{padding:9px 12px;font-size:12px}.completion-panel{flex-wrap:wrap;padding:13px}.completion-panel strong{font-size:14px}.completion-panel p{font-size:11px}.message{font-size:12px}.device-choice{gap:13px}.device-choice>button{font-size:12px}.mode-hint{font-size:11px}.hand-guide{font-size:12px}.hand-guide p{font-size:13px}.storage-warning{margin:15px;font-size:12px}}@media (width<=420px){.card-cover{flex-basis:96px;height:128px}.card-body .song-title-row h2{font-size:20px}.card-actions .primary,.preview-button{padding:8px 11px}.studio-title h1{font-size:22px}.transport{row-gap:10px}.play-options{margin-left:auto}.play-actions{flex:1}.transport .primary{flex:1;min-width:123px}.score-toolbar{align-items:flex-start}.range-actions{max-width:200px}.number-toggle{padding-top:2px}.piano-scroll{margin-left:-2px;margin-right:-2px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.transport .secondary{white-space:nowrap;flex:none;min-width:82px}.play-options{flex:none}@media (width<=760px){.play-actions{flex:1;min-width:220px}.transport .primary{flex:1}.play-options{margin-left:auto}.score-caption{font-size:11px}}.library-controls{justify-content:space-between;align-items:center;gap:18px;margin:24px 0;display:flex}.library-controls nav{flex-wrap:wrap;gap:5px;display:flex}.library-controls nav button{color:#53664d;border-radius:20px;padding:9px 14px;font-size:13px}.library-controls nav button[aria-pressed=true]{color:#294b2d;background:#e1e9d7}.song-search input{font:inherit;color:#354e34;background:#fffefa;border:1px solid #cad3be;border-radius:8px;width:210px;padding:11px 13px;font-size:13px}.empty-library{text-align:center;color:#52634b;padding:35px}.song-grid{gap:15px}.arrangement-picker{max-width:800px;margin:23px auto 24px}.arrangement-heading{color:#405b3a;justify-content:space-between;gap:12px;margin:0 3px 10px;font-size:13px;display:flex}.arrangement-heading small{color:#63725a;font-size:12px}.version-switch{background:#f0f2e8;border-color:#d4dcc8;border-radius:12px;gap:4px;max-width:none;margin:0;padding:4px}.version-switch>button{white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:9px;min-height:48px;font-size:14px;display:flex;position:relative}.version-switch>button .level-number{border:1px solid #aabb98;border-radius:50%;flex:none;justify-content:center;align-items:center;width:23px;height:23px;font:13px Georgia,serif;display:inline-flex}.version-switch>button[aria-pressed=true] .level-number{border-color:#ffffff70}.version-switch>button i{font-size:11px;font-style:normal}.arrangement-description{color:#506648;min-height:23px;margin:11px 4px 0;font-size:13px;line-height:1.8}.transport{flex-wrap:wrap;align-items:flex-start}.play-options{flex-wrap:wrap;gap:10px;margin-left:auto}.tempo-label,.key-control{white-space:nowrap;color:#53694a;align-items:center;gap:7px;font-size:12px;display:flex}.tempo-label select,.key-control select{font:inherit;color:#3d5838;cursor:pointer;background:#fffefa;border:1px solid #cbd1c2;border-radius:7px;max-width:180px;min-height:38px;padding:9px 24px 9px 9px}.sixteenth-number{border-bottom:3px double;padding-bottom:2px}.number-accidental{font-size:12px;font-style:normal;position:absolute;top:-2px;right:100%}.number-tie{font-size:17px;font-style:normal;position:absolute;top:-13px;left:-12px}.numbered-note .octave-dot{text-align:center;width:24px;left:0}.black-key{color:#fff;cursor:pointer;flex-direction:column;justify-content:flex-end;align-items:center;gap:3px;padding:0 1px 7px;display:flex}.black-key .key-pitch{color:#edf3e9;font-size:10px}.black-key kbd{color:#e3eadf;font:9px inherit}.black-key:disabled{opacity:1}.black-key.expected{background:linear-gradient(#3c6d36,#558347);border-bottom-color:#355a2d}.black-key.expected.left{background:linear-gradient(#805e25,#a47a32);border-bottom-color:#634415}.black-key .finger-dot{color:#294525;background:#e1edd5;padding:2px 3px;font-size:10px;top:32px;transform:none}.black-key.left .finger-dot{color:#674512;background:#f7dfab}.black-key.pressed{filter:brightness(1.4)}.black-key:focus-visible{outline-offset:-3px;outline:3px solid #d99b33}.piano-scroll{scroll-behavior:auto}.white-key kbd{min-height:10px}.song-card:focus-within{outline-offset:3px}.rest-number{color:#6a755e}@media (width>=1100px){.song-home{max-width:1080px}.song-grid{grid-template-columns:1fr 1fr;display:grid}.song-card{gap:18px;padding:15px}.card-cover{flex-basis:120px;height:155px}.song-title-row h2{font-size:22px}.song-title-row{flex-wrap:wrap;gap:6px}.card-actions .primary,.card-actions .preview-button{padding:9px 14px}.song-description{min-height:42px}}@media (width<=760px){.library-controls{flex-wrap:wrap;gap:13px;margin:19px 0}.library-controls nav{gap:2px}.library-controls nav button{padding:8px 11px;font-size:12px}.song-search{width:100%}.song-search input{box-sizing:border-box;width:100%}.arrangement-picker{margin:18px 0}.arrangement-heading{flex-wrap:wrap;gap:4px;font-size:12px}.arrangement-heading small{font-size:11px}.version-switch{border-radius:11px;grid-template-columns:1fr 1fr;max-width:none;margin:0;display:grid}.version-switch>button{justify-content:flex-start;min-height:42px;padding:8px 12px;font-size:13px}.version-switch>button .level-number{width:21px;height:21px}.arrangement-description{min-height:42px;margin:9px 3px 0;font-size:12px;line-height:1.75}.play-options{justify-content:space-between;gap:7px;width:100%;margin-left:0}.tempo-label,.key-control{gap:5px;font-size:11px}.tempo-label select,.key-control select{max-width:142px;padding:8px 17px 8px 6px;font-size:11px}.loop-control{font-size:11px}.score-caption{flex-wrap:wrap;align-items:flex-start;gap:3px}.score-caption>span:first-child{white-space:normal}.studio-title{grid-template-columns:auto 1fr}.studio-title h1{text-align:right;font-size:23px}.studio-title .key-badge{grid-column:2;margin-top:-8px}.black-key .key-pitch{font-size:9px}.black-key kbd{display:none}.black-key .finger-dot{top:19px}.two-octaves .black-key .finger-dot{font-size:10px}.hand-hint{font-size:12px}.keyboard-caption{font-size:10px}.score-viewport.grand-score{max-height:400px}}@media (width<=380px){.play-options{justify-content:flex-start}.loop-control{margin-left:auto}.tempo-label select,.key-control select{max-width:128px}.key-control{max-width:180px}}.rest-duration{color:#637157;width:36px;font:9px/11px -apple-system,sans-serif;position:absolute;top:18px;left:-6px}.numbered-note .sr-only{position:absolute}.brand-name{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.brand-name strong{letter-spacing:.2px;font-size:23px;line-height:1.15}.brand-name small{letter-spacing:2px;color:var(--muted);font-size:12px;line-height:1.4}@media (width<=760px){.brand-name strong{font-size:20px}.brand-name small{font-size:11px}}@media (width<=600px){.song-header .brand-tag{display:none}}.instrument-guitar{--guitar-ink:#263b36;--guitar-muted:#52645f;--guitar-accent:#22664e;--guitar-line:#b9c9c1;box-sizing:border-box;border:1px solid var(--guitar-line);min-width:0;color:var(--guitar-ink);font:inherit;background:#f8faf7;border-radius:1.1rem;padding:1.25rem;line-height:1.65}.instrument-guitar *{box-sizing:border-box}.instrument-guitar .guitar-aid-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.instrument-guitar h3{color:var(--guitar-ink);margin:0;font-size:1.3rem}.instrument-guitar h4{color:var(--guitar-ink);margin:0 0 .5rem;font-size:1.15rem}.instrument-guitar p{margin:.65rem 0}.instrument-guitar .guitar-eyebrow{color:var(--guitar-muted);margin:0 0 .2rem;font-size:.8rem}.instrument-guitar .guitar-badge{color:#244b3c;background:#e3eee7;border-radius:2rem;padding:.3rem .7rem;font-size:.85rem;font-weight:650}.instrument-guitar .guitar-intro{font-size:.92rem}.instrument-guitar .guitar-note{color:var(--guitar-muted);font-size:.84rem}.instrument-guitar button{min-height:44px;font:inherit;color:var(--guitar-ink);cursor:pointer;box-shadow:none;background:#fff;border:1px solid #a4b7ad;border-radius:.55rem;padding:.55rem .75rem}.instrument-guitar button:hover:not(:disabled){border-color:var(--guitar-accent);background:#edf4ef}.instrument-guitar button:disabled{cursor:default;opacity:.58}.instrument-guitar button:focus-visible,.instrument-guitar summary:focus-visible,.instrument-guitar [tabindex]:focus-visible{outline-offset:3px;outline:3px solid #266fc0}.instrument-guitar .guitar-rhythm{border-left:4px solid var(--guitar-accent);background:#eaf2ec;padding:.55rem .85rem;font-weight:600}.instrument-guitar .guitar-chord-current{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:1.5rem;padding:.5rem 0;display:grid}.instrument-guitar .guitar-current-diagram>strong{text-align:center;font-size:1.8rem;line-height:1.2;display:block}.instrument-guitar .guitar-chord-diagram{width:100%;max-width:230px;height:auto;margin:auto;display:block}.instrument-guitar .guitar-chord-diagram line{stroke:#52645f}.instrument-guitar .guitar-chord-diagram text{fill:var(--guitar-ink);font:13px sans-serif}.instrument-guitar .guitar-chord-diagram .guitar-string-mark{font-size:23px}.instrument-guitar .guitar-chord-diagram circle{fill:var(--guitar-accent)}.instrument-guitar .guitar-chord-diagram .guitar-dot-finger{fill:#fff;font-size:14px;font-weight:700}.instrument-guitar .guitar-next{font-size:.9rem;font-weight:600}.instrument-guitar .guitar-tone-list{flex-wrap:wrap;gap:.4rem;display:flex}.instrument-guitar .guitar-tone{text-align:left;font-size:.83rem}.instrument-guitar .guitar-chord-library{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:1rem;display:grid}.instrument-guitar figure{border:1px solid var(--guitar-line);background:#fff;border-radius:.75rem;margin:0;padding:.75rem}.instrument-guitar figcaption{text-align:center;font-weight:700}.instrument-guitar figure p{font-size:.85rem}.instrument-guitar .guitar-current-tone{background:#e3eee7;border-radius:.75rem;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.8rem 1rem;display:flex}.instrument-guitar .guitar-current-tone span{white-space:nowrap;font-size:.88rem}.instrument-guitar .guitar-tab-scroll{max-width:100%;padding:.3rem 0;overflow-x:auto}.instrument-guitar .guitar-tab{align-items:stretch;width:max-content;min-width:100%;display:flex}.instrument-guitar .guitar-tab-labels{color:var(--guitar-muted);flex:0 0 40px;grid-template-rows:26px repeat(6,24px) 30px;font-size:.8rem;display:grid}.instrument-guitar .guitar-tab-labels span{justify-content:center;align-items:center;display:flex}.instrument-guitar .guitar-tab-note{border:2px solid #0000;border-radius:.3rem;flex-basis:52px;grid-template-rows:26px repeat(6,24px) 30px;min-width:52px;margin:0 1px;padding:0;font-size:.82rem;display:grid}.instrument-guitar .guitar-tab-note[aria-current=step]{border-color:var(--guitar-accent);background:#e3eee7}.instrument-guitar .guitar-tab-line{background:linear-gradient(#0000 47%,#a4b7ad 47% 53%,#0000 53%);justify-content:center;align-items:center;display:flex}.instrument-guitar .guitar-tab-line b{width:23px;height:23px;color:var(--guitar-accent);border:1px solid var(--guitar-accent);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:.95rem;display:flex}.instrument-guitar .guitar-tab-beat,.instrument-guitar .guitar-tab-duration{white-space:nowrap;justify-content:center;align-items:center;display:flex}.instrument-guitar .guitar-details{border-top:1px solid var(--guitar-line);margin-top:.8rem;padding-top:.65rem}.instrument-guitar summary{cursor:pointer;min-height:44px;color:var(--guitar-ink);padding:.45rem 0;font-weight:600}.instrument-guitar .guitar-score-table-wrap{max-height:340px;margin:.5rem 0;overflow-x:auto}.instrument-guitar .guitar-score-table{border-collapse:collapse;text-align:left;background:#fff;width:100%;min-width:330px;font-size:.86rem}.instrument-guitar th,.instrument-guitar td{border-bottom:1px solid var(--guitar-line);vertical-align:top;padding:.6rem .7rem}.instrument-guitar thead th{z-index:1;background:#e3eee7;position:sticky;top:0}.instrument-guitar tbody th{white-space:nowrap;font-weight:500}.instrument-guitar tr[aria-current=step]{background:#e3eee7}.instrument-guitar .guitar-tuning{flex-wrap:wrap;gap:.5rem;display:flex}.instrument-guitar .guitar-idle{background:#eaf2ec;border-radius:.7rem;padding:1rem}@media (width<=560px){.instrument-guitar{padding:.85rem}.instrument-guitar .guitar-chord-current{grid-template-columns:minmax(0,1fr);gap:.5rem}.instrument-guitar .guitar-current-diagram{width:190px;margin:auto}.instrument-guitar .guitar-chord-library{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.instrument-guitar .guitar-tone{width:100%}.instrument-guitar .guitar-current-tone{padding:.65rem}}.instrument-guitar.guitar-compact{border-radius:12px;padding:16px}.instrument-guitar .guitar-compact-title{flex-wrap:wrap;align-items:center;gap:5px 12px;font-size:14px;font-weight:650;display:flex}.instrument-guitar .guitar-compact-title small{color:var(--guitar-muted);font-size:11px;font-weight:400}.instrument-guitar .guitar-compact-melody{margin-top:16px}.instrument-guitar .guitar-compact-melody strong{font-size:24px;line-height:1.4;display:block}.instrument-guitar .guitar-compact-melody span{margin-top:5px;font-size:13px;display:block}.instrument-guitar .guitar-compact-next{border-top:1px solid var(--guitar-line);padding-top:12px;font-size:12px;line-height:1.7}.instrument-guitar .guitar-compact-chord{flex-direction:column;margin-top:10px;display:flex}.instrument-guitar .guitar-compact-diagram{width:190px;margin:auto}.instrument-guitar .guitar-compact-diagram>strong{text-align:center;font-size:24px;line-height:1.1;display:block}.instrument-guitar .guitar-compact-action{font-size:13px}.instrument-guitar .guitar-compact-rhythm{color:var(--guitar-accent);font-weight:650}@media (width<=760px),(width<=1000px) and (height<=500px){.instrument-guitar.guitar-compact{padding:10px 12px}.instrument-guitar .guitar-compact-melody{margin-top:6px}.instrument-guitar .guitar-compact-melody>div{flex-wrap:wrap;align-items:baseline;gap:5px 12px;display:flex}.instrument-guitar .guitar-compact-melody strong{font-size:20px}.instrument-guitar .guitar-compact-melody span{margin:0;font-size:12px}.instrument-guitar .guitar-compact-next{margin:7px 0 0;padding-top:6px;font-size:11px}.instrument-guitar .guitar-compact-chord{grid-template-columns:130px minmax(0,1fr);gap:10px;margin-top:7px;display:grid}.instrument-guitar .guitar-compact-diagram{width:130px}.instrument-guitar .guitar-compact-diagram>strong{font-size:19px}.instrument-guitar .guitar-compact-action{font-size:12px}.instrument-guitar .guitar-compact-action p{margin:5px 0}}.instrument-violin{color:#292c2a;isolation:isolate;background:#fffdf8;border:1px solid #d4d9cf;border-radius:20px;margin-block:20px;padding:clamp(16px,3vw,28px);line-height:1.6}.instrument-violin .violin-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.instrument-violin .violin-heading h3{color:#292c2a;margin:2px 0 0;font-size:1.25rem}.instrument-violin .violin-eyebrow{color:#515c50;letter-spacing:.05em;margin:0;font-size:.8rem;font-weight:600}.instrument-violin .violin-key{color:#334637;background:#e9eddf;border-radius:20px;padding:5px 12px;font-size:.85rem}.instrument-violin .violin-layout{grid-template-columns:minmax(230px,360px) minmax(180px,1fr);gap:clamp(20px,4vw,44px);display:grid}.instrument-violin .violin-diagram{min-width:0}.instrument-violin .violin-direction{color:#515c50;margin:0 0 8px;font-size:.75rem}.instrument-violin .violin-board{width:100%;max-width:360px;height:420px;margin-inline:auto;position:relative}.instrument-violin .violin-neck{background:#343d36;border-radius:4px 4px 24px 24px;position:absolute;inset:21% 4% 9%}.instrument-violin .violin-nut{background:#d4c5a9;border-radius:2px;height:5px;position:absolute;top:21%;left:4%;right:4%}.instrument-violin .violin-string{left:var(--violin-x);height:100%;position:absolute;top:0}.instrument-violin .violin-string-name{white-space:nowrap;align-items:baseline;gap:3px;font-size:.95rem;font-weight:700;display:flex;position:absolute;top:0;transform:translate(-50%)}.instrument-violin .violin-string-name small{color:#515c50;font-size:.68rem;font-weight:400}.instrument-violin .violin-string-line{width:var(--violin-thickness);background:#c6cfbf;position:absolute;top:20%;bottom:11%;transform:translate(-50%)}.instrument-violin .violin-string.is-current .violin-string-line{background:#fff2b9;box-shadow:0 0 0 1px #fff2b9}.instrument-violin .violin-point{color:#273b30;cursor:pointer;background:#fbfaf4;border:2px solid #b7c1ad;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;width:50px;min-width:44px;height:44px;padding:2px;font-family:inherit;line-height:1.05;display:flex;position:absolute;left:0;transform:translate(-50%,-50%);box-shadow:0 2px 5px #0002}.instrument-violin .violin-point strong{color:inherit;font-size:1rem;font-weight:700}.instrument-violin .violin-point small{color:inherit;margin-top:2px;font-size:.66rem}.instrument-violin .violin-point.is-open{border-color:#7b8870}.instrument-violin .violin-point:hover:not(:disabled){background:#eef1e4}.instrument-violin .violin-point.is-current{color:#1e3527;background:#fff2b9;border-color:#263d2f;outline:3px solid #fff2b9}.instrument-violin .violin-point.is-preview{box-shadow:0 0 0 4px #9fb79b}.instrument-violin .violin-point:focus-visible{outline-offset:3px;outline:3px solid #bb480d}.instrument-violin .violin-point:disabled{cursor:default;opacity:1}.instrument-violin .violin-bridge-direction{text-align:center;color:#515c50;font-size:.75rem;position:absolute;bottom:0;left:0;right:0}.instrument-violin .violin-caption{color:#515c50;margin:8px 0 0;font-size:.75rem}.instrument-violin .violin-guidance{min-width:0}.instrument-violin .violin-current{box-sizing:border-box;background:#edf1e5;border:1px solid #c4cfb7;border-radius:14px;min-height:105px;padding:16px 18px}.instrument-violin .violin-current-note{flex-wrap:wrap;align-items:baseline;gap:3px 12px;display:flex}.instrument-violin .violin-current-note>strong{color:#253e2e;font-size:2rem;line-height:1.4}.instrument-violin .violin-current-note>span{font-size:1rem;font-weight:600}.instrument-violin .violin-current-note>small{color:#41513c;flex-basis:100%;font-size:.82rem}.instrument-violin .violin-start{margin:8px 0 0;font-size:.95rem}.instrument-violin .violin-legend{margin:20px 0 0}.instrument-violin .violin-legend>div{border-bottom:1px solid #e2e5db;padding:11px 0}.instrument-violin .violin-legend dt{font-size:.85rem;font-weight:600}.instrument-violin .violin-legend dd{color:#515c50;margin:2px 0 0;font-size:.82rem}.instrument-violin .violin-listen-note{color:#515c50;margin:18px 0 0;font-size:.78rem}@media (width<=560px){.instrument-violin .violin-layout{grid-template-columns:1fr;gap:20px}.instrument-violin .violin-heading{align-items:flex-start}.instrument-violin .violin-current{min-height:0}}.instrument-violin.violin-compact{border-radius:12px;margin:0;padding:16px}.instrument-violin .violin-compact-title{justify-content:space-between;gap:10px;font-size:14px;font-weight:650;display:flex}.instrument-violin .violin-compact-title span{color:#515c50;font-size:12px;font-weight:400}.instrument-violin .violin-compact-grid{flex-direction:column;gap:8px;margin-top:12px;display:flex}.instrument-violin .violin-compact-current>strong{margin-right:12px;font-size:30px;line-height:1.3}.instrument-violin .violin-compact-current>b{font-size:14px}.instrument-violin .violin-compact-current p{color:#41513c;margin:4px 0 0;font-size:12px}.instrument-violin .violin-compact-board{width:170px;height:198px;margin:auto;display:block}.instrument-violin .violin-compact-board text{fill:#254537;font:600 12px sans-serif}.instrument-violin .violin-compact-next{color:#41513c;border-top:1px solid #d4d9cf;margin:9px 0 0;padding-top:10px;font-size:12px}@media (width<=760px),(width<=1000px) and (height<=500px){.instrument-violin.violin-compact{padding:10px 12px}.instrument-violin .violin-compact-grid{grid-template-columns:minmax(0,1fr) 84px;align-items:center;gap:7px;margin-top:4px;display:grid}.instrument-violin .violin-compact-current>strong{font-size:25px}.instrument-violin .violin-compact-current>b{font-size:13px;display:block}.instrument-violin .violin-compact-current p{font-size:11px}.instrument-violin .violin-compact-board{width:84px;height:98px}.instrument-violin .violin-compact-next{margin-top:4px;padding-top:5px;font-size:11px}}
