:root{--paper:#f4ebdd;--paper-light:#faf3e6;--ink:#17212b;--gold:#b68a3a;--gold-bright:#d3a332;--staff-line:#6b5f4e;--charcoal:#453e33}*{box-sizing:border-box}body{color:var(--ink);background:var(--paper);margin:0;padding:0;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;line-height:1.6}main{max-width:44rem;margin:0 auto;padding:1.5rem 1.25rem 3rem}header{border-bottom:1px solid var(--staff-line);padding:.75rem 1.25rem}a{color:var(--ink);font-weight:600;text-decoration:none}a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}h1{letter-spacing:.12em;text-align:center;margin:.75rem 0 1.5rem;font-size:2rem}.controls{justify-content:center;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.ensemble-group{gap:.65rem;display:flex}.ensemble-button{width:5.5rem;height:6.5rem;font:inherit;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--paper-light);border:2px solid var(--ink);cursor:pointer;border-radius:.5rem;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:.6rem .4rem;font-size:.7rem;font-weight:600;display:flex}.ensemble-icon{fill:none;width:2.2rem;height:1.6rem;stroke:var(--ink);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round}.ensemble-icon .icon-dot{fill:var(--ink);stroke:none}.ensemble-button:hover{border-color:var(--gold)}.ensemble-button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.ensemble-button[aria-pressed=true]{background:var(--ink);border-color:var(--gold);color:var(--gold-bright)}.ensemble-button[aria-pressed=true] .ensemble-icon{stroke:var(--gold-bright)}.ensemble-button[aria-pressed=true] .ensemble-icon .icon-dot{fill:var(--gold-bright)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.score{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;padding-bottom:2.5rem;position:relative;overflow:hidden}.score:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.score-paper{background:var(--paper-light);border:1px solid var(--staff-line);border-radius:.5rem;padding:1.25rem 1.25rem .5rem;position:relative}.score-header{justify-content:center;align-items:baseline;gap:.75rem;margin-bottom:.25rem;display:flex}.concert-pitch-label{letter-spacing:.14em;text-transform:uppercase;color:var(--staff-line);margin:0;font-size:.7rem}.chord-symbol{color:var(--gold);min-width:2ch;min-height:1.3em;font-size:1.7rem;font-weight:600}.chord-symbol-pulse{animation:.25s ease-out forwards chord-symbol-pulse-in}@keyframes chord-symbol-pulse-in{0%{opacity:0;transform:translateY(-.2em)}to{opacity:1;transform:translateY(0)}}.score-svg{width:100%;height:auto;display:block}.score-svg .system-bracket{fill:none;stroke:var(--ink);stroke-width:2.5px}.score-svg .staff-line{stroke:var(--staff-line);stroke-width:1.25px;opacity:.8}.score-svg .instrument-label{letter-spacing:.06em;fill:var(--charcoal);font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:15px}.score-svg .clef path,.score-svg .clef line{fill:none;stroke:var(--ink);stroke-width:3.4px;stroke-linecap:round;stroke-linejoin:round}.score-svg .clef .clef-dot{fill:var(--ink);stroke:none}.score-svg .clef-alto .alto-bar-thick{stroke-width:5.5px}.score-svg .ledger-line{stroke:var(--staff-line);stroke-width:1.25px}.score-svg .stem{stroke:var(--ink);stroke-width:1.6px}.score-svg .notehead{fill:var(--ink);stroke:none;transition:fill .5s ease-out}.score-svg .accidental-sharp line,.score-svg .accidental-flat line,.score-svg .accidental-flat path{fill:none;stroke:var(--ink);stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.score-svg .note-glow-flash{fill:var(--gold-bright);opacity:.55;animation:.6s ease-out forwards note-glow-fade}@keyframes note-glow-fade{0%{opacity:.55}to{opacity:0}}.score-svg .staff.note-flash .notehead{fill:var(--gold-bright);transition:none}.baton{transform:translate(calc(var(--baton-x,50%) - 20px), calc(var(--baton-y,50%) - 20px));pointer-events:none;z-index:5;position:absolute;top:0;left:0}.baton-svg{transform-origin:20px 20px;width:210px;height:40px;transform:rotate(calc(var(--baton-angle,0deg) + 180deg));display:block;overflow:visible}.baton-shaft{stroke-width:6px;stroke-linecap:round}.baton-tip{fill:var(--gold-bright)}.baton-glow{fill:var(--gold-bright);opacity:.35;animation:1.6s ease-in-out infinite baton-glow-pulse}@keyframes baton-glow-pulse{0%,to{opacity:.25;r:9px}50%{opacity:.45;r:12px}}.invitation{text-align:center;color:var(--staff-line);margin:0;font-style:italic;transition:opacity .4s ease-out;position:absolute;bottom:0;left:0;right:0}.invitation-hidden{opacity:0}.keyboard-hint{text-align:center;letter-spacing:.06em;color:var(--staff-line);margin-top:1rem;font-size:.85rem}@media (width<=780px){main{padding:1rem .75rem 2.5rem}.ensemble-button{width:4.5rem;height:5.5rem}.score-paper{padding:1rem .6rem .4rem}.score-svg .instrument-label{font-size:12px}}@media (prefers-reduced-motion:reduce){.chord-symbol-pulse{opacity:1;animation:none}.invitation{transition:none}.baton-glow{opacity:.3;animation:none}.score-svg .note-glow-flash{opacity:0;animation:none}}
