/* Extends the site's shared Skills Store typography and layout. */
.directory-card { min-height: 0; }
.directory-card h3 { font-size: clamp(1.6rem, 2.5vw, 2.2rem); }
.directory-card h3 a { display: block; }
.directory-card h3 a:hover { color: var(--glow); }
/* The backend's caps count grapheme clusters, so a capped name can still stack combining
   marks and a capped description can still hold newlines: clipping the painted box is the
   only vertical bound. max-height repeats each clamp height for browsers that ignore
   line-clamp, so scripts/test-agent-directory.py asserts the two stay in step. The title
   is clipped through a span inside its link, because clipping the link would shear its
   keyboard focus outline; it also needs looser leading than the shared 1.08 heading
   rhythm, which puts diacritics outside the line box where overflow: hidden cuts them. */
.directory-card-title, .directory-card .directory-description, .directory-card .directory-author {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.directory-card-title { line-height: 1.2; -webkit-line-clamp: 2; max-height: 2.4em; }
.directory-card .directory-description { line-height: 1.65; -webkit-line-clamp: 4; max-height: 6.6em; }
.directory-card .directory-author { line-height: 1.65; -webkit-line-clamp: 2; max-height: 3.3em; }
.directory-card .actions { margin-top: auto; padding-top: 20px; }
/* Publisher names need the full column, not the shared marketing headline measure.
   Keep all text readable and selectable, with room for diacritics. Top alignment
   keeps the desktop install panel reachable even with a multiline description. */
.directory-detail h1 { max-width: none; font-size: clamp(2rem, 4vw, 3rem); line-height: 1.2; }
.directory-detail .pack-hero-grid { align-items: start; }
.directory-description { white-space: pre-wrap; }
.directory-card, .pack-hero-grid > *, .breadcrumb { overflow-wrap: anywhere; min-width: 0; }
.directory-author, .directory-count { color: var(--ink-dim); }
.directory-count { font-family: var(--mono); font-size: 1rem; }
.directory-share { overflow-wrap: anywhere; font-size: .85rem; }
.directory-empty { padding: 28px 0; border-top: 1px solid var(--hairline-2); }
/* store.css styles .button for anchors; a <button> still needs the UA chrome removed. */
button.button { appearance: none; -webkit-appearance: none; margin: 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
