:root{--ink:#243a35;--muted:#7d8981;--line:#dce4da;--green:#376c58;--paper:#f7f8f2;--accent:#e8b67d}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 system-ui,sans-serif}button,input,select,textarea{font:inherit}button,.filebutton{border:1px solid var(--line);border-radius:6px;padding:9px 13px;background:white;color:var(--ink);font-size:11px;font-weight:600;cursor:pointer}button:hover,.filebutton:hover{background:#edf2e8}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #8eb7a0;outline-offset:3px}.primary{background:var(--green);border-color:var(--green);color:white}.primary:hover{background:#2c5847}button:disabled{opacity:.4;cursor:default}.filebutton{display:inline-block;margin:0}.filebutton input{display:none}a{color:var(--green)}header,main,footer{max-width:1220px;margin:auto}header{padding:20px 26px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.brand{font-size:19px;font-weight:650;text-decoration:none;color:var(--ink);letter-spacing:-.5px}.brand span{background:var(--green);color:white;padding:2px 10px;border-radius:7px;margin-right:7px}.brand b{font-weight:400}.actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.center{justify-content:center}main{padding:0 26px}.hero{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;padding:45px 0 35px;gap:50px}.eyebrow{font-size:9px;letter-spacing:1.7px;font-weight:750;color:var(--green)}h1{font-size:55px;line-height:1.1;letter-spacing:-2.5px;margin:20px 0}h1 em{font-family:Georgia,serif;color:#8a9e83;font-weight:400}.hero p{font-size:15px;max-width:460px;color:var(--muted)}.musicart{height:245px;position:relative;background:#e5ebe0;border-radius:100px 15px 15px 15px;display:flex;align-items:center;justify-content:center}.vinyl{width:205px;height:205px;border-radius:50%;background:repeating-radial-gradient(circle,#31433b 0px,#31433b 3px,#3a4d43 4px,#31433b 5px);display:grid;place-items:center;transform:rotate(-12deg);box-shadow:7px 12px 20px #20302222}.vinyl span{width:93px;height:93px;background:#e5bd91;color:#4a4f3c;border-radius:50%;display:grid;place-content:center;text-align:center;font-size:9px;letter-spacing:1px;line-height:1.7}.musicart i{position:absolute;font-size:75px;right:25px;top:-30px;color:#7b9979;font-style:normal}.musicart small{position:absolute;bottom:10px;right:15px;font-size:7px;letter-spacing:1px;color:#7f917b}#message{min-height:30px;font-size:11px;color:var(--green)}.tabs{display:flex;gap:9px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:30px}.tabs button{padding:11px 18px;background:transparent}.tabs .active{background:var(--green);color:white;border-color:var(--green)}.sectionhead{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:20px}h2{font-size:29px;letter-spacing:-1px;line-height:1.3;margin:8px 0}h3{font-size:21px;letter-spacing:-.5px;margin:10px 0}h4{font-size:14px}.twocol{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{background:white;border:1px solid var(--line);border-radius:10px;padding:25px;margin-bottom:20px;min-width:0}.metronome{text-align:center;padding-top:25px}.bpmrow{display:flex;justify-content:center;align-items:center;gap:25px;margin-top:18px}.bpmrow input{font-size:72px;width:170px;text-align:center;border:0;font-weight:450;padding:0;background:transparent;appearance:textfield;letter-spacing:-5px}.bpmrow input::-webkit-inner-spin-button{appearance:none}.bpmrow button{font-size:22px;width:42px;padding:3px}.muted{font-size:9px;color:var(--muted);letter-spacing:2px}.beats{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:25px auto}.beats span{width:32px;height:32px;border:1px solid var(--line);border-radius:50%;display:grid;place-content:center;color:#a5afa2;font-size:10px}.beats .lit{background:var(--accent);border-color:var(--accent);color:#5c4d3c}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}label{display:block;font-size:11px;font-weight:600;color:#7b887d;margin-bottom:16px}input,select,textarea{display:block;width:100%;border:1px solid var(--line);border-radius:5px;background:#fdfefa;color:var(--ink);padding:9px 10px;margin-top:6px;font-size:12px;min-width:0}textarea{min-height:80px;resize:vertical}input[type=checkbox]{width:auto;margin:0}.check,.inline{display:flex;align-items:center;gap:8px}.inline{margin:0}.inline input,.inline select{width:auto;margin:0}.hint{font-size:11px;color:var(--muted)}.note{padding:15px;background:#f0f3e9;color:#85917d;border-radius:6px;font-size:11px}.theorycontrols{display:flex;gap:20px;flex-wrap:wrap}.theorycontrols label{min-width:150px;margin:0;flex:1}.notepills{display:flex;gap:6px;flex-wrap:wrap;margin:15px 0}.notepills button{background:#edf2e6;border-color:#dce5d1;color:var(--green)}.keyboard{height:180px;position:relative;min-width:600px;max-width:900px;margin:25px auto}.key{position:absolute;border-radius:0 0 6px 6px;padding:0 0 10px;display:flex;align-items:end;justify-content:center;cursor:pointer;font-size:9px}.key.white{height:170px;background:#fefefb;z-index:1}.key.black{height:100px;background:#34453e;color:#dce5dd;z-index:2}.key.white.selected{background:#dfebd7}.key.black.selected{background:#688b6a}.key.rootkey{border-bottom:5px solid var(--accent)}.fifths{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;margin:15px 0}.fifths .active{background:var(--green);color:white}.fretwrap{overflow:auto}.fretrow{display:grid;grid-template-columns:60px repeat(16,55px);gap:0;min-width:940px}.fretrow>*{border:1px solid #e3e4d8;border-radius:0;padding:13px 4px;text-align:center;font-size:10px;background:#f4f1e5}.fretrow>b{display:grid;place-content:center;background:#edf1e8}.fretrow.header span{background:white;border:0;color:var(--muted);padding:10px}.fretrow button{background:linear-gradient(#f8f5ea 47%,#d7cbb5 49%,#d7cbb5 51%,#f8f5ea 53%);color:#beb5a4}.fretrow button.inset{background:#dfead9;color:#4c7256;font-weight:750}.fretrow button.rootfret{background:var(--green);color:white}.clock{font-size:65px;letter-spacing:-3px;font-weight:450;margin:20px 0}.exercise{padding:15px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:15px}.exercise p{font-size:12px;color:var(--muted);margin:3px 0}.exercise small{color:#9ba48f;font-size:10px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:11px;text-align:left}td,th{border-bottom:1px solid var(--line);padding:12px;vertical-align:top}th{color:#8b9788;background:#f4f6ef;font-size:10px}.help{padding:30px 0 45px;max-width:850px}.help p{font-size:12px;color:var(--muted)}footer{padding:20px 26px;border-top:1px solid var(--line);font-size:10px;color:var(--muted)}[hidden]{display:none!important}.guide{max-width:850px;margin:auto;padding:40px 26px}.guide h1{font-size:40px}.guide h2{font-size:24px;margin-top:35px}.guide p,.guide li{color:var(--muted);font-size:13px}@media(max-width:700px){header{padding:15px;flex-wrap:wrap}.brand{font-size:17px}main{padding:0 15px}.hero{grid-template-columns:1fr;padding:30px 0 15px}.hero h1{font-size:44px}.musicart{display:none}.twocol{grid-template-columns:1fr}.tabs{gap:6px}.tabs button{font-size:10px;padding:8px 10px}.sectionhead{flex-wrap:wrap}h2{font-size:25px}.panel{padding:20px;overflow:auto}.bpmrow{gap:10px}.bpmrow input{font-size:64px;width:150px}.formgrid{gap:0 12px}.inline input{max-width:110px}.theorycontrols{gap:12px}.theorycontrols label{min-width:120px}.clock{font-size:55px}}
