In your current example, the <div class="line"> is unneeded, you could have ".verse p" instead. (I use "poetry" and "stanza" to independently set spacing between stanzas and between poems and normal text.)
And to further simplify, you could discard the "display: block", that's default for <div> and <p> anyway, and use the shortcut notation for margins: "margin: 0; margin-left: 1em". Why did you split the margin-left between ".verse" and ".line p"?
Code:
.verse {
margin-bottom: 0.5em;
}
.verse p {
margin: 0;
margin-left: 1em;
text-indent: -1em;
}