/* NORMALIZE */

*, *::before, *::after {
    box-sizing: border-box;
}

:where(html) {
    line-height: 1.15
}

:where(h1) {
    -webkit-margin-after: .67em;
    -webkit-margin-before: .67em;
    font-size: 2em;
    margin-block-end: .67em;
    margin-block-start: .67em
}

:where(dl, ol, ul) :where(dl, ol, ul) {
    -webkit-margin-after: 0;
    -webkit-margin-before: 0;
    margin-block-end: 0;
    margin-block-start: 0
}

:where(hr) {
    box-sizing: initial;
    color: inherit;
    height: 0
}

:where(pre) {
    font-family: monospace, monospace;
    font-size: 1em
}

:where(abbr[title]) {
    text-decoration: underline;
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted
}

:where(b, strong) {
    font-weight: bolder
}

:where(code, kbd, samp) {
    font-family: monospace, monospace;
    font-size: 1em
}

:where(small) {
    font-size: 80%
}

:where(table) {
    border-color: currentColor;
    text-indent: 0
}

:where(button, input, select) {
    margin: 0
}

:where(button) {
    text-transform: none
}

:where(button, input:is([type=button i], [type=reset i], [type=submit i])) {
    -webkit-appearance: button
}

:where(progress) {
    vertical-align: initial
}

:where(select) {
    text-transform: none
}

:where(textarea) {
    margin: 0
}

:where(input[type=search i]) {
    -webkit-appearance: textfield;
    outline-offset: -2px
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
    height: auto
}

::-webkit-input-placeholder {
    color: inherit;
    opacity: .54
}

::-webkit-search-decoration {
    -webkit-appearance: none
}

::-webkit-file-upload-button {
    -webkit-appearance: button;
    font: inherit
}

:where(button, input:is([type=button i], [type=color i], [type=reset i], [type=submit i]))::-moz-focus-inner {
    border-style: none;
    padding: 0
}

:where(button, input:is([type=button i], [type=color i], [type=reset i], [type=submit i]))::-moz-focusring {
    outline: 1px dotted ButtonText
}

:where(:-moz-ui-invalid) {
    box-shadow: none
}

:where(dialog) {
    background-color: #fff;
    border: solid;
    color: #000;
    height: -moz-fit-content;
    height: -webkit-fit-content;
    height: fit-content;
    left: 0;
    margin: auto;
    padding: 1em;
    position: absolute;
    right: 0;
    width: -moz-fit-content;
    width: -webkit-fit-content;
    width: fit-content
}

:where(dialog:not([open])) {
    display: none
}

:where(summary) {
    display: list-item
}

/* DEFAULTS */

cite {
    font-style: normal;
}

a {
    color: inherit;
}

::selection {
    background-color: lemonchiffon;
}

/* PAGE */

.page {
    height: 100%;
}

/* BODY */

.body {
    margin: 0;
    height: 100%;

    display: flex;
    flex-flow: column nowrap;

    font-size: 1.25rem;
    font-family: 'Times New Roman', Times, serif;
    letter-spacing: 0.012em;
    font-size-adjust: 100%; 
    line-height: 1.4;

    background-color: white;
    color: black;
}

@media screen and (prefers-color-scheme: dark) {
    .body {
        background-color: black;
        color: whitesmoke;
    }
}

.body__main {
    padding: 1em;
    flex-grow: 1;
}

.body__footer {
    padding: 1em;
}

/* LIST */

.list {
    padding: 0 1rem;
    margin: 0.5rem 0;
}

/* SECTION */

.section {
    padding: 1em 0;
}

.section__title {
    margin: 0;
}

/* FOOTER */

.footer {
    padding: 1em;
    font-size: 0.9rem;
}

.footer__item {
    font-size: 0.9rem;
}

.footer__shuffle-button {
    all: unset;
    font-size: inherit;
    text-decoration: underline;
    text-underline-offset: 0.1em;
    cursor: pointer;
}

.footer__item:has(.footer__shuffle-button)::after {
    content: ".";
}