Take web captions into a format built for typesetting, then style them properly.
Open a project in the editor and go to Captions. You can start from a video you are captioning, or from nothing at all if you only need the file converted.
Bring in the VTT file. The cues and their timings are read in as they are, so nothing is re-timed and nothing is re-transcribed.
Export as ASS. You can also burn the captions into the video instead if you would rather they could never go missing.
WebVTT has styling, but it is styling for a web page: CSS applied through cue selectors, which the platform hosting the video has to support and most do not. Advanced SubStation Alpha puts the appearance in the subtitle file itself, so it renders identically in any player that reads it.
That is the reason to make this trip: you have captions that came from a web workflow and you want them to look like something specific in a desktop player, or you want them burned into the picture with a font you chose.
Cue text and timings carry across cleanly. WebVTT positioning does not map one-to-one onto ASS margins and alignment, so anything you had deliberately placed is worth checking rather than assuming.
Because WebVTT styling lives in CSS on the page, so it only works where you control the page. ASS carries its appearance inside the subtitle file, which survives being handed to a player or burned into the video.
Partly. WebVTT line and position settings do not map exactly onto ASS alignment and margins, so check any caption you had deliberately moved.
Free, in the browser, and the captions can be burned into the video in the same place.