The HTML is there from the server-side but for the icon isn't there. This causes a visible reflow to happen.
Alternatively, reserve the space in some other way to at least avoid a reflow for the common case.
If loading the icon css from the top, consider removing @embed. (The space is already reserved by the padding.)
The raw link is already clickable currently before the JS arrives, but it's not a prominent click target without the icon. Making the icon appear earlier will make the link prominent earlier as well. In that case it may make sense to keep the link unclickable (pointer-events: none;) at first and apply a class that removes that style once the added code and event handlers have arrived.