/* News & Events — editorial */

/* ---------------- Hero ---------------- */
.n-hero {
  padding: clamp(64px, 8vw, 110px) 0 clamp(40px, 5vw, 72px);
  border-bottom: 1px solid var(--rule);
}
.n-hero h1 {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(48px, 7.5vw, 124px);
  line-height: 0.95; letter-spacing: -0.03em;
  margin-top: 56px;
  max-width: 16ch;
  text-wrap: balance;
}
.n-hero h1 em { font-style: italic; color: var(--signal); }
.n-hero-meta {
  display: flex; flex-wrap: wrap; gap: 56px;
  margin-top: 60px; border-top: 1px solid var(--rule); padding-top: 24px;
}
@media (max-width: 800px) { .n-hero-meta { gap: 32px; } }
.n-hero-meta .cell { min-width: 180px; }
@media (max-width: 640px) {
  .n-hero-meta { gap: 20px 24px; }
  .n-hero-meta .cell { min-width: 0; flex: 1 1 40%; }
}
.n-hero-meta .cell .k {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ink-3);
}
.n-hero-meta .cell .v {
  font-family: var(--display); font-size: 22px; line-height: 1.2; margin-top: 6px;
}
.n-hero-meta .cell .v em { color: var(--signal); font-style: italic; }

/* Anchor pad — quick jumps under hero */
.n-anchors {
  display: flex; flex-wrap: wrap; gap: 18px;
  margin-top: 40px;
}
.n-anchor {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em;
  text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 14px;
  border: 1px solid var(--rule-strong);
  color: var(--ink);
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.n-anchor:hover { background: var(--ink); color: var(--bone); border-color: var(--ink); }
.n-anchor .arr { color: var(--signal); }
.n-anchor:hover .arr { color: var(--bone); }

/* ---------------- Supporters ---------------- */
.supporters-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--gap);
}
@media (max-width: 900px) {
  .supporters-grid { grid-template-columns: 1fr; }
}
.supporter-card {
  border-top: 1px solid var(--ink);
  padding: 22px 0 0;
  display: grid;
  grid-template-columns: 40px 180px 1fr;
  gap: 28px;
  align-items: start;
}
@media (max-width: 1100px) {
  .supporter-card { grid-template-columns: 32px 140px 1fr; gap: 20px; }
}
@media (max-width: 700px) {
  .supporter-card { grid-template-columns: 1fr; gap: 18px; }
}
.supporter-num {
  font-size: 11px; letter-spacing: 0.16em;
  color: var(--signal);
}
.supporter-logo-wrap {
  min-height: 80px;
  display: flex; align-items: center; justify-content: flex-start;
  padding: 4px 0;
}
.supporter-label {
  font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink); margin-bottom: 4px;
}
.supporter-sub {
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 14px;
}
.supporter-body p {
  font-size: 14px; line-height: 1.55; color: var(--ink-2);
  max-width: 56ch;
}

/* ---------------- Editorial — feature + grid ---------------- */
.editorial-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(32px, 5vw, 80px);
  align-items: start;
}
@media (max-width: 900px) { .editorial-grid { grid-template-columns: 1fr; } }

.feature-post {
  border-top: 1px solid var(--ink);
  padding-top: 22px;
  display: flex; flex-direction: column; gap: 18px;
}
.feature-post .plate {
  aspect-ratio: 16 / 10;
  background: var(--ink);
  position: relative;
  overflow: hidden;
}
.feature-post .plate-stripe {
  position: absolute; inset: 0;
  background-image: repeating-linear-gradient(
    135deg,
    rgba(239,234,224,0.04) 0,
    rgba(239,234,224,0.04) 1px,
    transparent 1px,
    transparent 14px
  );
}
.feature-post .plate-tag {
  position: absolute; left: 18px; top: 18px;
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--bone); background: var(--signal); padding: 4px 8px;
}
.feature-post .plate-title {
  position: absolute; left: 24px; right: 24px; bottom: 24px;
  font-family: var(--display); color: var(--bone);
  font-size: clamp(22px, 2.4vw, 34px); line-height: 1.05; letter-spacing: -0.01em;
  font-style: italic; max-width: 22ch;
}
.feature-meta {
  display: flex; gap: 14px; flex-wrap: wrap; align-items: center;
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink-3);
}
.feature-meta .sig { color: var(--signal); }
.feature-meta .sep { width: 14px; height: 1px; background: var(--rule-strong); }
.feature-post h3 {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(28px, 3vw, 44px);
  line-height: 1.05; letter-spacing: -0.02em;
  text-wrap: balance;
}
.feature-post h3 em { font-style: italic; color: var(--signal); }
.feature-post p {
  font-size: 15px; line-height: 1.6; color: var(--ink-2); max-width: 56ch;
}
.feature-post .read {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--signal); border-bottom: 1px solid var(--signal);
  padding-bottom: 4px; align-self: flex-start;
}
.feature-post .read svg { display: block; }

/* Stack of recent posts beside feature */
.editorial-stack {
  display: flex; flex-direction: column;
  border-top: 1px solid var(--ink);
}
.editorial-row {
  display: grid; grid-template-columns: 80px 1fr auto;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid var(--rule);
  align-items: start;
}
.editorial-row:hover { background: rgba(20,17,13,0.015); }
.editorial-row .num {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.1em;
  color: var(--signal); padding-top: 4px;
}
.editorial-row .body h4 {
  font-family: var(--display); font-weight: 400;
  font-size: 22px; line-height: 1.15; letter-spacing: -0.01em;
  text-wrap: balance;
}
.editorial-row .body h4 em { font-style: italic; color: var(--signal); }
.editorial-row .body .meta {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink-3);
  margin-top: 8px;
  display: flex; gap: 10px; flex-wrap: wrap;
}
.editorial-row .body .meta .dot { color: var(--rule-strong); }
.editorial-row .body p {
  font-size: 13.5px; line-height: 1.55; color: var(--ink-2);
  margin-top: 10px; max-width: 50ch;
}
.editorial-row .arrow-cell {
  align-self: center; padding-top: 4px;
  color: var(--ink-3);
}
.editorial-row:hover .arrow-cell { color: var(--signal); }

.editorial-foot {
  display: flex; justify-content: space-between; align-items: center;
  border-top: 1px solid var(--ink);
  padding-top: 22px; margin-top: 40px;
  flex-wrap: wrap; gap: 20px;
}
.editorial-foot .lbl {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ink-3);
}

/* Editorial rows are clickable; the plate is a link too. */
.feature-post .plate { cursor: pointer; }
.editorial-row { cursor: pointer; }
.editorial-row .arrow-cell svg { display: block; }

/* ---------------- Announcements / milestones ---------------- */
.announce-list {
  border-top: 1px solid var(--ink);
}
.announce-row {
  display: grid;
  grid-template-columns: 150px 1fr auto;
  gap: 24px;
  padding: 22px 0;
  border-bottom: 1px solid var(--rule);
  align-items: baseline;
}
@media (max-width: 700px) {
  .announce-row {
    grid-template-columns: 1fr auto;
    row-gap: 6px;
  }
  .announce-row .announce-tag { grid-column: 1; }
  .announce-row .announce-date { grid-column: 2; grid-row: 1; text-align: right; }
  .announce-row .announce-body { grid-column: 1 / 3; }
}
.announce-tag {
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--signal);
  display: inline-flex; align-items: center; gap: 8px;
}
.announce-tag::before {
  content: ""; width: 6px; height: 6px; background: var(--signal); border-radius: 50%;
}
.announce-body h4 {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(20px, 1.8vw, 26px); line-height: 1.15; letter-spacing: -0.01em;
  text-wrap: balance;
}
.announce-body p {
  font-size: 13.5px; line-height: 1.55; color: var(--ink-2);
  margin-top: 8px; max-width: 60ch;
}
.announce-date {
  font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--ink-3); white-space: nowrap;
}

/* ---------------- Press ---------------- */
.press-section { background: var(--paper-warm); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.press-table {
  border-top: 1px solid var(--ink);
}
.press-row {
  display: grid;
  grid-template-columns: 110px 1.2fr 2fr 1fr 24px;
  gap: 24px;
  padding: 26px 0;
  border-bottom: 1px solid var(--rule);
  align-items: baseline;
  transition: background .2s ease;
}
.press-row:hover { background: rgba(20,17,13,0.025); }
@media (max-width: 900px) {
  .press-row {
    grid-template-columns: 90px 1fr 24px;
    grid-template-rows: auto auto auto;
    row-gap: 8px;
  }
  .press-row .pub { grid-column: 1 / 3; }
  .press-row .head { grid-column: 1 / 3; }
  .press-row .blurb { grid-column: 1 / 3; }
  .press-row .arr-cell { grid-row: 1; grid-column: 3; }
}
.press-row .date {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink-3);
}
.press-row .date .yr { color: var(--ink); font-weight: 600; }
.press-row .pub {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--signal);
  display: flex; align-items: center; gap: 10px;
}
.press-row .pub::before {
  content: ""; display: block; width: 6px; height: 6px;
  background: var(--signal); border-radius: 50%;
}
.press-row .head {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(20px, 1.8vw, 26px);
  line-height: 1.15; letter-spacing: -0.01em;
  text-wrap: balance;
  color: var(--ink);
}
.press-row .head em { font-style: italic; color: var(--signal); }
.press-row .blurb {
  font-size: 13.5px; line-height: 1.55; color: var(--ink-2);
  max-width: 36ch;
}
.press-row .arr-cell {
  font-family: var(--mono);
  color: var(--ink-3); font-size: 18px;
  align-self: center;
}
.press-row:hover .arr-cell { color: var(--signal); }

.press-foot {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 32px; flex-wrap: wrap; gap: 16px;
}

/* ---------------- Events ---------------- */
.events-block + .events-block { margin-top: 80px; }
.events-block-h {
  display: flex; align-items: baseline; gap: 18px;
  border-top: 1px solid var(--ink); padding-top: 18px; margin-bottom: 24px;
  flex-wrap: wrap;
}
.events-block-h .lbl {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--signal);
}
.events-block-h h3 {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(28px, 3vw, 42px); line-height: 1; letter-spacing: -0.015em;
}
.events-block-h h3 em { font-style: italic; color: var(--signal); }
.events-block-h .count {
  margin-left: auto;
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink-3);
}

.event-grid {
  display: grid; grid-template-columns: repeat(2, 1fr);
  gap: 0;
  border-top: 1px solid var(--rule);
}
@media (max-width: 800px) { .event-grid { grid-template-columns: 1fr; } }

.event {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 24px;
  padding: 28px 0;
  border-bottom: 1px solid var(--rule);
  align-items: start;
  position: relative;
}
.event + .event,
.event-grid .event:nth-child(2n) { border-left: none; }
@media (min-width: 801px) {
  .event-grid .event:nth-child(odd)  { padding-right: clamp(20px, 3vw, 40px); border-right: 1px solid var(--rule); }
  .event-grid .event:nth-child(even) { padding-left:  clamp(20px, 3vw, 40px); }
}

.event .date-plate {
  display: flex; flex-direction: column; align-items: flex-start; gap: 2px;
  border-left: 2px solid var(--signal);
  padding: 4px 0 4px 14px;
  min-height: 64px;
}
.event .date-plate .mo {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--signal);
}
.event .date-plate .day {
  font-family: var(--display); font-style: italic;
  font-size: 38px; line-height: 1; letter-spacing: -0.02em;
  color: var(--ink);
}
.event .date-plate .yr {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--ink-3);
  margin-top: 2px;
}
.event .body .role {
  font-family: var(--mono); font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-3);
  margin-bottom: 6px;
  display: flex; gap: 10px; align-items: center;
}
.event .body .role .pip {
  display: inline-block; width: 6px; height: 6px;
  background: var(--signal);
}
.event .body .role.past .pip { background: var(--rule-strong); }
.event .body h4 {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(22px, 2vw, 28px);
  line-height: 1.1; letter-spacing: -0.01em;
  text-wrap: balance;
}
.event .body h4 em { font-style: italic; color: var(--signal); }
.event .body .where {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink-2);
  margin-top: 8px;
  display: flex; gap: 10px; flex-wrap: wrap; align-items: center;
}
.event .body .where .sep {
  width: 14px; height: 1px; background: var(--rule-strong);
}
.event .body p {
  font-size: 13.5px; line-height: 1.55; color: var(--ink-2);
  margin-top: 10px; max-width: 44ch;
}
.event .body .speaker {
  font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--ink);
  margin-top: 12px;
  display: flex; gap: 10px; align-items: center;
  border-top: 1px dashed var(--rule);
  padding-top: 10px;
}
.event .body .speaker .who { color: var(--signal); }

.event-cta-row {
  display: flex; gap: 12px; flex-wrap: wrap; margin-top: 12px;
}

/* Subscribe block */
.n-subscribe {
  margin-top: 72px;
  border-top: 1px solid var(--ink);
  padding-top: 32px;
  display: grid; grid-template-columns: 1.4fr 1fr;
  gap: clamp(24px, 4vw, 64px);
  align-items: end;
}
@media (max-width: 800px) { .n-subscribe { grid-template-columns: 1fr; } }
.n-subscribe h3 {
  font-family: var(--display); font-weight: 400;
  font-size: clamp(28px, 3.4vw, 48px);
  line-height: 1; letter-spacing: -0.02em;
  text-wrap: balance;
}
.n-subscribe h3 em { font-style: italic; color: var(--signal); }
.n-subscribe p {
  font-size: 14px; line-height: 1.55; color: var(--ink-2); max-width: 42ch;
  margin-top: 14px;
}
.n-subscribe form {
  display: flex; gap: 0; align-items: stretch;
  border: 1px solid var(--ink);
  background: var(--bone);
}
.n-subscribe input {
  flex: 1; border: 0; background: transparent;
  padding: 14px 16px; font-family: var(--sans); font-size: 14px;
  color: var(--ink); outline: none;
  min-width: 0;
}
.n-subscribe input::placeholder { color: var(--ink-3); }
.n-subscribe button {
  border: 0; background: var(--ink); color: var(--bone);
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.14em;
  text-transform: uppercase; padding: 0 22px; cursor: pointer;
  transition: background .2s ease;
}
.n-subscribe button:hover { background: var(--signal); }
