.zp-post {
  padding: 36px 0 0;
}

.zp-post .gh-canvas,
.zp-post-content.gh-canvas,
.zp-post .article-comments.gh-canvas {
  width: min(100%, 45rem);
  max-width: 45rem;
  margin-left: auto;
  margin-right: auto;
}

.zp-post-header {
  padding-bottom: 30px;
}

.zp-post-tag-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.zp-post-tag,
.zp-post-featured {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(174, 207, 214, 0.14);
  background: rgba(255, 255, 255, 0.02);
  color: #d6e1e5;
  font-family: var(--zp-sans);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
}

.zp-post-tag:hover,
.zp-post-tag:focus-visible {
  color: #f6fbfc;
  border-color: rgba(126, 212, 192, 0.34);
}

.zp-post-featured {
  gap: 6px;
  color: #f3d79c;
  border-color: rgba(255, 223, 158, 0.24);
  background: rgba(255, 223, 158, 0.1);
}

.zp-post-title {
  margin: 0;
  color: #f4fbfd;
  font-family: var(--zp-serif);
  font-size: clamp(2.4rem, 4.2vw, 3.45rem);
  font-weight: 500;
  line-height: 1.04;
  letter-spacing: -0.045em;
}

.zp-post-excerpt {
  margin: 16px 0 0;
  max-width: 31rem;
  color: #b3c1c6;
  font-family: var(--zp-serif);
  font-size: 0.94rem;
  line-height: 1.95;
}

.zp-post-byline {
  margin-top: 18px;
}

.zp-post-meta-stack {
  display: grid;
  gap: 7px;
}

.zp-post-date {
  color: #d8e2e6;
  font-family: var(--zp-sans);
  font-size: 0.79rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: none;
}

.zp-post-meta-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.zp-post-meta-label,
.zp-post-meta-row,
.zp-post-author-name {
  font-family: var(--zp-sans);
}

.zp-post-meta-label {
  color: #8fa3ab;
  font-size: 0.78rem;
  line-height: 1.55;
}

.zp-post-author-name {
  color: #dbe8ec;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.55;
}

.zp-post-image {
  margin-top: 28px;
}

.zp-post-image img {
  border-radius: 4px;
}

.zp-post-image figcaption {
  margin-top: 10px;
  color: var(--zp-text-faint);
  font-family: var(--zp-sans);
  font-size: 0.76rem;
  text-align: left;
}

body.zp-theme .zp-post-content,
body.zp-theme .zp-post-content p,
body.zp-theme .zp-post-content li,
body.zp-theme .zp-post-content blockquote,
body.zp-theme .zp-post-content h2,
body.zp-theme .zp-post-content h3,
body.zp-theme .zp-post-content h4 {
  color: #e7f1f4;
  font-family: var(--zp-serif);
  text-align: left;
}

.zp-post-content > * {
  max-width: 45rem;
  margin-left: 0;
  margin-right: 0;
}

.zp-post-content > * + * {
  margin-top: 1.55rem;
}

.zp-post-content p,
.zp-post-content li,
.zp-post-content blockquote {
  font-size: 1rem;
  line-height: 1.8;
}

.zp-post-content h2,
.zp-post-content h3 {
  margin-top: 3rem;
  color: #eff6f8;
  font-family: var(--zp-serif);
  font-size: clamp(1.3rem, 2vw, 1.58rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: -0.02em;
}

.zp-post-content h4 {
  margin-top: 2.1rem;
  color: #e7f1f4;
  font-family: var(--zp-serif);
  font-size: 1rem;
  line-height: 1.55;
}

.zp-post-content hr {
  margin: 3rem 0;
  border-color: rgba(174, 207, 214, 0.12);
}

.zp-post-content a {
  color: #a4f0df;
}

.zp-post-content .kg-image-card,
.zp-post-content .kg-gallery-card,
.zp-post-content .kg-width-wide,
.zp-post-content .kg-width-full {
  max-width: none;
  margin-top: 3rem;
  margin-bottom: 3rem;
}

.zp-post-content .kg-image-card img,
.zp-post-content .kg-gallery-card img {
  border-radius: 4px;
}

.zp-post-content .kg-image-card figcaption,
.zp-post-content .kg-gallery-card figcaption {
  margin-top: 0.7rem;
  color: var(--zp-text-faint);
  font-family: var(--zp-sans);
  font-size: 0.76rem;
  line-height: 1.65;
  text-align: left;
}

@media (max-width: 720px) {
  .zp-post {
    padding-top: 26px;
  }

  .zp-post-title {
    font-size: clamp(2.05rem, 9vw, 2.7rem);
  }

  .zp-post-content p,
  .zp-post-content li,
  .zp-post-content blockquote {
    font-size: 0.98rem;
  }
}
