/* Shared article components. Colors follow the site's design tokens. */
/* Header geometry stays in site.css; this shared layer controls cover contrast. */
.article-header--cover::before {
  opacity: .48;
  filter: saturate(.95) brightness(.88);
}
.article-header--cover::after {
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.70) 0%,
      rgba(255,255,255,.48) 45%,
      rgba(255,255,255,.22) 75%,
      rgba(255,255,255,.08) 100%),
    linear-gradient(0deg,
      rgba(255,255,255,.52) 0%,
      rgba(255,255,255,.18) 32%,
      rgba(255,255,255,.02) 100%);
}
/* Requirements follow the header in normal flow, without overlapping its tags. */
.article-card > .article-hardware-tags {
  margin: var(--design-control-gap) 0 var(--design-card-padding);
}
.article-summary {
  max-width: 64ch;
  margin: 4px 0 10px;
  color: var(--design-text-muted);
  font-size: clamp(1rem, 1.2vw, 1.1rem);
  line-height: 1.65;
  overflow-wrap: anywhere;
}
.post-content .article-points {
  margin: 1.5rem 0;
  padding: 1rem 1.25rem;
  border: 1px solid var(--design-border);
  border-inline-start: 4px solid var(--design-primary);
  border-radius: var(--design-card-radius);
  background: var(--design-surface-muted);
}
.post-content .article-points h2 { margin: 0 0 .65rem; padding: 0; border: 0; font-size: 1.2rem; }
.article-points ul { margin: 0; padding-inline-start: 1.4em; }
.article-points li + li { margin-top: .55rem; }
.article-points__message { font-weight: 700; }
.article-points li > :first-child, .article-points__message > :first-child, .speech-bubble__text > :first-child, .article-qa__answer > :first-child { margin-top: 0; }
.article-points li > :last-child, .article-points__message > :last-child, .speech-bubble__text > :last-child, .article-qa__answer > :last-child { margin-bottom: 0; }
/* info pages such as About reuse the same dialogue layout as posts. */
.post-content .speech-bubble,
.article-card .speech-bubble {
  --speech-avatar-base: 80px;
  --speech-avatar-size: calc(var(--speech-avatar-base) * var(--speech-image-scale, 1));
  display: grid;
  grid-template-columns: var(--speech-avatar-size) minmax(0, 1fr);
  align-items: center;
  gap: 1.25rem;
  margin: 1.25rem 0;
}
.speech-bubble__speaker { min-width: 0; text-align: center; }
.post-content .speech-bubble__image,
.article-card .speech-bubble__image { display: block; width: var(--speech-avatar-size); height: var(--speech-avatar-size); max-width: 100%; margin: 0 auto; object-fit: contain; }
.speech-bubble__name { display: block; margin-top: .25rem; font-size: .8rem; font-weight: 700; overflow-wrap: anywhere; }
.speech-bubble__text {
  position: relative;
  min-width: 0;
  padding: 1rem 1.25rem;
  border: 1px solid var(--design-border);
  border-radius: max(1rem, var(--design-card-radius));
  background: var(--design-surface-muted);
  overflow-wrap: anywhere;
}
/* Decorative tail only; the image and text remain in normal grid flow. */
.speech-bubble__text::before {
  content: "";
  position: absolute;
  inset-inline-start: -8px;
  inset-block-start: calc(50% - 7px);
  width: 14px;
  height: 14px;
  background: var(--design-surface-muted);
  border-inline-start: 1px solid var(--design-border);
  border-block-end: 1px solid var(--design-border);
  transform: rotate(45deg);
  pointer-events: none;
}
.article-qa { margin: 2rem 0; }
.article-qa__list { margin: 0; }
.article-qa__item { padding: 1rem 0; border-block-end: 1px solid var(--design-border); }
.article-qa__question { margin: 0 0 .55rem; font-weight: 700; overflow-wrap: anywhere; }
.article-qa__label { color: var(--design-primary); }
.article-qa__answer { margin: 0; overflow-wrap: anywhere; }
.article-qa a:focus-visible, .next-reads a:focus-visible, .speech-bubble a:focus-visible {
  outline: 2px solid var(--design-focus);
  outline-offset: 3px;
}
.next-reads { margin-block: 2rem; }
.next-reads__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.next-reads__item { min-width: 0; padding: 1rem; border: 1px solid var(--design-border); border-radius: var(--design-card-radius); background: var(--design-surface); overflow-wrap: anywhere; }
.next-reads__item h3 { margin: .4rem 0 .6rem; font-size: 1rem; line-height: 1.5; }
.next-reads__reason { margin: 0; color: var(--design-primary); font-size: .8rem; font-weight: 700; }
.next-reads__summary { margin: 0; color: var(--design-text-muted); font-size: .9rem; line-height: 1.6; }
@media (max-width: 1199px) {
  .next-reads__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .next-reads__grid { grid-template-columns: 1fr; }
  .post-content .speech-bubble,
  .article-card .speech-bubble { --speech-avatar-base: 64px; gap: 1rem; }
  .speech-bubble__text { padding: .8rem .9rem; }
  .post-content .article-points { padding: .9rem; }
}
