@font-face {
  font-family: "0xProto";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/0xproto-regular.woff2") format("woff2");
}

@font-face {
  font-family: "0xProto";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("fonts/0xproto-bold.woff2") format("woff2");
}

:root {
  color-scheme: light;
  --bg: #faf7f0;
  --fg: #1f1b17;
  --font-family: "0xProto", ui-monospace, monospace;
  --muted: #756d63;
  --link: #1f1b17;
  --line: #e5ded2;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--fg);
  font-family: var(--font-family);
  font-size: 18px;
  line-height: 1.65;
}

a {
  color: var(--link);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.16em;
}

a:hover {
  text-decoration-thickness: 0.12em;
}

.site-header {
  max-width: 720px;
  margin: 0 auto;
  padding: 48px 20px 32px;
  text-align: center;
}

.site-title {
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-decoration: none;
}

main {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 20px 80px;
}

.post-list {
  margin-top: 16px;
}

.post-preview {
  padding: 8px 0 18px;
  border-bottom: 1px solid var(--line);
}

.post-preview time,
.post-header time {
  color: var(--muted);
  font-size: 13px;
}

.post-preview h1 {
  margin: 0;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.25;
}

.post-header {
  margin-bottom: 24px;
}

.prose h1,
.prose h2,
.prose h3 {
  line-height: 1.2;
}

.prose h1 {
  margin: 0 0 28px;
  font-size: clamp(36px, 8vw, 56px);
  font-weight: 400;
  letter-spacing: -0.04em;
}

.prose h2 {
  margin: 48px 0 12px;
  font-size: 28px;
  font-weight: 500;
}

.prose h3 {
  margin: 36px 0 10px;
  font-size: 22px;
  font-weight: 600;
}

.prose p {
  margin: 0 0 20px;
}

.prose blockquote {
  margin: 28px 0;
  padding-left: 20px;
  border-left: 2px solid var(--line);
  color: var(--muted);
}

@media (max-width: 520px) {
  body {
    font-size: 17px;
  }

  .site-header {
    padding-top: 32px;
  }
}
