diff --git a/README.md b/README.md
index 3a67422..dfd4cc0 100644
--- a/README.md
+++ b/README.md
@@ -36,7 +36,7 @@ Wallet clustering is the broad term for a variety of techniques that can be used
This body of work has, time and again, shown that misconceptions about privacy invariably err on the side of optimism. Moreover, depending on individual users' threat models, their adversary may have access to comprehensive auxiliary information. Such auxiliary information doesn't even need to be about the target user, information about other users may be useful for deanonymization of the target user. In cryptography, rotating long lived keys or favoring ephemeral ones can limit the scope of a compromise, but an individual's identity is who they are.
-This is discussed in full in [./collaborative_txn_privacy.md]
+This is discussed in full in [Collaborative transaction privacy](./collaborative_txn_privacy.md).
The fungi protocol suite is designed to make arbitrary transactions possible between mutually consenting but distrusting peers. This means safety, liveness, and unlinkability of protocol messages. Within such a protocol peers are free to pursue whatever outcomes they desire.
diff --git a/collaborative_txn_privacy.md b/collaborative_txn_privacy.md
index 665a7ae..e233b90 100644
--- a/collaborative_txn_privacy.md
+++ b/collaborative_txn_privacy.md
@@ -582,6 +582,14 @@ For example, a chain analysis vendor with KYC information may already be able to
If the CoinJoin graph is *robustly connected*[^flow], then no small cut separates any output from the mass of its candidate origin coins. Stated differently, every output is connected to its candidate origins by multiple disjoint paths.
This redundancy forestalls the cliff of exponential decay, where privacy becomes much more brittle, extending the duration of the linear decay regime by requiring the adversary to deanonymize a much larger proportion of users before divide-and-conquer tactics start coming into play.
+
+
+
+
+
+
+
+*The same ten peers, deanonymized in the same order, in both graphs.*
But when two post-CoinJoin outputs are linked, on-chain or otherwise, this makes **intersection attacks**[^goldfeder][^scroll-intersection] possible. In such attacks, we take the candidate origins of these now-linked coins and check for any overlaps.
diff --git a/src/SUMMARY.md b/src/SUMMARY.md
index 43a28d0..058fa76 100644
--- a/src/SUMMARY.md
+++ b/src/SUMMARY.md
@@ -1,3 +1,5 @@
# Summary
[Introduction](README.md)
+
+- [Collaborative transaction privacy](collaborative_txn_privacy.md)
diff --git a/src/collaborative_txn_privacy.md b/src/collaborative_txn_privacy.md
new file mode 100644
index 0000000..998d9e3
--- /dev/null
+++ b/src/collaborative_txn_privacy.md
@@ -0,0 +1 @@
+{{#include ../collaborative_txn_privacy.md}}
diff --git a/src/figures/figure-32-dark.svg b/src/figures/figure-32-dark.svg
new file mode 100644
index 0000000..33dd1b9
--- /dev/null
+++ b/src/figures/figure-32-dark.svg
@@ -0,0 +1,1623 @@
+
\ No newline at end of file
diff --git a/src/figures/figure-32-light.svg b/src/figures/figure-32-light.svg
new file mode 100644
index 0000000..cc2c24c
--- /dev/null
+++ b/src/figures/figure-32-light.svg
@@ -0,0 +1,1623 @@
+
\ No newline at end of file
diff --git a/theme/diagrams.css b/theme/diagrams.css
index bb71486..a2fd618 100644
--- a/theme/diagrams.css
+++ b/theme/diagrams.css
@@ -67,3 +67,36 @@ html:is(.coal, .navy, .ayu) .mdbook-graphviz-output [fill="black"] {
html:is(.coal, .navy, .ayu) .mdbook-graphviz-output text:not([fill]) {
fill: #b7b7b7;
}
+
+/* The figure ships as light and dark files. The source view renders them
+ through a picture that follows the system preference; the book paints the
+ same files as a background that follows the book theme, and keeps the
+ picture hidden so the svg is not fetched twice. */
+.chart-src {
+ display: block;
+ max-width: 100%;
+ margin: 1rem auto;
+ background: no-repeat center/100% 100%;
+}
+
+.chart-src picture {
+ display: none;
+}
+
+.chart-src.f16 {
+ aspect-ratio: 736 / 762;
+ background-image: url(../figures/figure-16-light.svg);
+}
+
+.chart-src.f32 {
+ aspect-ratio: 864 / 1120;
+ background-image: url(../figures/figure-32-light.svg);
+}
+
+html:is(.coal, .navy, .ayu) .chart-src.f16 {
+ background-image: url(../figures/figure-16-dark.svg);
+}
+
+html:is(.coal, .navy, .ayu) .chart-src.f32 {
+ background-image: url(../figures/figure-32-dark.svg);
+}