:root{--ink:#15201e;--ink-2:#1e2d2a;--ink-line:#33453f;--on-ink:#efe3c6;--on-ink-soft:#9aa89f;--paper:#f1e7ce;--paper-2:#e8dcbd;--paper-edge:#d8c7a0;--ink-text:#241e12;--ink-soft:#6c6043;--brass:#b5872e;--brass-hi:#d8a93f;--brass-soft:#b5872e24;--brass-line:#b5872e66;--oxblood:#8f3a2e;--sheet-shadow:0 1px 0 #ffffff40 inset, 0 18px 40px -16px #0000008c, 0 6px 14px -8px #0006;--display:"Fraunces", Georgia, "Times New Roman", serif;--body:"Hanken Grotesk", system-ui, -apple-system, sans-serif;--radius:7px;--maxw:980px;font-family:var(--body);color:var(--ink-text);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:17px;line-height:1.5}*{box-sizing:border-box}body{background-color:var(--ink);min-height:100vh;color:var(--on-ink);background-image:radial-gradient(circle at 50% 0,#d8a93f0f,#0000 60%),repeating-linear-gradient(#0000 0 38px,#ffffff03 38px 39px);margin:0}#root{flex-direction:column;min-height:100vh;display:flex}h1,h2,h3{font-family:var(--display);color:var(--ink-text);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.08}h1{font-size:clamp(2rem,5vw,3rem);font-weight:800}h2{font-size:1.7rem}h3{font-size:1.22rem;font-weight:600}p{margin:0}a{color:var(--brass);text-underline-offset:2px;text-decoration-thickness:1px}a:hover{color:var(--oxblood)}.eyebrow{font-family:var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin:0 0 .5rem;font-size:.72rem;font-weight:700}.muted{color:var(--ink-soft)}.masthead{z-index:20;background:linear-gradient(var(--ink-2), #1a2724);border-bottom:1px solid var(--ink-line);align-items:center;gap:1.5rem;padding:.7rem clamp(1rem,4vw,2.5rem);display:flex;position:sticky;top:0;box-shadow:0 1px #d8a93f1f}.brand{color:var(--on-ink);align-items:center;gap:.6rem;text-decoration:none;display:inline-flex}.brand:hover{color:var(--on-ink)}.brand-mark{border:1.5px solid var(--brass);width:2.1rem;height:2.1rem;font-family:var(--display);color:var(--brass-hi);border-radius:6px;flex-direction:column;flex:none;justify-content:center;align-items:center;font-size:.95rem;font-weight:700;line-height:.78;display:inline-flex}.brand-name{font-family:var(--display);letter-spacing:-.01em;font-size:1.18rem;font-weight:600}.brand-name b{color:var(--brass-hi);font-weight:600}.nav-links{flex-wrap:wrap;align-items:center;gap:.3rem;margin-left:auto;display:flex}.navlink{font-family:var(--body);color:var(--on-ink-soft);border-radius:6px;padding:.35rem .7rem;font-size:.92rem;font-weight:600;text-decoration:none;transition:color .15s,background .15s}.navlink:hover{color:var(--on-ink);background:#ffffff0d}.navlink.active{color:var(--brass-hi);background:var(--brass-soft)}.navlink--admin{border:1px dashed var(--ink-line)}.nav-badge{background:var(--brass);min-width:1.25rem;height:1.25rem;color:var(--ink-text);vertical-align:baseline;border-radius:999px;justify-content:center;align-items:center;margin-left:.4rem;padding:0 .35rem;font-size:.72rem;font-weight:800;line-height:1;display:inline-flex}.masthead button.navlink{background:0 0;border:1px solid #0000}.masthead button.navlink:hover{background:#ffffff0d;border-color:#0000}.nav-sep{background:var(--ink-line);align-self:stretch;width:1px;margin:.2rem .3rem}.nav-toggle{border:1px solid var(--ink-line);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;margin-left:auto;display:none}.nav-toggle-bars,.nav-toggle-bars:before,.nav-toggle-bars:after{content:"";background:var(--on-ink-soft);border-radius:2px;width:1.15rem;height:2px;transition:transform .18s,opacity .18s;display:block}.nav-toggle-bars{position:relative}.nav-toggle-bars:before{position:absolute;top:-6px}.nav-toggle-bars:after{position:absolute;top:6px}.nav-toggle[aria-expanded=true] .nav-toggle-bars{background:0 0}.nav-toggle[aria-expanded=true] .nav-toggle-bars:before{top:0;transform:rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-bars:after{top:0;transform:rotate(-45deg)}.page{width:min(var(--maxw), 100% - 2rem);color:var(--ink-text);background:var(--paper);background-image:linear-gradient(var(--paper), var(--paper) 60%, #ece0c2);border-radius:var(--radius);border-top:3px solid var(--brass);box-shadow:var(--sheet-shadow);margin:clamp(1.25rem,4vw,2.5rem) auto;padding:clamp(1.5rem,4vw,2.75rem)}.page--narrow{width:min(560px,100% - 2rem)}.page--wide{width:min(1200px,100% - 2rem)}.page-head{border-bottom:1.5px solid var(--paper-edge);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.page-head h1,.page-head h2{margin:0}.meter{font-family:var(--display);color:var(--ink-text);font-feature-settings:"lnum" 1, "tnum" 1;flex-direction:column;flex:none;justify-content:center;align-items:center;font-weight:700;line-height:.74;display:inline-flex}.meter-top,.meter-bot{display:block}.meter-glyph{font-weight:500;line-height:1}.meter-md{width:2rem;height:2rem;font-size:1.05rem}.meter-md .meter-glyph{font-size:1.3rem}.meter-sm{width:1.5rem;font-size:.82rem}.meter-lg{width:3rem;height:3rem;font-size:1.7rem}.meter-lg .meter-glyph{font-size:2rem}.meter-chip{border:1.5px solid var(--brass-line);background:var(--brass-soft);color:var(--brass);border-radius:5px;padding:.15rem}.type-label{align-items:center;gap:.5rem;display:inline-flex}.type-label .name{font-variant:small-caps;letter-spacing:.04em;color:var(--ink-soft);font-size:.95rem;font-weight:600}button,.btn{font-family:var(--body);color:var(--ink-text);background:var(--paper);border:1.5px solid var(--paper-edge);cursor:pointer;border-radius:6px;padding:.5rem .95rem;font-size:.95rem;font-weight:600;transition:background .15s,border-color .15s,transform 50ms,color .15s}button:hover,.btn:hover{border-color:var(--brass);background:var(--paper-2)}button:active,.btn:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}.btn-primary,button.btn-primary{background:linear-gradient(var(--brass-hi), var(--brass));border-color:var(--brass);color:#2a1d05;box-shadow:inset 0 1px #ffffff4d,0 4px 10px -4px #78561299}.btn-primary:hover,button.btn-primary:hover{border-color:var(--brass);background:linear-gradient(#e3b54a,#c2932f)}input,select,textarea{font-family:var(--body);color:var(--ink-text);border:1.5px solid var(--paper-edge);background:#faf4e3;border-radius:6px;padding:.5rem .65rem;font-size:.95rem}input::placeholder,textarea::placeholder{color:#a99a72}textarea{resize:vertical;width:100%}select{cursor:pointer}:focus-visible{outline:2.5px solid var(--brass);outline-offset:2px}.field-label{color:var(--ink-soft);align-items:center;gap:.5rem;font-size:.88rem;font-weight:600;display:inline-flex}.event-form.stack{margin-top:.85rem}.event-form .field-label{grid-template-columns:6.5rem minmax(0,20rem);align-items:start;column-gap:.85rem;display:grid}.event-form .field-label>span{text-align:right;padding-top:calc(.5rem + 1.5px)}.event-form .field-label>input,.event-form .field-label>textarea,.event-form .field-label>select{width:100%}.toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem;display:flex}.toolbar--spread{justify-content:space-between}.mode-toggle{border:1.5px solid var(--paper-edge);border-radius:6px;display:inline-flex;overflow:hidden}.mode-toggle button{cursor:pointer;background:#faf4e3;border:none;border-radius:0;padding:.4rem .85rem;font-weight:600}.mode-toggle button+button{border-left:1.5px solid var(--paper-edge)}.mode-toggle button.is-active{background:linear-gradient(var(--brass-hi), var(--brass));color:#2a1d05}.ledger{border-collapse:collapse;width:100%;font-size:.97rem}.ledger thead th{font-family:var(--body);letter-spacing:.13em;text-transform:uppercase;color:var(--brass);text-align:left;border-bottom:1.5px solid var(--paper-edge);padding:0 .85rem .6rem;font-size:.7rem;font-weight:700}.ledger thead th.num{text-align:right;font-variant-numeric:tabular-nums}.ledger tbody td{border-bottom:1px solid var(--paper-edge);vertical-align:middle;padding:.7rem .85rem}.ledger tbody td.num{text-align:right;font-variant-numeric:tabular-nums}.ledger tbody tr:hover{background:var(--paper-2)}.ledger tbody tr:last-child td{border-bottom:none}.ledger .row-total td{color:var(--ink-text);border-top:2px solid var(--ink-text);border-bottom:none;padding-top:.9rem;font-weight:700}.tune-title{font-family:var(--display);color:var(--ink-text);font-size:1.08rem;font-weight:600;text-decoration:none}.tune-title:hover{color:var(--oxblood);text-underline-offset:3px;text-decoration:underline}.key-pill{font-variant-numeric:tabular-nums;color:var(--ink-soft);border:1px solid var(--paper-edge);white-space:nowrap;border-radius:100px;padding:.1rem .55rem;font-size:.82rem;font-weight:600}.stat-figures{background:var(--paper-edge);border:1px solid var(--paper-edge);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;margin-bottom:1.75rem;display:grid;overflow:hidden}.stat-figure{background:var(--paper);padding:1.1rem 1.25rem}.stat-figure .n{font-family:var(--display);color:var(--ink-text);font-feature-settings:"tnum" 1;font-size:2.4rem;font-weight:800;line-height:1}.stat-figure .n.accent{color:var(--brass)}.stat-figure .n.stamp{color:var(--oxblood)}.stat-figure .l{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);margin-top:.35rem;font-size:.72rem;font-weight:700}.comfort{align-items:center;gap:.5rem;display:inline-flex}.comfort-meter{border:1.5px solid var(--paper-edge);border-radius:6px;display:inline-flex;overflow:hidden}.comfort-meter button{border:none;border-right:1px solid var(--paper-edge);font-variant-numeric:tabular-nums;color:var(--ink-soft);background:#faf4e3;border-radius:0;padding:.32rem .6rem;font-weight:700;transition:background .12s,color .12s}.comfort-meter button:last-child{border-right:none}.comfort-meter button:hover{background:var(--brass-soft);color:var(--brass)}.comfort-meter button.filled{background:linear-gradient(var(--brass-hi), var(--brass));color:#2a1d05}.want-btn{padding:.32rem .7rem;font-size:.85rem}.want-btn[aria-pressed=true]{background:var(--oxblood);border-color:var(--oxblood);color:#faece8}.stack{flex-direction:column;gap:.85rem;margin:0;padding:0;list-style:none;display:flex}.card{border:1px solid var(--paper-edge);border-left:3px solid var(--brass);background:#faf4e3;border-radius:6px;flex-wrap:wrap;align-items:center;gap:.85rem;padding:.9rem 1.1rem;display:flex}.card.is-done{opacity:.55;border-left-color:var(--paper-edge)}.card .grow{flex:1;min-width:0}.card .who{font-family:var(--display);color:var(--ink-text);font-weight:600}.card a.who{text-decoration:none;display:inline-block}.card a.who:hover{color:var(--oxblood);text-underline-offset:3px;text-decoration:underline}.profile-rule{border:none;border-top:1px solid var(--paper-edge);margin:2rem 0 1.2rem}.practice-session-card{align-items:stretch}.practice-session-tunes{flex-direction:column;gap:.6rem;margin-top:.75rem;display:flex}.practice-tune{border:1px solid var(--paper-edge);background:#fffdf6;border-radius:6px;padding:.5rem .75rem}.practice-tune summary{cursor:pointer;font-family:var(--display);color:var(--ink-text);font-weight:600}.practice-tune[open] summary{color:var(--brass);margin-bottom:.75rem}.practice-tune-actions,.setting-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.5rem;display:flex}.chip{border:1.5px solid var(--paper-edge);color:var(--ink-text);background:#faf4e3;border-radius:100px;align-items:center;gap:.4rem;padding:.25rem .45rem .25rem .85rem;display:inline-flex}.chip.active{border-color:var(--brass);background:var(--brass-soft)}.chip-name{font:inherit;font-variant:small-caps;letter-spacing:.03em;color:var(--ink-text);cursor:pointer;background:0 0;border:none;padding:.1rem 0;font-weight:600}.chip-name:hover:not(:disabled){color:var(--brass);background:0 0}.chip-name:disabled{cursor:default;opacity:1}.chip.active .chip-name{color:var(--brass)}.chip-name .tag{font-variant:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);vertical-align:.08em;margin-left:.45rem;font-size:.62rem;font-weight:700}.chip .x{color:var(--ink-soft);background:0 0;border:none;padding:.1rem .3rem;font-size:1rem;line-height:1}.chip .x:hover{color:var(--oxblood);background:0 0}.chip-set{flex-wrap:wrap;gap:.6rem;margin:0 0 1.25rem;padding:0;list-style:none;display:flex}details.requestor{border-top:1.5px dashed var(--paper-edge);margin-top:1.75rem;margin-bottom:1.75rem;padding-top:1.25rem}details.requestor summary{cursor:pointer;color:var(--brass);font-weight:600;font-family:var(--display);font-size:1.05rem}details.requestor .row{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:1rem;display:flex}.tune-block{margin-bottom:1.75rem}.tune-block+.tune-block{border-top:1.5px solid var(--paper-edge);padding-top:1.5rem}.tune-block-head{align-items:center;gap:.75rem;margin-bottom:.85rem;display:flex}.tune-index{font-family:var(--display);color:var(--brass);font-feature-settings:"tnum" 1;font-size:1.5rem;font-weight:800}.notation{border:1px solid var(--paper-edge);background:#fffdf6;border-radius:6px;max-width:100%;padding:.5rem .75rem;overflow-x:auto}.session-sets>li{align-items:stretch}.set-toggle{text-align:left;cursor:pointer;background:0 0;border:0;padding:0;display:block}.set-type-eyebrow{font-family:var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-bottom:.2rem;font-size:.66rem;font-weight:700;display:block}.set-title-line{display:block}.session-sets>li,.session-sets>li *{min-width:0}.chords-line{margin-top:.6rem;font-size:.95rem}.chords-line b{color:var(--brass);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem}.lyrics{font-family:var(--body);white-space:pre-wrap;border-left:3px solid var(--paper-edge);background:#faf4e3;border-radius:0 6px 6px 0;margin-top:.75rem;padding:.75rem 1rem}.abcjs-inline-audio{border-radius:6px;flex-wrap:wrap;row-gap:.4rem;margin-top:.6rem;padding-top:5px;padding-bottom:5px;background:#3a3a3a!important;height:auto!important}.abcjs-inline-audio span.abcjs-tempo-wrapper{white-space:nowrap;font-size:13px}.abcjs-inline-audio input.abcjs-midi-tempo{text-align:center;width:5.5rem;padding:2px 6px;font-size:14px}.empty{text-align:center;color:var(--ink-soft);font-family:var(--display);padding:2.5rem 1rem;font-size:1.15rem;font-style:italic}.login{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.5rem;padding:2rem 1.5rem 4rem;display:flex}.login .eyebrow{color:var(--brass-hi)}.login h1{color:var(--on-ink);max-width:12ch;font-size:clamp(2.6rem,8vw,5rem);font-weight:600;line-height:.98}.login h1 em{color:var(--brass-hi);font-style:italic}.login .lede{color:var(--on-ink-soft);max-width:42ch;font-size:1.1rem}.meter-row{flex-wrap:wrap;justify-content:center;gap:.9rem;margin:.5rem 0;display:flex}.meter-row .meter{color:var(--brass-hi);border:1.5px solid var(--ink-line);background:var(--ink-2);opacity:0;border-radius:8px;width:3.4rem;height:3.4rem;font-size:1.7rem;animation:.5s cubic-bezier(.2,.7,.3,1) forwards meter-in;transform:translateY(8px)}.meter-row .meter:first-child{animation-delay:.1s}.meter-row .meter:nth-child(2){animation-delay:.2s}.meter-row .meter:nth-child(3){animation-delay:.3s}.meter-row .meter:nth-child(4){animation-delay:.4s}.meter-row .meter:nth-child(5){animation-delay:.5s}@keyframes meter-in{to{opacity:1;transform:translateY(0)}}.login .btn-primary{padding:.7rem 1.5rem;font-size:1.05rem}.antobar-page{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.6rem;padding:2.5rem 1.5rem 4rem;display:flex}.antobar{text-align:left;grid-template-columns:minmax(0,210px) minmax(0,1fr);align-items:start;gap:clamp(1.5rem,5vw,3.5rem);width:100%;max-width:760px;display:grid}.antobar-figure{justify-self:center;margin:0}.antobar-art{width:100%;max-width:200px;height:auto;color:var(--brass-hi);display:block}.antobar-def{min-width:0}.antobar-word{font-family:var(--display);color:var(--on-ink);letter-spacing:-.01em;font-size:clamp(2.4rem,6vw,3.6rem);font-weight:800;line-height:1}.antobar-pron{color:var(--brass-hi);margin-top:.55rem;font-size:1.05rem}.antobar-pron .respell{color:var(--on-ink-soft)}.antobar-gram{color:var(--on-ink-soft);margin-top:.1rem;font-size:.95rem;font-style:italic}.antobar-senses{counter-reset:sense;flex-direction:column;gap:1rem;margin:1.4rem 0 0;padding:0;list-style:none;display:flex}.antobar-senses li{counter-increment:sense;color:var(--on-ink);padding-left:2rem;line-height:1.5;position:relative}.antobar-senses li:before{content:counter(sense);font-family:var(--display);color:var(--brass);font-weight:600;position:absolute;top:0;left:0}.antobar-senses .reg{color:var(--brass-hi);margin-right:.15rem;font-style:italic}.antobar-senses .ety,.antobar-senses i{color:var(--on-ink-soft);font-style:italic}.antobar-tagline{color:var(--on-ink-soft);max-width:46ch;font-size:1.05rem}.landing-links{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.landing-links .btn-primary,.landing-links .btn-secondary{font-family:var(--body);border:1.5px solid #0000;border-radius:6px;align-items:center;padding:.7rem 1.5rem;font-size:1.05rem;font-weight:600;text-decoration:none;transition:background .15s,border-color .15s,color .15s,transform 50ms;display:inline-flex}.landing-links .btn-primary{background:linear-gradient(var(--brass-hi), var(--brass));border-color:var(--brass);color:#2a1d05;box-shadow:inset 0 1px #ffffff4d,0 4px 10px -4px #78561299}.landing-links .btn-primary:hover{color:#2a1d05;background:linear-gradient(#e3b54a,#c2932f)}.landing-links .btn-secondary{background:var(--ink-2);border-color:var(--ink-line);color:var(--on-ink)}.landing-links .btn-secondary:hover{border-color:var(--brass);color:var(--on-ink);background:#24332f}.landing-links a:active{transform:translateY(1px)}.app-footer-mid{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;display:flex}@media (width<=620px){.antobar{grid-template-columns:1fr;justify-items:center}.antobar-art{max-width:150px}}.center-msg{color:var(--on-ink-soft);font-family:var(--display);flex:1;justify-content:center;align-items:center;padding:3rem;font-size:1.2rem;font-style:italic;display:flex}@media (prefers-reduced-motion:reduce){.meter-row .meter{opacity:1;animation:none;transform:none}.nav-toggle-bars,.nav-toggle-bars:before,.nav-toggle-bars:after{transition:none}}@media (width<=640px){.masthead{flex-wrap:wrap;gap:.75rem}.nav-toggle{display:inline-flex}.nav-links{flex-direction:column;align-items:stretch;gap:.15rem;width:100%;margin-left:0;display:none}.nav-links.open{display:flex}.navlink{padding:.6rem .7rem}.nav-sep{align-self:auto;width:100%;height:1px;margin:.3rem 0}.ledger{font-size:.95rem}.ledger thead{display:none}.ledger,.ledger tbody,.ledger tr{display:block}.ledger tr{border:1px solid var(--paper-edge);border-radius:var(--radius);margin-bottom:.85rem;padding:.1rem .85rem .5rem}.ledger tbody tr:hover{background:0 0}.ledger tbody td{border-top:1px solid var(--paper-edge);border-bottom:none;justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 0;display:flex}.ledger tbody td:first-child{border-top:none;padding-bottom:.55rem}.ledger tbody td[data-label]:before{content:attr(data-label);font-family:var(--body);letter-spacing:.13em;text-transform:uppercase;color:var(--brass);font-size:.66rem;font-weight:700}}.masthead .instr-switch{align-items:center;gap:.35rem;font-size:.9rem;display:inline-flex}.masthead .instr-switch-glyph{color:var(--brass,#b08d57);font-size:1rem}.masthead .instr-switch select{border:1px solid color-mix(in srgb, currentColor 25%, transparent);font:inherit;color:inherit;background:0 0;border-radius:.4rem;padding:.15rem .4rem}.btn-add{font:inherit;border:1px solid var(--brass,#b08d57);color:inherit;cursor:pointer;background:0 0;border-radius:.4rem;padding:.2rem .7rem}.btn-add:hover{background:color-mix(in srgb, var(--brass,#b08d57) 15%, transparent)}.owned-mark{color:var(--muted,#8a8378);font-size:.9rem}.page-head-controls{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.tune-search{min-width:12rem}.comfort-legend{color:var(--ink-soft);margin-top:.25rem;font-size:.82rem;display:block}.comfort-legend b{font-variant-numeric:tabular-nums;color:var(--brass)}.upcoming-events{margin-bottom:1.5rem}.repertoire-group{margin-top:1.5rem}.repertoire-group .group-head{margin-bottom:.4rem;font-size:1rem}.repertoire-group .last-practised{white-space:nowrap;font-size:.85rem}.ledger thead th.comfort-col{text-align:center;color:var(--ink-soft);font-size:.66rem}@media (width>=641px){.repertoire-group .ledger{table-layout:fixed}.repertoire-group .ledger th.comfort-col{width:11rem}.repertoire-group .ledger th.comfort-col:last-child{width:5rem}.repertoire-group .ledger .tune-title{overflow-wrap:anywhere}}.repertoire-group .ledger td[data-label=practice],.repertoire-group .ledger td[data-label=remove]{text-align:center}.btn-remove{border:1.5px solid var(--oxblood);color:var(--oxblood);background:0 0;border-radius:6px;padding:.32rem .62rem;font-size:1rem;font-weight:700;line-height:1;transition:background .12s,color .12s}.btn-remove:hover{background:var(--oxblood);color:var(--paper)}.remove-confirm{justify-content:center;gap:.3rem;display:inline-flex}.btn-cancel{border:1.5px solid var(--paper-edge);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:6px;padding:.32rem .5rem;font-size:1rem;font-weight:700;line-height:1}.btn-cancel:hover{background:var(--paper-edge)}.btn-practice{border:1px solid var(--line,#d8d2c4);width:1.9rem;height:1.9rem;color:var(--ink,#2a2a2a);cursor:pointer;background:0 0;border-radius:999px;font-size:1.1rem;line-height:1}.btn-practice:hover{background:#0000000d}.btn-practice.is-active{background:var(--accent,#2e7d5b);border-color:var(--accent,#2e7d5b);color:#fff}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-main{flex:1 0 auto}.app-footer{border-top:1px solid var(--line,#d8d2c4);color:var(--muted,#6b6b6b);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;font-size:.85rem;display:flex}.app-footer-right{flex-wrap:wrap;gap:1rem;display:flex}.app-footer a{color:inherit;text-decoration:none}.app-footer a:hover{text-decoration:underline}.app-footer .footer-feedback{border:1.5px solid var(--brass);background:var(--brass-soft);color:var(--brass);border-radius:999px;align-items:center;padding:.4rem .95rem;font-weight:700;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.app-footer .footer-feedback:hover{background:var(--brass);color:var(--ink-text);text-decoration:none}@media (width<=640px){.app-footer{text-align:center;flex-direction:column}}.legal h2{margin-top:1.5rem}.legal p,.legal li{line-height:1.6}.stack-form{flex-direction:column;gap:1rem;max-width:32rem;display:flex}.stack-form textarea{width:100%;font:inherit;border:1px solid var(--line,#d8d2c4);border-radius:6px;padding:.5rem}.edit-fields{flex-wrap:wrap;align-items:center;gap:.85rem 1.25rem;margin-top:.85rem;display:flex}.edit-fields .edit-title{flex:16rem}.edit-fields .edit-title input{flex:1;min-width:12rem}.speed-trainer{margin-top:.75rem}.speed-trainer .field-label input[type=number]{width:4.5rem}.metronome{margin-top:1rem}.metronome-pulses{gap:.6rem;margin-top:.75rem;display:flex}.pulse-dot{background:var(--border,#cbd5e1);border-radius:50%;width:.85rem;height:.85rem;transition:transform 60ms,background 60ms}.pulse-dot--accent{background:var(--muted,#94a3b8);width:1.15rem;height:1.15rem}.pulse-dot--active{background:var(--accent,#2563eb);transform:scale(1.25)}.metronome .field-label input[type=number]{width:4.5rem}.practice-streak{margin:0 0 .85rem;font-size:.95rem}.practice-streak .streak-flame{font-weight:600}.practice-streak .streak-longest,.practice-streak .streak-last30{color:var(--ink-soft)}.practice-heatmap{max-width:100%;overflow-x:auto}.heatmap-cell{background:var(--paper-edge);border-radius:2px;width:11px;height:11px}.heatmap-cell.level-0{background:var(--paper-edge)}.heatmap-cell.level-1{background:var(--brass-soft)}.heatmap-cell.level-2{background:var(--brass-line)}.heatmap-cell.level-3{background:var(--brass)}.cold-tunes-card ul{margin:0;padding:0;list-style:none}.cold-tunes-card .tune-title{display:inline-block}.abcjs-inline-audio{box-sizing:border-box;background-color:#424242;border-radius:3px;align-items:center;height:26px;padding:0 5px;display:flex}.abcjs-inline-audio.abcjs-disabled{opacity:.5}.abcjs-inline-audio .abcjs-btn{box-sizing:border-box;border:1px solid #0000;width:28px;height:34px;margin-right:2px;padding:7px 4px;line-height:1;display:block;background:0 0!important}.abcjs-btn g{fill:#f4f4f4;stroke:#f4f4f4}.abcjs-inline-audio .abcjs-btn:hover g{fill:#ccc;stroke:#ccc}.abcjs-inline-audio .abcjs-midi-selection.abcjs-pushed,.abcjs-inline-audio .abcjs-midi-loop.abcjs-pushed,.abcjs-inline-audio .abcjs-midi-reset.abcjs-pushed{box-sizing:border-box;background-color:#666;border:1px solid #ccc}.abcjs-inline-audio .abcjs-midi-start .abcjs-pause-svg,.abcjs-inline-audio .abcjs-midi-start .abcjs-loading-svg,.abcjs-inline-audio .abcjs-midi-start.abcjs-pushed .abcjs-play-svg,.abcjs-inline-audio .abcjs-midi-start.abcjs-loading .abcjs-play-svg{display:none}.abcjs-inline-audio .abcjs-midi-start.abcjs-pushed .abcjs-pause-svg{display:block}.abcjs-inline-audio .abcjs-midi-progress-background{box-sizing:border-box;background-color:#424242;border:2px solid #ccc;border-radius:5px;flex:1;height:10px;margin:0 8px 0 15px;padding:0;position:relative}.abcjs-inline-audio .abcjs-midi-progress-indicator{box-sizing:border-box;background-color:#f4f4f4;border-radius:6px;width:20px;height:14px;margin-left:-10px;display:inline-block;position:absolute;top:-4px;left:0}.abcjs-inline-audio .abcjs-midi-clock{box-sizing:border-box;color:#f4f4f4;margin-top:1px;margin-left:4px;margin-right:2px;font-family:sans-serif;font-size:16px;display:inline-block}.abcjs-inline-audio .abcjs-tempo-wrapper{color:#f4f4f4;box-sizing:border-box;align-items:center;font-size:10px;display:flex}.abcjs-inline-audio .abcjs-midi-tempo{box-sizing:border-box;border:none;border-radius:2px;width:42px;margin:0 2px 0 4px;padding-left:2px}.abcjs-inline-audio .abcjs-loading .abcjs-loading-svg{display:inherit}.abcjs-inline-audio .abcjs-loading{outline:none;animation-name:abcjs-spin;animation-duration:1s;animation-timing-function:linear;animation-iteration-count:infinite}.abcjs-inline-audio .abcjs-loading-svg circle{stroke:#f4f4f4}@keyframes abcjs-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.abcjs-large .abcjs-inline-audio{height:52px}.abcjs-large .abcjs-btn{width:56px;height:52px;padding:6px 8px;font-size:28px}.abcjs-large .abcjs-midi-progress-background{border:4px solid #ccc;height:20px}.abcjs-large .abcjs-midi-progress-indicator{width:40px;height:28px;top:-8px}.abcjs-large .abcjs-midi-clock{margin-top:-1px;margin-left:10px;margin-right:10px;font-size:32px}.abcjs-large .abcjs-midi-tempo{width:50px;font-size:20px}.abcjs-large .abcjs-tempo-wrapper{font-size:20px}.abcjs-css-warning{display:none}
