/* Topic 04: a static opening image and compact service summaries. */
.server-story { row-gap: 42px; }
.server-story > div, .server-story figure { min-width: 0; }
.server-story .server-intro .prose { margin-top: 24px; }
.server-story .server-photo { width: 100%; max-width: 440px; justify-self: end; }
.server-story .server-photo img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 12px; }
.server-story .server-photo figcaption { margin-top: 10px; color: var(--muted); font-size: 10px; line-height: 1.7; }
.server-story .server-service-grid,
.server-story .server-research { grid-column: 1 / -1; }
.server-story .server-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.server-story .server-service { min-width: 0; padding: 23px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-card); }
.server-story .server-service-header { display: flex; align-items: center; gap: 12px; min-width: 0; }
.server-story .server-service-header img { display: block; flex: 0 0 40px; width: 40px; height: 40px; min-width: 0; min-height: 0; max-width: 40px; max-height: 40px; object-fit: contain; }
.server-story .server-service h3 { min-width: 0; margin: 0; font-size: 25px; line-height: 1.25; }
.server-story .server-service h3 a { color: var(--ink); text-decoration: none; }
.server-story .server-service h3 a:hover { color: var(--clay); text-decoration: underline; }
.server-story .server-service h3 span { color: var(--clay); font: 14px var(--sans); }
.server-story .server-service p { margin-top: 15px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.server-story .server-research { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 80px; }
.server-story .server-research h3 { margin-top: 12px; font-size: 30px; line-height: 1.2; }
.server-story .server-research > div > p:last-child { margin-top: 18px; max-width: 43ch; color: var(--muted); font-size: 14px; line-height: 1.85; }
.server-story .server-paper-links { min-width: 0; margin: 0; padding: 0; list-style: none; }
.server-story .server-paper-links li + li { margin-top: 17px; padding-top: 17px; border-top: 1px solid var(--line); }
.server-story .server-paper-links .text-link { min-height: 28px; font: 23px/1.25 var(--serif); }
.server-story .server-paper-links p { margin-top: 7px; color: var(--muted); font-size: 13px; line-height: 1.8; }
@media (max-width: 1100px) {
  .server-story .server-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
  .server-story { row-gap: 32px; }
  .server-story .server-photo { max-width: none; justify-self: stretch; }
  .server-story .server-research { grid-template-columns: minmax(0, 1fr); gap: 27px; }
}
@media (max-width: 650px) {
  .server-story .server-service-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .server-story .server-service { padding: 22px; }
  .server-story .server-research h3 { font-size: 28px; }
}
