/* Keep generated typography inside the cover; full titles remain beside it. */
.book-cover { height: 243px; min-height: 0; overflow: hidden; gap: 8px; }
.book-cover > * { min-width: 0; max-width: 100%; flex-shrink: 0; }
.book-cover > strong {
  min-height: 0; flex-shrink: 0; overflow: hidden; overflow-wrap: anywhere; font-size: 22px;
  max-width: 100%; display: -webkit-box; -webkit-box-orient: vertical;
  -webkit-line-clamp: 3; line-height: 1.4; padding: 0; border: 0;
}
.book-cover > span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.type-cover { height: 100%; min-height: 0; overflow: hidden; text-align: center; }
.type-cover > * { min-width: 0; max-width: 100%; flex-shrink: 0; }
.type-cover > span:last-child {
  overflow-wrap: anywhere; overflow: hidden; display: -webkit-box;
  -webkit-box-orient: vertical; -webkit-line-clamp: 3; flex-shrink: 1;
}
.workspace-type-cover { min-width: 0; height: 260px; overflow: hidden; }
.workspace-type-cover h3 {
  max-width: 100%; min-height: 0; overflow-wrap: anywhere; overflow: hidden;
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4;
  font-size: clamp(22px, 4vw, 35px); line-height: 1.5;
}
.cover-label { max-width: calc(100% - 70px); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.feature-copy, .detail-copy, .story-body, .feed-caption { min-width: 0; }
.feature-copy h2, .detail-copy h1, .story-body h2, .feed-caption h2 { overflow-wrap: anywhere; }
.feed-caption h2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
@media (max-width:600px) {
  .feature-art .book-cover strong { font-size: 18px; -webkit-line-clamp: 2; }
  .detail-art .book-cover strong { font-size: 28px; -webkit-line-clamp: 3; }
  .feed-cover .type-cover { padding: 28px; gap: 16px; font-size: 22px; }
}
