Dan,
You're running into an issue because unify isn't an only child---it's a sibling of the inline style element.
The contract of unify is basically, "make all of the children here look like these data through this template".
It's expected to be the only child, so the rendering code will only look for a unify in that position:
in your case, unify is the second child (behind the style element) so Singult doesn't notice that it's not a hiccup vector and blows up.
If you wrap the unify in a :g (svg group element) things work fine.
Also, I wouldn't really use Singult directly---you can still use bind! even if you aren't referencing any atoms within the body.
That will defer to Singult/merge! behind the scenes, but it has some extra convenience like allowing a CSS selector string as the first arg so you don't have to reach out to js/document.
Finally, the inline CSS strings in the examples are because the Clojure Hiccup library doesn't support maps---Singult does, so you can clean them up into {:style {:display "block"}} or whatever if you want.
best,
Kevin