#rf-play {overflow-anchor:none}
/* A correct answer earns a short, non-blocking celebration. */
#rf-stage[data-solved="true"] .rf-machine-success {
  position:fixed;
  z-index:40;
  top:max(1rem, env(safe-area-inset-top));
  left:50%;
  display:flex;
  align-items:center;
  gap:.7rem;
  width:max-content;
  max-width:calc(100vw - 3rem);
  margin:0!important;
  padding:.75rem 1.35rem;
  border:2px solid #2e7052;
  border-radius:999px;
  background:#fff5c7;
  color:#174c38;
  box-shadow:0 5px 0 #749173,0 12px 30px #17392d66;
  font-size:clamp(1.15rem,4vw,1.45rem);
  line-height:1.2;
  text-align:center;
  pointer-events:none;
  transform:translateX(-50%);
  animation:rf-celebration-pop .7s cubic-bezier(.2,.8,.2,1) both;
}
#rf-stage[data-solved="true"] .rf-machine-success > span {
  width:2rem;height:2rem;flex:none;
  background:#2b8055;color:white;font-size:1.15rem;
}
#rf-stage[data-solved="true"] .rf-machine-success::before,
#rf-stage[data-solved="true"] .rf-machine-success::after {
  content:'✦';position:absolute;top:-.65rem;color:#f0b72e;
  font-size:1.65rem;line-height:1;text-shadow:0 1px 0 #8b5716;
  animation:rf-celebration-sparkle .8s ease-out both;
}
#rf-stage[data-solved="true"] .rf-machine-success::before {left:-.5rem}
#rf-stage[data-solved="true"] .rf-machine-success::after {right:-.5rem;animation-delay:.12s}
@keyframes rf-celebration-pop {
  0% {opacity:0;transform:translate(-50%,-12px) scale(.8)}
  55% {opacity:1;transform:translate(-50%,0) scale(1.08)}
  100% {opacity:1;transform:translate(-50%,0) scale(1)}
}
@keyframes rf-celebration-sparkle {
  0% {opacity:0;transform:scale(.2) rotate(-30deg)}
  50% {opacity:1;transform:scale(1.3) rotate(15deg)}
  100% {opacity:1;transform:scale(1) rotate(0)}
}
@media (prefers-reduced-motion:reduce) {
  #rf-stage[data-solved="true"] .rf-machine-success,
  #rf-stage[data-solved="true"] .rf-machine-success::before,
  #rf-stage[data-solved="true"] .rf-machine-success::after {animation:none}
}
