popstate always passed back=true, so going forward after back still rotated the cube backwards. Track an incrementing idx in history.state and only mirror the transition when the target entry is actually behind; replaceState calls now preserve the state object instead of wiping it.