/* ============================================================
   The Space Observer — Issue 007 scoped overrides
   Loaded AFTER styles.css, by Issue 007 only.
   Other issues are not affected by this file.

   Purpose: close the three empty-cell gaps reported in the
    layout handoff (open items 2, 3, 4), which arise
   because Issue 002 has a different module count than the
   Issue 001 template the grid was sized for.
   ============================================================ */

/* --- Item 3: Standing Watch has 5 cards in a 3-column grid,
   leaving one empty bordered cell on row two.
   Re-base the grid on 6 columns: 3 cards x 2 cols on row one,
   2 cards x 3 cols on row two. Both rows fill completely. --- */
.spread__essca .watch-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.spread__essca .watch-grid > .watch-card {
  grid-column: span 2;
}
.spread__essca .watch-grid > .watch-card:nth-child(4),
.spread__essca .watch-grid > .watch-card:nth-child(5) {
  grid-column: span 3;
}

/* --- Item 4: Teaming Desk + Member Profile fill only 8 of 12
   columns because Field Note was dropped. Widen both to 6. --- */
.spread__teaming { grid-column: span 6; }
.spread__cap.spread__memberfile { grid-column: span 6; }

/* --- Item 2: no portrait exists for Col. Carstetter, so the
   Field Signal panel renders an empty dark box. Collapse the
   blockquote to a single column and drop the empty figure. --- */
.spread__quote { grid-template-columns: minmax(0, 1fr); }
.spread__quote > .quote-portrait:empty { display: none; }

/* Keep the pull quote from running the full band width once the
   portrait column is gone. */
.spread__quote .pullquote { max-width: 22ch; }

/* --- Narrow viewports: revert to the stylesheet's own single-column
   behaviour so nothing above fights the existing breakpoints. --- */
@media (max-width: 1080px) {
  .spread__teaming,
  .spread__cap.spread__memberfile { grid-column: span 12; }
  .spread__essca .watch-grid { grid-template-columns: minmax(0, 1fr); }
  .spread__essca .watch-grid > .watch-card,
  .spread__essca .watch-grid > .watch-card:nth-child(4),
  .spread__essca .watch-grid > .watch-card:nth-child(5) {
    grid-column: auto;
  }
}


/* ============================================================
   Issue navigation + colophon column
   Added per instruction: every issue must return to the landing
   page and reach the previous / next issue. The colophon fills
   the previously empty second column of .source-grid.
   ============================================================ */
.spread__issuenav {
  grid-column: span 12;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px; background: var(--border);
}
.issuenav__cell {
  display: flex; flex-direction: column; gap: 7px;
  padding: 22px clamp(18px, 2vw, 26px);
  background: var(--paper-2); text-decoration: none; min-width: 0;
}
a.issuenav__cell:hover { background: var(--paper-3); }
.issuenav__cell b {
  font-family: var(--font-display); font-weight: 500; font-size: 18px;
  letter-spacing: -.01em; color: var(--ink); line-height: 1.2;
}
.issuenav__cell em {
  font-style: normal; font-family: var(--font-mono); font-size: 10px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--steel-2);
}
.issuenav__cell--next { text-align: right; align-items: flex-end; }
.issuenav__cell--dim { opacity: .5; }
@media (max-width: 900px) {
  .spread__issuenav { grid-template-columns: minmax(0, 1fr); }
  .issuenav__cell--next { text-align: left; align-items: flex-start; }
}

/* --- colophon: second column of the linked-public-record grid --- */
.sources__aside { min-width: 0; }
.sources__aside p {
  font-size: 13.5px; line-height: 1.55; color: var(--steel);
  margin: 0 0 16px 0; max-width: 46ch;
}
.colophon {
  display: grid; grid-template-columns: minmax(0, 1fr);
  gap: 0; margin: 0; border-top: 1px solid var(--border);
}
.colophon > div {
  display: grid; grid-template-columns: 168px minmax(0, 1fr);
  gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--border);
  align-items: baseline;
}
.colophon dt {
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: .11em;
  text-transform: uppercase; color: var(--steel-2); margin: 0;
}
.colophon dd { margin: 0; font-size: 13px; line-height: 1.45; color: var(--ink); }
@media (max-width: 700px) {
  .colophon > div { grid-template-columns: minmax(0, 1fr); gap: 3px; }
}


/* ============================================================
   Notes from the co-founders — standing module, every issue.
   ============================================================ */
.spread__cofound { grid-column: span 12; background: var(--paper-2); }
.cofound__grid {
  display: grid; grid-template-columns: minmax(0, 300px) minmax(0, 1fr);
  gap: clamp(18px, 3vw, 34px); align-items: start;
}
.cofound__photo {
  margin: 0; overflow: hidden; border: 1px solid var(--border);
  background: var(--paper-3);
}
.cofound__photo img {
  width: 100%; display: block; aspect-ratio: 4 / 3; object-fit: cover;
  filter: grayscale(1) contrast(1.08);
}
.cofound__photo figcaption {
  font-family: var(--font-mono); font-size: 9px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--steel-2);
  padding: 8px 10px; border-top: 1px solid var(--border);
}
.cofound__body p {
  font-size: 15px; line-height: 1.62; color: var(--ink-2);
  margin: 0 0 12px 0; max-width: 64ch;
}
.cofound__sign {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px; margin-top: 18px; padding-top: 14px;
  border-top: 1px solid var(--border);
}
.cofound__sign b {
  display: block; font-family: var(--font-display); font-weight: 500;
  font-size: 15px; letter-spacing: -.01em; color: var(--ink);
}
.cofound__sign em {
  font-style: normal; display: block; font-family: var(--font-mono);
  font-size: 9.5px; letter-spacing: .09em; text-transform: uppercase;
  color: var(--steel-2); line-height: 1.55; margin-top: 5px;
}
@media (max-width: 900px) {
  .cofound__grid { grid-template-columns: minmax(0, 1fr); }
  .cofound__sign { grid-template-columns: minmax(0, 1fr); }
}


/* Sources grid: source lists stack in column one, colophon holds column two
   at full height. Prevents an empty cell when an issue carries two lists. */
.source-grid > *:not(.sources__aside) { grid-column: 1; }
.source-grid > .sources__aside { grid-column: 2; grid-row: 1 / -1; }
@media (max-width: 1080px) {
  .source-grid > *:not(.sources__aside),
  .source-grid > .sources__aside { grid-column: 1; grid-row: auto; }
}


/* ============================================================
   The one ask — folded into the co-founders note.
   ============================================================ */
.cofound__ask {
  margin-top: 18px; padding-top: 14px;
  border-top: 1px solid var(--border);
}
.cofound__ask .cofound__ask-head {
  display: block; font-family: var(--font-mono); font-size: 9.5px;
  letter-spacing: .11em; text-transform: uppercase; color: var(--signal);
  margin: 0 0 8px 0;
}
.cofound__ask p { margin: 0 0 10px 0; }
.cofound__ask p:last-child { margin-bottom: 0; }
.cofound__ask .cofound__ask-mech {
  font-size: 13.5px; line-height: 1.6; color: var(--steel-2);
}

/* ---- to-scale bar figure ---- */
.obsfig{margin:2.2rem 0;padding:1.2rem 0 1rem;border-top:1.5px solid var(--rule,#111);border-bottom:1px solid var(--rule,#111)}
.obsfig__cap{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1rem;opacity:.75}
.obsbar{width:100%;height:auto;display:block}
.obsbar__lbl{font:400 12.5px/1.2 var(--serif,Georgia,serif);fill:#111}
.obsbar__val{font:600 12.5px/1.2 var(--mono,ui-monospace,Menlo,monospace);fill:#111}
.obsbar__bar{fill:#111}
.obsbar__bar:nth-of-type(n){fill:#1a1a1a}
.obsfig__note{margin:.9rem 0 0;font-size:.72rem;line-height:1.5;opacity:.7;max-width:64ch}
@media(max-width:640px){.obsbar__lbl{font-size:17px}.obsbar__val{font-size:17px}}

/* ---- member mission profile photograph (real, colour, from the member's own site) ---- */
.memberfile__shot{margin:0 0 18px;border:1px solid var(--border);background:var(--card);overflow:hidden}
.memberfile__shot img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;filter:none;opacity:1}
.memberfile__shot figcaption{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--steel-2);line-height:1.6;padding:10px 12px;border-top:1px solid var(--border)}
.memberfile__shot figcaption b{display:block;color:var(--ink);font-weight:600;margin-bottom:4px;letter-spacing:.06em}
.memberfile__shot figcaption a{color:inherit;text-underline-offset:3px}
.memberfile__shot--square{max-width:360px}
.memberfile__shot--square img{aspect-ratio:1/1}
@media(max-width:640px){.memberfile__shot img{aspect-ratio:4/3}.memberfile__shot--square{max-width:100%}}
/* ---- framing figure portrait enlarged ---- */
.memo-scientist{grid-template-columns:210px 1fr;gap:20px}
@media(max-width:640px){.memo-scientist{grid-template-columns:1fr}}

/* ---- hero: mission mark removed, single column ---- */
.memberfile__hero{grid-template-columns:1fr}
