/* Project page (PROJECT_INTELLIGENCE.md "Information hierarchy", approved
   November 2, 2026; docs/design/project-page-2026-11-02.webp). One shared page
   for the signed-in project and the public showcase. */
.project-page {
  --project-ink: #15383a;
  --project-copy: #4f6867;
  --project-muted: #6d807e;
  --project-teal: #126d67;
  --project-line: #dce5e1;
  --project-action: #123e48;
  --project-canvas: #fbfbf8;
  --project-planning: #6f8f86;
  --project-funding: #2f8a6b;
  --project-design: #4d6f99;
  --project-permitting: #8a8fa0;
  --project-procurement: #c27a2c;
  --project-construction: #8c6a2f;
  --project-forecast: #a8741f;
  color: var(--project-ink);
  background: var(--project-canvas);
  font-size: 15px;
  line-height: 1.55;
}
.project-intelligence-page .platform-content { max-width: none; padding: 0 0 72px; background: #fbfbf8; }
/* The app's body link: teal with a quiet 1px underline that darkens on hover
   (as in the directories and signals). Buttons and citations opt out. */
.project-page a { color: var(--project-teal); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(18, 109, 103, .35); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.project-page a:hover, .project-page a:focus-visible { color: #09655f; text-decoration-color: currentColor; }
.project-page a.watchlist-toggle, .project-page a.project-page-sources-button, .project-page a.project-page-source { text-decoration: none; }
/* Inside prose a link keeps the weight of the sentence around it. */
.project-page-sentence a, .project-page-summary a, .project-page-event p a, .project-page-unknown-list a, .project-page-changes p a, .project-page-rows p a { font-weight: inherit; }
.project-page a:focus-visible, .project-page summary:focus-visible, .project-page button:focus-visible { outline: 2px solid var(--project-teal); outline-offset: 2px; border-radius: 3px; }
.project-page h1, .project-page h2 { font-family: Georgia, "Times New Roman", serif; font-weight: 400; letter-spacing: -.01em; }
.project-page h3, .project-page h4 { margin: 0; font-size: 15px; font-weight: 650; }
.project-page p { margin: 0; }
.project-page small { color: var(--project-muted); font-size: 13px; }
.project-page-label { margin: 0; color: var(--project-teal); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.project-page-note { margin-top: 12px; color: var(--project-muted); font-size: 13px; }
.project-page-tag { display: inline-block; margin-left: 6px; color: var(--project-teal); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; vertical-align: middle; }
.project-page-tag.is-forecast { color: var(--project-forecast); }
.project-intel-empty { color: var(--project-muted); font-size: 14px; }

/* 1. Hero: the aqua gradient fades into the page with the solicitation
   page's mask; Watch and Sources use its header actions. */
.project-page-hero { position: relative; isolation: isolate; padding: 0 16px; }
.project-page-hero::before {
  position: absolute;
  z-index: -1;
  inset: 0;
  content: "";
  pointer-events: none;
  background: #eaf4f2 url("/assets/project_intelligence/project-gradient-03-desktop-3b039663.webp") center top / cover no-repeat;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 70%, rgba(0, 0, 0, .7) 82%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 70%, rgba(0, 0, 0, .7) 82%, transparent 100%);
}
.project-page-hero-inner { width: min(960px, 100%); margin: 0 auto; padding: 26px 0 64px; }
.project-intel-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.project-intel-actions form { margin: 0; }
.project-page .project-intel-actions .watchlist-toggle { min-height: 38px; padding: 0 14px; border: 1px solid var(--project-action); border-radius: 7px; background: var(--project-action); color: #fff; font-size: 13px; font-weight: 600; }
/* The eye icon is drawn dark; on the filled button it reads white. */
.project-page .project-intel-actions .watchlist-toggle:not(.is-watching) img { filter: brightness(0) invert(1); }
.project-page .project-intel-actions .watchlist-toggle.is-watching { border-color: #9cc8bf; background: #eaf5f2; color: var(--project-action); }
.project-page .project-intel-actions img { width: 16px; height: 16px; }
.project-page-sources-button { display: inline-flex; align-items: center; gap: 7px; min-height: 38px; padding: 0 14px; border: 1px solid #c9d8d3; border-radius: 7px; background: #fff; color: var(--project-action) !important; font-size: 13px; font-weight: 600 !important; }
.project-page-sources-button img { opacity: .75; }
.project-intel-breadcrumbs { display: flex; flex-wrap: wrap; gap: 6px; color: var(--project-copy); font-size: 13px; }
.project-intel-breadcrumbs a { font-weight: 500; }
.project-intel-breadcrumbs [aria-current="page"] { overflow-wrap: anywhere; }
.project-intel-return { display: inline-block; margin-top: 6px; font-size: 12px; }
.project-intel-meta { display: flex; flex-wrap: wrap; gap: 10px 0; margin: 18px 0 0; }
.project-intel-meta > div { padding: 0 20px; border-left: 1px solid #c3d6d2; }
.project-intel-meta > div:first-child { padding-left: 0; border-left: 0; }
.project-intel-meta dt { color: var(--project-copy); font-size: 11px; }
.project-intel-meta dd { margin: 0; font-size: 13px; font-weight: 600; }
.project-intel-meta dd a { color: var(--project-ink); }
.project-page-eyebrow { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 18px !important; color: #0b4f4a; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.project-page-condition { padding: 1px 10px; border: 1px solid #b9d6cf; border-radius: 999px; background: rgba(255, 255, 255, .75); color: #0b4f4a; letter-spacing: 0; text-transform: none; }
.project-page-condition.is-early { color: #6a6f54; }
.project-page-condition.is-paused, .project-page-condition.is-cancelled { color: #9a4a2a; }
.project-page h1 { max-width: 760px; margin: 18px 0 0; font-size: clamp(32px, 4vw, 46px); font-weight: 500; line-height: 1.1; overflow-wrap: anywhere; }
.project-page .project-name-basis { margin-top: 8px; }
.project-page-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 28px; align-items: end; margin-top: 18px; }
.project-page-sentence { font-family: Georgia, "Times New Roman", serif; font-size: clamp(18px, 1.9vw, 22px); line-height: 1.42; }
.project-intel-initial-notice { max-width: 640px; margin-top: 14px !important; color: var(--project-copy); font-size: 13px; }
.project-intel-verification { margin-top: 18px !important; color: var(--project-copy); font-size: 13px; }
.project-intel-single-source { color: #8a5a17; font-weight: 600; }
.project-page-checkpoint { display: grid; gap: 4px; padding: 16px 18px; border: 1px solid #d3e3df; border-radius: 12px; background: rgba(255, 255, 255, .94); box-shadow: 0 20px 55px rgba(27, 51, 58, .08); }
.project-page-checkpoint .project-page-label { color: var(--project-copy); font-weight: 600; letter-spacing: .08em; }
.project-page-checkpoint h2 { margin: 0; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 17px; font-weight: 600; line-height: 1.3; letter-spacing: 0; }
.project-page-checkpoint h2.is-empty { color: var(--project-copy); }
.project-page-checkpoint-date { font-size: 14px; }
.project-page-checkpoint-source { color: var(--project-copy); font-size: 12px; }
/* A source name that opens the evidence drawer. */
.project-page a.project-page-source { color: inherit; font-weight: inherit; border-bottom: 1px dotted #9db5b0; }
.project-page a.project-page-source:hover, .project-page a.project-page-source:focus-visible { color: var(--project-teal); text-decoration: none; border-bottom-color: var(--project-teal); }

/* Sections: white panels on the warm canvas, led by their question. */
.project-page-body { position: relative; display: grid; gap: 20px; width: min(960px, calc(100% - 32px)); margin: -24px auto 0; }
.project-page-section { min-width: 0; padding: 28px 32px; border: 1px solid var(--project-line); border-radius: 12px; background: #fff; }
.project-page-section > h2, .project-page-section-header h2, .project-page-procurements h2 { margin: 0 0 14px; font-size: 24px; font-weight: 500; line-height: 1.2; }
.project-page-section-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 6px 24px; margin-bottom: 4px; }
.project-page-section-header > p { color: #5f716f; font-size: 13px; }
.project-page-section h3 { margin-bottom: 0; }

/* 2. Where does it stand? The waterline gauge. */
.project-page-workstreams { padding-bottom: 24px; }
.project-page-gauge { position: relative; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 14px 0 0; padding: 0; list-style: none; }
.project-page-gauge::before, .project-page-gauge::after { content: ""; position: absolute; top: 14px; left: 0; height: 6px; border-radius: 3px; }
.project-page-gauge::before { right: 0; background: #e6eeeb; }
.project-page-gauge::after { width: var(--level); background: linear-gradient(90deg, #2c8c84, var(--project-teal)); }
.project-page-stage { position: relative; z-index: 1; min-width: 0; padding-right: 14px; }
.project-page-stage-mark { display: grid; place-items: center; box-sizing: border-box; width: 34px; height: 34px; border: 2px solid #cfdcd8; border-radius: 50%; background: #fff; color: var(--project-muted); font-size: 13px; }
.project-page-stage.is-done .project-page-stage-mark { border-color: var(--project-teal); background: var(--project-teal); color: #fff; }
.project-page-stage.is-now .project-page-stage-mark { border-color: var(--project-teal); box-shadow: 0 0 0 5px rgba(18, 109, 103, .14); color: var(--project-teal); font-weight: 700; }
.project-page-stage.is-unknown .project-page-stage-mark { border-style: dashed; }
.project-page-stage h3 { margin: 12px 0 2px; font-size: 14px; font-weight: 600; }
.project-page-stage p { color: var(--project-copy); font-size: 13px; line-height: 1.4; }
.project-page-stage a.project-page-source { border-bottom-color: #d5e0dc; }
.project-page-stage small { display: block; margin-top: 3px; font-size: 12px; }
.project-page-permits { margin-top: 18px; padding-top: 12px; border-top: 1px solid #edf1ef; font-size: 13px; }
.project-page-permits summary { color: var(--project-teal); font-weight: 600; cursor: pointer; }
.project-page-permits ul { display: grid; gap: 8px; margin: 10px 0; padding: 0; list-style: none; }
.project-page-permits li { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
.project-page-permits > p { color: var(--project-muted); }

/* 3. Procurements: one record card each. */
.project-page-procurements { display: grid; gap: 12px; margin-top: 12px; }
.project-page-procurements h2 { margin: 0; }
.project-page-procurements header > p { margin-top: 4px; color: #5f716f; font-size: 14px; }
.project-page-card { display: grid; grid-template-columns: minmax(0, 1fr) 230px; overflow: hidden; border: 1px solid var(--project-line); border-radius: 12px; background: #fff; }
.project-page-card-body { min-width: 0; padding: 20px 24px; }
.project-page-pill { display: inline-flex; align-items: center; gap: 7px; height: 26px; padding: 0 11px; border: 1px solid var(--project-line); border-radius: 13px; background: #f5f8f6; color: var(--project-ink); font-size: 12px; font-weight: 600; }
.project-page-pill::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--project-muted); }
.project-page-pill.is-open { border-color: #efd6b0; background: #fbefdc; color: #7a4a12; }
.project-page-pill.is-open::before { background: #a5641a; }
.project-page-pill.is-awarded::before { background: var(--project-teal); }
.project-page-pill.is-cancelled { color: #8d3f26; }
.project-page-pill.is-cancelled::before { background: #b5603f; }
.project-page-card h3 { margin: 12px 0 6px; font-size: 17px; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.project-page-card-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; color: var(--project-copy); font-size: 13px; }
.project-page-card-meta span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; overflow-wrap: anywhere; }
.project-page-card-meta img { flex: none; width: 15px; height: 15px; opacity: .7; }
.project-page-card-side { display: flex; flex-direction: column; justify-content: space-between; gap: 12px; padding: 20px 22px; border-left: 1px solid var(--project-line); background: #f8faf9; }
.project-page-card-side small { color: var(--project-muted); font-size: 12px; }
.project-page-card-side strong { display: block; margin-top: 2px; font-family: Georgia, "Times New Roman", serif; font-size: 19px; font-weight: 400; line-height: 1.25; overflow-wrap: anywhere; }
.project-page-card-side strong a { font-weight: 400; }
.project-page-card-side > a { font-size: 13px; }
.project-page-card-note { color: var(--project-muted); font-size: 12px; }
.project-page-card-results { margin-top: 8px !important; color: var(--project-copy); font-size: 13px; }
.project-page-card-results small { color: var(--project-muted); font-size: 12px; }

/* 4. What is it? */
.project-page-summary { max-width: 760px; color: #2e4c4d; font-size: 16px; }
.project-page-summary-source { margin-left: 4px; font-size: 13px; }
.project-intel-official-scope { margin-top: 10px; font-size: 13px; }
.project-intel-official-scope summary { color: var(--project-teal); font-weight: 600; cursor: pointer; }
.project-intel-official-scope ul { display: grid; gap: 8px; max-width: 760px; margin: 10px 0 0; padding: 0; list-style: none; color: var(--project-copy); }
.project-intel-official-scope li > span { color: var(--project-ink); font-weight: 600; }
.project-intel-official-scope li > a { margin-left: 8px; }
.project-page-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 16px 0 0; }
.project-page-facts > div { min-width: 0; padding: 12px 14px; border: 1px solid #e4ebe8; border-radius: 10px; background: #fbfcfb; }
.project-page-facts dt { color: #5f716f; font-size: 12px; }
.project-page-facts dd { display: grid; margin: 0; }
.project-page-facts strong { font-size: 17px; font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
.project-page-facts small { color: #5f716f; font-size: 12px; }
.project-page-interpretation { margin-top: 16px !important; color: var(--project-copy); font-size: 13px; }
.project-page-interpretation > span:first-child { margin-right: 6px; color: var(--project-teal); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }

/* 5. Is it real, and is it funded? */
.project-page-rows { margin: 0; padding: 0; list-style: none; }
.project-page-rows > li { display: grid; grid-template-columns: 170px minmax(0, 1fr) auto; gap: 4px 16px; align-items: baseline; padding: 12px 0; border-top: 1px solid #edf1ef; }
.project-page-rows strong { font-weight: 600; }
.project-page-rows p { font-weight: 500; }
.project-page-rows small { display: block; color: #5f716f; }
/* Funding badges by meaning (all pass WCAG AA, 6:1 or better): money secured
   is green, a decision without money blue, a request amber, closed grey. */
.project-page-chip { justify-self: end; padding: 2px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.project-page-chip.is-secured { background: #e3f2e6; color: #1d5b33; }
.project-page-chip.is-decision { background: #e3ecf7; color: #1f4d74; }
.project-page-chip.is-pending { background: #fff1d0; color: #6e4a07; }
.project-page-chip.is-closed { background: #eceff0; color: #4a5658; }
.project-page-chip.is-warning { background: #f8e6e0; color: #8d3f26; }

/* 6. What is being bought? Lanes over time. */
.project-page-timeline { position: relative; margin-top: 10px; }
.project-page-axis { display: grid; grid-template-columns: repeat(var(--years), minmax(0, 1fr)); margin: 0 0 0 226px; padding: 0 0 6px; border-bottom: 1px solid #e4ebe8; list-style: none; color: #5f716f; font-size: 12px; }
.project-page-axis-today { position: absolute; top: 0; bottom: 0; left: calc(226px + (100% - 226px) * var(--at) / 100); border-left: 1px dashed var(--project-teal); pointer-events: none; }
.project-page-lanes { margin: 0; padding: 0; list-style: none; }
.project-page-lane { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 16px; }
.project-page-lane-identity { min-width: 0; padding: 12px 0; border-bottom: 1px solid #edf1ef; }
.project-page-lane-identity h3 { font-size: 14px; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }
.project-page-lane-identity h3 a { color: var(--project-ink); }
.project-page-lane-identity p { color: #5f716f; font-size: 12px; }
.project-page-lane-track { position: relative; min-height: 62px; border-bottom: 1px solid #edf1ef; }
.project-page-lane-bar { position: absolute; top: 20px; box-sizing: border-box; height: 22px; padding: 0 6px; overflow: hidden; border: 1.5px solid #9cc8a6; border-radius: 6px; background: #eaf5e7; color: var(--project-ink); font-size: 12px; font-weight: 600; line-height: 19px; white-space: nowrap; }
.project-page-lane.is-open .project-page-lane-bar { border-color: var(--project-teal); background: #e1f1ef; }
.project-page-lane.is-closed .project-page-lane-bar { border-color: #b8c6c1; background: #eef2f0; }
.project-page-lane.is-cancelled .project-page-lane-bar { border-color: #d7a99a; background: #f8e9e4; }
.project-page-lane.is-forecast .project-page-lane-bar { border-style: dashed; border-color: #c58a2b; background: #fff4d8; }
.project-page-lane-label { position: absolute; top: 21px; left: calc(var(--at) + 1%); max-width: 60%; color: var(--project-ink); font-size: 12px; font-weight: 600; line-height: 1.35; }
.project-page-lane-label.is-before { left: auto; right: calc(100% - var(--start) + 1%); text-align: right; }
.project-page-lane-label.is-undated { position: static; display: block; max-width: none; padding-top: 14px; color: var(--project-copy); font-weight: 400; }

/* 7. Who is involved? / What changed? */
.project-page-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.project-page-columns > .project-page-section > h2 { font-size: 22px; }
.project-page-people { display: grid; gap: 10px; margin: 0; }
.project-page-people > div { padding-top: 8px; border-top: 1px solid #edf1ef; }
.project-page-people dt { color: #5f716f; font-size: 12px; }
.project-page-people dd { margin: 0; font-weight: 500; }
.project-page-people .is-unknown dd { color: var(--project-muted); font-weight: 400; }
.project-intel-recorded-roles { margin-top: 14px; padding-top: 10px; border-top: 1px solid #edf1ef; font-size: 13px; }
.project-intel-recorded-roles h3 { margin: 0; color: #5f716f; font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.project-intel-role-list { display: grid; gap: 10px; margin: 10px 0 0; padding: 0; list-style: none; }
.project-intel-role-list li { display: grid; }
.project-intel-role-list li > span { font-weight: 500; font-size: 14px; }
.project-intel-role-list small { color: #5f716f; font-size: 12px; }
.project-page-note { margin-top: 10px !important; color: var(--project-muted); font-size: 12px; }
.project-page-new { padding: 2px 8px; border-radius: 999px; background: #fff0e0; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 12px; font-weight: 600; vertical-align: middle; }
.project-page-changes ol { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.project-page-changes li { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 10px; padding-top: 8px; border-top: 1px solid #edf1ef; }
.project-page-changes time { color: #5f716f; font-size: 13px; }
.project-page-changes a.project-page-source { border-bottom-color: #d5e0dc; }

/* 8. What we don't know yet. */
.project-intel-unknowns { padding: 24px 32px; border-color: #ecd9c6; background: #fff8f2; }
.project-intel-unknowns > h2 { color: #6b3a0f; font-size: 22px; }
.project-page-unknown-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 32px; margin: 0; padding-left: 18px; list-style: disc; }
.project-page-unknown-list li::marker { color: #c27a2c; }
.project-page-unknown-list strong { font-weight: 600; }
.project-page-unknown-list p { margin-top: 2px !important; color: var(--project-copy); font-size: 13px; line-height: 1.5; }

/* 9. History: concise entries with a Today line. */
.project-page-history-legend { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; padding: 0; list-style: none; color: #5f716f; font-size: 12px; }
.project-page-history-legend li { display: flex; align-items: center; gap: 6px; }
.project-page-dot { flex: none; display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--project-planning); }
.project-page-dot.is-funding { background: var(--project-funding); }
.project-page-dot.is-design { background: var(--project-design); }
.project-page-dot.is-permitting { background: var(--project-permitting); }
.project-page-dot.is-procurement { background: var(--project-procurement); }
.project-page-dot.is-construction { background: var(--project-construction); }
.project-page-history { margin: 14px 0 0; padding: 0; list-style: none; }
.project-page-event { --marker: var(--project-planning); position: relative; display: grid; grid-template-columns: 110px 28px minmax(0, 1fr); padding-bottom: 20px; }
.project-page-event.is-funding { --marker: var(--project-funding); }
.project-page-event.is-design { --marker: var(--project-design); }
.project-page-event.is-permitting { --marker: var(--project-permitting); }
.project-page-event.is-procurement { --marker: var(--project-procurement); }
.project-page-event.is-construction { --marker: var(--project-construction); }
.project-page-event > time { padding: 2px 14px 0 0; color: #5f716f; font-size: 13px; text-align: right; }
.project-page-event::before { content: ""; position: absolute; top: 8px; bottom: -6px; left: calc(110px + 13px); border-left: 2px solid #d5dfdb; }
.project-page-event-marker { position: relative; z-index: 1; justify-self: center; box-sizing: border-box; width: 12px; height: 12px; margin-top: 6px; border: 2px solid var(--marker); border-radius: 50%; background: var(--marker); }
.project-page-event.is-passed .project-page-event-marker { border-style: dashed; background: #fff; }
.project-page-event.is-forecast:not(.is-passed) .project-page-event-marker { border-style: dashed; background: #fff; }
.project-page-today ~ .project-page-event::before { border-left-style: dashed; border-left-color: #c9d6d2; }
.project-page-event > div { min-width: 0; padding-left: 6px; }
.project-page-event h3 { font-size: 15px; font-weight: 600; }
.project-page-event p { color: var(--project-copy); font-size: 14px; }
.project-page-event a.project-page-source { color: #5f716f; font-size: 12px; font-weight: 400; }
.project-page-event-solicitation { font-size: 12px; }
.project-page-tag { margin-left: 4px; color: #8a4b14; font-size: 11px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.project-page-today { display: grid; grid-template-columns: 110px 28px minmax(0, 1fr); align-items: center; margin: 2px 0 20px; color: var(--project-teal); font-size: 13px; font-weight: 600; }
.project-page-today span { grid-column: 1; grid-row: 1; padding-right: 14px; text-align: right; }
.project-page-today::before { content: ""; grid-column: 2; grid-row: 1; justify-self: center; box-sizing: border-box; width: 16px; height: 16px; border: 3px solid var(--project-teal); border-radius: 50%; background: #fff; }
.project-page-today::after { content: ""; grid-column: 3; grid-row: 1; margin-left: 6px; border-top: 2px solid var(--project-teal); }
.project-page-history > :last-child::before { display: none; }

/* 10. More from the owner: the call to continue into the owner's portfolio
   (approved November 3, 2026). Same family as .solicitation-owner-invitation:
   #075057 button, white icon on it, teal icon filter elsewhere. */
.project-page-owner-call { --owner-call-icon: invert(37%) sepia(21%) saturate(1436%) hue-rotate(150deg) brightness(90%) contrast(88%); position: relative; isolation: isolate; overflow: hidden; margin-top: 8px; border: 1px solid #cee5e8; border-radius: 16px; background: linear-gradient(120deg, #f4fbfb 0%, #eaf6f4 48%, #e2f1f4 100%); box-shadow: inset 0 0 46px rgba(255, 255, 255, .7), 0 18px 48px rgba(21, 56, 58, .06); }
.project-page-owner-call::before { content: ""; position: absolute; z-index: -1; inset: 0; background: url("/assets/project_intelligence/project-gradient-03-desktop-3b039663.webp") center / cover no-repeat; opacity: .5; pointer-events: none;
  -webkit-mask-image: radial-gradient(120% 90% at 100% 0%, #000 0%, rgba(0, 0, 0, .55) 38%, transparent 70%);
  mask-image: radial-gradient(120% 90% at 100% 0%, #000 0%, rgba(0, 0, 0, .55) 38%, transparent 70%); }
.project-page-owner-call-head { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 44px; align-items: center; padding: 36px 38px 28px; }
.project-page-owner-call-kicker { display: flex; align-items: center; gap: 8px; margin: 0 0 10px !important; color: #46676d; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.project-page-owner-call-kicker img, .project-page-owner-call-action li img, .project-page-owner-card-tile img, .project-page-owner-card-go img { filter: var(--owner-call-icon); }
.project-page-owner-call-kicker img { width: 16px; height: 16px; }
.project-page .project-page-owner-call h2 { max-width: 560px; margin: 0; color: var(--project-ink); font-size: 31px; font-weight: 500; line-height: 1.15; letter-spacing: -.01em; }
.project-page-owner-call-lede { max-width: 540px; margin-top: 12px !important; color: var(--project-copy); font-size: 15px; line-height: 1.55; }
.project-page-owner-call-stats { display: flex; flex-wrap: wrap; gap: 10px 26px; margin-top: 20px !important; }
.project-page-owner-call-stats span { display: flex; align-items: baseline; gap: 7px; color: var(--project-copy); font-size: 13px; }
.project-page-owner-call-stats span + span { padding-left: 26px; border-left: 1px solid #c9dedd; }
.project-page-owner-call-stats strong { color: var(--project-ink); font-family: Georgia, "Times New Roman", serif; font-size: 26px; font-weight: 500; line-height: 1; }
.project-page-owner-call-action { padding-left: 36px; border-left: 1px solid #c9dedd; }
.project-page a.project-page-owner-call-button { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 52px; padding: 0 20px; border-radius: 9px; background: #075057; color: #fff; font-size: 15px; font-weight: 600; text-decoration: none; box-shadow: 0 10px 24px rgba(7, 80, 87, .18); }
.project-page a.project-page-owner-call-button:hover, .project-page a.project-page-owner-call-button:focus-visible { background: #063e44; color: #fff; }
.project-page-owner-call-button img { width: 20px; height: 20px; filter: brightness(0) invert(1); }
.project-page-owner-call-action > p { margin-top: 12px !important; color: #5f716f; font-size: 13px; line-height: 1.5; }
.project-page-owner-call-action ul { display: grid; gap: 9px; margin: 18px 0 0; padding: 16px 0 0; border-top: 1px solid #d6e6e4; list-style: none; }
.project-page-owner-call-action li a { display: flex; align-items: center; gap: 10px; font-size: 14px; }
.project-page-owner-call-action li img { width: 17px; height: 17px; }
.project-page-owner-call-action li em { color: #5f716f; font-style: normal; font-weight: 500; }
.project-page-owner-rail { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0 38px 34px; list-style: none; }
.project-page a.project-page-owner-card { display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 220px; box-sizing: border-box; padding: 18px 18px 16px; border: 1px solid #dde8eb; border-radius: 12px; background: rgba(255, 255, 255, .94); box-shadow: 0 1px 3px rgba(33, 70, 69, .05), 0 10px 26px rgba(21, 56, 58, .05); color: var(--project-ink); font-weight: 400; text-decoration: none; }
.project-page a.project-page-owner-card:hover, .project-page a.project-page-owner-card:focus-visible { border-color: #9cc8bf; }
.project-page-owner-card-top { display: flex; justify-content: space-between; align-items: center; }
.project-page-owner-card-tile { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 1px solid #dde8eb; border-radius: 10px; background: #fff; box-shadow: 0 1px 3px #21464509; }
.project-page-owner-card-tile img { width: 18px; height: 18px; }
.project-page-owner-card-chip { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px; border-radius: 12px; background: #eef5f3; color: #245a57; font-size: 11.5px; font-weight: 700; }
.project-page-owner-card-chip::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--project-teal); }
.project-page-owner-card-chip.is-plan { background: #f1f4f3; color: var(--project-copy); }
.project-page-owner-card-chip.is-plan::before { background: #5f8f87; }
.project-page-owner-card-chip.is-build { background: #fbf2df; color: #6f4f0f; }
.project-page-owner-card-chip.is-build::before { background: #a5641a; }
.project-page-owner-card-gauge { display: grid; grid-template-columns: repeat(6, 1fr); gap: 3px; align-items: center; }
.project-page-owner-card-gauge i { height: 5px; border-radius: 3px; background: #e1ebe8; }
.project-page-owner-card-gauge i.is-done { background: var(--project-teal); }
.project-page-owner-card-gauge i.is-now { height: 12px; box-sizing: border-box; border: 2px solid var(--project-teal); border-radius: 6px; background: var(--project-teal); box-shadow: 0 0 0 2px rgba(18, 109, 103, .18); }
.project-page-owner-card-title { font-family: Georgia, "Times New Roman", serif; font-size: 17px; font-weight: 500; line-height: 1.28; }
.project-page-owner-card-next { margin-top: auto; color: var(--project-copy); font-size: 12.5px; line-height: 1.45; }
.project-page-owner-card-next b { display: block; color: var(--project-ink); font-weight: 600; }
.project-page-owner-card-go { display: flex; align-items: center; gap: 6px; padding-top: 10px; border-top: 1px solid #edf2f0; color: var(--project-teal); font-size: 12.5px; font-weight: 600; }
.project-page-owner-card-go img { width: 14px; height: 14px; }
.project-page a.project-page-owner-card.is-more { justify-content: center; align-items: flex-start; gap: 6px; border-style: dashed; background: rgba(255, 255, 255, .55); box-shadow: none; }
.project-page-owner-card.is-more strong { font-family: Georgia, "Times New Roman", serif; font-size: 30px; font-weight: 500; line-height: 1; }
.project-page-owner-card.is-more > span:not(.project-page-owner-card-go) { color: var(--project-copy); font-size: 13px; }
.project-page-owner-card.is-more .project-page-owner-card-go { display: inline-flex; margin-top: 4px; padding-top: 4px; border: 0; white-space: nowrap; }
@media (max-width: 900px) {
  .project-page-owner-call-head { grid-template-columns: 1fr; gap: 24px; padding: 28px 22px 22px; }
  .project-page-owner-call-action { padding: 22px 0 0; border-top: 1px solid #c9dedd; border-left: 0; }
  .project-page-owner-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 0 22px 24px; }
}
@media (max-width: 680px) {
  .project-page .project-page-owner-call h2 { font-size: 25px; }
  .project-page-owner-call-stats span + span { padding-left: 0; border-left: 0; }
  .project-page-owner-rail { grid-template-columns: 1fr; }
  .project-page a.project-page-owner-card { min-height: 0; }
}

/* 10. Related projects and sources. */
.project-page-related, .project-page-sources { display: grid; gap: 8px; padding: 0 4px; color: var(--project-copy); font-size: 14px; }
.project-page-related h2, .project-page-sources h2 { margin: 0; color: #5f716f; font-family: Inter, ui-sans-serif, system-ui, sans-serif; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.project-page-related small { color: var(--project-muted); font-size: 12px; }
.project-page-sources ol { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.project-page-sources > p { font-size: 12px; color: var(--project-muted); }
.project-page-sources li > details > summary { cursor: pointer; }
.project-page-source-title { margin-right: 10px; color: var(--project-ink); border-bottom: 1px dotted #9db5b0; }
.project-intel-evidence-records article { margin: 8px 0 12px; padding: 14px 18px; border: 1px solid var(--project-line); border-radius: 10px; background: #fff; font-size: 13px; }
.project-page-source-actions { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.project-page-source-actions img { width: 13px; height: 13px; vertical-align: -1px; }
.project-page-source-location { margin-top: 4px !important; color: var(--project-muted); font-size: 12px; overflow-wrap: anywhere; }
.project-intel-evidence-records blockquote { margin: 8px 0 0; color: var(--project-copy); overflow-wrap: anywhere; }
.project-intel-evidence-records dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px 20px; margin: 12px 0 0; }
.project-intel-evidence-records dt { color: var(--project-muted); font-size: 11px; }
.project-intel-evidence-records dd { margin: 0; overflow-wrap: anywhere; }
.project-intel-evidence-records code { font-size: 11px; word-break: break-all; }
.project-page-sources details summary { color: var(--project-teal); font-size: 13px; font-weight: 600; cursor: pointer; }
.project-page-sources details ol { margin-top: 6px; }

/* Phone keeps the same order: the gauge turns vertical and card panels move
   below; nothing scrolls sideways. */
@media (max-width: 900px) {
  .project-page-hero-grid { grid-template-columns: 1fr; gap: 20px; }
  .project-page-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .project-page-columns { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .project-page-hero-inner { padding: 16px 0 52px; }
  .project-intel-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; }
  .project-intel-meta > div { padding: 0; border: 0; }
  .project-page-body { width: calc(100% - 32px); gap: 14px; }
  .project-page-section { padding: 20px 18px; }
  .project-page-section > h2, .project-page-section-header h2, .project-page-procurements h2 { font-size: 21px; }
  .project-page-gauge { grid-template-columns: 1fr; gap: 14px; }
  .project-page-gauge::before, .project-page-gauge::after { top: 0; left: 14px; width: 6px; right: auto; }
  .project-page-gauge::before { bottom: 0; }
  .project-page-gauge::after { height: var(--level); }
  .project-page-stage { display: grid; grid-template-columns: 34px minmax(0, 1fr); column-gap: 14px; padding: 0; }
  .project-page-stage-mark { grid-row: 1 / span 3; }
  .project-page-stage h3 { margin: 0; }
  .project-page-card { grid-template-columns: 1fr; }
  .project-page-card-side { flex-direction: row; flex-wrap: wrap; align-items: flex-end; border-top: 1px solid var(--project-line); border-left: 0; }
  .project-page-card-body, .project-page-card-side { padding: 18px; }
  .project-page-rows > li { grid-template-columns: minmax(0, 1fr) auto; }
  .project-page-rows > li > div { grid-column: 1 / -1; grid-row: 2; }
  .project-page-axis { margin: 0; }
  .project-page-axis li:nth-child(even) { color: transparent; }
  .project-page-axis-today { left: calc(100% * var(--at) / 100); }
  .project-page-lane { grid-template-columns: 1fr; gap: 0; }
  .project-page-lane-identity { padding-bottom: 0; border-bottom: 0; }
  .project-page-unknown-list { grid-template-columns: 1fr; }
  .project-page-changes li { grid-template-columns: 1fr; gap: 2px; }
  .project-page-event, .project-page-today { grid-template-columns: 70px 22px minmax(0, 1fr); }
  .project-page-event::before { left: calc(70px + 10px); }
}
