.file-drop{position:relative;display:flex;flex:1;min-height:0}.file-drop--over{outline:2px dashed var(--accent-bright);outline-offset:-8px}.file-drop__hint{position:absolute;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(4px);font-size:1.125rem;font-weight:600;pointer-events:none}.file-chooser{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:var(--control-height);padding:0 18px;border-radius:var(--radius-full);background:var(--primary-fill);box-shadow:var(--e-raised-sm),0 6px 16px var(--accent-glow);color:var(--accent-ink);font-weight:600;white-space:nowrap;cursor:pointer;transition:box-shadow var(--fast),filter var(--fast)}.file-chooser:hover{filter:brightness(1.05)}.file-chooser:active{box-shadow:inset 3px 3px 8px #0a1e5a59,inset -2px -2px 6px #ffffff2e}.file-chooser:focus-within{outline:2px solid var(--accent-bright);outline-offset:3px}.file-chooser__input{position:absolute;width:1px;height:1px;opacity:0}.notice{display:flex;align-items:center;gap:12px;margin:8px var(--gutter) 0;padding:10px 16px;border-radius:var(--radius-md);box-shadow:var(--e-pressed-sm);font-size:.9rem}.notice--error{background:var(--danger-soft);color:var(--danger)}.notice--info{background:var(--surface);color:var(--muted)}.notice__text{flex:1;min-width:0;overflow-wrap:anywhere}.notice__text summary{cursor:pointer}.notice__text ul{margin:6px 0 0;padding-left:18px}.site-footer{margin-top:48px;color:var(--muted);font-size:.86rem}.site-footer__links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.site-footer__link{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--muted);text-decoration:none;transition:box-shadow var(--fast)}.site-footer__link:hover .site-footer__link-title{color:var(--accent-text)}.site-footer__link:active{box-shadow:var(--e-pressed-sm)}.site-footer__link-title{color:var(--ink);font-size:.95rem;font-weight:650}.site-footer__small-links{display:flex;gap:18px;margin:20px 0 0}.site-footer__small-links a{color:var(--muted)}.site-footer__small-links a:hover{color:var(--accent-text)}.site-footer__licence{max-width:92ch;margin:28px 0 0;line-height:1.55}.site-footer details{margin-top:16px}.site-footer summary{cursor:pointer;margin-bottom:8px}@media (max-width: 720px){.site-footer__links{grid-template-columns:1fr;gap:12px}}.brand-mark{display:inline-flex;align-items:center;gap:12px;min-width:0;color:var(--ink);text-decoration:none}.brand-mark__tile{display:grid;flex:none;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--accent-bright);transition:box-shadow var(--fast)}.brand-mark:active .brand-mark__tile{box-shadow:var(--e-pressed-sm)}.brand-mark__name{margin:0;overflow:hidden;font-size:1.2rem;font-weight:700;letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 720px){.brand-mark{gap:10px}.brand-mark__tile{width:38px;height:38px;border-radius:12px}.brand-mark__name{font-size:1.05rem}}.instrument-switcher{flex:none}.instrument-switcher__item{min-width:96px;text-decoration:none}@media (max-width: 720px){.instrument-switcher{display:flex;width:100%}.instrument-switcher__item{min-width:0;min-height:38px}}.site-header{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions";align-items:center;gap:14px 20px;margin:0 auto;padding:22px var(--gutter) 6px;padding-top:max(22px,env(safe-area-inset-top))}.site-header--switcher{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"brand switcher actions"}.site-header__brand{grid-area:brand;min-width:0}.site-header__switcher{grid-area:switcher}.site-header__actions{grid-area:actions;display:flex;align-items:center;gap:10px}@media (max-width: 860px){.site-header--switcher{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions" "switcher switcher"}}@media (max-width: 720px){.site-header{padding-top:max(14px,env(safe-area-inset-top));gap:12px}}.home-page{width:100%;min-height:100vh}.home-page__main{max-width:1180px;margin:0 auto;padding:0 var(--gutter) 56px}.home-page__hero{max-width:760px;margin:0 auto;padding:56px 0 40px;text-align:center}.home-page__eyebrow{margin:0 0 14px;color:var(--accent-text);font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.home-page__headline{margin:0;font-size:clamp(2rem,4.6vw,3.4rem);font-weight:750;line-height:1.06;letter-spacing:-.03em;text-wrap:balance}.home-page__lede{max-width:58ch;margin:18px auto 0;color:var(--muted);font-size:1.05rem;text-wrap:pretty}.home-page__instruments{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:0;padding:0;list-style:none}.home-page__instrument{display:flex}.instrument-card{position:relative;display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:10px;padding:26px 26px 24px;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--e-raised);color:var(--ink);text-decoration:none;transition:box-shadow .22s var(--ease),transform .22s var(--ease)}.instrument-card:hover{box-shadow:var(--e-raised-lg);transform:translateY(-2px)}.instrument-card:active{box-shadow:var(--e-pressed);transform:none}.instrument-card__art{display:grid;place-items:center;width:100%;aspect-ratio:16 / 9;margin-bottom:8px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--e-pressed)}.instrument-card__art .instrument-art{width:58%;height:auto}.instrument-card__name{font-size:1.5rem;font-weight:750;letter-spacing:-.02em}.instrument-card__text{color:var(--muted);text-wrap:pretty}.instrument-card__needs{margin-top:auto;padding:6px 52px 0 0;color:var(--faint);font-size:.82rem;font-weight:600}.instrument-card__go{position:absolute;right:22px;bottom:18px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--accent-bright);transition:transform .22s var(--ease)}.instrument-card:hover .instrument-card__go{transform:translate(3px)}.home-page__section{margin-top:44px}.home-page__section-label{margin-bottom:14px}@media (max-width: 1180px){.home-page__instruments{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 980px){.home-page__instruments{gap:20px}.instrument-card{padding:20px 20px 22px}}@media (max-width: 860px){.home-page__instruments{grid-template-columns:1fr}.instrument-card{display:grid;grid-template-columns:132px minmax(0,1fr);grid-template-areas:"art name" "art text" "art needs";align-items:start;column-gap:20px;row-gap:6px;padding-right:72px}.instrument-card__art{grid-area:art;align-self:center;aspect-ratio:1;margin:0}.instrument-card__art .instrument-art{width:80%}.instrument-card__name{grid-area:name}.instrument-card__text{grid-area:text}.instrument-card__needs{grid-area:needs;padding-right:0}.instrument-card__go{top:50%;bottom:auto;transform:translateY(-50%)}.instrument-card:hover .instrument-card__go{transform:translate(3px,-50%)}}@media (max-width: 520px){.home-page__hero{padding:30px 0 26px;text-align:left}.home-page__lede{margin-left:0;font-size:.98rem}.instrument-card{grid-template-columns:84px minmax(0,1fr);column-gap:14px;padding:16px 56px 16px 16px}.instrument-card__name{font-size:1.25rem}.instrument-card__text{font-size:.9rem}.instrument-card__go{right:14px;width:34px;height:34px}}.difficulty-meter{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.difficulty-meter__dots{display:inline-flex;gap:3px}.difficulty-meter__dot{width:7px;height:7px;border-radius:50%;background:var(--surface);box-shadow:inset 1px 1px 2px var(--shadow-dark),inset -1px -1px 2px var(--shadow-light)}.difficulty-meter__dot--on{background:var(--accent-bright);box-shadow:0 0 4px var(--accent-glow)}.difficulty-meter__label{color:var(--muted);font-size:.85rem}.catalogue-filters{display:flex;flex-direction:column;gap:18px}.catalogue-filters__groups{display:flex;flex-wrap:wrap;align-items:flex-start;gap:20px 32px}.catalogue-filters__groups>.catalogue-filters__group{flex:0 0 250px}.catalogue-filters__group{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;border:0}.catalogue-filters__legend{margin-bottom:8px;padding:0;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.catalogue-filters__option{display:flex;align-items:center;gap:10px;min-height:34px;padding:2px 8px;border-radius:var(--radius-sm);cursor:pointer}.catalogue-filters__option:hover{color:var(--accent-text)}.catalogue-filters__option--empty{color:var(--muted)}.catalogue-filters__text{display:inline-flex;flex:1;align-items:center;gap:6px;min-width:0}.catalogue-filters__count{flex:none;margin-left:6px;color:var(--muted);font-size:.82rem;font-variant-numeric:tabular-nums}.catalogue-filters__clear{align-self:flex-start;min-height:var(--control-height);padding:4px 16px;border:0;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--ink);font:inherit;cursor:pointer}.catalogue-filters__clear:active:not(:disabled){box-shadow:var(--e-pressed-sm)}.catalogue-filters__clear:disabled{box-shadow:var(--e-raised-xs);color:var(--faint);cursor:default}@media (max-width: 520px){.catalogue-filters__groups>.catalogue-filters__group{flex:1 1 100%}}@media (max-width: 720px){.catalogue-filters__option{min-height:var(--touch-target)}}.catalogue-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin:0;padding:0;list-style:none}.catalogue-grid__item{min-width:0}.catalogue-grid__card{display:flex;flex-direction:column;gap:8px;height:100%;padding:12px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--ink);text-decoration:none;transition:box-shadow .18s var(--ease),transform .18s var(--ease)}.catalogue-grid__card:hover{box-shadow:var(--e-raised);transform:translateY(-1px)}.catalogue-grid__card:hover .catalogue-grid__title{color:var(--accent-text)}.catalogue-grid__card:active{box-shadow:var(--e-pressed-sm);transform:none}.catalogue-grid__card:focus-visible{outline:2px solid var(--accent-bright);outline-offset:3px}.catalogue-grid__top{display:flex;align-items:center;gap:12px;min-width:0}.catalogue-grid__cover{display:flex;flex:none;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:linear-gradient(145deg,color-mix(in srgb,var(--genre, var(--accent)) 82%,#ffffff),color-mix(in srgb,var(--genre, var(--accent)) 78%,#000000));box-shadow:inset 2px 2px 4px #ffffff47,inset -2px -2px 5px #00000038,var(--e-raised-xs);color:#fff;font-family:Georgia,Times New Roman,serif;font-size:1.7rem;line-height:1}.catalogue-grid__heading{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.catalogue-grid__title{display:-webkit-box;overflow:hidden;font-weight:600;line-height:1.3;overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:2}.catalogue-grid__composer{overflow:hidden;color:var(--muted);font-size:.88rem;text-overflow:ellipsis;white-space:nowrap}.catalogue-grid__tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:auto}.catalogue-grid__tag{padding:1px 9px;border-radius:999px;background:color-mix(in srgb,var(--genre, var(--accent)) 13%,transparent);color:var(--ink);font-size:.76rem;font-weight:500}.catalogue-grid__meta{color:var(--muted);font-size:.78rem}@media (max-width: 720px){.catalogue-grid{grid-template-columns:1fr;gap:14px}.catalogue-grid__top{display:flex;align-items:center;gap:12px;min-width:0}.catalogue-grid__cover{width:52px;height:52px}}.catalogue-results{display:flex;flex-direction:column;gap:40px}.catalogue-results__group{display:flex;flex-direction:column;gap:16px}.catalogue-results__header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.catalogue-results__titles{min-width:0;padding-left:14px;border-left:4px solid var(--genre, var(--accent));border-radius:2px}.catalogue-results__heading{margin:0;font-size:1.2rem;letter-spacing:-.01em}.catalogue-results__count{margin-left:4px;color:var(--muted);font-size:.9rem;font-weight:400;font-variant-numeric:tabular-nums}.catalogue-results__description{margin:2px 0 0;color:var(--muted);font-size:.88rem}.catalogue-results__see-all{flex:none;min-height:var(--control-height);padding:0 16px;border:0;border-radius:999px;background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--accent-text);font-weight:600;transition:box-shadow var(--fast)}.catalogue-results__see-all:active{box-shadow:var(--e-pressed-sm)}.catalogue-results__more{align-self:center;min-height:var(--touch-target);padding:4px 26px;border:0;border-radius:999px;background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--accent-text);font:inherit;font-weight:600;cursor:pointer}.catalogue-results__more:active{box-shadow:var(--e-pressed-sm)}.catalogue-results__see-all:focus-visible,.catalogue-results__more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.catalogue-results__empty{padding:24px 0;color:var(--muted)}@media (max-width: 720px){.catalogue-results{gap:26px}.catalogue-results__description{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:1}.catalogue-results__see-all{min-height:38px}.catalogue-results__group--shelf .catalogue-grid{display:grid;grid-auto-columns:min(82%,320px);grid-auto-flow:column;grid-template-columns:none;grid-template-rows:auto;gap:14px;margin:-10px calc(-1 * var(--gutter));padding:10px var(--gutter) 14px;overflow-x:auto;scroll-padding:0 var(--gutter);scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.catalogue-results__group--shelf .catalogue-grid::-webkit-scrollbar{display:none}.catalogue-results__group--shelf .catalogue-grid__item{scroll-snap-align:start}}.catalogue-results__note{margin:14px 0 0;color:var(--muted);font-size:.88rem}.select{position:relative;display:inline-flex;min-width:0}.select__button{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-width:0;min-height:var(--control-height);padding:0 12px 0 14px;border:0;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--e-raised-xs);color:var(--ink);font:inherit;cursor:pointer;text-align:left}.select__button:hover:not(:disabled){color:var(--accent-text)}.select__button:active:not(:disabled),.select--open .select__button{box-shadow:var(--e-pressed-sm)}.select__button:disabled{opacity:.5;cursor:default}.select__button:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.select__button>svg{flex:none;color:var(--muted);transition:transform var(--fast)}.select--open .select__button>svg{transform:rotate(180deg)}.select__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select__list{position:absolute;top:calc(100% + 6px);left:0;z-index:60;min-width:max(100%,180px);max-height:300px;margin:0;padding:6px;overflow-y:auto;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--e-raised-lg);list-style:none}.select__list--up{top:auto;bottom:calc(100% + 6px)}.select__option{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;padding:6px 10px;border-radius:var(--radius);color:var(--ink);cursor:pointer;white-space:nowrap}.select__option--highlight{background:var(--accent-soft)}.select__option[aria-selected=true]{color:var(--accent-text);font-weight:600}.select__option[aria-disabled=true]{opacity:.45;cursor:default}.select__option>svg{flex:none}.select__prefix{margin-right:6px;color:var(--muted);font-size:.8rem}.catalogue-search{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px}.catalogue-search__field{position:relative;display:flex;flex:1 1 340px;align-items:center}.catalogue-search__icon{position:absolute;left:18px;width:18px;height:18px;color:var(--muted);pointer-events:none}.catalogue-search__input{width:100%;min-height:50px;padding:6px 18px 6px 46px;border:0;border-radius:var(--radius-full);background:var(--surface);color:var(--ink);font:inherit;font-size:1rem;box-shadow:var(--e-pressed)}.catalogue-search__input::placeholder{color:var(--faint)}.catalogue-search__input:focus{outline:none;box-shadow:var(--e-pressed),0 0 0 2px var(--accent-bright)}.catalogue-search__controls{display:flex;align-items:center;gap:8px}.catalogue-search__pill{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 16px;border:0;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--ink);font:inherit;font-size:.9rem;white-space:nowrap;cursor:pointer;transition:box-shadow var(--fast)}.catalogue-search__pill:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}.catalogue-search__pill svg{width:16px;height:16px}.catalogue-search__filter{display:contents}.catalogue-search__filters[aria-expanded=true]{box-shadow:var(--e-pressed-sm);color:var(--accent-text)}.catalogue-search__badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--primary-fill);color:var(--accent-ink);font-size:.75rem;font-weight:700}.catalogue-search__select .select__button{min-height:42px;box-shadow:var(--e-raised-sm);font-size:.9rem;font-weight:600}.catalogue-search__flyout{position:absolute;top:calc(100% + 8px);right:0;width:fit-content;max-width:100%;z-index:30;max-height:min(70vh,640px);padding:20px 22px;overflow-y:auto;border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--e-raised-lg)}.catalogue-search__flyout[hidden]{display:none}@media (max-width: 520px){.catalogue-search__field{flex-basis:100%}.catalogue-search__controls{width:100%;gap:6px}.catalogue-search__select{flex:1 1 0}.catalogue-search__flyout{left:0;right:0;width:auto;max-height:60dvh;padding:16px}}.catalogue-browser{display:flex;flex-direction:column;gap:12px}.catalogue-browser__bar{position:sticky;top:0;z-index:10;display:flex;flex-direction:column;gap:10px;margin:0 calc(-1 * var(--gutter));padding:12px var(--gutter) 12px;border-bottom:1px solid transparent;background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.catalogue-browser__summary{margin:0;color:var(--muted);font-size:.9rem}.catalogue-browser__results{min-width:0}.catalogue-browser__results:empty{min-height:100vh}.catalogue-browser__results[aria-busy=true]{opacity:.75;transition:opacity .15s ease .15s}.corpus-picker{display:inline-flex;align-items:center;gap:.5rem}.corpus-picker__label{color:var(--muted)}.corpus-picker__select{min-height:var(--control-height);padding:0 .75rem;border:0;border-radius:var(--radius);background:var(--surface);box-shadow:var(--e-pressed-sm);color:inherit}.recent-pieces{display:flex;flex-direction:column;gap:8px;min-width:0}.recent-pieces__heading{margin:0}.recent-pieces__row{display:flex;gap:12px;margin:0 calc(-1 * var(--gutter));padding:4px var(--gutter) 10px;overflow-x:auto;list-style:none;scroll-snap-type:x proximity;scrollbar-width:thin}.recent-pieces__item{position:relative;flex:0 0 220px;scroll-snap-align:start}.recent-pieces__open{display:flex;align-items:center;gap:10px;height:100%;padding:8px 30px 8px 8px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--ink);text-decoration:none}.recent-pieces__open:hover .recent-pieces__title{color:var(--accent-text)}.recent-pieces__open:active{box-shadow:var(--e-pressed-sm)}.recent-pieces__cover{display:flex;flex:none;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:linear-gradient(145deg,color-mix(in srgb,var(--genre, var(--accent)) 82%,#ffffff),color-mix(in srgb,var(--genre, var(--accent)) 78%,#000000));color:#fff;font-family:Georgia,Times New Roman,serif;font-size:1.2rem}.recent-pieces__text{display:flex;flex-direction:column;min-width:0}.recent-pieces__title{overflow:hidden;font-size:.9rem;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.recent-pieces__composer{overflow:hidden;color:var(--muted);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.recent-pieces__remove{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}.recent-pieces__remove:hover{color:var(--ink);box-shadow:var(--e-raised-xs)}@media (max-width: 720px){.recent-pieces__item{flex-basis:180px}}.library-page{width:100%;min-height:100vh}.library-page__main{padding:0 var(--gutter) 48px}.library-page__section{margin-top:20px}.library-page__heading{margin:0 0 14px}.library-page__muted{color:var(--muted)}.library-page__tests{margin-top:48px;color:var(--muted);font-size:.86rem}.library-page__tests summary{cursor:pointer;margin-bottom:8px}.skip-link{position:absolute;top:8px;left:8px;z-index:100;padding:10px 16px;border-radius:var(--radius);background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--ink);transform:translateY(-200%)}.skip-link:focus{transform:none}.info-page{width:100%;min-height:100vh}.info-page__header,.info-page__main{max-width:760px;margin:0 auto;padding:0 var(--gutter)}.info-page__header{padding-top:22px;padding-bottom:6px}.info-page__back{display:inline-flex;align-items:center;min-height:var(--control-height);padding:0 16px;border:0;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--ink);font:inherit;font-size:.9rem;font-weight:500;cursor:pointer;transition:box-shadow var(--fast),color var(--fast)}.info-page__back:hover{color:var(--accent-text)}.info-page__back:active{box-shadow:var(--e-pressed-sm)}.info-page__title{margin:8px 0 0;font-size:1.6rem;letter-spacing:-.01em}.info-page__lede{margin:8px 0 0;color:var(--muted)}.info-page__main{padding-top:8px;padding-bottom:48px;line-height:1.6}.info-page__main h2{margin:28px 0 6px;font-size:1.1rem}.info-page__main p,.info-page__main ul,.info-page__main ol{margin:0 0 10px}.info-page__main li{margin-bottom:4px}.info-page__main a{color:var(--accent-text)}:root{--surface: #eceff3;--surface-strong: #f3f5f8;--shadow-dark: #b8bfcc;--shadow-light: #ffffff;--paper: #ffffff;--ink: #2f3440;--muted: #5c6576;--faint: #8a93a3;--accent: #2459e0;--accent-bright: #4a82ff;--accent-text: #1d4fdb;--accent-ink: #ffffff;--accent-soft: rgba(74, 130, 255, .14);--accent-glow: rgba(74, 130, 255, .35);--primary-fill: linear-gradient(145deg, #4a82ff 0%, #2459e0 100%);--danger: #c4312b;--danger-soft: rgba(224, 90, 90, .14);--success: #1f8f4e;--warning: #b7791f;--e-raised: -6px -6px 14px var(--shadow-light), 6px 6px 14px var(--shadow-dark);--e-raised-lg: -10px -10px 24px var(--shadow-light), 10px 10px 24px var(--shadow-dark);--e-raised-sm: -3px -3px 7px var(--shadow-light), 3px 3px 7px var(--shadow-dark);--e-raised-xs: -2px -2px 4px var(--shadow-light), 2px 2px 4px var(--shadow-dark);--e-pressed: inset 4px 4px 8px var(--shadow-dark), inset -4px -4px 8px var(--shadow-light);--e-pressed-sm: inset 2px 2px 5px var(--shadow-dark), inset -2px -2px 5px var(--shadow-light);--e-flat: 0 0 0 transparent, 0 0 0 transparent;--panel: var(--surface);--panel-raised: var(--surface);--rule: rgba(120, 131, 152, .24);--shadow: var(--e-raised-lg);--hand-right: #1f6feb;--hand-left: #d4731a;--feedback-good: #1a9e48;--feedback-near: #d99a00;--feedback-bad: #d1242f;--heard: #8a2bc4;--heard-soft: rgba(138, 43, 196, .16);--pitch-sharp: #d9480f;--pitch-flat: #1c6dd0;--radius-sm: 8px;--radius: 12px;--radius-md: 14px;--radius-lg: 22px;--radius-full: 999px;--gutter: 16px;--control-height: 40px;--touch-target: 44px;--ease: cubic-bezier(.16, 1, .3, 1);--fast: .12s var(--ease);--font: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", sans-serif;color:var(--ink);background:var(--surface);font-family:var(--font);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--surface: #262a32;--surface-strong: #2c3039;--shadow-dark: #15171c;--shadow-light: #343944;--paper: #16181d;--ink: #e6e8ee;--muted: #a6adba;--faint: #7c8494;--accent: #6f9dff;--accent-bright: #6f9dff;--accent-text: #8fb3ff;--accent-ink: #0b1220;--accent-soft: rgba(111, 157, 255, .16);--accent-glow: rgba(111, 157, 255, .3);--primary-fill: linear-gradient(145deg, #7aa6ff 0%, #4a82ff 100%);--danger: #ff8a80;--danger-soft: rgba(255, 123, 114, .14);--success: #4cc47b;--warning: #e3b341;--rule: rgba(160, 170, 190, .16);--hand-right: #58a6ff;--hand-left: #f0a35e;--feedback-good: #3fb950;--feedback-near: #e3b341;--feedback-bad: #f85149;--heard: #c77dff;--heard-soft: rgba(199, 125, 255, .24);--pitch-sharp: #ff8a4c;--pitch-flat: #58a6ff}}:root[data-theme=dark]{--surface: #262a32;--surface-strong: #2c3039;--shadow-dark: #15171c;--shadow-light: #343944;--paper: #16181d;--ink: #e6e8ee;--muted: #a6adba;--faint: #7c8494;--accent: #6f9dff;--accent-bright: #6f9dff;--accent-text: #8fb3ff;--accent-ink: #0b1220;--accent-soft: rgba(111, 157, 255, .16);--accent-glow: rgba(111, 157, 255, .3);--primary-fill: linear-gradient(145deg, #7aa6ff 0%, #4a82ff 100%);--danger: #ff8a80;--danger-soft: rgba(255, 123, 114, .14);--success: #4cc47b;--warning: #e3b341;--rule: rgba(160, 170, 190, .16);--hand-right: #58a6ff;--hand-left: #f0a35e;--feedback-good: #3fb950;--feedback-near: #e3b341;--feedback-bad: #f85149;--heard: #c77dff;--heard-soft: rgba(199, 125, 255, .24);--pitch-sharp: #ff8a4c;--pitch-flat: #58a6ff}@media (pointer: coarse){:root{--control-height: 44px}}*{box-sizing:border-box;touch-action:pan-x pan-y}html,body{margin:0;background:var(--surface);color:var(--ink);user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}input,textarea,[contenteditable=true]{user-select:text;-webkit-user-select:text}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent-bright);outline-offset:2px}[tabindex="-1"]:focus,[tabindex="-1"]:focus-visible{outline:none}a{color:var(--accent-text)}::selection{background:var(--accent-soft)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-height);padding:0 14px;border:0;border-radius:var(--radius);background:var(--surface);box-shadow:var(--e-raised-sm);color:var(--ink);font-weight:500;text-decoration:none;white-space:nowrap;transition:box-shadow var(--fast),color var(--fast),transform var(--fast)}.button:hover:not(:disabled){color:var(--accent-text)}.button:active:not(:disabled){box-shadow:var(--e-pressed-sm);transform:translateY(.5px)}.button:disabled{opacity:.45;cursor:default;box-shadow:var(--e-raised-xs)}.button[aria-pressed=true],.button[aria-expanded=true]{box-shadow:var(--e-pressed-sm);color:var(--accent-text)}.button--primary{background:var(--primary-fill);color:var(--accent-ink);box-shadow:var(--e-raised-sm),0 6px 16px var(--accent-glow);font-weight:600}.button--primary:hover:not(:disabled){color:var(--accent-ink);filter:brightness(1.05)}.button--primary:active:not(:disabled),.button--primary[aria-pressed=true]{color:var(--accent-ink);box-shadow:inset 3px 3px 8px #0a1e5a59,inset -2px -2px 6px #ffffff2e}.button--icon{width:var(--control-height);padding:0}.button--round{border-radius:50%}.button--quiet{box-shadow:none;background:transparent}.button--quiet:active:not(:disabled){box-shadow:var(--e-pressed-sm)}.segmented{display:inline-flex;align-items:stretch;gap:4px;padding:4px;border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--e-pressed-sm)}.segmented__item{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:1 1 0;min-height:calc(var(--control-height) - 8px);padding:0 12px;border:0;border-radius:calc(var(--radius-md) - 4px);background:transparent;color:var(--muted);font-weight:500;white-space:nowrap;transition:box-shadow var(--fast),color var(--fast),background var(--fast)}.segmented__item:hover:not(:disabled){color:var(--ink)}.segmented__item[aria-pressed=true],.segmented__item[aria-checked=true],.segmented__item[aria-selected=true],.segmented__item[aria-current=page]{background:var(--surface);box-shadow:var(--e-raised-xs);color:var(--accent-text)}.segmented__item:disabled{opacity:.45;cursor:default}.chip{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px;border:0;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--e-raised-xs);color:var(--ink);white-space:nowrap;transition:box-shadow var(--fast),color var(--fast)}.chip[aria-pressed=true]{box-shadow:var(--e-pressed-sm);color:var(--accent-text);font-weight:600}.card{border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--e-raised)}.well{border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--e-pressed-sm)}.section-label{margin:0;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}:where(input[type=text],input[type=search],input[type=number],input[type=email],input[type=url],textarea,.field){min-height:var(--control-height);padding:0 12px;border:0;border-radius:var(--radius);background:var(--surface);box-shadow:var(--e-pressed-sm);color:var(--ink)}:where(input[type=text],input[type=search],input[type=number],textarea,.field):focus-visible{outline:2px solid var(--accent-bright);outline-offset:1px}:where(select){min-height:var(--control-height);padding:0 34px 0 14px;border:0;border-radius:var(--radius-full);background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%237a8494' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;box-shadow:var(--e-raised-xs);color:var(--ink);cursor:pointer;appearance:none;-webkit-appearance:none}:where(select:active){box-shadow:var(--e-pressed-sm)}:where(select:disabled){opacity:.5;cursor:default}:where(input[type=checkbox]){position:relative;flex:none;width:40px;height:22px;margin:0;border:0;border-radius:999px;background:color-mix(in srgb,var(--ink) 16%,var(--surface));box-shadow:var(--e-pressed-sm);cursor:pointer;appearance:none;-webkit-appearance:none;vertical-align:middle;transition:background var(--fast),box-shadow var(--fast)}:where(input[type=checkbox]):after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform var(--fast)}:where(input[type=checkbox]:checked){background:var(--primary-fill);box-shadow:inset 0 1px 3px #0000002e}:where(input[type=checkbox]:checked):after{background:#fff;transform:translate(18px)}:where(input[type=checkbox]:focus-visible){outline:2px solid var(--accent-bright);outline-offset:2px}:where(input[type=checkbox]:disabled){opacity:.45;cursor:default}:where(input[type=radio]){position:relative;flex:none;width:20px;height:20px;margin:0;border:0;border-radius:50%;background:var(--surface);box-shadow:var(--e-pressed-sm);cursor:pointer;appearance:none;-webkit-appearance:none;vertical-align:middle}:where(input[type=radio]:checked):after{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--accent-bright);box-shadow:0 0 6px var(--accent-glow)}:where(input[type=range]){min-width:0;height:28px;margin:0;background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none}:where(input[type=range])::-webkit-slider-runnable-track{height:8px;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--e-pressed-sm)}:where(input[type=range])::-moz-range-track{height:8px;border-radius:var(--radius-full);background:var(--surface);box-shadow:var(--e-pressed-sm)}:where(input[type=range])::-moz-range-progress{height:8px;border-radius:var(--radius-full);background:var(--accent-bright)}:where(input[type=range])::-webkit-slider-thumb{width:22px;height:22px;margin-top:-7px;border:0;border-radius:50%;background:radial-gradient(circle,var(--accent-bright) 0 3px,var(--surface) 3.5px);box-shadow:var(--e-raised-xs);appearance:none;-webkit-appearance:none}:where(input[type=range])::-moz-range-thumb{width:22px;height:22px;border:0;border-radius:50%;background:radial-gradient(circle,var(--accent-bright) 0 3px,var(--surface) 3.5px);box-shadow:var(--e-raised-xs)}:where(input[type=range]:focus-visible){outline:none}:where(input[type=range]:focus-visible)::-webkit-slider-thumb{outline:2px solid var(--accent-bright);outline-offset:2px}:where(input[type=range]:focus-visible)::-moz-range-thumb{outline:2px solid var(--accent-bright);outline-offset:2px}:where(input[type=range]:disabled){opacity:.45;cursor:default}fieldset{min-width:0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.app-loading{padding:32px var(--gutter);color:var(--muted);font-size:20px}[data-genre=classical]{--genre: #3a5fcd}[data-genre=study]{--genre: #0f8f7e}[data-genre=art-song]{--genre: #c2417a}[data-genre=choral]{--genre: #1d7fb0}[data-genre=sacred]{--genre: #a87908}[data-genre=holiday]{--genre: #c8433a}[data-genre=folk]{--genre: #4a8a2c}[data-genre=popular]{--genre: #d46a12}[data-genre=ragtime]{--genre: #9a5230}[data-genre=jazz]{--genre: #6c4ad0}
