/* =========================================================
   JOURNAL POST (post/<slug>.html)
   ========================================================= */
.page-post main { background: var(--bone); color: var(--ink); }

.post__head { padding-top: calc(var(--header-h) + 10vh); display: grid; gap: clamp(20px, 2.4vw, 32px); max-width: 1180px; }
.post__kicker { display: flex; gap: 10px; opacity: 0.6; }
.post__kicker a:hover { color: var(--brick); }
.post__title { font-size: clamp(36px, 5.2vw, 88px); font-weight: 300; line-height: 1.02; letter-spacing: -0.03em; max-width: 20ch; }
.post__meta { display: flex; flex-wrap: wrap; gap: 8px 28px; opacity: 0.6; border-top: 1px solid var(--line-dark); padding-top: 20px; }

.post__cover { margin-top: clamp(32px, 5vw, 72px); }
.post__cover img { width: 100%; aspect-ratio: 20 / 11; object-fit: cover; border-radius: var(--radius); background: var(--bone-2); }

.post__body {
  max-width: calc(68ch + var(--gutter) * 2); margin-inline: auto;
  padding-block: clamp(48px, 7vw, 110px) clamp(80px, 10vw, 150px);
  font-size: clamp(17px, 1.25vw, 19px); line-height: 1.75;
}
.post__body > * + * { margin-top: 1.1em; }
.post__body h2 { font-size: clamp(26px, 2.4vw, 38px); font-weight: 300; line-height: 1.15; letter-spacing: -0.015em; margin-top: 2em; }
.post__body h3 { font-size: clamp(21px, 1.7vw, 26px); font-weight: 400; line-height: 1.25; margin-top: 1.6em; }
.post__body h4 { font-family: var(--f-ui); font-size: 14px; letter-spacing: 0.12em; text-transform: uppercase; margin-top: 1.6em; }
.post__body ul, .post__body ol { padding-left: 1.3em; }
.post__body li + li { margin-top: 0.4em; }
.post__body li::marker { color: var(--terra); }
.post__body strong { font-weight: 700; }
.post__body a { color: var(--brick); text-decoration: underline; text-underline-offset: 3px; }
.post__body blockquote { border-left: 2px solid var(--terra); padding-left: 1.2em; font-size: 1.15em; opacity: 0.85; }
.post__body figure { margin-block: 2em; }
.post__body figure img { width: 100%; height: auto; border-radius: var(--radius-sm); background: var(--bone-2); }

.post-next { display: block; color: var(--bone); }
.post-next__inner { padding: clamp(80px, 12vw, 180px) var(--gutter); display: grid; gap: 24px; }
.post-next__title { font-size: clamp(30px, 4.6vw, 80px); font-weight: 300; line-height: 1.04; letter-spacing: -0.025em; max-width: 22ch; transition: opacity 0.5s; }
.post-next:hover .post-next__title { opacity: 0.75; }
