body {
    border: thin solid black;
    font-family: "Palatino Linotype", Palatino, "Times New Roman", serif;
    line-height: 1.5;
    margin: 1em auto;
    padding: 1em;
    max-width: 80ch;
}

header, h2, h3, section.scene > div.stagedir, footer {
    text-align: center;
}

header > hgroup {
    font-variant: small-caps;
    letter-spacing: 0.25em;
}

header > hgroup > p.author {
    font-size: x-large;
}

nav#toc, section.act {
    border-top: medium solid black;
}

nav#toc a {
    color: slateblue;
    text-decoration: none;
}

section.scene > h3 {
    border: thin solid red;
    padding: 0.5em;
}

div.speaker {
    font-weight: bold;
    text-transform: uppercase;
}

.stagedir {
    color: gray;
    font-style: italic;
}

.stagedir::before {
    content: "(";
}

.stagedir::after {
    content: ")";
}

div.speech, section.scene > div.stagedir {
    padding: 1em;
}

div.speaker > span.stagedir {
    font-weight: normal;
    text-transform: none;
}

section.scene > div.speech:nth-of-type(odd) {
    background-color: aliceblue;
    border-top: medium solid slateblue;
}

section.scene > div.speech:nth-of-type(even) {
    border-top: medium solid silver;
}

section.scene {
    counter-reset: line-number;
}

div.speech > div.line::after {
    content: counter(line-number);
    counter-increment: line-number;
    float: right;
}

div.line:hover, div.stagedir:hover, div.line:hover > span.stagedir {
    background-color: crimson;
    color: white;
}

section.scene > h3 > a {
    color: black;
    text-decoration: none;
}

section.scene > h3 > a:hover {
    text-decoration: underline;
}

section.scene > h3 > a:hover::before {
    color: silver;
    content: "#";
    display: inline-block;
    margin-left: -1em;
    width: 1em;
}

section.scene > div:last-of-type:nth-of-type(even) {
    border-bottom: medium solid slateblue;
}

section.scene > div:last-of-type:nth-of-type(odd) {
    border-bottom: medium solid silver;
}

footer {
    padding-top: 1em;
}