@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500;600;700&display=swap";@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-vietnamese-400-normal-B7xT_GF5.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-400-normal-BIWiOVfw.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-ext-400-normal-CfP_5XZW.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-400-normal-DRPE3kg4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2"),url(/assets/space-grotesk-latin-400-normal-BnQMeOim.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-vietnamese-700-normal-DMty7AZE.woff2)format("woff2"),url(/assets/space-grotesk-vietnamese-700-normal-Duxec5Rn.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-ext-700-normal-BQnZhY3m.woff2)format("woff2"),url(/assets/space-grotesk-latin-ext-700-normal-HVCqSBdx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2)format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fefaf2;--paper-elevated:#fffdf7;--paper-sunken:#f5efe2;--ink-950:#1a1410;--ink-900:#2c2622;--ink-700:#4a4039;--ink-500:#7a6f65;--ink-400:#a89c91;--ink-300:#c8bdb1;--ink-200:#ddd2c2;--ink-100:#ece2d2;--rule:#e7ddd0;--rule-soft:#efe7d9;--sage:#7fa37a;--sage-soft:#e7efe5;--butter:#e9b860;--clay:#c97964;--clay-strong:#b8654f;--accent:var(--clay);--accent-soft:#f6e6df;--accent-ring:#c9796438;--warn:#b45309;--font-display:"DM Sans", "GT Maru", system-ui, -apple-system, sans-serif;--font-ui:"Inter", "Söhne", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Söhne Mono", ui-monospace, SFMono-Regular, monospace;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--shadow-1:0 1px 0 #2c26220a;--shadow-2:0 6px 16px -8px #2c26221a, 0 2px 4px #2c26220a;--shadow-3:0 32px 64px -24px #2c26222e, 0 8px 16px #2c26220d;--ease:cubic-bezier(.2, .6, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--paper);color:var(--ink-900);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow:hidden}#root{width:100%;max-width:100%}button,input,select{color:inherit;font-family:inherit}@media (prefers-reduced-motion:no-preference){::view-transition-old(root){animation-duration:.22s;animation-timing-function:var(--ease)}::view-transition-new(root){animation-duration:.22s;animation-timing-function:var(--ease)}::view-transition-old(root){animation-name:route-fade-out}::view-transition-new(root){animation-name:route-fade-in}}@keyframes route-fade-out{0%{opacity:1}to{opacity:0}}@keyframes route-fade-in{0%{opacity:0}to{opacity:1}}.print-route-shell{background:var(--paper);min-height:100dvh;color:var(--ink-900);grid-template-columns:360px minmax(0,1fr);display:grid}.print-controls-rail{background:var(--paper-elevated);border-right:1px solid var(--rule);flex-direction:column;gap:18px;height:100dvh;padding:18px;display:flex;position:sticky;top:0;overflow-y:auto}.print-rail-head{flex-direction:column;gap:8px;display:flex}.print-rail-back{width:fit-content;height:auto;min-height:0;font-family:var(--font-ui);color:var(--ink-500);cursor:pointer;transition:color .15s var(--ease);background:0 0;border:none;align-items:baseline;gap:6px;margin:0;padding:0;font-size:12px;font-weight:400;line-height:1.5;display:inline-flex}.print-rail-back:hover{color:var(--ink-900)}.print-rail-back:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px;border-radius:var(--radius-sm)}.print-rail-back-arrow{transition:transform .2s var(--ease);flex:0 0 1rem;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex;transform:translate(0)}.print-rail-back:hover .print-rail-back-arrow{transform:translate(-2px)}.print-rail-heading{gap:2px;display:grid}.print-rail-title{font-family:var(--font-display);font-size:18px;font-weight:700;line-height:1.2}.print-rail-meta{color:var(--ink-500);font-size:12px}.print-control-stub{gap:10px;min-height:0;display:grid}.print-controls-panel{gap:10px;display:grid}.print-control-section{border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--paper-elevated);overflow:hidden}.print-control-section-head{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-700);background:var(--paper-sunken);border-bottom:1px solid var(--rule-soft);padding:10px 12px;font-size:11px;font-weight:700}.print-control-section>label:first-of-type,.print-control-section>.print-control-row:first-of-type,.print-control-section>.print-layer-toggles:first-of-type{border-top:none}.print-control-section label,.print-control-section .print-control-row,.print-bottom-quick-controls label{min-height:34px;color:var(--ink-700);border-top:1px solid var(--rule-soft);grid-template-columns:minmax(0,1fr) minmax(112px,45%);align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:grid}.print-control-section label:has(input[type=checkbox]){grid-template-columns:18px minmax(0,1fr)}.print-control-section label:has(>.toggle-group){grid-template-columns:1fr;align-items:stretch;gap:6px}.print-control-section label:has(>fieldset.toggle-group){grid-template-columns:1fr;align-items:stretch;gap:6px}.print-control-section .print-control-row:not(.print-control-row--inline-controls):has(>.toggle-group){grid-template-columns:1fr;align-items:stretch;gap:6px}.print-control-section .print-control-row:not(.print-control-row--inline-controls):has(>fieldset.toggle-group){grid-template-columns:1fr;align-items:stretch;gap:6px}.print-control-section label:has(.preferences-transpose-controls){grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px 10px}.print-control-section .print-control-row:has(.preferences-transpose-controls){grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px 10px}.print-control-section .print-control-row:has(.preferences-transpose-controls)>span{grid-area:1/1;align-self:center}.print-control-section .print-control-row:has(.preferences-transpose-controls) .transpose-control-row{grid-area:1/2;justify-self:stretch;width:100%}.print-control-section .print-control-row:has(.preferences-transpose-controls) .transpose-key-presets{grid-area:2/1/auto/-1;justify-self:stretch;width:100%}.print-control-section .print-control-row:has(.preferences-transpose-controls) .transpose-key-presets.toggle-group{width:100%;display:flex}.print-control-section .print-control-row--inline-controls .toggle-pill{flex:none;height:24px;padding:0 11px;font-size:11px}.print-control-section .print-control-row:has(.preferences-transpose-controls) .transpose-key-presets .toggle-pill{flex:1 1 0;justify-content:center;min-width:0;height:28px;padding:0 14px;font-size:11px}.print-control-section .print-control-row:has(.preferences-transpose-controls) .audio-key-toggle{grid-area:3/1/auto/-1;justify-self:stretch;width:100%;margin-left:0}.count-in-metronome-row .slider-control>.group-label:empty{display:none}.print-control-section label .slider-control,.print-control-section .print-control-row .slider-control{justify-content:flex-end;width:100%}.print-control-section label .slider-control>.group-label:empty,.print-control-section .print-control-row .slider-control>.group-label:empty{display:none}.preferences-info-value{font-family:var(--font-mono);color:var(--ink-800);letter-spacing:.02em;align-self:center;font-size:14px;font-weight:600}.print-control-section label .preferences-info-value,.print-control-section .print-control-row .preferences-info-value{justify-self:end}.print-control-section label .count-in-metronome-row--panel,.print-control-section .print-control-row .count-in-metronome-row--panel{justify-self:end;align-items:center;gap:8px;display:inline-flex}.print-control-section .print-control-row--inline-controls{grid-template-columns:auto minmax(0,1fr);align-items:center}.print-control-section .print-control-row--inline-controls:has(.toggle-group){grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px}.print-control-section .print-control-row--inline-controls .toggle-group{justify-self:end;width:auto}.print-control-section .print-control-row--inline-controls .count-in-metronome-row--panel{flex-wrap:wrap;justify-self:end;gap:6px;width:auto;max-width:100%}.print-control-section .print-control-row--inline-controls .count-in-metronome-row--panel .slider-control{flex:none;justify-content:flex-start;width:auto}.count-in-metronome-row{flex:none;align-items:center;gap:8px;display:inline-flex}.count-in-time-badge{min-width:44px;height:24px;font-family:var(--font-mono);letter-spacing:.01em;color:var(--ink-400);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-md);cursor:pointer;transition:color .15s var(--ease), background .15s var(--ease), border-color .15s var(--ease);justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.count-in-metronome-row--topbar .count-in-time-badge{min-width:40px;padding:0 7px;font-size:11px}.count-in-metronome-row--panel .count-in-time-badge{min-width:38px;padding:0 7px;font-size:11px}.count-in-time-badge:hover{color:var(--ink-700);border-color:var(--sage)}.count-in-time-badge[data-active=true]{color:var(--ink-800);background:var(--paper-sunken);border-color:var(--accent);box-shadow:var(--shadow-1)}.count-in-time-badge-glyph{font-variant-numeric:tabular-nums;line-height:1}.count-in-time-badge[data-counting-in=true]{color:var(--paper);background:var(--accent);border-color:var(--accent);box-shadow:none}.count-in-time-badge[data-beat-active=true] .count-in-time-badge-glyph{animation:count-pulse .3s var(--ease)}.print-control-section input,.print-control-section select,.print-bottom-quick-controls input,.print-bottom-quick-controls select{min-width:0;height:30px;color:var(--ink-900);background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-md);font-family:var(--font-ui);padding:0 8px;font-size:12px}.print-control-section input[type=checkbox]{width:16px;height:16px;accent-color:var(--clay);padding:0}.print-control-section input[type=range],.print-bottom-quick-controls input[type=range]{accent-color:var(--clay);padding:0}.print-control-section .print-layer-toggles{background:0 0;border:none;border-radius:0;flex-wrap:wrap;justify-content:flex-start;gap:4px;padding:8px 12px;display:flex}.print-preset-list{border-top:1px solid var(--rule-soft);gap:8px;padding:10px;display:grid}.print-preset-row{grid-template-columns:minmax(0,1fr) repeat(3,auto);align-items:center;gap:6px;display:grid}.print-panel-secondary-actions{justify-content:flex-end;display:flex}.print-control-stub h2{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-500);font-size:12px}.print-control-stub pre,.print-bottom-sheet pre{background:var(--paper-sunken);border:1px solid var(--rule);border-radius:var(--radius-sm);max-height:54dvh;color:var(--ink-700);font-family:var(--font-mono);padding:12px;font-size:10px;line-height:1.45;overflow:auto}.print-rail-actions{background:linear-gradient(180deg, #fffdf700, var(--paper-elevated) 28%);margin-top:auto;padding-top:12px;position:sticky;bottom:0}.print-preview-main{background:linear-gradient(90deg, #2c26220a 1px, transparent 1px), linear-gradient(#2c26220a 1px, transparent 1px), var(--paper-sunken);background-size:24px 24px;min-width:0;height:100dvh;position:relative;overflow:auto}.print-controls-rail--loading{pointer-events:none}.print-preview-main--loading{place-items:center;display:grid}.print-zoom-controls{z-index:5;background:color-mix(in srgb, var(--paper-elevated) 94%, transparent);border:1px solid var(--rule);border-radius:var(--radius-md);width:max-content;box-shadow:var(--shadow-2);align-items:center;gap:10px;margin:14px 18px 0 auto;padding:8px;display:flex;position:sticky;top:14px}.print-zoom-label{color:var(--ink-500);align-items:center;gap:8px;font-size:11px;display:inline-flex}.print-zoom-label input{width:112px}.print-page-stack{--print-preview-zoom:1;justify-items:center;gap:26px;padding:18px 32px 48px;display:grid}.print-page-slot{position:relative}.print-preview-page{color:#111827;font-family:"Space Grotesk", var(--font-display);background:#fff;flex:none;position:relative;overflow:hidden;box-shadow:0 18px 48px #2c26222e}.print-page-slot>.print-preview-page{transform:scale(var(--print-preview-zoom));transform-origin:0 0}.print-preview-main[data-print-theme=printable] .print-preview-page{background:#fffdf7}.print-preview-main[data-print-theme=grayscale] .print-preview-page{background:#f7f7f7}.print-preview-main[data-print-theme=highContrast] .print-preview-page{color:#000;background:#fff}.print-preview-strip{position:absolute}.print-preview-header{border-bottom:.2mm solid #e5e7eb;grid-template-columns:minmax(0,1fr) max-content;align-items:start;gap:5mm;display:grid;position:absolute}.print-preview-heading{gap:.6mm;min-width:0;display:grid}.print-preview-title{color:#111827;min-width:0;font-family:"Space Grotesk", var(--font-display);font-size:12px;font-weight:700;line-height:1.15}.print-preview-composer{color:#6b7280;font-family:"Space Grotesk", var(--font-display);font-weight:500;line-height:1.2}.print-preview-meta{color:#6b7280;font-family:"Space Grotesk", var(--font-display);white-space:pre;font-size:8.2px;line-height:1.2}.print-cover-page-content{text-align:center;color:var(--ink-900);font-family:"Space Grotesk", var(--font-display);align-content:center;justify-items:center;display:grid;position:absolute;inset:28mm 18mm}.print-cover-kicker{color:var(--ink-400);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12mm;font-size:9px;font-weight:700}.print-cover-title{max-width:150mm;color:var(--ink-950);font-family:"Space Grotesk", var(--font-display);letter-spacing:0;font-size:30px;line-height:1.1}.print-cover-composer{color:var(--ink-700);margin-top:8mm;font-size:15px}.print-cover-subtitle{color:var(--ink-500);margin-top:5mm;font-size:11px}.print-cover-stats{gap:14mm;margin-top:18mm;display:flex}.print-cover-stat{gap:1mm;display:grid}.print-cover-stat dt{color:var(--ink-400);letter-spacing:.08em;text-transform:uppercase;font-size:7px;font-weight:700}.print-cover-stat dd{color:var(--ink-900);font-size:11px}.print-cover-dedication{color:var(--ink-500);font-size:10px;position:absolute;bottom:4mm}.print-preview-strip svg{width:100%;height:100%;display:block}.print-page-badge{z-index:1;color:#6b7280;font-family:var(--font-mono);background:#ffffffe0;border:1px solid #e5e7eb;border-radius:999px;padding:1mm 2mm;font-size:8px;position:absolute;top:3mm;right:4mm}.print-bottom-sheet{display:none}@media (width<=760px){.print-route-shell{display:block}.print-controls-rail{display:none}.print-preview-main{height:100dvh}.print-page-stack{padding:12px 12px 160px}.print-zoom-controls{margin-right:12px}.print-bottom-sheet{z-index:10;background:var(--paper-elevated);border-top:1px solid var(--rule);box-shadow:var(--shadow-3);animation:print-sheet-in .22s var(--ease);gap:10px;padding:12px;display:grid;position:fixed;bottom:0;left:0;right:0}.print-bottom-sheet summary{cursor:pointer;font-weight:600}}@keyframes print-sheet-in{0%{transform:translateY(18px)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.print-bottom-sheet{animation:none}}.btn{height:32px;font-family:var(--font-ui);letter-spacing:0;color:var(--ink-900);background:var(--paper-elevated);border:1px solid var(--rule);border-radius:var(--radius-md);cursor:pointer;transition:background .15s var(--ease), border-color .15s var(--ease), color .15s var(--ease), transform .15s var(--ease);align-items:center;gap:6px;padding:0 14px;font-size:12px;font-weight:500;display:inline-flex}.btn:hover{border-color:var(--sage);color:var(--ink-950)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.btn-primary{color:var(--paper);background:var(--clay);border-color:var(--clay)}.btn-primary:hover{color:var(--paper);background:var(--clay-strong);border-color:var(--clay-strong)}.btn-primary[disabled]{background:var(--ink-300);border-color:var(--ink-300);cursor:wait;color:var(--paper)}.btn-ghost{color:var(--ink-700);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--paper-sunken);color:var(--ink-950)}.btn-icon{justify-content:center;width:32px;padding:0}.print-preset-row .btn{height:28px;padding:0 8px}.print-rail-actions .btn{justify-content:center;width:100%}.input{height:30px;font-family:var(--font-ui);color:var(--ink-900);background:var(--paper-elevated);border:1px solid var(--rule);border-radius:var(--radius-md);transition:border-color .15s var(--ease), box-shadow .15s var(--ease);padding:0 10px;font-size:12px}.input:hover{border-color:var(--sage)}.input:focus{border-color:var(--clay);box-shadow:0 0 0 3px var(--accent-ring);outline:none}.score-picker-wrap{min-width:0;position:relative}.score-picker-trigger{font-family:var(--font-display);letter-spacing:-.005em;color:var(--ink-900);cursor:pointer;transition:color .15s var(--ease);white-space:nowrap;background:0 0;border:none;align-items:center;gap:8px;min-width:0;max-width:100%;padding:4px 8px 4px 0;font-size:clamp(18px,1.6vw,22px);font-weight:500;line-height:1.15;display:inline-flex}.score-picker-trigger:hover{color:var(--accent)}.score-picker-trigger:focus{outline:none}.score-picker-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.score-picker-trigger .chevron{background:var(--paper-sunken);border:1px solid var(--rule);width:24px;height:24px;transition:background .15s var(--ease), transform .2s var(--ease), border-color .15s var(--ease);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.score-picker-trigger:hover .chevron{background:var(--accent-soft);border-color:var(--clay)}.score-picker-trigger .chevron svg{width:12px;height:12px;color:var(--ink-500);transition:color .15s var(--ease), transform .2s var(--ease)}.score-picker-trigger:hover .chevron svg{color:var(--accent)}.score-picker-wrap[data-open=true] .chevron svg{transform:rotate(180deg)}@keyframes picker-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.score-picker-dropdown{z-index:100;background:var(--paper-elevated);border:1px solid var(--rule);border-radius:var(--radius-lg);width:max(340px,100%);max-height:min(480px,60vh);box-shadow:var(--shadow-3);animation:picker-in .18s var(--ease);overscroll-behavior:contain;padding:6px;position:absolute;top:calc(100% + 6px);left:-12px;overflow-y:auto}.score-picker-dropdown::-webkit-scrollbar{width:6px}.score-picker-dropdown::-webkit-scrollbar-track{background:0 0}.score-picker-dropdown::-webkit-scrollbar-thumb{background:var(--ink-200);border-radius:999px}.score-picker-search{z-index:1;background:var(--paper-elevated);padding:2px 2px 6px;position:sticky;top:0}.score-picker-search-input{width:100%;font-family:var(--font-display);color:var(--ink-700);background:var(--paper-sunken);border:1px solid var(--rule);border-radius:var(--radius-md);transition:border-color .12s var(--ease);outline:none;padding:8px 10px;font-size:13px}.score-picker-search-input::placeholder{color:var(--ink-300)}.score-picker-search-input:focus{border-color:var(--accent)}.score-picker-group-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-400);padding:8px 12px 4px;font-size:10px;font-weight:600}.score-picker-empty{text-align:center;font-family:var(--font-display);color:var(--ink-400);padding:24px 12px;font-size:13px}.score-picker-item{width:100%;font-family:var(--font-display);color:var(--ink-700);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:background .12s var(--ease), color .12s var(--ease);background:0 0;border:none;align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:flex}.score-picker-item:hover{background:var(--paper-sunken);color:var(--ink-950)}.score-picker-item[data-selected=true]{background:var(--accent-soft);color:var(--accent)}.score-picker-item .item-dot{background:var(--ink-200);width:8px;height:8px;transition:background .12s var(--ease);border-radius:999px;flex-shrink:0}.score-picker-item .item-dot[data-annotated=true]{background:var(--accent)}.score-picker-item[data-selected=true] .item-dot[data-annotated=true]{background:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.score-picker-item .item-text{flex-direction:column;gap:1px;min-width:0;display:flex}.score-picker-item .item-title{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.score-picker-item .item-meta{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-400);white-space:nowrap;text-overflow:ellipsis;font-size:10px;font-weight:500;overflow:hidden}.score-picker-item[data-selected=true] .item-meta{color:var(--accent);opacity:.7}.score-picker-item .item-check{width:16px;height:16px;color:var(--accent);opacity:0;transition:opacity .12s var(--ease);flex-shrink:0;margin-left:auto}.score-picker-item[data-selected=true] .item-check{opacity:1}.toggle-group{background:var(--paper-sunken);border:1px solid var(--rule);border-radius:999px;align-items:center;min-inline-size:0;margin:0;padding:2px;display:inline-flex}.toggle-pill{height:24px;font-family:var(--font-mono);letter-spacing:.01em;color:var(--ink-500);cursor:pointer;transition:color .15s var(--ease), background .15s var(--ease);background:0 0;border:none;border-radius:999px;align-items:center;gap:5px;padding:0 11px;font-size:11px;font-weight:500;display:inline-flex}.toggle-pill:hover{color:var(--ink-900)}.toggle-pill[data-active=true]{color:var(--ink-950);background:var(--paper-elevated);box-shadow:var(--shadow-1)}.toggle-pill .dot{background:var(--ink-300);width:6px;height:6px;transition:background .15s var(--ease);border-radius:999px}.toggle-pill[data-active=true] .dot{background:var(--accent)}.print-control-section .print-layer-toggles .toggle-pill{flex:none;justify-content:flex-start;min-width:0;padding:0 10px}.print-control-section .toggle-group{flex-wrap:nowrap;width:100%;display:flex}.print-control-section .toggle-pill{white-space:nowrap;flex:1 1 0;justify-content:center;min-width:0;height:26px;padding:0 6px;font-size:10.5px}.print-control-section label>.toggle-pill,.print-control-section .print-control-row>.toggle-pill{justify-self:end}.print-control-section fieldset[aria-label=Chord\ labels]{border-radius:14px;flex-wrap:wrap;gap:2px}.print-control-section fieldset[aria-label=Chord\ labels] .toggle-pill{flex:calc(33.333% - 2px)}.range{appearance:none;cursor:pointer;background:0 0;height:18px}.range::-webkit-slider-runnable-track{background:var(--ink-200);border-radius:999px;height:3px}.range::-moz-range-track{background:var(--ink-200);border-radius:999px;height:3px}.range::-webkit-slider-thumb{appearance:none;background:var(--clay);border:2px solid var(--paper-elevated);width:14px;height:14px;box-shadow:0 0 0 1px var(--rule);transition:transform .15s var(--ease), background .15s var(--ease);border-radius:999px;margin-top:-5.5px}.range::-moz-range-thumb{background:var(--clay);border:2px solid var(--paper-elevated);width:14px;height:14px;box-shadow:0 0 0 1px var(--rule);transition:transform .15s var(--ease), background .15s var(--ease);border-radius:999px}.range:hover::-webkit-slider-thumb{background:var(--accent);transform:scale(1.08)}.range:hover::-moz-range-thumb{background:var(--accent);transform:scale(1.08)}.topbar-title-block{min-width:0;max-width:clamp(8rem,32vw,28rem);transition:max-width .16s var(--ease);flex-direction:column;flex:0 auto;justify-content:center;gap:1px;padding-right:4px;display:inline-flex}.topbar-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-400);text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:500;line-height:1.1;overflow:hidden}.topbar-leading{flex:0 auto;align-items:center;gap:10px;display:inline-flex}.topbar-title-block{min-width:80px}.topbar-title-block:has(.score-picker-wrap[data-open=true]){max-width:clamp(12rem,52vw,40rem)}.topbar-title-block .score-picker-trigger{width:100%;max-width:100%;padding:2px 6px 2px 0;font-size:clamp(14px,1.3vw,17px);overflow:hidden}.topbar-leading .score-picker-trigger .chevron{width:20px;height:20px}.topbar-trailing{flex:none;align-items:center;margin-left:auto;display:inline-flex}.topbar-drawer-trigger{width:36px;height:32px;color:var(--ink-700);background:var(--paper-elevated);border:1px solid var(--rule);border-radius:var(--radius-md);cursor:pointer;transition:color .15s var(--ease), background .15s var(--ease), border-color .15s var(--ease);justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;display:inline-flex}.topbar-drawer-trigger:hover,.topbar-drawer-trigger[aria-expanded=true]{color:var(--ink-950);background:var(--paper-sunken);border-color:var(--ink-300)}.topbar-drawer-trigger:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.app-drawer-backdrop{z-index:199;-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;cursor:pointer;transition:opacity .22s var(--ease);background:#0f0c082e;border:0;position:fixed;inset:0}.app-drawer-backdrop[data-open=true]{opacity:1;pointer-events:auto}.app-drawer{z-index:210;width:min(420px,100vw - 48px);height:100dvh;padding-right:env(safe-area-inset-right);background:var(--paper-elevated);border-left:1px solid var(--rule);transition:transform .32s var(--ease);outline:none;flex-direction:column;display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-32px 0 64px -24px #2c262238}.app-drawer[data-open=true]{transform:translate(0)}@media (prefers-reduced-motion:reduce){.app-drawer,.app-drawer-backdrop{transition:none}}.drawer-head{border-bottom:1px solid var(--rule-soft);justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 18px;display:flex}.drawer-head-titles{flex-direction:column;gap:4px;min-width:0;display:flex}.drawer-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-500);font-size:10px;font-weight:500}.drawer-title{font-family:var(--font-display);color:var(--ink-950);text-overflow:ellipsis;font-size:20px;font-weight:500;line-height:1.2;overflow:hidden}.drawer-close{background:var(--paper-sunken);width:32px;height:32px;color:var(--ink-500);font-family:var(--font-mono);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease), border-color .15s var(--ease);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;margin-top:-4px;font-size:18px;line-height:1;display:inline-flex}.drawer-close:hover{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft)}.drawer-body{flex-direction:column;flex:1;gap:24px;min-height:0;padding:8px 24px 24px;display:flex;overflow-y:auto}.drawer-section{flex-direction:column;gap:10px;display:flex}.drawer-section-title{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-400);margin:14px 0 0;font-size:10px;font-weight:600}.drawer-row-grid{background:var(--paper-sunken);border:1px solid var(--rule);border-radius:var(--radius-md);font-family:var(--font-mono);grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;padding:12px 14px;font-size:12px;display:grid}.drawer-row-key{color:var(--ink-400);letter-spacing:.04em;text-transform:uppercase;align-self:center;font-size:10px}.drawer-row-val{color:var(--ink-900);word-break:break-word}.drawer-row-val a{color:var(--accent);border-bottom:1px dotted var(--accent);text-decoration:none}.drawer-row-val a:hover{color:var(--ink-950);border-bottom-color:var(--ink-950)}.drawer-action-stack{flex-direction:column;gap:8px;display:flex}.drawer-action{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-md);cursor:pointer;text-align:left;font-family:var(--font-ui);color:var(--ink-900);transition:border-color .15s var(--ease), background .15s var(--ease);flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;display:flex}.drawer-action:hover{border-color:var(--sage);background:var(--paper-elevated)}.drawer-action:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.drawer-action-label{color:var(--ink-950);font-size:14px;font-weight:600}.drawer-action-hint{color:var(--ink-500);font-size:12px;line-height:1.4}.meta-row{font-family:var(--font-mono);color:var(--ink-500);flex-wrap:wrap;align-items:center;gap:14px;font-size:11px;display:flex}.meta-row .sep{background:var(--ink-200);width:1px;height:12px}.meta-row .num{color:var(--ink-700)}.meta-row .warn{color:var(--warn)}.transpose-stepper{background:var(--paper-elevated);border:1px solid var(--rule);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--ink-500);align-items:center;gap:2px;padding:2px 4px;font-size:10px;display:inline-flex}.transpose-stepper .step-btn{width:18px;height:18px;color:var(--ink-700);cursor:pointer;font-size:13px;line-height:1;font-family:var(--font-mono);background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;display:inline-flex}.transpose-stepper .step-btn:hover{background:var(--paper-sunken);color:var(--ink-900)}.transpose-stepper .step-value{text-align:center;min-width:44px;color:var(--ink-900)}.audio-key-toggle{letter-spacing:.04em;text-transform:lowercase;border:1px solid var(--rule);height:22px;color:var(--ink-700);cursor:pointer;font-size:10px;font-family:var(--font-ui);white-space:nowrap;transition:color .15s var(--ease), border-color .15s var(--ease), background .15s var(--ease);background:0 0;border-radius:999px;margin-left:6px;padding:0 10px}.audio-key-toggle:hover{color:var(--ink-950);border-color:var(--sage)}.audio-key-toggle[data-active=true]{color:var(--paper);background:var(--sage);border-color:var(--sage)}.actions{align-items:center;gap:8px;display:flex}.field-cluster{background:var(--paper-elevated);border:1px solid var(--rule);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--ink-500);align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:11px;display:inline-flex}.field-cluster .field-label{letter-spacing:.04em}.field-cluster .field-input{text-align:center;width:38px;height:22px;font-family:var(--font-mono);color:var(--ink-900);background:var(--paper-sunken);transition:border-color .15s var(--ease), background .15s var(--ease);border:1px solid #0000;border-radius:4px;padding:0 4px;font-size:11px}.field-cluster .field-input:focus{border-color:var(--ink-300);background:var(--paper-elevated);outline:none}.field-cluster .field-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.field-cluster .field-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cluster-divider{background:var(--rule);flex:none;width:1px;height:18px}.subtoolbar{z-index:120;background:var(--paper);border-bottom:1px solid var(--rule-soft);min-width:0;max-width:100%;font-family:var(--font-mono);color:var(--ink-500);flex-wrap:nowrap;align-items:center;gap:10px;padding:8px 18px;font-size:11px;display:flex;position:relative;overflow:visible}.subtoolbar.app-topbar{-webkit-backdrop-filter:saturate(140%)blur(14px);border-bottom:1px solid var(--rule);background:#faf8f3d1;padding:10px 18px;position:sticky;top:0}@container shell (width<=520px){.subtoolbar{-webkit-overflow-scrolling:touch;overflow:auto visible}.subtoolbar:has(.score-picker-wrap[data-open=true]){overflow:visible}}.subtoolbar>*{flex-shrink:0}.subtoolbar>.topbar-leading{flex-grow:0;flex-shrink:1}.subtoolbar .group{flex:none;align-items:center;gap:8px;display:inline-flex}.subtoolbar .group-label{white-space:nowrap;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-400);font-size:10px}.page-control{align-items:center;gap:6px;display:inline-flex}.subtoolbar .page-control{min-width:0;display:inline-flex}.subtoolbar-score-controls{flex-wrap:nowrap;align-items:center;gap:10px;min-width:0;display:inline-flex;overflow:visible}.subtoolbar-score-controls .layout-steppers,.subtoolbar-score-controls .slider-control[data-tour=measures],.subtoolbar-score-controls .slider-control[data-tour=strips-per-screen],.subtoolbar-score-controls .meta-row{flex:none}.subtoolbar-score-controls .layout-steppers{align-items:center;gap:10px;display:inline-flex}.subtoolbar-score-controls .cluster-divider,.subtoolbar>.subtoolbar-score-controls,.subtoolbar>.page-control{flex:none}.page-compact-label{min-width:36px;font-family:var(--font-mono);color:var(--ink-900);font-variant-numeric:tabular-nums;cursor:default;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:0 4px;font-size:11px;font-weight:700;display:none}.subtoolbar>.page-control .page-compact-label{display:inline-flex}.page-nav-button{justify-content:center;width:30px;min-width:30px;height:30px;padding:0;font-size:16px;line-height:1}.page-nav-button:disabled{opacity:.38;cursor:not-allowed}.page-select{border:1px solid var(--rule);border-radius:var(--radius-md);background:var(--paper-elevated);min-width:150px;max-width:220px;height:30px;color:var(--ink-700);font:inherit;font-variant-numeric:tabular-nums;padding:0 30px 0 10px}.page-select:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.subtoolbar .seek-fill{flex:220px;align-items:center;gap:10px;display:flex}.playback-button{border:1.5px solid var(--sage);background:var(--paper-elevated);width:56px;height:32px;color:var(--ink-900);border-radius:999px;flex:none;justify-content:center;padding:0 12px}.playback-glyph{color:currentColor;flex:0 0 18px;width:18px;height:18px;display:block;position:relative}.playback-glyph:before,.playback-glyph:after{content:"";display:block;position:absolute}.playback-glyph[data-state=play]:before{border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:9px solid;width:0;height:0;top:3px;left:5px}.playback-glyph[data-state=play]:after{display:none}.playback-glyph[data-state=pause]:before,.playback-glyph[data-state=pause]:after{background:currentColor;border-radius:1px;width:4px;height:12px;top:3px}.playback-glyph[data-state=pause]:before{left:4px}.playback-glyph[data-state=pause]:after{right:4px}@keyframes count-pulse{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.playback-button:hover{background:var(--sage-soft);border-color:var(--sage);color:var(--ink-950)}.playback-button[data-active=true],.playback-button.active{background:var(--sage);color:var(--paper);border-color:var(--sage)}.beat-readout{font-variant-numeric:tabular-nums;color:var(--ink-700);text-align:right;min-width:80px}.topbar-preferences-trigger{width:36px;height:32px;color:var(--ink-700);background:var(--paper-elevated);border:1px solid var(--rule);border-radius:var(--radius-md);cursor:pointer;transition:color .15s var(--ease), background .15s var(--ease), border-color .15s var(--ease);flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.topbar-preferences-trigger:hover,.topbar-preferences-trigger[data-active=true]{color:var(--ink-950);background:var(--paper-sunken);border-color:var(--ink-300)}.topbar-preferences-trigger:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px}.hand-quick-filters{flex:none;display:inline-flex}:root{--prefs-panel-width:min(340px, calc(100vw - 56px))}.preferences-drawer{z-index:210;width:var(--prefs-panel-width);height:100dvh;padding-left:env(safe-area-inset-left);background:var(--paper-elevated);border-right:1px solid var(--rule);transition:transform .28s var(--ease);outline:none;flex-direction:column;display:flex;position:fixed;top:0;left:0;transform:translate(-100%);box-shadow:24px 0 64px -24px #2c262238}.preferences-drawer[data-open=true]{transform:translate(0)}.pianoroll-shell{transition:padding-left .28s var(--ease);container:shell/inline-size}@media (width>=900px){.pianoroll-shell[data-prefs-open=true]{padding-left:var(--prefs-panel-width)}.preferences-drawer{box-shadow:none}}@media (prefers-reduced-motion:reduce){.preferences-drawer,.pianoroll-shell{transition:none}}.preferences-drawer-head{border-bottom:1px solid var(--rule-soft);justify-content:space-between;align-items:center;gap:12px;padding:16px 20px 14px;display:flex}.preferences-drawer-head .preferences-drawer-title{font-family:var(--font-display);color:var(--ink-950);letter-spacing:-.01em;margin:0;font-size:20px;font-weight:500;line-height:1.15}.preferences-drawer-close{background:var(--paper-sunken);width:28px;height:28px;color:var(--ink-500);font-family:var(--font-mono);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);border:1px solid #0000;border-radius:999px;flex:none;justify-content:center;align-self:center;align-items:center;font-size:16px;line-height:1;display:inline-flex}.preferences-drawer-close:hover{background:var(--accent-soft);color:var(--accent)}.preferences-drawer-body{overscroll-behavior:contain;flex:1;min-height:0;padding:4px 18px 12px;overflow-y:auto}.preferences-drawer-body .print-controls-panel{padding-top:4px}.preferences-drawer-foot{padding:12px 20px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--rule-soft);background:linear-gradient(180deg, #fffdf700 0%, var(--paper-elevated) 28%)}.preferences-print-cta{justify-content:center;gap:10px;width:100%;height:40px;font-size:13px;font-weight:600}.preferences-print-arrow{transition:transform .2s var(--ease);align-items:center;font-size:16px;line-height:1;display:inline-flex;transform:translate(0)}.preferences-print-cta:hover .preferences-print-arrow{transform:translate(2px)}.subtoolbar-score-controls .meta-row{flex-wrap:nowrap;gap:10px}.slider-control{flex:none;align-items:center;gap:7px;display:inline-flex}.slider-frame{background:var(--paper-elevated);border:1px solid var(--rule);border-radius:var(--radius-md);height:24px;box-shadow:var(--shadow-1);align-items:center;gap:4px;padding:0 4px;display:inline-flex}.count-in-metronome-row--topbar .slider-control>.slider-frame{order:0}.slider-scrub{touch-action:pan-y;flex:none;justify-content:center;align-items:center;display:inline-flex}.slider-step,.slider-value{font-family:var(--font-mono);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;height:22px;display:inline-flex}.slider-step{width:16px;color:var(--ink-500);border-radius:3px;font-size:13px;line-height:1}.slider-step:hover:not(:disabled){color:var(--accent);background:var(--accent-soft)}.slider-step:disabled{color:var(--ink-300);cursor:default}.page-select-inline{appearance:none;font-family:var(--font-mono);color:var(--ink-900);font-variant-numeric:tabular-nums;cursor:pointer;text-align:center;text-align-last:center;background:0 0;border:0;border-radius:3px;outline:none;flex:auto;min-width:5.5rem;max-width:9rem;height:22px;padding:0 6px;font-size:11px;font-weight:700}.page-select-inline:hover{color:var(--accent);background:var(--accent-soft)}.slider-value{min-width:40px;color:var(--ink-900);font-variant-numeric:tabular-nums;border-radius:3px;padding:0 4px;font-size:11px;font-weight:700}button.slider-value,span.slider-value{justify-content:center;align-items:center;display:inline-flex}.slider-value:not(:disabled):hover{color:var(--accent);background:var(--accent-soft)}.slider-value:disabled{cursor:default}.slider-scrub.is-scrubbing{cursor:ew-resize}.slider-scrub.is-scrubbing .slider-value,.slider-scrub.is-scrubbing .page-compact-label{cursor:ew-resize;-webkit-user-select:none;user-select:none}.slider-input{text-align:center;width:44px;min-width:44px;height:22px;font-family:var(--font-mono);color:var(--ink-900);background:var(--paper-sunken);border:1px solid var(--accent);font-variant-numeric:tabular-nums;-moz-appearance:textfield;border-radius:3px;outline:none;padding:0 4px;font-size:11px;font-weight:700}.slider-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.slider-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.transpose-key-presets{width:100%}.transpose-control-row{justify-content:flex-end;align-items:center;width:100%;min-width:0;display:flex}.transpose-stepper-control .slider-scrub{flex:none;min-width:18ch}.transpose-stepper-control .slider-value{white-space:nowrap;justify-content:center;width:100%;min-width:18ch;padding:0}.slider-control>.step-reset{letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--rule);height:18px;color:var(--ink-500);cursor:pointer;font-size:9px;font-family:var(--font-mono);background:0 0;border-radius:3px;padding:0 6px}.slider-control>.step-reset:hover{color:var(--ink-900);border-color:var(--ink-300)}.count-in-metronome-row--topbar .slider-control>.step-reset{order:1}.preferences-transpose-controls{display:contents}.metronome-icon-btn{background:var(--paper-elevated);border:1px solid var(--rule);border-radius:var(--radius-md);width:28px;height:24px;color:var(--ink-500);cursor:pointer;transition:color .12s var(--ease), background .12s var(--ease), border-color .12s var(--ease);justify-content:center;align-items:center;padding:0;display:inline-flex}.metronome-icon-btn:hover{color:var(--accent);border-color:var(--accent-soft-strong,var(--accent))}.metronome-icon-btn[data-active=true]{color:var(--paper);background:var(--accent);border-color:var(--accent)}.slider-range{appearance:none;background:var(--paper-sunken);cursor:pointer;border-radius:999px;outline:none;width:96px;height:4px;margin:0 2px}.slider-range::-webkit-slider-thumb{appearance:none;background:var(--clay);border:2px solid var(--paper-elevated);cursor:grab;width:14px;height:14px;transition:transform .1s var(--ease);border-radius:50%}.slider-range::-webkit-slider-thumb:hover{background:var(--accent);transform:scale(1.15)}.slider-range::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.1)}.slider-range::-moz-range-thumb{background:var(--clay);border:2px solid var(--paper-elevated);cursor:grab;border-radius:50%;width:14px;height:14px}.slider-range::-moz-range-thumb:hover{background:var(--accent)}.slider-range:focus-visible{outline:2px solid var(--accent-ring);outline-offset:2px;border-radius:999px}.page-control .slider-range{width:140px}@container shell (width<=1100px){.subtoolbar [data-tight-hide=true],.subtoolbar>.subtoolbar-score-controls{display:none}}@container shell (width<=1010px){.subtoolbar [data-hands-hide=true]{display:none}}@container shell (width<=760px){.subtoolbar [data-time-hide=true]{display:none}}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.pr-tooltip{color:#f5f4f0;border-radius:var(--radius-md);max-width:320px;font-family:var(--font-mono);pointer-events:none;z-index:100;box-shadow:var(--shadow-3);white-space:pre-wrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#2c2622f5;padding:10px 12px;font-size:11px;line-height:1.55;position:absolute}.pr-tooltip:before{content:"";background:var(--tooltip-color,#fff);border-radius:2px;width:2px;position:absolute;top:10px;bottom:10px;left:0}.pr-tooltip .t-title{color:var(--tooltip-color,#fff);letter-spacing:-.005em;margin-bottom:2px;font-size:13px;font-weight:600}.pr-tooltip .t-sub{color:#f5f4f099;margin-bottom:4px;font-size:10px}.loading{font-family:var(--font-mono);color:var(--ink-400);letter-spacing:.02em;padding:48px 32px;font-size:13px}.loading:after{content:"…";margin-left:2px;animation:1.4s steps(4,end) infinite dots;display:inline-block}@keyframes dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.piano-keyboard-clip{border-top:1px solid var(--rule);flex-shrink:0;overflow:hidden}.piano-keyboard{background:var(--paper);flex-shrink:0;padding:0}.pk-label{font-family:var(--font-mono);text-align:center;border-top:1px solid var(--rule-soft);justify-content:center;align-items:baseline;gap:8px;min-height:20px;padding:4px 24px;display:flex}.pk-chord{letter-spacing:-.01em;font-size:14px;font-weight:700}.pk-roman{color:var(--ink-500);font-size:11px}.pk-notes{color:var(--ink-400);letter-spacing:.02em;font-size:10px}.pk-keys{-webkit-user-select:none;user-select:none;height:64px;position:relative}.pk-white{background:var(--paper-elevated);border-right:1px solid var(--rule);height:100%;transition:background-color .1s var(--ease);position:absolute;top:0}.pk-white.pk-active{z-index:1}.pk-black{background:var(--ink-900);z-index:2;height:58%;transition:background-color .1s var(--ease);border-radius:0 0 2px 2px;position:absolute;top:0}.pk-black.pk-active{z-index:3;box-shadow:0 0 0 1.5px #fff}.pk-white.pk-active,.pk-black.pk-active{animation:.18s ease-out pk-attack}@keyframes pk-attack{0%{filter:brightness(1.6);transform:scaleY(1.06)}to{filter:brightness();transform:scaleY(1)}}.pk-white.pk-active.pk-left{background-image:repeating-linear-gradient(-45deg,#0000 0 3px,#ffffff40 3px 5px)}.pk-black.pk-active.pk-left{outline-offset:-3px;outline:1.5px dashed #ffffff80}.pk-white.pk-both,.pk-black.pk-both{box-shadow:0 0 0 2px #fff,0 0 6px #0000004d}.pk-interval{font-family:var(--font-mono);color:#fff;pointer-events:none;font-size:9px;font-weight:700;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.pk-black .pk-interval{font-size:8px;bottom:2px}.pk-fingering{min-width:13px;height:13px;color:var(--ink-900);font-family:var(--font-mono);text-align:center;pointer-events:none;background:#fffdf7e6;border-radius:999px;font-size:8px;font-weight:800;line-height:13px;position:absolute;top:4px;left:50%;transform:translate(-50%)}.pk-black .pk-fingering{min-width:12px;height:12px;font-size:7px;line-height:12px;top:3px}.pk-c-label{font-family:var(--font-mono);color:var(--ink-400);pointer-events:none;white-space:nowrap;font-size:7px;position:absolute;bottom:-13px;left:50%;transform:translate(-50%)}.explainer-overlay{z-index:300;animation:overlay-in .18s var(--ease);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.explainer-backdrop{-webkit-backdrop-filter:blur(8px);background:#0c0c107a;position:absolute;inset:0}.explainer-panel{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);width:min(920px,100vw - 32px);max-height:calc(100vh - 32px);box-shadow:var(--shadow-3);animation:sheet-in .22s var(--ease);grid-template-columns:minmax(280px,.82fr) minmax(360px,1.18fr);grid-template-areas:"copy visual""footer footer";gap:24px;padding:28px;display:grid;position:relative;overflow:auto}.explainer-close{z-index:2;background:var(--paper-sunken);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--ink-500);cursor:pointer;font-family:var(--font-mono);transition:background .15s var(--ease), color .15s var(--ease);border:0;font-size:16px;line-height:1;position:absolute;top:14px;right:14px}.explainer-close:hover{background:var(--accent-soft);color:var(--accent)}.explainer-copy-wrap{grid-area:copy;align-self:center;padding-right:10px;position:relative}.explainer-copy-measure{visibility:hidden;pointer-events:none;height:auto;position:absolute;top:0;left:0;right:0;overflow:visible}.explainer-eyebrow{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-size:10px;display:block}.explainer-copy-wrap h1{max-width:10ch;font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink-950);font-size:44px;font-weight:500;line-height:1.05}.explainer-copy-wrap p{max-width:36ch;color:var(--ink-700);margin-top:18px;font-size:15px;line-height:1.55}.explainer-visual{grid-area:visual;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:12px;min-height:360px;display:grid}.sheet-panel,.roll-panel,.herbie-panel{background:var(--paper-elevated);border:1px solid var(--rule);border-radius:var(--radius-md);opacity:.56;min-width:0;transition:opacity .2s var(--ease), transform .2s var(--ease), border-color .2s var(--ease), box-shadow .2s var(--ease);position:relative;overflow:hidden;transform:scale(.985)}.explainer-visual[data-step="0"] .sheet-panel,.explainer-visual[data-step="1"] .roll-panel,.explainer-visual[data-step="2"] .herbie-panel{opacity:1;border-color:var(--ink-300);box-shadow:var(--shadow-2);transform:scale(1)}.staff-lines{background:repeating-linear-gradient(to bottom, var(--ink-300) 0, var(--ink-300) 1px, transparent 1px, transparent 18px);height:72px;position:absolute;inset:74px 14px auto}.sheet-note{background:var(--ink-900);border-radius:50%;width:20px;height:15px;position:absolute;transform:rotate(-18deg)}.sheet-note:after{content:"";background:var(--ink-900);transform-origin:bottom;border-radius:2px;width:2px;height:48px;position:absolute;bottom:7px;left:17px;transform:rotate(18deg)}.sheet-note.n1{top:128px;left:18%}.sheet-note.n2{top:92px;left:34%}.sheet-note.n3{top:110px;left:52%}.sheet-note.n4{top:74px;left:70%}.roll-panel{background:linear-gradient(to right, transparent 0 10%, #00000009 10% 11%, transparent 11% 20%), var(--paper-elevated);background-size:42px 100%}.roll-bar,.herbie-bar,.pattern-band,.harmony-chip{justify-content:center;align-items:center;display:inline-flex;position:absolute}.roll-bar{background:var(--ink-900);border-radius:5px;width:18%}.roll-bar.b1{height:138px;top:42px;left:14%}.roll-bar.b2{height:168px;top:126px;left:34%}.roll-bar.b3{height:116px;top:76px;left:54%}.roll-bar.b4{height:126px;top:166px;left:74%}.herbie-panel{background:linear-gradient(to right, transparent 0 24%, #0000000b 24% 25%, transparent 25% 50%, #0000000b 50% 51%, transparent 51% 75%, #0000000b 75% 76%, transparent 76%), var(--paper-elevated)}.pattern-band{background:var(--clay);opacity:1;border:none;border-radius:0;height:22px;top:0;left:0;right:0}.herbie-bar{height:18px;color:var(--paper);font-family:var(--font-mono);border-radius:4px;font-size:10px;font-weight:700}.herbie-bar.hb1{background:var(--butter);width:30%;top:86px;left:14%}.herbie-bar.hb2{background:var(--clay);width:26%;top:116px;left:32%}.herbie-bar.hb3{background:var(--sage);width:34%;top:146px;left:18%}.herbie-bar.hb4{background:var(--clay-strong);width:84%;height:26px;top:232px;left:8%}.harmony-chip{background:var(--clay);height:22px;color:var(--paper);font-family:var(--font-ui);white-space:nowrap;border-radius:999px;padding:0 12px;font-size:10px;font-weight:600;top:40px;bottom:auto;left:8%;transform:none}.explainer-visual[data-step="0"] .sheet-note,.explainer-visual[data-step="0"] .sheet-note:after,.explainer-visual[data-step="1"] .roll-bar{background:var(--accent)}.explainer-visual[data-step="2"] .pattern-band{opacity:1}.explainer-visual[data-step="2"] .harmony-chip{box-shadow:0 0 0 4px var(--accent-ring)}.explainer-footer{grid-area:footer;justify-content:space-between;align-items:center;gap:16px;padding-top:2px;display:flex}.explainer-dots,.explainer-actions{align-items:center;gap:8px;display:inline-flex}.explainer-dot{background:var(--ink-300);cursor:pointer;width:8px;height:8px;transition:width .15s var(--ease), background .15s var(--ease);border:0;border-radius:999px}.explainer-dot[data-active=true]{background:var(--accent);width:24px}.tour-overlay{z-index:320;pointer-events:none;position:fixed;inset:0}.tour-scrim{-webkit-backdrop-filter:blur(2px);background:#0c0c105c;position:absolute;inset:0}.tour-blur-panel{-webkit-backdrop-filter:blur(2px);pointer-events:none;transition:top .18s var(--ease), left .18s var(--ease), width .18s var(--ease), height .18s var(--ease);background:#0c0c105c;position:fixed}.tour-spotlight{border:2px solid var(--accent);border-radius:var(--radius-md);pointer-events:none;transition:top .18s var(--ease), left .18s var(--ease), width .18s var(--ease), height .18s var(--ease);background:#faf8f314;position:fixed;box-shadow:0 0 0 9999px #0c0c1047,0 12px 28px #0000002e}.tour-card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--radius-lg);width:min(320px,100vw - 28px);box-shadow:var(--shadow-3);pointer-events:auto;padding:16px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.tour-card[style]{transform:none}.tour-card-head,.tour-footer,.tour-actions{align-items:center;display:flex}.tour-card-head,.tour-footer{justify-content:space-between;gap:12px}.tour-eyebrow,.tour-progress{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-size:10px}.tour-card h2{font-family:var(--font-display);letter-spacing:0;color:var(--ink-950);margin-top:10px;font-size:22px;font-weight:500;line-height:1.15}.tour-card p{color:var(--ink-700);margin-top:10px;font-size:14px;line-height:1.48}.tour-color-legend{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px;display:grid}.tour-color-legend span{border-radius:var(--radius-sm);background:var(--swatch);color:#fff;height:28px;font-family:var(--font-mono);justify-content:center;align-items:center;font-size:11px;font-weight:700;display:inline-flex;box-shadow:inset 0 -10px 20px #0000001f}.tour-transpose-map{background:var(--paper-sunken);border:1px solid var(--rule);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--ink-700);grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;margin-top:12px;padding:10px;font-size:11px;display:grid}.tour-transpose-map b{color:var(--accent)}.tour-transpose-map small{color:var(--ink-500);grid-column:1/-1}.tour-close{background:var(--paper-sunken);border-radius:var(--radius-sm);width:26px;height:26px;color:var(--ink-500);cursor:pointer;font-family:var(--font-mono);border:0}.tour-close:hover{color:var(--ink-900);background:var(--ink-100)}.tour-footer{margin-top:16px}.tour-actions{gap:8px}@media (width<=520px){.tour-card,.tour-card[style]{width:auto;left:14px;right:14px}}@media (width<=760px){.explainer-overlay{padding:16px}.explainer-panel{grid-template-columns:unset;grid-template-areas:unset;flex-direction:column;padding:22px;display:flex}.explainer-copy-wrap{flex:none;align-self:stretch;padding-right:24px}.explainer-visual{flex:auto;grid-template-rows:1fr;align-content:stretch;min-height:180px}.sheet-panel,.roll-panel,.herbie-panel{height:100%;min-height:100%}.explainer-footer{flex-direction:column;flex:none;align-items:flex-start}.explainer-copy-wrap h1{max-width:none;font-size:34px}.staff-lines{background:repeating-linear-gradient(to bottom, var(--ink-300) 0, var(--ink-300) 1px, transparent 1px, transparent 16px);height:64px;inset:58px 12px auto}.sheet-note.n1{top:108px}.sheet-note.n2{top:76px}.sheet-note.n3{top:94px}.sheet-note.n4{top:60px}.roll-bar.b1{height:82px;top:32px}.roll-bar.b2{height:88px;top:76px}.roll-bar.b3{height:76px;top:48px}.roll-bar.b4{height:70px;top:100px}.herbie-bar.hb1{top:68px}.herbie-bar.hb2{top:92px}.herbie-bar.hb3{top:116px}.herbie-bar.hb4{height:22px;top:144px}.explainer-actions{flex-wrap:wrap;justify-content:flex-end;width:100%}.print-bottom-sheet .btn{justify-content:center}}@media (width<=520px){.explainer-overlay{padding:8px}.explainer-panel{gap:14px;width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:16px}.explainer-close{top:10px;right:10px}.explainer-copy-wrap{padding-right:28px}.explainer-eyebrow{margin-bottom:8px}.explainer-copy-wrap h1{font-size:28px;line-height:1.08}.explainer-copy-wrap p{margin-top:12px;font-size:14px;line-height:1.45}.explainer-visual{grid-template-rows:1fr;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:104px}.sheet-panel,.roll-panel,.herbie-panel{height:100%;min-height:100%}.staff-lines{background:repeating-linear-gradient(to bottom, var(--ink-300) 0, var(--ink-300) 1px, transparent 1px, transparent 12px);height:50px;inset:36px 8px auto}.sheet-note{width:13px;height:10px}.sheet-note:after{height:32px;bottom:4px;left:11px}.sheet-note.n1{top:72px}.sheet-note.n2{top:48px}.sheet-note.n3{top:60px}.sheet-note.n4{top:36px}.roll-bar.b1{height:50px;top:18px}.roll-bar.b2{height:48px;top:46px}.roll-bar.b3{height:46px;top:26px}.roll-bar.b4{height:36px;top:56px}.pattern-band{height:16px;top:0}.herbie-bar{height:14px;font-size:9px}.herbie-bar.hb1{top:38px}.herbie-bar.hb2{top:54px}.herbie-bar.hb3{top:70px}.herbie-bar.hb4{height:14px;top:86px}.harmony-chip{text-overflow:ellipsis;max-width:72%;height:14px;padding:0 6px;font-size:9px;top:20px;bottom:auto;overflow:hidden}}.strip-stack{overflow:hidden}.strip-stack svg{touch-action:pan-y;flex-shrink:0}.pianoroll-shell[data-orientation=falling] .strip-stack,.pianoroll-shell[data-orientation=falling] .strip-stack svg{touch-action:none;overscroll-behavior:none}.strip-stack.flip-forward svg{animation:.28s cubic-bezier(.25,.8,.4,1) swipe-in-right}.strip-stack.flip-backward svg{animation:.28s cubic-bezier(.25,.8,.4,1) swipe-in-left}@keyframes swipe-in-right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes swipe-in-left{0%{transform:translate(-100%)}to{transform:translate(0)}}@media (orientation:landscape) and (height<=500px),(orientation:portrait) and (width<=600px){.topbar-eyebrow{display:none}.topbar-leading .score-picker-trigger{font-size:clamp(13px,3.4vw,15px)}.transpose-stepper{gap:0;padding:1px 2px}.transpose-stepper .step-value{padding:0 4px;font-size:10px}.subtoolbar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:6px;padding:6px 12px;overflow-x:auto}.subtoolbar:has(.score-picker-wrap[data-open=true]){overflow:visible}.subtoolbar.app-topbar{padding:8px 12px}.btn{height:34px;padding:0 10px;font-size:11px}.btn.icon-only{padding:0 8px}.toggle-pill{min-height:34px}.topbar-preferences-trigger,.topbar-drawer-trigger{width:40px;height:36px}.slider-frame{height:36px}.slider-step{width:30px;height:30px;font-size:16px}.slider-scrub{min-height:30px}.slider-value,.page-compact-label{min-width:42px;height:30px}.metronome-icon-btn,.count-in-time-badge{min-width:36px;height:34px}.slider-control .slider-range{display:none}}@media (width>=700px) and (width<=1180px) and (pointer:coarse){.subtoolbar [data-tight-hide=true],.subtoolbar>.subtoolbar-score-controls{display:none}.btn{height:44px;padding:0 14px}.topbar-preferences-trigger,.topbar-drawer-trigger{width:44px;height:40px}.playback-button{width:64px;height:44px}.score-picker-trigger{min-height:40px}.slider-frame{height:40px;padding:0 6px}.slider-step{width:32px;height:32px;font-size:17px}.slider-scrub{min-height:32px}.slider-value,.page-compact-label{min-width:44px;height:32px;font-size:12px}.metronome-icon-btn,.count-in-time-badge{min-width:40px;height:40px}.toggle-pill{min-height:40px}.transpose-stepper .step-btn{min-width:40px;min-height:40px}input[type=range]::-webkit-slider-thumb{width:28px;height:28px}input[type=range]::-moz-range-thumb{width:28px;height:28px}}.loop-button{color:#1f2937;background:#ffffffb8;border:1px solid #1f293729;border-radius:8px;justify-content:center;align-items:center;width:38px;height:38px;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,monospace;font-size:18px;font-weight:800;transition:background .16s,border-color .16s,color .16s,transform .16s;display:inline-flex;box-shadow:inset 0 1px #ffffffb3}.loop-button:hover{border-color:#14b8a68c;transform:translateY(-1px)}.loop-button[data-active=true]{color:#fff;background:#0f766e;border-color:#0f766e}.loop-selection-band{fill:#14b8a624;stroke:#0f766e6b;stroke-width:1.5px}.loop-selection-overlay--falling .loop-selection-band{stroke:none}.loop-selection-handle{stroke:#0f766e;stroke-width:3px;stroke-linecap:round}.loop-selection-grip{fill:#0f766e;fill-opacity:.92;stroke:#fff;stroke-width:2px}.loop-selection-knob{fill:#0f766e;stroke:#fff;stroke-width:1.5px}@media (width<=640px){.loop-selection-handle{stroke-width:4px}.loop-selection-grip{stroke-width:2.5px}}.pianoroll-shell[data-loop-focus=true] .loop-selection-band{fill:#14b8a633;stroke-width:2px}.pianoroll-shell[data-loop-focus=true] .strip-stack{background:linear-gradient(180deg, #f8fffd 0%, var(--paper) 100%)}.score-picker-trigger,.score-picker-item .item-title{letter-spacing:0}.score-picker-dropdown.score-library{width:min(720px,100vw - 24px);max-height:min(680px,100vh - 96px);padding:8px}.score-library-toolbar{z-index:2;background:var(--paper-elevated);border-bottom:1px solid var(--rule-soft);gap:8px;padding:2px 2px 8px;display:grid;position:sticky;top:0}.score-library-toolbar .score-picker-search{padding:0;position:static}.score-library-filters{scrollbar-width:none;gap:6px;padding-bottom:1px;display:flex;overflow-x:auto}.score-library-filters::-webkit-scrollbar{display:none}.score-library-filter{border:1px solid var(--rule);background:var(--paper);min-height:30px;color:var(--ink-500);font-family:var(--font-display);cursor:pointer;transition:background .12s var(--ease), border-color .12s var(--ease), color .12s var(--ease);border-radius:999px;flex:none;padding:0 10px;font-size:12px;font-weight:600}.score-library-filter:hover,.score-library-filter[data-active=true]{background:var(--accent-soft);border-color:var(--clay);color:var(--ink-900)}.score-library-featured{padding:6px 0 4px}.score-library-featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.score-library-feature{border:1px solid var(--rule-soft);border-radius:var(--radius-md);background:var(--paper);min-height:64px;color:var(--ink-700);text-align:left;cursor:pointer;transition:background .12s var(--ease), border-color .12s var(--ease), color .12s var(--ease);grid-template-columns:36px minmax(0,1fr);align-items:center;gap:10px;padding:9px;display:grid}.score-library-feature:hover,.score-library-feature[data-selected=true]{background:var(--sage-soft);border-color:var(--sage);color:var(--ink-950)}.score-library-avatar{border:1px solid var(--rule);background:linear-gradient(135deg, var(--paper-elevated), var(--paper-sunken));width:36px;height:36px;color:var(--ink-700);font-family:var(--font-mono);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.score-library-preview{border:1px solid var(--rule);background:var(--paper-elevated);width:36px;height:36px;color:var(--ink-700);cursor:pointer;transition:background .12s var(--ease), border-color .12s var(--ease), color .12s var(--ease), transform .12s var(--ease);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.score-library-preview:hover,.score-library-preview[data-active=true]{background:var(--clay);border-color:var(--clay-strong);color:#fff}.score-library-preview:hover{transform:translateY(-1px)}.score-library-feature-text,.score-library-feature-title,.score-library-feature-meta{min-width:0}.score-library-feature-text{gap:2px;display:grid}.score-library-feature-title{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-size:13px;font-weight:700;line-height:1.25;overflow:hidden}.score-library-feature-meta{text-overflow:ellipsis;white-space:nowrap;color:var(--ink-500);font-family:var(--font-mono);font-size:10px;font-weight:600;overflow:hidden}.score-library-results-head{color:var(--ink-400);font-family:var(--font-mono);justify-content:space-between;align-items:center;padding:3px 0 1px;font-size:10px;font-weight:600;display:flex}.score-library-results-head .score-picker-group-label{padding-bottom:4px}.score-library-results{gap:2px;display:grid}.score-picker-item.score-library-item{grid-template-columns:36px minmax(0,1fr) auto 52px 16px;min-height:58px;padding:9px;display:grid}.score-library-difficulty{border:1px solid var(--rule);background:var(--paper-sunken);color:var(--ink-500);font-family:var(--font-mono);white-space:nowrap;border-radius:999px;justify-self:end;padding:4px 7px;font-size:10px;font-weight:700;line-height:1}.score-library-difficulty[data-difficulty=starter],.score-library-difficulty[data-difficulty=easy]{background:var(--sage-soft);color:#476d42;border-color:#7fa37a6b}.score-library-difficulty[data-difficulty=advanced]{color:#8a5a0f;background:#fff1d5;border-color:#e9b8608c}.score-library-difficulty[data-difficulty=virtuoso]{background:var(--accent-soft);color:var(--clay-strong);border-color:#c9796480}.score-library-popularity{background:var(--ink-100);border-radius:999px;width:52px;height:6px;position:relative;overflow:hidden}.score-library-popularity-fill{border-radius:inherit;background:var(--clay);position:absolute;inset:0 auto 0 0}@media (width<=720px){.score-picker-dropdown.score-library{width:calc(100vw - 16px);max-height:calc(100dvh - 160px);position:fixed;top:84px;left:8px}.score-library-featured-grid{grid-template-columns:1fr}.score-picker-item.score-library-item{grid-template-columns:36px minmax(0,1fr) 16px}.score-library-difficulty,.score-library-popularity{display:none}}
