.blog-list h1 {
  margin-bottom: 20px;
}

.blog-list li {
  display: flex;
  align-items: baseline;
  margin: 20px 0;
}

.blog-list .date {
  white-space: nowrap;
  font-weight: 300;
  font-family: monospace;
  margin-right: 13px;
  width: 90px;
  text-align: right;
}

.blog-list .title a {
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 0.2em;
  text-decoration-color: var(--color-text-sub);
  letter-spacing: 0.03em;
}

.blog-list .title a:hover {
  text-decoration-color: var(--color-text-main);
}

.blog-article .date {
  font-weight: 300;
  font-family: monospace;
  color: var(--color-text-sub);
  margin: 8px 0 30px;
}

.blog-article .body {
  line-height: 1.8;
}

.blog-article .body p {
  margin: 1.2em 0;
}

.blog-article .body h2 {
  font-family: Inter, sans-serif;
  font-weight: 900;
  font-size: 1.5em;
  letter-spacing: -0.01em;
  margin: 1.8em 0 0.6em;
}

.blog-article .body h3 {
  font-weight: 700;
  font-size: 1.15em;
  margin: 1.6em 0 0.5em;
}

.blog-article .body a {
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 0.2em;
  text-decoration-color: var(--color-text-sub);
}

.blog-article .body a:hover {
  text-decoration-color: var(--color-text-main);
}

.blog-article .body code {
  font-family: monospace;
  background: var(--color-text-sub);
  color: var(--color-background);
  padding: 0.1em 0.4em;
  border-radius: 4px;
}

.blog-article .body iframe {
  display: block;
  margin: 1.5em 0;
}

.blog-article .body img {
  display: block;
  max-width: 100%;
  margin: 1.5em 0;
  border-radius: 4px;
}

.blog-article .body figure {
  margin: 1.5em 0;
}

/* Inside a <figure>, the figure itself carries the spacing — an img
   margin here would just double up with figcaption's margin-top. */
.blog-article .body figure img {
  margin: 0;
}

.blog-article .body figcaption {
  margin-top: 0.6em;
  font-size: 0.85em;
  line-height: 1.6;
  color: var(--color-text-sub);
}

/* A bare browser-default <hr> (beveled, full-strength) reads as loud
   against the rest of the page's restraint. A thin, low-opacity line
   with room around it reads as a quiet break instead of a shout. */
.blog-article .body hr {
  border: none;
  border-top: 1px solid var(--color-text-sub);
  opacity: 0.25;
  margin: 2.5em 0;
}

.blog-article .back {
  margin-top: 40px;
}

.blog-article .back a {
  text-decoration: underline;
  text-decoration-style: dotted;
  text-underline-offset: 0.2em;
  text-decoration-color: var(--color-text-sub);
}

.blog-article .back a:hover {
  text-decoration-color: var(--color-text-main);
}
