Push every lost crate onto a portal across 20 randomized routes, or return home now.
Start the shift, then use Arrow keys or WASD to move. Push every crate onto a portal. Press U to undo or R to restart. Random routes can be skipped without losing the rest of the queue.
20 puzzles ready. Select Start Shift to load a random route.
Pass a serializable seed when you want the same shuffled puzzle order across
sessions or deployments:
Keep metadata in the Server Component and render the interactive block as its client child:
The component provides the interface. Next.js supplies the HTTP 404 behavior
when it is rendered from app/not-found.tsx.
The board responds only while its game region has focus, so arrow keys elsewhere on the page keep their normal behavior.
Default mode contains exactly 20 curated, original, solver-verified puzzles: 4 intermediate, 11 advanced, and 5 expert routes. The layouts are not generated procedurally.
Selecting Start Shift performs the first draw from a seeded shuffle bag. The bag serves every puzzle once before reshuffling, and consecutive cycles avoid repeating the same puzzle at their boundary. Restart and Play Again keep the current puzzle. Skip Puzzle and Next Random Puzzle draw a different queued puzzle, reset the board and counters, and start play immediately.
If seed is omitted, the component creates a runtime seed when Start Shift is
selected. Supplying seed makes the complete order reproducible without doing
random work during server rendering.
Pass level to replace the built-in catalog with one fixed puzzle. Custom mode
disables catalog randomization and does not show Skip Puzzle or Next Random
Puzzle; seed has no effect when level is provided. Invalid moves do not
change the move or push counters, and Undo remains available after completing
the puzzle.
The 404 heading, counters, instructions, state, controls, and Home link are DOM content. The decorative tile board is hidden from assistive technology and a polite live region reports puzzle name, catalog position, difficulty, accepted moves, blocked moves, undo, the new starting position after Restart, and completion. Random puzzle changes happen only after an explicit Start, Skip, or Next action, focus returns to the game region, and no game input is installed globally.