/* v0.2: semantic transformations, not decorative re-entrances. */
#step-4 .solution-turn-runner {
  transform: translate(-50%, -50%);
  opacity: var(--melo-solution-turn-visible, 0);
  pointer-events: none;
  box-shadow: 0 0 0 0.22rem #ff9f0a24;
}

/* The point travels on the original ring; no second, larger orbit. */
#step-4 .solution-turn-orbit { display: none; }
#step-4 .point-60,
#step-4 .point-120 { top: 17.95706%; }
#step-4 .point-240,
#step-4 .point-300 { top: 82.04294%; }

/* A degree label is a stable geometric annotation, not a floating toast. */
#angle-memory-stage .memory-angle-label {
  transform: translate(-50%, -50%);
  opacity: var(--melo-memory-angle-labels-visible, 0);
}

#angle-memory-stage .memory-value-token {
  opacity: 1;
  transform: translate(-50%, -50%);
  clip-path: inset(0 calc((1 - var(--melo-token-reveal, 0)) * 100%) 0 0);
  filter: none;
  text-shadow: none;
}

#angle-memory-stage .memory-token-builder {
  opacity: 1;
  filter: none;
  transform: none;
}

/* The persistent builder becomes its own result. No stacked replacement. */
#angle-memory-stage .memory-token-final {
  display: none;
  visibility: hidden;
  opacity: 0;
  filter: none;
  transform: none;
}

#angle-memory-stage .memory-token-radical {
  opacity: 1;
  clip-path: inset(0 calc((1 - var(--memory-root)) * 100%) 0 0);
}

#angle-memory-stage .memory-token-bar {
  width: 2rem;
  opacity: 1;
  transform: translateX(-50%) scaleX(var(--memory-divide));
}

#angle-memory-stage .memory-token-denominator {
  opacity: 1;
  line-height: 1;
  transform: translate(-50%, -50%);
  clip-path: inset(0 calc((1 - var(--memory-divide)) * 100%) 0 0);
}

#angle-memory-stage .memory-general-template {
  opacity: 1;
  clip-path: inset(0 calc((1 - var(--memory-template)) * 100%) 0 0);
  transform: translate(-50%, -50%);
  filter: none;
  text-shadow: none;
}

@media (prefers-reduced-motion: reduce) {
  /* Keep essential circumference/turn/math explanation on the shared clock.
     No decorative bounce, blur, or entry displacement is introduced here. */
  #angle-memory-stage .memory-angle-label,
  #angle-memory-stage .memory-value-token { transition: none; }
}
