/* The upcoming-projects page.

   Cards, grid and pills come from archive-projects.css; this file only adds the
   page's own furniture: the stat band, the method note, the section rhythm and
   the communities table. Keep it that way — a second card design on this site
   is a maintenance bill, not a feature. */

.opi-up{--opi-up-w:min(100%,var(--dx-w,1200px));width:var(--opi-up-w);margin-inline:auto}

/* --- stat band ----------------------------------------------------------- */
.opi-up__stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
  gap:1px;margin:var(--space-8) 0 var(--space-6);
  background:var(--border-1);border:1px solid var(--border-1);border-radius:var(--radius-lg);overflow:hidden;
}
.opi-up__stat{display:flex;flex-direction:column;gap:4px;padding:var(--space-5) var(--space-6);background:var(--surface-card)}
.opi-up__stat b{
  font-family:var(--font-display);font-size:var(--text-h3);line-height:1.05;
  font-weight:var(--weight-bold);color:var(--text-1);letter-spacing:var(--tracking-display);
}
.opi-up__stat span{
  font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:var(--tracking-caps);
  text-transform:uppercase;color:var(--text-3);
}

/* --- method note --------------------------------------------------------- */
.opi-up__method{
  margin:0 0 var(--space-12);padding:var(--space-5) var(--space-6);
  background:var(--surface-sunken);border-left:3px solid var(--accent);
  font-size:var(--text-body-sm);line-height:var(--leading-body);color:var(--text-2);
}

/* --- sections ------------------------------------------------------------ */
.opi-up__sect{margin:0 0 var(--space-14);scroll-margin-top:var(--space-16)}
.opi-up__sect > h2{
  margin:0 0 var(--space-2);font-family:var(--font-display);font-size:var(--text-h2);
  line-height:var(--leading-snug);font-weight:var(--weight-bold);color:var(--text-1);
}
.opi-up__lede{
  margin:0 0 var(--space-6);max-width:70ch;
  font-size:var(--text-body-sm);line-height:var(--leading-body);color:var(--text-2);
}

/* --- communities table --------------------------------------------------- */
.opi-up__tablewrap{overflow-x:auto;border:1px solid var(--border-1);border-radius:var(--radius-lg)}
.opi-up__table{width:100%;border-collapse:collapse;font-size:var(--text-body-sm);background:var(--surface-card)}
.opi-up__table th,.opi-up__table td{padding:var(--space-4) var(--space-5);text-align:left;border-bottom:1px solid var(--border-1)}
.opi-up__table thead th{
  font-family:var(--font-mono);font-size:var(--text-caption);letter-spacing:var(--tracking-caps);
  text-transform:uppercase;color:var(--text-3);font-weight:var(--weight-semibold);
  background:var(--surface-sunken);white-space:nowrap;
}
.opi-up__table tbody tr:last-child td{border-bottom:0}
.opi-up__table td a{color:var(--text-1);font-weight:var(--weight-semibold);text-decoration:none}
.opi-up__table td a:hover{color:var(--link-hover);text-decoration:underline;text-underline-offset:3px}

/* --- FAQ ----------------------------------------------------------------- */
.opi-up__faq dl{margin:0;display:grid;gap:var(--space-6)}
.opi-up__faq dt{
  margin:0;font-family:var(--font-display);font-size:var(--text-h4,1.125rem);
  line-height:var(--leading-snug);font-weight:var(--weight-semibold);color:var(--text-1);
}
.opi-up__faq dd{
  margin:var(--space-2) 0 0;max-width:76ch;
  font-size:var(--text-body-sm);line-height:var(--leading-body);color:var(--text-2);
}

@media (max-width:640px){
  .opi-up__stat{padding:var(--space-4) var(--space-5)}
  .opi-up__sect{margin-bottom:var(--space-10)}
  .opi-up__table th,.opi-up__table td{padding:var(--space-3) var(--space-4)}
}


/* The editor shell constrains direct children of the entry content to the
   global content size. This page carries its own shell, so it opts out. */
.opi-up.opi-up{max-width:none}
.opi-up__prose{max-width:74ch;margin-inline:0}
.opi-up__prose p{margin:0 0 var(--space-4)}
.opi-up__prose p:last-child{margin-bottom:0}
.opi-up__prose ul{margin:0;padding-left:var(--space-5);display:grid;gap:var(--space-3)}
.opi-up__prose li{line-height:var(--leading-body)}
.opi-up__prose--intro{margin-bottom:var(--space-6)}
.opi-up__standfirst{font-size:var(--text-body-lg,1.125rem);line-height:var(--leading-body);color:var(--text-1)}
