function rain(k) {
d3.select(svg)
.append("text")
.style("font", "25px sans-serif")
.attr("x", width * Math.random())
.attr("y", -10 - Math.random() * 300)
.attr("dy", "0.35em")
.attr("text-anchor", "middle")
.attr("fill", "black")
.attr("opacity", 1)
.text(String.fromCodePoint(parseInt(k, 16)))
.transition()
.duration(4000)
.ease(t => (t < .8 ? d3.easeBounce(t) : 0))
.attr("y", height - 10)
.remove();
}