/* dual-world-v2 content-merge scaffold styles. DRAFT. Functional only.
   Designer owns polished Insights / Pipeline / Roadmap layouts and the CEF / RITE named-object treatment.
   Night tokens from cf-tokens.css. No teal. Motion owns motion (motion/cefrite-motion.css). */

/* CEF / RITE named objects: layout-specs-dual-world-v2 sec 1 (Designer). Hooks: .cf-named, [data-term], [data-cm-beat] */
.cf-named-pair { display: grid; gap: 16px; margin-top: 24px; align-items: stretch; }
@media (min-width: 768px) { .cf-named-pair { grid-template-columns: 1fr 1fr; gap: 24px; max-width: var(--cf-measure); } }
.cf-named { background: var(--cf-navy); border: 1px solid var(--cf-line); border-left: 2px solid var(--cf-accent-dim); border-radius: 16px; padding: 20px; }
@media (min-width: 768px) { .cf-named { padding: 24px; } }
.cf-named__term { margin: 0 0 8px; font: 600 28px/1.1 var(--cf-font-mono); letter-spacing: 0.04em; color: var(--cf-accent); }
@media (min-width: 768px) { .cf-named__term { font-size: 32px; } }
.cf-named__term abbr { text-decoration: none; }
.cf-named__label { margin: 0; font-size: var(--cf-fs-h3); font-weight: 600; color: var(--cf-text-strong); }
.cf-named__def { margin: 10px 0 0; font-size: var(--cf-fs-body-read); line-height: var(--cf-lh-read); color: var(--cf-text); }
.cf-named--recall { padding: 16px; }
.cf-term { font-style: normal; font-weight: 600; color: var(--cf-text-strong); }
.cf-term abbr { text-decoration: none; color: var(--cf-accent); }
.cf-terms-strip { display: grid; gap: 12px; margin-top: 24px; }
@media (min-width: 720px) { .cf-terms-strip { grid-template-columns: 1fr 1fr; } }
.cf-terms-strip .cf-named { padding: 14px 16px; }
.cf-terms-strip .cf-named__term { font-size: 1.125rem; }
.cf-terms-strip .cf-named__label { font-size: var(--cf-fs-small); }
.cf-terms-strip .cf-named__def { font-size: var(--cf-fs-small); line-height: 1.6; }
.cf-glue { margin-top: 20px; font-size: var(--cf-fs-small); color: var(--cf-text-soft); }

/* map bridge container spacing (motion kit styles the nodes) */
.cf-bridge { margin-top: 28px; }
.cm-map__node strong { display: block; color: var(--cf-accent); letter-spacing: 0.04em; margin-bottom: 6px; }
.cm-map__node p { margin: 0; font-size: var(--cf-fs-small); line-height: 1.5; color: var(--cf-text-soft); }

/* chips */
.cf-chip-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding: 0; list-style: none; }
.cf-chip { font: 500 var(--cf-fs-badge)/1 var(--cf-font-mono); letter-spacing: var(--cf-ls-badge); text-transform: uppercase; color: var(--cf-accent); border: 1px solid var(--cf-accent-line); border-radius: 999px; padding: 6px 10px; background: var(--cf-accent-soft); }

/* model-only callout */
.cf-callout { border-left: 2px solid var(--cf-accent-line); padding: 12px 16px; margin-top: 24px; background: var(--cf-surface); border-radius: 0 10px 10px 0; color: var(--cf-text-soft); font-size: var(--cf-fs-small); }
.cf-callout strong { color: var(--cf-text-strong); display: block; margin-bottom: 4px; }

/* generic card grid for restored pages */
.cf-grid-3 { display: grid; gap: 16px; }
@media (min-width: 720px) { .cf-grid-3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cf-grid-3 { grid-template-columns: repeat(3, 1fr); } }
.card-kicker { display: block; font: 500 var(--cf-fs-badge)/1.2 var(--cf-font-mono); letter-spacing: var(--cf-ls-badge); text-transform: uppercase; color: var(--cf-accent-dim); margin-bottom: 8px; }
.cf-quote { border-left: 2px solid var(--cf-accent); padding: 4px 0 4px 18px; margin: 28px 0 0; color: var(--cf-text-soft); font-size: var(--cf-fs-lead); max-width: var(--cf-measure-read, 68ch); }
.cf-bio { display: grid; gap: 16px; margin-top: 24px; }
.cf-bio .card p { margin: 8px 0 0; }
.cf-page-section-intro { max-width: var(--cf-measure-read, 68ch); }
.legal-block ol, .legal-block ul { padding-left: 1.25em; }

/* Home one-pager (layout spec sec 0): mobile default, desktop enhancement */
.cf-home-sec { padding-block: var(--cf-section-y-dense); border-top: 1px solid var(--cf-line); }
@media (min-width: 768px) { .cf-home-sec { padding-block: var(--cf-section-y); } }
@media (max-width: 767px) { .cm-lane-home .cf-container { padding-inline: 20px; } }
@media (min-width: 768px) { .cm-lane-home .cf-container { padding-inline: 32px; } }
.cf-beat + .cf-beat { margin-top: 24px; }
.cf-beat p { margin: 6px 0 0; }
.cf-tap, .cf-stay-actions a, #beats a, #stance a { min-height: 44px; display: inline-flex; align-items: center; }
@media (max-width: 767px) { .cf-stay-actions { flex-direction: column; } .cf-stay-actions a { width: 100%; justify-content: center; } }

/* Insights / Pipeline cards (layout spec sec 2, 3) */
.cf-card { background: var(--cf-navy); border: 1px solid var(--cf-line); border-radius: 16px; padding: 24px; }
.cf-card__index { font: 400 12px/1 var(--cf-font-mono); color: var(--cf-accent-dim); letter-spacing: 0.06em; }
.cf-card .card-title { margin-top: 10px; font-size: var(--cf-fs-h3); }
.cf-card__head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.cf-card__status { margin: 12px 0 0; font-size: 12px; color: var(--cf-text-muted); }
.cf-chip--quiet { font: 400 12px/1 var(--cf-font-body, inherit); letter-spacing: 0; text-transform: none; padding: 4px 10px; border: 1px solid var(--cf-line); background: transparent; color: var(--cf-text-muted); border-radius: 999px; }
.cf-chip--quiet:hover { border-color: var(--cf-accent-dim); }
.cf-chip-row--quiet { margin-top: 0; }
.cf-section--tight { padding-block: 0 8px; }

/* indexed list (Insights vectors option A, Roadmap tracks) */
.cf-index-list { list-style: none; padding: 0; margin: 24px 0 0; max-width: var(--cf-measure-read); }
.cf-index-list li { display: grid; grid-template-columns: 3rem 1fr; padding-block: 16px; border-top: 1px solid var(--cf-line); }
.cf-index-list__n { font: 400 14px/1.5 var(--cf-font-mono); color: var(--cf-accent-dim); }
.cf-index-list__title { margin: 0; font-weight: 600; color: var(--cf-text-strong); }
.cf-index-list__body { margin: 4px 0 0; color: var(--cf-text-muted); font-size: var(--cf-fs-small); }

/* nav breakpoints (layout spec sec 6) */
@media (min-width: 768px) and (max-width: 1023px) { .nav-links { flex-wrap: wrap; gap: 8px 20px; } }
.nav-links a[aria-current="page"] { color: var(--cf-accent); }

/* 2026-10-27 founder unlock + philanthropic amend */
/* Founder identity (layout spec sec 1.2) */
.founder-identity { max-width: var(--cf-measure-lead); }
.founder-identity .eyebrow { margin-bottom: var(--cf-space-3); }
.founder-identity .founder-identity__name { margin-bottom: var(--cf-space-2); } /* 0,2,0 beats .page-header h1 */
.founder-identity__title {
  margin: 0 0 var(--cf-space-6);
  font-size: var(--cf-fs-body);
  font-weight: var(--cf-fw-ui);
  letter-spacing: 0.01em;
  color: var(--cf-text-soft);
}
.founder-identity .page-lead { max-width: var(--cf-measure-read); }
@media (max-width: 767px) {
  .founder-header { gap: var(--cf-space-6); }
  .founder-portrait { width: 6rem; }
}

/* Home trust strip: one line under .hero-micro, muted mono, no glow (layout spec sec 3.1 anatomy) */
.cf-trust-strip {
  margin: calc(-1 * var(--cf-space-6)) auto var(--cf-space-10);
  max-width: var(--cf-measure-lead);
  font: 500 var(--cf-fs-badge)/1.6 var(--cf-font-mono);
  letter-spacing: var(--cf-ls-badge); text-transform: uppercase;
  color: var(--cf-text-muted);
}

/* Self-funded / trust badges (Home #stance, Contact header): quiet pills, not links */
.cf-badges {
  list-style: none; margin: var(--cf-space-4) 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: var(--cf-space-2);
}
.cf-badges li {
  font: 500 var(--cf-fs-badge)/1 var(--cf-font-mono);
  letter-spacing: var(--cf-ls-badge); text-transform: uppercase;
  color: var(--cf-text-soft);
  border: 1px solid var(--cf-line-strong); border-radius: var(--cf-radius-pill);
  padding: var(--cf-space-2) var(--cf-space-3);
}
#stance .cf-badges { margin-block: var(--cf-space-4); }

/* Signature line: small, soft, no portrait */
.cf-signature {
  margin: var(--cf-space-3) 0 0;
  font-size: var(--cf-fs-small);
  font-weight: var(--cf-fw-ui);
  letter-spacing: 0.01em;
  color: var(--cf-text-muted);
}

/* Contact #involved card CTAs (replaces inline margin on touched cards) */
.cf-card-cta { margin: var(--cf-space-4) 0 0; }
.cf-card-cta + .cf-card-cta { margin-top: var(--cf-space-2); }
.cf-closing-line { margin-top: var(--cf-space-8); }

/* Roadmap #support (layout spec sec 2.2: reuses .cf-index-list, no buttons) */
#support .cf-support__micro { max-width: var(--cf-measure-read); }

/* Roadmap #tracks milestones quote + living-document micro, #stay dedication */
.cf-milestones-quote { margin-top: var(--cf-space-8); max-width: var(--cf-measure-lead); }
.cf-milestones-quote .founder-quote { font-size: var(--cf-fs-lead); }
.cf-milestones-quote .cf-signature { padding-left: var(--cf-space-6); }
.cf-living-micro { margin-top: var(--cf-space-6); max-width: var(--cf-measure-read); }
.follow-inner .cf-dedication { color: var(--cf-text); }

/* 2026-10-27 audience ladder amend-2 */
/* Home #doors: quiet 3-door wayfinding (layout spec sec 1). No band, no glow, no cards. */
.cf-doors__list {
  list-style: none; margin: 0 auto; padding: 0;
  max-width: var(--cf-measure);
  display: grid; gap: 0;
  border-bottom: 1px solid var(--cf-line);          /* closes the stack on mobile */
}
.cf-door { border-top: 1px solid var(--cf-line); }
.cf-doors .cf-door__link {                           /* 0,2,0 beats .cf-tap inline-flex */
  display: flex; flex-direction: column; align-items: flex-start;
  gap: var(--cf-space-1);
  min-height: 44px;
  padding-block: var(--cf-space-4);
  color: inherit; text-decoration: none;
}
.cf-door__label {
  display: inline-flex; align-items: baseline; gap: var(--cf-space-2);
  font-family: var(--cf-font-display);
  font-size: var(--cf-fs-h3);                        /* one step under h3-lg, under the h2 */
  font-weight: var(--cf-fw-heading);
  line-height: var(--cf-lh-h3);
  color: var(--cf-text-strong);
}
.cf-door__label::after {
  content: "\2192";                                  /* same arrow glyph as .cm-next */
  color: var(--cf-accent-dim);
}
.cf-door__line {
  font-size: var(--cf-fs-small);
  line-height: var(--cf-lh-body);
  color: var(--cf-text-muted);
  max-width: var(--cf-measure-read);
}
.cf-doors .cf-door__link:hover .cf-door__label,
.cf-doors .cf-door__link:focus-visible .cf-door__label {
  color: var(--cf-accent);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px;
}
.cf-doors .cf-door__link:hover .cf-door__label::after,
.cf-doors .cf-door__link:focus-visible .cf-door__label::after { color: var(--cf-accent); }
.cf-door:hover, .cf-door:focus-within { border-top-color: var(--cf-accent-line); }

@media (min-width: 720px) {
  .cf-doors__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: var(--cf-space-6);
    border-bottom: 0;                                /* columns: top hairline only */
  }
  .cf-doors .cf-door__link { padding-block: var(--cf-space-6) 0; gap: var(--cf-space-2); }
}
@media (min-width: 1024px) {
  .cf-doors__list { column-gap: var(--cf-space-8); }
}

/* Path end-caps (layout spec sec 2): soft cross-links, no buttons, no glow */
.cf-endcap {
  margin: var(--cf-space-10) 0 0;
  padding-top: var(--cf-space-4);
  max-width: var(--cf-measure-read);
  border-top: 1px solid var(--cf-line);
  display: grid; gap: var(--cf-space-4);
  text-align: left;
}
.cf-endcap .cf-endcap__row {                         /* 0,2,0 beats .follow-inner p and .story-step p */
  margin: 0; max-width: none;
  display: flex; flex-wrap: wrap; align-items: baseline;
  column-gap: var(--cf-space-3); row-gap: 0;
  color: var(--cf-text-soft);
}
.cf-endcap__ask {
  flex: 0 0 100%;
  font-size: var(--cf-fs-eyebrow);
  font-weight: var(--cf-fw-ui);
  letter-spacing: var(--cf-ls-eyebrow);
  text-transform: uppercase;
  color: var(--cf-text-muted);                       /* muted, so the link is the only amber */
}
.cf-endcap .cm-next { font-weight: var(--cf-fw-ui); }
.cf-endcap__line {
  flex: 0 0 100%;
  font-size: var(--cf-fs-small);
  line-height: var(--cf-lh-body);
  color: var(--cf-text-muted);
}
@media (min-width: 768px) {
  .cf-endcap { gap: var(--cf-space-6); }
  .cf-endcap__ask { flex: 0 0 13rem; }              /* fits "Want the bigger picture?" on one line */
  .cf-endcap__line { flex: 1 1 14rem; }
}

/* Context fits */
.follow-inner .cf-endcap { margin: var(--cf-space-6) auto var(--cf-space-8); } /* Science #next band: block centered, rows left, air before buttons */
#what .cf-endcap { margin-top: var(--cf-space-8); }   /* Founder: replaces inline margin-top:24px */
#tracks .cf-endcap { margin-top: var(--cf-space-12); }/* Roadmap: clear of the living micro */
.model-note + .cf-endcap { margin-top: var(--cf-space-8); } /* Explainer: under the model note */

/* 2026-10-27 story spine amend-3 */

/* Founder #story: seeker arc, prose only (layout spec sec 1) */
.cf-story .cf-story__body p { margin: 0 0 var(--cf-space-6); }
.cf-story .cf-story__body p.cf-spine-note { margin: var(--cf-space-8) 0 0; }
@media (min-width: 768px) {
  .cf-story .section-intro { margin-bottom: var(--cf-space-10); }
}

/* Home #districts: one light strip (layout spec sec 2). No band, no cards, no diagram. */
.cf-districts .cf-districts__body {
  margin: 0;
  max-width: var(--cf-measure-lead);
  font-size: var(--cf-fs-body-read);
  line-height: var(--cf-lh-read);
  color: var(--cf-text-soft);
}
.cf-districts .cf-districts__body + .cf-districts__body { margin-top: var(--cf-space-6); }

/* Roadmap #support beat 7 (layout spec sec 3) */
#support .cf-support__beat { margin: 0; font-size: var(--cf-fs-body); }

/* Careful line: proof / Rite / beat 7 (layout spec sec 4) */
.cf-spine-note {
  max-width: var(--cf-measure-read);
  padding-left: var(--cf-space-4);
  border-left: 2px solid var(--cf-accent-line);
  color: var(--cf-text-soft);
}

/* 2026-10-27 desktop rhythm soft polish */
/* Brief: briefs/layout-specs-desktop-rhythm-2026-10-27.md sec 5.1 to 5.5. Desktop only; mobile (<1024) unchanged.
   One intentional center per site: Home hero (.hero / #top). Everything else hugs the .cf-container left spine.
   .cf-rhythm-desk = body hook on the four audited pages (Home, Founder, Explainer, Science) so Band B/C
   measure changes do not leak into Roadmap / Insights / Pipeline / Contact / Disclaimer. */
@media (min-width: 1024px) {
  /* 5.1 Band B/C: measures hug the container's content left edge (was margin-inline: auto) */
  .cf-rhythm-desk .cf-home-sec .cf-measure,
  .cf-rhythm-desk .cf-home-sec .cf-measure--lead,
  .cf-rhythm-desk .cf-home-sec .cf-measure--read,
  .cf-rhythm-desk .cf-section .cf-measure,
  .cf-rhythm-desk .cf-section .cf-measure--lead,
  .cf-rhythm-desk .cf-section .cf-measure--read,
  .cf-rhythm-desk .page-header .cf-measure,
  .cf-rhythm-desk .page-header .cf-measure--lead,
  .cf-rhythm-desk .page-header .cf-measure--read,
  .cf-rhythm-desk main > .cf-container > .cf-measure--lead, /* Explainer story column (no section wrapper) */
  .cf-rhythm-desk .science-shell .cf-measure {               /* Science named / card / bridge / glue / figure in the column */
    margin-inline: 0;
  }
  /* Containers that double as a measure (Home #districts, Founder #story): keep the container on the
     shared spine, cap the content instead, same content width as before (56rem minus 2 x 32px gutter) */
  .cf-rhythm-desk .cf-container.cf-measure {
    max-width: var(--cf-container);
    margin-inline: auto;
  }
  .cf-rhythm-desk .cf-container.cf-measure > * {
    max-width: calc(var(--cf-measure) - 2 * var(--cf-gutter-md));
  }

  /* 5.2 Band C: Home doors list (was margin: 0 auto) */
  .cf-doors__list {
    margin-inline: 0;
  }

  /* 5.3 Band D: closing bands left spine, buttons flex-start (shared .follow-inner, also Roadmap / Insights / Pipeline) */
  .follow-inner {
    text-align: left;
  }
  .follow-inner p {
    margin-inline: 0;
  }
  .follow-inner .closing-actions,
  #stay .closing-actions,
  #next .closing-actions,
  .cf-rhythm-desk .cf-endcap ~ .closing-actions { /* Explainer close row after the endcap */
    justify-content: flex-start;
  }
  .follow-inner .cf-endcap {
    margin-inline: 0; /* was auto; rows already text-align left */
  }

  /* 5.4 Band C: Founder / Science card blocks under left h2 */
  .founder-identity,
  #what .card,
  .cf-bio,
  .cf-bio .card,
  .cf-named-pair {
    margin-inline: 0;
  }

  /* 5.5 Explainer video island: left spine, lead measure (story art untouched, already left at 36rem) */
  .cf-rhythm-desk #explainer .cf-measure {
    max-width: var(--cf-measure-lead);
  }
}

/* Contact lane cards — Sascha override 2026-10-28: center measure-capped 2x2 + hello (not cf-rhythm-desk / site-wide) */
.cf-contact-lane {
  max-width: var(--cf-measure);
  margin-inline: auto;
}
.cf-contact-lane.contact-card {
  margin-top: 24px;
}

/* 2026-10-29 CEF RITE show-means buttons */
.cf-named__action {
  margin: var(--cf-space-4) 0 0; /* 16px above control */
}
.cf-named__action .button-secondary {
  /* inherit main.css .button-secondary; full width on narrow cards */
  width: 100%;
}
@media (min-width: 768px) {
  .cf-named__action .button-secondary {
    width: auto;           /* hug label on 2-up */
    min-width: 12rem;      /* calm, not tiny */
  }
}

/* optional spacing if stance needs air above the control */
.cf-stance-action {
  margin: var(--cf-space-4) 0 0;
}
.cf-stance-action .button-secondary {
  width: auto;
  min-width: 12rem;
}
@media (max-width: 767px) {
  .cf-stance-action .button-secondary { width: 100%; }
}

/* 2026-10-29 involved card CI buttons */
#involved .cf-card-cta .button-secondary {
  width: 100%;
  text-align: center;
}
@media (min-width: 768px) {
  #involved .cf-card-cta .button-secondary {
    width: 100%;
  }
}

/* 2026-10-30 involved CTAs bronze accent; Substack under Ko-fi */
#involved .cf-card-cta .button-secondary {
  width: 100%;
  text-align: center;
  color: var(--cf-accent);
  border-color: var(--cf-accent-line);
}
#involved .cf-card-cta .button-secondary:hover,
#involved .cf-card-cta .button-secondary:focus-visible {
  color: var(--cf-text-strong, var(--cf-accent));
  border-color: var(--cf-accent);
}
