/* Explore: the community's front */
.ex { display: grid; gap: 22px; padding-top: 18px; padding-bottom: 40px; }
.ex-h2 { font: var(--display, 400) 28px/1.08 var(--serif); letter-spacing: var(--title-track, normal); text-wrap: balance; }
.ex-h2 i, .ex-title i, .ex-cta-title i { font-style: italic; color: var(--deep); }
.ex-sub { font-size: 15px; color: var(--soft); }

.ex-head { display: grid; gap: 16px; }
.ex-head-copy { display: grid; gap: 8px; }
.ex-title { font: var(--display, 400) 44px/1 var(--serif); letter-spacing: var(--title-track, -0.01em); text-wrap: balance; }
.ex-search { position: relative; display: block; }
.ex-search svg { position: absolute; left: 15px; top: 50%; width: 20px; height: 20px; margin-top: -10px; color: var(--muted); pointer-events: none; }
.ex-search .field { padding-left: 44px; border-radius: var(--pill, 999px); }

.ex-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.ex-tabs .chip { flex-direction: row; align-items: center; padding: 8px 14px; border-radius: var(--pill, 999px); font-size: 14px; }

.ex-results { display: grid; gap: 12px; align-content: start; min-width: 0; }
.ex-count { display: flex; align-items: baseline; gap: 10px; font-size: 13.5px; color: var(--muted); }
.ex-count b { font: 500 13px var(--mono); letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink); }
.ex-grid { display: grid; gap: 14px; }
.ex-item { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: calc(18px * var(--round, 1)); background: var(--sheet); overflow: hidden; }
.ex-item .card { border: 0; border-radius: 0; flex: 1; }
.ex-item .card-art { height: 80px; padding-top: 26px; }
.ex-item-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 10px; min-height: 52px; padding: 4px 16px; border-top: 1px solid var(--line); background: var(--paper); font-size: 13px; color: var(--muted); }
.ex-item.is-fork .ex-item-foot { background: rgb(31 58 48 / 0.06); }
/* a 44 px tap target of its own, apart from the card above it */
.ex-from { display: inline-flex; align-items: center; gap: 6px; min-width: 0; min-height: 44px; border: 0; background: none; padding: 0; font: inherit; color: var(--deep); cursor: pointer; text-align: left; }
.ex-from svg { width: 16px; height: 16px; flex: none; }
/* the original's name keeps to one line: cut with an ellipsis when there is no room, whole on hover
   (the button's title); the count moves under it only when not even 12em is left beside it */
.ex-from { flex: 1 1 12em; padding: 6px 0; }
.ex-from span { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; line-height: 1.35; }
.ex-from b { font-weight: 500; text-decoration: underline; text-underline-offset: 0.2em; text-decoration-thickness: 1px; }
.ex-orig { display: inline-flex; align-items: center; gap: 10px; padding: 10px 0; }
.ex-meta { flex: none; font: 12px var(--mono); color: var(--muted); }
.ex-empty { display: grid; gap: 6px; padding: 26px 20px; border: 1px dashed var(--line); border-radius: calc(18px * var(--round, 1)); text-align: center; color: var(--muted); }
.ex-empty p:first-child { font: var(--display, 400) 24px/1.2 var(--serif); letter-spacing: var(--title-track, normal); color: var(--ink); }

.ex-craft { display: inline-flex; align-items: center; gap: 4px; font: 500 11px/1 var(--mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--deep); white-space: nowrap; }
.ex-craft svg { width: 14px; height: 14px; }

.ex-panel { display: grid; gap: 14px; padding: 20px 18px; border: 1px solid var(--line); border-radius: calc(22px * var(--round, 1)); background: var(--sheet); }
.ex-panel-head { display: grid; gap: 6px; }
.ex-rank { list-style: none; margin: 0; padding: 0; display: grid; }
.ex-rank li { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 11px 0; border-top: 1px solid var(--line); cursor: pointer; }
.ex-rank-n { font: 12px/1 var(--mono); color: var(--muted); }
.ex-rank-body { display: grid; gap: 3px; min-width: 0; }
.ex-rank-body b { font: var(--display, 400) 20px/1.15 var(--serif); letter-spacing: var(--title-track, normal); }
.ex-rank-body span { font-size: 12.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ex-rank-body i { display: block; height: 3px; margin-top: 3px; border-radius: 2px; background: var(--deep); opacity: 0.75; }
.ex-rank-c { font: 500 14px var(--mono); }

.ex-fam { display: grid; gap: 16px; margin-top: 10px; }
.ex-trees { display: grid; gap: 16px; }
.ex-tree { display: grid; padding: 16px; border: 1px solid var(--line); border-radius: calc(22px * var(--round, 1)); background: var(--sheet); }
.ex-tree-root { display: grid; gap: 4px; justify-items: start; border: 0; background: none; padding: 0; text-align: left; font: inherit; color: inherit; cursor: pointer; }
.ex-tree-curve { display: block; width: 100%; height: 48px; margin-bottom: 8px; }
.ex-tree-root > b { font: var(--display, 400) 26px/1.1 var(--serif); letter-spacing: var(--title-track, normal); }
.ex-tree-by { margin-top: 2px; }
.ex-tree-kids { list-style: none; margin: 10px 0 0 10px; padding: 0; }
.ex-tree-kids li { position: relative; padding: 8px 0 0 22px; }
.ex-tree-kids li::before { content: ""; position: absolute; left: 0; top: 0; width: 16px; height: 30px; border-left: 1px solid var(--deep); border-bottom: 1px solid var(--deep); }
.ex-tree-kids li:not(:last-child)::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; border-left: 1px solid var(--deep); }
.ex-tree-kid { display: grid; gap: 5px; width: 100%; padding: 12px 14px; border: 1px solid var(--line); border-radius: calc(16px * var(--round, 1)); background: var(--paper); text-align: left; font: inherit; color: inherit; cursor: pointer; }
.ex-tree-who { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--muted); }
.ex-tree-who b { font-weight: 500; color: var(--ink); }
.ex-tree-title { font: var(--display, 400) 22px/1.12 var(--serif); letter-spacing: var(--title-track, normal); }
.ex-tree-wish { font: italic 400 17px/1.3 var(--serif); color: var(--deep); }
.ex-tree-stats { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; font: 12px/1 var(--mono); color: var(--muted); }
.ex-tree-stats > span { display: inline-flex; align-items: center; gap: 4px; }
.ex-tree-stats svg { width: 14px; height: 14px; }
.ex-tree-kids li.ex-tree-more { padding-top: 12px; padding-bottom: 2px; font-size: 13px; color: var(--muted); }
.ex-tree-kids li.ex-tree-more::before { height: 21px; border-bottom-style: dashed; }

.ex-people ul { list-style: none; margin: 0; padding: 0; display: grid; }
.ex-people li { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 2px 12px; align-items: center; padding: 11px 0; border-top: 1px solid var(--line); cursor: pointer; }
.ex-people li > div { display: grid; }
.ex-people li > div b { font-weight: 500; }
.ex-people li > div span { font-size: 13px; color: var(--muted); }
.ex-people small { grid-column: 2; font-size: 12.5px; color: var(--muted); }
.ex-people small b { font: 500 12.5px var(--mono); color: var(--ink); }

.ex-craftcard { gap: 10px; background: var(--paper); }
.ex-craftcard p { font-size: 14px; color: var(--soft); }

.ex-cta { display: grid; gap: 10px; justify-items: start; padding: 22px 20px; border-radius: calc(24px * var(--round, 1)); background: var(--go-soft); color: var(--go-ink); }
.ex-cta .label { color: var(--go-ink); }
.ex-cta-title { font: var(--display, 400) 30px/1.05 var(--serif); letter-spacing: var(--title-track, normal); color: var(--ink); text-wrap: balance; }
.ex-cta .ex-cta-title i { color: var(--go-ink); }
.ex-cta p { font-size: 14.5px; color: var(--soft); }
.ex-cta .btn { width: 100%; margin-top: 4px; }
.ex-cta small { font-size: 12.5px; }

/* life: lineage in honey, the craft in sage, numbers coloured */
.ex-item.is-fork .ex-item-foot { background: var(--go-soft); }
.ex-from { color: var(--go-ink); }
.ex-craft { color: var(--free-ink); }
.ex-craftcard { background: var(--free-soft); border-color: transparent; }
.ex-craftcard p { color: var(--free-ink); }
.ex-rank-body i { background: var(--go); opacity: 1; }
.ex-rank li:first-child .ex-rank-n { color: var(--go-ink); font-weight: 500; }
.ex-tree-kids li::before, .ex-tree-kids li:not(:last-child)::after { border-color: var(--go); }
.ex-tree-wish { color: var(--go-ink); }
.ex-people li:nth-child(4n+1) .avatar { background: var(--go-soft); color: var(--go-ink); }
.ex-people li:nth-child(4n+2) .avatar { background: var(--free-soft); color: var(--free-ink); }
.ex-people li:nth-child(4n+3) .avatar { background: var(--ai-soft); color: var(--ai-ink); }

@container app (min-width: 700px) {
  .ex { gap: 26px; padding-top: 44px; padding-bottom: 80px; }
  .ex-head { grid-template-columns: minmax(0, 1fr); }
  /* the filters and the search are one row, the search at its end on the side column's edges */
  .ex-tabs { align-items: center; }
  .ex-tabs .ex-search { width: 340px; margin-left: auto; }
  .ex-tabs .ex-search .field { min-height: 44px; }
  .ex-count { margin-bottom: -12px; }
  .ex-title { font-size: 64px; }
  .ex-sub { font-size: 16px; max-width: 36em; }
  .ex-cols { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start; }
  .ex-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .ex-item .card-art { height: 104px; padding-top: 28px; }
  .ex-side { position: sticky; top: 90px; display: grid; gap: 16px; }
  .ex-h2 { font-size: 30px; }
  .ex-fam { margin-top: 34px; }
  .ex-fam > .ex-panel-head .ex-h2 { font-size: 44px; }
  .ex-trees { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .ex-tree { padding: 22px; }
}
