@font-face {
  font-family: "Mansalva";
  src: url("fonts/mansalva.woff2") format("woff2");
  font-display: swap;
}

@font-face {
  font-family: "DejaVu Sans Mono";
  src: url("fonts/dejavu-sans-mono.woff2") format("woff2");
  font-display: swap;
}

:root {
  color-scheme: dark;
  --ink: #f2f2f2;
  --dim: #8c8c8c;
}

html {
  background: #000;
  color: var(--ink);
  font: 15px/1.4 "DejaVu Sans Mono", Menlo, Monaco, Consolas, monospace;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
}

main {
  max-width: 64ch;
  margin: 0 auto;
  padding: 40px 20px 72px;
}

h1 {
  margin: 0 0 0.45em;
  font-family: "Mansalva", cursive;
  font-weight: 400;

  font-size: clamp(96px, 34vw, 236px);
  line-height: 1;
}

h2 {
  margin: 1.5em 0 0.35em;
  font-size: 1.3em;
  font-weight: 400;
  text-transform: uppercase;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}

ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

li {
  padding-left: 4ch;
  text-indent: -4ch;
}

p {
  margin: 0.7em 0 0;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover,
a:focus-visible {
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

:focus-visible {
  outline: 1px dashed var(--ink);
  outline-offset: 2px;
}


.age {
  position: relative;
  text-decoration: underline dotted var(--dim);
  text-underline-offset: 0.2em;
  cursor: help;
}

.age-tip {
  position: absolute;
  bottom: calc(100% + 10px);
  left: 50%;
  translate: -50% 4px;
  padding: 6px 10px;
  border: 1px solid var(--dim);
  background: #000;
  white-space: nowrap;
  text-indent: 0;
  font-variant-numeric: tabular-nums;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.12s, translate 0.12s, visibility 0.12s;
}

.age-tip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  width: 8px;
  height: 8px;
  border: solid var(--dim);
  border-width: 0 1px 1px 0;
  background: #000;
  translate: -50% -50%;
  rotate: 45deg;
}

.age:hover .age-tip,
.age:focus-visible .age-tip,
.age.open .age-tip {
  opacity: 1;
  visibility: visible;
  translate: -50% 0;
}

@media (prefers-reduced-motion: reduce) {
  .age-tip {
    transition: none;
  }
}


.dim {
  color: var(--dim);
}

.brand {
  display: inline-block;
  font-family: "Mansalva", cursive;
  font-size: 56px;
  line-height: 1;
}

.brand:hover {
  text-decoration: none;
}

.crumbs {
  margin-top: 1.2em;
  color: var(--dim);
}

.post-title {
  margin: 0.9em 0 0;
  font-family: inherit;
  font-size: 1.6em;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.16em;
}

.post-meta {
  margin-top: 0.4em;
  color: var(--dim);
}

.post-list li + li {
  margin-top: 0.7em;
}

.prose {
  margin-top: 1.8em;
  line-height: 1.65;
}

.prose > * {
  margin: 1em 0 0;
}

.prose h2 {
  margin-top: 2em;
  font-size: 1.15em;
}

.prose h3 {
  margin-top: 1.6em;
  font-size: 1em;
  font-weight: 400;
  text-transform: uppercase;
}

.prose a {
  text-decoration: underline;
  text-decoration-color: var(--dim);
  text-underline-offset: 0.16em;
}

.prose a:hover {
  text-decoration-color: currentColor;
}

.prose ul li {
  padding-left: 2ch;
  text-indent: -2ch;
}

.prose ul li::before {
  content: "- ";
}

.prose ol {
  padding-left: 3ch;
  list-style: decimal;
}

.prose ol li {
  padding-left: 0;
  text-indent: 0;
}

.prose code {
  padding: 0 0.3em;
  background: #1c1c1c;
}

.prose pre {
  padding: 0.9em 1.5ch;
  overflow-x: auto;
  line-height: 1.5;
  background: #0d0d0d;
  border: 1px solid #333;
}

.prose pre code {
  padding: 0;
  background: none;
}

.prose blockquote {
  padding-left: 2ch;
  border-left: 1px solid var(--dim);
  color: #cfcfcf;
}

.prose figure {
  margin: 1.8em 0 0;
}

.prose img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 1px solid #333;
}

.prose figcaption {
  margin-top: 0.5em;
  color: var(--dim);
}

.prose table {
  width: 100%;
  border-collapse: collapse;
}

.prose th,
.prose td {
  padding: 0.3em 1.5ch 0.3em 0;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px dashed #444;
}

.prose th {
  font-weight: 400;
  text-transform: uppercase;
  color: var(--dim);
}

.prose hr {
  border: 0;
  border-top: 1px dashed #444;
}

.post-nav {
  display: flex;
  justify-content: space-between;
  gap: 4ch;
  margin-top: 3em;
  padding-top: 1em;
  border-top: 1px dashed #444;
  color: var(--dim);
}

.post-nav span:last-child {
  text-align: right;
}

.post-nav a {
  color: var(--ink);
}


.notes {
  margin-top: 1.2em;
  padding-left: 2ch;
  border-left: 1px solid #444;
  font-size: 0.87em;
  line-height: 1.5;
}

.notes[hidden] {
  display: none;
}

.notes p {
  margin: 0 0 0.8em;
}

.notes p:last-child {
  margin-bottom: 0;
}

.notes .k {
  display: block;
  font-size: 0.85em;
  text-transform: uppercase;
  color: var(--dim);
}

.notes a[href]::before {
  display: none;
}

@media (min-width: 1140px) {
  .intro {
    display: grid;
    grid-template-columns: 100% auto;
    column-gap: 3.5ch;
    align-items: start;

    margin-top: 1.95em;
  }

  .intro h2 {
    margin-top: 0;
  }

  .notes {
    width: 24ch;
    margin-top: 0;
  }
}
