From c7c83499d7486952d0a01c34b911ddcc72767459 Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 13 Jun 2026 21:06:30 -0500 Subject: [PATCH] hc: personal founder-guarantee revalidation variant (photo + signature) Adds hc_revalidation_personal.html: the turnover safety-net email plus a personal guarantee card from Justin Hannah -- round headshot (links to /about so readers can confirm a real person stands behind it), an italic satisfaction- guarantee quote ('I will personally make it right... that is my promise'), a rendered 'Justin Hannah' signature (Dancing Script, SIL OFL), and his title (Founder & Principal Consultant). Signature image generated via PIL and added to site/public/images/justin-signature.png. Test sent to justin@. --- .../hc_revalidation_personal.html | 116 ++++++++++++++++++ site/public/images/justin-signature.png | Bin 0 -> 11827 bytes 2 files changed, 116 insertions(+) create mode 100644 data/hc_campaigns/hc_revalidation_personal.html create mode 100644 site/public/images/justin-signature.png diff --git a/data/hc_campaigns/hc_revalidation_personal.html b/data/hc_campaigns/hc_revalidation_personal.html new file mode 100644 index 0000000..5bce733 --- /dev/null +++ b/data/hc_campaigns/hc_revalidation_personal.html @@ -0,0 +1,116 @@ + +
+
+ + + + + + + + + + + +
diff --git a/site/public/images/justin-signature.png b/site/public/images/justin-signature.png new file mode 100644 index 0000000000000000000000000000000000000000..57634fc6064b1b26f4c30f59a9c57a15bfd6c1e2 GIT binary patch literal 11827 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 X2J_1&&~5ZGIEI#*o@$GVUF`n=;ZD+3 literal 0 HcmV?d00001