 = 200
    d3.select('#popup')
      .style('visibility', 'visible')
      .style('width', width + 'px')
      .style('left', r.left - width / 2 + shift - 8 + 'px')
      .style('top', r.bottom + 'px')
  }
}

function updatePopup () {
  if (popup) {
    updatePopupBounds()
    const d = popup.node
    let html = `<p>${d.id}${d.abbr ? ' (' + d.abbr + ')' : ''}`
    if (d.aka) html += `<br/><small>a.k.a. ${Array.isArray(d.aka) ? d.aka.join(', ') : d.aka}</small>`
    html += '</p>'
    if (d.synopsis) html +=