html {
    margin: 0;
    padding: 0;
}

body {
    display: flex;
    flex-direction: column;
    max-width: 60ch;
    min-height: 100vh;
    margin: 0 auto;
    padding: 0 4ch;
    color: #323130;
    background-color: #fefdfc;
    font-family: "Hiragino Sans W3", "Noto Sans CJK JP", sans-serif;
}

body > header {
    padding: 1ch 0 0 0;
    display: flex;
    flex-direction: row;
    font-family: "Hiragino Sans W9", "Roboto", "Noto Sans CJK JP", sans-serif;
    font-weight: 900;
    font-size: 3em;
    color: #cfcecd;
}

body > header nav a {
    color: #933;
    text-decoration: none;
}

article {
    margin: 8ex 0;
}

article ~ article {
    padding-top: 2ex;
}

article > header {
    margin: 0 0 2ex 0;
    padding: .5ch;
    font-family: "Hiragino Sans", "Noto Sans CJK JP", sans-serif;
    font-weight: 800;
    font-size: 2em;
    color: #434241;
    background-color: #e7e6e5;
    border: 1px solid #cfcecd;
    border-radius: 4px;
}

article > header a {
    margin-right: .25ch;
    text-decoration: none;
}

article > header a:hover {
    text-decoration: underline;
}

body > footer {
    margin: 0 0 4ex 0;
}

body > footer nav {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1ch;
    font-family: "Hiragino Sans", "Noto Sans CJK JP", sans-serif;
    font-weight: 800;
}

body > footer nav a, body > footer nav span {
    display: block;
    padding: 1ch;
    background-color: #e7e6e5;
    border: 1px solid #cfcecd;
    border-radius: 4px;
}

body > footer nav a {
    text-decoration: none;
}

body > footer nav span {
    color: #cfcecd;
}

body > footer nav .next {
    text-align: right;
}

blockquote, table {
    margin: 2em 2.5em;
}

ul, ol {
    margin: 2em 0;
}

table {
    border-top: #434241 solid 2px;
    border-bottom: #434241 solid 2px;
}

th {
    padding-right: 1em;
    border-bottom: #434241 solid 1px;
}

pre {
    font-size: .95rem;
}

pre:has(code) {
    padding: 1ch;
    border: 1px solid #efeeed;
    border-radius: 4px;
}

code {
    font-family: "Menlo", "Noto Sans Mono CJK JP", monospace;
}

a {
    color: #933;
}

a:hover, a:hover:visited {
    color: #c33;
}

article section a:visited {
    color: #b88;
}

th, strong {
    font-family: "Hiragino Sans W6", "Noto Sans CJK JP", sans-serif;
    font-weight: 600;
}
