Centre block of left-aligned text

This is a very common format for poetry and is easy enough to do these days in HTML/CSS, but how do you do it in LibreWriter without manually setting margins? I first tried a text box, but they seem disconnected from the Styles system. Then I tried a frame which handles styled text fine and can be centred, but the AutoSize option does not actually automatically size the width (lines wrap). It seems you have to manually choose a width, so it’s not much different to having different styles for every poem.

Am I missing something or is Writer just incapable of doing this?

LibreOffice 7.0.4.2

Edit: It looks like this is because I used line-breaks (Shift+Enter). This is also pretty standard for poetry where you want a space between stanzas so it makes sense that the stanza = paragraph. Does this mean I have to recreate everything with two different paragraph styles (poem & stanza-end)? Another annoying and clunky workaround.
Edit 2: Frames are all very well until you get to the end of a page. >_<

##Case 1

You know your poem fits in a page, e.g. its height is smaller than the page height.

Insert a frame which is the simplest way to take into account all your constraints. There two AutoSize boxes, one for the width, one for the height. Make sure you check both.

To avoid issues with the page boundary, tick the Keep inside text boundaries in the Position section.

##Case 2

Your poem may overflow a page. You can’t use a frame.

Create a dedicated paragraph style with an adequate left indent. This left indent is called Before text in the dialog.

This will not center the paragraph but offset it to the right, which is also common in poetry. You can create several paragraph styles with increasing indents: one for the first stanza, one for the second, … to get staggered stanzas.

Staggered stanzas may also be achieved more easily with a bullet list. You customise the list to use bullet None and tune the Position parameters to offsets the list levels. Each stanza is prefixed with Tab characters to assign a list item level and get the offset: first stanza is at level 1 (no Tab), second stanza is at level 2 (one Tab), …

The trick is limited at 10 stanzas but you can cycle the indents.

To show the community your question has been answered, click the ✓ next to the correct answer, and “upvote” by clicking on the ^ arrow of any helpful answers. These are the mechanisms for communicating the quality of the Q&A on this site. Thanks!