
.bottom-sticky {
    bottom: 0;
    position: sticky;
}

.box {
    box-sizing: border-box;
    margin: .25em auto;
    max-width: 120vmin;
    width: 100%;
}

.can {
    overflow: auto;
}

.cap {
    background-color: white;
    box-shadow: 0 0 .1rem black;
    margin-block: .25em;
    padding: .5em;
}

.cap hr {
    border-style: dotted none;
}

.copyright::after {
    content: "Copyright \00A9\ 2020\2013 2024";
    display: block;
    font-size: 75%;
    margin-inline: 2.5rem;
}

.copyright[data-ver]::after {
    content: "Copyright \00A9\ " attr(data-ver);
}

.design {
    text-decoration: none;
}

.exp {
    box-sizing: border-box;
    width: 100%;
}

.expless {
    box-sizing: border-box;
    width: 38.2%;
}

.g-recaptcha:empty::before {
    content: "loading\2026";
}

.google-auto-placed {
    background-image: url("image.svg");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 25% 25%;
    box-shadow: inset 0 0 .25rem silver;
}

.google-auto-placed ins[data-ad-status="unfilled"] {
    display: none !important;
}

.hidden {
    display: none;
}

.mono {
    font-family: monospace;
}

.nowrap {
    overflow: auto;
    white-space: pre;
    word-break: keep-all;
}

.sans {
    font-family: "Josefin Sans", sans-serif;
}

.ship {
    font-family: cursive;
}

.slab {
    font-family: "Josefin Slab", serif;
}

.sticky {
    left: 0;
    position: sticky;
    z-index: 1;
}

.top-sticky {
    position: sticky;
    top: .5em;
    z-index: 1;
}

.wrap {
    white-space: pre-wrap;
    word-break: break-all;
}

a {
    color: black;
}

a[href]:not(:hover) {
    text-decoration-color: silver;
}

a[target="_blank"]::after {
    background: center / contain no-repeat url("blank.svg");
    content: "\3000";
    display: inline-block;
}

body {
    background-color: whitesmoke;
    font-family: "Josefin Slab", serif;
}

body footer {
    padding-block: .25em;
}

body header a {
    position: absolute;
    top: 0;
    z-index: 1;
}

body header a+address {
    line-height: 1.25em;
    position: relative;
    top: .25em;
}

body header address {
    text-align: right;
}

body header address+hr {
    margin-block-start: 0;
}

body header h1 {
    line-height: 1.25em;
    margin-block: 1em 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body header img {
    object-fit: cover;
}

body header:has(h1) img {
    rotate: 10deg;
}

button, input, select {
    font-family: monospace;
}

button.design {
    background-color: #00000000;
    border: none;
    padding: 0;
}

details>summary {
    list-style-type: none;
}

details>summary::-webkit-details-marker {
    display: none;
}

details>summary~* {
    padding-inline: 1em;
}

details>summary::before {
    content: "\FE62";
    display: inline-block;
    font-family: cursive;
    line-height: 1em;
    text-align: center;
    width: 1em;
}

details[open]:not(.design) {
    padding-block-end: 1em;
}

details[open]>summary::before {
    content: "\FE63";
}

details.design>summary~* {
    display: none;
}

details.design>summary::before {
    content: "\3006";
}

details.design[open]>summary::before {
    content: "\3000";
}

dialog.design {
    background-color: #00000000;
    border: none;
}

em {
    font-family: "Noto Color Emoji", emoji;
    font-style: unset;
}

fieldset {
    border-style: solid;
    border-width: thin;
    margin: .5em 0;
}

form input {
    margin-block: .25em;
}

h1, h2, h3, h4, h5, h6 {
    font-family: "Josefin Sans", sans-serif;
}

hr {
    border-color: gainsboro ghostwhite white;
    border-style: solid solid solid none;
    border-width: thin;
}

li {
    margin: .25em .25em .25em 0;
}

menu {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    list-style-type: none;
    margin: 0;
    padding: 0;
}

menu a[href]:not(:hover) {
    color: silver;
    text-decoration: none;
}

ol {
    list-style-type: lower-roman;
}
