.campaign-layout { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr); gap:clamp(38px,7vw,88px); align-items:start; }
.campaign-kicker { display:inline-flex; padding:8px 12px; color:var(--leaf); background:#e4eadb; font:500 11px/1 "Space Grotesk",Arial,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.campaign-card,.roadmap-card,.budget-row,.control-card,.giving-path { background:#f8f3e8; border:1px solid var(--line); }
.campaign-card,.roadmap-card,.control-card,.giving-path { padding:clamp(24px,4vw,38px); }
.campaign-card h2,.campaign-card h3,.roadmap-card h3,.control-card h3,.giving-path h3 { margin-top:0; }
.campaign-meter { height:14px; margin-top:28px; overflow:hidden; background:rgba(82,107,82,.16); border:1px solid rgba(82,107,82,.35); border-radius:999px; }
.campaign-meter span { display:block; width:0; height:100%; background:var(--gold); transition:width 500ms ease; }
.campaign-updated { margin:12px 0 0; color:var(--muted); font-size:14px; }
.campaign-stat-grid,.roadmap-grid,.control-grid,.giving-paths { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.campaign-stat { padding:24px; background:#ebe3d2; border-top:3px solid var(--gold); }
.campaign-stat strong { display:block; color:var(--leaf); font:600 clamp(30px,4vw,44px)/1 "Cormorant Garamond",Georgia,serif; }
.campaign-stat span,.status-label,.path-label { font:500 11px/1.3 "Space Grotesk",Arial,sans-serif; letter-spacing:.11em; text-transform:uppercase; }
.campaign-stat span { display:block; margin-top:8px; color:var(--muted); }
.budget-list { display:grid; gap:10px; }
.budget-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; padding:17px 20px; }
.budget-row strong { color:var(--leaf); white-space:nowrap; }
.budget-row.total { color:var(--paper); background:var(--leaf); border-color:var(--leaf); }
.budget-row.total strong { color:var(--paper); }
.roadmap-card { position:relative; min-height:260px; }
.roadmap-card[data-status="active"] { border-top:6px solid #58734c; }
.roadmap-card[data-status="next"] { border-top:6px solid var(--gold); }
.roadmap-card[data-status="confidential"] { border-top:6px solid #93603f; }
.roadmap-card[data-status="future"] { border-top:6px solid #9d978b; }
.status-label,.path-label { display:inline-block; margin-bottom:18px; color:var(--leaf); }
.path-label.direct { color:#3f6946; }
.gate-list,.plain-list { padding-left:20px; color:var(--muted); }
.gate-list li,.plain-list li { margin-bottom:9px; }
.fine-rule { padding:22px 24px; color:var(--muted); background:#ebe3d2; border-left:5px solid var(--gold); }
@media (max-width:760px) { .campaign-layout,.campaign-stat-grid,.roadmap-grid,.control-grid,.giving-paths { grid-template-columns:1fr; } }

/* Connected roadmap */
.roadmap-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; }
.roadmap-heading h2 { margin-bottom:0; }
.route-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px 18px; font:500 11px/1.2 "Space Grotesk",sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.route-legend span { display:flex; align-items:center; gap:7px; white-space:nowrap; }
.route-legend i { width:11px; height:11px; border-radius:50%; display:block; background:#58734c; }
.route-legend i[data-key="next"] { background:var(--gold); }
.route-legend i[data-key="pilot"] { background:#93603f; }
.route-legend i[data-key="future"] { background:#f8f3e8; border:2px solid #8e8a82; }
.roadmap-route { position:relative; margin-top:42px; }
.route-curve { position:absolute; inset:0 0 auto; width:100%; height:160px; pointer-events:none; }
.route-curve path { fill:none; stroke-width:8; vector-effect:non-scaling-stroke; stroke-linecap:round; }
.route-base { stroke:#d9d1c0; }
.route-active { stroke:#58734c; }
.route-next { stroke:var(--gold); }
.route-future { stroke:#8e8a82; stroke-dasharray:5 15; }
.route-milestones { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.route-milestone { position:relative; min-width:0; padding:176px 12px 0; --node-y:100px; }
.route-milestone::before { content:""; position:absolute; left:50%; top:var(--node-y); height:calc(176px - var(--node-y)); width:1px; background:currentColor; opacity:.45; }
.route-milestone article { position:relative; background:#f8f3e8; border:1px solid var(--line); padding:24px; }
.route-milestone h3 { margin:7px 0 9px; font-size:clamp(25px,2.4vw,34px); line-height:1; }
.route-milestone p { margin:0; }
.route-milestone .route-gate { margin-top:14px; padding-top:12px; border-top:1px solid var(--line); font-size:.88rem; line-height:1.45; }
.route-node { position:absolute; left:50%; top:var(--node-y); transform:translate(-50%,-50%); z-index:2; width:46px; height:46px; display:grid; place-items:center; border-radius:50%; border:6px solid #eee5d3; color:#fff; font:600 12px/1 "Space Grotesk",sans-serif; }
.route-milestone[data-status="active"] { color:#58734c; }
.route-milestone[data-status="active"] .route-node { background:#58734c; }
.route-milestone[data-status="next"] { color:#8d6a22; --node-y:60px; }
.route-milestone[data-status="next"] .route-node { background:var(--gold); color:#2d281d; }
.route-milestone[data-status="confidential"] { color:#93603f; }
.route-milestone[data-status="confidential"] .route-node { background:#93603f; }
.route-milestone[data-status="future"] { color:#6f6b64; --node-y:60px; }
.route-milestone[data-status="future"] .route-node { background:#f8f3e8; border-color:#ded6c6; box-shadow:inset 0 0 0 3px #8e8a82; color:#6f6b64; }
.compact-heading { max-width:720px; }
.readiness-strip { list-style:none; padding:0; margin:34px 0 0; display:grid; grid-template-columns:repeat(7,1fr); border:1px solid var(--line); background:#f8f3e8; }
.readiness-strip li { min-height:94px; padding:18px 12px; display:flex; flex-direction:column; justify-content:space-between; border-right:1px solid var(--line); font:500 12px/1.2 "Space Grotesk",sans-serif; letter-spacing:.06em; text-transform:uppercase; }
.readiness-strip li:last-child { border-right:0; }
.readiness-strip span { color:#817a6b; font-size:10px; }
.phase-line { position:relative; list-style:none; margin:48px 0 0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:26px; }
.phase-line::before { content:""; position:absolute; left:5%; right:5%; top:23px; height:2px; background:linear-gradient(90deg,#58734c 0 33%,var(--gold) 33% 67%,#93603f 67% 100%); }
.phase-line li { position:relative; }
.phase-node { position:relative; z-index:1; width:48px; height:48px; display:grid; place-items:center; border-radius:50%; background:#58734c; border:6px solid #eee5d3; color:#fff; font:600 11px/1 "Space Grotesk",sans-serif; }
.phase-line li:nth-child(2) .phase-node { background:#7a845f; }
.phase-line li:nth-child(3) .phase-node { background:var(--gold); color:#2d281d; }
.phase-line li:nth-child(4) .phase-node { background:#93603f; }
.phase-line article { margin-top:18px; padding-top:16px; border-top:1px solid var(--line); }
.phase-line h3 { margin:0 0 8px; }
.phase-line p { margin:0; }

@media (max-width:1100px) {
  .roadmap-heading { display:block; }
  .route-legend { justify-content:flex-start; margin-top:24px; }
  .roadmap-route { margin-top:40px; }
  .route-curve { display:none; }
  .route-milestones { grid-template-columns:1fr; gap:0; }
  .route-milestone { padding:0 0 24px 56px; }
  .route-milestone:last-child { padding-bottom:0; }
  .route-milestone::before { left:21px; top:45px; bottom:-45px; height:auto; width:0; border-left:3px solid currentColor; opacity:.65; }
  .route-milestone[data-status="confidential"]::before { border-left-style:dashed; }
  .route-milestone:last-child::before { display:none; }
  .route-milestone .route-node { left:0; top:22px; transform:none; }
  .readiness-strip { grid-template-columns:repeat(4,1fr); }
  .readiness-strip li:nth-child(4) { border-right:0; }
  .readiness-strip li:nth-child(-n+4) { border-bottom:1px solid var(--line); }
}
@media (max-width:640px) {
  .route-legend { display:grid; grid-template-columns:1fr 1fr; }
  .route-milestone { padding-left:48px; }
  .route-milestone::before { left:18px; top:42px; bottom:-42px; }
  .route-milestone .route-node { width:40px; height:40px; border-width:5px; }
  .route-milestone article { padding:21px; }
  .readiness-strip { grid-template-columns:repeat(2,1fr); }
  .readiness-strip li,.readiness-strip li:nth-child(4) { border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
  .readiness-strip li:nth-child(even) { border-right:0; }
  .readiness-strip li:last-child { grid-column:1/-1; border-bottom:0; }
  .phase-line { display:block; margin-left:20px; }
  .phase-line::before { left:23px; right:auto; top:20px; bottom:20px; width:2px; height:auto; background:#58734c; }
  .phase-line li { display:grid; grid-template-columns:48px 1fr; gap:18px; margin-bottom:26px; }
  .phase-line article { margin:0; padding:3px 0 0; border:0; }
}
