/* The version tree, in the studio's own type and paper. Motion under 300 ms. */
.explore-body { min-height: 100vh; }
.explore-hero { padding-bottom: 8px; }
.explore-hero .lead { max-width: 52ch; color: var(--olive); }
.tree-section { padding-top: 8px; }
.tree { display: grid; gap: 36px; }
.product { display: grid; gap: 18px; }
.product-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.product-head h2 { font: 400 40px/1 var(--serif); margin: 0; letter-spacing: -0.01em; }
.product-head h2 em { font-style: italic; color: var(--olive); }
.product-head .meta { color: var(--olive); }
.project { display: grid; gap: 12px; }
.project-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 16px; }
.project-head h3 { font: 400 22px/1.2 var(--serif); margin: 0; }
.project-head .intention { flex-basis: 100%; color: var(--olive); max-width: 72ch; margin: 0; }
.lineage { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.lineage .lineage { margin: 10px 0 0 22px; padding-left: 18px; border-left: 1px solid var(--line); }
.version { border: 1px solid var(--line); background: var(--paper); padding: 16px 18px; display: grid; gap: 8px; transition: border-color 160ms ease, transform 160ms ease; }
.version:hover { border-color: var(--ink); }
.version > .eyebrow { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0; }
.version h4 { font: 400 20px/1.25 var(--serif); margin: 0; }
.version .summary { margin: 0; max-width: 78ch; }
.version .meta { color: var(--olive); margin: 0; }
.pill { display: inline-block; font: 600 11px/1 var(--label); letter-spacing: 0.08em; text-transform: uppercase; border: 1px solid var(--ink); padding: 5px 7px 4px; }
.pill.soft { border-color: var(--line); color: var(--olive); }
.pill.live { background: var(--ink); color: var(--paper); }
.releases { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 6px; }
.release { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 8px 10px; background: var(--soft); }
.release .state { font: 500 12px/1.4 var(--label); letter-spacing: 0.04em; text-transform: uppercase; color: var(--olive); }
.release .who { color: var(--olive); font-size: 12px; }
.feedback { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 6px; }
.feedback li { border-left: 2px solid var(--line); padding: 4px 0 4px 12px; }
.feedback .head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--olive); font-size: 12px; }
.feedback p { margin: 4px 0 0; max-width: 78ch; white-space: pre-wrap; }
.links { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.give { display: grid; gap: 8px; border-top: 1px dashed var(--line); padding-top: 10px; margin-top: 4px; }
.give[hidden] { display: none; }
.give label { display: grid; gap: 4px; font: 500 12px/1.4 var(--label); letter-spacing: 0.04em; text-transform: uppercase; color: var(--olive); }
.give select, .give textarea, .give input { border: 1px solid var(--line); background: var(--paper); padding: 8px 10px; font: 14px/1.5 var(--sans); }
.give textarea { min-height: 96px; resize: vertical; }
.give .row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.give .actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.give .error { color: #8a2d1c; }
.evidence { color: var(--olive); font-size: 12px; margin: 0; }
.empty-state { color: var(--olive); }
.explore-footer p { max-width: 60ch; color: var(--olive); }
@media (max-width: 720px) {
  .product-head h2 { font-size: 30px; }
  .lineage .lineage { margin-left: 8px; padding-left: 10px; }
  .give .row { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .version { transition: none; } }
