/* v58.79 – independent error-motion preferences. Never hide error messages,
   highlighted last moves, scoring, rewards or valid chess-piece animation. */
html[data-puzzle-error-shake-enabled="false"] body.puzzle-page-body .puzzle-board-shell.is-wrong,
html[data-puzzle-error-shake-enabled="false"] body.puzzle-page-body .puzzle-wrong-move .puzzle-board-shell {
  animation: none !important;
  translate: none !important;
}
/* Chessground animates the rejected move back to its square as well. */
html[data-puzzle-error-shake-enabled="false"] body.puzzle-page-body .puzzle-wrong-move piece.anim {
  transition: none !important;
}
html[data-mastery-error-shake-enabled="false"] .mastery-lesson-board-frame.is-wrong {
  animation: none !important;
  translate: none !important;
}
html[data-mastery-error-shake-enabled="false"] .mastery-lesson-board-frame.is-wrong piece.anim {
  transition: none !important;
}
/* Placement did not shake its board; it reacted via the animated companion.
   Suppress ONLY the wrong-answer beat, preserving normal character movement. */
html[data-placement-oops-motion-enabled="false"] .mastery-placement-dialog [data-mastery-mascot][data-mood="oops"] .mastery-companion-svg {
  animation: none !important;
  transform: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .puzzle-board-shell.is-wrong, .mastery-lesson-board-frame.is-wrong { animation: none !important; }
  .mastery-placement-dialog [data-mastery-mascot][data-mood="oops"] .mastery-companion-svg { animation: none !important; }
}

.km-motion-group{border:1px solid var(--border,#cbded4);border-radius:15px;padding:12px;margin:12px 0;background:color-mix(in srgb,var(--surface-subtle,#edf8f0) 36%,transparent)}
.km-motion-group h3{margin:0 0 4px;font-weight:900;font-size:.91rem}
.km-motion-group p{margin:0 0 10px;color:var(--muted,#607d70);font-size:.74rem}
.km-motion-group label{display:flex;align-items:center;gap:10px;padding:9px 5px;cursor:pointer;border-top:1px solid var(--border,#d8e7df)}
.km-motion-group label:first-of-type{border-top:0}
.km-motion-group label input{flex:0 0 auto;width:19px;height:19px;accent-color:var(--brand,#148c6b)}
.km-motion-group label span{display:grid;gap:2px;line-height:1.5}
.km-motion-group label strong{font-size:.82rem;font-weight:850}
.km-motion-group label small{color:var(--muted,#647b70);font-size:.71rem}
.km-profile-motion-settings{display:grid;gap:7px;border:1px solid var(--border,#cbded4);padding:12px;border-radius:14px}
.km-profile-motion-settings>small{color:var(--muted,#617b70);font-size:.76rem}
.km-profile-motion-settings .switch-row{margin:0;padding-block:6px}
html[data-theme="dark"] .km-motion-group{background:#1a3837;border-color:#3a625b}
html[data-theme="dark"] .km-motion-group p,html[data-theme="dark"] .km-motion-group label small{color:#b4cfc6}
