@font-face{font-family:Noto Music;src:url(/static/assets/NotoMusic-Regular-DiSc1i1_.ttf)format("truetype");font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--app-bg:#1a1d1f;--app-surface:#232628;--app-surface-strong:#2c2f32;--app-border:#ffffff14;--app-text:#e8e8e8;--app-text-soft:#9aa0a6;--paper:#fff;--paper-strong:#fff;--ink:#000;--ink-soft:#5a5f63;--line:#9aa0a6;--line-strong:#5a5f63;--accent:#c56b45;--accent-soft:#c56b452e;--accent-strong:#9f4e2c;--success:#6fa376;--danger:#d57171;--card-shadow:0 10px 30px #00000073;--pill-height:36px}*{box-sizing:border-box}body{background:var(--app-bg);min-height:100vh;color:var(--app-text);margin:0;font-family:Georgia,Times New Roman,serif}button,input{font:inherit}#root{min-height:100vh}.app-shell{width:100%;margin:0;padding:0 0 42px;position:relative}.toolbar{z-index:20;background:var(--app-surface);border-bottom:1px solid var(--app-border);flex-wrap:nowrap;align-items:center;gap:12px;width:100%;padding:10px 20px;display:flex;position:sticky;top:0}.toolbar-brand{color:var(--app-text);letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;min-width:0;padding-right:6px;font-family:Georgia,Times New Roman,serif;font-size:.95rem;font-weight:700;overflow:hidden}.toolbar-group{flex-wrap:nowrap;flex-shrink:0;align-items:center;gap:10px;display:inline-flex}.toolbar-group-transport{margin-left:auto}.toolbar-icon{width:18px;height:18px}.toolbar-menu{flex-shrink:0;display:inline-flex;position:relative}.toolbar-menu-trigger{height:var(--pill-height);white-space:nowrap;align-items:center;gap:4px;padding:0 .7rem 0 .95rem;display:inline-flex}.toolbar-menu-panel{z-index:24;border:1px solid var(--app-border);background:var(--app-surface-strong);min-width:232px;box-shadow:var(--card-shadow);border-radius:14px;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);left:0}.toolbar-menu-item{color:var(--app-text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:.55rem .7rem}.toolbar-menu-item:hover:not(:disabled){background:#34373a}.toolbar-menu-item:disabled{cursor:not-allowed;opacity:.45}.toolbar-menu-check{color:var(--app-text-soft);cursor:pointer;align-items:center;gap:8px;padding:.55rem .7rem;font-size:.8rem;line-height:1.2;display:flex}.toolbar-menu-check input{cursor:pointer;flex-shrink:0}.toolbar-menu-check:has(input:disabled){cursor:not-allowed;opacity:.45}.toolbar-menu-divider{border-top:1px solid var(--app-border);margin:5px .7rem}.tempo-control{height:var(--pill-height);border:1px solid var(--app-border);background:var(--app-surface-strong);border-radius:999px;align-items:center;gap:9px;padding:0 .52rem 0 .86rem;display:inline-flex}.tempo-control-label{color:var(--app-text-soft);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem}.tempo-control-input{width:52px;color:var(--app-text);text-align:right;background:0 0;border:none;font-size:.98rem;font-weight:700}select.tempo-control-input{cursor:pointer;text-align:left;padding-right:4px}select.tempo-control-input option{background:var(--app-surface-strong);color:var(--app-text)}.tempo-control-input:focus{outline:none}.tempo-control-input:disabled{color:var(--app-text-soft)}.toolbar-play-button{height:var(--pill-height);border:1px solid var(--app-border);background:var(--app-surface-strong);color:var(--app-text);cursor:pointer;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0 .95rem;transition:background-color .16s,color .16s;display:inline-flex}.toolbar-play-button .toolbar-icon{width:16px;height:16px}.toolbar-play-button:hover:not(:disabled){background:#34373a}.toolbar-play-button-playing{color:var(--accent)}.toolbar-play-button:disabled{cursor:not-allowed;opacity:.45}.toolbar-button{border:1px solid var(--app-border);background:var(--app-surface-strong);color:var(--app-text);cursor:pointer;border-radius:999px;padding:.7rem 1rem;transition:transform .16s,background-color .16s,border-color .16s}.toolbar-button:hover:not(:disabled){background:#34373a;border-color:#ffffff2e;transform:translateY(-1px)}.toolbar-button:disabled{cursor:not-allowed;opacity:.45}.toolbar-button-primary{background:var(--accent);color:#fff;border-color:#0000}.toolbar-button-primary:hover:not(:disabled){background:var(--accent-strong)}.toolbar-button-danger{color:var(--danger);background:#d5717124}.toolbar-group-zoom{height:var(--pill-height);border:1px solid var(--app-border);background:var(--app-surface-strong);border-radius:999px;align-items:center;gap:4px;padding:0 8px 0 2px;display:inline-flex}.toolbar-icon-button{width:30px;height:30px;color:var(--app-text);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;font-size:1.15rem;line-height:1;display:inline-flex}.toolbar-icon-button:hover:not(:disabled){background:#34373a}.toolbar-icon-button:disabled{cursor:not-allowed;opacity:.4}.toolbar-zoom-slider{cursor:pointer;appearance:none;background:0 0;width:104px;height:30px;margin:0 4px;padding:0}.toolbar-zoom-slider::-webkit-slider-runnable-track{background:#ffffff29;border-radius:999px;height:4px}.toolbar-zoom-slider::-moz-range-track{background:#ffffff29;border-radius:999px;height:4px}.toolbar-zoom-slider::-webkit-slider-thumb{background:var(--app-text);appearance:none;border:0;border-radius:999px;width:13px;height:13px;margin-top:-4.5px}.toolbar-zoom-slider::-moz-range-thumb{background:var(--app-text);border:0;border-radius:999px;width:13px;height:13px}.toolbar-zoom-slider:hover::-webkit-slider-thumb{background:var(--accent)}.toolbar-zoom-slider:hover::-moz-range-thumb{background:var(--accent)}.toolbar-zoom-readout{min-width:46px;color:var(--app-text-soft);font-variant-numeric:tabular-nums;text-align:right;cursor:pointer;background:0 0;border:0;padding:0;font-size:.82rem}.toolbar-zoom-readout:hover{color:var(--app-text)}.editor-chip,.measure-fill{color:var(--ink-soft);background:#ffffffb3;border:1px solid #00000014;border-radius:999px;padding:.44rem .72rem;font-size:.86rem}.notice{color:#b6d3bc;background:#6fa37624;border:1px solid #6fa37652;border-radius:14px;margin:14px 20px 0;padding:.85rem 1rem}.notice-progress{background:var(--app-surface-strong);border-color:var(--app-border);color:var(--app-text-soft)}.score-stage{box-shadow:none;background:0 0;border:0;padding:28px 20px 40px;display:block;overflow:auto}.score-stage-canvas{margin:0 auto;position:relative}.score-strip{background:0 0;position:absolute;top:0;left:0}.page-sheet{fill:#fff;filter:drop-shadow(0 8px 22px #00000073)}.measure-menu{z-index:18;align-items:flex-start;gap:8px;display:flex;position:absolute}.measure-menu-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbf8f1f0;border:1px solid #47645924;border-radius:16px;padding:8px;box-shadow:0 18px 36px #202e2924}.measure-menu-root{width:132px}.measure-menu-submenu{width:192px}.measure-menu-button{width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:11px;padding:.72rem .82rem;transition:background-color .16s,color .16s;display:block}.measure-menu-button:hover{background:#47645914}.measure-menu-button-branch{justify-content:space-between;align-items:center;gap:10px;display:flex}.measure-menu-button-active{background:#4764591a}.measure-menu-chevron{color:var(--ink-soft);font-size:1rem;line-height:1}.measure-menu-button-danger{color:var(--danger)}.measure-menu-button-danger:hover{background:#9c3f3f1a}.end-add-anchor{z-index:12;width:72px;height:96px;position:absolute;transform:translate(-50%,-50%)}.end-add-zone{cursor:pointer;position:absolute;inset:0}.end-add-button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;padding:0;font-size:1.3rem;line-height:1;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 12px 30px #202e292e}.end-add-button:hover{background:var(--accent-strong)}.end-add-icon{stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;fill:none;width:16px;height:16px;display:block}.score-sheet{-webkit-user-select:none;user-select:none;width:100%;height:auto;display:block}.score-sheet text{-webkit-user-select:none;user-select:none;pointer-events:none}.measure-selection{fill:#c56b4514;stroke:#c56b453d;stroke-width:1.4px}.staff-line,.tab-line,.ledger-line{stroke:var(--line);stroke-width:.8px;stroke-linecap:round}.measure-number{fill:var(--ink-soft);letter-spacing:.14em;text-transform:uppercase;font-size:7px}.selection-band{fill:#c56b450f;stroke:#c56b4538;stroke-width:1.2px}.measure-number-selected{fill:var(--accent-strong)}.measure-number-playing{fill:var(--line-strong)}.staff-clef{fill:var(--ink);font-family:Noto Music,serif;font-size:40px}.time-signature-digit{fill:var(--line-strong);font-size:16px;font-weight:700}.tab-mark-letter{fill:var(--line-strong);letter-spacing:.08em;font-size:9px;font-weight:700}.bar-line{stroke:#4764596b;stroke-width:1px}.bar-line-final{stroke-width:1.3px}.bar-line-final-secondary{stroke-width:2px}.playback-playhead{stroke:#476459b8;stroke-width:2px;stroke-linecap:round;stroke-dasharray:6 5;pointer-events:none;shape-rendering:geometricprecision}.tab-span{fill:#c56b4514;stroke:#c56b451f;stroke-width:1px}.tab-span-selected{fill:#c56b4524;stroke:#c56b453d}.tab-note{cursor:pointer}.tab-note-selected .tab-note-mask{fill:#c56b4529;stroke:#9f4e2c57}.tab-note-selected .tab-note-text{fill:var(--accent-strong)}.tab-note-active .tab-note-mask{fill:#c56b4538;stroke:#9f4e2cb3;stroke-width:1.4px}.tab-note-playing .tab-note-mask{fill:#47645924;stroke:#47645947}.tab-note-playing .tab-note-text{fill:var(--line-strong)}.tab-note-mask{fill:var(--paper-strong);stroke:none}.tab-note-harmonic{fill:var(--paper-strong);stroke:var(--ink);stroke-width:.7px}.tab-note-text{fill:var(--ink);font-family:Courier New,monospace;font-size:7px;font-weight:700}.tab-link-text{fill:var(--accent-strong);paint-order:stroke fill;stroke:var(--paper-strong);stroke-width:.5px;font-family:Courier New,monospace;font-size:7px;font-weight:700}.tab-link-line,.note-link-line{stroke:url(#slide-link-stroke-negative);stroke-width:1px;stroke-linecap:round}.tab-vibrato,.staff-vibrato{fill:none;stroke:var(--ink);stroke-width:.9px;stroke-linecap:round;stroke-linejoin:miter}.tab-bend-curve{fill:none;stroke:var(--ink);stroke-width:.9px;stroke-linecap:round}.tab-bend-arrow{fill:var(--ink);stroke:none}.tab-bend-label,.tab-range-label{fill:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:5.5px;font-style:italic;font-weight:700}.tab-range-line{stroke:var(--ink);stroke-width:.7px;stroke-dasharray:2 1.5;stroke-linecap:round}.tab-range-tick{stroke:var(--ink);stroke-width:.7px;stroke-linecap:round}.staff-accent{fill:none;stroke:var(--ink);stroke-width:.9px;stroke-linecap:round;stroke-linejoin:miter}.staff-fade-in line{stroke:var(--ink);stroke-width:.8px;stroke-linecap:round}.tab-link-slur,.note-link-slur{fill:none;stroke:#9f4e2cc7;stroke-width:.9px;stroke-linecap:round}.tab-link-label,.note-link-label{fill:var(--accent-strong);paint-order:stroke fill;stroke:var(--paper-strong);stroke-width:.5px;font-family:Courier New,monospace;font-size:7px;font-weight:700}.tab-harmonic-label,.staff-harmonic-label{fill:var(--ink);paint-order:stroke fill;stroke:var(--paper-strong);stroke-width:.5px;font-family:Georgia,Times New Roman,serif;font-size:6.5px;font-style:italic;font-weight:700}.hit-cell{fill:#0000;cursor:pointer}.hit-cell:hover{fill:#4764592e}.hit-cell-occupied:hover,.hit-cell-position-selected{fill:#c56b4538}.staff-hit-cell{fill:#0000;cursor:pointer}.staff-hit-cell:hover{fill:#4764592e}.staff-event{cursor:pointer}.staff-tie{fill:none;stroke:#9f4e2cc7;stroke-width:.9px;stroke-linecap:round}.staff-event-selected .notehead,.staff-event-selected .notehead-open-outer{fill:#c56b4529;stroke:#c56b45c7}.staff-event-selected .notehead-open-inner{fill:#fffaf4f0}.staff-event-selected .stem-line,.staff-event-selected .flag-path,.staff-event-selected .accidental{stroke:#c56b45d6;fill:#9f4e2cf2}.staff-event-playing .notehead,.staff-event-playing .notehead-open-outer{fill:#4764592e;stroke:#476459c7}.staff-event-playing .notehead-open-inner{fill:#fbf8f1fa}.staff-event-playing .stem-line,.staff-event-playing .flag-path,.staff-event-playing .accidental{stroke:#476459d1;fill:#476459eb}.staff-rest{cursor:pointer}.staff-rest-hitbox{fill:#0000;pointer-events:all}.rest-symbol{fill:var(--ink);font-family:Noto Music,serif;font-size:18px}.staff-rest-selected .rest-symbol{fill:var(--accent-strong)}.staff-rest-playing .rest-symbol{fill:var(--line-strong)}.notehead{fill:url(#staff-notehead-fill);stroke:#18231f;stroke-width:.6px;filter:url(#staff-note-shadow)}.notehead-open-outer{fill:#20302a;stroke:#20302a;stroke-width:.6px;filter:none}.notehead-open-inner{fill:#fffdfa}.notehead-sheen{fill:#ffffff57}.notehead-dead{stroke:#18231f;stroke-width:1.2px;stroke-linecap:round}.notehead-harmonic{fill:var(--paper-strong);stroke:#18231f;stroke-width:.9px}.staff-event-selected .notehead-dead{stroke:var(--accent-strong)}.staff-event-selected .notehead-harmonic{stroke:var(--accent-strong);fill:#c56b451f}.staff-event-playing .notehead-dead{stroke:var(--line-strong)}.staff-event-playing .notehead-harmonic{stroke:var(--line-strong);fill:#4764591f}.stem-line,.flag-path{stroke:#20302a;stroke-width:1.2px;fill:none;stroke-linecap:round}.accidental{fill:#20302a;font-size:9px;font-weight:700}.editor-popover{z-index:30;overscroll-behavior:contain;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffcf6f5;border:1px solid #47645924;border-radius:20px;width:min(286px,100vw - 28px);max-height:min(460px,100vh - 24px);padding:14px 15px;position:absolute;overflow-y:auto;box-shadow:0 26px 60px #202e2938}.editor-popover-grid{grid-template-columns:1fr 1fr;align-items:start;gap:10px 12px;width:min(456px,100vw - 28px);max-height:none;display:grid;overflow:visible}.editor-popover-grid .editor-section+.editor-section{margin-top:0}@media (width<=456px){.editor-popover-grid{grid-template-columns:1fr}}.editor-label{color:var(--ink-soft);letter-spacing:.1em;text-transform:uppercase;margin:0 0 5px;font-size:.68rem}.editor-section+.editor-section{margin-top:14px}.subdivision-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.choice-row{flex-wrap:wrap;gap:6px;display:flex}.choice-pill{width:38px;height:44px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #47645924;border-radius:10px;justify-content:center;align-items:center;padding:.28rem;transition:transform .14s,border-color .14s,background-color .14s,color .14s;display:inline-flex}.choice-pill:hover:not([aria-disabled=true]){border-color:#4764594d;transform:translateY(-1px)}.choice-pill:focus-visible{border-color:#c56b45b8;outline:none;box-shadow:0 0 0 4px #c56b451f}.choice-pill[aria-disabled=true]{cursor:not-allowed;opacity:.32}.choice-pill-active{color:var(--accent-strong);background:#c56b451a;border-color:#c56b45b3}.choice-pill-label{letter-spacing:.05em;text-transform:uppercase;font-size:.68rem}.choice-pill-symbol{font-family:Courier New,monospace;font-size:.9rem;font-weight:700;line-height:1}.choice-pill-icon{width:19px;height:19px;color:inherit;display:block}.slide-pill-wrap{display:inline-flex;position:relative}.slide-type-menu{z-index:50;background:#fff;border:1px solid #4764592e;border-radius:12px;flex-direction:column;min-width:168px;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 10px 24px #202e2929}.slide-type-option{text-align:left;width:100%;color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:.5rem .6rem;font-size:.84rem;display:block}.slide-type-option:hover:not([aria-disabled=true]){color:var(--accent-strong);background:#c56b451a}.slide-type-option[aria-disabled=true]{opacity:.34;cursor:not-allowed}.slide-type-option-default{font-weight:700}.hover-note-tooltip{z-index:40;width:min(220px,100vw - 32px);color:var(--ink-soft);text-align:center;white-space:normal;overflow-wrap:anywhere;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#fffcf6f0;border:1px solid #47645929;border-radius:12px;padding:.42rem .62rem;font-family:Georgia,Times New Roman,serif;font-size:.78rem;line-height:1.3;position:absolute;transform:translate(-50%);box-shadow:0 8px 18px #202e291a}.duration-symbol{width:1em;color:inherit;text-align:center;text-rendering:optimizelegibility;font-family:Noto Music,serif;font-size:1.3rem;line-height:1;display:inline-block}.fret-editor-input{width:100%;color:var(--ink);background:#fff;border:1px solid #4764592e;border-radius:14px;padding:.9rem .95rem;font-family:Courier New,monospace;font-size:1.05rem}.fret-editor-input:focus{border-color:#c56b45cc;outline:none;box-shadow:0 0 0 4px #c56b451f}.editor-error{color:var(--danger);background:#d5717124;border-radius:14px;margin-top:12px;padding:.8rem .9rem}.score-feedback{border:1px solid #d5717147;margin:14px 20px 0}.tab-inline-editor{z-index:18;align-items:center;gap:6px;display:flex;position:absolute;transform:translate(-50%,-50%)}.tab-inline-input{width:18px;height:13px;color:var(--ink);text-align:center;caret-color:#0000;background:#fffffff5;border:1px solid #47645938;border-radius:3px;padding:0 2px;font-family:Courier New,monospace;font-size:9px;font-weight:700;box-shadow:0 2px 6px #00000014}.tab-inline-input:focus{border-color:#c56b457a;outline:none;box-shadow:0 0 0 2px #c56b4512,0 4px 10px #202e290f}.editor-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;display:flex}.editor-action-button{color:var(--ink);cursor:pointer;background:#fff;border:1px solid #47645929;border-radius:999px;padding:.56rem .82rem;transition:border-color .14s,background-color .14s,color .14s}.editor-action-button:hover{background:#4764590f;border-color:#47645947}.editor-action-button-danger{color:var(--danger)}.editor-action-button-danger:hover{background:#9c3f3f14;border-color:#9c3f3f33}.editor-spacer{flex:1}@media (width<=900px){.toolbar{gap:8px;padding:8px 14px}.toolbar-brand{display:none}.toolbar-zoom-slider{width:70px}.score-stage{padding:18px 12px 22px}}@media (width<=640px){.toolbar{flex-wrap:wrap}.toolbar-group-transport{margin-left:0}.toolbar-play-button{padding:0 .7rem}.tempo-control{padding:0 .4rem 0 .7rem}.editor-popover{width:calc(100vw - 24px)}}
