/* =============================================================================
   @elements/style — feed

   HN-style vertical feed. Generic scoped children — no `.feed-*`
   compound classes.

     <div class="feed">
       <div class="item">
         <div class="num">1.</div>
         <div class="main">
           <div class="title">
             <span class="pin">PIN</span>
             <a href="#">Title</a>
             <span class="domain">elements.dev</span>
           </div>
           <div class="meta">
             <span class="author">chris</span>
             <span class="sep">·</span>
             discussion
             <span class="sep">·</span>
             2h ago
           </div>
         </div>
         <div class="active"><span class="dot"></span></div>
       </div>
     </div>

     <a class="load-more">Load more</a>
============================================================================= */

.feed { margin-top: var(--space-2); }

:where(.feed > .item) {
  display: grid;
  grid-template-columns: 28px 1fr 16px;
  gap: 0.875rem;
  padding: 0.625rem 0;
  align-items: baseline;
  border-bottom: 1px solid var(--rule-soft);
}
:where(.feed > .item:last-child) { border-bottom: none; }

:where(.feed > .item:hover .title a) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--ink-faint);
  text-underline-offset: 3px;
}

:where(.feed > .item > .num) {
  font-family: var(--font-sans);
  font-size: 0.78125rem;
  color: var(--ink-faint);
  text-align: right;
  font-variant-numeric: tabular-nums;
  padding-top: 1px;
}

:where(.feed > .item > .main) { min-width: 0; }

:where(.feed > .item > .main > .title) {
  font-family: var(--font-sans);
  font-size: 0.84375rem;
  font-weight: var(--font-medium);
  line-height: 1.4;
  margin-bottom: 0.1875rem;
  color: var(--ink);
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  flex-wrap: wrap;
}
:where(.feed > .item > .main > .title a) {
  transition: color var(--duration-fast) var(--ease-out);
}

:where(.feed .pin) {
  font-family: var(--font-sans);
  font-size: 0.5625rem;
  font-weight: var(--font-semibold);
  letter-spacing: 0.12em;
  color: var(--ink-soft);
  background: var(--bg-panel);
  padding: 2px 6px;
  border-radius: 3px;
  text-transform: uppercase;
  flex-shrink: 0;
  position: relative;
  top: -1px;
}

:where(.feed .domain) {
  color: var(--ink-dim);
  font-weight: var(--font-regular);
  font-size: 0.71875rem;
  margin-left: 0.25rem;
}
:where(.feed .domain::before) { content: '('; }
:where(.feed .domain::after)  { content: ')'; }

/* Meta line */
:where(.feed > .item > .main > .meta) {
  font-family: var(--font-sans);
  font-size: 0.71875rem;
  color: var(--ink-dim);
  line-height: 1.4;
}
:where(.feed .meta > .author)     { color: var(--ink-soft); }
:where(.feed .meta > .sep)        { margin: 0 0.375rem; color: var(--ink-faint); }
:where(.feed .meta > .boost)      { color: var(--green); font-weight: var(--font-medium); }
:where(.feed .meta > .answered)   { color: var(--green); font-weight: var(--font-medium); }
:where(.feed .meta > .unanswered) { color: var(--amber); font-weight: var(--font-medium); }

/* Meta chips */
:where(.feed .chip.elements) {
  font-family: var(--font-sans);
  font-size: 0.59375rem;
  font-weight: var(--font-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-deep);
  background: var(--accent-soft);
  padding: 2px 7px;
  border-radius: 3px;
  border: 1px solid var(--accent-dot);
}
:where(.feed .chip.kind) {
  font-family: var(--font-sans);
  font-size: 0.625rem;
  font-weight: var(--font-medium);
  color: var(--ink-soft);
  background: var(--bg-panel);
  padding: 1px 6px;
  border-radius: 3px;
}
:where(.feed .chip.kind.video::before) {
  content: '▶ ';
  color: var(--ink-dim);
  font-size: 0.5625rem;
  margin-right: -2px;
}

/* Active dot column */
:where(.feed > .item > .active) {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-top: 0.25rem;
}
:where(.feed > .item > .active > .dot) {
  width: 7px;
  height: 7px;
  background: var(--green);
  border-radius: 50%;
  display: block;
}

/* Load more link */
.feed .load-more,
.feed > .load-more {
  margin-top: var(--space-8);
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  color: var(--ink-soft);
  border-bottom: 1px dotted var(--ink-faint);
  padding-bottom: 1px;
  cursor: pointer;
  display: inline-block;
  transition:
    color var(--duration-fast) var(--ease-out),
    border-color var(--duration-fast) var(--ease-out);
}
.feed .load-more:hover {
  color: var(--accent-deep);
  border-color: var(--accent-deep);
}
.feed .load-more::before { content: '→ '; color: var(--ink-faint); }
