:root{--bg: #faf8f4;--bg-deep: #f3f0ea;--surface: #ffffff;--surface-2: #f1eee8;--border: #e7e2d9;--border-strong: #d4cdc1;--text: #1c1b19;--muted: #6b665e;--ink: #1c1b19;--ink-contrast: #ffffff;--accent: #9a5a24;--accent-soft: #f4e7da;--accent-contrast: #ffffff;--link: #8a4f1d;--success: #2f7d3f;--danger: #c4261d;--warning-bg: #fbf0dd;--warning-text: #8a5300;--radius: 18px;--radius-sm: 12px;--shadow: 0 1px 2px rgb(0 0 0 / 4%), 0 4px 16px rgb(0 0 0 / 5%);--shadow-lift: 0 2px 6px rgb(0 0 0 / 6%), 0 12px 32px rgb(0 0 0 / 10%);--font-display: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", "Helvetica Neue", Arial, sans-serif;--font-text: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "Helvetica Neue", Arial, sans-serif;color-scheme:light;font-family:var(--font-text);line-height:1.47;color:var(--text);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme: dark){:root{--bg: #17181b;--bg-deep: #121315;--surface: #202226;--surface-2: #2a2c31;--border: #2f3237;--border-strong: #3d4047;--text: #ecebe8;--muted: #9d9ea3;--ink: #ecebe8;--ink-contrast: #17181b;--accent: #d4904f;--accent-soft: #3a2b1d;--accent-contrast: #17181b;--link: #e2a56b;--success: #4cc26a;--danger: #ff6159;--warning-bg: #3a2c16;--warning-text: #f2b45a;--shadow: 0 1px 2px rgb(0 0 0 / 30%), 0 4px 16px rgb(0 0 0 / 28%);--shadow-lift: 0 2px 6px rgb(0 0 0 / 40%), 0 12px 32px rgb(0 0 0 / 42%);color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);min-height:100vh}h1,h2,h3{margin:0;line-height:1.2}h1,h2{font-family:var(--font-display);font-weight:700;letter-spacing:-.022em}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}::selection{background:var(--accent-soft)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{max-width:1120px;margin:0 auto;padding:0 16px 48px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;height:52px;margin:0 -16px 8px;padding:0 16px;background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:saturate(1.8) blur(20px);-webkit-backdrop-filter:saturate(1.8) blur(20px);border-bottom:1px solid color-mix(in srgb,var(--border-strong) 45%,transparent)}.topbar__brand{margin:0;font-weight:600;font-size:17px;letter-spacing:-.01em;line-height:1;flex:none}.topbar__offline{font-size:12px;color:var(--danger);white-space:nowrap}.topbar__status{display:flex;align-items:center;gap:4px;flex:none}.topbar__lang,.topbar__icon{font:inherit;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);background:none;border:0;border-radius:999px;min-width:36px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.topbar__lang:hover,.topbar__icon:hover{color:var(--text);background:var(--surface-2)}.muted,.hint{color:var(--muted)}.hint{font-size:.875rem;margin:6px 0 14px}.warning{background:var(--warning-bg);color:var(--warning-text);padding:10px 14px;border-radius:var(--radius-sm);margin:8px 0 16px}.layout{display:grid;grid-template-columns:minmax(260px,1fr) 2fr;gap:16px;align-items:start;padding-top:16px}@media (max-width: 760px){.layout{grid-template-columns:1fr}}.panel{background:var(--surface-2);border:0;border-radius:var(--radius);padding:20px}.panel h2{font-size:1.15rem}label{display:grid;gap:4px;font-size:.875rem;color:var(--muted)}input,select,textarea{font:inherit;font-size:max(16px,1em);color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 12px}.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit;font-size:14px;font-weight:500;border:0;background:var(--surface-2);color:var(--text);border-radius:999px;padding:8px 18px;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.button:hover:not(:disabled){background:color-mix(in srgb,var(--surface-2) 85%,var(--text))}.button:active:not(:disabled){transform:translateY(1px)}.button:disabled{opacity:.55;cursor:default}.button--ghost{background:transparent;color:var(--link);border-color:transparent}.jobs{display:grid;gap:12px;margin-top:14px}.job{border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:grid;gap:10px}.job__header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.job__title{font-size:1rem}.job__meta{margin:2px 0 0;font-size:.8rem;color:var(--muted)}.job__error{margin:0;color:var(--danger);font-size:.875rem}.job .button{justify-self:start}.badge{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid currentColor;color:var(--muted);white-space:nowrap}.badge--running{color:var(--accent)}.badge--succeeded{color:var(--success)}.badge--failed{color:var(--danger)}.progress{height:6px;background:var(--border);border-radius:999px;overflow:hidden}.progress__bar{height:100%;background:var(--accent);transition:width .15s linear}.job--succeeded .progress__bar{background:var(--success)}.job--failed .progress__bar{background:var(--danger)}.steps{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:.875rem}.step{display:grid;grid-template-columns:18px 1fr auto;align-items:center;color:var(--muted)}.step--running,.step--done{color:var(--text)}.step--running .step__icon{color:var(--accent)}.step--done .step__icon{color:var(--success)}.step--failed{color:var(--danger)}.step__detail{font-variant-numeric:tabular-nums}.column,.stack{display:grid;gap:12px;align-content:start}.panel>h2{margin-bottom:12px}code{font-size:.85em;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:0 4px}.error,.job__error{margin:0;color:var(--danger);font-size:.875rem}.warning-inline{margin:4px 0 0;font-size:.8rem;color:var(--warning-text)}.tabs{display:flex;gap:4px;margin-bottom:14px;border-bottom:1px solid var(--border)}.tab{font:inherit;font-size:.875rem;background:none;border:none;border-bottom:2px solid transparent;padding:6px 10px;color:var(--muted);cursor:pointer}.tab--active{color:var(--text);border-bottom-color:var(--accent)}.inline-form{display:flex;gap:8px}.inline-form input{flex:1;min-width:0}.pick-list{list-style:none;margin:0;padding:0;max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:6px}.pick-list li+li{border-top:1px solid var(--border)}.pick{display:flex;gap:10px;align-items:center;padding:8px 10px;color:var(--text);cursor:pointer}.pick__text{display:grid;font-size:.875rem;min-width:0}.pick__title{font-weight:600}.button--small{padding:6px 12px;min-height:40px;font-size:13px}.button--danger{color:var(--danger)}.details__actions .button--danger{margin-left:auto}.spacer{flex:1}.tracks{display:grid;gap:12px}.track{border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:grid;gap:12px;transition:border-color .15s}.track--drop{border-color:var(--accent);border-style:dashed}.track__main{display:flex;gap:14px;min-width:0}.track__cover{width:72px;height:72px;border-radius:6px;object-fit:cover;flex-shrink:0}.track__cover--empty{display:grid;place-items:center;background:var(--bg);border:1px solid var(--border);color:var(--muted);font-size:1.6rem}.track__info{min-width:0}.track__info p{margin:2px 0 0;font-size:.875rem}.track__title{font-size:1rem;overflow-wrap:anywhere}.track__source{margin-top:6px!important}.track__job{display:grid;gap:6px}.track__job-line{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:.85rem}.track__audio{width:100%;height:36px}.track__actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.yt-picker{border-top:1px solid var(--border);padding-top:12px;display:grid;gap:10px;min-width:0}.yt-picker__header{display:flex;justify-content:space-between;align-items:center}.yt-picker__header h4{margin:0;font-size:.95rem}.candidates{list-style:none;margin:0;padding:0;display:grid;gap:8px}.candidate{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:.85rem}.candidate__thumb{width:96px;aspect-ratio:16 / 9;object-fit:cover;border-radius:4px}.candidate__body{display:grid;min-width:0}.candidate__title{font-weight:600;overflow-wrap:anywhere}.candidate__reasons{color:var(--warning-text);font-size:.78rem}.candidate__actions{display:grid;gap:6px;justify-items:end}.score{font-weight:700;font-variant-numeric:tabular-nums;font-size:.8rem;padding:1px 6px;border-radius:999px;border:1px solid currentColor}.score--good{color:var(--success)}.score--medium{color:var(--warning-text)}.score--bad{color:var(--danger)}@media (max-width: 520px){.candidate{grid-template-columns:1fr auto}.candidate__thumb{display:none}}.track__pipeline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.mixer{border-top:1px solid var(--border);padding-top:12px;display:grid;gap:10px;justify-items:start}.mixer__transport{display:flex;align-items:center;gap:10px;width:100%}.mixer__seek{flex:1;min-width:0}.mixer__time{font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.mixer__channels{list-style:none;margin:0;padding:0;display:grid;gap:6px;width:100%}.channel{display:grid;grid-template-columns:minmax(90px,140px) 1fr auto auto;gap:8px;align-items:center;font-size:.875rem}.channel--empty .channel__label{color:var(--muted)}.channel input[type=range]{min-width:0;padding:0}.toggle{font:inherit;font-size:.75rem;font-weight:700;width:40px;height:40px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer}.toggle--on{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.track__facts{font-size:.85rem}.analysis{border-top:1px solid var(--border);padding-top:12px;display:grid;gap:12px}.analysis__facts{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0}.analysis__facts dt{font-size:.75rem;color:var(--muted)}.analysis__facts dd{margin:0;font-weight:600}.timeline{display:flex;height:26px;border-radius:6px;overflow:hidden;gap:2px}.timeline__block{display:grid;place-items:center;min-width:14px;font-size:.75rem;font-weight:700;color:hsl(var(--hue) 45% 22%);background:hsl(var(--hue) 60% 82%)}.chord-grid{display:grid;gap:14px}.chord-grid__section h4{margin:0 0 6px;font-size:.9rem;padding-left:8px;border-left:4px solid hsl(var(--hue) 55% 60%)}.chord-grid__range{font-weight:400;font-size:13px}.chord-grid__row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-left:2px solid var(--text)}.measure{position:relative;display:flex;gap:6px;align-items:baseline;min-height:38px;padding:14px 8px 6px;border-right:2px solid var(--text);border-bottom:1px solid var(--border);font-weight:600;font-size:.95rem;overflow-wrap:anywhere}.measure--pickup{background:var(--bg)}.measure__number{position:absolute;top:1px;left:4px;font-size:.65rem;font-weight:400;color:var(--muted)}.measure__repeat{color:var(--muted);font-weight:400}@media (prefers-color-scheme: dark){.timeline__block{color:hsl(var(--hue) 60% 88%);background:hsl(var(--hue) 35% 30%)}}.badge--warning{color:var(--warning-text)}a.button{text-decoration:none}.roll{border-top:1px solid var(--border);padding-top:12px;display:grid;gap:8px}.roll__toolbar{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}.roll__part{display:flex;align-items:center;gap:6px;color:var(--text)}.roll__swatch{width:12px;height:12px;border-radius:3px}.roll__viewport{overflow-x:auto;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.roll__viewport canvas{display:block}.roll__stats{margin:0;padding-left:18px;font-size:.8rem;color:var(--muted)}.arrangement{border-top:1px solid var(--border);padding-top:12px;display:grid;gap:10px}.levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:6px}.level{font:inherit;text-align:left;display:grid;gap:2px;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer}.level--active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.level__name{font-weight:600;font-size:.875rem}.level__score{font-size:.75rem;color:var(--muted)}.metrics summary{cursor:pointer;font-size:.85rem}.metrics ul{margin:6px 0 0;padding-left:18px;font-size:.8rem;color:var(--muted)}.sheet{display:grid;gap:12px;max-height:80vh;overflow-y:auto;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--bg)}.sheet__page{width:100%;height:auto;background:#fff;border-radius:4px;box-shadow:0 1px 3px #00000026}.brand{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none}.brand__mark{width:22px;height:22px;flex:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.button--primary{background:var(--accent);color:var(--accent-contrast)}.button--primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,black)}.link{font:inherit;background:none;border:0;padding:0;color:var(--link);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--link) 40%,transparent);text-underline-offset:3px;cursor:pointer}.link:hover{text-decoration-color:currentColor}.chip{display:inline-flex;align-items:center;gap:4px;width:fit-content;font:inherit;font-size:12px;font-weight:600;line-height:1.4;padding:2px 10px;border-radius:999px;border:0;background:var(--warning-bg);color:var(--warning-text)}button.chip{cursor:pointer}.chip--ok{background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}.chip--active{background:var(--ink);color:var(--ink-contrast)}.eyebrow{margin:0;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.home{display:grid;gap:40px;padding-block:12px 24px}.hero{display:grid;gap:14px;padding:clamp(20px,5vw,48px) 0 8px}.search__title{font-size:clamp(30px,5.6vw,54px);line-height:1.05;max-width:16ch;text-wrap:balance}.search__lead{margin:0;color:var(--muted);font-size:clamp(15px,2vw,17px);max-width:58ch}.search__field{position:relative;display:block;max-width:680px;margin-top:8px}.search__field svg{position:absolute;left:18px;top:50%;width:20px;height:20px;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search__field input{width:100%;font:inherit;font-size:18px;padding:16px 18px 16px 50px;border-radius:999px;border:1px solid var(--border-strong);background:var(--bg);color:var(--text);box-shadow:inset 0 1px 2px #0000000d;transition:border-color .15s,box-shadow .15s}.search__field input:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}.results-block{display:grid;gap:10px}.results{list-style:none;margin:0;padding:0;display:grid;gap:8px}.result{display:flex;align-items:center;gap:14px;padding:10px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,box-shadow .15s}.result:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}.result__cover{width:56px;height:56px;border-radius:var(--radius-sm);object-fit:cover;flex:none;box-shadow:0 1px 3px #00000026}.result__cover--empty{background:var(--surface-2)}.result__text{display:grid;flex:1;min-width:0}.result__text>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result__text .muted{font-size:14px}.library{display:grid;gap:16px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.section-head h2{font-size:clamp(22px,3vw,28px)}.library__grid{list-style:none;margin:0;padding:0;display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(168px,1fr))}.piece-card-wrap{height:100%}.piece-card{width:100%;height:100%;display:grid;grid-template-rows:auto auto 1fr;gap:2px;text-align:left;font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}.piece-card__cover{transition:transform .25s,box-shadow .25s}.piece-card:hover .piece-card__cover,.piece-card:focus-visible .piece-card__cover{transform:scale(1.02);box-shadow:var(--shadow-lift)}.piece-card__art{position:relative;margin-bottom:8px}.piece-card__cover{display:block;width:100%;aspect-ratio:1;border-radius:var(--radius-sm);object-fit:cover;max-width:100%;background:var(--surface-2);box-shadow:var(--shadow)}.piece-card__cover--empty{display:grid;place-items:center;font-family:var(--font-display);font-size:48px;background:linear-gradient(135deg,var(--surface-2),var(--accent-soft));color:var(--accent)}.piece-card__art .chip{position:absolute;left:8px;bottom:8px;box-shadow:0 2px 8px #0000002e}.piece-card__art .chip--ok{background:color-mix(in srgb,var(--surface) 92%,transparent)}.piece-card__title{font-size:15px;font-weight:600;line-height:1.3}.piece-card .muted{font-size:13px}.piece-card__meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.piece-card__meta .muted{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.difficulty{flex:none;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.difficulty small{font-size:10px;font-weight:500;color:var(--muted)}.empty-state{display:grid;justify-items:center;gap:6px;padding:36px 16px;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius);color:var(--muted)}.empty-state strong{font-family:var(--font-display);font-size:20px;color:var(--text)}.piece{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding-block:12px}.piece__header{display:flex;align-items:center;gap:14px;min-width:0}.piece__back{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:18px;cursor:pointer}.piece__back:hover{background:var(--surface-2)}.piece__cover{flex:none;width:64px;height:64px;border-radius:var(--radius-sm);object-fit:cover;box-shadow:var(--shadow)}.piece__cover--empty{display:grid;place-items:center;background:var(--surface-2);color:var(--muted);font-size:26px}.piece__title{min-width:0}.piece__title h1{font-size:clamp(22px,4vw,34px);line-height:1.1;overflow-wrap:anywhere}.piece__title p{margin:2px 0 0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.creation-progress{display:grid;gap:12px}.creation-progress__bar{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.creation-progress__bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 60%,#fff));transition:width .6s ease}.creation-steps{margin:0;padding-left:0;list-style:none;display:grid;gap:2px}.creation-steps__item{display:grid;grid-template-columns:22px 1fr;gap:2px 8px;padding:6px 0;font-size:14px}.creation-steps__item+.creation-steps__item{border-top:1px solid var(--border)}.creation-steps__item span[aria-hidden]{color:var(--muted)}.creation-steps__item--done span[aria-hidden],.creation-steps__item--running span[aria-hidden],.creation-steps__item--running strong{color:var(--accent)}.creation-steps__item--failed{color:var(--danger)}.creation-steps__item--pending{color:var(--muted)}.sources{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.sources article{display:grid;gap:6px;align-content:start;min-width:0}.sources h3{font-size:14px}.sources p{margin:0;font-size:14px;overflow-wrap:anywhere}.sources .button{justify-self:start}.sources .sources__choose{grid-column:1 / -1;max-width:720px}.links{margin:0;padding-left:18px}.downloads{list-style:none;margin:0;padding:0 16px;background:var(--surface-2);border-radius:var(--radius)}.downloads__row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;padding:12px 0}.downloads__row+.downloads__row{border-top:1px solid var(--border-strong)}.downloads__name{font-weight:500}.downloads__formats{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px}.player{display:grid;gap:14px}.player__bar{position:sticky;top:60px;z-index:5;display:flex;align-items:center;gap:10px;padding:8px 10px;background:color-mix(in srgb,var(--surface-2) 85%,transparent);backdrop-filter:saturate(1.8) blur(20px);-webkit-backdrop-filter:saturate(1.8) blur(20px);border-radius:var(--radius)}.player__where{display:grid;line-height:1.3;margin-right:auto;min-width:0;font-size:13px;color:var(--muted)}.play{width:48px;height:48px;flex:none;border-radius:50%;border:0;background:var(--ink);color:var(--ink-contrast);font-size:16px;cursor:pointer;transition:transform .15s}.play:hover{transform:scale(1.05)}.segmented{display:inline-flex;gap:2px;padding:3px;max-width:100%;overflow-x:auto;scrollbar-width:none;background:var(--surface-2);border-radius:999px}.segmented::-webkit-scrollbar{display:none}.segmented button{flex:none;white-space:nowrap;font:inherit;font-size:13px;font-weight:500;border:0;background:transparent;color:var(--muted);padding:6px 12px;border-radius:999px;cursor:pointer}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}.clock{font-variant-numeric:tabular-nums;font-size:13px;color:var(--muted)}.clock b{color:var(--text)}.check{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--muted)}.review{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start}.review section{background:var(--surface-2);border-radius:var(--radius);padding:14px 16px;min-width:0}.review h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.review ul{list-style:none;margin:0 0 8px;padding:0;display:grid;font-size:14px}.review li{padding:6px 0}.review li+li{border-top:1px solid var(--border-strong)}.doubt-list li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px}.doubt-list .chip{margin-left:auto}.doubt-note--melody{font-weight:600}.score-sheets{display:grid;gap:20px}.score-sheet{position:relative;background:#fff;color:#111;border-radius:var(--radius-sm);padding:10px;box-shadow:0 0 0 1px var(--border)}.score-sheet__page svg{display:block;width:100%;height:auto}.score-sheet__page g.measure{cursor:pointer}.score-sheet__page g.measure.is-now g.note,.score-sheet__page g.measure.is-now g.rest,.score-sheet__page g.measure.is-now g.chord{fill:#8a4f1d}.play-band{position:absolute;border-radius:3px;background:#9a5a240f;box-shadow:inset 0 2px #9a5a248c;pointer-events:none}.play-cursor{position:absolute;width:2px;margin-left:-1px;border-radius:1px;background:#9a5a24;pointer-events:none}.score-sheet__folio{position:absolute;bottom:8px;right:14px;font-size:12px;color:#6b7280}@media (max-width: 560px){.result{flex-wrap:wrap}.result .button{width:100%}.doubt-list .chip{margin-left:0}}.piece__tabs{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px}.view-tabs{display:flex;gap:4px;padding:4px;width:fit-content;max-width:100%;background:var(--surface-2);border-radius:999px}.view-tabs__tab{flex:1;font:inherit;font-size:15px;font-weight:600;padding:8px 20px;border:0;border-radius:999px;background:none;color:var(--muted);cursor:pointer;white-space:nowrap}.view-tabs__tab:hover{color:var(--text)}.view-tabs__tab.is-active{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}.details{display:grid;gap:28px}.details__section{display:grid;gap:12px}.details__section>h2{font-size:1.2rem}.details__section>p{margin:0}.details__figure{font-family:var(--font-display);font-size:1.6rem;color:var(--accent)}.details__actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding-top:16px;border-top:1px solid var(--border)}.course{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.course__head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}.course__progress{display:inline-flex;align-items:center;gap:10px;font-size:13px}.course__progress-bar{width:140px;height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.course__progress-bar span{display:block;height:100%;background:var(--success);border-radius:inherit;transition:width .4s ease}.course__layout{display:grid;gap:14px;align-items:start}.course__map{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.course__map-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.course-map{list-style:none;margin:0;padding:2px;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.course-map::-webkit-scrollbar{display:none}.course-map li{flex:none;width:44px}.course-tile{display:grid;place-items:center;gap:1px;width:100%;min-height:44px;padding:6px 2px;font:inherit;border:0;border-radius:12px;background:var(--surface-2);color:var(--text);cursor:pointer}.course-tile strong{font-size:16px;font-weight:600;line-height:1}.course-tile span{font-size:11px;color:var(--muted)}.course-tile:hover{background:color-mix(in srgb,var(--surface-2) 88%,var(--text))}.course-tile.is-partial{background:linear-gradient(to top,color-mix(in srgb,var(--success) 22%,transparent) 50%,var(--surface-2) 50%)}.course-tile.is-done{background:color-mix(in srgb,var(--success) 18%,var(--surface))}.course-tile.is-repeat{opacity:.55}.course-tile.is-active{outline:2px solid var(--accent);outline-offset:1px}.course-tile--whole strong{color:var(--accent)}.course__about summary{cursor:pointer;font-size:13px;color:var(--muted)}.course__about[open]{display:grid;gap:10px}.course__about ul{margin:8px 0 0;padding-left:18px;display:grid;gap:6px;font-size:14px}.course__steps{display:grid;gap:8px}.course__steps-title{margin:0}.course-steps{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}.course-steps::-webkit-scrollbar{display:none}.course-steps{counter-reset:step;align-items:center}.course-step{counter-increment:step;flex:none;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font:inherit;font-size:14px;padding:6px 10px 6px 6px;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.course-step:before{content:counter(step);display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--border-strong);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--muted)}.course-step:not(:last-child):after{content:"";width:18px;height:1.5px;margin-left:4px;background:var(--border-strong)}.course-step:hover{color:var(--text)}.course-step.is-done:before{content:"✓";border-color:var(--success);color:var(--success)}.course-step.is-active{color:var(--text);font-weight:600}.course-step.is-active:before{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.course__lesson{scroll-margin-top:72px;min-width:0}.lesson{display:grid;gap:14px}.lesson__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.lesson__head h2{font-size:clamp(20px,3vw,26px)}.lesson__head .muted{margin:2px 0 0;font-size:14px}.lesson__excerpt{overflow-x:auto}.lesson__sheet{position:relative;min-width:520px}.lesson__sheet svg{display:block;width:100%;height:auto}.play-bar{position:absolute;width:4px;margin-left:-2px;border-radius:2px;background:#9a5a24;opacity:.8;pointer-events:none;transition:left 60ms linear}.lesson__listen{display:flex;align-items:center;gap:10px;min-width:0}.lesson__listen .segmented{flex:0 1 auto;min-width:0}.segmented button.is-suggested:not([aria-pressed=true]){color:var(--link)}.lesson__audio{display:none}.lesson__audio-hint{margin:-6px 0 0}.lesson__how summary{cursor:pointer;font-size:14px;color:var(--muted)}.lesson__how[open] summary{margin-bottom:10px}.lesson__label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.lesson__steps{margin:0;padding-left:22px;display:grid;gap:6px}.lesson__steps li::marker{font-family:var(--font-display);font-weight:700;color:var(--accent)}.lesson__tips.is-clamped{max-height:4.41em;overflow:hidden}.lesson__more{margin-top:2px;font-size:14px;text-decoration:none}.lesson__tips{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px;color:var(--muted)}.lesson__actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding-top:6px;border-top:1px solid var(--border)}.falling canvas{display:block;border-radius:var(--radius-sm);box-shadow:var(--shadow)}.falling__legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:8px;font-size:13px}.falling__swatch{display:inline-block;width:12px;height:12px;border-radius:3px}.falling__swatch--right{background:#f59f00}.falling__swatch--left{background:#3b82f6}.auth{min-height:100vh;display:grid;place-items:center;padding:16px}.auth__card{display:grid;gap:14px;width:min(360px,100%)}.auth__card h1{font-family:var(--font-display);font-size:28px}.auth__field{display:grid;gap:6px;font-weight:500}.auth__field input{font:inherit;padding:10px 12px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}.auth__wait{padding:24px}@media (max-width: 860px){.player__bar{top:58px}}@media (max-width: 600px){.app{padding:0 12px 32px}.topbar{margin:0 -12px 4px;padding:8px 12px;gap:8px}.brand__name{display:none}.home{gap:28px}.search__field input{font-size:16px;padding:13px 16px 13px 46px}.result{flex-wrap:wrap}.result .button{width:100%}.library__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.piece{gap:14px}.piece__cover{width:48px;height:48px}.piece__back{width:36px;height:36px}.view-tabs{width:100%}.view-tabs__tab{padding:8px 10px;font-size:14px}.player__bar{top:56px;gap:6px;padding:6px 8px;border-radius:var(--radius-sm)}.player__bar .level-badge__view,.player__bar .level-badge__edit{display:none}.play{width:42px;height:42px}.segmented button{padding:6px 10px}.score-sheet{padding:4px;border-radius:4px}.score-sheets{gap:12px;margin:0 -6px}.panel{padding:14px}.lesson__sheet{min-width:0}.lesson__listen .segmented{width:100%;justify-content:space-between}.course__head{gap:8px}.details__actions{justify-content:space-between}}@media (max-width: 600px){.falling{margin:0 -12px}.falling canvas{border-radius:0}.falling__legend{padding:0 12px}}@media (max-height: 500px) and (orientation: landscape){.app{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.topbar{position:static;margin-bottom:0;padding-block:4px}.topbar__brand{font-size:1rem}.brand__mark{width:22px;height:22px}.piece{gap:8px;padding-block:4px}.piece__header{gap:10px}.piece__back{width:40px;height:40px;font-size:15px}.piece__cover{width:32px;height:32px}.piece__title h1{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.piece__title p{display:none}.view-tabs{width:fit-content}.view-tabs__tab{padding:5px 14px;font-size:13px}.player{gap:8px}.player__bar{top:0;flex-wrap:nowrap;gap:8px;padding:5px 8px;border-radius:var(--radius-sm)}.play{width:40px;height:40px;font-size:13px}.player__where{display:flex;gap:10px}.player__where .clock+.clock{display:none}.falling{margin-left:calc(-1*max(12px,env(safe-area-inset-left)));margin-right:calc(-1*max(12px,env(safe-area-inset-right)))}.falling canvas{border-radius:0}.falling__legend{display:none}.score-sheets{margin:0}}[data-level="1"]{--level: #2f9e44;--level-ink: #15141a}[data-level="2"]{--level: #0c8599}[data-level="3"]{--level: #1971c2}[data-level="4"]{--level: #7048e8}[data-level="5"]{--level: #c2255c}@media (prefers-color-scheme: dark){[data-level]{--level-ink: #15141a}[data-level="1"]{--level: #51cf66}[data-level="2"]{--level: #3bc9db}[data-level="3"]{--level: #4dabf7}[data-level="4"]{--level: #9775fa}[data-level="5"]{--level: #f06595}}.level-badge{display:inline-flex;align-items:center;gap:8px;min-width:0;font:inherit;font-size:14px;padding:7px 12px 7px 10px;border-radius:999px;border:0;background:var(--surface);color:var(--text);cursor:pointer;box-shadow:0 0 0 1px var(--border)}.level-badge:hover{box-shadow:0 0 0 1px var(--border-strong)}.level-badge__dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--level)}.level-badge__text{font-weight:600;white-space:nowrap}.level-badge__name{font-weight:500}.level-badge__view{padding-left:8px;border-left:1px solid var(--border);color:var(--muted);white-space:nowrap}.level-badge__edit{color:var(--muted);font-size:12px}.player[data-level] .score-sheet,.course[data-level] .lesson__excerpt{border-top:3px solid var(--level)}.player[data-level] .falling canvas,.course[data-level] .falling canvas{border-top:3px solid var(--level)}.picker{width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);background:var(--surface);color:var(--text);box-shadow:var(--shadow-lift);overflow-y:auto;overscroll-behavior:contain}.picker::backdrop{background:#0a090c8c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.picker__body{display:grid;gap:14px;padding:18px}.picker__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.picker__head h2{font-size:1.3rem}.picker__close{width:40px;height:40px;border:0;border-radius:50%;background:var(--surface-2);color:var(--text);font-size:20px;cursor:pointer}.picker__lead{margin:-6px 0 0;font-size:14px}.picker__levels,.picker__views{display:grid;gap:8px;margin:0;padding:0;border:0}.picker__views{grid-template-columns:1fr 1fr}.picker__views legend{padding:0 0 6px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.level-card,.view-card{position:relative;display:grid;gap:4px;padding:10px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font-size:14px;align-content:start;cursor:pointer}.level-card input,.view-card input{position:absolute;opacity:0;pointer-events:none}.level-card.is-picked{border-color:var(--level);background:color-mix(in srgb,var(--level) 10%,var(--surface));box-shadow:0 0 0 1px var(--level)}.view-card.is-picked{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.level-card:has(input:focus-visible),.view-card:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.level-card__head{display:flex;align-items:center;gap:8px}.level-card__number{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--level);color:var(--level-ink, #fff);font-size:13px;font-weight:700}.level-card__head .chip{margin-left:auto}.level-card__text{color:var(--muted)}.level-card__meter{height:4px;border-radius:999px;background:var(--surface-2);overflow:hidden}.level-card__meter span{display:block;height:100%;background:var(--level)}.picker__foot{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:8px;margin:0 -18px -18px;padding:10px 18px 14px;background:linear-gradient(transparent,var(--surface) 30%)}.toast{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));z-index:40;transform:translate(-50%);margin:0;padding:10px 18px 10px 14px;border-radius:999px;border-left:6px solid var(--level);background:var(--ink);color:var(--ink-contrast);font-size:14px;font-weight:600;box-shadow:var(--shadow-lift);animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}}@media (max-width: 600px){.level-badge__name{display:none}.picker__body{padding:14px;gap:10px}.picker__foot{margin:0 -14px -14px;padding:10px 14px 12px}.level-card{padding:8px 10px}}@media (max-height: 500px) and (orientation: landscape){.picker__levels{grid-template-columns:1fr 1fr}.level-card__text{display:none}.level-badge{padding-block:4px}}.topbar__nav{display:flex;gap:4px;margin:0 auto}.topbar__nav a{font-size:14px;color:var(--muted);text-decoration:none;padding:6px 12px;border-radius:999px}.topbar__nav a:hover{color:var(--text);text-decoration:none}.topbar__nav a[aria-current=page]{color:var(--text);font-weight:600}.section-head__link{font-size:14px;font-weight:600;color:var(--link);text-decoration:none}.gallery{display:grid;gap:18px;padding-block:16px 24px}.gallery__head{display:flex;align-items:baseline;gap:12px}.gallery__head h1{font-size:clamp(26px,4vw,38px)}.gallery__tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.gallery__search{flex:1 1 220px;max-width:360px;border-radius:999px;padding:8px 14px}.gallery__order{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:-8px;font-size:13px;color:var(--muted)}.gallery__order label{display:inline-flex;align-items:center;gap:2px}.gallery__order select{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238e8e93' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 4px center;padding:4px 18px 4px 4px;font:inherit;font-weight:600;color:var(--text);cursor:pointer}.gallery__order select:focus-visible{outline:2px solid var(--accent);border-radius:6px}.gallery__compare{align-self:center;margin-left:auto}.gallery__group{display:grid;gap:10px}.gallery__letter,.gallery__heading{font-size:1.3rem;color:var(--accent);padding-bottom:4px;border-bottom:1px solid var(--border)}.gallery__heading{color:var(--text)}.gallery__heading .muted{font-size:.9rem;font-weight:500}.piece-card__marks{position:absolute;top:8px;right:8px;left:8px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px}.mark{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;background:#0000008c;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mark--learning{padding:0}.mark--favorite{padding:0;color:#ff375f;font-size:14px}.piece__marks{display:flex;gap:6px;margin-left:auto;flex:none}.mark-toggle{display:inline-grid;place-items:center;width:36px;height:36px;font:inherit;font-size:17px;line-height:1;border-radius:50%;border:0;background:var(--surface-2);color:var(--muted);cursor:pointer}.mark-toggle:hover{color:var(--text)}.mark-toggle--favorite.is-on{color:#ff375f}.mark-toggle--learning.is-on{color:var(--accent-contrast);background:var(--accent)}.readability{display:grid;gap:14px}.readability__summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px;margin:0}.readability__score{font-size:2rem;line-height:1}.readability__score small{font-size:.9rem;font-weight:600;color:var(--muted)}.readability__score--good{color:var(--success)}.readability__score--medium{color:var(--warning-text)}.readability__score--bad{color:var(--danger, #c92a2a)}.readability__criteria{display:grid;gap:12px;margin:0;padding:0;list-style:none}.readability__criterion{display:grid;gap:6px}.readability__row{display:flex;justify-content:space-between;gap:12px;font-size:14px}.readability__share{color:var(--muted);white-space:nowrap}.readability__bar{height:6px;border-radius:999px;background:var(--warning-bg);overflow:hidden}.readability__bar>span{display:block;height:100%;background:var(--success)}.readability__measures{display:flex;flex-wrap:wrap;gap:6px;margin:0}.readability__measures .chip{min-height:32px}@media (max-width: 600px){.topbar__nav{margin-left:4px}.topbar__nav a{padding:5px 9px}.piece__header{flex-wrap:wrap}.piece__marks{width:100%;margin-left:0}.gallery__search{max-width:none}}@media (max-height: 500px) and (orientation: landscape){.mark-toggle__label{display:none}}.icon{flex:none;vertical-align:-.2em}.icon-button{display:inline-grid;place-items:center;width:40px;height:40px;flex:none;border-radius:50%;background:var(--surface-2);color:var(--text);text-decoration:none;border:0;cursor:pointer}.icon-button:hover{background:var(--accent-soft)}.icon-button--small{width:36px;height:36px;background:transparent;border:1px solid var(--border)}button.chip{min-height:40px;padding-inline:12px}.part-editor{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.part-editor__split{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}.icon-button.is-on{background:var(--accent);color:var(--accent-contrast)}.ink-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;pointer-events:none}.ink-layer.is-active{pointer-events:auto;touch-action:pan-x pan-y;cursor:crosshair}.ink-layer--note.is-active{cursor:pointer}.ink-layer--eraser.is-active{cursor:cell}.score-sheet__page g.note.is-selected{fill:#e8590c}.score-sheet__page g.measure.is-flagged{fill:#c2410c}.pen-bar{position:sticky;top:128px;z-index:6;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;padding:8px 10px;margin:0 0 12px;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:0 6px 18px #00000014}.pen-bar__tool{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:6px 10px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text);font:inherit;font-size:13px;cursor:pointer}.pen-bar__tool.is-on{background:var(--ink);color:var(--ink-contrast)}.pen-bar__sep{width:1px;height:26px;background:var(--border)}.pen-bar__color{width:28px;height:28px;border-radius:50%;border:2px solid var(--surface);box-shadow:0 0 0 1px var(--border-strong);cursor:pointer}.pen-bar__color.is-on{box-shadow:0 0 0 2px var(--ink)}.pen-bar__check{font-size:13px}.pen-bar__note{flex-basis:100%;margin:0}.pen-popover{position:absolute;z-index:5;transform:translate(-50%);display:grid;gap:8px;min-width:240px;max-width:min(340px,90vw);padding:12px;border-radius:12px;background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:0 10px 30px #0000002e;font-size:14px}.pen-popover p{display:flex;align-items:center;gap:6px;margin:0}.pen-popover p .icon-button{margin-left:auto;width:32px;height:32px}.pen-popover__row,.pen-popover__actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.pen-report{flex-basis:100%;display:grid;gap:10px;padding-top:8px;border-top:1px solid var(--border)}.pen-report__comment textarea{width:100%;min-height:60px}@media (max-width: 640px){.pen-bar__label{display:none}}.reliability{border-left:4px solid var(--warning-text);background:var(--warning-bg);display:grid;gap:8px}.reliability h2{font-size:1.1rem;margin:0}.reliability p{margin:0}.sources__others{display:grid;margin:4px 0 0;padding:0;list-style:none;font-size:14px}.sources__others li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:8px 0}.sources__others li+li{border-top:1px solid var(--border)}.sources__others li .button{margin-left:auto}.note-name{font-family:var(--font-text);font-weight:700;dominant-baseline:central;paint-order:stroke;stroke:#fff;stroke-linejoin:round;pointer-events:none}.note-name--right{fill:#c2410c}.note-name--left{fill:#1d4ed8}.notehead.is-named>use{visibility:hidden}.note-bubble{pointer-events:none}.note-bubble text{font-family:var(--font-text);font-weight:700;text-anchor:middle;dominant-baseline:central;fill:#fff}.note-bubble--right ellipse{fill:#c2410c;stroke:#c2410c}.note-bubble--left ellipse{fill:#1d4ed8;stroke:#1d4ed8}.note-bubble--hollow ellipse{fill:#fff}.note-bubble--right.note-bubble--hollow text{fill:#c2410c}.note-bubble--left.note-bubble--hollow text{fill:#1d4ed8}.player__status{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);white-space:nowrap}.spinner{width:14px;height:14px;flex:none;border-radius:50%;border:2px solid color-mix(in srgb,var(--muted) 30%,transparent);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}}@media (max-width: 600px){.player__status-text{display:none}}.settings{display:grid;gap:28px;max-width:640px;margin:0 auto;padding-block:16px 32px}.settings h1{font-size:clamp(28px,4vw,34px)}.settings__group h2{margin:0 0 8px 16px;font-size:13px;font-weight:500;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.settings__list{list-style:none;margin:0;padding:0;background:var(--surface-2);border-radius:var(--radius);overflow:hidden}.settings__list>li+li{border-top:1px solid var(--border-strong);margin-left:16px}.settings__list>li+li>.settings__row{padding-left:0}.settings__row{display:flex;align-items:center;gap:12px;width:100%;min-height:48px;padding:10px 16px;font:inherit;color:inherit;text-align:left;background:none;border:0;cursor:pointer}.settings__row--stack{flex-wrap:wrap;justify-content:space-between;cursor:default}.settings__row--link{text-decoration:none}.settings__row--link:hover{text-decoration:none;background:color-mix(in srgb,var(--surface-2) 92%,var(--text))}.settings__row--danger{color:var(--danger)}.settings__label{display:grid;gap:2px;flex:1;min-width:0}.settings__label small{font-size:13px;color:var(--muted)}.settings__row input[type=radio]{accent-color:var(--accent);width:18px;height:18px;flex:none}.settings__dot{display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%;background:var(--level);vertical-align:1px}.settings__row select{max-width:100%}.switch{-moz-appearance:none;appearance:none;-webkit-appearance:none;flex:none;width:46px;height:28px;margin:0;border-radius:999px;background:var(--border-strong);position:relative;cursor:pointer;transition:background .2s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s}.switch:checked{background:var(--success)}.switch:checked:after{transform:translate(18px)}.piece__level{color:inherit;text-decoration:none}.piece__level:before{content:"";display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;background:var(--level);vertical-align:1px}.details__fold{border-top:1px solid var(--border);padding-top:14px}.details__fold>summary{cursor:pointer;font-size:17px;font-weight:600}.details__fold[open]>summary{margin-bottom:14px}.details__fold .details__section+.details__section{margin-top:20px}.piece__start{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.piece__start .button--danger{margin-left:auto}.piece__difficulty{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}.piece__difficulty:hover{color:var(--text)}.difficulty-dialog__intro,.difficulty-dialog__note{margin:0;font-size:13px}.difficulty-dialog__criteria{display:grid;gap:14px;margin:0;padding:0;list-style:none}.difficulty-dialog__criteria p{margin:4px 0 0;font-size:13px}.difficulty-dialog__row{display:flex;justify-content:space-between;gap:12px;font-size:15px}.difficulty-dialog__score{font-variant-numeric:tabular-nums;font-weight:600}.difficulty-dialog__bar{height:6px;margin-top:6px;border-radius:999px;background:var(--surface-2);overflow:hidden}.difficulty-dialog__bar span{display:block;height:100%;border-radius:inherit;background:var(--accent)}.difficulty-dialog__user{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--border);font-weight:600}.difficulty-dialog__user select{font:inherit;font-weight:500;padding:6px 10px;border-radius:10px}.difficulty-dialog__compare{font-size:14px;font-weight:600}.compare{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding-block:12px 24px}.compare .piece__title p{margin:4px 0 0;font-size:14px;white-space:normal}.compare__progress{display:grid;gap:6px}.compare__progress p{margin:0;font-size:13px}.compare__pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}@media (max-width: 640px){.compare__pair{grid-template-columns:minmax(0,1fr)}}.compare__piece{display:grid;align-content:start;gap:10px;min-width:0;padding:14px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.compare__piece h2{margin:0;font-size:1.1rem;overflow-wrap:anywhere}.compare__piece header p{margin:2px 0 0;font-size:13px}.compare__page{display:block;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;overflow:hidden;cursor:zoom-in;max-height:56vh}.compare__page img,.compare__zoom img{display:block;width:100%;height:auto}.compare__zoom{width:min(900px,calc(100vw - 24px))}.compare__zoom img{border-radius:var(--radius-sm);background:#fff}.compare__tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.compare__pages{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.compare__pages--zoom{justify-content:center;margin:0}.compare__pages button{width:32px;height:32px;border:1px solid var(--border);border-radius:50%;background:var(--surface);color:var(--text);font:inherit;font-size:18px;line-height:1;cursor:pointer}.compare__pages button:disabled{opacity:.4;cursor:default}.compare__pick{justify-content:center}.compare__answers{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.topbar__spaces{flex:none}.topbar__spaces a{font-size:13px;font-weight:500;color:var(--muted);text-decoration:none;padding:5px 11px;border-radius:999px;white-space:nowrap}.topbar__space-short{display:none}@media (max-width: 430px){.topbar__space-long{display:none}.topbar__space-short{display:inline}}.topbar__spaces a:hover{color:var(--text);text-decoration:none}.topbar__spaces a[aria-current=page]{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0000001f}@media (max-width: 600px){.topbar__spaces a{font-size:12px;padding:5px 8px}}.search__space{margin:-6px 0 0;color:var(--muted);font-size:clamp(15px,2vw,18px)}.chords{display:flex;flex-wrap:wrap;gap:4px 10px;margin:4px 0 12px}.chord{margin:0;display:flex;flex-direction:column;align-items:center}.chord__name{font-weight:600;font-size:15px}.chord svg{display:block;max-width:100%;height:auto}.chord__string,.chord__fret{stroke:var(--muted);stroke-width:.8}.chord__nut{stroke:var(--text);stroke-width:3}.chord__dot,.chord__barre{fill:var(--text)}.chord__finger{fill:var(--bg);font-size:7px;font-weight:600}.chord__open{fill:none;stroke:var(--text);stroke-width:1}.chord__mark,.chord__base{fill:var(--muted);font-size:9px}@media (max-width: 600px){.chord svg{width:70px}}.chord.is-active .chord__name{color:var(--accent)}.chord.is-active .chord__dot,.chord.is-active .chord__barre{fill:var(--accent)}.lesson__guitar{margin:8px 0 4px}.lesson__guitar .chords{margin-bottom:8px}.fretboard{margin:0}.fretboard svg{display:block;width:100%;height:auto;max-height:200px}.fretboard__wood{fill:var(--surface-2)}.fretboard__fret{stroke:var(--border-strong);stroke-width:1.5}.fretboard__nut{stroke:var(--text);stroke-width:4}.fretboard__string{stroke:var(--muted)}.fretboard__dot{fill:var(--border-strong)}.fretboard__name,.fretboard__number{fill:var(--muted);font-size:10px}.fretboard__number{text-anchor:middle}.fretboard__note{fill:var(--accent)}.fretboard__open{fill:var(--bg);stroke:var(--accent);stroke-width:2.5}.fretboard__next{fill:none;stroke:var(--accent);stroke-width:1.2;stroke-dasharray:3 2;opacity:.7}.fretboard__fret-number{fill:var(--accent-contrast);font-size:10px;font-weight:600;text-anchor:middle}.fretboard__technique{fill:var(--accent);font-size:11px;font-weight:600;font-style:italic;text-anchor:middle}.fretboard__caption{display:flex;gap:8px;align-items:center;min-height:1.4em;font-size:13px}.fretboard__stroke{color:var(--accent);font-size:18px}.lesson__sax{--note-strong: hsl(var(--hue, 215) 68% 42%);display:flex;align-items:center;justify-content:center;gap:clamp(12px,4vw,32px);margin:8px 0 4px;min-height:140px}@media (prefers-color-scheme: dark){.lesson__sax [style*=--hue]{--note-strong: hsl(var(--hue) 62% 58%)}}.lesson__sax [style*=--hue]{--note-strong: hsl(var(--hue) 68% 42%)}.lesson__sax .sax-fingering,.lesson__sax-now{--key-pressed: var(--note-strong)}.lesson__sax-next{display:flex;flex-direction:column;align-items:center;gap:4px;padding-left:clamp(12px,3vw,24px);border-left:1px solid var(--border);opacity:calc(.5 + .5 * var(--approach, 0));transition:opacity .2s linear}.lesson__sax .sax-now__beats{width:120px}@media (max-width: 600px){.lesson__sax .sax-now{display:none}}.lesson__sax-wait{align-self:center}.sax-fingering{margin:0;display:flex;flex-direction:column;align-items:center}.sax-fingering circle,.sax-fingering .is-side rect{fill:var(--surface);stroke:var(--border-strong);stroke-width:1.2}.sax-fingering .is-main circle{stroke:var(--muted);stroke-width:1.6}.sax-fingering text{fill:var(--muted);font-size:8px;font-weight:700;pointer-events:none}.sax-fingering .is-pressed circle,.sax-fingering .is-pressed rect{fill:var(--key-pressed, var(--accent));stroke:var(--key-pressed, var(--accent))}.sax-fingering .is-pressed text{fill:#fff}.sax-fingering__print{fill:none;stroke:var(--muted);stroke-width:1;stroke-linecap:round}.sax-fingering .is-pressed .sax-fingering__print{stroke:#fff}.sax-fingering--next{opacity:.45;transition:opacity .15s linear}.sax-fingering__plate{fill:var(--surface);stroke:var(--border);stroke-width:1}.sax-fingering .is-same{opacity:.32}.sax-fingering .is-release circle,.sax-fingering .is-release rect{stroke:var(--key-pressed, var(--accent));stroke-width:2.4}.sax-fingering__body{fill:var(--surface-2);stroke:var(--border-strong);stroke-width:1;stroke-linejoin:round}.sax-fingering__neck{fill:none;stroke:var(--border-strong);stroke-width:7;stroke-linecap:round}.sax-fingering__mouthpiece{fill:var(--muted)}.sax-fingering__line{stroke:var(--muted);stroke-width:1.4;stroke-linecap:round}.sax-fingering .is-new{animation:sax-key-press .3s ease-out;transform-box:fill-box;transform-origin:center}.sax-fingering .is-lift circle,.sax-fingering .is-lift rect{animation:sax-key-lift .9s ease-out}.sax-fingering__arrow{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;animation:sax-arrow .9s ease-out forwards}.sax-fingering__arrow--down{stroke:#fff}.sax-fingering__arrow--up{stroke:var(--key-pressed, var(--accent))}.sax-fingering .is-new text,.sax-fingering .is-lift text{animation:sax-number .9s ease-out forwards}@keyframes sax-key-press{0%{transform:scale(1)}40%{transform:scale(1.28)}to{transform:scale(1)}}@keyframes sax-key-lift{0%,60%{stroke:var(--key-pressed, var(--accent));stroke-width:2.2}}@keyframes sax-arrow{0%,65%{opacity:1}to{opacity:0}}@keyframes sax-number{0%,65%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.sax-fingering .is-new,.sax-fingering .is-lift circle,.sax-fingering .is-lift rect,.sax-fingering__arrow,.sax-fingering .is-new text,.sax-fingering .is-lift text{animation:none}.sax-fingering .is-new text,.sax-fingering .is-lift text{opacity:0}.sax-fingering .is-lift circle,.sax-fingering .is-lift rect{stroke:var(--key-pressed, var(--accent));stroke-width:2.2}}.sax-fingering figcaption{font-weight:600}.sax-3d{flex:none;position:relative;touch-action:pan-y}.sax-3d.is-interactive{cursor:grab;touch-action:none}.sax-3d.is-interactive:active{cursor:grabbing}.sax-3d__canvas{display:block}.sax-3d--next{opacity:.85}.lesson__sax-now,.lesson__sax-next{display:flex;flex-direction:column;align-items:center;gap:4px}.guitar-settings{display:flex;flex-wrap:wrap;align-items:end;gap:12px}.guitar-settings label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);min-width:0}.guitar-settings select{max-width:100%}.notation-switch{display:flex;gap:4px;padding:4px;margin:0 0 12px;width:fit-content;max-width:100%;background:var(--surface-2);border-radius:999px}.notation-switch__option{font:inherit;font-size:.9rem;padding:6px 14px;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.notation-switch__option.is-active{background:var(--surface);color:var(--text);font-weight:600;box-shadow:0 1px 3px #0000001f}.sax-lane,.sax-now{--note-fill: hsl(var(--hue, 215) 80% 90%);--note-stroke: hsl(var(--hue, 215) 55% 46%);--note-strong: hsl(var(--hue, 215) 68% 42%);--note-ink: hsl(var(--hue, 215) 60% 20%)}@media (prefers-color-scheme: dark){.sax-lane,.sax-now{--note-fill: hsl(var(--hue, 215) 32% 25%);--note-stroke: hsl(var(--hue, 215) 50% 58%);--note-strong: hsl(var(--hue, 215) 62% 58%);--note-ink: hsl(var(--hue, 215) 70% 90%)}}.sax-lane [style*=--hue]{--note-fill: hsl(var(--hue) 80% 90%);--note-stroke: hsl(var(--hue) 55% 46%);--note-strong: hsl(var(--hue) 68% 42%);--note-ink: hsl(var(--hue) 60% 20%)}@media (prefers-color-scheme: dark){.sax-lane [style*=--hue]{--note-fill: hsl(var(--hue) 32% 25%);--note-stroke: hsl(var(--hue) 50% 58%);--note-strong: hsl(var(--hue) 62% 58%);--note-ink: hsl(var(--hue) 70% 90%)}}.sax-lane{display:grid;gap:12px}.sax-lane.is-landscape{grid-template-columns:auto minmax(0,1fr);align-items:stretch}.sax-lane__stage{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;grid-template-areas:"keys now" "keys next";align-content:center;column-gap:clamp(12px,4vw,40px);row-gap:14px;padding:0 4px}.sax-lane__now{grid-area:now;align-self:end;min-width:0}.sax-lane__keys{grid-area:keys;display:flex;justify-content:center;align-items:center}.sax-lane__keys .sax-fingering{--key-pressed: var(--note-strong)}.sax-lane__next{grid-area:next;align-self:start;display:flex;align-items:center;gap:12px;min-width:0;padding-top:14px;border-top:1px solid var(--border);opacity:calc(.55 + .45 * var(--approach, 0));transition:opacity .2s linear}.sax-lane__next .sax-fingering{--key-pressed: var(--note-strong)}.sax-lane__next-name{min-width:2.2em;font-weight:800;line-height:1;letter-spacing:-.01em;color:var(--note-strong)}.sax-now{display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0}.sax-now__name{font-weight:800;line-height:.9;letter-spacing:-.03em;color:var(--note-strong)}.sax-now__beats{display:flex;gap:4px;width:min(100%,240px)}.sax-now__beat{position:relative;flex:1;height:8px;border-radius:4px;background:var(--note-strong);overflow:hidden}.sax-now__beat>span{position:absolute;inset:0 auto 0 0;background:var(--surface-2)}.sax-now__breath{fill:var(--accent)}.sax-now__rest{fill:var(--muted)}.sax-now__rest-line{stroke:var(--muted);stroke-width:2.5;stroke-linecap:round}.sax-lane__band{display:block;width:100%;height:auto;background:var(--surface);border:1px solid var(--border);border-radius:18px}.sax-lane__guide{stroke:var(--border);stroke-dasharray:1 5}.sax-lane__tick{stroke:var(--border)}.sax-lane__tick.is-half{stroke:var(--border-strong)}.sax-lane__bar-now{fill:var(--accent);opacity:.05}.sax-lane__past{fill:var(--bg);opacity:.4}.sax-lane__measure line{stroke:var(--border-strong);stroke-width:1.5}.sax-lane__measure text{fill:var(--muted);font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}.sax-lane__measure.is-now text{fill:var(--text);font-weight:800}.sax-lane__note rect{fill:var(--note-fill);stroke:var(--note-strong);stroke-width:1.2}.sax-lane__note rect.sax-lane__attack{fill:var(--note-strong);stroke:none}.sax-lane__change{fill:var(--note-strong)}.sax-lane__note text{fill:var(--note-ink);font-size:16px;font-weight:700}.sax-lane__note text.is-small{font-size:12px}.sax-lane__note.is-next rect{stroke-width:2.4}.sax-lane__note.is-now rect{fill:var(--note-strong);stroke:var(--note-strong)}.sax-lane__note.is-now text{fill:#fff}.sax-lane__note.is-past{opacity:.3}.sax-lane__breath{fill:var(--accent);font-family:Georgia,Times New Roman,serif;font-size:40px;font-weight:700}.sax-lane__note.is-now .sax-lane__breath{fill:var(--accent)}.sax-lane__rest line{stroke:var(--muted);stroke-width:2;stroke-linecap:round}.sax-lane__rest rect{fill:var(--muted)}.sax-lane__playhead{stroke:var(--accent);stroke-width:2.5;stroke-linecap:round}.sax-lane__play-mark{fill:var(--accent)}@media (max-width: 600px){.sax-lane__note text{font-size:16px}}.sax-lane__keys{--key-pressed: var(--note-strong)}.sax-now.is-bare .sax-now__beats{width:min(100%,260px)}.sax-now.is-bare .sax-now__beat{height:14px;border-radius:7px}.sax-lane__tab-hold{fill:var(--note-fill);opacity:.35}.sax-lane__tab.is-now .sax-lane__tab-hold{opacity:1;stroke:var(--note-strong);stroke-width:1.5}.sax-lane__tab.is-next .sax-lane__tab-hold{opacity:.8;stroke:var(--note-strong);stroke-width:2.2}.sax-lane__tab.is-past{opacity:.3}.sax-lane__tab rect.sax-lane__attack{fill:var(--note-strong)}.sax-lane__tab-key{fill:var(--surface);stroke:var(--muted);stroke-width:1.4}.sax-lane__tab-key.is-octave{fill:none;stroke:var(--border-strong)}.sax-lane__tab-key.is-pressed{fill:var(--note-strong);stroke:var(--note-strong)}.sax-lane__tab-change{fill:none;stroke:var(--accent);stroke-width:2}.sax-lane__tab-line{stroke:var(--muted);stroke-width:1.2}.sax-lane__tab-side{fill:var(--note-strong)}.sax-lane__tab-side.is-changed{stroke:var(--accent);stroke-width:2}.sax-lane__tab-chip rect{stroke:var(--note-strong);stroke-width:1.6}.sax-lane__tab-chip.is-down rect{fill:var(--note-strong)}.sax-lane__tab-chip.is-up rect{fill:var(--surface)}.sax-lane__tab-chip text{font-size:12px;font-weight:800;fill:var(--note-strong)}.sax-lane__tab-chip.is-down text{fill:#fff}.sax-hands{margin:0}.sax-hands--faint{opacity:.45}.sax-hands__palm{fill:var(--surface-2);stroke:var(--border-strong)}.sax-hands__pad{fill:var(--surface);stroke:var(--border-strong)}.sax-hands__pad.is-pressed{fill:var(--key-pressed, var(--accent));stroke:var(--key-pressed, var(--accent))}.sax-hands__finger rect{fill:var(--surface);stroke:var(--border-strong);stroke-width:1.4}.sax-hands__finger.is-rest rect{fill:var(--surface-2);stroke:var(--border)}.sax-hands__finger.is-pressed rect{fill:var(--key-pressed, var(--accent));stroke:var(--key-pressed, var(--accent))}.sax-hands__finger.is-new{animation:sax-key-press .3s ease-out;transform-box:fill-box;transform-origin:center}.sax-hands__finger.is-lift rect{stroke:var(--key-pressed, var(--accent));stroke-width:2.6}.sax-hands__arrow{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;animation:sax-arrow .9s ease-out forwards}.sax-hands__arrow--down{stroke:#fff}.sax-hands__arrow--up{stroke:var(--key-pressed, var(--accent))}.sax-hands__line{stroke:var(--border);stroke-dasharray:2 5}@media (prefers-reduced-motion: reduce){.sax-hands__finger.is-new,.sax-hands__arrow{animation:none}}.is-scrubbable{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.is-scrubbable.is-scrubbing{cursor:grabbing}.book-card__art{box-shadow:5px -5px 0 -1px var(--surface),5px -5px 0 0 var(--border-strong),10px -10px 0 -1px var(--surface),10px -10px 0 0 var(--border)}.book{display:flex;flex-direction:column;gap:20px}.player__compare{margin:0;flex-shrink:0}.player__compare .notation-switch__option{padding:5px 12px;font-size:.85rem}.player__loop{display:inline-flex;gap:6px;align-items:center}@media (max-width: 600px){.player__bar{flex-wrap:wrap}}.topbar__spacer{flex:1}.tabbar{position:fixed;z-index:30;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));left:0;right:0;bottom:0;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.8) blur(20px);-webkit-backdrop-filter:saturate(1.8) blur(20px);border-top:1px solid color-mix(in srgb,var(--border-strong) 55%,transparent)}.tabbar__tab{display:flex;flex-direction:column;align-items:center;gap:3px;min-height:48px;padding:4px 0;border-radius:var(--radius-sm);font-size:11px;font-weight:500;color:var(--muted);text-decoration:none}.tabbar__tab:hover{color:var(--text);text-decoration:none}.tabbar__tab[aria-current=page]{color:var(--text);font-weight:600}.tabbar__tab[aria-current=page] .icon{stroke-width:2.4}.app--tabs{padding-bottom:calc(96px + env(safe-area-inset-bottom))}@media (min-width: 900px){.tabbar{top:0;right:auto;width:84px;grid-template-columns:none;grid-auto-rows:min-content;align-content:start;gap:6px;padding:72px 8px 16px max(8px,env(safe-area-inset-left));border-top:0;border-right:1px solid color-mix(in srgb,var(--border-strong) 55%,transparent)}.tabbar__tab{padding:10px 0}.tabbar__tab[aria-current=page]{background:var(--surface-2)}.app--tabs{padding-left:108px;padding-bottom:48px;max-width:1204px}}.instrument{position:relative;flex:none}.instrument__button{list-style:none;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:6px 12px 6px 14px;border-radius:999px;background:var(--surface-2);font-size:14px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none}.instrument__button::-webkit-details-marker{display:none}.instrument[open] .instrument__button .icon{transform:rotate(180deg)}.instrument__list{position:absolute;right:0;top:calc(100% + 6px);z-index:40;min-width:180px;margin:0;padding:6px;list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lift)}.instrument__list a{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 12px;border-radius:8px;color:var(--text);text-decoration:none;font-size:15px}.instrument__list a:hover,.instrument__list a[aria-current=page]{background:var(--surface-2);text-decoration:none}.resume{display:flex;align-items:center;gap:16px;padding:16px;border-radius:var(--radius);background:var(--ink);color:var(--ink-contrast);text-decoration:none;max-width:680px}.resume:hover{text-decoration:none;box-shadow:var(--shadow-lift)}.resume__cover{flex:none;width:72px;height:72px;border-radius:var(--radius-sm);object-fit:cover}.resume__cover--empty{display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--ink-contrast) 14%,transparent)}.resume__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.resume__label{font-size:13px;opacity:.72}.resume__title{font-size:20px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resume__artist{font-size:14px;opacity:.72;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resume__play{flex:none;width:48px;height:48px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:var(--ink-contrast);color:var(--ink)}.shelf__row{display:flex;gap:16px;margin:0;padding:4px 2px 8px;list-style:none;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.shelf__row>li{position:relative;flex:0 0 152px;scroll-snap-align:start}.page-title{margin:8px 0 0;font-family:var(--font-display);font-size:30px;letter-spacing:-.02em}.empty-state--link{text-decoration:none;color:inherit}.empty-state--link span{color:var(--link)}.gallery__field{max-width:none;margin:8px 0 12px}.catalog{margin-top:28px}.home>*{min-width:0}.settings>*{min-width:0}.app:not(.app--tabs)>.topbar{display:none}.app:not(.app--tabs) .piece{padding-top:max(10px,env(safe-area-inset-top))}button.piece__level{font:inherit;padding:0;border:0;background:none;cursor:pointer;text-decoration:underline;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent);text-underline-offset:3px}.player{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.player__top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:44px}.player__spacer{flex:1}.player .player__bar{position:fixed;z-index:25;top:var(--viewport-bottom, 100%);left:50%;bottom:auto;transform:translate(-50%,calc(-100% - 12px - env(safe-area-inset-bottom)));width:min(520px,calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));box-sizing:border-box;height:52px;display:flex;align-items:center;gap:2px;padding:0 6px;border:1px solid var(--border);border-radius:26px;background:color-mix(in srgb,var(--surface) 86%,transparent);color:var(--text);box-shadow:0 6px 24px #0000001a;backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px)}.player__bar .play{flex:none;width:40px;height:40px;background:var(--text);color:var(--bg)}.player__step{position:relative;flex:none;width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:transparent;color:var(--muted);cursor:pointer}.player__step:hover,.player__step.is-open{background:var(--surface-2);color:var(--text)}.player__step.is-on{background:var(--accent);color:var(--accent-contrast)}.player__bar .player__where{flex:1;display:grid;gap:5px;min-width:0;margin:0;padding:0 8px;color:var(--muted);font-size:11px}.player__bar .player__where b{color:var(--text);font-size:12px}.player__progress{position:relative;display:block;width:100%;height:14px;margin:-5px 0;padding:0;border:0;background:transparent;cursor:pointer}.player__progress:before,.player__progress>span{content:"";position:absolute;left:0;top:5px;height:4px;border-radius:2px}.player__progress:before{right:0;background:var(--surface-2)}.player__progress>span{background:var(--accent)}.player__clocks{display:flex;justify-content:space-between;gap:8px;line-height:1}.player__rate{flex:none;min-width:52px;height:30px;padding:0 8px;border:1px solid var(--border-strong);border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer}.player__rate.is-on{border-color:var(--accent);background:var(--accent);color:var(--accent-contrast)}.player__more{position:relative;flex:none}.player__more-dot{position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.player__menu{position:absolute;right:-6px;bottom:calc(100% + 12px);min-width:248px;display:grid;padding:6px;border:1px solid var(--border);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-lift)}.player__menu-item{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;min-height:44px;padding:0 10px;border:0;border-radius:10px;background:transparent;color:var(--text);font:inherit;font-size:15px;text-align:left;cursor:pointer}.player__menu-item:hover{background:var(--surface-2)}.player__menu-item[aria-checked=true]{color:var(--accent);font-weight:600}.player__menu-glyph{font-size:17px;text-align:center}.player .player__loop{position:fixed;z-index:25;top:var(--viewport-bottom, 100%);left:50%;transform:translate(-50%,calc(-100% - 72px - env(safe-area-inset-bottom)));display:flex;align-items:center;gap:2px;padding:4px 6px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface) 92%,transparent);color:var(--text);box-shadow:0 6px 20px #0000001a;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.player__loop-step,.player__loop-ramp{display:inline-grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer}.player__loop-step:disabled{opacity:.3;cursor:default}.player__loop-step:not(:disabled):hover{background:var(--surface-2)}.player__loop-ramp.is-on{background:var(--accent);color:var(--accent-contrast)}.player__loop-range{display:inline-flex;align-items:center;gap:6px;padding:0 8px;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}@media (max-width: 420px){.player .player__bar{padding:0 4px}.player__bar .player__step{width:36px;height:36px}.player__rate{min-width:46px;padding:0 6px}}.pen-bar{top:max(8px,env(safe-area-inset-top))}@media (max-width: 380px){.player__clocks .clock:last-child{display:none}}.lesson__excerpt--line{overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.lesson__excerpt--line .lesson__sheet{min-width:0;width:max-content}.lesson__excerpt--line .lesson__sheet svg{width:auto;height:clamp(150px,28vh,230px)}.keyboard-strip{position:fixed;z-index:24;left:50%;top:var(--viewport-bottom, 100%);transform:translate(-50%,calc(-100% - 74px - env(safe-area-inset-bottom)));width:min(1100px,calc(100% - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)));padding:6px;box-sizing:border-box;border-radius:12px;background:#1a1a1a;box-shadow:0 6px 20px #0003}.keyboard-strip svg{display:block;width:100%;height:clamp(48px,9vh,84px)}.player--keys{padding-bottom:calc(196px + env(safe-area-inset-bottom))}.tuna{--tuna-bg: #1b1c20;--tuna-green: #1dd39a;--tuna-text: #f2f2f5;--tuna-muted: #9a9ca5;display:flex;flex-direction:column;align-items:center;max-width:560px;margin:8px auto 0;padding:18px 0 0;color:var(--tuna-text);background:var(--tuna-bg);border-radius:28px;overflow:hidden}.tuna>*{min-width:0}.tuna__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;padding:0 20px}.tuna__tuning{display:grid;gap:2px;min-width:0}.tuna__instrument{font-size:1.15rem;font-weight:500;color:var(--tuna-text)}.tuna__choice{position:relative;display:inline-flex;align-items:center;color:var(--tuna-muted)}.tuna__choice select{-webkit-appearance:none;-moz-appearance:none;appearance:none;max-width:100%;padding:2px 24px 2px 0;font:inherit;font-size:1rem;color:inherit;background:none;border:0;cursor:pointer}.tuna__choice select option{color:#1c1b19;background:#fff}.tuna__choice svg{position:absolute;right:0;pointer-events:none}.tuna__auto{flex:none;display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:0;font:inherit;font-size:.95rem;letter-spacing:.04em;color:var(--tuna-text);background:none;border:0;cursor:pointer}.tuna__switch{position:relative;width:58px;height:34px;background:#3a3c44;border-radius:999px;transition:background .2s}.tuna__switch:after{content:"";position:absolute;top:3px;left:3px;width:28px;height:28px;background:#fff;border-radius:50%;transition:transform .2s}.tuna__auto[aria-checked=true] .tuna__switch{background:var(--tuna-green)}.tuna__auto[aria-checked=true] .tuna__switch:after{transform:translate(24px)}.tuna__meter{display:block;width:100%;height:250px}.tuna__head{position:relative;width:min(100%,440px);aspect-ratio:1}.tuna__head svg{display:block;width:100%;height:100%}.tuna__peg{position:absolute;width:13%;min-width:44px;max-width:56px;aspect-ratio:1;transform:translate(-50%,-50%);font:inherit;font-size:1.3rem;color:var(--tuna-text);background:#2a2c32;border:3px solid transparent;border-radius:50%;cursor:pointer;transition:border-color .2s,background .2s}.tuna__peg.is-active{background:#3a3d45}.tuna__peg.is-tuned{background:var(--tuna-bg);border-color:var(--tuna-green)}.tuna__action{position:absolute;left:0;right:0;top:80%;display:flex;justify-content:center;padding:0 16px}.tuna__action--static{position:static;padding:0 16px 24px}.tuna__action p{margin:0;padding:10px 14px;text-align:center;color:var(--tuna-text);background:#1b1c20d9;border-radius:12px}.tuna__button{min-width:min(100%,200px);min-height:48px;padding:0 36px;font:inherit;font-size:1.15rem;font-weight:500;color:#0f2a20;background:var(--tuna-green);border:0;border-radius:999px;cursor:pointer}@media (max-width: 600px){.tuna{margin:0 -12px;border-radius:0}}.app--fit{display:flex;flex-direction:column;height:100vh;height:100dvh;padding-bottom:calc(61px + env(safe-area-inset-bottom));overflow:hidden}.app--fit>.tuna{flex:1 1 0;min-height:0;width:100%}.app--fit .tuna__meter{flex:1 1 0;min-height:220px;height:auto}.app--fit .tuna__head{flex:none;width:min(100%,440px,max(200px,100dvh - 470px - env(safe-area-inset-bottom)))}@media (min-width: 900px){.app--fit{padding-bottom:16px}}.topbar__icon[aria-current=page]{color:var(--accent)}
