body {
    font-family: "PT Serif", "Times New Roman", serif;
    font-variant-numeric: proportional-nums;
    line-height: 1.4;
    color: #272727;
    margin: 1rem 1rem 4rem 1rem;
}
article {
    /* Make this the "closest positioned ancestor" for absolutely positioned
       page numbers and sidenotes. */
    position: relative;
    max-width: 33rem;
    padding-left: 11rem;
    padding-right: 25rem;
    margin: 0 auto;
}
article + article {
    margin-top: 2.5rem;
}
.author {
    font-weight: 600;
    font-size: 1.2rem;
    text-align: center;
}
h1 {
    font-weight: 600;
    font-size: 1.4rem;
    line-height: 1.3;
    text-align: center;
    margin: 1.5rem -6rem 2rem -6rem;
}
h2 {
    font-weight: 600;
    font-size: 1.1rem;
    line-height: 1.3;
    text-align: center;
    margin: 2rem 0 1.5rem 0;
}
h3 {
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.3;
    text-align: center;
    margin: 2rem 0 1.5rem 0;
}
header {
    position: absolute;
    left: 0;
    max-width: 10.5rem;
    font-size: 0.9rem;
    color: #4a4a4a;
}
p {
    text-align: justify;
    margin-bottom: 0;
    margin-top: 0.6rem;
    text-indent: 1.25em;
}
p:first-of-type {
    text-indent: 0;
}
section {
    margin: 2rem 0;
}
a:link {
    color: #2774bc;
}
a:visited {
    color: #93277d;
}
q {
    quotes: none;
    display: block;
    text-indent: 0;
    margin: 0.75rem 2rem;
}
q::before, q::after {
    content: none;
}
.postscript {
    margin: 1rem 0;
    text-align: right;
}
hr {
    margin: 1.5rem 40%;
    border: 1px solid #e7e7e7;
}
figure {
    margin: 1.5rem 0;
    text-align: center;
}
figcaption {
    font-size: 0.9rem;
}
img {
    border: none;
    max-width: 100%;
    height: auto;
}
.page-break {
    margin-top: 0.15rem;
    margin-bottom: 1.2rem;
    display: inline-block;
    width: 0;
}
.page-break:before {
    position: absolute;
    left: 0;
    right: 25rem;
    content: "";
    border-top: 1px solid #e7e7e7;
}
.page-break:after {
    position: absolute;
    left: 0;
    content: attr(title);
    font-style: normal; /* in case it falls inside <em> */
    font-weight: normal; /* in case it falls inside <strong> or heading */
    font-size: 0.9rem;
    color: #4a4a4a;
    text-indent: 0;
}
.footnote {
    float: right;
    clear: right;
    margin: 0.4rem -25rem 0.4rem 0;
    width: 22rem;
    font-size: 0.8rem;
}
.footnote p {
    margin-top: 0;
    text-align: left;
    line-height: 1.2;
}
.footnote-number, .footnote-anchor {
    font-size: 0.7rem;
    vertical-align: super;
    line-height: 0;
}
ul.references {
    list-style: none;
    padding: 0;
}
ul.references li {
    padding-left: 2rem;
    text-indent: -2rem;
    margin-bottom: 0.75rem;
}
/* Tabular data */
table caption {
    text-align: left;
    margin-bottom: 1em;
    font-style: italic;
    font-size: 0.9rem;
}
table th, table td {
    padding: 0.25rem;
}
table th {
    text-align: left;
}
table {
    margin: 1.5rem 2.5rem;
    border-collapse: collapse;
}
/* beware of table-caption-outside.js hackery which applies here */
table caption {
    caption-side: top-outside;
}
div.hacked-table-caption {
    margin: 1.5rem 2.5rem;
    text-align: left;
    font-style: italic;
    font-size: 0.9rem;
}
table thead {
    border-top: 2px solid #aaa;
}
table tbody {
    border-top: 1px solid #777;
    border-bottom: 2px solid #aaa;
}
table.data th + th {
    text-align: right;
}
table.data th.group {
    text-align: center;
    border-bottom: 1px solid #777;
}
table.data td + td {
    text-align: right;
    padding-left: 1rem;
}
table.data .total {
    border-top: 1px solid #777;
}
/* "tabular" as in, not really a table, just using it to achieve a tabular layout */
table.tabular {
    margin: 1.5rem 0;
}
table.tabular tbody {
    border: none;
}

/* Book reviews */
.bookinfo {
    margin-bottom: 1.5rem;
}
.review .author {
    font-weight: normal;
    font-size: 1rem;
    margin-top: 1rem;
    text-align: right;
}

/* Obituaries */
.obituary h1 .dates {
    font-size: 1.2rem;
    font-weight: normal;
}
.obituary .inmemoriam {
    text-align: center;
    font-size: 1.2rem;
    margin: 2rem 0;
}
.obituary .author {
    font-weight: normal;
    font-size: 1rem;
    margin-top: 1rem;
    text-align: right;
}

/* Issue ToC */
.issue {
    margin: 0 auto;
    max-width: 33rem;
}
.contents {
    list-style: none;
    padding-left: 0;
    overflow-x: hidden;
}
.contents li {
    clear: both;
    margin-left: 2.5rem;
    margin-bottom: 1rem;
}
.contents li .author {
    margin-left: -2.5rem;
    text-transform: uppercase;
    font-weight: unset;
    font-size: 0.95rem;
    letter-spacing: 0.05ex;
    word-spacing: 0.1ex;
    text-align: left;
}
.contents li .title {
    padding-right: 0.5rem;
    text-wrap: balance; /* not implemented :-( */
    display: inline;
    /* sit over dot leader */
    background: white;
}
.contents li .review {
    margin-left: -2.5rem;
    padding-right: 0.5rem;
    display: inline;
    /* sit over dot leader */
    background: white;
}
.contents li .reviewer {
    white-space: nowrap;
}
.contents li .obituary {
    margin-left: -2.5rem;
    padding-right: 0.5rem;
    display: inline;
    /* sit over dot leader */
    background: white;
}
.contents li .startpage {
    float: right;
    min-width: 2.5rem;
    text-align: right;
    /* sit over dot leader */
    background: white;
    z-index: 1;
    position: relative;
}
.contents li:after {
    float: left;
    width: 0;
    white-space: nowrap;
    color: #7f7f7f;
    font-size: 0.8rem;
    line-height: 1.55rem;
    content:
        ". . . . . . . . . . . . . . . . . . . . "
        ". . . . . . . . . . . . . . . . . . . . "
        ". . . . . . . . . . . . . . . . . . . . "
        ". . . . . . . . . . . . . . . . . . . . ";
}

/* Journal page */
abbr {
    text-decoration: none;
}
.journal {
    margin: 0 auto;
    max-width: 33rem;
}
.journal p {
    margin-top: 1.5rem;
    text-indent: 0;
}

/* More generous spacing on wide displays */
@media only screen and (min-width: 80rem) {
    article {
        padding-left: 18rem;
        padding-right: 28rem;
    }
    .page-break:before {
        right: 28rem;
    }
    .footnote {
        width: 23rem;
        margin-right: -28rem;
    }
}

/* Tighter spacing on narrow displays */
@media only screen and (max-width: 55rem) {
    article {
        padding-left: 6rem;
        padding-right: 14rem;
    }
    header {
        max-width: 5.5rem;
    }
    .page-break:before {
        right: 14rem;
    }
    .footnote {
        width: 13rem;
        margin-right: -14rem;
    }
}
