Solid') { // Draw solid lines for "phrases" in Japenese IME
        canvasCtx.lineWidth = (underlineThickness == 'Thick') ? thickWidth : thinWidth;
        canvasCtx.beginPath();
        canvasCtx.moveTo(lineStartX, lineY);
        canvasCtx.lineTo(lineEndX, lineY);
        canvasCtx.stroke();
      }

      canvasCtx.restore();
    }

    function render(timestamp) {
      if (!firstRenderTime) {
        firstRenderTime = timestamp;
      }
      const elapsedTime = timestamp - firstRenderTime;

      // C