Everything lives in one script-free .riv: six artboards, one of them a reusable Mark component nested into the loader and the empty state, and five state machines. View models and data binding with converter chains (range mappers, interpolators, to-string, boolean negate), listeners that write view model values, state actions that report status back to the page, layered state machines, trim and dash paths, clipping and an even-odd hawse hole.