/* 95 Forward — Visit mode (Register B). Full-screen, calm, large type, low chrome. Three phases: Before · During · After (debrief). The ask is serif. */ const VM = window.Ds95ForwardDesignSystem_31a0c4 || {}; const DISCOVERY = [ "What first drew you to this work?", "What would you most want to see change for kids in this city in five years?", "When you picture the new youth center full of children, what does that mean to you?", "What would make a gift like this feel right for your family's foundation?", ]; function VisitTop({ phase, onExit }) { const { Icon } = window.POC; const labels = { before: "Before — prepare", during: "During — at their side", after: "After — debrief" }; return (
With the Hartwell Family Foundation
{labels[phase]} · Tom Bradley made the intro
); } function VisitMode({ go }) { const D = window.POC_DATA; const { Icon, Eyebrow } = window.POC; const { Button, Badge, HorizonTag } = VM; const [phase, setPhase] = React.useState("before"); const [qi, setQi] = React.useState(0); const [showAsk, setShowAsk] = React.useState(false); const [outcome, setOutcome] = React.useState(null); const shell = { position: "absolute", inset: 0, background: "var(--haze-50)", display: "flex", flexDirection: "column", zIndex: 20, overflow: "hidden" }; /* ---------------- BEFORE ---------------- */ if (phase === "before") { const facts = [["Estimated capacity", "$250,000"], ["Last gift", "$60,000 · Mar 2024"], ["Giving focus", "Youth & education"], ["Window", "Committee meets Q3"]]; return (
go("prospect", { id: "p1" })} />
The goal of this visit

Secure the naming-gift conversation — and a date for Eleanor to see the program herself.

Lead with
The youth-center capital priority and the naming opportunity.
Discovery & power questions
{DISCOVERY.map((q, i) => (
{i + 1} {q}
))}
The planned ask
$250,000
Names the new youth wing · funds the capital campaign.
Who opens the door
Tom Bradley
Board member on the giving committee — made the warm intro.
What we know
{facts.map(([k, v], i) => (
{k} {v}
))}
); } /* ---------------- DURING ---------------- */ if (phase === "during") { return (
go("prospect", { id: "p1" })} /> {/* progress */}
{DISCOVERY.map((_, i) => )}
{showAsk ? ( <> The ask — clear and dignified

“Would you consider a gift of $250,000 to name the new youth wing?”

Say the number. Then stop talking, and listen.

Copilot drafted this from their $250K capacity
) : ( <> Question {qi + 1} of {DISCOVERY.length}

{DISCOVERY[qi]}

A question, then space. Resist filling the silence.

)}
{/* quick-capture chips */}
{[["Note", "pencil"], ["Capture a referral", "git-branch"], ["Log an objection", "message-circle-warning"]].map(([l, ic]) => ( ))}
{/* nav */}
{showAsk ? ( <> ) : qi < DISCOVERY.length - 1 ? ( <> {qi > 0 ? : null} ) : ( <> )}
); } /* ---------------- AFTER (debrief) ---------------- */ const OUTCOMES = [["Commitment", "check-circle-2", "var(--sage-600)"], ["Roadmap", "route", "var(--blue-600)"], ["Decline", "circle-slash", "var(--ink-400)"]]; return (
go("prospect", { id: "p1" })} />
The outcome
{OUTCOMES.map(([l, ic, c]) => ( ))}
{outcome === "Roadmap" ?
A clear next step is a win — not a no.
: null}
{outcome ? (
Numbers on the table
$250,000
Named, not yet committed.
The next step
Site visit with Eleanor before the Q3 committee.
{/* copilot-drafted 24h follow-up */}
Copilot drafted your 24-hour follow-up

“Eleanor — thank you for the time today. I'll send the program outcomes you asked about and propose two dates for a site visit before your committee meets. It was a real pleasure.”

The 24-hour clock starts now — follow up by tomorrow
) : null}
); } window.POC = Object.assign(window.POC || {}, { VisitMode });