pepperscore 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/LICENSE +26 -12
  3. package/README.md +97 -8
  4. package/dist/THIRD_PARTY_NOTICES.txt +1222 -0
  5. package/dist/assets/{import.worker-D0XfuAHu.js → import.worker-nfqQ5M0Y.js} +2 -2
  6. package/dist/assets/verovio.worker-DGik-H4a.js +7 -0
  7. package/dist/audio.d.ts +24 -0
  8. package/dist/audio.js +198 -0
  9. package/dist/audio.js.map +1 -0
  10. package/dist/components/PepperScore.d.ts +89 -1
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index.js +2586 -3246
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/chrome.d.ts +5 -2
  15. package/dist/lib/file-state.d.ts +17 -4
  16. package/dist/lib/header-controls.d.ts +7 -3
  17. package/dist/lib/hit-test.d.ts +18 -0
  18. package/dist/lib/instruments.d.ts +82 -0
  19. package/dist/lib/metronome.d.ts +33 -0
  20. package/dist/lib/notation/mei-tab.d.ts +51 -0
  21. package/dist/lib/notation/mei-view.d.ts +8 -0
  22. package/dist/lib/playback/timeline.d.ts +4 -1
  23. package/dist/lib/prefs.d.ts +50 -0
  24. package/dist/lib/render.d.ts +36 -1
  25. package/dist/lib/score.d.ts +7 -0
  26. package/dist/lib/sound-players.d.ts +9 -1
  27. package/dist/lib/tab/fret-assign.d.ts +53 -0
  28. package/dist/lib/tab/tab-parts.d.ts +58 -0
  29. package/dist/lib/verovio-protocol.d.ts +15 -0
  30. package/dist/lib/verovio-runtime.d.ts +9 -1
  31. package/dist/runtime-files.d.ts +15 -0
  32. package/dist/{sf2-player-CRlOJDhD.js → sf2-player-oWC6yrUH.js} +28 -6
  33. package/dist/sf2-player-oWC6yrUH.js.map +1 -0
  34. package/dist/sound-players-DdLBBZaR.js +1172 -0
  35. package/dist/sound-players-DdLBBZaR.js.map +1 -0
  36. package/dist/style.css +1 -1
  37. package/dist/verovio/LICENSE +858 -0
  38. package/dist/verovio/verovio-module.mjs +0 -0
  39. package/dist/verovio/verovio.mjs +397 -0
  40. package/package.json +6 -1
  41. package/dist/assets/verovio.worker-DkHQmOsT.js +0 -19034
  42. package/dist/sf2-player-CRlOJDhD.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sound-players-DdLBBZaR.js","names":["source","programNumbering","icons","\"piano\"","\"guitar\"","\"bassguitar\"","\"flute\"","\"clarinet\"","\"trumpet\"","\"trombone\"","\"violin\"","\"viola\"","\"cello\"","\"microphone\"","programs","\"program\"","\"soundfont\"","\"icon\"","\"localPack\"","\"family\"","gm_soundfont_manifest_default","\"id\"","\"label\"","shared","getSharedAudio","context","master","RESUME_TIMEOUT_MS","resumeAudio","timer","resolve","owner","claimPlayback","next","releasePlayback","who","SOUNDS_VERSION","defaultAssetBaseUrl","pack","pageBase","resolveAssetBase","raw","base","page","assetUrl","path","packInfo","loadPackInfo","info","response","json","name","warnedBases","warnAssetBase","what","BUILTIN_FLUIDR3","BUILTIN_DRUMS","BUILTIN_SF2","claims","request","fallbackSf2Url","planSound","sources","item","fluidr3","planKey","plan","loadPlayers","loadFluidPlayer","loadSf2Player","loadNoteFilePlayer","addDrumFallback","kit","players","player","notes","note","drums","fallbackSf2","options"],"sources":["../src/lib/gm-soundfont-manifest.json","../src/lib/audio-engine.ts","../src/lib/assets.ts","../src/lib/sounds.ts","../src/lib/sound-players.ts"],"sourcesContent":["{\n \"version\": 1,\n \"source\": \"https://raw.githubusercontent.com/gleitz/midi-js-soundfonts/gh-pages/FluidR3_GM/names.json\",\n \"programNumbering\": \"GM 1-128\",\n \"icons\": {\n \"piano\": \"src/icons/piano.svg\",\n \"guitar\": \"src/icons/guitar.svg\",\n \"bassguitar\": \"src/icons/bassguitar.svg\",\n \"double-bass\": \"src/icons/double-bass.svg\",\n \"drum-kit\": \"src/icons/drum-kit.svg\",\n \"alto-saxophone\": \"src/icons/alto-saxophone.svg\",\n \"tenor-saxophone\": \"src/icons/tenor-saxophone.svg\",\n \"bari-saxophone\": \"src/icons/bari-saxophone.svg\",\n \"flute\": \"src/icons/flute.svg\",\n \"clarinet\": \"src/icons/clarinet.svg\",\n \"trumpet\": \"src/icons/trumpet.svg\",\n \"trombone\": \"src/icons/trombone.svg\",\n \"violin\": \"src/icons/violin.svg\",\n \"viola\": \"src/icons/viola.svg\",\n \"cello\": \"src/icons/cello.svg\",\n \"microphone\": \"src/icons/microphone.svg\"\n },\n \"programs\": [\n {\n \"program\": 1,\n \"soundfont\": \"acoustic_grand_piano\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/acoustic_grand_piano.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 2,\n \"soundfont\": \"bright_acoustic_piano\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/bright_acoustic_piano.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 3,\n \"soundfont\": \"electric_grand_piano\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/electric_grand_piano.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 4,\n \"soundfont\": \"honkytonk_piano\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/honkytonk_piano.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 5,\n \"soundfont\": \"electric_piano_1\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/electric_piano_1.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 6,\n \"soundfont\": \"electric_piano_2\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/electric_piano_2.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 7,\n \"soundfont\": \"harpsichord\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/harpsichord.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 8,\n \"soundfont\": \"clavinet\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/clavinet.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 9,\n \"soundfont\": \"celesta\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/celesta.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 10,\n \"soundfont\": \"glockenspiel\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/glockenspiel.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 11,\n \"soundfont\": \"music_box\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/music_box.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 12,\n \"soundfont\": \"vibraphone\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/vibraphone.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 13,\n \"soundfont\": \"marimba\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/marimba.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 14,\n \"soundfont\": \"xylophone\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/xylophone.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 15,\n \"soundfont\": \"tubular_bells\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/tubular_bells.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 16,\n \"soundfont\": \"dulcimer\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/dulcimer.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 17,\n \"soundfont\": \"drawbar_organ\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/drawbar_organ.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 18,\n \"soundfont\": \"percussive_organ\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/percussive_organ.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 19,\n \"soundfont\": \"rock_organ\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/rock_organ.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 20,\n \"soundfont\": \"church_organ\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/church_organ.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 21,\n \"soundfont\": \"reed_organ\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/reed_organ.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 22,\n \"soundfont\": \"accordion\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/accordion.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 23,\n \"soundfont\": \"harmonica\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/harmonica.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 24,\n \"soundfont\": \"tango_accordion\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/tango_accordion.json\",\n \"family\": \"Keyboard\"\n },\n {\n \"program\": 25,\n \"soundfont\": \"acoustic_guitar_nylon\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/acoustic_guitar_nylon.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 26,\n \"soundfont\": \"acoustic_guitar_steel\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/acoustic_guitar_steel.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 27,\n \"soundfont\": \"electric_guitar_jazz\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/electric_guitar_jazz.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 28,\n \"soundfont\": \"electric_guitar_clean\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/electric_guitar_clean.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 29,\n \"soundfont\": \"electric_guitar_muted\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/electric_guitar_muted.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 30,\n \"soundfont\": \"overdriven_guitar\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/overdriven_guitar.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 31,\n \"soundfont\": \"distortion_guitar\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/distortion_guitar.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 32,\n \"soundfont\": \"guitar_harmonics\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/guitar_harmonics.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 33,\n \"soundfont\": \"acoustic_bass\",\n \"icon\": \"double-bass\",\n \"localPack\": \"/soundfonts/fluidr3/acoustic_bass.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 34,\n \"soundfont\": \"electric_bass_finger\",\n \"icon\": \"bassguitar\",\n \"localPack\": \"/soundfonts/fluidr3/electric_bass_finger.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 35,\n \"soundfont\": \"electric_bass_pick\",\n \"icon\": \"bassguitar\",\n \"localPack\": \"/soundfonts/fluidr3/electric_bass_pick.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 36,\n \"soundfont\": \"fretless_bass\",\n \"icon\": \"bassguitar\",\n \"localPack\": \"/soundfonts/fluidr3/fretless_bass.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 37,\n \"soundfont\": \"slap_bass_1\",\n \"icon\": \"bassguitar\",\n \"localPack\": \"/soundfonts/fluidr3/slap_bass_1.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 38,\n \"soundfont\": \"slap_bass_2\",\n \"icon\": \"bassguitar\",\n \"localPack\": \"/soundfonts/fluidr3/slap_bass_2.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 39,\n \"soundfont\": \"synth_bass_1\",\n \"icon\": \"bassguitar\",\n \"localPack\": \"/soundfonts/fluidr3/synth_bass_1.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 40,\n \"soundfont\": \"synth_bass_2\",\n \"icon\": \"bassguitar\",\n \"localPack\": \"/soundfonts/fluidr3/synth_bass_2.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 41,\n \"soundfont\": \"violin\",\n \"icon\": \"violin\",\n \"localPack\": \"/soundfonts/fluidr3/violin.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 42,\n \"soundfont\": \"viola\",\n \"icon\": \"viola\",\n \"localPack\": \"/soundfonts/fluidr3/viola.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 43,\n \"soundfont\": \"cello\",\n \"icon\": \"cello\",\n \"localPack\": \"/soundfonts/fluidr3/cello.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 44,\n \"soundfont\": \"contrabass\",\n \"icon\": \"double-bass\",\n \"localPack\": \"/soundfonts/fluidr3/contrabass.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 45,\n \"soundfont\": \"tremolo_strings\",\n \"icon\": \"violin\",\n \"localPack\": \"/soundfonts/fluidr3/tremolo_strings.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 46,\n \"soundfont\": \"pizzicato_strings\",\n \"icon\": \"violin\",\n \"localPack\": \"/soundfonts/fluidr3/pizzicato_strings.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 47,\n \"soundfont\": \"orchestral_harp\",\n \"icon\": \"violin\",\n \"localPack\": \"/soundfonts/fluidr3/orchestral_harp.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 48,\n \"soundfont\": \"timpani\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/timpani.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 49,\n \"soundfont\": \"string_ensemble_1\",\n \"icon\": \"violin\",\n \"localPack\": \"/soundfonts/fluidr3/string_ensemble_1.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 50,\n \"soundfont\": \"string_ensemble_2\",\n \"icon\": \"violin\",\n \"localPack\": \"/soundfonts/fluidr3/string_ensemble_2.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 51,\n \"soundfont\": \"synth_strings_1\",\n \"icon\": \"violin\",\n \"localPack\": \"/soundfonts/fluidr3/synth_strings_1.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 52,\n \"soundfont\": \"synth_strings_2\",\n \"icon\": \"violin\",\n \"localPack\": \"/soundfonts/fluidr3/synth_strings_2.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 53,\n \"soundfont\": \"choir_aahs\",\n \"icon\": \"microphone\",\n \"localPack\": \"/soundfonts/fluidr3/choir_aahs.json\",\n \"family\": \"Voice\"\n },\n {\n \"program\": 54,\n \"soundfont\": \"voice_oohs\",\n \"icon\": \"microphone\",\n \"localPack\": \"/soundfonts/fluidr3/voice_oohs.json\",\n \"family\": \"Voice\"\n },\n {\n \"program\": 55,\n \"soundfont\": \"synth_choir\",\n \"icon\": \"microphone\",\n \"localPack\": \"/soundfonts/fluidr3/synth_choir.json\",\n \"family\": \"Voice\"\n },\n {\n \"program\": 56,\n \"soundfont\": \"orchestra_hit\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/orchestra_hit.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 57,\n \"soundfont\": \"trumpet\",\n \"icon\": \"trumpet\",\n \"localPack\": \"/soundfonts/fluidr3/trumpet.json\",\n \"family\": \"Brass\"\n },\n {\n \"program\": 58,\n \"soundfont\": \"trombone\",\n \"icon\": \"trombone\",\n \"localPack\": \"/soundfonts/fluidr3/trombone.json\",\n \"family\": \"Brass\"\n },\n {\n \"program\": 59,\n \"soundfont\": \"tuba\",\n \"icon\": \"trombone\",\n \"localPack\": \"/soundfonts/fluidr3/tuba.json\",\n \"family\": \"Brass\"\n },\n {\n \"program\": 60,\n \"soundfont\": \"muted_trumpet\",\n \"icon\": \"trumpet\",\n \"localPack\": \"/soundfonts/fluidr3/muted_trumpet.json\",\n \"family\": \"Brass\"\n },\n {\n \"program\": 61,\n \"soundfont\": \"french_horn\",\n \"icon\": \"trombone\",\n \"localPack\": \"/soundfonts/fluidr3/french_horn.json\",\n \"family\": \"Brass\"\n },\n {\n \"program\": 62,\n \"soundfont\": \"brass_section\",\n \"icon\": \"trumpet\",\n \"localPack\": \"/soundfonts/fluidr3/brass_section.json\",\n \"family\": \"Brass\"\n },\n {\n \"program\": 63,\n \"soundfont\": \"synth_brass_1\",\n \"icon\": \"trumpet\",\n \"localPack\": \"/soundfonts/fluidr3/synth_brass_1.json\",\n \"family\": \"Brass\"\n },\n {\n \"program\": 64,\n \"soundfont\": \"synth_brass_2\",\n \"icon\": \"trumpet\",\n \"localPack\": \"/soundfonts/fluidr3/synth_brass_2.json\",\n \"family\": \"Brass\"\n },\n {\n \"program\": 65,\n \"soundfont\": \"soprano_sax\",\n \"icon\": \"alto-saxophone\",\n \"localPack\": \"/soundfonts/fluidr3/soprano_sax.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 66,\n \"soundfont\": \"alto_sax\",\n \"icon\": \"alto-saxophone\",\n \"localPack\": \"/soundfonts/fluidr3/alto_sax.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 67,\n \"soundfont\": \"tenor_sax\",\n \"icon\": \"tenor-saxophone\",\n \"localPack\": \"/soundfonts/fluidr3/tenor_sax.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 68,\n \"soundfont\": \"baritone_sax\",\n \"icon\": \"bari-saxophone\",\n \"localPack\": \"/soundfonts/fluidr3/baritone_sax.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 69,\n \"soundfont\": \"oboe\",\n \"icon\": \"clarinet\",\n \"localPack\": \"/soundfonts/fluidr3/oboe.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 70,\n \"soundfont\": \"english_horn\",\n \"icon\": \"clarinet\",\n \"localPack\": \"/soundfonts/fluidr3/english_horn.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 71,\n \"soundfont\": \"bassoon\",\n \"icon\": \"clarinet\",\n \"localPack\": \"/soundfonts/fluidr3/bassoon.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 72,\n \"soundfont\": \"clarinet\",\n \"icon\": \"clarinet\",\n \"localPack\": \"/soundfonts/fluidr3/clarinet.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 73,\n \"soundfont\": \"piccolo\",\n \"icon\": \"flute\",\n \"localPack\": \"/soundfonts/fluidr3/piccolo.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 74,\n \"soundfont\": \"flute\",\n \"icon\": \"flute\",\n \"localPack\": \"/soundfonts/fluidr3/flute.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 75,\n \"soundfont\": \"recorder\",\n \"icon\": \"flute\",\n \"localPack\": \"/soundfonts/fluidr3/recorder.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 76,\n \"soundfont\": \"pan_flute\",\n \"icon\": \"flute\",\n \"localPack\": \"/soundfonts/fluidr3/pan_flute.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 77,\n \"soundfont\": \"blown_bottle\",\n \"icon\": \"flute\",\n \"localPack\": \"/soundfonts/fluidr3/blown_bottle.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 78,\n \"soundfont\": \"shakuhachi\",\n \"icon\": \"flute\",\n \"localPack\": \"/soundfonts/fluidr3/shakuhachi.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 79,\n \"soundfont\": \"whistle\",\n \"icon\": \"flute\",\n \"localPack\": \"/soundfonts/fluidr3/whistle.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 80,\n \"soundfont\": \"ocarina\",\n \"icon\": \"flute\",\n \"localPack\": \"/soundfonts/fluidr3/ocarina.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 81,\n \"soundfont\": \"lead_1_square\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/lead_1_square.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 82,\n \"soundfont\": \"lead_2_sawtooth\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/lead_2_sawtooth.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 83,\n \"soundfont\": \"lead_3_calliope\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/lead_3_calliope.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 84,\n \"soundfont\": \"lead_4_chiff\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/lead_4_chiff.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 85,\n \"soundfont\": \"lead_5_charang\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/lead_5_charang.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 86,\n \"soundfont\": \"lead_6_voice\",\n \"icon\": \"microphone\",\n \"localPack\": \"/soundfonts/fluidr3/lead_6_voice.json\",\n \"family\": \"Voice\"\n },\n {\n \"program\": 87,\n \"soundfont\": \"lead_7_fifths\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/lead_7_fifths.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 88,\n \"soundfont\": \"lead_8_bass__lead\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/lead_8_bass__lead.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 89,\n \"soundfont\": \"pad_1_new_age\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/pad_1_new_age.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 90,\n \"soundfont\": \"pad_2_warm\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/pad_2_warm.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 91,\n \"soundfont\": \"pad_3_polysynth\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/pad_3_polysynth.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 92,\n \"soundfont\": \"pad_4_choir\",\n \"icon\": \"microphone\",\n \"localPack\": \"/soundfonts/fluidr3/pad_4_choir.json\",\n \"family\": \"Voice\"\n },\n {\n \"program\": 93,\n \"soundfont\": \"pad_5_bowed\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/pad_5_bowed.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 94,\n \"soundfont\": \"pad_6_metallic\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/pad_6_metallic.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 95,\n \"soundfont\": \"pad_7_halo\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/pad_7_halo.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 96,\n \"soundfont\": \"pad_8_sweep\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/pad_8_sweep.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 97,\n \"soundfont\": \"fx_1_rain\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/fx_1_rain.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 98,\n \"soundfont\": \"fx_2_soundtrack\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/fx_2_soundtrack.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 99,\n \"soundfont\": \"fx_3_crystal\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/fx_3_crystal.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 100,\n \"soundfont\": \"fx_4_atmosphere\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/fx_4_atmosphere.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 101,\n \"soundfont\": \"fx_5_brightness\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/fx_5_brightness.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 102,\n \"soundfont\": \"fx_6_goblins\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/fx_6_goblins.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 103,\n \"soundfont\": \"fx_7_echoes\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/fx_7_echoes.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 104,\n \"soundfont\": \"fx_8_scifi\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/fx_8_scifi.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 105,\n \"soundfont\": \"sitar\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/sitar.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 106,\n \"soundfont\": \"banjo\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/banjo.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 107,\n \"soundfont\": \"shamisen\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/shamisen.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 108,\n \"soundfont\": \"koto\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/koto.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 109,\n \"soundfont\": \"kalimba\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/kalimba.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 110,\n \"soundfont\": \"bagpipe\",\n \"icon\": \"clarinet\",\n \"localPack\": \"/soundfonts/fluidr3/bagpipe.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 111,\n \"soundfont\": \"fiddle\",\n \"icon\": \"violin\",\n \"localPack\": \"/soundfonts/fluidr3/fiddle.json\",\n \"family\": \"Strings\"\n },\n {\n \"program\": 112,\n \"soundfont\": \"shanai\",\n \"icon\": \"clarinet\",\n \"localPack\": \"/soundfonts/fluidr3/shanai.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 113,\n \"soundfont\": \"tinkle_bell\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/tinkle_bell.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 114,\n \"soundfont\": \"agogo\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/agogo.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 115,\n \"soundfont\": \"steel_drums\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/steel_drums.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 116,\n \"soundfont\": \"woodblock\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/woodblock.json\",\n \"family\": \"Percussion\"\n },\n {\n \"program\": 117,\n \"soundfont\": \"taiko_drum\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/taiko_drum.json\",\n \"family\": \"Drums\"\n },\n {\n \"program\": 118,\n \"soundfont\": \"melodic_tom\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/melodic_tom.json\",\n \"family\": \"Drums\"\n },\n {\n \"program\": 119,\n \"soundfont\": \"synth_drum\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/synth_drum.json\",\n \"family\": \"Drums\"\n },\n {\n \"program\": 120,\n \"soundfont\": \"reverse_cymbal\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/reverse_cymbal.json\",\n \"family\": \"Drums\"\n },\n {\n \"program\": 121,\n \"soundfont\": \"guitar_fret_noise\",\n \"icon\": \"guitar\",\n \"localPack\": \"/soundfonts/fluidr3/guitar_fret_noise.json\",\n \"family\": \"Guitar\"\n },\n {\n \"program\": 122,\n \"soundfont\": \"breath_noise\",\n \"icon\": \"flute\",\n \"localPack\": \"/soundfonts/fluidr3/breath_noise.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 123,\n \"soundfont\": \"seashore\",\n \"icon\": \"microphone\",\n \"localPack\": \"/soundfonts/fluidr3/seashore.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 124,\n \"soundfont\": \"bird_tweet\",\n \"icon\": \"flute\",\n \"localPack\": \"/soundfonts/fluidr3/bird_tweet.json\",\n \"family\": \"Woodwinds\"\n },\n {\n \"program\": 125,\n \"soundfont\": \"telephone_ring\",\n \"icon\": \"piano\",\n \"localPack\": \"/soundfonts/fluidr3/telephone_ring.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 126,\n \"soundfont\": \"helicopter\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/helicopter.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 127,\n \"soundfont\": \"applause\",\n \"icon\": \"microphone\",\n \"localPack\": \"/soundfonts/fluidr3/applause.json\",\n \"family\": \"FX / Other\"\n },\n {\n \"program\": 128,\n \"soundfont\": \"gunshot\",\n \"icon\": \"drum-kit\",\n \"localPack\": \"/soundfonts/fluidr3/gunshot.json\",\n \"family\": \"FX / Other\"\n }\n ],\n \"voices\": [\n {\n \"id\": \"piano\",\n \"label\": \"Piano\",\n \"icon\": \"piano\",\n \"program\": 1,\n \"localPack\": \"/soundfonts/fluidr3/acoustic_grand_piano.json\"\n },\n {\n \"id\": \"guitar\",\n \"label\": \"Guitar\",\n \"icon\": \"guitar\",\n \"program\": 25,\n \"localPack\": \"/soundfonts/fluidr3/acoustic_guitar_nylon.json\"\n },\n {\n \"id\": \"bassguitar\",\n \"label\": \"Bass Guitar\",\n \"icon\": \"bassguitar\",\n \"program\": 34,\n \"localPack\": \"/soundfonts/fluidr3/electric_bass_finger.json\"\n },\n {\n \"id\": \"double-bass\",\n \"label\": \"Double Bass\",\n \"icon\": \"double-bass\",\n \"program\": 33,\n \"localPack\": \"/soundfonts/fluidr3/acoustic_bass.json\"\n },\n {\n \"id\": \"drum-kit\",\n \"label\": \"Drum Kit\",\n \"icon\": \"drum-kit\",\n \"program\": null,\n \"localPack\": \"/soundfonts/TimGM6mb.sf2\"\n },\n {\n \"id\": \"alto-saxophone\",\n \"label\": \"Alto Saxophone\",\n \"icon\": \"alto-saxophone\",\n \"program\": 66,\n \"localPack\": \"/soundfonts/fluidr3/alto_sax.json\"\n },\n {\n \"id\": \"tenor-saxophone\",\n \"label\": \"Tenor Saxophone\",\n \"icon\": \"tenor-saxophone\",\n \"program\": 67,\n \"localPack\": \"/soundfonts/fluidr3/tenor_sax.json\"\n },\n {\n \"id\": \"bari-saxophone\",\n \"label\": \"Baritone Saxophone\",\n \"icon\": \"bari-saxophone\",\n \"program\": 68,\n \"localPack\": \"/soundfonts/fluidr3/baritone_sax.json\"\n },\n {\n \"id\": \"flute\",\n \"label\": \"Flute\",\n \"icon\": \"flute\",\n \"program\": 74,\n \"localPack\": \"/soundfonts/fluidr3/flute.json\"\n },\n {\n \"id\": \"clarinet\",\n \"label\": \"Clarinet\",\n \"icon\": \"clarinet\",\n \"program\": 72,\n \"localPack\": \"/soundfonts/fluidr3/clarinet.json\"\n },\n {\n \"id\": \"trumpet\",\n \"label\": \"Trumpet\",\n \"icon\": \"trumpet\",\n \"program\": 57,\n \"localPack\": \"/soundfonts/fluidr3/trumpet.json\"\n },\n {\n \"id\": \"trombone\",\n \"label\": \"Trombone\",\n \"icon\": \"trombone\",\n \"program\": 58,\n \"localPack\": \"/soundfonts/fluidr3/trombone.json\"\n },\n {\n \"id\": \"violin\",\n \"label\": \"Violin\",\n \"icon\": \"violin\",\n \"program\": 41,\n \"localPack\": \"/soundfonts/fluidr3/violin.json\"\n },\n {\n \"id\": \"viola\",\n \"label\": \"Viola\",\n \"icon\": \"viola\",\n \"program\": 42,\n \"localPack\": \"/soundfonts/fluidr3/viola.json\"\n },\n {\n \"id\": \"cello\",\n \"label\": \"Cello\",\n \"icon\": \"cello\",\n \"program\": 43,\n \"localPack\": \"/soundfonts/fluidr3/cello.json\"\n },\n {\n \"id\": \"microphone\",\n \"label\": \"Voice\",\n \"icon\": \"microphone\",\n \"program\": 54,\n \"localPack\": \"/soundfonts/fluidr3/voice_oohs.json\"\n }\n ]\n}\n","/** One AudioContext and master compressor for every reader on the page, and one playing reader at a time. */\nexport type SharedAudio = { context: AudioContext; master: DynamicsCompressorNode };\nlet shared: SharedAudio | undefined;\n\n/** The page's audio graph, created on first use; null when the device has no Web Audio (playback then runs silently). */\nexport function getSharedAudio(): SharedAudio | null {\n if (shared && shared.context.state !== 'closed') return shared;\n let context: AudioContext;\n try { context = new AudioContext(); } catch { return null; }\n const master = context.createDynamicsCompressor();\n master.threshold.value = -15; master.knee.value = 12; master.ratio.value = 4; master.attack.value = .003; master.release.value = .18;\n master.connect(context.destination);\n return shared = { context, master };\n}\n\nconst RESUME_TIMEOUT_MS = 1000;\n/** AudioContext.resume() can stay pending forever (no output device, autoplay policy), so give it a bounded wait. */\nexport async function resumeAudio(context: AudioContext): Promise<boolean> {\n if (context.state === 'running') return true;\n let timer: ReturnType<typeof setTimeout> | undefined;\n try { await Promise.race([context.resume(), new Promise(resolve => { timer = setTimeout(resolve, RESUME_TIMEOUT_MS); })]); }\n catch { /* a rejected resume means no sound */ }\n finally { clearTimeout(timer); }\n return (context.state as AudioContextState) === 'running'; // re-read: resume() changes it\n}\n\nexport type PlaybackOwner = { stop(): void };\nlet owner: PlaybackOwner | null = null;\n/** Starting playback in one reader stops whichever other reader is playing (also in silent wall-clock playback). */\nexport function claimPlayback(next: PlaybackOwner): void {\n if (owner && owner !== next) owner.stop();\n owner = next;\n}\nexport function releasePlayback(who: PlaybackOwner): void {\n if (owner === who) owner = null;\n}\n","/**\n * Built-in assets (music fonts, instrument icons, sound packs) live at `assetBaseUrl` in the layout of a\n * pepperscore-sounds-<pack> package: fonts/, instruments/, soundfonts/ and pack.json\n * (docs/specs/pepperscore-embeddable-component.md, \"Assets and sounds\"). No runtime imports: validation/assets.mjs runs it in Node.\n */\nexport type SoundPackName = 'core' | 'complete';\n\n/** Version of the pepperscore-sounds-* packages this build loads by default; validation/sound-packs.mjs keeps it in step. */\nexport const SOUNDS_VERSION = '0.1.0';\n\nexport const defaultAssetBaseUrl = (pack: SoundPackName): string => `https://cdn.jsdelivr.net/npm/pepperscore-sounds-${pack}@${SOUNDS_VERSION}/`;\n\nconst pageBase = (): string => (typeof document !== 'undefined' && document.baseURI) || 'http://localhost/';\n\n/** The absolute asset base, always ending in `/`. A relative base resolves against the page; none means the CDN default. */\nexport function resolveAssetBase(base: string | undefined, pack: SoundPackName = 'core', page: string = pageBase()): string {\n const raw = base?.trim() || defaultAssetBaseUrl(pack);\n return new URL(raw.endsWith('/') ? raw : `${raw}/`, page).href;\n}\n\n/** A built-in asset under the base; a leading `/` (as in the GM manifest's `localPack`) is relative to the base too. */\nexport const assetUrl = (base: string, path: string): string => new URL(path.replace(/^\\/+/, ''), base).href;\n\nexport type PackInfo = { pack: SoundPackName | 'unknown'; fluidr3: ReadonlySet<string> };\nconst packInfo = new Map<string, Promise<PackInfo>>();\n\n/**\n * The base's pack.json, cached per base. A missing or invalid one lists no FluidR3 sounds, so every program falls back\n * to TimGM6mb; a failed fetch is not cached, so the next playback tries again.\n */\nexport function loadPackInfo(base: string): Promise<PackInfo> {\n let info = packInfo.get(base);\n if (!info) {\n info = fetch(assetUrl(base, 'pack.json'))\n .then(response => (response.ok ? response.json() : null) as Promise<{ pack?: unknown; fluidr3?: unknown } | null>)\n .then(json => ({\n pack: json?.pack === 'core' || json?.pack === 'complete' ? json.pack : 'unknown' as const,\n fluidr3: new Set(Array.isArray(json?.fluidr3) ? json.fluidr3.filter((name): name is string => typeof name === 'string') : []),\n }), () => { packInfo.delete(base); return { pack: 'unknown' as const, fluidr3: new Set<string>() }; });\n packInfo.set(base, info);\n }\n return info;\n}\n\nconst warnedBases = new Set<string>();\n/**\n * One console warning per asset base when its fonts or built-in sounds fail to load (for example the default CDN URL\n * before the sounds packages are published). The reader keeps working: fonts fall back and playback runs silently.\n */\nexport function warnAssetBase(base: string, what: string): void {\n if (warnedBases.has(base)) return;\n warnedBases.add(base);\n console.warn(`pepperscore: could not load ${what} from assetBaseUrl \"${base}\". Music fonts fall back and playback is silent. `\n + 'Serve a pepperscore-sounds-core (or -complete) package there, or self-host one and pass its URL as assetBaseUrl.');\n}\n","/**\n * Where each part's sound comes from (docs/specs/pepperscore-embeddable-component.md, \"Sound resolution\"):\n * 1. the first `soundSources` entry that claims it, 2. the pack's FluidR3 sound if pack.json lists it,\n * 3. TimGM6mb.sf2 (always present). Drums use Perfect Drums note files unless a source claims them.\n * Pure: no fetching and no runtime imports (validation/sounds.mjs runs it in Node).\n */\nexport type SoundSource =\n | { id: string; kind: 'sf2'; url: string; programs?: number[]; drums?: boolean; preset?: string }\n | { id: string; kind: 'sample-pack'; url: string /* may contain {name} */; programs?: number[] }\n | { id: string; kind: 'note-files'; manifest: string; programs?: number[]; drums?: boolean };\n\n/** A part's sound: the drum kit, or a GM program (1-128) and its FluidR3 name. */\nexport type SoundRequest = { drums: true } | { drums: false; program: number; name: string };\n\nexport type SoundPlan =\n | { kind: 'sf2'; sourceId: string; url: string; drums: boolean; program?: number; preset?: string }\n | { kind: 'sample-pack'; sourceId: string; url: string; name: string }\n | { kind: 'note-files'; sourceId: string; manifest: string; drums: boolean };\n\nexport const BUILTIN_FLUIDR3 = 'builtin:fluidr3';\nexport const BUILTIN_DRUMS = 'builtin:perfect-drums';\nexport const BUILTIN_SF2 = 'builtin:timgm6mb';\n\nexport type PlanContext = { sources?: readonly SoundSource[]; fluidr3: ReadonlySet<string>; base: string; page: string };\n\nconst claims = (source: SoundSource, request: SoundRequest) =>\n request.drums ? source.kind !== 'sample-pack' && source.drums === true : !!source.programs?.includes(request.program);\n\n/** The built-in GM soundfont; it also plays drum notes a note-file kit lacks. */\nexport const fallbackSf2Url = (base: string) => new URL('soundfonts/TimGM6mb.sf2', base).href;\n\nexport function planSound(request: SoundRequest, { sources = [], fluidr3, base, page }: PlanContext): SoundPlan {\n const source = sources.find(item => claims(item, request));\n if (source?.kind === 'sf2') return { kind: 'sf2', sourceId: source.id, url: new URL(source.url, page).href, drums: request.drums, ...(request.drums ? {} : { program: request.program }), ...(source.preset ? { preset: source.preset } : {}) };\n if (source?.kind === 'sample-pack' && !request.drums) return { kind: 'sample-pack', sourceId: source.id, url: new URL(source.url.replaceAll('{name}', encodeURIComponent(request.name)), page).href, name: request.name };\n if (source?.kind === 'note-files') return { kind: 'note-files', sourceId: source.id, manifest: new URL(source.manifest, page).href, drums: request.drums };\n if (request.drums) return { kind: 'note-files', sourceId: BUILTIN_DRUMS, manifest: new URL('soundfonts/perfect-drums/manifest.json', base).href, drums: true };\n if (fluidr3.has(request.name)) return { kind: 'sample-pack', sourceId: BUILTIN_FLUIDR3, url: new URL(`soundfonts/fluidr3/${request.name}.json`, base).href, name: request.name };\n return { kind: 'sf2', sourceId: BUILTIN_SF2, url: fallbackSf2Url(base), drums: false, program: request.program };\n}\n\n/** Players are shared by parts with the same key (sample packs route each note to its part's gain; see Reader audioKey). */\nexport const planKey = (plan: SoundPlan): string =>\n plan.kind === 'sample-pack' ? `sample-pack:${plan.url}`\n : plan.kind === 'sf2' ? `sf2:${plan.url}#${plan.drums ? 'drums' : plan.program}:${plan.preset ?? ''}`\n : `note-files:${plan.manifest}`;\n","import type { SoundPlan } from './sounds';\n\n/** One sound source's player (public through pepperscore/audio). */\nexport type AudioPlayer = {\n /** @internal The drum kit's TimGM6mb fallback (see addDrumFallback). */\n fallback?: boolean;\n /**\n * Play MIDI `note` at `time` (AudioContext seconds) for `duration` seconds at `velocity` (0-127). Returns a function\n * that stops (or, if it has not started yet, cancels) that one note.\n */\n start(options: { note: number; time: number; duration: number; velocity: number; destination?: AudioNode }): () => void;\n /** Stop every sounding note and cancel every scheduled one. */\n stop(): void;\n /** Stop and release the player's buffers and nodes. */\n dispose(): void;\n /** Load (decode) these notes before they are started. */\n loadNotes?(notes: number[]): Promise<void>;\n /** Whether the player has a sound for this note. */\n covers?(note: number): boolean;\n};\n\n/** The players for one plan (sf2 players are bound to `destination`, a part's track gain). */\nexport async function loadPlayers(context: AudioContext, plan: SoundPlan, destination: AudioNode): Promise<AudioPlayer[]> {\n if (plan.kind === 'sample-pack') {\n const { loadFluidPlayer } = await import('./fluid-player');\n return [await loadFluidPlayer(context, plan.url, plan.name)];\n }\n if (plan.kind === 'sf2') {\n const { loadSf2Player } = await import('./sf2-player');\n return [await loadSf2Player(context, { url: plan.url, drums: plan.drums, program: plan.program, preset: plan.preset, destination })];\n }\n const { loadNoteFilePlayer } = await import('./drum-player');\n return [await loadNoteFilePlayer(context, plan.manifest)];\n}\n\n/** A note-file drum kit plays the notes it lacks through the GM soundfont's standard kit, as before (added once). */\nexport async function addDrumFallback(context: AudioContext, players: AudioPlayer[], notes: number[], fallbackSf2: string, destination: AudioNode): Promise<void> {\n const kit = players[0];\n if (!kit?.covers || players.some(player => player.fallback) || notes.every(note => kit.covers!(note))) return;\n const { loadSf2Player } = await import('./sf2-player');\n const drums = await loadSf2Player(context, { url: fallbackSf2, drums: true, destination });\n players.push({ fallback: true, start: options => kit.covers!(options.note) ? () => {} : drums.start(options), stop: () => drums.stop(), dispose: () => drums.dispose(), covers: note => drums.covers?.(note) ?? true });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCEIuB;AAGJ,SAAgBC,IAAqC;CACnD,IAAID,KAAUA,EAAO,QAAQ,UAAU,UAAU,OAAOA;CACxD,IAAIE;CACJ,IAAI;EAAE,IAAU,IAAI,aAAa;CAAG,QAAQ;EAAE,OAAO;CAAM;CAC3D,IAAMC,IAASD,EAAQ,yBAAyB;CAGhD,OAFA,EAAO,UAAU,QAAQ,KAAK,EAAO,KAAK,QAAQ,IAAI,EAAO,MAAM,QAAQ,GAAG,EAAO,OAAO,QAAQ,MAAM,EAAO,QAAQ,QAAQ,KACjIC,EAAO,QAAQD,EAAQ,WAAW,GAC3B,IAAS;EAAE;EAAS;CAAO;AACpC;AAEA,IAAME,IAAoB;AAE1B,eAAsBC,EAAY,GAAyC;CACzE,IAAIH,EAAQ,UAAU,WAAW,OAAO;CACxC,IAAII;CACJ,IAAI;EAAE,MAAM,QAAQ,KAAK,CAACJ,EAAQ,OAAO,GAAG,IAAI,SAAQ,MAAW;GAAE,IAAQ,WAAWK,GAASH,CAAiB;EAAG,CAAC,CAAC,CAAC;CAAG,QACrH,CAAyC,UACvC;EAAE,aAAaE,CAAK;CAAG;CAC/B,OAAQJ,EAAQ,UAAgC;AAClD;AAGA,IAAIM,IAA8B;AAElC,SAAgBC,EAAc,GAA2B;CAEvD,AADID,KAASA,MAAUE,KAAMF,EAAM,KAAK,GACxC,IAAQE;AACV;AACA,SAAgBC,EAAgB,GAA0B;CACxD,AAAIH,MAAUI,MAAK,IAAQ;AAC7B;;;AC3BA,IAAaC,IAAiB,SAEjBC,KAAuB,MAAgC,mDAAmDC,EAAK,GAAGF,EAAe,IAExIG,UAA0B,OAAO,WAAa,OAAe,SAAS,WAAY;AAGxF,SAAgBC,EAAiB,GAA0B,IAAsB,QAAQ,IAAeD,EAAS,GAAW;CAC1H,IAAME,IAAMC,GAAM,KAAK,KAAKL,EAAoBC,CAAI;CACpD,OAAO,IAAI,IAAIG,EAAI,SAAS,GAAG,IAAIA,IAAM,GAAGA,EAAI,IAAIE,CAAI,CAAC,CAAC;AAC5D;AAGA,IAAaC,KAAY,GAAc,MAAyB,IAAI,IAAIC,EAAK,QAAQ,QAAQ,EAAE,GAAGH,CAAI,CAAC,CAAC,MAGlGI,oBAAW,IAAI,IAA+B;AAMpD,SAAgBC,EAAa,GAAiC;CAC5D,IAAIC,IAAOF,EAAS,IAAIJ,CAAI;CAU5B,OATKM,MACH,IAAO,MAAMJ,EAASF,GAAM,WAAW,CAAC,CAAC,CACtC,MAAK,MAAaO,EAAS,KAAKA,EAAS,KAAK,IAAI,IAA8D,CAAC,CACjH,MAAK,OAAS;EACb,MAAMC,GAAM,SAAS,UAAUA,GAAM,SAAS,aAAaA,EAAK,OAAO;EACvE,SAAS,IAAI,IAAI,MAAM,QAAQA,GAAM,OAAO,IAAIA,EAAK,QAAQ,QAAQ,MAAyB,OAAOC,KAAS,QAAQ,IAAI,CAAC,CAAC;CAC9H,WAAYL,EAAS,OAAOJ,CAAI,GAAU;EAAE,MAAM;EAAoB,yBAAS,IAAI,IAAY;CAAE,EAAI,GACvGI,EAAS,IAAIJ,GAAMM,CAAI,IAElBA;AACT;AAEA,IAAMI,oBAAc,IAAI,IAAY;AAKpC,SAAgBC,EAAc,GAAc,GAAoB;CAC9D,AAAID,EAAY,IAAIV,CAAI,MACxBU,EAAY,IAAIV,CAAI,GACpB,QAAQ,KAAK,+BAA+BY,EAAK,sBAAsBZ,EAAK,kKAC0C;AACxH;;;ACnCA,IAAaa,IAAkB,mBAClBC,IAAgB,yBAChBC,IAAc,oBAIrBC,KAAU,GAAqB,MACnCC,EAAQ,QAAQ3D,EAAO,SAAS,iBAAiBA,EAAO,UAAU,KAAO,CAAC,CAACA,EAAO,UAAU,SAAS2D,EAAQ,OAAO,GAGzGC,KAAkB,MAAiB,IAAI,IAAI,2BAA2BlB,CAAI,CAAC,CAAC;AAEzF,SAAgBmB,EAAU,GAAuB,EAAE,aAAU,CAAC,GAAG,YAAS,SAAM,WAAgC;CAC9G,IAAM7D,IAAS8D,EAAQ,MAAK,MAAQJ,EAAOK,GAAMJ,CAAO,CAAC;CAMzD,OALI3D,GAAQ,SAAS,QAAc;EAAE,MAAM;EAAO,UAAUA,EAAO;EAAI,KAAK,IAAI,IAAIA,EAAO,KAAK2C,CAAI,CAAC,CAAC;EAAM,OAAOgB,EAAQ;EAAO,GAAIA,EAAQ,QAAQ,CAAC,IAAI,EAAE,SAASA,EAAQ,QAAQ;EAAI,GAAI3D,EAAO,SAAS,EAAE,QAAQA,EAAO,OAAO,IAAI,CAAC;CAAG,IAC1OA,GAAQ,SAAS,iBAAiB,CAAC2D,EAAQ,QAAc;EAAE,MAAM;EAAe,UAAU3D,EAAO;EAAI,KAAK,IAAI,IAAIA,EAAO,IAAI,WAAW,UAAU,mBAAmB2D,EAAQ,IAAI,CAAC,GAAGhB,CAAI,CAAC,CAAC;EAAM,MAAMgB,EAAQ;CAAK,IACpN3D,GAAQ,SAAS,eAAqB;EAAE,MAAM;EAAc,UAAUA,EAAO;EAAI,UAAU,IAAI,IAAIA,EAAO,UAAU2C,CAAI,CAAC,CAAC;EAAM,OAAOgB,EAAQ;CAAM,IACrJA,EAAQ,QAAc;EAAE,MAAM;EAAc,UAAUH;EAAe,UAAU,IAAI,IAAI,0CAA0Cd,CAAI,CAAC,CAAC;EAAM,OAAO;CAAK,IACzJsB,EAAQ,IAAIL,EAAQ,IAAI,IAAU;EAAE,MAAM;EAAe,UAAUJ;EAAiB,KAAK,IAAI,IAAI,sBAAsBI,EAAQ,KAAK,QAAQjB,CAAI,CAAC,CAAC;EAAM,MAAMiB,EAAQ;CAAK,IACxK;EAAE,MAAM;EAAO,UAAUF;EAAa,KAAKG,EAAelB,CAAI;EAAG,OAAO;EAAO,SAASiB,EAAQ;CAAQ;AACjH;AAGA,IAAaM,KAAW,MACtBC,EAAK,SAAS,gBAAgB,eAAeA,EAAK,QAC9CA,EAAK,SAAS,QAAQ,OAAOA,EAAK,IAAI,GAAGA,EAAK,QAAQ,UAAUA,EAAK,QAAQ,GAAGA,EAAK,UAAU,OAC7F,cAAcA,EAAK;;;ACvB3B,eAAsBC,EAAY,GAAuB,GAAiB,GAAgD;CACxH,IAAID,EAAK,SAAS,eAAe;EAC/B,IAAM,EAAE,uBAAoB,MAAM,OAAO;EACzC,OAAO,CAAC,MAAME,EAAgB3C,GAASyC,EAAK,KAAKA,EAAK,IAAI,CAAC;CAC7D;CACA,IAAIA,EAAK,SAAS,OAAO;EACvB,IAAM,EAAE,qBAAkB,MAAM,OAAO;EACvC,OAAO,CAAC,MAAMG,EAAc5C,GAAS;GAAE,KAAKyC,EAAK;GAAK,OAAOA,EAAK;GAAO,SAASA,EAAK;GAAS,QAAQA,EAAK;GAAQ;EAAY,CAAC,CAAC;CACrI;CACA,IAAM,EAAE,0BAAuB,MAAM,OAAO;CAC5C,OAAO,CAAC,MAAMI,EAAmB7C,GAASyC,EAAK,QAAQ,CAAC;AAC1D;AAGA,eAAsBK,EAAgB,GAAuB,GAAwB,GAAiB,GAAqB,GAAuC;CAChK,IAAMC,IAAMC,EAAQ;CACpB,IAAI,CAACD,GAAK,UAAUC,EAAQ,MAAK,MAAUC,EAAO,QAAQ,KAAKC,EAAM,OAAM,MAAQH,EAAI,OAAQI,CAAI,CAAC,GAAG;CACvG,IAAM,EAAE,qBAAkB,MAAM,OAAO,6BACjCC,IAAQ,MAAMR,EAAc5C,GAAS;EAAE,KAAKqD;EAAa,OAAO;EAAM;CAAY,CAAC;CACzF,EAAQ,KAAK;EAAE,UAAU;EAAM,QAAO,MAAWN,EAAI,OAAQO,EAAQ,IAAI,UAAU,CAAC,IAAIF,EAAM,MAAME,CAAO;EAAG,YAAYF,EAAM,KAAK;EAAG,eAAeA,EAAM,QAAQ;EAAG,SAAQ,MAAQA,EAAM,SAASD,CAAI,KAAK;CAAK,CAAC;AACxN"}
package/dist/style.css CHANGED
@@ -2,5 +2,5 @@
2
2
  @import "@fontsource/poppins/500.css";
3
3
  @import "@fontsource/poppins/600.css";
4
4
  @import "@fontsource/poppins/700.css";
5
- .pepperscore{isolation:isolate;color:#242824;font-synthesis:none;text-align:left;background:#fff;outline:none;flex-direction:column;font-family:Poppins,Arial,sans-serif;line-height:normal;display:flex;position:relative;overflow:hidden;container:pepperscore/inline-size}.pepperscore:focus-visible,.pepperscore .mixer-panel:focus-visible,.pepperscore .instrument-picker-panel:focus-visible,.pepperscore .open-dialog:focus-visible{outline-offset:-2px;outline:2px solid #8fb89a}.pepperscore .bpm-control input:focus-visible{outline-offset:2px;outline:2px solid #8fb89a}.pepperscore[data-ps-height=auto]{height:100%;min-height:480px}.pepperscore[data-ps-height=fill]{height:100%}.pepperscore[data-ps-height=natural]{height:auto}.pepperscore .app-shell{flex:auto;min-height:0}.pepperscore[data-ps-height=natural] .score-viewport{flex:none;height:auto}.pepperscore :where(h1,h2,h3,h4,h5,h6,p,ul,ol,li,dl,dd,figure,blockquote,hr,fieldset,legend,button,input,select,option,textarea,img,label,output,small,strong,a,table){all:revert}.pepperscore :where(svg){vertical-align:baseline;display:inline}.pepperscore :where([hidden]){display:none}.pepperscore,.pepperscore *{box-sizing:border-box}.pepperscore button,.pepperscore input,.pepperscore textarea,.pepperscore select{font:inherit}.pepperscore button{cursor:pointer}.pepperscore button:disabled{cursor:wait;opacity:.65}.pepperscore .app-shell{padding-bottom:67px;overflow:hidden}.pepperscore .topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbfaf8f0;border-bottom:1px solid #e9e8e4;grid-template-columns:1fr auto 1fr;align-items:center;height:76px;padding:0 5.3%;display:grid;position:sticky;top:0}.pepperscore .brand{letter-spacing:-.065em;align-items:center;gap:11px;font-size:20px;font-weight:700;display:flex}.pepperscore .brand-mark{color:#486b51;place-items:center;width:29px;height:33px;font-family:Georgia,serif;font-size:31px;font-weight:400;display:grid}.pepperscore .transport{align-items:center;gap:13px;display:flex}.pepperscore .icon-button{color:#657069;background:0 0;border:0;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.pepperscore .icon-button:hover,.pepperscore .page-controls button:hover{background:#eeefe9}.pepperscore .play-button{color:#fff;background:#345642;border:0;border-radius:10px;align-items:center;gap:9px;padding:10px 19px;font-size:13px;font-weight:700;display:flex;box-shadow:0 3px 8px #34564224}.pepperscore .play-button:hover{background:#254633}.pepperscore .bpm-control{color:#8c948d;letter-spacing:.1em;align-items:center;gap:8px;margin-left:10px;font-size:10px;font-weight:700;display:flex}.pepperscore .bpm-control input{text-align:center;color:#303c32;appearance:textfield;background:0 0;border:0;border-bottom:1px solid #c9d0c8;outline:none;width:47px;padding:4px 0;font-size:14px;font-weight:700}.pepperscore .bpm-control input::-webkit-inner-spin-button{appearance:none}.pepperscore .top-actions{justify-self:end}.pepperscore .key-hint,.pepperscore .ps-eyebrow{letter-spacing:.18em;color:#879289;font-size:10px;font-weight:700}.pepperscore .mobile-menu{display:none}.pepperscore .reader-head{justify-content:space-between;align-items:flex-end;gap:20px;max-width:1340px;height:165px;margin:auto;padding:37px 56px 22px;display:flex}.pepperscore .reader-head h1{letter-spacing:-.035em;margin:9px 0 5px;font-family:Newsreader,Georgia,serif;font-size:39px;font-weight:400;line-height:1.08}.pepperscore .reader-head p{color:#8f9790;margin:0;font-size:12px}.pepperscore .mode-toggle{background:#f0f0ec;border:1px solid #e5e7e1;border-radius:10px;flex-shrink:0;padding:3px;display:flex}.pepperscore .mode-toggle button{color:#869087;background:0 0;border:0;border-radius:7px;padding:9px 14px;font-size:11px;font-weight:700}.pepperscore .mode-toggle button.is-selected{color:#345642;background:#fff;box-shadow:0 1px 5px #253b2e16}.pepperscore .reader-area{max-width:1260px;margin:0 auto;padding:0 38px;position:relative}.pepperscore .score-viewport{scrollbar-width:thin;scrollbar-color:#d8ddd6 transparent;background:#fff;border:1px solid #e9e9e4;border-radius:15px;min-height:390px;position:relative;overflow:auto;box-shadow:0 12px 46px #5966570a}.pepperscore .score-content{min-height:100%;padding:35px 12px 70px;position:relative}.pepperscore .ps-portrait .score-content{width:100%}.pepperscore .ps-landscape .score-content{align-items:flex-start;width:max-content;min-width:100%;padding:90px 44px;display:flex}.pepperscore .score-system{flex:none;position:relative}.pepperscore .score-system svg{display:block;overflow:visible}.pepperscore .score-system svg .reader-note{transition:filter .12s}.pepperscore .score-system svg .reader-note.is-playing{filter:drop-shadow(0 0 4px #e6aa4f);stroke:#b87218;fill:#b87218}.pepperscore .annotation{letter-spacing:.02em;pointer-events:none;font-family:Poppins,Arial,sans-serif}.pepperscore .note-label{fill:#617262;font-size:15px;font-weight:600}.pepperscore .count-label{fill:#8a978c;font-size:13px}.pepperscore .playback-line{pointer-events:none;z-index:2;background:#cd9743;border-radius:2px;width:2px;transition:left 60ms linear;position:absolute;top:9px;bottom:20px;box-shadow:0 0 0 3px #cd97432b}.pepperscore .part-controls{z-index:4;position:absolute;top:35px;left:5px}.pepperscore .ps-landscape .part-controls{top:90px;left:47px}.pepperscore .part-control{justify-content:center;align-items:center;width:40px;height:36px;display:flex;position:absolute;left:0}.pepperscore .part-icon{color:#597660;font-family:Georgia,serif;font-size:19px}.pepperscore .part-control:hover{background:#f3f5ef;border-radius:8px}.pepperscore .edge-fade{z-index:5;pointer-events:none;position:absolute}.pepperscore .ps-portrait .edge-fade{height:25px;left:39px;right:39px}.pepperscore .ps-portrait .edge-start{background:linear-gradient(#fff,#0000);top:1px}.pepperscore .ps-portrait .edge-end{background:linear-gradient(#0000,#fff);bottom:47px}.pepperscore .ps-landscape .edge-fade{width:30px;top:1px;bottom:47px}.pepperscore .ps-landscape .edge-start{background:linear-gradient(90deg,#fff,#0000);left:39px}.pepperscore .ps-landscape .edge-end{background:linear-gradient(90deg,#0000,#fff);right:39px}.pepperscore .page-controls{color:#9ba49b;letter-spacing:.18em;justify-content:center;align-items:center;gap:18px;height:46px;font-size:10px;font-weight:700;display:flex}.pepperscore .page-controls button{color:#607565;background:0 0;border:1px solid #dfe5dc;border-radius:8px;place-items:center;width:29px;height:29px;display:grid}.pepperscore .drawer-handle{z-index:31;color:#4d6353;background:#fff;border:1px solid #e2e8e0;border-bottom:0;border-radius:13px 13px 0 0;justify-content:center;align-items:center;gap:12px;width:220px;height:47px;font-size:12px;font-weight:700;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -5px 25px #61706416}.pepperscore .handle-grip{background:#b6c4b6;border-radius:2px;width:24px;height:3px}.pepperscore .drawer-handle svg{transition:transform .2s}.pepperscore .drawer-handle.is-open svg{transform:rotate(180deg)}.pepperscore .drawer-backdrop{z-index:29;background:#18231b45;position:absolute;inset:0}.pepperscore .bottom-drawer{z-index:30;background:#fafbf8;border-radius:22px 22px 0 0;width:100%;max-height:min(82%,780px);padding:27px max(5.3%,50cqw - 665px) 24px;transition:transform .28s;position:absolute;bottom:0;left:0;overflow:auto;transform:translateY(105%);box-shadow:0 -20px 70px #1d2b2060}.pepperscore .bottom-drawer.is-open{transform:translateY(0)}.pepperscore .drawer-handle.is-open{opacity:0;pointer-events:none;bottom:min(82%,780px)}.pepperscore .drawer-top{justify-content:space-between;align-items:start;margin-bottom:23px;display:flex}.pepperscore .drawer-top h2{margin:7px 0 0;font-family:Newsreader,Georgia,serif;font-size:29px;font-weight:400}.pepperscore .drawer-grid{grid-template-columns:1fr 1fr 1.15fr;gap:15px;display:grid}.pepperscore .drawer-panel{background:#fff;border:1px solid #e5eae2;border-radius:14px;min-height:238px;padding:21px}.pepperscore .drawer-panel h3{color:#344c38;align-items:center;gap:8px;margin:0 0 10px;font-size:14px;display:flex}.pepperscore .drawer-panel h3 svg{color:#6b8a6e}.pepperscore .drawer-panel p{color:#8a948a;margin:0 0 19px;font-size:12px;line-height:1.55}.pepperscore .primary-action{color:#fff;background:#365c42;border:0;border-radius:8px;align-items:center;gap:9px;height:37px;padding:0 14px;font-size:11px;font-weight:700;display:inline-flex}.pepperscore .primary-action:hover{background:#284c34}.pepperscore .text-action{color:#61806a;background:0 0;border:0;align-items:center;gap:7px;margin-top:15px;padding:2px;font-size:11px;font-weight:700;display:flex}.pepperscore .field-label{color:#536055;justify-content:space-between;margin:22px 0 5px;font-size:11px;font-weight:700;display:flex}.pepperscore .field-label span{color:#87968a;font-weight:500}.pepperscore .ps-range{accent-color:#5f8068;width:100%;height:4px}.pepperscore .ps-switch-row{color:#5d6b61;border-top:1px solid #f0f2ee;justify-content:space-between;align-items:center;padding:10px 0;font-size:11px;display:flex}.pepperscore .ps-switch{background:#d9dfd8;border:0;border-radius:15px;width:29px;height:17px;padding:2px;position:relative}.pepperscore .ps-switch:after{content:"";background:#fff;border-radius:50%;width:13px;height:13px;transition:transform .15s;position:absolute;top:2px;left:2px}.pepperscore .ps-switch.is-on{background:#5d8164}.pepperscore .ps-switch.is-on:after{transform:translate(12px)}.pepperscore .abc-panel textarea{resize:vertical;color:#48594b;background:#fdfefc;border:1px solid #e6ebe4;border-radius:8px;outline-color:#7d9c80;width:100%;height:104px;padding:9px 11px;font-family:monospace;font-size:10px;line-height:1.5}.pepperscore .abc-panel .primary-action{margin-top:9px}.pepperscore .drawer-foot{color:#a0aaa0;letter-spacing:.05em;justify-content:space-between;margin-top:20px;font-size:10px;display:flex}.pepperscore .ps-error,.pepperscore .ps-toast{color:#9a482d;background:#fff3ee;border:1px solid #e9c7bb;border-radius:8px;padding:10px 12px;font-size:12px}.pepperscore .ps-error{margin-top:13px}.pepperscore .ps-toast{z-index:50;align-items:center;gap:15px;display:flex;position:absolute;bottom:65px;right:20px}.pepperscore .ps-toast button{color:inherit;background:0 0;border:0;place-items:center;display:grid}.pepperscore .playback-notice{z-index:50;color:#46604d;background:#f2f6f0;border:1px solid #cddbcc;border-radius:8px;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:10px 12px;font-size:12px;display:flex;position:absolute;bottom:65px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #34564218}.pepperscore .playback-notice-icon{flex:none}.pepperscore .playback-notice button{color:inherit;background:0 0;border:0;flex:none;place-items:center;display:grid}@container pepperscore (width<=850px){.pepperscore .topbar{padding:0 22px}.pepperscore .key-hint{display:none}.pepperscore .mobile-menu{display:grid}.pepperscore .reader-head{padding:30px 26px 20px}.pepperscore .reader-area{padding:0 16px}.pepperscore .ps-portrait .edge-fade{left:17px;right:17px}.pepperscore .ps-landscape .edge-start{left:17px}.pepperscore .ps-landscape .edge-end{right:17px}.pepperscore .drawer-grid{grid-template-columns:1fr 1fr}.pepperscore .abc-panel{grid-column:1/-1}.pepperscore .bottom-drawer{padding:26px 24px}}@container pepperscore (width<=580px){.pepperscore .topbar{grid-template-columns:1fr auto auto;gap:10px;height:64px;padding:0 14px}.pepperscore .brand{font-size:17px}.pepperscore .brand-mark{width:23px;font-size:25px}.pepperscore .transport{gap:3px}.pepperscore .transport .reset{display:none}.pepperscore .bpm-control{gap:3px;margin-left:4px}.pepperscore .bpm-control input{width:34px}.pepperscore .reader-head{height:auto;min-height:150px;padding:26px 19px 15px;display:block}.pepperscore .reader-head h1{font-size:31px}.pepperscore .mode-toggle{width:max-content;margin-top:17px}.pepperscore .reader-area{padding:0 7px}.pepperscore .score-viewport{min-height:330px}.pepperscore .ps-portrait .edge-fade{left:8px;right:8px}.pepperscore .ps-landscape .edge-start{left:8px}.pepperscore .ps-landscape .edge-end{right:8px}.pepperscore .drawer-grid{grid-template-columns:1fr}.pepperscore .drawer-panel{min-height:0}.pepperscore .abc-panel{grid-column:auto}.pepperscore .drawer-foot span{display:none}.pepperscore .bottom-drawer{padding:20px}.pepperscore .page-controls{font-size:9px}}@media (pointer:coarse){.pepperscore .score-viewport{touch-action:none}}.pepperscore .ps-landscape .part-controls{left:5px}.pepperscore .topbar{justify-content:center;height:54px;padding:0 12px;display:flex}.pepperscore .transport{gap:9px}.pepperscore .reader-head{max-width:none;height:126px;padding:21px 22px 15px}.pepperscore .reader-head h1{margin:6px 0 3px;font-size:32px}.pepperscore .reader-area.ps-portrait{max-width:none;padding:0 10px}.pepperscore .ps-portrait .score-content{padding:24px 4px 70px}.pepperscore .ps-portrait .part-controls{top:24px;left:4px}.pepperscore .drawer-handle{width:184px;left:10px;transform:none}@container pepperscore (width<=580px){.pepperscore .topbar{height:50px;padding:0 10px}.pepperscore .transport .stop-button{display:grid}.pepperscore .reader-head{height:auto;min-height:0;padding:17px 14px 12px}.pepperscore .reader-head h1{font-size:27px}.pepperscore .reader-area.ps-portrait{padding:0 6px}.pepperscore .ps-portrait .edge-fade{left:7px;right:7px}.pepperscore .score-viewport{min-height:330px}.pepperscore .drawer-handle{width:178px;left:6px}.pepperscore .page-controls{justify-content:flex-end;gap:8px;padding-right:8px}.pepperscore .page-controls span{display:none}}.pepperscore .score-content{display:block}.pepperscore .score-stage,.pepperscore .score-staves{width:100%;position:relative}.pepperscore .score-meta{text-align:center;padding:0 30px 18px}.pepperscore .score-meta h1{letter-spacing:-.025em;margin:0 0 4px;font-family:Newsreader,Georgia,serif;font-size:30px;font-weight:400;line-height:1.12}.pepperscore .score-meta p{color:#6f776f;margin:3px 0;font-size:12px;line-height:1.45}.pepperscore .score-meta .score-subtitle{color:#4f5850;font-family:Newsreader,Georgia,serif;font-size:18px}.pepperscore .score-meta .score-credit{color:#8b948c;font-size:10px}.pepperscore .ps-portrait .part-controls,.pepperscore .ps-landscape .part-controls{top:0;left:0}.pepperscore .ps-landscape .score-content{width:max-content;min-width:100%;padding:25px 44px 70px;display:block}.pepperscore .ps-landscape .score-stage,.pepperscore .ps-landscape .score-staves{width:max-content}.pepperscore .ps-landscape .score-staves{align-items:flex-start;display:flex}.pepperscore .ps-landscape .score-meta{width:min(900px,100cqw - 120px);min-height:0}@container pepperscore (width<=580px){.pepperscore .score-meta h1{font-size:24px}.pepperscore .score-meta .score-subtitle{font-size:16px}}.pepperscore .topbar{background:#fffffff5}.pepperscore .reader-area,.pepperscore .reader-area.ps-portrait{max-width:none;margin:0;padding:0}.pepperscore .score-viewport{box-shadow:none;border:0;border-radius:0}.pepperscore .ps-portrait .edge-fade{left:0;right:0}.pepperscore .ps-landscape .edge-start{left:0}.pepperscore .ps-landscape .edge-end{right:0}.pepperscore .part-control{transform:translateY(-50%)}.pepperscore .part-icon{object-fit:contain;width:28px;height:28px;display:block}.pepperscore .font-choice{color:#5d6b61;justify-content:space-between;align-items:center;gap:8px;margin-top:17px;font-size:11px;display:flex}.pepperscore .font-toggle{background:#f5f7f3;border:1px solid #e5e9e3;border-radius:8px;gap:2px;padding:2px;display:flex}.pepperscore .font-toggle button{color:#718073;background:0 0;border:0;border-radius:6px;padding:6px 8px;font-size:10px}.pepperscore .font-toggle button.is-selected{color:#345642;background:#fff;font-weight:700;box-shadow:0 1px 4px #253b2e18}.pepperscore .font-load-progress{z-index:6;pointer-events:none;width:100%;height:2px;margin-bottom:-2px;position:sticky;top:0;left:0;overflow:hidden}.pepperscore .score-content{transform-origin:50% 0;transition:opacity .34s ease-out,transform .5s cubic-bezier(.16,1,.3,1)}.pepperscore .ps-landscape .score-content{transform-origin:0}.pepperscore .score-content.is-painting{opacity:0;transition:opacity .16s ease-in,transform 0s linear .16s;transform:scale(1.06)}.pepperscore .score-loading{z-index:8;color:#738477;letter-spacing:.04em;pointer-events:none;justify-content:center;align-items:center;gap:11px;font-size:12px;display:flex;position:absolute;inset:0}.pepperscore .score-loading-spinner{border:2px solid #dfe8dd;border-top-color:#5d8164;border-radius:50%;width:22px;height:22px;animation:.8s linear infinite ps-score-loading-spin}@keyframes ps-score-loading-spin{to{transform:rotate(360deg)}}.pepperscore .font-load-progress:before{content:"";background:#6f9576;width:30%;height:100%;animation:1.1s ease-in-out infinite ps-font-loading-sweep;display:block}@keyframes ps-font-loading-sweep{0%{transform:translate(-100%)}to{transform:translate(435%)}}@media (prefers-reduced-motion:reduce){.pepperscore .font-load-progress:before{opacity:.65;width:100%;animation:none}.pepperscore .score-content,.pepperscore .score-content.is-painting{transition:none;transform:none}.pepperscore .score-loading-spinner{animation:none}}.pepperscore .app-shell{flex-direction:column;min-height:0;padding-bottom:0;display:flex;overflow:hidden}.pepperscore .topbar{z-index:20;flex:none;position:sticky;top:0}.pepperscore .reader-area,.pepperscore .reader-area.ps-portrait{flex-direction:column;flex:1;min-height:0;display:flex}.pepperscore .score-viewport{flex:1;height:auto;min-height:0}.pepperscore .page-controls{flex:none}.pepperscore .ps-portrait .score-content{flex-direction:column;justify-content:safe center;display:flex}.pepperscore .ps-landscape .score-content{flex-direction:column;justify-content:safe center;min-height:100%;padding-top:24px;padding-bottom:24px;display:flex}.pepperscore .drawer-backdrop{z-index:100}.pepperscore .bottom-drawer{z-index:102}.pepperscore .drawer-handle{z-index:103}.pepperscore .ps-landscape .score-content{grid-template-rows:minmax(min-content,1fr) auto minmax(0,1fr);align-items:start;display:grid}.pepperscore .ps-landscape .score-meta{grid-row:1;align-self:end}.pepperscore .ps-landscape .score-stage{grid-row:2}.pepperscore .ps-landscape .score-content:after{content:"";grid-row:3}.pepperscore .ps-landscape .score-content{height:100%;min-height:0}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-content{width:max(100%,var(--landscape-content-width,100%));height:100%;min-height:0;padding:0;display:block;position:relative}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-content:after{display:none}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-stage{top:calc(50% - var(--landscape-staff-center,70px));position:absolute;left:44px;transform:none}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-meta{left:44px;bottom:calc(50% + var(--landscape-staff-center,70px) - var(--landscape-meta-offset,35px));padding:0;position:absolute}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-meta h1{margin-bottom:0;font-size:22px;line-height:1.1}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-meta p{margin:0;font-size:10px}.pepperscore[data-ps-tiny][data-ps-wide] .ps-landscape .score-content:has(.chord-symbol) .score-meta{bottom:calc(50% + var(--landscape-staff-center,70px) - 8px)}.pepperscore[data-ps-tiny][data-ps-wide] .ps-landscape .score-meta{justify-content:center;align-items:baseline;gap:8px;display:flex}.pepperscore[data-ps-tiny][data-ps-wide] .ps-landscape .score-meta h1{white-space:nowrap;font-size:16px}.pepperscore[data-ps-tiny][data-ps-wide] .ps-landscape .score-meta p{white-space:nowrap;font-size:9px}@container pepperscore (width<=580px){.pepperscore .transport{align-items:center}.pepperscore .mode-toggle{margin-top:0}}.pepperscore .chord-symbol{fill:#465549;font-size:17px;font-weight:600}.pepperscore .lyric-label{fill:#485449;font-size:11px}.pepperscore .lyric-phrase{font-size:15px}.pepperscore .header-bars-setting{color:#879289;letter-spacing:.08em;align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex}.pepperscore .header-bars-setting select{color:#345642;letter-spacing:0;background:#fff;border:1px solid #e5e9e3;border-radius:7px;min-width:70px;height:30px;padding:0 6px;font-size:11px}.pepperscore .header-bars-setting.is-disabled{opacity:.55}.pepperscore .header-bars-setting.is-disabled select{cursor:not-allowed}@container pepperscore (width<=580px){.pepperscore .header-bars-setting{letter-spacing:0;gap:3px}.pepperscore .header-bars-setting select{min-width:57px;height:28px;padding:0 3px}}.pepperscore .score-stage .part-controls{width:var(--control-gutter,128px)}.pepperscore .score-stage .part-control{width:calc(var(--control-gutter,128px) - 8px);justify-content:flex-start}.pepperscore .part-name{text-overflow:ellipsis;white-space:nowrap;color:#66766a;min-width:0;font-size:var(--part-font,11px);flex:1;line-height:1.2;overflow:hidden}.pepperscore .ps-portrait .score-system svg{overflow:hidden}.pepperscore .ps-portrait .score-system{contain:paint}.pepperscore .part-control{gap:4px}.pepperscore .instrument-control{width:calc(var(--part-icon,28px) + 4px);height:var(--part-control-height,30px);flex:none;place-items:center;display:grid;position:relative}.pepperscore .staff-eye{width:var(--part-eye,28px);height:var(--part-eye,28px);color:#69816c;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;display:grid}.pepperscore .staff-eye svg{width:calc(var(--part-eye,28px) * .62);height:calc(var(--part-eye,28px) * .62)}.pepperscore .staff-eye:hover,.pepperscore .hidden-staves button:hover{background:#edf3ec}.pepperscore .staff-eye:disabled{opacity:.35;cursor:default}.pepperscore .staff-focus.is-focused{color:#345642;background:#e3ede1}.pepperscore .mixer-visibility-button{width:32px;height:32px}.pepperscore .mixer-visibility-button[aria-pressed=false]{color:#a3ada4}.pepperscore .mixer-visibility-button:disabled{opacity:.35;cursor:default}.pepperscore .hidden-staves{flex-wrap:wrap;justify-content:center;gap:4px;margin:4px 0 10px;display:flex}.pepperscore .hidden-staves button{color:#738075;background:#fff;border:1px solid #e4e9e2;border-radius:6px;align-items:center;gap:4px;max-width:180px;padding:3px 6px;font-size:10px;display:flex}.pepperscore .hidden-staves img{width:16px;height:16px}.pepperscore .hidden-staves span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pepperscore .has-many-staves .score-viewport{touch-action:pan-x pan-y}.pepperscore .reset-staves{margin-top:12px}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape.has-many-staves .score-meta{top:3px;bottom:auto}.pepperscore .inference-row{color:#718073;border-top:0;padding-left:14px}.pepperscore .inference-row input{accent-color:#5d8164;width:14px;height:14px;margin:0}.pepperscore .playback-line{z-index:6;background:#c87925;width:2px;top:0;bottom:0;box-shadow:0 0 0 2px #fff9,0 0 8px #c8792580}.pepperscore .mixer-trigger{color:#486b51;flex:none;width:30px;height:30px}.pepperscore .mixer-backdrop{z-index:110;background:#17271b66;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.pepperscore .mixer-panel{background:#fff;border:1px solid #e2e9e0;border-radius:16px;flex-direction:column;width:min(500px,100%);max-height:min(82%,720px);padding:18px 20px 20px;display:flex;overflow:hidden;box-shadow:0 18px 60px #15251a40}.pepperscore .mixer-heading,.pepperscore .mixer-heading>div{align-items:center;gap:9px;display:flex}.pepperscore .mixer-heading{color:#345642;justify-content:space-between}.pepperscore .mixer-heading h2{margin:0;font-size:17px;font-weight:650}.pepperscore .mixer-panel>p{color:#78867a;margin:3px 0 14px;font-size:12px}.pepperscore .mixer-tracks{scrollbar-width:thin;min-height:0;overflow-y:auto}.pepperscore .mixer-track{border-top:1px solid #edf0eb;grid-template-columns:28px minmax(0,1fr) 34px 142px;align-items:center;gap:9px;min-height:49px;padding:7px 2px;display:grid}.pepperscore .mixer-track img{width:24px;height:24px}.pepperscore .mixer-track-name{text-overflow:ellipsis;white-space:nowrap;color:#344439;font-size:12px;overflow:hidden}.pepperscore .mixer-track-name small{color:#88948a;font-size:10px;display:block}.pepperscore .mixer-track select{color:#345642;background:#fff;border:1px solid #dfe6dc;border-radius:7px;width:100%;height:32px;padding:0 6px;font-size:11px}.pepperscore .pitch-panel{grid-column:1/-1;min-height:0}.pepperscore .pitch-panel .pitch-options{flex-wrap:wrap;align-items:end;gap:30px;display:flex}.pepperscore .pitch-panel .pitch-label{color:#536055;margin-bottom:7px;font-size:11px;font-weight:700;display:block}.pepperscore .semitone-control{align-items:center;gap:4px;display:flex}.pepperscore .semitone-control button{color:#3e6047;background:#fff;border:1px solid #dfe6dc;border-radius:7px;place-items:center;width:30px;height:30px;display:grid}.pepperscore .semitone-control button:disabled{opacity:.4;cursor:default}.pepperscore .semitone-control output{text-align:center;color:#345642;min-width:95px;font-size:12px;font-weight:700}.pepperscore .semitone-control .pitch-reset{margin-left:5px}.pepperscore .pitch-view{width:max-content}.pepperscore .pitch-view button{min-width:85px}.pepperscore .pitch-panel .pitch-hint{margin:11px 0 0;font-size:11px}.pepperscore .pitch-key-control{align-items:center;gap:6px;display:flex}.pepperscore .pitch-key-readout{text-align:center;color:#345642;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:72px;font-size:12px;font-weight:700}.pepperscore .pitch-key-flip{color:#3e6047;white-space:nowrap;background:#fff;border:1px solid #dfe6dc;border-radius:7px;justify-content:center;align-items:center;gap:5px;min-width:96px;height:30px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.pepperscore .pitch-key-flip:not(.is-disabled):hover{background:#f2f7f1}@container pepperscore (width<=580px){.pepperscore .pitch-panel .pitch-options{gap:18px}.pepperscore .pitch-view button{min-width:75px}}.pepperscore .score-system svg text{font-family:var(--score-text-font,Poppins,Arial,sans-serif);font-size-adjust:.45}.pepperscore .score-system svg tspan[font-family]{font-size-adjust:none}.pepperscore .score-system svg .verse text{font-size-adjust:none;font-family:Times,Times New Roman,serif}.pepperscore .score-system svg text.annotation{font-family:var(--annotation-font,Poppins,Arial,sans-serif);font-size-adjust:none}.pepperscore .score-system svg[data-music-font=Petaluma][data-text-font=Sans]{--score-text-font:"Petaluma Script",Poppins,Arial,sans-serif;--annotation-font:"Petaluma Script",Poppins,Arial,sans-serif}.pepperscore .score-system svg[data-music-font=Petaluma] :is(.stem,.ledgerLines)>path{stroke-linecap:round}.pepperscore .instrument-control{color:#486b51;background:0 0;border:0;border-radius:7px;padding:0}.pepperscore .instrument-control:hover,.pepperscore .instrument-control:focus-visible{outline-offset:1px;background:#edf3ec;outline:2px solid #c8dcca}.pepperscore .instrument-control img{object-fit:contain;display:block}.pepperscore .header-open-file{color:#486b51;flex:none}.pepperscore .mixer-voice-button{color:#345642;text-align:left;background:#fff;border:1px solid #dfe6dc;border-radius:7px;justify-content:space-between;align-items:center;gap:4px;width:100%;min-height:32px;padding:3px 7px;font-size:11px;display:flex}.pepperscore .mixer-voice-button:hover{background:#f2f7f1}.pepperscore .mixer-volume{color:#78867a;grid-column:2/-1;align-items:center;gap:9px;font-size:11px;display:flex}.pepperscore .mixer-volume input{accent-color:#588366;flex:1;min-width:0}.pepperscore .mixer-volume output{text-align:right;color:#345642;font-variant-numeric:tabular-nums;min-width:34px}.pepperscore .instrument-picker-backdrop{z-index:120;background:#17271b66;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.pepperscore .instrument-picker-panel{background:#fff;border:1px solid #e2e9e0;border-radius:16px;flex-direction:column;width:min(680px,100%);max-height:min(88%,760px);padding:19px;display:flex;overflow:hidden;box-shadow:0 18px 60px #15251a40}.pepperscore .instrument-picker-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px;display:flex}.pepperscore .instrument-picker-heading h2{color:#345642;margin:0;font-size:17px}.pepperscore .instrument-picker-heading p{color:#78867a;margin:3px 0 0;font-size:12px}.pepperscore .instrument-picker-grid{scrollbar-width:thin;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:2px;display:grid;overflow:auto}.pepperscore .instrument-picker-grid button{color:#3c5040;text-align:center;background:#fff;border:1px solid #e5eae2;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:96px;padding:9px 5px;font-size:11px;line-height:1.2;display:flex}.pepperscore .instrument-picker-grid button:hover,.pepperscore .instrument-picker-grid button:focus-visible{background:#f2f7f1;border-color:#8fb89a}.pepperscore .instrument-picker-grid button.is-selected{background:#eaf3e9;border-color:#6c9875;box-shadow:inset 0 0 0 1px #6c9875}.pepperscore .instrument-picker-grid img{object-fit:contain;width:42px;height:42px}@container pepperscore (width<=580px){.pepperscore .instrument-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.pepperscore .instrument-picker-grid button{min-height:80px;font-size:10px}.pepperscore .instrument-picker-grid img{width:32px;height:32px}}.pepperscore .instrument-family-filters{flex-wrap:wrap;gap:5px;margin:0 0 12px;display:flex}.pepperscore .instrument-family-filters button{color:#5b6d5e;white-space:nowrap;background:#fff;border:1px solid #dde7dc;border-radius:999px;padding:6px 9px;font-size:10px}.pepperscore .instrument-family-filters button:hover,.pepperscore .instrument-family-filters button:focus-visible{background:#f2f7f1}.pepperscore .instrument-family-filters button.is-selected{color:#345642;background:#eaf3e9;border-color:#6c9875;font-weight:700}.pepperscore .instrument-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr));min-height:0}.pepperscore .instrument-picker-pages{color:#718073;justify-content:center;align-items:center;gap:14px;padding-top:12px;font-size:11px;display:flex}.pepperscore .instrument-picker-pages button{color:#3e6047;background:#fff;border:1px solid #dfe6dc;border-radius:7px;place-items:center;width:29px;height:29px;display:grid}.pepperscore .instrument-picker-pages button:hover:not(:disabled){background:#edf3ec}.pepperscore .instrument-picker-pages button:disabled{opacity:.4;cursor:default}@container pepperscore (width<=580px){.pepperscore .instrument-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.pepperscore .instrument-picker-grid button{min-height:72px;padding:5px 2px;font-size:9px}.pepperscore .instrument-picker-grid img{width:28px;height:28px}.pepperscore .instrument-family-filters{gap:4px;margin-bottom:8px}.pepperscore .instrument-family-filters button{padding:5px 7px;font-size:9px}.pepperscore .instrument-picker-pages{padding-top:8px}}.pepperscore[data-ps-short] .instrument-picker-panel{max-height:calc(100% - 16px);padding:10px}.pepperscore[data-ps-short] .instrument-picker-heading{margin-bottom:7px}.pepperscore[data-ps-short] .instrument-family-filters{margin-bottom:6px}.pepperscore[data-ps-short] .instrument-picker-grid button{gap:2px;min-height:53px}.pepperscore[data-ps-short] .instrument-picker-grid img{width:23px;height:23px}.pepperscore[data-ps-short] .instrument-picker-pages{padding-top:5px}.pepperscore .score-stage .part-control{height:var(--part-control-height,36px)}.pepperscore .part-controls .part-icon{width:var(--part-icon,28px);height:var(--part-icon,28px)}.pepperscore .transport>.header-control{display:contents}.pepperscore .header-stave-scale{color:#879289;letter-spacing:.08em;align-items:center;gap:6px;font-family:Poppins,Arial,sans-serif;font-size:10px;font-weight:700;display:flex}.pepperscore .header-stave-scale-input{accent-color:#5d8164;cursor:pointer;width:88px;height:18px;margin:0}.pepperscore .header-stave-scale-value{color:#345642;letter-spacing:0;text-align:right;font-variant-numeric:tabular-nums;min-width:36px;font-size:11px}.pepperscore .header-more,.pepperscore .header-secondary-panel,.pepperscore .header-secondary-panel>.header-control{display:contents}.pepperscore .header-more-toggle{color:#486b51;display:none}.pepperscore .header-more-toggle.is-open{background:#edf3ec}.pepperscore .mixer-trigger-label{display:none}@container pepperscore (width<=1140px){.pepperscore .header-stave-scale-label,.pepperscore .bpm-control span,.pepperscore .header-bars-setting>span{display:none}.pepperscore .bpm-control{margin-left:0}.pepperscore .header-stave-scale-input{width:64px}}@container pepperscore (width<=900px){.pepperscore .header-stave-scale-input{width:56px}}@container pepperscore (width<=640px){.pepperscore .header-stave-scale-input{width:44px}.pepperscore .topbar .header-bars-setting select{min-width:58px}}.pepperscore .header-transpose{color:#879289;letter-spacing:.08em;align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex}.pepperscore .header-transpose-controls{align-items:center;gap:3px;display:flex}.pepperscore .header-transpose-controls button,.pepperscore .header-key-flip-button{color:#3e6047;background:#fff;border:1px solid #dfe6dc;border-radius:7px;justify-content:center;align-items:center;height:30px;padding:0;display:inline-flex}.pepperscore .header-transpose-controls button{flex:none;width:30px}.pepperscore .header-transpose-controls button:disabled{opacity:.4;cursor:default}.pepperscore .header-transpose-readout{text-align:center;white-space:nowrap;color:#345642;letter-spacing:0;font-variant-numeric:tabular-nums;flex:none;width:66px;font-size:11px;font-weight:700;overflow:hidden}.pepperscore .header-transpose-label,.pepperscore .header-key-flip-caption{display:none}.pepperscore .header-key-flip{color:#879289;letter-spacing:.08em;align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex}.pepperscore .header-key-flip-button{white-space:nowrap;color:#345642;letter-spacing:0;font-variant-numeric:tabular-nums;flex:none;gap:4px;width:84px;font-size:11px;font-weight:700;overflow:hidden}.pepperscore .header-key-flip-icon,.pepperscore .pitch-key-flip-icon{font-size:14px;line-height:1}.pepperscore .header-key-flip-button.is-disabled,.pepperscore .pitch-key-flip.is-disabled{opacity:.45;cursor:default}.pepperscore .header-transpose-controls button:not(:disabled):hover,.pepperscore .header-key-flip-button:not(.is-disabled):hover{background:#f2f7f1}@container pepperscore (width<=1140px){.pepperscore .header-key-flip-label{display:none}.pepperscore .header-key-flip-button{width:30px}}@container pepperscore (width<=900px){.pepperscore .header-transpose-readout{width:58px;font-size:10px}.pepperscore .header-transpose-controls button{width:28px}}@container pepperscore (width<=760px){.pepperscore .header-more{display:flex}.pepperscore .topbar .header-more-toggle{display:grid}.pepperscore .header-secondary-panel{z-index:40;background:#fff;border:1px solid #e2e9e0;border-radius:12px;flex-direction:column;gap:4px;width:min(340px,100cqw - 16px);padding:10px 12px;font-family:Poppins,Arial,sans-serif;display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 12px 36px #15251a2e}.pepperscore .header-more[data-open=true] .header-secondary-panel{display:flex}.pepperscore .header-secondary-panel>.header-control{border-top:1px solid #f0f2ee;justify-content:space-between;align-items:center;min-height:40px;padding:2px 0;display:flex}.pepperscore .header-secondary-panel>.header-control:first-child{border-top:0}.pepperscore .header-secondary-panel .bpm-control{justify-content:space-between;width:100%;margin-left:0}.pepperscore .header-secondary-panel .bpm-control span,.pepperscore .header-secondary-panel .header-stave-scale-label,.pepperscore .header-secondary-panel .header-bars-setting>span{display:inline}.pepperscore .header-secondary-panel .header-bars-setting,.pepperscore .header-secondary-panel .header-stave-scale{justify-content:space-between;width:100%}.pepperscore .header-secondary-panel .header-bars-setting select{min-width:57px}.pepperscore .header-secondary-panel .header-stave-scale-input{flex:1;width:auto;min-width:0}.pepperscore .header-secondary-panel .mixer-trigger{align-items:center;gap:8px;width:auto;height:34px;padding:0 8px;font-size:11px;font-weight:700;display:flex}.pepperscore .header-secondary-panel .mixer-trigger-label{display:inline}.pepperscore .header-secondary-panel .header-control-mixer{justify-content:flex-start}.pepperscore .header-secondary-panel .header-transpose,.pepperscore .header-secondary-panel .header-key-flip{justify-content:space-between;width:100%}.pepperscore .header-secondary-panel .header-transpose-label,.pepperscore .header-secondary-panel .header-key-flip-caption{display:inline}.pepperscore .header-secondary-panel .header-transpose-readout{width:66px;font-size:11px}.pepperscore .header-secondary-panel .header-transpose-controls button{width:34px;height:34px}.pepperscore .header-secondary-panel .header-key-flip-button{width:96px;height:34px}.pepperscore .header-secondary-panel .header-key-flip-label{display:inline}}@container pepperscore (width<=580px){.pepperscore .mixer-panel{padding:15px}.pepperscore .mixer-track{grid-template-columns:24px minmax(0,1fr) 32px 120px;gap:6px}}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-stage{top:max(40px,calc(50% - var(--landscape-staff-center,70px)))}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-meta{bottom:calc(100% - max(40px,calc(50% - var(--landscape-staff-center,70px))) - var(--landscape-meta-offset,35px))}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape.has-many-staves .score-stage{top:max(30px,calc(50% - var(--landscape-staff-center,70px) + 30px))}.pepperscore .play-button{white-space:nowrap;flex:none;gap:7px;height:38px;padding:0 16px}.pepperscore .header-open-file{color:#345642;white-space:nowrap;background:#fff;border:1px solid #cfdacd;border-radius:10px;align-items:center;gap:6px;height:38px;padding:0 13px;font-size:13px;font-weight:700;display:inline-flex}.pepperscore .header-open-file:hover{background:#f2f7f1;border-color:#b7c8b5}.pepperscore .header-open-file[aria-expanded=true]{background:#edf3ec}.pepperscore .mode-toggle{align-items:stretch;height:38px;padding:2px}.pepperscore .mode-toggle button{justify-content:center;align-items:center;padding:0 12px;font-size:12px;display:inline-flex}.pepperscore .mode-toggle-label-short{display:none}.pepperscore .topbar .transport{gap:10px}@container pepperscore (width<=1140px){.pepperscore .topbar .transport{gap:8px}}@container pepperscore (width<=900px){.pepperscore .topbar .transport{gap:5px}.pepperscore .topbar .play-button{padding:0 12px}.pepperscore .topbar .header-open-file{padding:0 10px}.pepperscore .mode-toggle button{min-width:36px;padding:0 6px;font-size:12px}.pepperscore .mode-toggle-label-full{display:none}.pepperscore .mode-toggle-label-short{display:inline}}@container pepperscore (width<=580px){.pepperscore .topbar{padding:0 8px}.pepperscore .topbar .transport{gap:6px}.pepperscore .transport>.header-control>.icon-button,.pepperscore .topbar .header-more-toggle{width:38px;height:38px}}@container pepperscore (width<=360px){.pepperscore .topbar{padding:0 4px}.pepperscore .topbar .transport{gap:3px}.pepperscore .transport>.header-control>.icon-button,.pepperscore .topbar .header-more-toggle{width:36px;height:36px}.pepperscore .play-button,.pepperscore .header-open-file,.pepperscore .mode-toggle{height:36px}.pepperscore .topbar .play-button{gap:4px;padding:0 8px;font-size:12px}.pepperscore .topbar .play-button.is-loading svg{display:none}.pepperscore .topbar .header-open-file{gap:4px;padding:0 7px;font-size:12px}.pepperscore .mode-toggle{padding:1px}.pepperscore .mode-toggle button{min-width:34px;padding:0 4px}}.pepperscore .ps-portrait .score-content{padding-bottom:calc(70px + var(--page-tail,0px))}.pepperscore .score-system.is-pending{opacity:.7;background:repeating-linear-gradient(#0000 0 22px,#f3f4ef 22px 23px);border-radius:6px}.pepperscore .score-viewport{overflow-anchor:none}.pepperscore .reader-notices{z-index:50;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 32px);display:flex;position:absolute;bottom:65px;left:50%;transform:translate(-50%)}.pepperscore .reader-notices>*{pointer-events:auto}.pepperscore .reader-notices .playback-notice{max-width:100%;position:static;transform:none}.pepperscore .large-file-notice,.pepperscore .reopen-banner{color:#46604d;background:#f2f6f0;border:1px solid #cddbcc;border-radius:8px;align-items:center;gap:10px;max-width:100%;padding:10px 12px;font-size:12px;line-height:1.4;display:flex;box-shadow:0 6px 20px #34564218}.pepperscore .large-file-notice-icon,.pepperscore .reopen-banner-icon{flex:none}.pepperscore .large-file-notice-dismiss{color:inherit;background:0 0;border:0;flex:none;place-items:center;display:grid}.pepperscore .reopen-banner{flex-wrap:wrap;row-gap:8px}.pepperscore .reopen-banner-body{flex-direction:column;flex:180px;min-width:0;display:flex}.pepperscore .reopen-banner-text{overflow-wrap:anywhere}.pepperscore .reopen-banner-name{font-weight:600}.pepperscore .reopen-banner-privacy{color:#7d8f80;font-size:11px}.pepperscore .reopen-banner-actions{flex:none;align-items:center;gap:6px;display:flex}.pepperscore .reopen-banner-actions button{color:#46604d;background:#fff;border:1px solid #cddbcc;border-radius:7px;height:30px;padding:0 11px;font-size:11px;font-weight:700}.pepperscore .reopen-banner-actions .reopen-banner-reopen{color:#fff;background:#365c42;border-color:#365c42}.pepperscore .reopen-banner-actions .reopen-banner-reopen:hover{background:#284c34}.pepperscore .reopen-banner-actions .reopen-banner-later:hover,.pepperscore .reopen-banner-actions .reopen-banner-forget:hover{background:#eef3ec}.pepperscore .ps-toast.is-out-of-memory{flex-wrap:wrap;row-gap:8px;max-width:min(460px,100% - 40px)}.pepperscore .ps-toast-text,.pepperscore .ps-error-text{flex:220px;line-height:1.45}.pepperscore .oom-retry-button{color:#fff;background:#9a482d;border:1px solid #9a482d;border-radius:7px;height:30px;padding:0 11px;font-size:11px;font-weight:700}.pepperscore .ps-toast .oom-retry-button{color:#fff;background:#9a482d;border:1px solid #9a482d;align-items:center;display:inline-flex}.pepperscore .oom-retry-button:hover,.pepperscore .ps-toast .oom-retry-button:hover{background:#7f3920}.pepperscore .ps-error .oom-retry-button{margin-top:8px}.pepperscore .ps-error{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pepperscore .forget-last-file{color:#8a6a5e}.pepperscore .score-viewport{scrollbar-gutter:stable}.pepperscore[data-ps-height=natural] .score-viewport{scrollbar-gutter:auto;overflow-y:hidden}.pepperscore .mixer-panel:focus:not(:focus-visible),.pepperscore .instrument-picker-panel:focus:not(:focus-visible){outline:none}.pepperscore .ps-compact-play{z-index:9;color:#fff;background:#345642;border-radius:50%;width:36px;height:36px;position:absolute;top:8px;right:8px;box-shadow:0 3px 8px #34564233}.pepperscore .topbar .ps-compact-play{top:50%;transform:translateY(-50%)}.pepperscore .ps-compact-play:hover{background:#254633}.pepperscore .ps-compact-play.is-loading{opacity:.75}.pepperscore .no-page-controls.ps-portrait .edge-end,.pepperscore .no-page-controls.ps-landscape .edge-fade{bottom:0}.pepperscore .app-shell.no-drawer .ps-toast,.pepperscore .app-shell.no-drawer .reader-notices{bottom:12px}.pepperscore[data-ps-height=natural]{min-height:120px}.pepperscore[data-ps-height=natural] .ps-landscape .score-content{grid-template-rows:auto auto}.pepperscore[data-ps-clock] .score-system svg .reader-note,.pepperscore[data-ps-clock] .score-system svg .measure{cursor:pointer}.pepperscore .topbar .header-open-file{color:#486b51;background:#fff;border:1px solid #dfe5dc;transition:background .15s,border-color .15s,box-shadow .15s;box-shadow:0 1px 2px #34564210}.pepperscore .topbar .header-open-file:hover{background:#f2f7f1;border-color:#b9cdb9}.pepperscore .topbar .header-open-file:focus-visible{outline-offset:2px;border-color:#8fb89a;outline:2px solid #8fb89a}.pepperscore .topbar .header-open-file[aria-expanded=true]{background:#edf3ec;border-color:#8fb89a}.pepperscore .open-dialog-backdrop{z-index:115;background:#17271b66;place-items:center;padding:16px;display:grid;position:absolute;inset:0;overflow:auto}.pepperscore .open-dialog{overscroll-behavior:contain;color:#344c38;background:#fff;border:1px solid #e2e9e0;border-radius:16px;flex-direction:column;width:min(560px,100%);max-height:min(88%,760px);padding:19px 20px 20px;font-family:Poppins,Arial,sans-serif;display:flex;overflow:auto;box-shadow:0 18px 60px #15251a40}.pepperscore .open-dialog-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.pepperscore .open-dialog-title{color:#345642;align-items:center;gap:9px;min-width:0;display:flex}.pepperscore .open-dialog-title-text{margin:0;font-size:17px;font-weight:650}.pepperscore .open-dialog-intro{color:#78867a;margin:3px 0 12px;font-size:12px;line-height:1.5}.pepperscore .open-dialog-formats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 0 16px;padding:0;list-style:none;display:grid}.pepperscore .open-dialog-format{background:#f8faf7;border:1px solid #e2e8e0;border-radius:10px;flex-direction:column;gap:1px;min-width:0;padding:8px 11px;display:flex}.pepperscore .open-dialog-format-name{color:#345642;font-size:12px;font-weight:700}.pepperscore .open-dialog-format-detail{color:#7c8a7e;overflow-wrap:anywhere;font-size:11px}.pepperscore .open-dialog-entry-label{color:#536055;margin:0 0 6px;font-size:11px;font-weight:700;display:block}.pepperscore .open-dialog-dropzone{background:#fdfefc;border:1.5px dashed #c9d8c8;border-radius:12px;transition:border-color .15s,background .15s,box-shadow .15s;position:relative}.pepperscore .open-dialog-dropzone:focus-within{border-color:#8fb89a;box-shadow:0 0 0 3px #8fb89a2e}.pepperscore .open-dialog-dropzone.is-drag-over{background:#f0f6ef;border-style:solid;border-color:#486b51;box-shadow:0 0 0 4px #486b5124}.pepperscore .open-dialog-abc-input{resize:vertical;color:#3e4f41;background:0 0;border:0;border-radius:12px;outline:none;width:100%;min-height:148px;padding:12px 13px;font-family:ui-monospace,monospace;font-size:12px;line-height:1.55;display:block}.pepperscore .open-dialog-abc-input::placeholder{color:#a9b5aa}.pepperscore .open-dialog-drop-overlay{color:#345642;pointer-events:none;background:#f0f6ef;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.pepperscore .open-dialog-drop-text{font-size:13px;font-weight:700}.pepperscore .open-dialog-spinner{width:22px;height:22px}.pepperscore .open-dialog-tip{color:#78867a;margin:8px 0 0;font-size:11.5px;line-height:1.5}.pepperscore .open-dialog-tip-keys{color:#9aa69b}.pepperscore .open-dialog-message{border-radius:10px;margin:10px 0 0;padding:9px 11px;font-size:12px;line-height:1.45}.pepperscore .open-dialog-message.is-error{color:#9a482d;background:#fff3ee;border:1px solid #e9c7bb}.pepperscore .open-dialog-message.is-hint{color:#6b5a1f;background:#fdf8e9;border:1px solid #eadcae}.pepperscore .open-dialog-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.pepperscore .open-dialog-browse{color:#345642;background:#fff;border:1px solid #dfe5dc;border-radius:10px;align-items:center;gap:8px;height:37px;padding:0 13px;font-size:12px;font-weight:700;display:inline-flex}.pepperscore .open-dialog-browse:hover{background:#f2f7f1;border-color:#b9cdb9}.pepperscore .open-dialog-open-abc{border-radius:10px;height:37px;margin-left:auto;font-size:12px}.pepperscore .open-dialog-open-abc:disabled{cursor:not-allowed;opacity:.45}.pepperscore .open-dialog button:focus-visible{outline-offset:2px;outline:2px solid #8fb89a}.pepperscore .open-dialog-choices{flex-direction:column;min-height:0;display:flex}.pepperscore .open-dialog-choices-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.pepperscore .open-dialog-choices-title{color:#344c38;margin:0;font-size:13px;font-weight:700}.pepperscore .open-dialog-choices-count{color:#87968a;margin-left:6px;font-size:11px;font-weight:500}.pepperscore .open-dialog-choices-back{margin:0}.pepperscore .open-dialog-choices-note{color:#8a948a;margin:0 0 6px;font-size:11px}.pepperscore .open-dialog-choice-list{background:#f8faf7;border:1px solid #e2e8e0;border-radius:12px;flex-direction:column;gap:5px;max-height:320px;margin:0;padding:4px;list-style:none;display:flex;overflow:auto}.pepperscore .open-dialog-choice{color:#344c38;text-align:left;background:#fff;border:1px solid #e2e8e0;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:9px 11px;display:grid}.pepperscore .open-dialog-choice:hover,.pepperscore .open-dialog-choice:focus-visible{background:#f2f7f1;border-color:#8fb89a}.pepperscore .open-dialog-choice-icon{color:#6b8a6e}.pepperscore .open-dialog-choice-text{flex-direction:column;min-width:0;display:flex}.pepperscore .open-dialog-choice-name{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.pepperscore .open-dialog-choice-path{color:#87968a;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.pepperscore .open-dialog-choice-format{color:#486b51;white-space:nowrap;background:#edf3ec;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:700}@container pepperscore (width<=480px){.pepperscore .open-dialog-backdrop{place-items:start center;padding:10px}.pepperscore .open-dialog{max-height:calc(100% - 20px);padding:15px}.pepperscore .open-dialog-formats{grid-template-columns:1fr 1fr;gap:6px}.pepperscore .open-dialog-format{padding:7px 9px}.pepperscore .open-dialog-abc-input{min-height:120px}.pepperscore .open-dialog-actions>button{flex:auto;justify-content:center}.pepperscore .open-dialog-open-abc{margin-left:0}}@container pepperscore (width<=340px){.pepperscore .open-dialog-formats{grid-template-columns:1fr}}.pepperscore .open-dialog:focus:not(:focus-visible){outline:none}
5
+ .pepperscore{isolation:isolate;color:#242824;font-synthesis:none;text-align:left;background:#fff;outline:none;flex-direction:column;font-family:Poppins,Arial,sans-serif;line-height:normal;display:flex;position:relative;overflow:hidden;container:pepperscore/inline-size}.pepperscore:focus-visible,.pepperscore .mixer-panel:focus-visible,.pepperscore .instrument-picker-panel:focus-visible,.pepperscore .open-dialog:focus-visible{outline-offset:-2px;outline:2px solid #8fb89a}.pepperscore .bpm-control input:focus-visible{outline-offset:2px;outline:2px solid #8fb89a}.pepperscore[data-ps-height=auto]{height:100%;min-height:480px}.pepperscore[data-ps-height=fill]{height:100%}.pepperscore[data-ps-height=natural]{height:auto}.pepperscore .app-shell{flex:auto;min-height:0}.pepperscore[data-ps-height=natural] .score-viewport{flex:none;height:auto}.pepperscore :where(h1,h2,h3,h4,h5,h6,p,ul,ol,li,dl,dd,figure,blockquote,hr,fieldset,legend,button,input,select,option,textarea,img,label,output,small,strong,a,table){all:revert}.pepperscore :where(svg){vertical-align:baseline;display:inline}.pepperscore :where([hidden]){display:none}.pepperscore,.pepperscore *{box-sizing:border-box}.pepperscore button,.pepperscore input,.pepperscore textarea,.pepperscore select{font:inherit}.pepperscore button{cursor:pointer}.pepperscore button:disabled{cursor:wait;opacity:.65}.pepperscore .app-shell{padding-bottom:67px;overflow:hidden}.pepperscore .topbar{z-index:20;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fbfaf8f0;border-bottom:1px solid #e9e8e4;grid-template-columns:1fr auto 1fr;align-items:center;height:76px;padding:0 5.3%;display:grid;position:sticky;top:0}.pepperscore .brand{letter-spacing:-.065em;align-items:center;gap:11px;font-size:20px;font-weight:700;display:flex}.pepperscore .brand-mark{color:#486b51;place-items:center;width:29px;height:33px;font-family:Georgia,serif;font-size:31px;font-weight:400;display:grid}.pepperscore .transport{align-items:center;gap:13px;display:flex}.pepperscore .icon-button{color:#657069;background:0 0;border:0;border-radius:9px;place-items:center;width:36px;height:36px;display:grid}.pepperscore .icon-button:hover,.pepperscore .page-controls button:hover{background:#eeefe9}.pepperscore .play-button{color:#fff;background:#345642;border:0;border-radius:10px;align-items:center;gap:9px;padding:10px 19px;font-size:13px;font-weight:700;display:flex;box-shadow:0 3px 8px #34564224}.pepperscore .play-button:hover{background:#254633}.pepperscore .bpm-control{color:#8c948d;letter-spacing:.1em;align-items:center;gap:8px;margin-left:10px;font-size:10px;font-weight:700;display:flex}.pepperscore .bpm-control input{text-align:center;color:#303c32;appearance:textfield;background:0 0;border:0;border-bottom:1px solid #c9d0c8;outline:none;width:47px;padding:4px 0;font-size:14px;font-weight:700}.pepperscore .bpm-control input::-webkit-inner-spin-button{appearance:none}.pepperscore .top-actions{justify-self:end}.pepperscore .key-hint,.pepperscore .ps-eyebrow{letter-spacing:.18em;color:#879289;font-size:10px;font-weight:700}.pepperscore .mobile-menu{display:none}.pepperscore .reader-head{justify-content:space-between;align-items:flex-end;gap:20px;max-width:1340px;height:165px;margin:auto;padding:37px 56px 22px;display:flex}.pepperscore .reader-head h1{letter-spacing:-.035em;margin:9px 0 5px;font-family:Newsreader,Georgia,serif;font-size:39px;font-weight:400;line-height:1.08}.pepperscore .reader-head p{color:#8f9790;margin:0;font-size:12px}.pepperscore .mode-toggle{background:#f0f0ec;border:1px solid #e5e7e1;border-radius:10px;flex-shrink:0;padding:3px;display:flex}.pepperscore .mode-toggle button{color:#869087;background:0 0;border:0;border-radius:7px;padding:9px 14px;font-size:11px;font-weight:700}.pepperscore .mode-toggle button.is-selected{color:#345642;background:#fff;box-shadow:0 1px 5px #253b2e16}.pepperscore .reader-area{max-width:1260px;margin:0 auto;padding:0 38px;position:relative}.pepperscore .score-viewport{scrollbar-width:thin;scrollbar-color:#d8ddd6 transparent;background:#fff;border:1px solid #e9e9e4;border-radius:15px;min-height:390px;position:relative;overflow:auto;box-shadow:0 12px 46px #5966570a}.pepperscore .score-content{min-height:100%;padding:35px 12px 70px;position:relative}.pepperscore .ps-portrait .score-content{width:100%}.pepperscore .ps-landscape .score-content{align-items:flex-start;width:max-content;min-width:100%;padding:90px 44px;display:flex}.pepperscore .score-system{flex:none;position:relative}.pepperscore .score-system svg{display:block;overflow:visible}.pepperscore .score-system svg .reader-note{transition:filter .12s}.pepperscore .score-system svg .reader-note.is-playing{filter:drop-shadow(0 0 4px #e6aa4f);stroke:#b87218;fill:#b87218}.pepperscore .score-system svg .ps-cursor{filter:drop-shadow(0 0 3px var(--ps-cursor,#2f6fed));stroke:var(--ps-cursor,#2f6fed);fill:var(--ps-cursor,#2f6fed)}.pepperscore .score-system svg .ps-selection{stroke:var(--ps-selection,#2f6a9a);fill:var(--ps-selection,#2f6a9a)}.pepperscore .score-system svg .ps-transposed{stroke:var(--ps-transposed,#d9741c);fill:var(--ps-transposed,#d9741c)}.pepperscore .score-system svg .ps-highlight-layer{pointer-events:none}.pepperscore .score-system svg .ps-measure-highlight{fill:none;stroke:var(--ps-cursor,#2f6fed);stroke-width:2px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke;pointer-events:none}.pepperscore[data-ps-clickable] .score-system svg .reader-note,.pepperscore[data-ps-clickable] .score-system svg .measure{cursor:pointer}.pepperscore .annotation{letter-spacing:.02em;pointer-events:none;font-family:Poppins,Arial,sans-serif}.pepperscore .note-label{font-size:calc(15px * var(--ps-note-name-scale,1));fill:#617262;font-weight:600}.pepperscore .count-label{font-size:calc(13px * var(--ps-count-scale,1));fill:#8a978c}.pepperscore .playback-line{pointer-events:none;z-index:2;background:#cd9743;border-radius:2px;width:2px;transition:left 60ms linear;position:absolute;top:9px;bottom:20px;box-shadow:0 0 0 3px #cd97432b}.pepperscore .part-controls{z-index:4;position:absolute;top:35px;left:5px}.pepperscore .ps-landscape .part-controls{top:90px;left:47px}.pepperscore .part-control{justify-content:center;align-items:center;width:40px;height:36px;display:flex;position:absolute;left:0}.pepperscore .part-icon{color:#597660;font-family:Georgia,serif;font-size:19px}.pepperscore .part-control:hover{background:#f3f5ef;border-radius:8px}.pepperscore .edge-fade{z-index:5;pointer-events:none;position:absolute}.pepperscore .ps-portrait .edge-fade{height:25px;left:39px;right:39px}.pepperscore .ps-portrait .edge-start{background:linear-gradient(#fff,#0000);top:1px}.pepperscore .ps-portrait .edge-end{background:linear-gradient(#0000,#fff);bottom:47px}.pepperscore .ps-landscape .edge-fade{width:30px;top:1px;bottom:47px}.pepperscore .ps-landscape .edge-start{background:linear-gradient(90deg,#fff,#0000);left:39px}.pepperscore .ps-landscape .edge-end{background:linear-gradient(90deg,#0000,#fff);right:39px}.pepperscore .page-controls{color:#9ba49b;letter-spacing:.18em;justify-content:center;align-items:center;gap:18px;height:46px;font-size:10px;font-weight:700;display:flex}.pepperscore .page-controls button{color:#607565;background:0 0;border:1px solid #dfe5dc;border-radius:8px;place-items:center;width:29px;height:29px;display:grid}.pepperscore .drawer-handle{z-index:31;color:#4d6353;background:#fff;border:1px solid #e2e8e0;border-bottom:0;border-radius:13px 13px 0 0;justify-content:center;align-items:center;gap:12px;width:220px;height:47px;font-size:12px;font-weight:700;display:flex;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -5px 25px #61706416}.pepperscore .handle-grip{background:#b6c4b6;border-radius:2px;width:24px;height:3px}.pepperscore .drawer-handle svg{transition:transform .2s}.pepperscore .drawer-handle.is-open svg{transform:rotate(180deg)}.pepperscore .drawer-backdrop{z-index:29;background:#18231b45;position:absolute;inset:0}.pepperscore .bottom-drawer{z-index:30;background:#fafbf8;border-radius:22px 22px 0 0;width:100%;max-height:min(82%,780px);padding:27px max(5.3%,50cqw - 665px) 24px;transition:transform .28s;position:absolute;bottom:0;left:0;overflow:auto;transform:translateY(105%);box-shadow:0 -20px 70px #1d2b2060}.pepperscore .bottom-drawer.is-open{transform:translateY(0)}.pepperscore .drawer-handle.is-open{opacity:0;pointer-events:none;bottom:min(82%,780px)}.pepperscore .drawer-top{justify-content:space-between;align-items:start;margin-bottom:23px;display:flex}.pepperscore .drawer-top h2{margin:7px 0 0;font-family:Newsreader,Georgia,serif;font-size:29px;font-weight:400}.pepperscore .drawer-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,272px),1fr));gap:15px;display:grid}.pepperscore .drawer-panel{background:#fff;border:1px solid #e5eae2;border-radius:14px;min-width:0;padding:21px}.pepperscore .drawer-panel h3{color:#344c38;align-items:center;gap:8px;margin:0 0 10px;font-size:14px;display:flex}.pepperscore .drawer-panel h3 svg{color:#6b8a6e}.pepperscore .drawer-panel p{color:#8a948a;margin:0 0 19px;font-size:12px;line-height:1.55}.pepperscore .primary-action{color:#fff;background:#365c42;border:0;border-radius:8px;align-items:center;gap:9px;height:37px;padding:0 14px;font-size:11px;font-weight:700;display:inline-flex}.pepperscore .primary-action:hover{background:#284c34}.pepperscore .text-action{color:#61806a;background:0 0;border:0;align-items:center;gap:7px;margin-top:15px;padding:2px;font-size:11px;font-weight:700;display:flex}.pepperscore .field-label{color:#536055;justify-content:space-between;margin:22px 0 5px;font-size:11px;font-weight:700;display:flex}.pepperscore .field-label span{color:#87968a;font-weight:500}.pepperscore .ps-range{accent-color:#5f8068;width:100%;height:4px}.pepperscore .ps-switch-row{color:#5d6b61;border-top:1px solid #f0f2ee;justify-content:space-between;align-items:center;padding:10px 0;font-size:11px;display:flex}.pepperscore .ps-switch{background:#d9dfd8;border:0;border-radius:15px;width:29px;height:17px;padding:2px;position:relative}.pepperscore .ps-switch:after{content:"";background:#fff;border-radius:50%;width:13px;height:13px;transition:transform .15s;position:absolute;top:2px;left:2px}.pepperscore .ps-switch.is-on{background:#5d8164}.pepperscore .ps-switch.is-on:after{transform:translate(12px)}.pepperscore .abc-panel textarea{resize:vertical;color:#48594b;background:#fdfefc;border:1px solid #e6ebe4;border-radius:8px;outline-color:#7d9c80;width:100%;height:104px;padding:9px 11px;font-family:monospace;font-size:10px;line-height:1.5}.pepperscore .abc-panel .primary-action{margin-top:9px}.pepperscore .drawer-foot{color:#a0aaa0;letter-spacing:.05em;justify-content:space-between;margin-top:20px;font-size:10px;display:flex}.pepperscore .ps-error,.pepperscore .ps-toast{color:#9a482d;background:#fff3ee;border:1px solid #e9c7bb;border-radius:8px;padding:10px 12px;font-size:12px}.pepperscore .ps-error{margin-top:13px}.pepperscore .ps-toast{z-index:50;align-items:center;gap:15px;display:flex;position:absolute;bottom:65px;right:20px}.pepperscore .ps-toast button{color:inherit;background:0 0;border:0;place-items:center;display:grid}.pepperscore .playback-notice{z-index:50;color:#46604d;background:#f2f6f0;border:1px solid #cddbcc;border-radius:8px;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:10px 12px;font-size:12px;display:flex;position:absolute;bottom:65px;left:50%;transform:translate(-50%);box-shadow:0 6px 20px #34564218}.pepperscore .playback-notice-icon{flex:none}.pepperscore .playback-notice button{color:inherit;background:0 0;border:0;flex:none;place-items:center;display:grid}@container pepperscore (width<=850px){.pepperscore .topbar{padding:0 22px}.pepperscore .key-hint{display:none}.pepperscore .mobile-menu{display:grid}.pepperscore .reader-head{padding:30px 26px 20px}.pepperscore .reader-area{padding:0 16px}.pepperscore .ps-portrait .edge-fade{left:17px;right:17px}.pepperscore .ps-landscape .edge-start{left:17px}.pepperscore .ps-landscape .edge-end{right:17px}.pepperscore .bottom-drawer{padding:26px 24px}}@container pepperscore (width<=580px){.pepperscore .topbar{grid-template-columns:1fr auto auto;gap:10px;height:64px;padding:0 14px}.pepperscore .brand{font-size:17px}.pepperscore .brand-mark{width:23px;font-size:25px}.pepperscore .transport{gap:3px}.pepperscore .transport .reset{display:none}.pepperscore .bpm-control{gap:3px;margin-left:4px}.pepperscore .bpm-control input{width:34px}.pepperscore .reader-head{height:auto;min-height:150px;padding:26px 19px 15px;display:block}.pepperscore .reader-head h1{font-size:31px}.pepperscore .mode-toggle{width:max-content;margin-top:17px}.pepperscore .reader-area{padding:0 7px}.pepperscore .score-viewport{min-height:330px}.pepperscore .ps-portrait .edge-fade{left:8px;right:8px}.pepperscore .ps-landscape .edge-start{left:8px}.pepperscore .ps-landscape .edge-end{right:8px}.pepperscore .drawer-foot span{display:none}.pepperscore .bottom-drawer{padding:20px}.pepperscore .page-controls{font-size:9px}}@media (pointer:coarse){.pepperscore .score-viewport{touch-action:none}}.pepperscore .ps-landscape .part-controls{left:5px}.pepperscore .topbar{justify-content:center;height:54px;padding:0 12px;display:flex}.pepperscore .transport{gap:9px}.pepperscore .reader-head{max-width:none;height:126px;padding:21px 22px 15px}.pepperscore .reader-head h1{margin:6px 0 3px;font-size:32px}.pepperscore .reader-area.ps-portrait{max-width:none;padding:0 10px}.pepperscore .ps-portrait .score-content{padding:24px 4px 70px}.pepperscore .ps-portrait .part-controls{top:24px;left:4px}.pepperscore .drawer-handle{width:184px;left:10px;transform:none}@container pepperscore (width<=580px){.pepperscore .topbar{height:50px;padding:0 10px}.pepperscore .transport .stop-button{display:grid}.pepperscore .reader-head{height:auto;min-height:0;padding:17px 14px 12px}.pepperscore .reader-head h1{font-size:27px}.pepperscore .reader-area.ps-portrait{padding:0 6px}.pepperscore .ps-portrait .edge-fade{left:7px;right:7px}.pepperscore .score-viewport{min-height:330px}.pepperscore .drawer-handle{width:178px;left:6px}.pepperscore .page-controls{justify-content:flex-end;gap:8px;padding-right:8px}.pepperscore .page-controls span{display:none}}.pepperscore .score-content{display:block}.pepperscore .score-stage,.pepperscore .score-staves{width:100%;position:relative}.pepperscore .score-meta{text-align:center;padding:0 30px 18px}.pepperscore .score-meta h1{letter-spacing:-.025em;margin:0 0 4px;font-family:Newsreader,Georgia,serif;font-size:30px;font-weight:400;line-height:1.12}.pepperscore .score-meta p{color:#6f776f;margin:3px 0;font-size:12px;line-height:1.45}.pepperscore .score-meta .score-subtitle{color:#4f5850;font-family:Newsreader,Georgia,serif;font-size:18px}.pepperscore .score-meta .score-credit{color:#8b948c;font-size:10px}.pepperscore .ps-portrait .part-controls,.pepperscore .ps-landscape .part-controls{top:0;left:0}.pepperscore .ps-landscape .score-content{width:max-content;min-width:100%;padding:25px 44px 70px;display:block}.pepperscore .ps-landscape .score-stage,.pepperscore .ps-landscape .score-staves{width:max-content}.pepperscore .ps-landscape .score-staves{align-items:flex-start;display:flex}.pepperscore .ps-landscape .score-meta{width:min(900px,100cqw - 120px);min-height:0}@container pepperscore (width<=580px){.pepperscore .score-meta h1{font-size:24px}.pepperscore .score-meta .score-subtitle{font-size:16px}}.pepperscore .topbar{background:#fffffff5}.pepperscore .reader-area,.pepperscore .reader-area.ps-portrait{max-width:none;margin:0;padding:0}.pepperscore .score-viewport{box-shadow:none;border:0;border-radius:0}.pepperscore .ps-portrait .edge-fade{left:0;right:0}.pepperscore .ps-landscape .edge-start{left:0}.pepperscore .ps-landscape .edge-end{right:0}.pepperscore .part-control{transform:translateY(-50%)}.pepperscore .part-icon{object-fit:contain;width:28px;height:28px;display:block}.pepperscore .font-choice{color:#5d6b61;justify-content:space-between;align-items:center;gap:8px;margin-top:17px;font-size:11px;display:flex}.pepperscore .font-toggle{background:#f5f7f3;border:1px solid #e5e9e3;border-radius:8px;gap:2px;padding:2px;display:flex}.pepperscore .font-toggle button{color:#718073;background:0 0;border:0;border-radius:6px;padding:6px 8px;font-size:10px}.pepperscore .font-toggle button.is-selected{color:#345642;background:#fff;font-weight:700;box-shadow:0 1px 4px #253b2e18}.pepperscore .font-load-progress{z-index:6;pointer-events:none;width:100%;height:2px;margin-bottom:-2px;position:sticky;top:0;left:0;overflow:hidden}.pepperscore .score-content{transform-origin:50% 0;transition:opacity .34s ease-out,transform .5s cubic-bezier(.16,1,.3,1)}.pepperscore .ps-landscape .score-content{transform-origin:0}.pepperscore .score-content.is-painting{opacity:0;transition:opacity .16s ease-in,transform 0s linear .16s;transform:scale(1.06)}.pepperscore .score-loading{z-index:8;color:#738477;letter-spacing:.04em;pointer-events:none;justify-content:center;align-items:center;gap:11px;font-size:12px;display:flex;position:absolute;inset:0}.pepperscore .score-loading-spinner{border:2px solid #dfe8dd;border-top-color:#5d8164;border-radius:50%;width:22px;height:22px;animation:.8s linear infinite ps-score-loading-spin}@keyframes ps-score-loading-spin{to{transform:rotate(360deg)}}.pepperscore .font-load-progress:before{content:"";background:#6f9576;width:30%;height:100%;animation:1.1s ease-in-out infinite ps-font-loading-sweep;display:block}@keyframes ps-font-loading-sweep{0%{transform:translate(-100%)}to{transform:translate(435%)}}@media (prefers-reduced-motion:reduce){.pepperscore .font-load-progress:before{opacity:.65;width:100%;animation:none}.pepperscore .score-content,.pepperscore .score-content.is-painting{transition:none;transform:none}.pepperscore .score-loading-spinner{animation:none}}.pepperscore .app-shell{flex-direction:column;min-height:0;padding-bottom:0;display:flex;overflow:hidden}.pepperscore .topbar{z-index:20;flex:none;position:sticky;top:0}.pepperscore .reader-area,.pepperscore .reader-area.ps-portrait{flex-direction:column;flex:1;min-height:0;display:flex}.pepperscore .score-viewport{flex:1;height:auto;min-height:0}.pepperscore .page-controls{flex:none}.pepperscore .ps-portrait .score-content{flex-direction:column;justify-content:safe center;display:flex}.pepperscore .ps-landscape .score-content{flex-direction:column;justify-content:safe center;min-height:100%;padding-top:24px;padding-bottom:24px;display:flex}.pepperscore .drawer-backdrop{z-index:100}.pepperscore .bottom-drawer{z-index:102}.pepperscore .drawer-handle{z-index:103}.pepperscore .ps-landscape .score-content{grid-template-rows:minmax(min-content,1fr) auto minmax(0,1fr);align-items:start;display:grid}.pepperscore .ps-landscape .score-meta{grid-row:1;align-self:end}.pepperscore .ps-landscape .score-stage{grid-row:2}.pepperscore .ps-landscape .score-content:after{content:"";grid-row:3}.pepperscore .ps-landscape .score-content{height:100%;min-height:0}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-content{width:max(100%,var(--landscape-content-width,100%));height:100%;min-height:0;padding:0;display:block;position:relative}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-content:after{display:none}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-stage{top:calc(50% - var(--landscape-staff-center,70px));position:absolute;left:44px;transform:none}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-meta{left:44px;bottom:calc(50% + var(--landscape-staff-center,70px) - var(--landscape-meta-offset,35px));padding:0;position:absolute}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-meta h1{margin-bottom:0;font-size:22px;line-height:1.1}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-meta p{margin:0;font-size:10px}.pepperscore[data-ps-tiny][data-ps-wide] .ps-landscape .score-content:has(.chord-symbol) .score-meta{bottom:calc(50% + var(--landscape-staff-center,70px) - 8px)}.pepperscore[data-ps-tiny][data-ps-wide] .ps-landscape .score-meta{justify-content:center;align-items:baseline;gap:8px;display:flex}.pepperscore[data-ps-tiny][data-ps-wide] .ps-landscape .score-meta h1{white-space:nowrap;font-size:16px}.pepperscore[data-ps-tiny][data-ps-wide] .ps-landscape .score-meta p{white-space:nowrap;font-size:9px}@container pepperscore (width<=580px){.pepperscore .transport{align-items:center}.pepperscore .mode-toggle{margin-top:0}}.pepperscore .chord-symbol{font-size:calc(17px * var(--ps-chord-symbol-scale,1));fill:#465549;font-weight:600}.pepperscore .lyric-label{fill:#485449;font-size:11px}.pepperscore .lyric-phrase{font-size:15px}.pepperscore .header-bars-setting{color:#879289;letter-spacing:.08em;align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex}.pepperscore .header-bars-setting select{color:#345642;letter-spacing:0;background:#fff;border:1px solid #e5e9e3;border-radius:7px;min-width:70px;height:30px;padding:0 6px;font-size:11px}.pepperscore .header-bars-setting.is-disabled{opacity:.55}.pepperscore .header-bars-setting.is-disabled select{cursor:not-allowed}@container pepperscore (width<=580px){.pepperscore .header-bars-setting{letter-spacing:0;gap:3px}.pepperscore .header-bars-setting select{min-width:57px;height:28px;padding:0 3px}}.pepperscore .score-stage .part-controls{width:var(--control-gutter,128px)}.pepperscore .score-stage .part-control{width:calc(var(--control-gutter,128px) - 8px);justify-content:flex-start}.pepperscore .part-name{text-overflow:ellipsis;white-space:nowrap;color:#66766a;min-width:0;font-size:var(--part-font,11px);flex:1;line-height:1.2;overflow:hidden}.pepperscore .ps-portrait .score-system svg{overflow:hidden}.pepperscore .ps-portrait .score-system{contain:paint}.pepperscore .part-control{gap:4px}.pepperscore .instrument-control{width:calc(var(--part-icon,28px) + 4px);height:var(--part-control-height,30px);flex:none;place-items:center;display:grid;position:relative}.pepperscore .staff-eye{width:var(--part-eye,28px);height:var(--part-eye,28px);color:#69816c;background:0 0;border:0;border-radius:6px;flex:none;place-items:center;display:grid}.pepperscore .staff-eye svg{width:calc(var(--part-eye,28px) * .62);height:calc(var(--part-eye,28px) * .62)}.pepperscore .staff-eye:hover,.pepperscore .hidden-staves button:hover{background:#edf3ec}.pepperscore .staff-eye:disabled{opacity:.35;cursor:default}.pepperscore .staff-focus.is-focused{color:#345642;background:#e3ede1}.pepperscore .mixer-visibility-button{width:32px;height:32px}.pepperscore .mixer-visibility-button[aria-pressed=false]{color:#a3ada4}.pepperscore .mixer-visibility-button:disabled{opacity:.35;cursor:default}.pepperscore .hidden-staves{flex-wrap:wrap;justify-content:center;gap:4px;margin:4px 0 10px;display:flex}.pepperscore .hidden-staves button{color:#738075;background:#fff;border:1px solid #e4e9e2;border-radius:6px;align-items:center;gap:4px;max-width:180px;padding:3px 6px;font-size:10px;display:flex}.pepperscore .hidden-staves img{width:16px;height:16px}.pepperscore .hidden-staves span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pepperscore .has-many-staves .score-viewport{touch-action:pan-x pan-y}.pepperscore .reset-staves{margin-top:12px}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape.has-many-staves .score-meta{top:3px;bottom:auto}.pepperscore .inference-row{color:#718073;border-top:0;padding-left:14px}.pepperscore .inference-row input{accent-color:#5d8164;width:14px;height:14px;margin:0}.pepperscore .playback-line{z-index:6;background:#c87925;width:2px;top:0;bottom:0;box-shadow:0 0 0 2px #fff9,0 0 8px #c8792580}.pepperscore .mixer-trigger{color:#486b51;flex:none;width:30px;height:30px}.pepperscore .mixer-backdrop{z-index:110;background:#17271b66;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.pepperscore .mixer-panel{background:#fff;border:1px solid #e2e9e0;border-radius:16px;flex-direction:column;width:min(500px,100%);max-height:min(82%,720px);padding:18px 20px 20px;display:flex;overflow:hidden;box-shadow:0 18px 60px #15251a40}.pepperscore .mixer-heading,.pepperscore .mixer-heading>div{align-items:center;gap:9px;display:flex}.pepperscore .mixer-heading{color:#345642;justify-content:space-between}.pepperscore .mixer-heading h2{margin:0;font-size:17px;font-weight:650}.pepperscore .mixer-panel>p{color:#78867a;margin:3px 0 14px;font-size:12px}.pepperscore .mixer-tracks{scrollbar-width:thin;min-height:0;overflow-y:auto}.pepperscore .mixer-track{border-top:1px solid #edf0eb;grid-template-columns:28px minmax(0,1fr) 34px 142px;align-items:center;gap:9px;min-height:49px;padding:7px 2px;display:grid}.pepperscore .mixer-track img{width:24px;height:24px}.pepperscore .mixer-track-name{text-overflow:ellipsis;white-space:nowrap;color:#344439;font-size:12px;overflow:hidden}.pepperscore .mixer-track-name small{color:#88948a;font-size:10px;display:block}.pepperscore .mixer-track select{color:#345642;background:#fff;border:1px solid #dfe6dc;border-radius:7px;width:100%;height:32px;padding:0 6px;font-size:11px}.pepperscore .pitch-panel .pitch-options{flex-wrap:wrap;align-items:end;gap:30px;display:flex}.pepperscore .pitch-panel .pitch-label{color:#536055;margin-bottom:7px;font-size:11px;font-weight:700;display:block}.pepperscore .semitone-control{align-items:center;gap:4px;display:flex}.pepperscore .semitone-control button{color:#3e6047;background:#fff;border:1px solid #dfe6dc;border-radius:7px;place-items:center;width:30px;height:30px;display:grid}.pepperscore .semitone-control button:disabled{opacity:.4;cursor:default}.pepperscore .semitone-control output{text-align:center;color:#345642;min-width:95px;font-size:12px;font-weight:700}.pepperscore .semitone-control .pitch-reset{margin-left:5px}.pepperscore .pitch-view{width:max-content}.pepperscore .pitch-view button{min-width:85px}.pepperscore .pitch-panel .pitch-hint{margin:11px 0 0;font-size:11px}.pepperscore .pitch-key-control{align-items:center;gap:6px;display:flex}.pepperscore .pitch-key-readout{text-align:center;color:#345642;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:72px;font-size:12px;font-weight:700}.pepperscore .pitch-key-flip{color:#3e6047;white-space:nowrap;background:#fff;border:1px solid #dfe6dc;border-radius:7px;justify-content:center;align-items:center;gap:5px;min-width:96px;height:30px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.pepperscore .pitch-key-flip:not(.is-disabled):hover{background:#f2f7f1}@container pepperscore (width<=580px){.pepperscore .pitch-panel .pitch-options{gap:18px}.pepperscore .pitch-view button{min-width:75px}}.pepperscore .score-system svg text{font-family:var(--score-text-font,Poppins,Arial,sans-serif);font-size-adjust:.45}.pepperscore .score-system svg tspan[font-family]{font-size-adjust:none}.pepperscore .score-system svg .verse text{font-size-adjust:none;font-family:Times,Times New Roman,serif}.pepperscore .score-system svg text.annotation{font-family:var(--annotation-font,Poppins,Arial,sans-serif);font-size-adjust:none}.pepperscore .score-system svg[data-music-font=Petaluma][data-text-font=Sans]{--score-text-font:"Petaluma Script",Poppins,Arial,sans-serif;--annotation-font:"Petaluma Script",Poppins,Arial,sans-serif}.pepperscore .score-system svg[data-music-font=Petaluma] :is(.stem,.ledgerLines)>path{stroke-linecap:round}.pepperscore .instrument-control{color:#486b51;background:0 0;border:0;border-radius:7px;padding:0}.pepperscore .instrument-control:hover,.pepperscore .instrument-control:focus-visible{outline-offset:1px;background:#edf3ec;outline:2px solid #c8dcca}.pepperscore .instrument-control img{object-fit:contain;display:block}.pepperscore .header-open-file{color:#486b51;flex:none}.pepperscore .mixer-voice-button{color:#345642;text-align:left;background:#fff;border:1px solid #dfe6dc;border-radius:7px;justify-content:space-between;align-items:center;gap:4px;width:100%;min-height:32px;padding:3px 7px;font-size:11px;display:flex}.pepperscore .mixer-voice-button:hover{background:#f2f7f1}.pepperscore .mixer-volume{color:#78867a;grid-column:2/-1;align-items:center;gap:9px;font-size:11px;display:flex}.pepperscore .mixer-volume input{accent-color:#588366;flex:1;min-width:0}.pepperscore .mixer-volume output{text-align:right;color:#345642;font-variant-numeric:tabular-nums;min-width:34px}.pepperscore .instrument-picker-backdrop{z-index:120;background:#17271b66;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.pepperscore .instrument-picker-panel{background:#fff;border:1px solid #e2e9e0;border-radius:16px;flex-direction:column;width:min(680px,100%);max-height:min(88%,760px);padding:19px;display:flex;overflow:hidden;box-shadow:0 18px 60px #15251a40}.pepperscore .instrument-picker-heading{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:15px;display:flex}.pepperscore .instrument-picker-heading h2{color:#345642;margin:0;font-size:17px}.pepperscore .instrument-picker-heading p{color:#78867a;margin:3px 0 0;font-size:12px}.pepperscore .instrument-picker-grid{scrollbar-width:thin;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:2px;display:grid;overflow:auto}.pepperscore .instrument-picker-grid button{color:#3c5040;text-align:center;background:#fff;border:1px solid #e5eae2;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:96px;padding:9px 5px;font-size:11px;line-height:1.2;display:flex}.pepperscore .instrument-picker-grid button:hover,.pepperscore .instrument-picker-grid button:focus-visible{background:#f2f7f1;border-color:#8fb89a}.pepperscore .instrument-picker-grid button.is-selected{background:#eaf3e9;border-color:#6c9875;box-shadow:inset 0 0 0 1px #6c9875}.pepperscore .instrument-picker-grid img{object-fit:contain;width:42px;height:42px}@container pepperscore (width<=580px){.pepperscore .instrument-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.pepperscore .instrument-picker-grid button{min-height:80px;font-size:10px}.pepperscore .instrument-picker-grid img{width:32px;height:32px}}.pepperscore .instrument-family-filters{flex-wrap:wrap;gap:5px;margin:0 0 12px;display:flex}.pepperscore .instrument-family-filters button{color:#5b6d5e;white-space:nowrap;background:#fff;border:1px solid #dde7dc;border-radius:999px;padding:6px 9px;font-size:10px}.pepperscore .instrument-family-filters button:hover,.pepperscore .instrument-family-filters button:focus-visible{background:#f2f7f1}.pepperscore .instrument-family-filters button.is-selected{color:#345642;background:#eaf3e9;border-color:#6c9875;font-weight:700}.pepperscore .instrument-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr));min-height:0}.pepperscore .instrument-picker-pages{color:#718073;justify-content:center;align-items:center;gap:14px;padding-top:12px;font-size:11px;display:flex}.pepperscore .instrument-picker-pages button{color:#3e6047;background:#fff;border:1px solid #dfe6dc;border-radius:7px;place-items:center;width:29px;height:29px;display:grid}.pepperscore .instrument-picker-pages button:hover:not(:disabled){background:#edf3ec}.pepperscore .instrument-picker-pages button:disabled{opacity:.4;cursor:default}@container pepperscore (width<=580px){.pepperscore .instrument-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.pepperscore .instrument-picker-grid button{min-height:72px;padding:5px 2px;font-size:9px}.pepperscore .instrument-picker-grid img{width:28px;height:28px}.pepperscore .instrument-family-filters{gap:4px;margin-bottom:8px}.pepperscore .instrument-family-filters button{padding:5px 7px;font-size:9px}.pepperscore .instrument-picker-pages{padding-top:8px}}.pepperscore[data-ps-short] .instrument-picker-panel{max-height:calc(100% - 16px);padding:10px}.pepperscore[data-ps-short] .instrument-picker-heading{margin-bottom:7px}.pepperscore[data-ps-short] .instrument-family-filters{margin-bottom:6px}.pepperscore[data-ps-short] .instrument-picker-grid button{gap:2px;min-height:53px}.pepperscore[data-ps-short] .instrument-picker-grid img{width:23px;height:23px}.pepperscore[data-ps-short] .instrument-picker-pages{padding-top:5px}.pepperscore .score-stage .part-control{height:var(--part-control-height,36px)}.pepperscore .part-controls .part-icon{width:var(--part-icon,28px);height:var(--part-icon,28px)}.pepperscore .transport>.header-control{display:contents}.pepperscore .header-stave-scale{color:#879289;letter-spacing:.08em;align-items:center;gap:6px;font-family:Poppins,Arial,sans-serif;font-size:10px;font-weight:700;display:flex}.pepperscore .header-stave-scale-input{accent-color:#5d8164;cursor:pointer;width:88px;height:18px;margin:0}.pepperscore .header-stave-scale-value{color:#345642;letter-spacing:0;text-align:right;font-variant-numeric:tabular-nums;min-width:36px;font-size:11px}.pepperscore .header-more,.pepperscore .header-secondary-panel,.pepperscore .header-secondary-panel>.header-control{display:contents}.pepperscore .header-more-toggle{color:#486b51;display:none}.pepperscore .header-more-toggle.is-open{background:#edf3ec}.pepperscore .mixer-trigger-label{display:none}@container pepperscore (width<=1140px){.pepperscore .header-stave-scale-label,.pepperscore .bpm-control span,.pepperscore .header-bars-setting>span{display:none}.pepperscore .bpm-control{margin-left:0}.pepperscore .header-stave-scale-input{width:64px}}@container pepperscore (width<=900px){.pepperscore .header-stave-scale-input{width:56px}}@container pepperscore (width<=640px){.pepperscore .header-stave-scale-input{width:44px}.pepperscore .topbar .header-bars-setting select{min-width:58px}}.pepperscore .header-transpose{color:#879289;letter-spacing:.08em;align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex}.pepperscore .header-transpose-controls{align-items:center;gap:3px;display:flex}.pepperscore .header-transpose-controls button,.pepperscore .header-key-flip-button{color:#3e6047;background:#fff;border:1px solid #dfe6dc;border-radius:7px;justify-content:center;align-items:center;height:30px;padding:0;display:inline-flex}.pepperscore .header-transpose-controls button{flex:none;width:30px}.pepperscore .header-transpose-controls button:disabled{opacity:.4;cursor:default}.pepperscore .header-transpose-readout{text-align:center;white-space:nowrap;color:#345642;letter-spacing:0;font-variant-numeric:tabular-nums;flex:none;width:66px;font-size:11px;font-weight:700;overflow:hidden}.pepperscore .header-transpose-label,.pepperscore .header-key-flip-caption,.pepperscore .header-tab-view-caption{display:none}.pepperscore .header-key-flip{color:#879289;letter-spacing:.08em;align-items:center;gap:6px;font-size:10px;font-weight:700;display:flex}.pepperscore .header-key-flip-button{white-space:nowrap;color:#345642;letter-spacing:0;font-variant-numeric:tabular-nums;flex:none;gap:4px;width:84px;font-size:11px;font-weight:700;overflow:hidden}.pepperscore .header-key-flip-icon,.pepperscore .pitch-key-flip-icon{font-size:14px;line-height:1}.pepperscore .header-key-flip-button.is-disabled,.pepperscore .pitch-key-flip.is-disabled{opacity:.45;cursor:default}.pepperscore .header-transpose-controls button:not(:disabled):hover,.pepperscore .header-key-flip-button:not(.is-disabled):hover{background:#f2f7f1}@container pepperscore (width<=1140px){.pepperscore .header-key-flip-label{display:none}.pepperscore .header-key-flip-button{width:30px}}@container pepperscore (width<=900px){.pepperscore .header-transpose-readout{width:58px;font-size:10px}.pepperscore .header-transpose-controls button{width:28px}}@container pepperscore (width<=760px){.pepperscore .header-more{display:flex}.pepperscore .topbar .header-more-toggle{display:grid}.pepperscore .header-secondary-panel{z-index:40;background:#fff;border:1px solid #e2e9e0;border-radius:12px;flex-direction:column;gap:4px;width:min(340px,100cqw - 16px);padding:10px 12px;font-family:Poppins,Arial,sans-serif;display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 12px 36px #15251a2e}.pepperscore .header-more[data-open=true] .header-secondary-panel{display:flex}.pepperscore .header-secondary-panel>.header-control{border-top:1px solid #f0f2ee;justify-content:space-between;align-items:center;min-height:40px;padding:2px 0;display:flex}.pepperscore .header-secondary-panel>.header-control:first-child{border-top:0}.pepperscore .header-secondary-panel .bpm-control{justify-content:space-between;width:100%;margin-left:0}.pepperscore .header-secondary-panel .bpm-control span,.pepperscore .header-secondary-panel .header-stave-scale-label,.pepperscore .header-secondary-panel .header-bars-setting>span{display:inline}.pepperscore .header-secondary-panel .header-bars-setting,.pepperscore .header-secondary-panel .header-stave-scale{justify-content:space-between;width:100%}.pepperscore .header-secondary-panel .header-bars-setting select{min-width:57px}.pepperscore .header-secondary-panel .header-stave-scale-input{flex:1;width:auto;min-width:0}.pepperscore .header-secondary-panel .mixer-trigger{align-items:center;gap:8px;width:auto;height:34px;padding:0 8px;font-size:11px;font-weight:700;display:flex}.pepperscore .header-secondary-panel .mixer-trigger-label{display:inline}.pepperscore .header-secondary-panel .header-control-mixer{justify-content:flex-start}.pepperscore .header-secondary-panel .header-transpose,.pepperscore .header-secondary-panel .header-key-flip{justify-content:space-between;width:100%}.pepperscore .header-secondary-panel .header-transpose-label,.pepperscore .header-secondary-panel .header-key-flip-caption,.pepperscore .header-secondary-panel .header-tab-view-caption{display:inline}.pepperscore .header-secondary-panel .header-tab-view{color:#879289;letter-spacing:.08em;justify-content:space-between;align-items:center;gap:8px;width:100%;font-size:10px;font-weight:700;display:flex}.pepperscore .header-secondary-panel .header-transpose-readout{width:66px;font-size:11px}.pepperscore .header-secondary-panel .header-transpose-controls button{width:34px;height:34px}.pepperscore .header-secondary-panel .header-key-flip-button{width:96px;height:34px}.pepperscore .header-secondary-panel .header-key-flip-label{display:inline}}@container pepperscore (width<=580px){.pepperscore .mixer-panel{padding:15px}.pepperscore .mixer-track{grid-template-columns:24px minmax(0,1fr) 32px 120px;gap:6px}}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-stage{top:max(40px,calc(50% - var(--landscape-staff-center,70px)))}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape .score-meta{bottom:calc(100% - max(40px,calc(50% - var(--landscape-staff-center,70px))) - var(--landscape-meta-offset,35px))}.pepperscore[data-ps-short][data-ps-wide] .ps-landscape.has-many-staves .score-stage{top:max(30px,calc(50% - var(--landscape-staff-center,70px) + 30px))}.pepperscore .play-button{white-space:nowrap;flex:none;gap:7px;height:38px;padding:0 16px}.pepperscore .header-open-file{color:#345642;white-space:nowrap;background:#fff;border:1px solid #cfdacd;border-radius:10px;align-items:center;gap:6px;height:38px;padding:0 13px;font-size:13px;font-weight:700;display:inline-flex}.pepperscore .header-open-file:hover{background:#f2f7f1;border-color:#b7c8b5}.pepperscore .header-open-file[aria-expanded=true]{background:#edf3ec}.pepperscore .mode-toggle{align-items:stretch;height:38px;padding:2px}.pepperscore .mode-toggle button{justify-content:center;align-items:center;padding:0 12px;font-size:12px;display:inline-flex}.pepperscore .mode-toggle-label-short{display:none}.pepperscore .topbar .transport{gap:10px}@container pepperscore (width<=1140px){.pepperscore .topbar .transport{gap:8px}}@container pepperscore (width<=900px){.pepperscore .topbar .transport{gap:5px}.pepperscore .topbar .play-button{padding:0 12px}.pepperscore .topbar .header-open-file{padding:0 10px}.pepperscore .mode-toggle button{min-width:36px;padding:0 6px;font-size:12px}.pepperscore .mode-toggle-label-full{display:none}.pepperscore .mode-toggle-label-short{display:inline}}@container pepperscore (width<=580px){.pepperscore .topbar{padding:0 8px}.pepperscore .topbar .transport{gap:6px}.pepperscore .transport>.header-control>.icon-button,.pepperscore .topbar .header-more-toggle{width:38px;height:38px}}@container pepperscore (width<=360px){.pepperscore .topbar{padding:0 4px}.pepperscore .topbar .transport{gap:3px}.pepperscore .transport>.header-control>.icon-button,.pepperscore .topbar .header-more-toggle{width:36px;height:36px}.pepperscore .play-button,.pepperscore .header-open-file,.pepperscore .mode-toggle{height:36px}.pepperscore .topbar .play-button{gap:4px;padding:0 8px;font-size:12px}.pepperscore .topbar .play-button.is-loading svg{display:none}.pepperscore .topbar .header-open-file{gap:4px;padding:0 7px;font-size:12px}.pepperscore .mode-toggle{padding:1px}.pepperscore .mode-toggle button{min-width:34px;padding:0 4px}}.pepperscore .tab-view-toggle-header{background:#f0f0ec;border:1px solid #e5e7e1;border-radius:10px;flex-shrink:0;align-items:stretch;height:38px;padding:2px;display:flex}.pepperscore .tab-view-toggle-header button{color:#869087;background:0 0;border:0;border-radius:7px;justify-content:center;align-items:center;padding:0 12px;font-size:12px;font-weight:700;display:inline-flex}.pepperscore .tab-view-toggle-header button.is-selected{color:#345642;background:#fff;box-shadow:0 1px 5px #253b2e16}.pepperscore .tab-view-toggle-label-short{display:none}@container pepperscore (width>=761px) and (width<=1260px){.pepperscore .header-tab-view.has-drawer-copy{display:none}}@container pepperscore (width<=1400px){.pepperscore .tab-view-toggle-header button{min-width:36px;padding:0 7px}.pepperscore .tab-view-toggle-label-full{display:none}.pepperscore .tab-view-toggle-label-short{display:inline}}@container pepperscore (width<=760px){.pepperscore .header-secondary-panel .tab-view-toggle-label-full{display:inline}.pepperscore .header-secondary-panel .tab-view-toggle-label-short{display:none}.pepperscore .header-secondary-panel .tab-view-toggle-header button{letter-spacing:normal;padding:0 9px}}.pepperscore .tab-view-choice .tab-view-toggle button{min-width:44px}.pepperscore .ps-visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pepperscore .ps-portrait .score-content{padding-bottom:calc(70px + var(--page-tail,0px))}.pepperscore .score-system.is-pending{opacity:.7;background:repeating-linear-gradient(#0000 0 22px,#f3f4ef 22px 23px);border-radius:6px}.pepperscore .score-viewport{overflow-anchor:none}.pepperscore .reader-notices{z-index:50;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:max-content;max-width:calc(100% - 32px);display:flex;position:absolute;bottom:65px;left:50%;transform:translate(-50%)}.pepperscore .reader-notices>*{pointer-events:auto}.pepperscore .reader-notices .playback-notice{max-width:100%;position:static;transform:none}.pepperscore .large-file-notice,.pepperscore .reopen-banner{color:#46604d;background:#f2f6f0;border:1px solid #cddbcc;border-radius:8px;align-items:center;gap:10px;max-width:100%;padding:10px 12px;font-size:12px;line-height:1.4;display:flex;box-shadow:0 6px 20px #34564218}.pepperscore .large-file-notice-icon,.pepperscore .reopen-banner-icon{flex:none}.pepperscore .large-file-notice-dismiss{color:inherit;background:0 0;border:0;flex:none;place-items:center;display:grid}.pepperscore .reopen-banner{flex-wrap:wrap;row-gap:8px}.pepperscore .reopen-banner-body{flex-direction:column;flex:180px;min-width:0;display:flex}.pepperscore .reopen-banner-text{overflow-wrap:anywhere}.pepperscore .reopen-banner-name{font-weight:600}.pepperscore .reopen-banner-privacy{color:#7d8f80;font-size:11px}.pepperscore .reopen-banner-actions{flex:none;align-items:center;gap:6px;display:flex}.pepperscore .reopen-banner-actions button{color:#46604d;background:#fff;border:1px solid #cddbcc;border-radius:7px;height:30px;padding:0 11px;font-size:11px;font-weight:700}.pepperscore .reopen-banner-actions .reopen-banner-reopen{color:#fff;background:#365c42;border-color:#365c42}.pepperscore .reopen-banner-actions .reopen-banner-reopen:hover{background:#284c34}.pepperscore .reopen-banner-actions .reopen-banner-later:hover,.pepperscore .reopen-banner-actions .reopen-banner-forget:hover{background:#eef3ec}.pepperscore .ps-toast.is-out-of-memory{flex-wrap:wrap;row-gap:8px;max-width:min(460px,100% - 40px)}.pepperscore .ps-toast-text,.pepperscore .ps-error-text{flex:220px;line-height:1.45}.pepperscore .oom-retry-button{color:#fff;background:#9a482d;border:1px solid #9a482d;border-radius:7px;height:30px;padding:0 11px;font-size:11px;font-weight:700}.pepperscore .ps-toast .oom-retry-button{color:#fff;background:#9a482d;border:1px solid #9a482d;align-items:center;display:inline-flex}.pepperscore .oom-retry-button:hover,.pepperscore .ps-toast .oom-retry-button:hover{background:#7f3920}.pepperscore .ps-error .oom-retry-button{margin-top:8px}.pepperscore .ps-error{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.pepperscore .forget-last-file{color:#8a6a5e}.pepperscore .score-viewport{scrollbar-gutter:stable}.pepperscore[data-ps-height=natural] .score-viewport{scrollbar-gutter:auto;overflow-y:hidden}.pepperscore .mixer-panel:focus:not(:focus-visible),.pepperscore .instrument-picker-panel:focus:not(:focus-visible){outline:none}.pepperscore .ps-compact-play{z-index:9;color:#fff;background:#345642;border-radius:50%;width:36px;height:36px;position:absolute;top:8px;right:8px;box-shadow:0 3px 8px #34564233}.pepperscore .topbar .ps-compact-play{top:50%;transform:translateY(-50%)}.pepperscore .ps-compact-play:hover{background:#254633}.pepperscore .ps-compact-play.is-loading{opacity:.75}.pepperscore .no-page-controls.ps-portrait .edge-end,.pepperscore .no-page-controls.ps-landscape .edge-fade{bottom:0}.pepperscore .app-shell.no-drawer .ps-toast,.pepperscore .app-shell.no-drawer .reader-notices{bottom:12px}.pepperscore[data-ps-height=natural]{min-height:120px}.pepperscore[data-ps-height=natural] .ps-landscape .score-content{grid-template-rows:auto auto}.pepperscore[data-ps-clock] .score-system svg .reader-note,.pepperscore[data-ps-clock] .score-system svg .measure{cursor:pointer}.pepperscore .drawer-foot{gap:14px}.pepperscore .drawer-licences{color:inherit;text-underline-offset:2px;white-space:nowrap;text-decoration:underline}.pepperscore .drawer-licences:hover{color:#61806a}.pepperscore .annotations-panel{container:ps-annotations/inline-size}.pepperscore .annotation-row{flex-wrap:wrap;gap:8px 10px}.pepperscore .annotation-row .annotation-name{flex:auto;min-width:0}.pepperscore .annotation-row .ps-switch{flex:none}.pepperscore .annotation-row .annotation-size{flex:1 0 100%;order:3;justify-content:space-between}.pepperscore .annotation-size button{letter-spacing:.02em;flex:1 1 0;min-width:0;padding:4px 0;font-size:10px}@container ps-annotations (width>=360px){.pepperscore .annotation-row .annotation-size{flex:none;order:0}.pepperscore .annotation-size button{flex:none;padding:4px 7px}}.pepperscore .count-label.is-subdivision{font-size:calc(13px * var(--ps-subdivision-scale,1))}.pepperscore .topbar .header-open-file{color:#486b51;background:#fff;border:1px solid #dfe5dc;transition:background .15s,border-color .15s,box-shadow .15s;box-shadow:0 1px 2px #34564210}.pepperscore .topbar .header-open-file:hover{background:#f2f7f1;border-color:#b9cdb9}.pepperscore .topbar .header-open-file:focus-visible{outline-offset:2px;border-color:#8fb89a;outline:2px solid #8fb89a}.pepperscore .topbar .header-open-file[aria-expanded=true]{background:#edf3ec;border-color:#8fb89a}.pepperscore .open-dialog-backdrop{z-index:115;background:#17271b66;place-items:center;padding:16px;display:grid;position:absolute;inset:0;overflow:auto}.pepperscore .open-dialog{overscroll-behavior:contain;color:#344c38;background:#fff;border:1px solid #e2e9e0;border-radius:16px;flex-direction:column;width:min(560px,100%);max-height:min(88%,760px);padding:19px 20px 20px;font-family:Poppins,Arial,sans-serif;display:flex;overflow:auto;box-shadow:0 18px 60px #15251a40}.pepperscore .open-dialog-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.pepperscore .open-dialog-title{color:#345642;align-items:center;gap:9px;min-width:0;display:flex}.pepperscore .open-dialog-title-text{margin:0;font-size:17px;font-weight:650}.pepperscore .open-dialog-intro{color:#78867a;margin:3px 0 12px;font-size:12px;line-height:1.5}.pepperscore .open-dialog-formats{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:0 0 16px;padding:0;list-style:none;display:grid}.pepperscore .open-dialog-format{background:#f8faf7;border:1px solid #e2e8e0;border-radius:10px;flex-direction:column;gap:1px;min-width:0;padding:8px 11px;display:flex}.pepperscore .open-dialog-format-name{color:#345642;font-size:12px;font-weight:700}.pepperscore .open-dialog-format-detail{color:#7c8a7e;overflow-wrap:anywhere;font-size:11px}.pepperscore .open-dialog-entry-label{color:#536055;margin:0 0 6px;font-size:11px;font-weight:700;display:block}.pepperscore .open-dialog-dropzone{background:#fdfefc;border:1.5px dashed #c9d8c8;border-radius:12px;transition:border-color .15s,background .15s,box-shadow .15s;position:relative}.pepperscore .open-dialog-dropzone:focus-within{border-color:#8fb89a;box-shadow:0 0 0 3px #8fb89a2e}.pepperscore .open-dialog-dropzone.is-drag-over{background:#f0f6ef;border-style:solid;border-color:#486b51;box-shadow:0 0 0 4px #486b5124}.pepperscore .open-dialog-abc-input{resize:vertical;color:#3e4f41;background:0 0;border:0;border-radius:12px;outline:none;width:100%;min-height:148px;padding:12px 13px;font-family:ui-monospace,monospace;font-size:12px;line-height:1.55;display:block}.pepperscore .open-dialog-abc-input::placeholder{color:#a9b5aa}.pepperscore .open-dialog-drop-overlay{color:#345642;pointer-events:none;background:#f0f6ef;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex;position:absolute;inset:0}.pepperscore .open-dialog-drop-text{font-size:13px;font-weight:700}.pepperscore .open-dialog-spinner{width:22px;height:22px}.pepperscore .open-dialog-tip{color:#78867a;margin:8px 0 0;font-size:11.5px;line-height:1.5}.pepperscore .open-dialog-tip-keys{color:#9aa69b}.pepperscore .open-dialog-message{border-radius:10px;margin:10px 0 0;padding:9px 11px;font-size:12px;line-height:1.45}.pepperscore .open-dialog-message.is-error{color:#9a482d;background:#fff3ee;border:1px solid #e9c7bb}.pepperscore .open-dialog-message.is-hint{color:#6b5a1f;background:#fdf8e9;border:1px solid #eadcae}.pepperscore .open-dialog-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.pepperscore .open-dialog-browse{color:#345642;background:#fff;border:1px solid #dfe5dc;border-radius:10px;align-items:center;gap:8px;height:37px;padding:0 13px;font-size:12px;font-weight:700;display:inline-flex}.pepperscore .open-dialog-browse:hover{background:#f2f7f1;border-color:#b9cdb9}.pepperscore .open-dialog-open-abc{border-radius:10px;height:37px;margin-left:auto;font-size:12px}.pepperscore .open-dialog-open-abc:disabled{cursor:not-allowed;opacity:.45}.pepperscore .open-dialog button:focus-visible{outline-offset:2px;outline:2px solid #8fb89a}.pepperscore .open-dialog-choices{flex-direction:column;min-height:0;display:flex}.pepperscore .open-dialog-choices-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.pepperscore .open-dialog-choices-title{color:#344c38;margin:0;font-size:13px;font-weight:700}.pepperscore .open-dialog-choices-count{color:#87968a;margin-left:6px;font-size:11px;font-weight:500}.pepperscore .open-dialog-choices-back{margin:0}.pepperscore .open-dialog-choices-note{color:#8a948a;margin:0 0 6px;font-size:11px}.pepperscore .open-dialog-choice-list{background:#f8faf7;border:1px solid #e2e8e0;border-radius:12px;flex-direction:column;gap:5px;max-height:320px;margin:0;padding:4px;list-style:none;display:flex;overflow:auto}.pepperscore .open-dialog-choice{color:#344c38;text-align:left;background:#fff;border:1px solid #e2e8e0;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:9px 11px;display:grid}.pepperscore .open-dialog-choice:hover,.pepperscore .open-dialog-choice:focus-visible{background:#f2f7f1;border-color:#8fb89a}.pepperscore .open-dialog-choice-icon{color:#6b8a6e}.pepperscore .open-dialog-choice-text{flex-direction:column;min-width:0;display:flex}.pepperscore .open-dialog-choice-name{text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600;overflow:hidden}.pepperscore .open-dialog-choice-path{color:#87968a;text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.pepperscore .open-dialog-choice-format{color:#486b51;white-space:nowrap;background:#edf3ec;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:700}@container pepperscore (width<=480px){.pepperscore .open-dialog-backdrop{place-items:start center;padding:10px}.pepperscore .open-dialog{max-height:calc(100% - 20px);padding:15px}.pepperscore .open-dialog-formats{grid-template-columns:1fr 1fr;gap:6px}.pepperscore .open-dialog-format{padding:7px 9px}.pepperscore .open-dialog-abc-input{min-height:120px}.pepperscore .open-dialog-actions>button{flex:auto;justify-content:center}.pepperscore .open-dialog-open-abc{margin-left:0}}@container pepperscore (width<=340px){.pepperscore .open-dialog-formats{grid-template-columns:1fr}}.pepperscore .open-dialog:focus:not(:focus-visible){outline:none}
6
6
  /*$vite$:1*/