.btnlink:hover,button:hover{box-shadow:0 1px 4px rgba(0,0,0,.08)}#appHeader,#wrap,.links{display:flex}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#222;background:#faf9f5}.btnlink,button{background:#fcfbe3;cursor:pointer;font-weight:600}#wrap{flex-direction:column;height:auto}#controls{max-width:1000px;margin:10px auto;align-items:center;gap:10px}button{font-size:.9em;border:1px solid #ddd;border-radius:999px;margin:0 5px 0 10px;padding:12px 16px}.meta{font-size:.8em;color:#666}.links{text-align:center;margin-top:10px;flex-wrap:wrap;gap:10px;justify-content:center}.btnlink{display:inline-block;border:1px solid #ddd;border-radius:999px;padding:8px 14px;font-size:.9em;text-decoration:none;color:#222;transition:box-shadow .2s}.btnlink:hover{text-decoration:none}#appHeader{align-items:center;gap:10px;padding:10px 14px;background:#323326}#brand{font-size:18px;font-weight:700;color:#fff;letter-spacing:.2px}
#brand .sub{font-family:'Nunito',system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:#d8d7af}#brand .sub2{color:#8a7571}#brand .text{color:#ddd;font-weight:300;padding-left:10px}#brand a{color:#fff;text-decoration:none}.card{width:980px;background:#fff;border:1px solid #eee;border-radius:16px;box-shadow:0 2px 5px rgba(0,0,0,.08);padding:18px 18px 8px;margin:0 auto}.progression{color:#cb443d;font-size:clamp(28px,6vw,56px);text-align:center;font-weight:800;letter-spacing:.5px;margin:8px 0 12px}.sep{opacity:.5}.section{max-width:1000px;margin:0 auto;border-top:1px dashed #eee;padding:14px 4px}.section h3{margin:0 0 8px;color:#6f5e5b;font-size:16px}.notes{display:grid;grid-template-columns:1fr;gap:8px}.note-line{padding:8px 10px;background:#fcfcfc;border:1px solid #f0f0f0;border-radius:10px}.note-chord{font-weight:700;margin-right:6px}.info{line-height:1.55}details {width: 100%;margin: 1em auto;}summary {cursor: pointer; text-decoration: none;}.faq {margin-top: 5px; padding: 10px; border: 1px solid #ddd; border-radius: 8px;}.faq h2 {margin: 0 0 5px; font-size: 1.1em;}.faq h3 {margin: 10px 0 5px; font-size: 1em;}.faq p, .faq li {line-height: 1.5;}.muted{color:#727272}.hidden{display:none}
 /* ===== Speed selector styling ===== */
#controls label {
  font-family: "Nunito", sans-serif;
  font-size: 0.95em;
  color: #444;
  margin-left: 10px;
}

#controls select {
  font-family: "Nunito", sans-serif;
  font-size: 0.95em;
  background: #2e2e2e;
  color: #fff;
  border: 1px solid #555;
  border-radius:16px;
  padding: 4px 8px;
  margin-left: 4px;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}

#controls select:hover {
  border-color: #888;
}

#controls select:focus {
  outline: none;
  border-color: #666;
  box-shadow: 0 0 0 2px rgba(0,0,0,0.1);
}

  /* Beat pulse UI */
  #beatWrap {
    display:inline-flex; align-items:center; justify-content:center;
    width:26px; height:26px; margin-left:10px; margin-right:10px; vertical-align:middle;
  }
  #beatDot {
    width:10px; height:10px; border-radius:50%;
    background: currentColor; opacity:0.45; transform: scale(1);
    transition: transform 90ms ease, opacity 90ms ease;
  }
  /* Flash on beat */
  #beatDot.on { transform: scale(1.5); opacity:1; }

  /* Respect reduced motion */
  @media (prefers-reduced-motion: reduce) {
    #beatDot { transition: none; }
  }
@media (max-width: 1020px) {
.card{max-width:92%;padding:18px 2% 8px;}}