/* =========================================================
   Section 6 — Built with the Kit · PoCs in the wild.
   Cards: name · value prop · what they leverage · phase shape ·
          trigger · status badge · link.
   ========================================================= */
const POCS = [
  {
    id: "warm-intros",
    name: "Warm Intros",
    tag: "Pay privately for an organic introduction",
    valueProp:
      "Drop a private bounty for a warm intro to someone you want to meet. The introducer pockets the bounty once the matched person confirms the conversation happened.",
    leverages: [
      "Conditional private escrow",
      "Selective disclosure of requester identity to the matched introducer",
    ],
    phase: "TBD · in design",
    timeout: "TBD",
    trigger: "TBD",
    status: "In progress",
    link: null,
    tone: "stub",
  },
  {
    id: "submit",
    name: "Your implementation",
    tag: "Open slot · ship the next one",
    valueProp:
      "Built on the Kit? Open a PR with a short writeup and your phase shape; we'll add you to this row.",
    leverages: ["Conditional private escrow · whatever fits"],
    phase: "Yours",
    timeout: "Yours",
    trigger: "Yours",
    status: "Open slot",
    link: "https://github.com/AztecProtocol/escrow-kit/discussions",
    tone: "slot",
  },
];

function PoCSection({ asSubsection = false }) {
  const Wrapper = asSubsection ? "div" : "section";
  const wrapperProps = asSubsection
    ? { style: { padding: "56px 0 24px" } }
    : {
        id: "pocs",
        "data-screen-label": "PoCs in the wild",
        style: {
          background: "var(--az-parchment-2)",
          padding: "120px 40px",
          borderTop: "1px solid rgba(26,20,0,0.12)",
        },
      };
  const innerStyle = asSubsection ? {} : { maxWidth: 1280, margin: "0 auto" };
  const cols = POCS.length === 1 ? "1fr" : `repeat(${Math.min(POCS.length, 3)}, 1fr)`;

  return (
    <Wrapper {...wrapperProps}>
      <div style={innerStyle}>
        <SectionHead
          number="06"
          label="In progress"
          title={asSubsection ? "Other escrows in flight." : "Built with the Kit."}
          sub="What a conditional private escrow lets you build when the release trigger can come from anywhere on the open web. One underway. The next slot is yours."
          asSubsection={asSubsection}
        />

        <div
          style={{
            marginTop: 48,
            display: "grid",
            gridTemplateColumns: cols,
            gap: 16,
          }}
          className="poc-grid"
        >
          {POCS.map((p) => (
            <PoCCard key={p.id} p={p} />
          ))}
        </div>
      </div>
    </Wrapper>
  );
}

function PoCCard({ p }) {
  const stub = p.tone === "stub";
  const slot = p.tone === "slot";
  const muted = stub;

  return (
    <article
      style={{
        background: "var(--az-parchment)",
        border: "1px solid var(--az-ink)",
        padding: slot ? "0 26px 24px" : "28px 26px 24px",
        display: "flex",
        flexDirection: "column",
        gap: 20,
        minHeight: 520,
        position: "relative",
        overflow: "hidden",
      }}
    >
      {slot && (
        <div
          aria-hidden="true"
          style={{
            position: "absolute",
            top: 0,
            left: 0,
            right: 0,
            height: 12,
            background: "var(--az-chartreuse)",
          }}
        />
      )}
      {slot && (
        <div
          aria-hidden="true"
          style={{
            position: "absolute",
            right: -10,
            bottom: -10,
            opacity: 0.07,
            color: "var(--az-ink)",
            pointerEvents: "none",
          }}
        >
          <BrandMark size={88} />
        </div>
      )}
      {slot && <div style={{ height: 28 }} />}
      <div
        style={{
          position: "absolute",
          top: slot ? 28 : 18,
          right: 18,
          zIndex: 2,
        }}
      >
        <StatusBadge status={p.status} />
      </div>

      <div style={{ display: "flex", flexDirection: "column", gap: 10, marginTop: 8 }}>
        <h3
          style={{
            margin: 0,
            fontFamily: "ABC Arizona Serif, Georgia, serif",
            fontWeight: 300,
            fontStyle: slot ? "italic" : "normal",
            fontSize: 36,
            lineHeight: 0.98,
            letterSpacing: "-0.03em",
            color: muted ? "var(--az-stone)" : "var(--az-ink)",
            maxWidth: "75%",
          }}
        >
          {p.name}
        </h3>
        <div
          style={{
            fontFamily: "var(--ff-display-alt)",
            fontSize: 11,
            letterSpacing: "0.08em",
            textTransform: "uppercase",
            color: muted ? "var(--az-stone-2)" : "var(--az-ink-soft)",
          }}
        >
          {p.tag}
        </div>
      </div>

      <p
        style={{
          margin: 0,
          fontFamily: "var(--ff-serif)",
          fontWeight: 300,
          fontSize: 15.5,
          lineHeight: 1.5,
          color: muted ? "var(--az-stone)" : "var(--az-ink)",
        }}
      >
        {p.valueProp}
      </p>

      <div
        style={{
          display: "flex",
          flexDirection: "column",
          gap: 4,
          borderTop: "1px solid",
          borderColor: muted ? "rgba(26,20,0,0.12)" : "var(--az-ink)",
          paddingTop: 16,
        }}
      >
        <div
          style={{
            fontFamily: "var(--ff-display-alt)",
            fontSize: 10,
            letterSpacing: "0.08em",
            textTransform: "uppercase",
            color: "var(--az-stone)",
            marginBottom: 6,
          }}
        >
          What they leverage
        </div>
        <ul
          style={{
            margin: 0,
            padding: 0,
            listStyle: "none",
            display: "flex",
            flexDirection: "column",
            gap: 4,
          }}
        >
          {p.leverages.map((lv, i) => (
            <li
              key={i}
              style={{
                fontFamily: "var(--ff-sans)",
                fontWeight: 500,
                fontSize: 13,
                color: muted ? "var(--az-stone)" : "var(--az-ink-soft)",
                paddingLeft: 14,
                position: "relative",
                lineHeight: 1.5,
              }}
            >
              <span
                style={{
                  position: "absolute",
                  left: 0,
                  top: "0.65em",
                  width: 6,
                  height: 1,
                  background: muted ? "var(--az-stone-2)" : "var(--az-ink)",
                }}
              />
              {lv}
            </li>
          ))}
        </ul>
      </div>

      <div
        style={{
          marginTop: "auto",
          display: "grid",
          gridTemplateColumns: "1fr 1fr",
          gap: 12,
          borderTop: "1px solid",
          borderColor: muted ? "rgba(26,20,0,0.12)" : "var(--az-ink)",
          paddingTop: 14,
        }}
      >
        <PoCMeta label="Phase shape" value={p.phase} muted={muted} mono />
        <PoCMeta label="Trigger" value={p.trigger} muted={muted} />
        <PoCMeta label="Timeout" value={p.timeout} muted={muted} />
        <div style={{ display: "flex", alignItems: "flex-end", justifyContent: "flex-end" }}>
          {p.link ? (
            <a
              href={p.link}
              target="_blank"
              rel="noreferrer noopener"
              style={{
                fontFamily: "var(--ff-sans)",
                fontWeight: 500,
                fontSize: 13,
                color: muted ? "var(--az-stone)" : "var(--az-ink)",
                textDecoration: "none",
                borderBottom: `1px solid ${muted ? "var(--az-stone-2)" : "var(--az-ink)"}`,
                paddingBottom: 2,
              }}
            >
              {slot ? "Submit your implementation" : "Visit"} →
            </a>
          ) : (
            <span
              style={{
                fontFamily: "var(--ff-sans)",
                fontWeight: 500,
                fontSize: 13,
                color: "var(--az-stone)",
              }}
            >
              Follow along →
            </span>
          )}
        </div>
      </div>
    </article>
  );
}

function PoCMeta({ label, value, muted, mono }) {
  return (
    <div>
      <div
        style={{
          fontFamily: "var(--ff-display-alt)",
          fontSize: 9.5,
          letterSpacing: "0.08em",
          textTransform: "uppercase",
          color: "var(--az-stone)",
          marginBottom: 4,
        }}
      >
        {label}
      </div>
      <div
        style={{
          fontFamily: mono ? "var(--ff-mono)" : "var(--ff-sans)",
          fontWeight: 500,
          fontSize: mono ? 11.5 : 13,
          color: muted ? "var(--az-stone)" : "var(--az-ink-soft)",
          letterSpacing: mono ? "-0.005em" : "-0.01em",
        }}
      >
        {value}
      </div>
    </div>
  );
}

/* =========================================================
   Section 7 — Design Assistant.
   Live-feeling input/output mock for the Claude skill.
   ========================================================= */
const ASSISTANT_PROMPTS = [
  {
    prompt:
      "A private bug-bounty escrow that releases when a maintainer's GitHub merges a fix PR.",
    phases: [
      { num: "01", name: "Open",     entry: "bounty published, funds in escrow",      exit: "researcher claims, deliverable PR posted" },
      { num: "02", name: "Locked",   entry: "claim accepted, PR ref committed",        exit: "zkTLS proof: PR #N state == merged", lead: true },
      { num: "03", name: "Released", entry: "verifier accepts proof",                  exit: "terminal · payout to researcher" },
      { num: "03b", name: "Refunded", entry: "timeout fires",                           exit: "terminal · refund to bounty-giver", muted: true },
    ],
    trigger: {
      kind: "zkTLS proof",
      source: "api.github.com/repos/{owner}/{repo}/pulls/{n}",
    },
    privacy: "Researcher identity is selectively disclosed to the maintainer at Locked. Bounty amount and any second-place claimants stay private.",
  },
  {
    prompt:
      "Freelance milestone escrow: client funds the work, escrow releases when a signed delivery note is posted.",
    phases: [
      { num: "01", name: "Open",     entry: "client funds milestone",            exit: "contractor accepts; SOW hash committed" },
      { num: "02", name: "Locked",   entry: "work in progress, hash on record",  exit: "arbiter signature over hash(milestone, deliverable)", lead: true },
      { num: "03", name: "Released", entry: "signature verified",                exit: "terminal · payout to contractor" },
      { num: "03b", name: "Refunded", entry: "60 days without acceptance",         exit: "terminal · refund to client", muted: true },
    ],
    trigger: {
      kind: "Signature",
      source: "EIP-712 · arbiter key bound at Open",
    },
    privacy: "Milestone hash is public; the deliverable itself stays off-chain. Contractor and client identities remain private unless they choose to disclose.",
  },
  {
    prompt:
      "Conditional research grant: tranches release when a preprint with the right DOI is published.",
    phases: [
      { num: "01", name: "Open",       entry: "grantor commits 3 tranches",            exit: "researcher claims tranche i" },
      { num: "02", name: "Locked[i]",  entry: "tranche i in custody",                   exit: "zkTLS proof: arxiv.org/abs/{doi} resolves & author == researcher", lead: true },
      { num: "03", name: "Released[i]", entry: "proof verified for tranche i",          exit: "terminal[i] · payout to researcher" },
      { num: "03b", name: "Refunded[i]", entry: "epoch[i] + 6mo elapses",                 exit: "terminal[i] · refund to grantor", muted: true },
    ],
    trigger: {
      kind: "zkTLS proof",
      source: "arxiv.org/abs/{doi}",
    },
    privacy: "Researcher’s wallet address and the DOI are disclosed at the proof step. Tranche amounts remain private.",
  },
];

function AssistantSection({ asSubsection = false }) {
  const [idx, setIdx] = useState(0);
  const [typed, setTyped] = useState("");
  const [revealCount, setRevealCount] = useState(0);
  const [phase, setPhase] = useState("idle"); // idle | typing | thinking | revealing | done
  const current = ASSISTANT_PROMPTS[idx];
  const promptText = current.prompt;
  const totalPhases = current.phases.length;

  useEffect(() => {
    setTyped("");
    setRevealCount(0);
    setPhase("typing");
    let i = 0;
    const typeInt = setInterval(() => {
      i += 1;
      setTyped(promptText.slice(0, i));
      if (i >= promptText.length) {
        clearInterval(typeInt);
        setPhase("thinking");
        setTimeout(() => {
          setPhase("revealing");
          let n = 0;
          const revealInt = setInterval(() => {
            n += 1;
            setRevealCount(n);
            if (n >= totalPhases + 2 /* + trigger + privacy */) {
              clearInterval(revealInt);
              setPhase("done");
            }
          }, 220);
        }, 700);
      }
    }, 18);
    return () => clearInterval(typeInt);
  }, [idx]);

  const Wrapper = asSubsection ? "div" : "section";
  const wrapperProps = asSubsection
    ? {
        style: {
          background: "var(--az-ink)",
          color: "var(--az-parchment)",
          padding: "56px 40px",
          marginTop: 24,
          marginBottom: 24,
        },
      }
    : {
        id: "assistant",
        "data-screen-label": "Design Assistant",
        "data-surface": "dark",
        style: {
          background: "var(--az-ink)",
          color: "var(--az-parchment)",
          padding: "120px 40px",
          borderTop: "1px solid rgba(242,238,225,0.12)",
        },
      };

  return (
    <Wrapper {...wrapperProps}>
      <div style={{ maxWidth: 1280, margin: "0 auto" }}>
        <SectionHead
          number="07"
          color="dark"
          label="Worked example"
          title={asSubsection ? "From prompt to phase shape." : "Describe the coordination. Get the phases."}
          sub="The Aztec Escrow Skill runs inside Claude. You describe the escrow you want; the skill drafts the phases, picks the triggers, and writes an Aztec.nr starter project. You edit from there."
          asSubsection={asSubsection}
        />

        <div
          style={{
            marginTop: 56,
            border: "1px solid rgba(242,238,225,0.22)",
            background: "rgba(242,238,225,0.03)",
          }}
        >
          {/* Header strip */}
          <div
            style={{
              display: "flex",
              justifyContent: "space-between",
              alignItems: "center",
              padding: "14px 18px",
              borderBottom: "1px solid rgba(242,238,225,0.18)",
              fontFamily: "var(--ff-display-alt)",
              fontSize: 11,
              letterSpacing: "0.08em",
              textTransform: "uppercase",
              color: "rgba(242,238,225,0.55)",
            }}
          >
            <div style={{ display: "flex", alignItems: "center", gap: 10 }}>
              <BrandMark size={14} style={{ color: "var(--az-chartreuse)" }} />
              <span style={{ color: "var(--az-chartreuse)" }}>Aztec Escrow Skill</span>
              <span style={{ opacity: 0.5 }}>· running in Claude</span>
            </div>
            <div style={{ display: "flex", gap: 10, alignItems: "center" }}>
              {ASSISTANT_PROMPTS.map((_, i) => (
                <button
                  key={i}
                  onClick={() => setIdx(i)}
                  style={{
                    background: "transparent",
                    border: "1px solid rgba(242,238,225,0.3)",
                    color:
                      i === idx
                        ? "var(--az-chartreuse)"
                        : "rgba(242,238,225,0.6)",
                    fontFamily: "var(--ff-display-alt)",
                    fontSize: 10,
                    letterSpacing: "0.08em",
                    padding: "5px 10px",
                    cursor: "pointer",
                    textTransform: "uppercase",
                  }}
                >
                  Example {i + 1}
                </button>
              ))}
            </div>
          </div>

          {/* Body */}
          <div
            style={{
              display: "grid",
              gridTemplateColumns: "minmax(0, 0.85fr) minmax(0, 1.4fr)",
              minHeight: 520,
            }}
            className="assistant-grid"
          >
            {/* Input column */}
            <div
              style={{
                padding: "36px 36px",
                borderRight: "1px solid rgba(242,238,225,0.18)",
                display: "flex",
                flexDirection: "column",
                gap: 28,
              }}
            >
              <div
                style={{
                  fontFamily: "var(--ff-display-alt)",
                  fontSize: 10,
                  letterSpacing: "0.08em",
                  textTransform: "uppercase",
                  color: "rgba(242,238,225,0.55)",
                }}
              >
                Input
              </div>
              <div
                style={{
                  fontFamily: "ABC Arizona Serif, Georgia, serif",
                  fontWeight: 300,
                  fontSize: 26,
                  lineHeight: 1.25,
                  color: "var(--az-parchment)",
                  letterSpacing: "-0.02em",
                }}
              >
                “{typed}
                {phase === "typing" && (
                  <span
                    style={{
                      display: "inline-block",
                      width: 9,
                      height: 22,
                      background: "var(--az-chartreuse)",
                      marginLeft: 2,
                      transform: "translateY(4px)",
                      animation: "blink 700ms steps(2) infinite",
                    }}
                  />
                )}
                {phase !== "typing" && "”"}
              </div>
              <div style={{ marginTop: "auto" }}>
                <div
                  style={{
                    fontFamily: "var(--ff-display-alt)",
                    fontSize: 10,
                    letterSpacing: "0.08em",
                    textTransform: "uppercase",
                    color: "rgba(242,238,225,0.55)",
                    marginBottom: 12,
                  }}
                >
                  Status
                </div>
                <AssistantStatusLine phase={phase} />
              </div>
            </div>

            {/* Output column — phase cards */}
            <div
              style={{
                padding: "28px 32px 32px",
                background: "rgba(0,0,0,0.35)",
                display: "flex",
                flexDirection: "column",
                gap: 14,
              }}
            >
              <div
                style={{
                  display: "flex",
                  justifyContent: "space-between",
                  alignItems: "center",
                  fontFamily: "var(--ff-display-alt)",
                  fontSize: 10,
                  letterSpacing: "0.08em",
                  textTransform: "uppercase",
                  color: "var(--az-chartreuse)",
                }}
              >
                <span>Draft phase shape</span>
                <span style={{ color: "rgba(242,238,225,0.55)" }}>
                  {phase === "done" ? "✓ ready to scaffold" : "—"}
                </span>
              </div>

              <div style={{ display: "flex", flexDirection: "column", gap: 8, marginTop: 4 }}>
                {current.phases.map((p, i) => (
                  <PhasePill key={i} p={p} visible={revealCount > i} />
                ))}
              </div>

              <TriggerNote
                t={current.trigger}
                visible={revealCount > totalPhases}
              />
              <PrivacyNote
                text={current.privacy}
                visible={revealCount > totalPhases + 1}
              />
            </div>
          </div>
        </div>

        <div style={{ marginTop: 32, display: "flex", gap: 14, flexWrap: "wrap", alignItems: "center" }}>
          <CTA as="a" href="https://docs.aztec.network/escrow-kit/install-skill">
            Read the skill docs →
          </CTA>
        </div>
      </div>

      <style>{`
        @keyframes blink { 50% { opacity: 0; } }
        @keyframes phaseIn {
          from { opacity: 0; transform: translateX(-6px); }
          to   { opacity: 1; transform: translateX(0); }
        }
      `}</style>
    </Wrapper>
  );
}

function PhasePill({ p, visible }) {
  const lead = p.lead;
  const muted = p.muted;
  return (
    <div
      style={{
        opacity: visible ? 1 : 0,
        transform: visible ? "translateX(0)" : "translateX(-8px)",
        transition: "opacity 240ms linear, transform 240ms ease",
        display: "flex",
        flexDirection: "column",
        gap: 12,
        background: lead
          ? "rgba(212,255,40,0.08)"
          : muted
          ? "rgba(242,238,225,0.02)"
          : "rgba(242,238,225,0.05)",
        border: lead
          ? "1px solid var(--az-chartreuse)"
          : muted
          ? "1px dashed rgba(242,238,225,0.25)"
          : "1px solid rgba(242,238,225,0.2)",
        padding: "14px 16px",
      }}
    >
      <div
        style={{
          display: "flex",
          alignItems: "baseline",
          gap: 14,
          flexWrap: "wrap",
        }}
      >
        <span
          style={{
            fontFamily: "var(--ff-display-alt)",
            fontSize: 10,
            letterSpacing: "0.08em",
            textTransform: "uppercase",
            color: lead
              ? "var(--az-chartreuse)"
              : muted
              ? "rgba(242,238,225,0.45)"
              : "rgba(242,238,225,0.6)",
            flexShrink: 0,
          }}
        >
          Phase {p.num}
        </span>
        <span
          style={{
            fontFamily: "ABC Arizona Serif, Georgia, serif",
            fontWeight: 300,
            fontSize: 22,
            lineHeight: 1,
            letterSpacing: "-0.03em",
            color: muted ? "rgba(242,238,225,0.55)" : "var(--az-parchment)",
            fontStyle: muted ? "italic" : "normal",
          }}
        >
          {p.name}
        </span>
      </div>
      <div
        style={{
          display: "grid",
          gridTemplateColumns: "44px 1fr",
          gap: "4px 12px",
          alignItems: "baseline",
        }}
      >
        <span style={kvLabel}>entry</span>
        <span style={kvValue(muted)}>{p.entry}</span>
        <span style={kvLabel}>exit</span>
        <span style={kvValue(muted, lead)}>{p.exit}</span>
      </div>
    </div>
  );
}

const kvLabel = {
  fontFamily: "var(--ff-display-alt)",
  fontSize: 9.5,
  letterSpacing: "0.08em",
  textTransform: "uppercase",
  color: "rgba(242,238,225,0.45)",
};
const kvValue = (muted, accent) => ({
  fontFamily: "var(--ff-mono)",
  fontSize: 12.5,
  lineHeight: 1.4,
  color: accent
    ? "var(--az-chartreuse)"
    : muted
    ? "rgba(242,238,225,0.55)"
    : "var(--az-parchment)",
  letterSpacing: "-0.005em",
});

function TriggerNote({ t, visible }) {
  return (
    <div
      style={{
        opacity: visible ? 1 : 0,
        transform: visible ? "translateX(0)" : "translateX(-8px)",
        transition: "opacity 240ms linear, transform 240ms ease",
        marginTop: 6,
        padding: "12px 16px",
        border: "1px solid rgba(242,238,225,0.18)",
        display: "grid",
        gridTemplateColumns: "80px 1fr",
        gap: 14,
        alignItems: "baseline",
      }}
    >
      <span
        style={{
          fontFamily: "var(--ff-display-alt)",
          fontSize: 10,
          letterSpacing: "0.08em",
          textTransform: "uppercase",
          color: "var(--az-chartreuse)",
        }}
      >
        Trigger
      </span>
      <div style={{ display: "flex", flexDirection: "column", gap: 4 }}>
        <span
          style={{
            fontFamily: "var(--ff-sans)",
            fontWeight: 500,
            fontSize: 13.5,
            color: "var(--az-parchment)",
          }}
        >
          {t.kind}
        </span>
        <span
          style={{
            fontFamily: "var(--ff-mono)",
            fontSize: 12,
            color: "rgba(242,238,225,0.65)",
          }}
        >
          {t.source}
        </span>
      </div>
    </div>
  );
}

function PrivacyNote({ text, visible }) {
  return (
    <div
      style={{
        opacity: visible ? 1 : 0,
        transform: visible ? "translateX(0)" : "translateX(-8px)",
        transition: "opacity 240ms linear, transform 240ms ease",
        padding: "12px 16px",
        border: "1px solid rgba(242,238,225,0.18)",
        display: "grid",
        gridTemplateColumns: "80px 1fr",
        gap: 14,
        alignItems: "baseline",
      }}
    >
      <span
        style={{
          fontFamily: "var(--ff-display-alt)",
          fontSize: 10,
          letterSpacing: "0.08em",
          textTransform: "uppercase",
          color: "var(--az-chartreuse)",
        }}
      >
        Privacy
      </span>
      <span
        style={{
          fontFamily: "var(--ff-serif)",
          fontWeight: 300,
          fontSize: 13.5,
          lineHeight: 1.5,
          color: "rgba(242,238,225,0.78)",
        }}
      >
        {text}
      </span>
    </div>
  );
}

function AssistantStatusLine({ phase }) {
  const dot = (active) => ({
    width: 8,
    height: 8,
    background: active ? "var(--az-chartreuse)" : "rgba(242,238,225,0.25)",
    display: "inline-block",
    transform: "rotate(45deg)",
    transition: "background 160ms linear",
  });
  const txt = (active) => ({
    fontFamily: "var(--ff-display-alt)",
    fontSize: 11,
    letterSpacing: "0.08em",
    textTransform: "uppercase",
    color: active ? "var(--az-chartreuse)" : "rgba(242,238,225,0.5)",
  });
  const mapping = phase === "thinking" || phase === "revealing" || phase === "done";
  const ready = phase === "done";
  return (
    <div style={{ display: "flex", flexDirection: "column", gap: 10 }}>
      <div style={{ display: "flex", alignItems: "center", gap: 10 }}>
        <span style={dot(true)} />
        <span style={txt(true)}>Prompt received</span>
      </div>
      <div style={{ display: "flex", alignItems: "center", gap: 10 }}>
        <span style={dot(mapping)} />
        <span style={txt(mapping)}>
          {phase === "thinking" ? "Mapping phases & triggers…" : "Mapping phases & triggers"}
        </span>
      </div>
      <div style={{ display: "flex", alignItems: "center", gap: 10 }}>
        <span style={dot(ready)} />
        <span style={txt(ready)}>Phases ready</span>
      </div>
    </div>
  );
}

window.PoCSection = PoCSection;
window.AssistantSection = AssistantSection;
