It’s not the border, it’s the top padding you gave to the text of the unfolding node. It affects the size of the element in a way that is called the CSS box model, or how a box size is calculated. And paddings and margins are excluded, so your text, at height:0, is in fact 15px height. So when interaction runs, it starts by displaying the element, from none to block, so you get a “pop” of 15px while the unfolding starts.
Nest your text element in a div and make the interaction affect this div instead. Let the padding in the text element, don’t put up and down margins, padding or borders or you’ll affect its zeroed height again.
You could also decide to not use display:none at all in your interaction, as your zeroed text is invisible anyway. Using display:none helps often to avoid a visual glitch at page load, the block can be rendered open then shrunk. As your page is long and the section low, it should go unnoticed if it happens.