* {
    margin: 0;
    padding: 0;
    font-size: min(1rem, calc(100vw / (76 * 0.6)));
    font-family: "Noto Sans Mono", "Courier New", Courier, monospace;
}

::selection {
    background: #3281ea;
    color: #ffffff;
}

body {
    background-color: rgb(33, 37, 41);
    color: rgb(222, 226, 230);
    counter-reset: h2;
    width: 72ch;
    margin: 0 auto;
    padding-inline: 2ch;
    counter-reset: h2 figure;
    margin-top: 1lh;
}

body > * {
    margin-left: 3ch;
    margin-bottom: 1lh;
}

li {
    margin-left: 3ch;
    padding-left: 2ch;
    margin-bottom: 1lh;
}

ul {
    list-style-type: "* ";
}

ul li {
    padding-left: 1ch;
}

a,
a:visited {
    color: rgb(110, 168, 254);
}

a:hover {
    color: rgb(139, 185, 254);
}

h2 {
    counter-reset: h3;
}

h2:not(.plain) {
    counter-increment: h2;
    padding-left: 4ch;
    text-indent: -4ch;
}

h2:not(.plain)::before {
    content: counter(h2) ".";
    margin-right: 2ch;
}

h3 {
    counter-reset: h4;
}

h3:not(.plain) {
    counter-increment: h3;
    padding-left: 7ch;
    text-indent: -7ch;
}

h3:not(.plain)::before {
    content: counter(h2) "." counter(h3) ".";
    margin-right: 2ch;
}

h4:not(.plain) {
    counter-increment: h4;
    padding-left: 10ch;
    text-indent: -10ch;
}

h4:not(.plain)::before {
    content: counter(h2) "." counter(h3) "." counter(h4) ".";
    margin-right: 2ch;
}

h2,
h3,
h4,
h5,
h6 {
    margin-left: 0;
    font-size: 1rem;
    font-weight: bold;
}

h1 {
    margin-left: 0;
    font-size: 1rem;
    font-weight: bold;
    text-align: center;
}

dt {
    display: inline;
    font-weight: bold;
}

dd {
    display: inline;
    margin: 0;
}

dd:has(+ dt)::after {
    content: "";
    display: block;
    padding-top: 1lh;
}

dd p:first-child {
    display: inline;
    margin: 0;
    padding-left: 1ch;
}

dd p + p {
    display: block;
    margin: 1lh 0 0 2em;
}

.center {
    display: flex;
    align-items: center;
    flex-direction: column;
    margin-left: 0;
}

.ascii-frame {
    position: relative;
    display: inline-block;
}

.ascii-frame img {
    position: absolute;
    top: 1lh;
    left: 1ch;
    width: 20ch;
    height: 9lh;
    object-fit: cover;
}

.nf {
    display: inline-block;
    width: 0;
    overflow: visible;
    white-space: nowrap;
    font-size: 1em;
}

figure {
    margin-left: 0;
}

figure > div {
    margin-left: 3ch;
    margin-bottom: 1lh;
}

figcaption > * {
    margin-bottom: 1lh;
}

code {
    white-space: nowrap;
}
