
.alt {
    white-space: collapse nowrap;
}

.alt:has(input:not(:checked))~* {
    display: none;
}

.box {
    box-sizing: border-box;
    padding: .5em;
}

.cap {
    background-color: white;
    box-shadow: 0 0 2px black;
    margin: 2px;
}

.cap.exp {
    max-width: calc(100% - 4px)
}

.exp {
    max-width: 100%;
    width: 100vmin;
}

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

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

.highlight {
    color: red;
}

.l {
    min-width: 12em;
}

.light {
    color: silver;
}

.loading~* {
    display: none;
}

.lowlight {
    color: gainsboro;
}

.m {
    min-width: 9em;
}

.mono {
    font-family: monospace;
}

.nowrap {
    white-space: pre;
}

.overtext {
    text-align: right;
}

.s {
    min-width: 6em;
}

.text {
    text-align: left;
}

.wrap {
    white-space: pre-wrap;
}

.xl {
    min-width: 15em;
}

.xs {
    min-width: 3em;
}

a {
    color: inherit;
}

a:not([href]) {
    font-weight: bolder;
}

a[href]:hover img {
    transform: scale(1.1);
}

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

a[role] {
    text-decoration-line: none;
}

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

address {
    color: silver;
    font-family: monospace;
    text-align: right;
}

article blockquote {
    margin: 0 2em;
}

article figcaption {
    margin: 0 2em;
    text-indent: 1em;
}

article figcaption:has(q:first-child) {
    text-indent: 0;
}

article figure {
    margin: 0;
}

article p {
    margin: 0;
    text-indent: 1em;
}

article p:has(q:first-child) {
    text-indent: 1em;
}

body {
    background-color: whitesmoke;
}

dfn {
    font-style: inherit;
}

dfn[title]:hover {
    text-decoration-line: underline;
    text-decoration-style: dotted;
}

dialog {
    background-color: inherit;
    border: none;
}

fieldset:has(legend) {
    border: thin solid silver;
    margin: 0 0 .5em 0;
    padding: .25em .5em .5em;
}

fieldset:not(:has(legend)) {
    border: none;
    margin: 0;
    padding: 0;
}

figcaption {
    left: 0;
    position: sticky;
}

figure {
    overflow-x: auto;
    overflow-y: visible;
}

figure caption {
    caption-side: bottom;
    font-size: smaller;
}

figure figure {
    display: inline-block;
    margin: 0;
    max-width: 100%;
    vertical-align: top;
}

figure td {
    border: thin solid gainsboro;
    padding-inline: .25em;
}

figure th {
    border: thin solid transparent;
    padding-inline: .25em;
}

footer::after {
    content: "\00A9\ 2020\2013 2025";
    font-family: monospace;
}

footer[data-copyright]::after {
    content: "\00A9\ " attr(data-copyright);
    font-family: monospace;
}

header a+address {
    margin-block-start: 1rem;
    line-height: 1rem;
}

header a+h1 {
    margin-block: 1.5rem 0;
}

header a+hr {
    margin-block-start: 2rem;
}

header hr {
    border-color: gainsboro ghostwhite white;
    border-style: solid;
    border-width: thin;
    margin-block: 0;
}

header img {
    height: 2rem;
    left: 0;
    object-fit: cover;
    position: absolute;
    top: 0;
    width: 3rem;
}

hgroup img {
    rotate: 15deg;
}

h1 {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

h1 a:not(:hover) {
    text-decoration-line: none;
}

hr {
    border: none;
}

i {
    font-style: inherit;
    text-decoration-color: gold;
    text-decoration-line: underline;
    text-decoration-thickness: 2px;
}

mark {
    background-color: inherit;
    text-decoration-color: yellow;
    text-decoration-line: underline;
    text-decoration-thickness: .5em;
    text-underline-offset: -75%;
}

menu {
    background-color: white;
    box-shadow: 0 0 2px black;
    display: inline-flex;
    flex-wrap: wrap;
    font-family: monospace;
    margin: 2px;
    padding: .5em;
}

menu a {
    padding: .5em;
}

menu li {
    list-style-type: none;
}

menu li:not(:first-child)::before {
    content: "\007C";
}

menu li[value]::before {
    content: attr(value);
}

nav menu li:not(:first-child)::before {
    content: "\00B7";
}

table ol,
table ul {
    padding-inline: 2em 1em;
}
