:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;color:#ffffffde;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:disabled{opacity:.5}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}#root{min-width:570px;max-width:1280px;box-sizing:border-box;margin:0 auto;padding:2rem 0;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}.buttons{flex-direction:column}.buttons,.buttons>div{display:flex;align-items:center;flex-wrap:wrap;gap:10px}form{width:fit-content;display:flex;gap:15px;margin:0 auto}table{margin:20px auto 0}table td{width:80px;border:1px solid #aaa}table td:not(:first-child){font-weight:700}table td #play-ear-test{height:100%;width:100%;padding:0}#beat-ms{width:60px}#tines{display:flex;flex-wrap:wrap;margin:0 auto 20px;position:relative}#tines .tine{border:1px solid black;border-radius:5px;box-sizing:border-box;color:#222;display:flex;align-items:flex-end;justify-content:center;font-size:.95em}#tines .tine:hover{cursor:pointer}#tines .tine.front{background-color:#ccc}#tines .tine.front.standout{background-color:#fbc8d0}#tines .tine.back{position:relative;background-color:#aaa}#tines .tine.back.standout{background-color:#feafbc}#tines .tine.highlight,#tines .tine.highlight.standout{background-color:#ff0}#tines .tine.test-passed,#tines .tine.test-passed.standout{background-color:#adff2f}#tines .tine.test-failed,#tines .tine.test-failed.standout{background-color:#ff6250}#tines .tine.no-tine{background-color:transparent;border:0}@font-face{font-family:Noto Music;src:url(/kalimba/assets/NotoMusic-Regular-BsFFLiWs.ttf) format("truetype")}.staff{--base-unit: 2.25rem;--space-height: calc(var(--base-unit) / 3);width:100%;background-color:#fff;color:#000;font-family:Noto Music;font-size:calc(var(--base-unit) / 1.1);line-height:0;padding:var(--space-height) 0}.staff .treble,.staff .bass{position:relative}:is(.staff .treble,.staff .bass) .cleff{font-size:calc(var(--base-unit) * 1.4);position:absolute;left:0}.staff .treble .cleff{top:calc(var(--base-unit) * 1.085)}.staff .bass .cleff{top:calc(var(--base-unit) * .92)}.staff .line,.staff .space{display:flex;align-items:center;justify-content:center}:is(.staff .line,.staff .space) span .staff-note{--note-size: calc(var(--base-unit) / 3.25);--note-margin: calc(var(--base-unit) / 6);display:flex;align-items:flex-start;margin-bottom:var(--note-margin)}:is(.staff .line,.staff .space) span .staff-note div{height:var(--note-size);width:var(--note-size);border-radius:50%;background-color:#00f;margin-top:var(--note-margin)}.staff .line{height:1px;background-color:#000}.staff .line.A5,.staff .line.C4{background-color:#ccc}.staff .space{height:var(--space-height)}
