{#- The keepsake export (#56): one encrypted, self-contained .html file of this chapter. 🔴 Its OWN passphrase, never the Pup ID's (decided 2026-10-04): a keepsake handed to someone must not carry the key to your identity. Lost passphrase = an unopenable file, and the form says so before anyone types one. -#}
🔐 Make a keepsake — this chapter as one file you keep forever

One .html file: the whole story — foreword, every day, your reflections and notes, photos, trends — and this chapter's data inside it. It opens in any browser, offline, with no Latch and no server, for as long as browsers open HTML. It is encrypted: nothing in it can be read without the passphrase you set here.

🔴 This keepsake's own passphrase — not your Pup ID's, so you can hand the file to someone without handing them your identity. Save it now in a password manager (Bitwarden, 1Password, the Passwords app) or in Apple Notes. If you lose it, the keepsake cannot be opened — by anyone, ever. There is no recovery. At least 12 characters; a few words is best.

Unticked, the locked file says only that it is a Latch keepsake — not what it is about.

{#- THE SHAREABLE COPY (#57) — a different class, not a checkbox on the private one. Built by whitelist (story.build_shareable): plain, unencrypted, meant to leave. Photos start UNticked. -#}
📤 Make a shareable copy — to show someone

📤 Shareable: times, locks, tasks, game badges and only the photos you tick. No reflections, check-ins, scores, notes or foreword — ever. Not encrypted: anyone with the file can read it.

The title is yours to word — the copy prints it on the cover.

{% if s.photos %}

Photos to include (none by default):

{% for p in s.photos %}{% endfor %}

{% endif %}