From 953d1129e158c255459e7331bcb9b1112a486ac5 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 29 Dec 2025 09:49:12 +0000 Subject: [PATCH] ifttt: add single-file external review pack --- ifttt/review/index.html | 5324 +++++++++++++++++++++++++++++++++++++++ ifttt/review/index.md | 5275 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 10599 insertions(+) create mode 100644 ifttt/review/index.html create mode 100644 ifttt/review/index.md diff --git a/ifttt/review/index.html b/ifttt/review/index.html new file mode 100644 index 0000000..c6448f1 --- /dev/null +++ b/ifttt/review/index.html @@ -0,0 +1,5324 @@ + + + + + + IF.TTT — Website External Review Pack + + + + + +
+ +
+ +
+

Website external review pack (single file)

+

This is the HTML fallback. The canonical source is the Markdown file:

+

Open raw Markdown

+

Generated: 2025-12-29 09:47 UTC

+ +
+ Full pack content (Markdown) +
# IF.TTT Website — External Review Pack (Single File)
+
+- Generated: `2025-12-29 09:47 UTC`
+- Owner: Danny Stocker (`ds@infrafabric.io`)
+
+This file contains the full current IF.TTT website content (page tree + full HTML per page + key text assets) so external reviewers can evaluate copy, structure, and claims without needing to crawl.
+
+## How To Review (Quick)
+- Audience split: Home is PM/exec-first; `Developers` lives under `/api/`.
+- Goal: black/white clarity — what is verified vs what is not.
+- Please flag: confusing terms, overclaims, missing steps, weak “why”, and anything that feels like marketing cosplay.
+
+## Response Metadata (Required)
+- `llm_name`:
+- `probable_model`:
+- `cutoff_date`:
+- `response_date_utc`:
+- `web_access_used`: yes/no (list URLs relied on)
+
+## Live Entry Points
+- https://infrafabric.io/
+- https://infrafabric.io/verticals/
+- https://infrafabric.io/governance/
+- https://infrafabric.io/api/
+- https://infrafabric.io/whitepaper/
+- https://infrafabric.io/about/
+- https://infrafabric.io/fr/
+
+## Core Demo Links (Used Throughout)
+- https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n
+- https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n
+- https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n.md
+- https://infrafabric.io/static/hosted/review/trace-bundles/b6547c03/index.html
+- https://infrafabric.io/static/hosted/iftrace.html
+- https://infrafabric.io/static/hosted/iftrace.py
+- https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html
+
+## Page Tree
+
+- /about/  (https://infrafabric.io/about/)
+- /api/  (https://infrafabric.io/api/)
+- /fr/governance/  (https://infrafabric.io/fr/governance/)
+- /fr/  (https://infrafabric.io/fr/)
+- /governance/  (https://infrafabric.io/governance/)
+- /  (https://infrafabric.io/)
+- /verticals/ai/  (https://infrafabric.io/verticals/ai/)
+- /verticals/enterprise/  (https://infrafabric.io/verticals/enterprise/)
+- /verticals/finance/  (https://infrafabric.io/verticals/finance/)
+- /verticals/government/  (https://infrafabric.io/verticals/government/)
+- /verticals/healthcare/  (https://infrafabric.io/verticals/healthcare/)
+- /verticals/  (https://infrafabric.io/verticals/)
+- /verticals/legal/  (https://infrafabric.io/verticals/legal/)
+- /verticals/professional-services/  (https://infrafabric.io/verticals/professional-services/)
+- /verticals/public-sector/  (https://infrafabric.io/verticals/public-sector/)
+- /verticals/research/  (https://infrafabric.io/verticals/research/)
+- /verticals/saas/  (https://infrafabric.io/verticals/saas/)
+- /verticals/sciences/  (https://infrafabric.io/verticals/sciences/)
+- /verticals/secops/  (https://infrafabric.io/verticals/secops/)
+- /verticals/supply-chain/  (https://infrafabric.io/verticals/supply-chain/)
+- /whitepaper/  (https://infrafabric.io/whitepaper/)
+- /whitepaper/thanks/  (https://infrafabric.io/whitepaper/thanks/)
+
+## Text Assets
+
+- `app.js` — https://infrafabric.io/static/hosted/ifttt/app.js
+- `style.css` — https://infrafabric.io/static/hosted/ifttt/style.css
+- `assets/if-logo-simple.svg` — https://infrafabric.io/static/hosted/ifttt/assets/if-logo-simple.svg
+- `assets/ifttt-quotes.json` — https://infrafabric.io/static/hosted/ifttt/assets/ifttt-quotes.json
+
+## Binary Assets (Referenced by Pages)
+
+| File | Size | URL |
+|---|---:|---|
+| `assets/eyes-only-dave.png` | 1,522 KB | https://infrafabric.io/static/hosted/ifttt/assets/eyes-only-dave.png |
+| `assets/red-team-doc-1024-559.jpg` | 122 KB | https://infrafabric.io/static/hosted/ifttt/assets/red-team-doc-1024-559.jpg |
+| `assets/red-team-stamp-600.png` | 561 KB | https://infrafabric.io/static/hosted/ifttt/assets/red-team-stamp-600.png |
+
+---
+
+# Pages (Full HTML)
+
+## /about/
+- URL: https://infrafabric.io/about/
+- Static: https://infrafabric.io/static/hosted/ifttt/about/
+- Source: `ifttt/about/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — About</title>
+    <meta
+      name="description"
+      content="IF.TTT is a receipt-first governance protocol: traceable, transparent, trustworthy. This page explains the who/why/what/where/when/how and the traps that break open verification."
+    />
+    <link rel="stylesheet" href="../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">About</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../#how">How</a>
+          <a href="../#trust">Trust</a>
+          <a href="../#verify">Verify</a>
+          <a href="../governance/">Governance</a>
+          <a href="../verticals/">Verticals</a>
+          <a href="../whitepaper/">Whitepaper</a>
+          <a href="../api/">Developers</a>
+          <a class="lang" href="../fr/" aria-label="French">FR</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Why this exists</p>
+            <h1>We built the skeleton first.</h1>
+            <p class="lede">
+              Most systems produce answers and call that “governance”. IF.TTT starts earlier: it produces receipts that a third party can verify without
+              joining your internal world.
+            </p>
+
+            <div class="panel">
+              <h3>Who / Why / What / Where / When / How</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Who</div>
+                  <div class="bw__v">InfraFabric operators shipping public, no‑login verification artifacts.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Why</div>
+                  <div class="bw__v">Because “trust us” fails the moment a reviewer asks for proof.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">What</div>
+                  <div class="bw__v">A receipt‑first protocol: bind <code>source_sha256</code> ↔ <code>output_sha256</code> under a trace receipt.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Where</div>
+                  <div class="bw__v">On a stable public share surface (no login): trace, dossier, packs, and source.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">When</div>
+                  <div class="bw__v">At publication time: the receipt is generated and can be verified later during disputes.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">How</div>
+                  <div class="bw__v">Hashes + receipts + optional offline bundles; nothing magical, just opposable proof.</div>
+                </div>
+              </div>
+            </div>
+
+            <div class="cta" style="margin-top: 12px">
+              <a class="btn btn--primary" href="../#verify">Try a live trace</a>
+              <a class="btn" href="../api/">Developer surface</a>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Traps to avoid">
+            <div class="card">
+              <div class="card__hdr">
+                <div class="badge badge--ok">TRAPS</div>
+                <div class="badge">HOW RECEIPTS BREAK</div>
+              </div>
+              <div class="card__body">
+                <ul class="list" style="margin: 0; padding-left: 18px">
+                  <li><strong>Broken share surface:</strong> moving URLs or forcing login turns receipts into theater.</li>
+                  <li><strong>Mixing identifiers:</strong> <code>shareId</code> is public; <code>trace_id</code> is chain‑of‑custody. Don’t swap them.</li>
+                  <li><strong>“Compliance” claims:</strong> receipts support audits; they do not guarantee program scope or behavior.</li>
+                  <li><strong>Unverifiable artifacts:</strong> screenshots and PDFs are not gates unless bound to machine‑checkable signals.</li>
+                  <li><strong>WAF surprises:</strong> some clients can fetch HTML but reject binary downloads—publish HTML views.</li>
+                </ul>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>What a receipt proves (and what it doesn’t)</h2>
+          <div class="grid2">
+            <div class="panel">
+              <h3>Proves</h3>
+              <ul class="list">
+                <li>Integrity binding: the published bytes match the hashes on the receipt.</li>
+                <li>Traceability: a reviewer can point to a stable, no‑login receipt.</li>
+                <li>Replay: verification still works during disputes (offline bundles when needed).</li>
+              </ul>
+            </div>
+            <div class="panel">
+              <h3>Does not prove</h3>
+              <ul class="list">
+                <li>Intent, interpretation, or “correctness” of a narrative.</li>
+                <li>That a control is effective—only that the evidence exists and is bound to the record.</li>
+                <li>Compliance scope (people, policy, contracts); receipts are inputs to governance.</li>
+              </ul>
+            </div>
+          </div>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>Read the paper (and verify the examples)</h2>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">IF.TTT: The Skeleton of Everything (review pack)</span>
+              <span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html</span>
+            </a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">InfraFabric • IF.TTT receipts are designed to be legible to the governed.</div>
+        <div class="muted">
+          <a href="../">IF.TTT</a> · <a href="../governance/">Governance</a> · <a href="../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../verticals/public-sector/">Public Sector</a>
+          <a href="../verticals/enterprise/">Enterprise</a>
+          <a href="../verticals/research/">Research</a>
+          <a href="../verticals/professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../verticals/healthcare/">Healthcare</a>
+          <a href="../verticals/finance/">Financial</a>
+          <a href="../verticals/legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /api/
+- URL: https://infrafabric.io/api/
+- Static: https://infrafabric.io/static/hosted/ifttt/api/
+- Source: `ifttt/api/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Developers / API</title>
+    <meta
+      name="description"
+      content="Developer-facing overview of the IF.TTT public receipt surface: stable no-login URLs, HTML fallbacks for sandboxes, and offline verification bundles."
+    />
+    <link rel="stylesheet" href="../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Developers / API</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../#verify">Verify</a>
+          <a href="../verticals/">Verticals</a>
+          <a href="../governance/">Governance</a>
+          <a href="../whitepaper/">Whitepaper</a>
+          <a href="../about/">About</a>
+          <a class="lang" href="../fr/" aria-label="French">FR</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Public receipt surface (no login)</p>
+            <h1>Stable URLs, predictable verification.</h1>
+            <p class="lede">
+              IF.TTT is intentionally boring from a developer perspective: compute hashes, publish receipts, and keep the proof surface stable. The
+              system is designed for third parties who are not inside your network.
+            </p>
+            <div class="panel">
+              <h3>What “VERIFIED” means (black/white)</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Verified</div>
+                  <div class="bw__v">The bytes you can download hash to the same values shown on the trace receipt.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Quantum ready</div>
+                  <div class="bw__v">A post‑quantum signature receipt exists (additive; integrity hashes still stand).</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Not implied</div>
+                  <div class="bw__v">Compliance, intent, or correctness of interpretation.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Share surface reference">
+            <div class="card">
+              <div class="card__media">
+                <img src="../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">SHARE SURFACE</div>
+                <div class="badge">NO‑LOGIN</div>
+              </div>
+              <div class="card__body">
+                <pre class="code"><code>https://infrafabric.io/static/trace/&lt;shareId&gt;
+https://infrafabric.io/static/dossier/&lt;shareId&gt;
+https://infrafabric.io/static/dossier/&lt;shareId&gt;/download
+https://infrafabric.io/static/pack/&lt;shareId&gt;.md
+https://infrafabric.io/static/review/&lt;shareId&gt;.md
+https://infrafabric.io/static/marketing/&lt;shareId&gt;.md
+https://infrafabric.io/static/source/&lt;source_sha256&gt;.pdf</code></pre>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>HTML fallback (for sandboxed reviewers)</h2>
+          <p class="sub">
+            Some external review environments can load HTML but reject downloadable binaries or raw markdown. For those, we publish HTML views alongside
+            the raw assets.
+          </p>
+          <div class="grid2">
+            <div class="panel">
+              <h3>Raw</h3>
+              <pre class="code"><code>/static/pack/&lt;shareId&gt;.md
+/static/review/&lt;shareId&gt;.md
+/static/marketing/&lt;shareId&gt;.md</code></pre>
+            </div>
+            <div class="panel">
+              <h3>HTML view</h3>
+              <pre class="code"><code>/static/pack/&lt;shareId&gt;
+/static/review/&lt;shareId&gt;
+/static/marketing/&lt;shareId&gt;</code></pre>
+            </div>
+          </div>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Offline verification (triage bundles)</h2>
+          <p class="sub">Download a bundle (lightweight/standard/full) and verify without relying on the live site.</p>
+          <div class="verify">
+            <div class="panel">
+              <h3>Bundle selector (demo)</h3>
+              <div class="links">
+                <a class="linkrow" href="https://infrafabric.io/static/hosted/review/trace-bundles/d70ed99a/index.html" target="_blank" rel="noreferrer">
+                  <span class="linkrow__t">Triage selector (HTML)</span>
+                  <span class="linkrow__u">https://infrafabric.io/static/hosted/review/trace-bundles/d70ed99a/index.html</span>
+                </a>
+                <a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.html" target="_blank" rel="noreferrer">
+                  <span class="linkrow__t">Verifier (HTML)</span>
+                  <span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.html</span>
+                </a>
+                <a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.py" target="_blank" rel="noreferrer">
+                  <span class="linkrow__t">Verifier (download)</span>
+                  <span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.py</span>
+                </a>
+              </div>
+              <p class="fine">
+                Note: some “web fetchers” reject <code>.tar.gz</code> with a client-side error even when browsers/curl succeed. Use the HTML views and
+                download bundles locally.
+              </p>
+            </div>
+            <div class="panel">
+              <h3>Verify (CLI)</h3>
+              <pre class="code"><code>curl -fsSL -o iftrace.py 'https://infrafabric.io/static/hosted/iftrace.py'
+python3 iftrace.py verify trace_bundle_&lt;id&gt;_standard.tar.gz --expected-sha256 &lt;sha256&gt;</code></pre>
+              <p class="fine">If hashes match, the receipt’s integrity claim is satisfied.</p>
+            </div>
+          </div>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>Docs</h2>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">IF.TTT paper update (review pack)</span>
+              <span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html</span>
+            </a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">InfraFabric • IF.TTT receipts are designed to be legible to the governed.</div>
+        <div class="muted">
+          <a href="../">IF.TTT</a> · <a href="../governance/">Governance</a> · <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
+          <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../verticals/public-sector/">Public Sector</a>
+          <a href="../verticals/enterprise/">Enterprise</a>
+          <a href="../verticals/research/">Research</a>
+          <a href="../verticals/professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../verticals/healthcare/">Healthcare</a>
+          <a href="../verticals/finance/">Financial</a>
+          <a href="../verticals/legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /fr/governance/
+- URL: https://infrafabric.io/fr/governance/
+- Static: https://infrafabric.io/static/hosted/ifttt/fr/governance/
+- Source: `ifttt/fr/governance/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="fr">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Gouvernance ouverte</title>
+    <meta
+      name="description"
+      content="La gouvernance ouverte signifie qu’un tiers peut vérifier ce qui s’est passé sans login. IF.TTT est l’ossature de reçus : trace, liens stables, bundles hors‑ligne."
+    />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT accueil">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Gouvernance ouverte</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Navigation">
+          <a href="../../#how">Process</a>
+          <a href="../../#trust">Confiance</a>
+          <a href="../../#verify">Vérifier</a>
+          <a href="../../verticals/">Verticaux</a>
+          <a href="../../whitepaper/">Livre blanc</a>
+          <a href="../../api/">Développeurs</a>
+          <a href="../../about/">À propos</a>
+          <a class="lang" href="../../governance/" aria-label="English">EN</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Gouvernance ouverte</p>
+            <h1>Lisible par les gouvernés.</h1>
+            <p class="lede">
+              Une “gouvernance” qui ne se lit qu’en interne n’est pas une preuve. IF.TTT publie des reçus stables, accessibles sans login, pour que des
+              tiers puissent vérifier l’intégrité sans entrer dans votre réseau.
+            </p>
+
+            <div class="panel">
+              <h3>Ce que cela prouve (et ce que cela ne prouve pas)</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Prouve</div>
+                  <div class="bw__v">Liaison d’intégrité (hashes), reçus de publication, bundles hors‑ligne.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Ne prouve pas</div>
+                  <div class="bw__v">L’intention, l’interprétation, ou “la conformité atteinte”.</div>
+                </div>
+              </div>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>La “stack” de gouvernance</h3>
+              <ul class="list">
+                <li><strong>IF.TTT (reçus) :</strong> source_sha256 ↔ output_sha256, trace_id, shareId.</li>
+                <li><strong>Revue :</strong> packs de revue externes, critiques, disputes.</li>
+                <li><strong>Contrôles :</strong> gates/stop‑conditions qui consomment ces reçus.</li>
+              </ul>
+            </div>
+
+            <div class="cta" style="margin-top: 12px">
+              <a class="btn btn--primary" href="../../#verify">Voir une trace</a>
+              <a class="btn" href="../../api/">Surface publique</a>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Charters">
+            <div class="card">
+              <div class="card__hdr">
+                <div class="badge badge--ok">CHARTERS</div>
+                <div class="badge">PUBLICS</div>
+              </div>
+              <div class="card__body">
+                <div class="links">
+                  <a class="linkrow" href="https://infrafabric.io/static/hosted/gov/TRIAGE.md" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Politique de triage</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/hosted/gov/TRIAGE.md</span>
+                  </a>
+                  <a class="linkrow" href="https://infrafabric.io/static/hosted/gov/PANEL.md" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Panel / revue externe</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/hosted/gov/PANEL.md</span>
+                  </a>
+                  <a class="linkrow" href="https://infrafabric.io/static/hosted/gov/WITNESS.md" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Modèle “witness”</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/hosted/gov/WITNESS.md</span>
+                  </a>
+                </div>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>Pour qui (et qui va détester)</h2>
+          <p class="sub">Lisible pour des tiers : le but n’est pas le confort interne, mais la vérifiabilité externe.</p>
+
+          <div class="grid2">
+            <div class="panel">
+              <h3>Pour</h3>
+              <ul class="list">
+                <li><strong>GRC / audit</strong> (SOC 2 / ISO) : preuves exportables.</li>
+                <li><strong>Architecture sécurité</strong> : contrôles mesurables, pas d’attestations.</li>
+                <li><strong>Juridique / conformité</strong> : chaîne de possession en cas de litige.</li>
+                <li><strong>Produits IA</strong> : “pourquoi le modèle a dit ça ?”</li>
+                <li><strong>Secteur public / défense</strong> : vérification hors‑ligne et environnements verrouillés.</li>
+              </ul>
+            </div>
+
+            <div class="panel">
+              <h3>Pas pour</h3>
+              <ul class="list">
+                <li>Ceux qui veulent un “badge” sans publier d’artefacts vérifiables.</li>
+                <li>Les workflows où rien ne peut sortir du réseau (pas de surface publique).</li>
+                <li>Les organisations qui préfèrent l’ambiguïté : IF.TTT rend les trous visibles.</li>
+              </ul>
+            </div>
+          </div>
+
+          <div class="cta" style="margin-top: 12px">
+            <a class="btn btn--primary" href="../../whitepaper/">Lire le livre blanc</a>
+            <a class="btn" href="../../verticals/">Voir les verticaux</a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">InfraFabric • Gouvernance ouverte = preuve sans login.</div>
+        <div class="muted"><a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> · Danny Stocker</div>
+      </div>
+    </footer>
+  </body>
+</html>
+```
+
+</details>
+
+## /fr/
+- URL: https://infrafabric.io/fr/
+- Static: https://infrafabric.io/static/hosted/ifttt/fr/
+- Source: `ifttt/fr/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="fr">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Vérification ouverte pour la gouvernance IA</title>
+    <meta
+      name="description"
+      content="IF.TTT (Traceable, Transparent, Trustworthy) est une couche de gouvernance “receipt-first” : relier une source à un output via une trace vérifiable, des liens publics sans login et des bundles hors‑ligne."
+    />
+    <meta property="og:title" content="IF.TTT — Vérification ouverte pour la gouvernance IA" />
+    <meta
+      property="og:description"
+      content="Des reçus, pas des opinions. IF.TTT relie une source à un output avec des traces vérifiables, des liens publics sans login, et des bundles hors‑ligne."
+    />
+    <meta property="og:type" content="website" />
+    <meta property="og:image" content="https://infrafabric.io/static/hosted/ifttt/assets/red-team-doc-1024-559.jpg" />
+    <meta name="twitter:card" content="summary_large_image" />
+    <meta name="theme-color" content="#111827" />
+    <link rel="icon" href="../assets/if-logo-simple.svg" type="image/svg+xml" />
+    <link rel="stylesheet" href="../style.css" />
+    <script src="../app.js" defer></script>
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../" aria-label="IF.TTT accueil">
+          <img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Traceable • Transparent • Trustworthy</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Navigation">
+          <a href="../#how">Process</a>
+          <a href="../#trust">Confiance</a>
+          <a href="../#verify">Vérifier</a>
+          <a href="../verticals/">Verticaux</a>
+          <a href="./governance/">Gouvernance</a>
+          <a href="../whitepaper/">Livre blanc</a>
+          <a href="../api/">Développeurs</a>
+          <a href="../about/">À propos</a>
+          <a class="lang" href="../" aria-label="English">EN</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Gouvernance ouverte, lisible par des tiers</p>
+            <h1>Des reçus, pas des opinions.</h1>
+            <div class="type" aria-label="Animation de saisie">
+              <span class="type__prefix">if.</span><span id="typeword"></span><span class="type__suffix">&gt;</span
+              ><span class="type__caret" aria-hidden="true"></span>
+            </div>
+            <div class="quote" aria-live="polite" aria-label="Citation tournante">
+              <div class="quote__text" id="quoteText"></div>
+              <div class="quote__meta" id="quoteMeta"></div>
+            </div>
+            <p class="lede">
+              IF.TTT est une couche de gouvernance “receipt‑first”. Elle relie un <strong>artefact source</strong> à un <strong>output</strong> via une
+              <strong>page de trace</strong>, des <strong>liens publics sans login</strong>, et des <strong>bundles hors‑ligne</strong> vérifiables.
+            </p>
+
+            <div class="pillrow" role="list" aria-label="Propriétés clés">
+              <div class="pill" role="listitem">
+                <span class="pill__k">Sans login</span>
+                <span class="pill__v">Surface publique</span>
+              </div>
+              <div class="pill" role="listitem">
+                <span class="pill__k">Hors‑ligne</span>
+                <span class="pill__v">Bundles de triage</span>
+              </div>
+              <div class="pill" role="listitem">
+                <span class="pill__k">Noir/blanc</span>
+                <span class="pill__v">Vérifié vs non‑vérifié</span>
+              </div>
+            </div>
+
+            <div class="cta">
+              <a class="btn btn--primary" href="../#verify">Voir une trace</a>
+              <a class="btn" href="../verticals/">Voir les verticaux</a>
+            </div>
+
+            <p class="note">
+              Nous ne “vendons” pas la conformité. Nous aidons les audits en produisant des <em>reçus vérifiables</em> que des tiers peuvent contrôler
+              sans vos identifiants.
+            </p>
+          </div>
+
+          <aside class="hero__card" aria-label="Exemple de page trace">
+            <div class="card">
+              <div class="card__media">
+                <img
+                  src="../assets/red-team-doc-1024-559.jpg"
+                  alt="Couverture de dossier InfraFabric Red Team avec tampon “EYES ONLY // DAVE”"
+                  loading="lazy"
+                />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">VERIFIED</div>
+                <div class="badge">QUANTUM READY (optionnel)</div>
+              </div>
+              <div class="card__body">
+                <div class="mini">
+                  <div class="mini__k">Promesse</div>
+                  <div class="mini__v">“Téléchargez. Hashez. Comparez. Optionnellement vérifiez hors‑ligne.”</div>
+                </div>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">InfraFabric • Reçus IF.TTT conçus pour être “lisibles par les gouvernés”.</div>
+        <div class="muted"><a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> · Danny Stocker</div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Liens rapides">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Secteurs</span>
+          <a href="../verticals/public-sector/">Secteur public</a>
+          <a href="../verticals/enterprise/">Entreprise</a>
+          <a href="../verticals/research/">Recherche</a>
+          <a href="../verticals/professional-services/">Services pro</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../verticals/healthcare/">Santé</a>
+          <a href="../verticals/finance/">Finance</a>
+          <a href="../verticals/legal/">Juridique</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /governance/
+- URL: https://infrafabric.io/governance/
+- Static: https://infrafabric.io/static/hosted/ifttt/governance/
+- Source: `ifttt/governance/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Open Governance</title>
+    <meta
+      name="description"
+      content="Open governance means third parties can verify what happened without your login. IF.TTT is the receipt backbone: trace pages, stable no-login links, and offline bundles."
+    />
+    <link rel="stylesheet" href="../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Open governance</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../#how">How</a>
+          <a href="../#trust">Trust</a>
+          <a href="../#verify">Verify</a>
+          <a href="../verticals/">Verticals</a>
+          <a href="../whitepaper/">Whitepaper</a>
+          <a href="../api/">Developers</a>
+          <a href="../about/">About</a>
+          <a class="lang" href="../fr/governance/" aria-label="French">FR</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Open governance</p>
+            <h1>Legible to the governed.</h1>
+            <p class="lede">
+              “Governance” fails when it’s only legible inside your network. IF.TTT moves the proof outside: stable, no‑login receipts that third parties
+              can verify without joining your internal world.
+            </p>
+
+            <div class="panel">
+              <h3>What this page is (black/white)</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Goal</div>
+                  <div class="bw__v">Make third‑party verification possible without credentials.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Mechanism</div>
+                  <div class="bw__v">Hashes + trace receipts + stable URLs + optional offline bundles.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Not implied</div>
+                  <div class="bw__v">“Compliance achieved” or “correctness of interpretation”.</div>
+                </div>
+              </div>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>The governance stack (where IF.TTT sits)</h3>
+              <ul class="list">
+                <li><strong>Receipt layer (IF.TTT):</strong> integrity binding + chain‑of‑custody IDs + share surface.</li>
+                <li><strong>Review layer:</strong> external review packs, panel critique, dispute workflows.</li>
+                <li><strong>Enforcement layer:</strong> gates/stop‑conditions that consume receipts (CI, access, runtime).</li>
+              </ul>
+              <p class="fine">Receipts don’t replace governance. They remove ambiguity from it.</p>
+            </div>
+
+            <div class="cta" style="margin-top: 12px">
+              <a class="btn btn--primary" href="../#verify">Try a live trace</a>
+              <a class="btn" href="../api/">Public share surface</a>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Public artifacts">
+            <div class="card">
+              <div class="card__media">
+                <img src="../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">PUBLIC</div>
+                <div class="badge">NO‑LOGIN</div>
+              </div>
+              <div class="card__body">
+                <div class="mini">
+                  <div class="mini__k">Stable receipt surface</div>
+                  <div class="mini__v">These URLs are designed to be shareable in procurement, audits, and disputes.</div>
+                </div>
+                <pre class="code"><code>/static/trace/&lt;shareId&gt;
+/static/dossier/&lt;shareId&gt;
+/static/dossier/&lt;shareId&gt;/download
+/static/pack/&lt;shareId&gt;.md
+/static/review/&lt;shareId&gt;.md
+/static/marketing/&lt;shareId&gt;.md
+/static/source/&lt;source_sha256&gt;.pdf</code></pre>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>For whom (and who will hate it)</h2>
+          <p class="sub">A constitutional framing: the goal is legibility to outsiders, not internal comfort.</p>
+
+          <div class="grid2">
+            <div class="panel">
+              <h3>For</h3>
+              <ul class="list">
+                <li><strong>GRC / Audit leads</strong> drowning in evidence requests (SOC 2 / ISO 27001 / vendor due diligence).</li>
+                <li><strong>Security architects</strong> who need “proof of what ran” without adding manual theater.</li>
+                <li><strong>Legal / compliance</strong> teams who need chain‑of‑custody that survives disputes.</li>
+                <li><strong>AI product teams</strong> facing “why did it say that?” questions from customers and regulators.</li>
+                <li><strong>Gov/defense contractors</strong> who must verify artifacts offline or across locked‑down environments.</li>
+              </ul>
+            </div>
+
+            <div class="panel">
+              <h3>Not for</h3>
+              <ul class="list">
+                <li>Teams seeking a “compliance badge” without publishing verifiable artifacts.</li>
+                <li>Workflows where evidence cannot leave the internal network (no share surface, no external verification).</li>
+                <li>Organizations that want to hide uncertainty: IF.TTT makes gaps visible by design.</li>
+                <li>Anyone who needs governance to remain ambiguous (receipts reduce wiggle room).</li>
+              </ul>
+            </div>
+          </div>
+
+          <div class="cta" style="margin-top: 12px">
+            <a class="btn btn--primary" href="../whitepaper/">Read the paper</a>
+            <a class="btn" href="../verticals/">Browse vertical fit</a>
+          </div>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Charters (how we keep it honest)</h2>
+          <p class="sub">These are plain Markdown docs: readable, linkable, and easy to critique.</p>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/hosted/gov/TRIAGE.md" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Triage policy</span>
+              <span class="linkrow__u">https://infrafabric.io/static/hosted/gov/TRIAGE.md</span>
+            </a>
+            <a class="linkrow" href="https://infrafabric.io/static/hosted/gov/PANEL.md" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Panel / external review process</span>
+              <span class="linkrow__u">https://infrafabric.io/static/hosted/gov/PANEL.md</span>
+            </a>
+            <a class="linkrow" href="https://infrafabric.io/static/hosted/gov/WITNESS.md" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Witness model</span>
+              <span class="linkrow__u">https://infrafabric.io/static/hosted/gov/WITNESS.md</span>
+            </a>
+            <a class="linkrow" href="https://infrafabric.io/static/hosted/gov/QUESTIONS.md" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Third‑party questions we expect</span>
+              <span class="linkrow__u">https://infrafabric.io/static/hosted/gov/QUESTIONS.md</span>
+            </a>
+          </div>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>Live example</h2>
+          <p class="sub">A real trace receipt you can verify right now.</p>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Example trace receipt</span>
+              <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+            </a>
+          </div>
+          <p class="fine">
+            “VERIFIED” means the published bytes hash to what the receipt says. “QUANTUM READY” means a post‑quantum signature receipt exists (additive;
+            integrity hashes still stand).
+          </p>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">InfraFabric • Open governance is “proof without login”.</div>
+        <div class="muted">
+          <a href="../">IF.TTT</a> · <a href="../api/">Developers</a> · <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
+          <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../verticals/public-sector/">Public Sector</a>
+          <a href="../verticals/enterprise/">Enterprise</a>
+          <a href="../verticals/research/">Research</a>
+          <a href="../verticals/professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../verticals/healthcare/">Healthcare</a>
+          <a href="../verticals/finance/">Financial</a>
+          <a href="../verticals/legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /
+- URL: https://infrafabric.io/
+- Static: https://infrafabric.io/static/hosted/ifttt/
+- Source: `ifttt/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Open Verification for AI Governance</title>
+    <meta
+      name="description"
+      content="IF.TTT (Traceable, Transparent, Trustworthy) is a receipt-first governance layer: bind a source artifact to an output with a verifiable trace, no-login proof links, and optional offline bundles."
+    />
+    <meta property="og:title" content="IF.TTT — Open Verification for AI Governance" />
+    <meta
+      property="og:description"
+      content="Receipts, not vibes. IF.TTT binds a source artifact to an output with verifiable traces, no-login proof links, and optional offline bundles."
+    />
+    <meta property="og:type" content="website" />
+    <meta property="og:image" content="https://infrafabric.io/static/hosted/ifttt/assets/red-team-doc-1024-559.jpg" />
+    <meta name="twitter:card" content="summary_large_image" />
+    <meta name="theme-color" content="#111827" />
+    <link rel="icon" href="./assets/if-logo-simple.svg" type="image/svg+xml" />
+    <link rel="stylesheet" href="./style.css" />
+    <script src="./app.js" defer></script>
+  </head>
+
+  <body class="home">
+    <header class="top top--home">
+      <div class="wrap top__inner">
+        <a class="brand" href="./" aria-label="IF.TTT home">
+          <img class="brand__logo" src="./assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Traceable • Transparent • Trustworthy</span>
+          </span>
+        </a>
+
+        <nav class="homeNav" aria-label="Top links">
+          <a href="./governance/">Governance</a>
+          <a href="./whitepaper/">Whitepaper</a>
+          <a href="./api/">Developers</a>
+          <a href="./about/">About</a>
+          <a class="lang" href="./fr/" aria-label="French">FR</a>
+          <span class="homeNav__sep">·</span>
+          <a class="homeNav__contact" href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top" class="homeMain" aria-label="IF.TTT overview">
+      <div class="wrap homeMain__inner">
+        <div class="homeCenter">
+          <div class="homeBadges" aria-label="Status badges">
+            <a
+              class="badge badge--ok badge--big"
+              href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n"
+              target="_blank"
+              rel="noreferrer"
+              >VERIFIED</a
+            >
+            <a class="badge badge--big" href="./api/#quantum">QUANTUM READY</a>
+          </div>
+
+          <div class="type type--home" aria-label="Typing animation">
+            <span class="type__prefix">if.</span><span id="typeword"></span><span class="type__suffix">&gt;</span
+            ><span class="type__caret" aria-hidden="true"></span>
+          </div>
+
+          <div class="quote quote--home" aria-live="polite" aria-label="Rotating quote">
+            <div class="quote__text" id="quoteText"></div>
+            <div class="quote__meta" id="quoteMeta"></div>
+          </div>
+
+          <p class="homeLede">
+            Open verification for governance: third parties can verify receipts without your credentials.
+            <span class="muted">Artifacts &gt; adjectives.</span>
+          </p>
+
+          <section id="stepper" class="homeStepper" hidden>
+            <h2>How verification works</h2>
+            <p class="sub2">Black/white: what the receipt proves vs what it doesn’t.</p>
+
+            <ol class="steps">
+              <li class="step">
+                <div class="step__n">1</div>
+                <div class="step__b">
+                  <div class="step__t">Bind source ↔ output</div>
+                  <div class="step__d">Hash the exact source bytes and the exact output bytes.</div>
+                </div>
+              </li>
+              <li class="step">
+                <div class="step__n">2</div>
+                <div class="step__b">
+                  <div class="step__t">Publish a trace receipt</div>
+                  <div class="step__d">A public page that links the hashes, time, and versioning.</div>
+                </div>
+              </li>
+              <li class="step">
+                <div class="step__n">3</div>
+                <div class="step__b">
+                  <div class="step__t">No‑login share surface</div>
+                  <div class="step__d">Stable URLs keyed by a single <code>shareId</code> (trace, dossier, pack, source).</div>
+                </div>
+              </li>
+              <li class="step">
+                <div class="step__n">4</div>
+                <div class="step__b">
+                  <div class="step__t">Optional: offline triage bundles</div>
+                  <div class="step__d">Lightweight/standard/full bundles for constrained environments.</div>
+                </div>
+              </li>
+            </ol>
+
+            <div class="homeLinks" aria-label="Live demo links">
+              <a class="homeLink" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer"
+                >Open a live trace receipt</a
+              >
+              <a class="homeLink" href="https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n.md" target="_blank" rel="noreferrer"
+                >Open the corresponding pack</a
+              >
+              <a class="homeLink" href="https://infrafabric.io/static/hosted/review/trace-bundles/b6547c03/index.md" target="_blank" rel="noreferrer"
+                >Triage bundle selector (offline)</a
+              >
+              <a class="homeLink" href="https://infrafabric.io/static/hosted/iftrace.py" target="_blank" rel="noreferrer">Download `iftrace.py`</a>
+              <a
+                class="homeLink"
+                href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
+                target="_blank"
+                rel="noreferrer"
+                >IF.TTT paper (review pack)</a
+              >
+            </div>
+
+            <p class="note">
+              If it’s not verifiable, label it as a gap. Don’t endorse it.
+              <span class="muted">This is how you keep governance legible to outsiders.</span>
+            </p>
+          </section>
+
+          <div class="homeMeta" aria-label="Contact">
+            Danny Stocker <span class="bottombar__sep">·</span> <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
+          </div>
+        </div>
+      </div>
+    </main>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="./verticals/public-sector/">Public Sector</a>
+          <a href="./verticals/enterprise/">Enterprise</a>
+          <a href="./verticals/research/">Research</a>
+          <a href="./verticals/professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="./verticals/healthcare/">Healthcare</a>
+          <a href="./verticals/finance/">Financial</a>
+          <a href="./verticals/legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="./api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="./api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/ai/
+- URL: https://infrafabric.io/verticals/ai/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/ai/
+- Source: `ifttt/verticals/ai/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — AI Products</title>
+    <meta name="description" content="IF.TTT for AI product companies: provable provenance for outputs (“why did it say that?”) without giving third parties internal access." />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">AI product companies</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#how">How</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">AI product reality</p>
+            <h1>“Why did it say that?” becomes a contract clause.</h1>
+            <p class="lede">
+              Enterprise buyers increasingly require provenance: what source material fed the output, what version produced it, and what can be
+              verified after the fact. IF.TTT turns that requirement into a repeatable receipt surface.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Enterprise buyers demand defensible provenance without joining your internal stack.</li>
+                <li>Incident responders demand integrity-bound artifacts for “what happened.”</li>
+                <li>GRC teams demand a black/white boundary between verified evidence and interpretation.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Receipts</div>
+                  <div class="bw__v">Trace pages + stable no‑login URLs for outputs and sources.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Disputes</div>
+                  <div class="bw__v">Offline bundles for verification after access or context changes.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Clarity</div>
+                  <div class="bw__v">Proves integrity and publication; does not claim intent or correctness.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Example receipt">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">RECEIPTS</div>
+                <div class="badge">DISPUTE‑READY</div>
+              </div>
+              <div class="card__body">
+                <div class="links">
+                  <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Example trace receipt</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+                  </a>
+                </div>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">The output isn’t the product. The proof is.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/enterprise/
+- URL: https://infrafabric.io/verticals/enterprise/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/enterprise/
+- Source: `ifttt/verticals/enterprise/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Enterprise</title>
+    <meta name="description" content="IF.TTT for enterprises: third-party verifiable receipts for audits, vendor reviews, and internal governance without credential sprawl." />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Enterprise</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#how">How</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Enterprise reality</p>
+            <h1>Audits are a throughput problem.</h1>
+            <p class="lede">
+              Enterprise trust breaks when proof requires access: screenshots, ticket exports, and “trust me” Slack threads. IF.TTT replaces access
+              requirements with receipts—so verification is externalizable.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Auditors and customers ask the same question: “prove it was true at the time.”</li>
+                <li>Procurement needs evidence without granting broad credentials.</li>
+                <li>Executives need a narrative; security needs reproducible artifacts.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Receipt‑first</div>
+                  <div class="bw__v">Integrity binding: <code>source_sha256</code> ↔ <code>output_sha256</code>.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">No‑login share</div>
+                  <div class="bw__v">Public receipt surface for reviewers (with sandbox fallback paths).</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Offline option</div>
+                  <div class="bw__v">Triage bundles for future disputes and restricted review.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Example receipt links">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">VERIFIABLE</div>
+                <div class="badge">BORING</div>
+              </div>
+              <div class="card__body">
+                <div class="links">
+                  <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Example trace receipt</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+                  </a>
+                  <a class="linkrow" href="https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n.md" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Example pack (Markdown)</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n.md</span>
+                  </a>
+                </div>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>One sentence you can forward</h2>
+          <p class="sub">For stakeholder alignment without overclaiming.</p>
+          <div class="panel">
+            <p class="sub2">
+              IF.TTT supports audits by producing externally verifiable receipts—so reviewers don’t need your internal credentials to verify integrity.
+            </p>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">Make verification cheap. Keep access expensive.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/finance/
+- URL: https://infrafabric.io/verticals/finance/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/finance/
+- Source: `ifttt/verticals/finance/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Finance</title>
+    <meta name="description" content="IF.TTT for fintech and regulated finance: prove provenance, non-repudiation, and dispute-ready receipts for auditors and regulators." />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Fintech / regulated finance</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#trust">Trust</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Finance reality</p>
+            <h1>Regulators don’t buy narratives. They buy receipts.</h1>
+            <p class="lede">
+              In regulated finance, the first question after an incident is not “what did the model mean?” It’s “show me the evidence chain: inputs,
+              outputs, timestamps, and who approved what.”
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Model risk / validation teams need reproducibility.</li>
+                <li>Internal audit needs non‑repudiation and time‑scoped proof.</li>
+                <li>Regulators need chain‑of‑custody that survives disputes.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Receipt</div>
+                  <div class="bw__v">A public trace page binding <code>source_sha256</code> ↔ <code>output_sha256</code>.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Dispute</div>
+                  <div class="bw__v">Offline bundles for later verification without relying on internal access.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Clarity</div>
+                  <div class="bw__v">Black/white separation of what’s verified vs what is interpretation.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Receipt-first process">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">PROCESS</div>
+                <div class="badge">RECEIPT‑FIRST</div>
+              </div>
+              <div class="card__body">
+                <ol class="steps">
+                  <li class="step">
+                    <div class="step__n">1</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the source</div>
+                      <div class="step__d">Compute <code>source_sha256</code> of the exact bytes.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">2</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the output</div>
+                      <div class="step__d">Compute <code>output_sha256</code> of what is published.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">3</div>
+                    <div class="step__b">
+                      <div class="step__t">Publish the trace</div>
+                      <div class="step__d">Receipt links hashes + trace id + version.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">4</div>
+                    <div class="step__b">
+                      <div class="step__t">Share without login</div>
+                      <div class="step__d">Stable URLs keyed by <code>shareId</code>.</div>
+                    </div>
+                  </li>
+                </ol>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Artifacts you can hand to third parties</h2>
+          <p class="sub">This is the point: reviewers shouldn’t need your VPN.</p>
+          <pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
+Output (rendered): https://infrafabric.io/static/dossier/&lt;shareId&gt;
+Output (raw): https://infrafabric.io/static/dossier/&lt;shareId&gt;/download
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html</code></pre>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>Live example</h2>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Example trace receipt</span>
+              <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+            </a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">Finance isn’t special. The auditors are just earlier.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/government/
+- URL: https://infrafabric.io/verticals/government/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/government/
+- Source: `ifttt/verticals/government/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Government</title>
+    <meta
+      name="description"
+      content="IF.TTT for government and defense contractors: offline verification bundles and unambiguous chain-of-custody for assessors and supply chain reviews."
+    />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Government / defense</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#trust">Trust</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Government reality</p>
+            <h1>Assurance is an offline problem.</h1>
+            <p class="lede">
+              In restricted environments, the “can you verify it?” question must be answered without assuming network access, SaaS consoles, or vendor
+              portals. IF.TTT treats offline verification as a first‑class requirement.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Assessors demand chain‑of‑custody and unambiguous provenance.</li>
+                <li>Procurement wants proof that survives vendor handoffs.</li>
+                <li>Security teams need evidence that is portable across networks and time.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Offline bundles</div>
+                  <div class="bw__v">Triage bundles (lightweight/standard/full) with expected hashes for trustless verification.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Receipt surface</div>
+                  <div class="bw__v">Stable no‑login URLs for trace + output + source.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Black/white</div>
+                  <div class="bw__v">Clear statement of what integrity receipts prove—and what they don’t.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Triage bundle selector">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">OFFLINE</div>
+                <div class="badge">TRIAGE BUNDLES</div>
+              </div>
+              <div class="card__body">
+                <div class="links">
+                  <a class="linkrow" href="https://infrafabric.io/static/hosted/review/trace-bundles/d70ed99a/index.html" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Triage selector (HTML)</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/hosted/review/trace-bundles/d70ed99a/index.html</span>
+                  </a>
+                  <a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.html" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Verifier (HTML)</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.html</span>
+                  </a>
+                </div>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>What you can hand to an assessor</h2>
+          <p class="sub">No accounts required. No internal consoles required.</p>
+          <pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
+Bundle selector: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html
+Verifier: https://infrafabric.io/static/hosted/iftrace.py</code></pre>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>Live example</h2>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Example trace receipt</span>
+              <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+            </a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">If it can’t be verified offline, it’s not a control.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/healthcare/
+- URL: https://infrafabric.io/verticals/healthcare/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/healthcare/
+- Source: `ifttt/verticals/healthcare/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Healthcare</title>
+    <meta
+      name="description"
+      content="IF.TTT for healthcare: clear boundaries on what is verified vs inferred, and portable evidence for audits and incident review."
+    />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Healthcare</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#trust">Trust</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Healthcare reality</p>
+            <h1>Clarity beats confidence.</h1>
+            <p class="lede">
+              Healthcare environments punish ambiguity. IF.TTT makes “what we can prove” explicit, and forces everything else to be labeled as
+              interpretation or review-required.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Compliance wants evidence that is bounded and reviewable.</li>
+                <li>Incident reviewers want provenance for outputs and decisions.</li>
+                <li>Vendors and partners want proof without access to your internal tooling.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Verified</div>
+                  <div class="bw__v">Integrity binding (hashes), receipts, optional signatures.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Not verified</div>
+                  <div class="bw__v">Clinical intent, interpretation, or correctness of conclusions.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Outcome</div>
+                  <div class="bw__v">Evidence becomes legible to outsiders without pretending it is “the decision.”</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Receipt-first process">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">BLACK/WHITE</div>
+                <div class="badge">BOUNDARIES</div>
+              </div>
+              <div class="card__body">
+                <ol class="steps">
+                  <li class="step">
+                    <div class="step__n">1</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash artifacts</div>
+                      <div class="step__d">Source and output bytes get stable hashes.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">2</div>
+                    <div class="step__b">
+                      <div class="step__t">Publish receipts</div>
+                      <div class="step__d">Trace page shows what can be verified.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">3</div>
+                    <div class="step__b">
+                      <div class="step__t">Export bundles (optional)</div>
+                      <div class="step__d">For constrained review environments.</div>
+                    </div>
+                  </li>
+                </ol>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">Healthcare needs boundaries more than optimism.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/
+- URL: https://infrafabric.io/verticals/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/
+- Source: `ifttt/verticals/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Verticals</title>
+    <meta name="description" content="Vertical fit overview for IF.TTT: third-party trust pressure mapped to receipts, bundles, and verification." />
+    <link rel="stylesheet" href="../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Vertical fit</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../#how">How</a>
+          <a href="../#trust">Trust</a>
+          <a href="../#verify">Verify</a>
+          <a href="../governance/">Governance</a>
+          <a href="../whitepaper/">Whitepaper</a>
+          <a href="../about/">About</a>
+          <a href="../api/">Developers</a>
+          <a class="lang" href="../fr/" aria-label="French">FR</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Same mechanism, different pressure</p>
+            <h1>Two axes: who is buying, what is at stake.</h1>
+            <p class="lede">
+              IF.TTT doesn’t “solve compliance.” It solves the universal problem underneath compliance: third parties demanding proof without joining your
+              internal world. The receipts stay the same; the incentives and failure modes change.
+            </p>
+            <div class="cta">
+              <a class="btn btn--primary" href="../#verify">Try a live trace</a>
+              <a class="btn" href="../api/">Developer surface</a>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Receipt-first sequence">
+            <div class="card">
+              <div class="card__media">
+                <img src="../assets/red-team-doc-1024-559.jpg" alt="Red Team dossier cover" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">RECEIPT‑FIRST</div>
+                <div class="badge">NO‑LOGIN</div>
+              </div>
+              <div class="card__body">
+                <ol class="steps">
+                  <li class="step">
+                    <div class="step__n">1</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the source</div>
+                      <div class="step__d">Compute <code>source_sha256</code>.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">2</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the output</div>
+                      <div class="step__d">Compute <code>output_sha256</code>.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">3</div>
+                    <div class="step__b">
+                      <div class="step__t">Publish the trace</div>
+                      <div class="step__d">A receipt page binds source ↔ output.</div>
+                    </div>
+                  </li>
+                </ol>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Browse by sector</h2>
+          <p class="sub">Who the buyer is. The same receipts, different pressure.</p>
+
+          <div class="cards">
+            <article class="vcard">
+              <h3>Public Sector</h3>
+              <p class="vcard__v">Procurement cycles, oversight, offline verification.</p>
+              <a class="vcard__more" href="./public-sector/">Public Sector →</a>
+            </article>
+            <article class="vcard">
+              <h3>Enterprise</h3>
+              <p class="vcard__v">Audits as throughput; evidence without credential sprawl.</p>
+              <a class="vcard__more" href="./enterprise/">Enterprise →</a>
+            </article>
+            <article class="vcard">
+              <h3>Research</h3>
+              <p class="vcard__v">Provenance, reproducibility, and external reviewers.</p>
+              <a class="vcard__more" href="./research/">Research →</a>
+            </article>
+            <article class="vcard">
+              <h3>Professional Services</h3>
+              <p class="vcard__v">Client handoffs, disputes, and custody that holds up later.</p>
+              <a class="vcard__more" href="./professional-services/">Professional Services →</a>
+            </article>
+          </div>
+
+          <h2 style="margin-top: 28px">Browse by industry</h2>
+          <p class="sub">What domain the risk lives in: regulation, data, and dispute pressure.</p>
+
+          <div class="cards">
+            <article class="vcard">
+              <h3>Healthcare</h3>
+              <p class="vcard__v">Audit trails, privacy boundaries, dispute‑ready artifacts.</p>
+              <a class="vcard__more" href="./healthcare/">Healthcare →</a>
+            </article>
+            <article class="vcard">
+              <h3>Financial Services</h3>
+              <p class="vcard__v">Model risk, non‑repudiation, evidence for regulators.</p>
+              <a class="vcard__more" href="./finance/">Financial →</a>
+            </article>
+            <article class="vcard">
+              <h3>Legal</h3>
+              <p class="vcard__v">Chain‑of‑custody for drafts, evidence, and decisions.</p>
+              <a class="vcard__more" href="./legal/">Legal →</a>
+            </article>
+          </div>
+
+          <h2 style="margin-top: 28px">More pressure profiles</h2>
+          <p class="sub">Common governance failure modes that appear across sectors and industries.</p>
+
+          <div class="cards">
+            <article class="vcard">
+              <h3>B2B SaaS (SOC 2 / ISO)</h3>
+              <p class="vcard__v">Auditors, procurement, “prove it existed at the time.”</p>
+              <a class="vcard__more" href="./saas/">B2B SaaS →</a>
+            </article>
+            <article class="vcard">
+              <h3>SecOps / SOC</h3>
+              <p class="vcard__v">Bind summaries to evidence; keep custody intact.</p>
+              <a class="vcard__more" href="./secops/">SecOps →</a>
+            </article>
+            <article class="vcard">
+              <h3>AI Product Companies</h3>
+              <p class="vcard__v">Provable provenance for outputs: “why did it say that?”</p>
+              <a class="vcard__more" href="./ai/">AI products →</a>
+            </article>
+            <article class="vcard">
+              <h3>Industrial / Supply Chain</h3>
+              <p class="vcard__v">Traceability that survives vendor and contractor handoffs.</p>
+              <a class="vcard__more" href="./supply-chain/">Supply chain →</a>
+            </article>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">InfraFabric • IF.TTT receipts are designed to be legible to the governed.</div>
+        <div class="muted">
+          <a href="../">IF.TTT</a> · <a href="../governance/">Governance</a> · <a href="../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="./public-sector/">Public Sector</a>
+          <a href="./enterprise/">Enterprise</a>
+          <a href="./research/">Research</a>
+          <a href="./professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="./healthcare/">Healthcare</a>
+          <a href="./finance/">Financial</a>
+          <a href="./legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/legal/
+- URL: https://infrafabric.io/verticals/legal/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/legal/
+- Source: `ifttt/verticals/legal/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Legal</title>
+    <meta name="description" content="IF.TTT for legal workflows: chain-of-custody for drafts, evidence, and decisions. Receipts, not recollections." />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Legal</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#trust">Trust</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Legal reality</p>
+            <h1>Courts don’t accept “trust me.” They accept provenance.</h1>
+            <p class="lede">
+              Legal and compliance teams live in the difference between “we believe this happened” and “we can prove this happened.” IF.TTT is built to
+              make that proof portable.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Disputes demand reproducibility: the exact input and the exact output.</li>
+                <li>Evidence must be time‑scoped: “what did we know, when did we know it?”</li>
+                <li>Chain‑of‑custody must survive handoffs (vendor → customer → counsel → auditor).</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Integrity</div>
+                  <div class="bw__v">Hash receipts bind the published bytes to what was reviewed.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Portability</div>
+                  <div class="bw__v">No‑login links and offline bundles for external review.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Clarity</div>
+                  <div class="bw__v">Explicit “proves / does not prove” framing reduces ambiguity.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Receipt-first process">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">EVIDENCE</div>
+                <div class="badge">CHAIN‑OF‑CUSTODY</div>
+              </div>
+              <div class="card__body">
+                <ol class="steps">
+                  <li class="step">
+                    <div class="step__n">1</div>
+                    <div class="step__b">
+                      <div class="step__t">Define the artifact</div>
+                      <div class="step__d">Identify the exact bytes to be relied upon.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">2</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash it</div>
+                      <div class="step__d">Publish <code>sha256</code> as the integrity baseline.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">3</div>
+                    <div class="step__b">
+                      <div class="step__t">Issue the receipt</div>
+                      <div class="step__d">Trace page binds source ↔ output with a trace id.</div>
+                    </div>
+                  </li>
+                </ol>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Artifacts that make disputes less expensive</h2>
+          <p class="sub">You can hand these to an external reviewer without shipping your internal systems.</p>
+          <pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
+Output (raw): https://infrafabric.io/static/dossier/&lt;shareId&gt;/download
+Review pack: https://infrafabric.io/static/review/&lt;shareId&gt;
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html</code></pre>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>Live example</h2>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Example trace receipt</span>
+              <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+            </a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">Legal is just governance with deadlines.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/professional-services/
+- URL: https://infrafabric.io/verticals/professional-services/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/professional-services/
+- Source: `ifttt/verticals/professional-services/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Professional Services</title>
+    <meta
+      name="description"
+      content="IF.TTT for professional services: receipts and chain-of-custody artifacts that hold up across clients, engagements, and disputes."
+    />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Professional services</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#trust">Trust</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Services reality</p>
+            <h1>The deliverable is the receipt.</h1>
+            <p class="lede">
+              In professional services, the artifact you hand over becomes evidence: audits, disputes, expert reports, procurement packs. IF.TTT makes
+              the handoff verifiable without making you a credential broker.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Clients want proof; opposing counsel wants provenance.</li>
+                <li>Auditors need artifacts they can verify without your internal access.</li>
+                <li>Engagements outlive inboxes; the evidence must remain stable.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Chain‑of‑custody</div>
+                  <div class="bw__v">Trace receipt binds source ↔ output, plus IDs and timestamps.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Portable proofs</div>
+                  <div class="bw__v">Bundles can be archived with the case file and re‑verified later.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Clarity</div>
+                  <div class="bw__v">What was verified is shown; interpretation is labeled as interpretation.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Example receipt links">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">EXPORTABLE</div>
+                <div class="badge">DISPUTE‑READY</div>
+              </div>
+              <div class="card__body">
+                <div class="links">
+                  <a class="linkrow" href="https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Example pack (HTML)</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n</span>
+                  </a>
+                  <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Example trace receipt</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+                  </a>
+                </div>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Operational trap to avoid</h2>
+          <p class="sub">Don’t turn verification into credential distribution.</p>
+          <div class="grid2">
+            <div class="panel">
+              <h3>Bad</h3>
+              <p class="sub2">“Log in to our system and we’ll show you.”</p>
+            </div>
+            <div class="panel">
+              <h3>Good</h3>
+              <p class="sub2">“Here is the artifact, here is the receipt, verify without us.”</p>
+            </div>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">If the reviewer needs your credentials, it’s not verifiable.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/public-sector/
+- URL: https://infrafabric.io/verticals/public-sector/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/public-sector/
+- Source: `ifttt/verticals/public-sector/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Public Sector</title>
+    <meta
+      name="description"
+      content="IF.TTT for the public sector: public receipts, offline verification bundles, and unambiguous chain-of-custody for external reviewers."
+    />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Public sector</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#trust">Trust</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Public sector reality</p>
+            <h1>Proof must survive procurement.</h1>
+            <p class="lede">
+              Public accountability is a third‑party problem: reviewers need proof without getting access to your internal systems. IF.TTT turns “trust
+              us” into receipts that a stranger can verify.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Assessors need chain‑of‑custody that survives vendor handoffs.</li>
+                <li>Procurement and oversight bodies require documentation that outlives staff turnover.</li>
+                <li>Some environments must support offline verification by design.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Receipt surface</div>
+                  <div class="bw__v">Stable, no‑login URLs for trace + output + source.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Offline bundles</div>
+                  <div class="bw__v">Triage bundles (lightweight/standard/full) with expected hashes.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Black/white</div>
+                  <div class="bw__v">States what is verified (integrity) and what is not (interpretation).</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Example receipt links">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">OFFLINE</div>
+                <div class="badge">RECEIPTS</div>
+              </div>
+              <div class="card__body">
+                <div class="links">
+                  <a
+                    class="linkrow"
+                    href="https://infrafabric.io/static/hosted/review/trace-bundles/b6547c03/index.html"
+                    target="_blank"
+                    rel="noreferrer"
+                  >
+                    <span class="linkrow__t">Triage selector (HTML)</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/hosted/review/trace-bundles/b6547c03/index.html</span>
+                  </a>
+                  <a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.html" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Verifier (HTML)</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.html</span>
+                  </a>
+                </div>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>What you can hand to a reviewer</h2>
+          <p class="sub">No accounts required. No internal consoles required.</p>
+          <pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
+Pack (HTML): https://infrafabric.io/static/pack/&lt;shareId&gt;
+Bundle selector: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html</code></pre>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>Live example</h2>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Example trace receipt</span>
+              <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+            </a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">Public verification is a product requirement.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/research/
+- URL: https://infrafabric.io/verticals/research/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/research/
+- Source: `ifttt/verticals/research/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Research</title>
+    <meta name="description" content="IF.TTT for research: provenance and reproducibility for reports, analyses, datasets, and AI outputs." />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Research</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#how">How</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Research reality</p>
+            <h1>Reproducibility is governance.</h1>
+            <p class="lede">
+              Research already understands receipts: methods, datasets, citations. IF.TTT applies the same discipline to AI outputs and operational
+              decisions: publish what can be verified, label what can’t, and keep the bytes stable.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Peer review demands the ability to reproduce claims.</li>
+                <li>Funding/compliance bodies demand provenance for decisions and outputs.</li>
+                <li>Collaborators need proof that the artifact they received is the artifact you published.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Integrity</div>
+                  <div class="bw__v">Hash receipts: same bytes, same hash, independent verification.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Clarity</div>
+                  <div class="bw__v">Explicitly separates evidence (verified) from interpretation (not verified).</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Portability</div>
+                  <div class="bw__v">Offline bundles for constrained or future review environments.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Receipt-first process">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">PROCESS</div>
+                <div class="badge">PROVENANCE</div>
+              </div>
+              <div class="card__body">
+                <ol class="steps">
+                  <li class="step">
+                    <div class="step__n">1</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the source</div>
+                      <div class="step__d">Dataset / paper / prompt pack → <code>source_sha256</code>.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">2</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the output</div>
+                      <div class="step__d">The artifact you publish → <code>output_sha256</code>.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">3</div>
+                    <div class="step__b">
+                      <div class="step__t">Publish the trace</div>
+                      <div class="step__d">Receipt binds source ↔ output, plus verification hooks.</div>
+                    </div>
+                  </li>
+                </ol>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Portable verification artifacts</h2>
+          <p class="sub">So reviewers can validate without trusting your infrastructure.</p>
+          <pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
+Pack (raw): https://infrafabric.io/static/pack/&lt;shareId&gt;.md
+Pack (HTML): https://infrafabric.io/static/pack/&lt;shareId&gt;
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html</code></pre>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>Live example</h2>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Example trace receipt</span>
+              <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+            </a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">If it can’t be reproduced, it can’t be governed.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/saas/
+- URL: https://infrafabric.io/verticals/saas/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/saas/
+- Source: `ifttt/verticals/saas/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — B2B SaaS</title>
+    <meta name="description" content="IF.TTT for B2B SaaS: auditor-ready receipts, no-login proof surfaces, and dispute-friendly bundles for SOC 2 / ISO programs." />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">B2B SaaS (SOC 2 / ISO)</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#trust">Trust</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">SaaS reality</p>
+            <h1>Audits are evidence requests with a deadline.</h1>
+            <p class="lede">
+              In B2B SaaS, the friction isn’t the control design. It’s proving the control existed at the right time, in the right scope, without
+              granting auditors full internal access.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Auditors want integrity-bound artifacts (not screenshots in shared drives).</li>
+                <li>Enterprise procurement wants reproducible proof without bespoke portals.</li>
+                <li>Post‑incident reviewers want “what did it say?” tied to “what did it see?”</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">No‑login</div>
+                  <div class="bw__v">Stable URLs for trace + output + source, keyed by <code>shareId</code>.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Dispute‑ready</div>
+                  <div class="bw__v">Offline bundles with expected hashes for later verification.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Black/white</div>
+                  <div class="bw__v">Explicit “proves / does not prove” framing for auditor conversations.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Receipt-first process">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">RECEIPTS</div>
+                <div class="badge">AUDIT‑FRICTION</div>
+              </div>
+              <div class="card__body">
+                <ol class="steps">
+                  <li class="step">
+                    <div class="step__n">1</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the source</div>
+                      <div class="step__d">Compute <code>source_sha256</code>.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">2</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the output</div>
+                      <div class="step__d">Compute <code>output_sha256</code>.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">3</div>
+                    <div class="step__b">
+                      <div class="step__t">Publish the receipt</div>
+                      <div class="step__d">Share a trace page with stable no‑login URLs.</div>
+                    </div>
+                  </li>
+                </ol>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Artifacts for auditors</h2>
+          <p class="sub">The purpose is to make evidence portable and boring.</p>
+          <pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
+Output (raw): https://infrafabric.io/static/dossier/&lt;shareId&gt;/download
+Pack (HTML): https://infrafabric.io/static/pack/&lt;shareId&gt;</code></pre>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">If the evidence isn’t portable, the audit will be.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/sciences/
+- URL: https://infrafabric.io/verticals/sciences/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/sciences/
+- Source: `ifttt/verticals/sciences/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Sciences</title>
+    <meta name="description" content="IF.TTT for science and research: provenance and reproducibility for reports, analyses, and model outputs." />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Sciences / research</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#how">How</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Research reality</p>
+            <h1>Reproducibility is governance in a lab coat.</h1>
+            <p class="lede">
+              Scientific workflows already understand receipts: methods, datasets, and citations. IF.TTT is the same idea applied to AI outputs and
+              operational decisions: publish what can be verified, and mark what can’t.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Peer reviewers need the ability to reproduce claims.</li>
+                <li>Funding/compliance bodies need provenance for decisions and outputs.</li>
+                <li>Collaborators need proof that the artifact they received is the artifact you published.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Integrity</div>
+                  <div class="bw__v">Hash receipts: same bytes, same hash, independent verification.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Clarity</div>
+                  <div class="bw__v">Explicitly separates evidence (verified) from interpretation (not verified).</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Portability</div>
+                  <div class="bw__v">Offline bundles for constrained or future review environments.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Receipt-first process">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">PROCESS</div>
+                <div class="badge">PROVENANCE</div>
+              </div>
+              <div class="card__body">
+                <ol class="steps">
+                  <li class="step">
+                    <div class="step__n">1</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the source</div>
+                      <div class="step__d">Dataset / paper / prompt pack → <code>source_sha256</code>.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">2</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the output</div>
+                      <div class="step__d">The output you publish → <code>output_sha256</code>.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">3</div>
+                    <div class="step__b">
+                      <div class="step__t">Publish the trace</div>
+                      <div class="step__d">Receipt binds source ↔ output with trace id and versions.</div>
+                    </div>
+                  </li>
+                </ol>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Portable verification artifacts</h2>
+          <p class="sub">So reviewers can validate without trusting your infrastructure.</p>
+          <pre class="code"><code>Trace receipt: https://infrafabric.io/static/trace/&lt;shareId&gt;
+Pack (raw): https://infrafabric.io/static/pack/&lt;shareId&gt;.md
+Pack (HTML): https://infrafabric.io/static/pack/&lt;shareId&gt;
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/&lt;id&gt;/index.html</code></pre>
+        </div>
+      </section>
+
+      <section class="section">
+        <div class="wrap">
+          <h2>Live example</h2>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Example trace receipt</span>
+              <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+            </a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">If it can’t be reproduced, it can’t be governed.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/secops/
+- URL: https://infrafabric.io/verticals/secops/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/secops/
+- Source: `ifttt/verticals/secops/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — SecOps</title>
+    <meta name="description" content="IF.TTT for SecOps and SOC: bind AI summaries to evidence; preserve chain-of-custody for investigations and audits." />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">SecOps / SOC</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#trust">Trust</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">SecOps reality</p>
+            <h1>Bind “what the system said” to “what the system saw.”</h1>
+            <p class="lede">
+              AI summaries can help, but only if they remain verifiable against raw telemetry. IF.TTT makes the custody chain explicit: source bytes,
+              output bytes, and a receipt that can be validated by third parties.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Executives demand a narrative; auditors demand evidence.</li>
+                <li>Incident response needs reproducible artifacts, not recollections.</li>
+                <li>External assessors need proof without your SIEM credentials.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Trace receipt</div>
+                  <div class="bw__v">Integrity binding: <code>source_sha256</code> ↔ <code>output_sha256</code>.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Offline proof</div>
+                  <div class="bw__v">Bundles that can be verified after the fact, offline.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Clarity</div>
+                  <div class="bw__v">What’s verified is stated; what’s interpretation is labeled as such.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Example receipt links">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-doc-1024-559.jpg" alt="Dossier cover" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">EVIDENCE</div>
+                <div class="badge">REPLAYABLE</div>
+              </div>
+              <div class="card__body">
+                <div class="links">
+                  <a class="linkrow" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank" rel="noreferrer">
+                    <span class="linkrow__t">Example trace receipt</span>
+                    <span class="linkrow__u">https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n</span>
+                  </a>
+                </div>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Operational trap to avoid</h2>
+          <p class="sub">Do not treat “AI summary” as evidence.</p>
+          <div class="grid2">
+            <div class="panel">
+              <h3>Bad</h3>
+              <p class="sub2">“The AI said this was resolved.”</p>
+            </div>
+            <div class="panel">
+              <h3>Good</h3>
+              <p class="sub2">“Here is the output, here is the evidence artifact, here is the receipt binding them.”</p>
+            </div>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">Summaries don’t hold up. Receipts do.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /verticals/supply-chain/
+- URL: https://infrafabric.io/verticals/supply-chain/
+- Static: https://infrafabric.io/static/hosted/ifttt/verticals/supply-chain/
+- Source: `ifttt/verticals/supply-chain/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Supply Chain</title>
+    <meta
+      name="description"
+      content="IF.TTT for industrial and supply chain environments: change-control receipts that survive contractor handoffs and insurer/auditor review."
+    />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Industrial / supply chain</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../">Verticals</a>
+          <a href="../../#trust">Trust</a>
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../whitepaper/">Whitepaper</a>
+          <a href="../../about/">About</a>
+          <a href="../../api/">Developers</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Supply chain reality</p>
+            <h1>Handoffs are where proof dies.</h1>
+            <p class="lede">
+              Industrial systems accumulate contractors, vendors, and integrators. IF.TTT standardizes a receipt surface so chain‑of‑custody doesn’t
+              collapse the moment responsibility moves.
+            </p>
+
+            <div class="panel">
+              <h3>Third‑party pressure</h3>
+              <ul class="list">
+                <li>Customers ask for change control evidence after outages.</li>
+                <li>Insurers ask what controls existed at the time of the incident.</li>
+                <li>Auditors ask for traceability across organizational boundaries.</li>
+              </ul>
+            </div>
+
+            <div class="panel" style="margin-top: 12px">
+              <h3>What IF.TTT provides</h3>
+              <div class="bw">
+                <div class="bw__row">
+                  <div class="bw__k">Receipts</div>
+                  <div class="bw__v">Stable no‑login trace + output + source URLs keyed by <code>shareId</code>.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Offline</div>
+                  <div class="bw__v">Bundles for verification when networks and portals are unavailable.</div>
+                </div>
+                <div class="bw__row">
+                  <div class="bw__k">Clarity</div>
+                  <div class="bw__v">Integrity binding is verifiable; interpretation remains process-owned.</div>
+                </div>
+              </div>
+            </div>
+          </div>
+
+          <aside class="hero__card" aria-label="Receipt-first process">
+            <div class="card">
+              <div class="card__media">
+                <img src="../../assets/red-team-stamp-600.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">PROCESS</div>
+                <div class="badge">HANDOFF‑SAFE</div>
+              </div>
+              <div class="card__body">
+                <ol class="steps">
+                  <li class="step">
+                    <div class="step__n">1</div>
+                    <div class="step__b">
+                      <div class="step__t">Hash the artifact</div>
+                      <div class="step__d">Define the bytes and compute <code>sha256</code>.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">2</div>
+                    <div class="step__b">
+                      <div class="step__t">Publish the receipt</div>
+                      <div class="step__d">Trace page binds source ↔ output.</div>
+                    </div>
+                  </li>
+                  <li class="step">
+                    <div class="step__n">3</div>
+                    <div class="step__b">
+                      <div class="step__t">Export bundles</div>
+                      <div class="step__d">Carry proof through constrained environments.</div>
+                    </div>
+                  </li>
+                </ol>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">When responsibility moves, the receipt shouldn’t.</div>
+        <div class="muted">
+          <a href="../">Verticals</a> · <a href="../../governance/">Governance</a> · <a href="../../api/">Developers</a> ·
+          <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a> <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+
+    <div class="bottombar" aria-label="Quick links">
+      <div class="wrap bottombar__inner">
+        <div class="bottombar__left">
+          <span class="bottombar__label">Sectors</span>
+          <a href="../public-sector/">Public Sector</a>
+          <a href="../enterprise/">Enterprise</a>
+          <a href="../research/">Research</a>
+          <a href="../professional-services/">Professional</a>
+          <span class="bottombar__sep">·</span>
+          <span class="bottombar__label">Industries</span>
+          <a href="../healthcare/">Healthcare</a>
+          <a href="../finance/">Financial</a>
+          <a href="../legal/">Legal</a>
+        </div>
+        <div class="bottombar__right">
+          <a href="../../api/">Developers</a>
+          <span class="bottombar__sep">|</span>
+          <a href="../../api/">API</a>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
+```
+
+</details>
+
+## /whitepaper/
+- URL: https://infrafabric.io/whitepaper/
+- Static: https://infrafabric.io/static/hosted/ifttt/whitepaper/
+- Source: `ifttt/whitepaper/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Whitepaper</title>
+    <meta
+      name="description"
+      content="Download the IF.TTT whitepaper and proof bundle. IF.TTT is a receipt-first governance layer: trace pages, stable no-login links, and optional offline bundles."
+    />
+    <link rel="stylesheet" href="../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Whitepaper</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../#how">How</a>
+          <a href="../#trust">Trust</a>
+          <a href="../#verify">Verify</a>
+          <a href="../verticals/">Verticals</a>
+          <a href="../governance/">Governance</a>
+          <a href="../api/">Developers</a>
+          <a href="../about/">About</a>
+          <a class="lang" href="../fr/" aria-label="French">FR</a>
+        </nav>
+      </div>
+    </header>
+
+    <main id="top">
+      <section class="hero">
+        <div class="wrap hero__grid">
+          <div class="hero__copy">
+            <p class="kicker">Long-form spec + receipts</p>
+            <h1>The IF.TTT whitepaper.</h1>
+            <p class="lede">
+              “Trustworthy” can’t be a vibe. This paper documents the receipt‑first sequence: <strong>hash the source</strong> → <strong>hash the output</strong> →
+              <strong>publish a trace</strong> → <strong>share no‑login receipts</strong> → <strong>optional offline bundles</strong>.
+            </p>
+
+            <div class="pillrow" role="list" aria-label="Included artifacts">
+              <div class="pill" role="listitem">
+                <span class="pill__k">Paper</span>
+                <span class="pill__v">HTML + Markdown</span>
+              </div>
+              <div class="pill" role="listitem">
+                <span class="pill__k">Receipts</span>
+                <span class="pill__v">Trace + hashes</span>
+              </div>
+              <div class="pill" role="listitem">
+                <span class="pill__k">Offline</span>
+                <span class="pill__v">Proof bundle + verifier</span>
+              </div>
+            </div>
+
+            <div class="cta">
+              <a
+                class="btn btn--primary"
+                href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
+                target="_blank"
+                rel="noreferrer"
+                >Read the paper now</a
+              >
+              <a class="btn" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/" target="_blank" rel="noreferrer"
+                >Get the full pack</a
+              >
+            </div>
+
+            <p class="note">
+              If your environment blocks downloads (common for some web fetchers), use the HTML version. The receipts are still verifiable.
+            </p>
+          </div>
+
+          <aside class="hero__card" aria-label="Request the pack by email">
+            <div class="card">
+              <div class="card__media">
+                <img src="../assets/eyes-only-dave.png" alt="EYES ONLY // DAVE stamp" loading="lazy" />
+              </div>
+              <div class="card__hdr">
+                <div class="badge badge--ok">NO LOGIN</div>
+                <div class="badge">EMAIL (OPTIONAL)</div>
+              </div>
+              <div class="card__body">
+                <div class="mini">
+                  <div class="mini__k">Want the pack in your inbox?</div>
+                  <div class="mini__v">Drop an email. We’ll reply with the stable links (no “demo call” bait).</div>
+                </div>
+
+                <form class="form" method="POST" action="https://formsubmit.co/ds@infrafabric.io">
+                  <input type="hidden" name="_subject" value="IF.TTT whitepaper request" />
+                  <input type="hidden" name="_template" value="table" />
+                  <input type="hidden" name="_next" value="https://infrafabric.io/whitepaper/thanks/" />
+                  <input type="text" name="_honey" class="honeypot" tabindex="-1" autocomplete="off" />
+
+                  <div class="field">
+                    <label for="email">Email</label>
+                    <input id="email" name="email" type="email" required placeholder="you@company.com" autocomplete="email" />
+                  </div>
+
+                  <div class="field-row">
+                    <div class="field">
+                      <label for="company">Company (optional)</label>
+                      <input id="company" name="company" type="text" placeholder="Company" autocomplete="organization" />
+                    </div>
+                    <div class="field">
+                      <label for="role">Role (optional)</label>
+                      <input id="role" name="role" type="text" placeholder="GRC / SecOps / Legal / Product" />
+                    </div>
+                  </div>
+
+                  <div class="field">
+                    <label for="vertical">Vertical (optional)</label>
+                    <select id="vertical" name="vertical">
+                      <option value="">Select…</option>
+                      <option>Finance</option>
+                      <option>Healthcare</option>
+                      <option>Government</option>
+                      <option>SaaS</option>
+                      <option>Legal</option>
+                      <option>Sciences</option>
+                      <option>Other</option>
+                    </select>
+                  </div>
+
+                  <div class="field">
+                    <label for="note">What are you trying to prove? (optional)</label>
+                    <textarea id="note" name="note" rows="3" placeholder="e.g., we need third-party verifiable audit artifacts…"></textarea>
+                  </div>
+
+                  <button class="btn btn--primary" type="submit">Send links</button>
+                  <p class="fine">We only use this to reply with the paper/receipts. No spam, no list rental.</p>
+                </form>
+              </div>
+            </div>
+          </aside>
+        </div>
+      </section>
+
+      <section class="section section--alt">
+        <div class="wrap">
+          <h2>Stable links (copy/paste)</h2>
+          <p class="sub">These are the boring, audit-safe entry points.</p>
+          <div class="links">
+            <a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Whitepaper (HTML)</span>
+              <span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html</span>
+            </a>
+            <a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.md" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Whitepaper + review pack (Markdown)</span>
+              <span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.md</span>
+            </a>
+            <a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.tar.gz" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Proof bundle (tar.gz)</span>
+              <span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.tar.gz</span>
+            </a>
+            <a class="linkrow" href="https://infrafabric.io/static/hosted/iftrace.py" target="_blank" rel="noreferrer">
+              <span class="linkrow__t">Offline verifier (iftrace.py)</span>
+              <span class="linkrow__u">https://infrafabric.io/static/hosted/iftrace.py</span>
+            </a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">InfraFabric • IF.TTT is “proof without login”.</div>
+        <div class="muted">
+          <a href="../">IF.TTT</a> · <a href="../governance/">Governance</a> · <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
+          <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+  </body>
+</html>
+```
+
+</details>
+
+## /whitepaper/thanks/
+- URL: https://infrafabric.io/whitepaper/thanks/
+- Static: https://infrafabric.io/static/hosted/ifttt/whitepaper/thanks/
+- Source: `ifttt/whitepaper/thanks/index.html`
+
+<details>
+<summary>HTML</summary>
+
+```html
+<!doctype html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <title>IF.TTT — Whitepaper request</title>
+    <meta name="description" content="Thanks — here are the stable IF.TTT whitepaper links." />
+    <link rel="stylesheet" href="../../style.css" />
+  </head>
+
+  <body>
+    <header class="top">
+      <div class="wrap top__inner">
+        <a class="brand" href="../../" aria-label="IF.TTT home">
+          <img class="brand__logo" src="../../assets/if-logo-simple.svg" alt="" aria-hidden="true" />
+          <span class="brand__text">
+            <span class="brand__title">IF.TTT</span>
+            <span class="brand__sub">Whitepaper</span>
+          </span>
+        </a>
+
+        <nav class="nav" aria-label="Primary">
+          <a href="../../#verify">Verify</a>
+          <a href="../../governance/">Governance</a>
+          <a href="../../api/">Developers</a>
+          <a href="../../about/">About</a>
+        </nav>
+      </div>
+    </header>
+
+    <main>
+      <section class="section">
+        <div class="wrap">
+          <h1 style="margin-top: 0">Received.</h1>
+          <p class="sub">If you submitted the form, we’ll reply with the stable links. No pitch deck required.</p>
+
+          <div class="panel">
+            <h3>Immediate access (no email required)</h3>
+            <div class="links" style="margin-top: 10px">
+              <a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" target="_blank" rel="noreferrer">
+                <span class="linkrow__t">Read the paper (HTML)</span>
+                <span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html</span>
+              </a>
+              <a class="linkrow" href="https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/" target="_blank" rel="noreferrer">
+                <span class="linkrow__t">Full review pack index</span>
+                <span class="linkrow__u">https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/</span>
+              </a>
+            </div>
+            <p class="fine">
+              Tip: Some sandboxes load <code>text/html</code> but reject downloads. Use the HTML links in that case.
+            </p>
+          </div>
+
+          <div class="cta" style="margin-top: 14px">
+            <a class="btn btn--primary" href="../../">Back to IF.TTT</a>
+            <a class="btn" href="../">Whitepaper page</a>
+          </div>
+        </div>
+      </section>
+    </main>
+
+    <footer class="footer">
+      <div class="wrap footer__inner">
+        <div class="muted">InfraFabric • IF.TTT is “proof without login”.</div>
+        <div class="muted">
+          <a href="../../">IF.TTT</a> · <a href="../../governance/">Governance</a> · <a href="mailto:ds@infrafabric.io">ds@infrafabric.io</a>
+          <span class="bottombar__sep">·</span> Danny Stocker
+        </div>
+      </div>
+    </footer>
+  </body>
+</html>
+```
+
+</details>
+
+---
+
+# Text Assets (Full)
+
+## `app.js`
+- Source: `ifttt/app.js`
+
+```js
+(() => {
+  const typewordEl = document.getElementById("typeword");
+  const stepperEl = document.getElementById("stepper");
+  const revealStepper = createStepperRevealer(stepperEl);
+  if (stepperEl) window.setTimeout(revealStepper, 5200);
+
+  if (typewordEl) startTypewriter(typewordEl, { onFirstCycleDone: revealStepper });
+
+  const quoteTextEl = document.getElementById("quoteText");
+  const quoteMetaEl = document.getElementById("quoteMeta");
+  const quoteWrapEl = quoteTextEl?.closest?.(".quote");
+  if (quoteTextEl && quoteMetaEl && quoteWrapEl) startQuoteTicker({ quoteWrapEl, quoteTextEl, quoteMetaEl });
+})();
+
+function createStepperRevealer(stepperEl) {
+  let shown = false;
+  return () => {
+    if (shown || !stepperEl) return;
+    shown = true;
+    stepperEl.hidden = false;
+    window.requestAnimationFrame(() => stepperEl.classList.add("homeStepper--show"));
+  };
+}
+
+function startTypewriter(typewordEl, opts = {}) {
+  const words = ["Transparent", "Traceable", "Trust", "TTT"];
+  const typeMs = 42;
+  const deleteMs = 26;
+  const holdMs = 780;
+  const finalHoldMs = 1100;
+  const betweenMs = 180;
+  const onFirstCycleDone = typeof opts.onFirstCycleDone === "function" ? opts.onFirstCycleDone : null;
+
+  let wordIndex = 0;
+  let charIndex = 0;
+  let isDeleting = false;
+  let cycleCount = 0;
+
+  const tick = () => {
+    const word = words[wordIndex] || "";
+    if (!isDeleting) {
+      charIndex = Math.min(word.length, charIndex + 1);
+    } else {
+      charIndex = Math.max(0, charIndex - 1);
+    }
+
+    typewordEl.textContent = word.slice(0, charIndex);
+
+    const atEnd = !isDeleting && charIndex === word.length;
+    const atStart = isDeleting && charIndex === 0;
+
+    if (atEnd) {
+      isDeleting = true;
+      const wait = wordIndex === words.length - 1 ? finalHoldMs : holdMs;
+      window.setTimeout(tick, wait);
+      return;
+    }
+
+    if (atStart) {
+      isDeleting = false;
+      wordIndex = (wordIndex + 1) % words.length;
+      if (wordIndex === 0) {
+        cycleCount += 1;
+        if (cycleCount === 1 && onFirstCycleDone) onFirstCycleDone();
+      }
+      window.setTimeout(tick, betweenMs);
+      return;
+    }
+
+    window.setTimeout(tick, isDeleting ? deleteMs : typeMs);
+  };
+
+  tick();
+}
+
+async function startQuoteTicker({ quoteWrapEl, quoteTextEl, quoteMetaEl }) {
+  const quotes = await loadQuotes();
+  if (!Array.isArray(quotes) || quotes.length === 0) return;
+
+  quoteWrapEl.classList.add("quote--show");
+
+  let idx = Math.floor(Math.random() * quotes.length);
+
+  const show = (q) => {
+    quoteWrapEl.classList.remove("quote--show");
+    quoteWrapEl.classList.add("quote--fade");
+
+    window.setTimeout(() => {
+      quoteTextEl.textContent = q.text || "";
+      renderQuoteMeta({ quoteMetaEl, q });
+
+      quoteWrapEl.classList.remove("quote--fade");
+      quoteWrapEl.classList.add("quote--show");
+    }, 220);
+  };
+
+  const loop = () => {
+    const q = quotes[idx] || {};
+    show(q);
+    idx = (idx + 1) % quotes.length;
+
+    const duration = estimateReadMs(q.text || "");
+    window.setTimeout(loop, duration);
+  };
+
+  loop();
+}
+
+async function loadQuotes() {
+  try {
+    const resp = await fetch(resolveIfTttUrl("assets/ifttt-quotes.json"), { cache: "no-store" });
+    if (resp.ok) {
+      const data = await resp.json();
+      if (Array.isArray(data)) return data;
+    }
+  } catch (e) {}
+
+  return [
+    {
+      text: "Footnotes aren't decorations. They're load-bearing walls.",
+      source: "IF.TTT paper",
+      href: "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html",
+    },
+    {
+      text: "If there's no IF.TTT trace, it didn't happen—or shouldn't be trusted.",
+      source: "IF.TTT doctrine",
+      href: "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html",
+    },
+    {
+      text: "Trust isn't claimed. It's proven.",
+      source: "IF.TTT paper",
+      href: "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html",
+    },
+  ];
+}
+
+function resolveIfTttUrl(path) {
+  try {
+    const scriptEl = document.querySelector('script[src$="app.js"]');
+    const scriptUrl = scriptEl ? new URL(scriptEl.getAttribute("src"), window.location.href) : new URL(window.location.href);
+    return new URL(path, scriptUrl).toString();
+  } catch (e) {
+    return path;
+  }
+}
+
+function renderQuoteMeta({ quoteMetaEl, q }) {
+  while (quoteMetaEl.firstChild) quoteMetaEl.removeChild(quoteMetaEl.firstChild);
+
+  const source = String(q.source || "").trim();
+  const href = String(q.href || "").trim();
+  if (!source) return;
+
+  if (href) {
+    const a = document.createElement("a");
+    a.href = href;
+    a.target = "_blank";
+    a.rel = "noreferrer";
+    a.textContent = source;
+    quoteMetaEl.appendChild(a);
+    return;
+  }
+
+  quoteMetaEl.textContent = source;
+}
+
+function estimateReadMs(text) {
+  const cleaned = String(text || "").trim();
+  if (!cleaned) return 4000;
+
+  const words = cleaned.split(/\s+/).filter(Boolean).length;
+  const wpm = 220;
+  const ms = (words / wpm) * 60000 + 1200;
+  return clamp(ms, 3200, 11000);
+}
+
+function clamp(v, min, max) {
+  return Math.max(min, Math.min(max, v));
+}
+```
+
+## `style.css`
+- Source: `ifttt/style.css`
+
+```css
+:root {
+  --bg: #fffdf7;
+  --bg-alt: #fff9e6;
+  --panel: #ffffff;
+  --text: #111827;
+  --muted: #6b7280;
+  --border: #e5e7eb;
+  --link: #1d4ed8;
+  --accent: #8b0000;
+  --ok: #0f5132;
+  --ok-bg: #e7f6ee;
+  --shadow: 0 1px 0 rgba(0, 0, 0, 0.03);
+  --radius: 14px;
+}
+
+* {
+  box-sizing: border-box;
+}
+
+html {
+  scroll-behavior: smooth;
+}
+
+body {
+  margin: 0;
+  font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji";
+  background: var(--bg);
+  color: var(--text);
+  line-height: 1.5;
+  padding-bottom: 62px;
+}
+
+a {
+  color: var(--link);
+  text-decoration: none;
+}
+
+a:hover {
+  text-decoration: underline;
+}
+
+code {
+  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+  font-size: 0.92em;
+  background: #f3f4f6;
+  padding: 2px 6px;
+  border-radius: 8px;
+}
+
+pre.code {
+  background: #0b1020;
+  color: #e5e7eb;
+  border-radius: 12px;
+  padding: 12px;
+  overflow: auto;
+  box-shadow: var(--shadow);
+  border: 1px solid rgba(255, 255, 255, 0.06);
+}
+
+pre.code code {
+  background: transparent;
+  padding: 0;
+  border-radius: 0;
+  font-size: 12px;
+  line-height: 1.45;
+}
+
+.form {
+  display: grid;
+  gap: 12px;
+  margin-top: 12px;
+}
+
+.field label {
+  display: block;
+  font-size: 12px;
+  font-weight: 700;
+  color: var(--muted);
+  margin: 0 0 6px;
+}
+
+.field input,
+.field select,
+.field textarea {
+  width: 100%;
+  padding: 10px 12px;
+  border-radius: 12px;
+  border: 1px solid var(--border);
+  background: #ffffff;
+  font-size: 14px;
+  line-height: 1.2;
+}
+
+.field textarea {
+  resize: vertical;
+}
+
+.field input:focus,
+.field select:focus,
+.field textarea:focus {
+  outline: none;
+  border-color: rgba(29, 78, 216, 0.45);
+  box-shadow: 0 0 0 4px rgba(29, 78, 216, 0.12);
+}
+
+.field-row {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+  gap: 12px;
+}
+
+.honeypot {
+  display: none !important;
+}
+
+@media (max-width: 860px) {
+  .field-row {
+    grid-template-columns: 1fr;
+  }
+}
+
+
+.wrap {
+  max-width: 1120px;
+  margin: 0 auto;
+  padding: 0 18px;
+}
+
+.top {
+  position: sticky;
+  top: 0;
+  z-index: 20;
+  background: rgba(255, 253, 247, 0.92);
+  backdrop-filter: blur(10px);
+  border-bottom: 1px solid var(--border);
+}
+
+.top__inner {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 14px 0;
+  gap: 14px;
+}
+
+.brand {
+  display: inline-flex;
+  align-items: center;
+  gap: 12px;
+  min-width: 220px;
+}
+
+.brand__mark {
+  width: 38px;
+  height: 38px;
+  border-radius: 12px;
+  border: 1px solid rgba(139, 0, 0, 0.25);
+  background:
+    radial-gradient(18px 18px at 30% 30%, rgba(139, 0, 0, 0.18), transparent 60%),
+    radial-gradient(18px 18px at 70% 70%, rgba(29, 78, 216, 0.10), transparent 60%),
+    #fff;
+  box-shadow: var(--shadow);
+}
+
+.brand__logo {
+  width: 38px;
+  height: 38px;
+  display: block;
+  border-radius: 12px;
+  box-shadow: var(--shadow);
+}
+
+.brand__text {
+  display: flex;
+  flex-direction: column;
+  gap: 2px;
+}
+
+.brand__title {
+  font-weight: 800;
+  letter-spacing: 0.2px;
+}
+
+.brand__sub {
+  font-size: 12px;
+  color: var(--muted);
+}
+
+.nav {
+  display: flex;
+  gap: 14px;
+  flex-wrap: wrap;
+  justify-content: flex-end;
+  font-size: 13px;
+}
+
+.nav a {
+  color: var(--muted);
+  padding: 6px 8px;
+  border-radius: 10px;
+}
+
+.nav a:hover {
+  color: var(--text);
+  background: #ffffff;
+  border: 1px solid var(--border);
+  text-decoration: none;
+}
+
+.hero {
+  padding: 34px 0 22px;
+  background:
+    radial-gradient(650px 260px at 20% 0%, rgba(139, 0, 0, 0.08), transparent 60%),
+    radial-gradient(700px 300px at 100% 40%, rgba(29, 78, 216, 0.06), transparent 60%),
+    linear-gradient(#fffdf7, #fff);
+}
+
+.hero__grid {
+  display: grid;
+  grid-template-columns: 1.2fr 0.8fr;
+  gap: 22px;
+  align-items: start;
+}
+
+.kicker {
+  font-size: 13px;
+  color: var(--muted);
+  margin: 0 0 10px;
+}
+
+h1 {
+  font-size: 40px;
+  line-height: 1.1;
+  margin: 0 0 10px;
+  letter-spacing: -0.4px;
+}
+
+.type {
+  display: inline-flex;
+  align-items: center;
+  gap: 0;
+  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
+  font-size: 14px;
+  color: #374151;
+  margin: 0 0 10px;
+  user-select: none;
+}
+
+.type__prefix,
+.type__suffix {
+  color: #111827;
+  font-weight: 700;
+}
+
+.type__caret {
+  width: 8px;
+  height: 16px;
+  margin-left: 6px;
+  border-radius: 2px;
+  background: rgba(17, 24, 39, 0.65);
+  animation: caretblink 1s steps(1, end) infinite;
+}
+
+@keyframes caretblink {
+  50% {
+    opacity: 0;
+  }
+}
+
+.quote {
+  margin: 0 0 12px;
+  padding: 10px 12px;
+  border: 1px solid var(--border);
+  border-radius: var(--radius);
+  background: #ffffff;
+  box-shadow: var(--shadow);
+  max-width: 72ch;
+}
+
+.quote__text {
+  font-size: 13px;
+  color: #111827;
+  font-weight: 650;
+}
+
+.quote__meta {
+  margin-top: 6px;
+  font-size: 12px;
+  color: var(--muted);
+}
+
+.quote__meta a {
+  color: var(--muted);
+  text-decoration: underline;
+  text-underline-offset: 2px;
+}
+
+.quote--fade {
+  opacity: 0;
+  transition: opacity 250ms ease;
+}
+
+.quote--show {
+  opacity: 1;
+}
+
+.lede {
+  margin: 0 0 14px;
+  color: #374151;
+  max-width: 62ch;
+}
+
+.pillrow {
+  display: grid;
+  grid-template-columns: repeat(3, minmax(0, 1fr));
+  gap: 10px;
+  margin: 18px 0 16px;
+}
+
+.pill {
+  border: 1px solid var(--border);
+  background: #ffffff;
+  border-radius: var(--radius);
+  padding: 10px 10px;
+  box-shadow: var(--shadow);
+}
+
+.pill__k {
+  font-size: 12px;
+  color: var(--muted);
+  display: block;
+}
+
+.pill__v {
+  font-size: 13px;
+  font-weight: 600;
+  margin-top: 2px;
+  display: block;
+}
+
+.cta {
+  display: flex;
+  gap: 10px;
+  flex-wrap: wrap;
+  margin: 14px 0 10px;
+}
+
+.btn {
+  display: inline-flex;
+  align-items: center;
+  justify-content: center;
+  padding: 10px 12px;
+  border-radius: 12px;
+  border: 1px solid var(--border);
+  background: #ffffff;
+  color: var(--text);
+  font-weight: 650;
+  font-size: 13px;
+  box-shadow: var(--shadow);
+  text-decoration: none;
+}
+
+.btn:hover {
+  text-decoration: none;
+  border-color: rgba(17, 24, 39, 0.22);
+}
+
+.btn--primary {
+  background: #111827;
+  color: #ffffff;
+  border-color: rgba(0, 0, 0, 0.25);
+}
+
+.btn--primary:hover {
+  border-color: rgba(0, 0, 0, 0.45);
+}
+
+.note {
+  font-size: 12px;
+  color: var(--muted);
+  margin: 10px 0 0;
+}
+
+.card {
+  border: 1px solid var(--border);
+  background: #ffffff;
+  border-radius: 18px;
+  box-shadow: var(--shadow);
+  overflow: hidden;
+}
+
+.card__media {
+  border-bottom: 1px solid var(--border);
+  background: #111827;
+}
+
+.card__media img {
+  display: block;
+  width: 100%;
+  height: 162px;
+  object-fit: cover;
+  opacity: 0.95;
+}
+
+.card__hdr {
+  padding: 12px 12px;
+  border-bottom: 1px solid var(--border);
+  display: flex;
+  gap: 8px;
+  flex-wrap: wrap;
+  background: #f8fafc;
+}
+
+.badge {
+  display: inline-flex;
+  align-items: center;
+  padding: 4px 10px;
+  border-radius: 999px;
+  border: 1px solid var(--border);
+  font-size: 12px;
+  color: var(--muted);
+  background: #ffffff;
+  white-space: nowrap;
+}
+
+.badge--ok {
+  border-color: rgba(15, 81, 50, 0.25);
+  background: var(--ok-bg);
+  color: var(--ok);
+  font-weight: 700;
+}
+
+.card__body {
+  padding: 14px 12px 12px;
+}
+
+.kv {
+  display: grid;
+  grid-template-columns: 90px 1fr;
+  gap: 6px 10px;
+  font-size: 13px;
+}
+
+.kv__k {
+  color: var(--muted);
+}
+
+.kv__v code {
+  background: #f3f4f6;
+}
+
+.mini {
+  margin-top: 12px;
+  border-top: 1px dashed var(--border);
+  padding-top: 10px;
+  font-size: 13px;
+}
+
+.mini__k {
+  color: var(--muted);
+  font-weight: 600;
+  font-size: 12px;
+}
+
+.mini__v {
+  margin-top: 4px;
+  color: #374151;
+}
+
+.section {
+  padding: 34px 0;
+}
+
+.section--alt {
+  background: var(--bg-alt);
+  border-top: 1px solid rgba(0, 0, 0, 0.03);
+  border-bottom: 1px solid rgba(0, 0, 0, 0.03);
+}
+
+h2 {
+  margin: 0 0 8px;
+  font-size: 22px;
+  letter-spacing: -0.2px;
+}
+
+.sub {
+  margin: 0 0 18px;
+  color: var(--muted);
+  font-size: 14px;
+  max-width: 80ch;
+}
+
+.sub2 {
+  margin: 0 0 10px;
+  color: var(--muted);
+  font-size: 13px;
+}
+
+.steps {
+  display: grid;
+  gap: 10px;
+  padding: 0;
+  margin: 0;
+  list-style: none;
+}
+
+.step {
+  position: relative;
+  display: grid;
+  grid-template-columns: 44px 1fr;
+  gap: 12px;
+  padding: 14px 12px;
+  border: 1px solid var(--border);
+  border-radius: var(--radius);
+  background: #ffffff;
+  box-shadow: var(--shadow);
+}
+
+.step::after {
+  content: "";
+  position: absolute;
+  left: 30px;
+  top: 54px;
+  bottom: -10px;
+  width: 2px;
+  background: linear-gradient(to bottom, rgba(229, 231, 235, 0.95), rgba(229, 231, 235, 0));
+}
+
+.step:last-child::after {
+  display: none;
+}
+
+.step__n {
+  width: 36px;
+  height: 36px;
+  border-radius: 12px;
+  background: rgba(139, 0, 0, 0.06);
+  border: 1px solid rgba(139, 0, 0, 0.18);
+  display: grid;
+  place-items: center;
+  font-weight: 800;
+  color: var(--accent);
+}
+
+.step__t {
+  font-weight: 750;
+}
+
+.step__d {
+  color: #374151;
+  margin-top: 3px;
+  font-size: 13px;
+}
+
+.grid2 {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+  gap: 14px;
+}
+
+.panel {
+  background: #ffffff;
+  border: 1px solid var(--border);
+  border-radius: var(--radius);
+  padding: 14px 14px;
+  box-shadow: var(--shadow);
+}
+
+.panel h3 {
+  margin: 0 0 8px;
+  font-size: 15px;
+}
+
+.list {
+  margin: 10px 0 0;
+  padding-left: 18px;
+  color: #374151;
+  font-size: 13px;
+}
+
+.bw {
+  display: grid;
+  gap: 8px;
+  font-size: 13px;
+}
+
+.bw__row {
+  display: grid;
+  grid-template-columns: 130px 1fr;
+  gap: 10px;
+  padding: 10px 10px;
+  border: 1px solid var(--border);
+  border-radius: 12px;
+  background: #ffffff;
+}
+
+.bw__k {
+  color: var(--muted);
+  font-weight: 700;
+}
+
+.bw__v {
+  color: #374151;
+}
+
+.verify {
+  display: grid;
+  grid-template-columns: 1fr 1fr;
+  gap: 14px;
+  align-items: start;
+}
+
+.links {
+  display: grid;
+  gap: 8px;
+  margin-top: 10px;
+}
+
+.linkrow {
+  display: grid;
+  gap: 4px;
+  border: 1px solid var(--border);
+  border-radius: 12px;
+  padding: 10px 10px;
+  background: #ffffff;
+  box-shadow: var(--shadow);
+}
+
+.linkrow:hover {
+  border-color: rgba(29, 78, 216, 0.35);
+  text-decoration: none;
+}
+
+.linkrow__t {
+  font-weight: 700;
+  font-size: 13px;
+  color: var(--text);
+}
+
+.linkrow__u {
+  font-size: 12px;
+  color: var(--muted);
+  overflow-wrap: anywhere;
+}
+
+.fine {
+  margin: 12px 0 0;
+  color: var(--muted);
+  font-size: 12px;
+}
+
+.cards {
+  display: grid;
+  grid-template-columns: repeat(3, minmax(0, 1fr));
+  gap: 12px;
+}
+
+.vcard {
+  background: #ffffff;
+  border: 1px solid var(--border);
+  border-radius: var(--radius);
+  padding: 14px 14px;
+  box-shadow: var(--shadow);
+}
+
+.vcard__icon {
+  width: 44px;
+  height: 44px;
+  border: 1px solid var(--border);
+  border-radius: 14px;
+  background: #f8fafc;
+  display: grid;
+  place-items: center;
+  margin-bottom: 10px;
+  color: var(--accent);
+}
+
+.vcard__icon svg {
+  width: 22px;
+  height: 22px;
+}
+
+.vcard h3 {
+  margin: 0 0 10px;
+  font-size: 15px;
+}
+
+.vcard__k {
+  margin: 0;
+  font-size: 12px;
+  color: var(--muted);
+  font-weight: 700;
+}
+
+.vcard__v {
+  margin: 4px 0 10px;
+  font-size: 13px;
+  color: #374151;
+}
+
+.vcard__more {
+  display: inline-flex;
+  align-items: center;
+  gap: 6px;
+  font-size: 12px;
+  color: var(--muted);
+  padding: 6px 10px;
+  border: 1px solid var(--border);
+  border-radius: 999px;
+  background: #ffffff;
+}
+
+.vcard__more:hover {
+  color: var(--text);
+  border-color: rgba(17, 24, 39, 0.22);
+  text-decoration: none;
+}
+
+.faq {
+  display: grid;
+  gap: 10px;
+}
+
+details {
+  background: #ffffff;
+  border: 1px solid var(--border);
+  border-radius: var(--radius);
+  padding: 12px 12px;
+  box-shadow: var(--shadow);
+}
+
+summary {
+  cursor: pointer;
+  font-weight: 750;
+  list-style: none;
+}
+
+summary::-webkit-details-marker {
+  display: none;
+}
+
+details p {
+  margin: 10px 0 0;
+  color: #374151;
+  font-size: 13px;
+}
+
+.foot {
+  margin-top: 18px;
+  border-top: 1px solid var(--border);
+  padding-top: 14px;
+  display: grid;
+  gap: 8px;
+}
+
+.foot__row {
+  display: grid;
+  grid-template-columns: 90px 1fr;
+  gap: 12px;
+  font-size: 13px;
+}
+
+.foot__k {
+  color: var(--muted);
+  font-weight: 700;
+}
+
+.footer {
+  border-top: 1px solid var(--border);
+  padding: 18px 0;
+  background: #ffffff;
+}
+
+.footer__inner {
+  display: flex;
+  justify-content: space-between;
+  gap: 12px;
+  flex-wrap: wrap;
+}
+
+.muted {
+  color: var(--muted);
+  font-size: 12px;
+}
+
+.bottombar {
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  z-index: 25;
+  background: rgba(255, 253, 247, 0.92);
+  backdrop-filter: blur(10px);
+  border-top: 1px solid var(--border);
+}
+
+.bottombar__inner {
+  display: flex;
+  justify-content: space-between;
+  gap: 12px;
+  align-items: center;
+  padding: 10px 0;
+  font-size: 12px;
+}
+
+.bottombar__left,
+.bottombar__right {
+  display: flex;
+  gap: 6px;
+  align-items: center;
+  flex-wrap: wrap;
+}
+
+.bottombar__label {
+  font-size: 11px;
+  font-weight: 750;
+  letter-spacing: 0.08em;
+  text-transform: uppercase;
+  color: rgba(107, 114, 128, 0.85);
+  padding: 6px 6px;
+}
+
+.bottombar a {
+  color: var(--muted);
+  padding: 6px 8px;
+  border-radius: 10px;
+}
+
+.bottombar a:hover {
+  color: var(--text);
+  background: #ffffff;
+  border: 1px solid var(--border);
+  text-decoration: none;
+}
+
+.bottombar__sep {
+  color: rgba(107, 114, 128, 0.7);
+  margin: 0 2px;
+}
+
+@media (max-width: 980px) {
+  .hero__grid {
+    grid-template-columns: 1fr;
+  }
+  .pillrow {
+    grid-template-columns: 1fr;
+  }
+  .grid2 {
+    grid-template-columns: 1fr;
+  }
+  .verify {
+    grid-template-columns: 1fr;
+  }
+  .cards {
+    grid-template-columns: 1fr;
+  }
+  h1 {
+    font-size: 34px;
+  }
+
+  body {
+    padding-bottom: 74px;
+  }
+}
+
+/* Home (minimal landing; “OK Computer” empty-space bias) */
+body.home {
+  background:
+    radial-gradient(900px 420px at 15% 0%, rgba(29, 78, 216, 0.06), transparent 60%),
+    radial-gradient(900px 420px at 85% 15%, rgba(139, 0, 0, 0.06), transparent 60%),
+    linear-gradient(#fffdf7, #ffffff);
+}
+
+body.home .top {
+  position: fixed;
+  left: 0;
+  right: 0;
+  background: transparent;
+  border-bottom: none;
+  backdrop-filter: none;
+}
+
+body.home .top__inner {
+  padding: 18px 0;
+}
+
+.homeNav {
+  display: flex;
+  align-items: center;
+  gap: 12px;
+  flex-wrap: wrap;
+  justify-content: flex-end;
+  font-size: 12px;
+}
+
+.homeNav a {
+  color: var(--muted);
+  padding: 6px 8px;
+  border-radius: 10px;
+}
+
+.homeNav a:hover {
+  color: var(--text);
+  background: #ffffff;
+  border: 1px solid var(--border);
+  text-decoration: none;
+}
+
+.homeNav__sep {
+  color: rgba(107, 114, 128, 0.7);
+}
+
+.homeMain {
+  min-height: 100vh;
+  display: flex;
+  align-items: center;
+  padding: 120px 0 90px;
+}
+
+.homeMain__inner {
+  width: 100%;
+}
+
+.homeCenter {
+  text-align: center;
+  max-width: 920px;
+  margin: 0 auto;
+}
+
+.homeBadges {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  gap: 10px;
+  flex-wrap: wrap;
+  margin: 0 0 14px;
+}
+
+.badge--big {
+  font-size: 12px;
+  padding: 7px 12px;
+  border-radius: 999px;
+  letter-spacing: 0.08em;
+}
+
+.type--home {
+  font-size: clamp(44px, 7vw, 74px);
+  line-height: 1.05;
+  margin: 0 0 14px;
+  color: #111827;
+}
+
+.type--home .type__prefix,
+.type--home .type__suffix {
+  font-weight: 800;
+}
+
+.type--home .type__caret {
+  width: 0.18em;
+  height: 1.05em;
+  margin-left: 0.12em;
+  border-radius: 0.14em;
+  background: rgba(17, 24, 39, 0.65);
+}
+
+.quote--home {
+  margin: 0 auto 14px;
+}
+
+.quote--home .quote__text {
+  font-size: 14px;
+}
+
+.homeLede {
+  margin: 0 auto 0;
+  max-width: 78ch;
+  color: #374151;
+  font-size: 13px;
+}
+
+.homeStepper {
+  margin: 18px auto 0;
+  max-width: 920px;
+  text-align: left;
+  opacity: 0;
+  transform: translateY(6px);
+  transition:
+    opacity 420ms ease,
+    transform 420ms ease;
+}
+
+.homeStepper.homeStepper--show {
+  opacity: 1;
+  transform: translateY(0);
+}
+
+.homeLinks {
+  display: flex;
+  flex-wrap: wrap;
+  gap: 10px;
+  margin: 14px 0 0;
+}
+
+.homeLink {
+  display: inline-flex;
+  align-items: center;
+  justify-content: center;
+  padding: 9px 10px;
+  border-radius: 12px;
+  border: 1px solid var(--border);
+  background: #ffffff;
+  color: var(--text);
+  font-weight: 650;
+  font-size: 12px;
+  box-shadow: var(--shadow);
+  text-decoration: none;
+}
+
+.homeLink:hover {
+  text-decoration: none;
+  border-color: rgba(29, 78, 216, 0.35);
+  box-shadow:
+    var(--shadow),
+    0 0 0 4px rgba(29, 78, 216, 0.10);
+}
+
+.homeMeta {
+  margin-top: 14px;
+  font-size: 12px;
+  color: var(--muted);
+}
+
+@media (max-width: 980px) {
+  body.home .top {
+    position: sticky;
+    background: rgba(255, 253, 247, 0.92);
+    border-bottom: 1px solid var(--border);
+    backdrop-filter: blur(10px);
+  }
+
+  .homeMain {
+    padding-top: 86px;
+  }
+
+  .type--home {
+    font-size: clamp(38px, 10vw, 54px);
+  }
+}
+```
+
+## `assets/if-logo-simple.svg`
+- Source: `ifttt/assets/if-logo-simple.svg`
+
+```svg
+<?xml version="1.0" encoding="UTF-8"?>
+<svg
+  xmlns="http://www.w3.org/2000/svg"
+  width="1024"
+  height="1024"
+  viewBox="0 0 512 512"
+  role="img"
+  aria-labelledby="title desc"
+>
+  <title id="title">if. mark</title>
+  <desc id="desc">Stylized “if.” mark with subtle gradient and shadow.</desc>
+
+  <defs>
+    <linearGradient id="ifBlue" x1="70" y1="0" x2="440" y2="0" gradientUnits="userSpaceOnUse">
+      <stop offset="0" stop-color="#0b253b" />
+      <stop offset="0.44" stop-color="#164d7a" />
+      <stop offset="0.56" stop-color="#1b5a8e" />
+      <stop offset="1" stop-color="#0b253b" />
+    </linearGradient>
+
+    <filter id="ifShadow" x="-40%" y="-40%" width="180%" height="180%">
+      <feOffset in="SourceAlpha" dx="0" dy="14" result="off" />
+      <feGaussianBlur in="off" stdDeviation="12" result="blur" />
+      <feColorMatrix
+        in="blur"
+        type="matrix"
+        values="0 0 0 0 0
+                0 0 0 0 0
+                0 0 0 0 0
+                0 0 0 0.28 0"
+        result="shadow"
+      />
+      <feMerge>
+        <feMergeNode in="shadow" />
+        <feMergeNode in="SourceGraphic" />
+      </feMerge>
+    </filter>
+  </defs>
+
+  <!--
+    Mark group:
+    - i (stem + dot)
+    - f (stem + top bar + crossbar)
+    - period dot
+  -->
+  <g filter="url(#ifShadow)" transform="translate(75 15)" fill="url(#ifBlue)">
+    <!-- i -->
+    <circle cx="35" cy="125" r="32" />
+    <rect x="0" y="170" width="70" height="220" rx="8" />
+
+    <!-- f -->
+    <rect x="120" y="140" width="86" height="250" rx="10" />
+    <rect x="120" y="110" width="150" height="90" rx="45" />
+    <rect x="120" y="240" width="140" height="80" rx="28" />
+
+    <!-- . -->
+    <circle cx="330" cy="358" r="32" />
+  </g>
+</svg>
+```
+
+## `assets/ifttt-quotes.json`
+- Source: `ifttt/assets/ifttt-quotes.json`
+
+```json
+[
+  {
+    "text": "Footnotes aren't decorations. They're load-bearing walls.",
+    "source": "IF.TTT paper (v2.3)",
+    "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
+  },
+  {
+    "text": "If there's no IF.TTT trace, it didn't happen—or shouldn't be trusted.",
+    "source": "IF.TTT doctrine",
+    "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
+  },
+  {
+    "text": "No trace, no trust. Simple as that.",
+    "source": "IF.TTT doctrine",
+    "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
+  },
+  {
+    "text": "Trust isn't claimed. It's proven.",
+    "source": "IF.TTT paper (v2.3)",
+    "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
+  },
+  {
+    "text": "We don’t claim trust. We publish receipts.",
+    "source": "IF.TTT stance",
+    "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
+  },
+  {
+    "text": "Your auditor shouldn’t need your credentials.",
+    "source": "IF.TTT public receipts",
+    "href": "https://infrafabric.io/static/hosted/ifttt/"
+  },
+  {
+    "text": "Third parties verify. We just publish the math.",
+    "source": "IF.TTT posture",
+    "href": "https://infrafabric.io/static/hosted/ifttt/"
+  },
+  {
+    "text": "Receipts must be readable and verifiable without credentials.",
+    "source": "IF.TTT public receipt surface",
+    "href": "https://infrafabric.io/static/hosted/ifttt/"
+  },
+  {
+    "text": "Design constraint: black/white clarity. No “maybe”.",
+    "source": "IF.TTT ops (full stack)",
+    "href": "https://infrafabric.io/static/hosted/ifttt/api/"
+  },
+  {
+    "text": "We do not claim “quantum-secure”. We claim “quantum-ready”.",
+    "source": "IF.TTT tech stack",
+    "href": "https://infrafabric.io/static/hosted/ifttt/api/"
+  },
+  {
+    "text": "The stenographer doesn't make the therapy cold. The stenographer makes it accountable.",
+    "source": "IF.emotion on IF.TTT",
+    "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
+  },
+  {
+    "text": "That's the moat.",
+    "source": "IF.TTT paper (v2.3)",
+    "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
+  },
+  {
+    "text": "The moat is not the AI. The moat is the proof.",
+    "source": "IF.TTT paper (v2.3)",
+    "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html"
+  },
+  {
+    "text": "If it’s not verifiable, label it as a gap. Do not endorse it.",
+    "source": "IF.TTT stance",
+    "href": "https://infrafabric.io/static/hosted/ifttt/"
+  }
+]
+```
+
+
+
+ + diff --git a/ifttt/review/index.md b/ifttt/review/index.md new file mode 100644 index 0000000..118581d --- /dev/null +++ b/ifttt/review/index.md @@ -0,0 +1,5275 @@ +# IF.TTT Website — External Review Pack (Single File) + +- Generated: `2025-12-29 09:47 UTC` +- Owner: Danny Stocker (`ds@infrafabric.io`) + +This file contains the full current IF.TTT website content (page tree + full HTML per page + key text assets) so external reviewers can evaluate copy, structure, and claims without needing to crawl. + +## How To Review (Quick) +- Audience split: Home is PM/exec-first; `Developers` lives under `/api/`. +- Goal: black/white clarity — what is verified vs what is not. +- Please flag: confusing terms, overclaims, missing steps, weak “why”, and anything that feels like marketing cosplay. + +## Response Metadata (Required) +- `llm_name`: +- `probable_model`: +- `cutoff_date`: +- `response_date_utc`: +- `web_access_used`: yes/no (list URLs relied on) + +## Live Entry Points +- https://infrafabric.io/ +- https://infrafabric.io/verticals/ +- https://infrafabric.io/governance/ +- https://infrafabric.io/api/ +- https://infrafabric.io/whitepaper/ +- https://infrafabric.io/about/ +- https://infrafabric.io/fr/ + +## Core Demo Links (Used Throughout) +- https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n +- https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n +- https://infrafabric.io/static/pack/6qRgcR01kw_qNo63Dbs_ob9n.md +- https://infrafabric.io/static/hosted/review/trace-bundles/b6547c03/index.html +- https://infrafabric.io/static/hosted/iftrace.html +- https://infrafabric.io/static/hosted/iftrace.py +- https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html + +## Page Tree + +- /about/ (https://infrafabric.io/about/) +- /api/ (https://infrafabric.io/api/) +- /fr/governance/ (https://infrafabric.io/fr/governance/) +- /fr/ (https://infrafabric.io/fr/) +- /governance/ (https://infrafabric.io/governance/) +- / (https://infrafabric.io/) +- /verticals/ai/ (https://infrafabric.io/verticals/ai/) +- /verticals/enterprise/ (https://infrafabric.io/verticals/enterprise/) +- /verticals/finance/ (https://infrafabric.io/verticals/finance/) +- /verticals/government/ (https://infrafabric.io/verticals/government/) +- /verticals/healthcare/ (https://infrafabric.io/verticals/healthcare/) +- /verticals/ (https://infrafabric.io/verticals/) +- /verticals/legal/ (https://infrafabric.io/verticals/legal/) +- /verticals/professional-services/ (https://infrafabric.io/verticals/professional-services/) +- /verticals/public-sector/ (https://infrafabric.io/verticals/public-sector/) +- /verticals/research/ (https://infrafabric.io/verticals/research/) +- /verticals/saas/ (https://infrafabric.io/verticals/saas/) +- /verticals/sciences/ (https://infrafabric.io/verticals/sciences/) +- /verticals/secops/ (https://infrafabric.io/verticals/secops/) +- /verticals/supply-chain/ (https://infrafabric.io/verticals/supply-chain/) +- /whitepaper/ (https://infrafabric.io/whitepaper/) +- /whitepaper/thanks/ (https://infrafabric.io/whitepaper/thanks/) + +## Text Assets + +- `app.js` — https://infrafabric.io/static/hosted/ifttt/app.js +- `style.css` — https://infrafabric.io/static/hosted/ifttt/style.css +- `assets/if-logo-simple.svg` — https://infrafabric.io/static/hosted/ifttt/assets/if-logo-simple.svg +- `assets/ifttt-quotes.json` — https://infrafabric.io/static/hosted/ifttt/assets/ifttt-quotes.json + +## Binary Assets (Referenced by Pages) + +| File | Size | URL | +|---|---:|---| +| `assets/eyes-only-dave.png` | 1,522 KB | https://infrafabric.io/static/hosted/ifttt/assets/eyes-only-dave.png | +| `assets/red-team-doc-1024-559.jpg` | 122 KB | https://infrafabric.io/static/hosted/ifttt/assets/red-team-doc-1024-559.jpg | +| `assets/red-team-stamp-600.png` | 561 KB | https://infrafabric.io/static/hosted/ifttt/assets/red-team-stamp-600.png | + +--- + +# Pages (Full HTML) + +## /about/ +- URL: https://infrafabric.io/about/ +- Static: https://infrafabric.io/static/hosted/ifttt/about/ +- Source: `ifttt/about/index.html` + +
+HTML + +```html + + + + + + IF.TTT — About + + + + + +
+ +
+ +
+
+
+
+

Why this exists

+

We built the skeleton first.

+

+ Most systems produce answers and call that “governance”. IF.TTT starts earlier: it produces receipts that a third party can verify without + joining your internal world. +

+ +
+

Who / Why / What / Where / When / How

+
+
+
Who
+
InfraFabric operators shipping public, no‑login verification artifacts.
+
+
+
Why
+
Because “trust us” fails the moment a reviewer asks for proof.
+
+
+
What
+
A receipt‑first protocol: bind source_sha256output_sha256 under a trace receipt.
+
+
+
Where
+
On a stable public share surface (no login): trace, dossier, packs, and source.
+
+
+
When
+
At publication time: the receipt is generated and can be verified later during disputes.
+
+
+
How
+
Hashes + receipts + optional offline bundles; nothing magical, just opposable proof.
+
+
+
+ + +
+ + +
+
+ +
+
+

What a receipt proves (and what it doesn’t)

+
+
+

Proves

+
    +
  • Integrity binding: the published bytes match the hashes on the receipt.
  • +
  • Traceability: a reviewer can point to a stable, no‑login receipt.
  • +
  • Replay: verification still works during disputes (offline bundles when needed).
  • +
+
+
+

Does not prove

+
    +
  • Intent, interpretation, or “correctness” of a narrative.
  • +
  • That a control is effective—only that the evidence exists and is bound to the record.
  • +
  • Compliance scope (people, policy, contracts); receipts are inputs to governance.
  • +
+
+
+
+
+ +
+ +
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /api/ +- URL: https://infrafabric.io/api/ +- Static: https://infrafabric.io/static/hosted/ifttt/api/ +- Source: `ifttt/api/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Developers / API + + + + + +
+ +
+ +
+
+
+
+

Public receipt surface (no login)

+

Stable URLs, predictable verification.

+

+ IF.TTT is intentionally boring from a developer perspective: compute hashes, publish receipts, and keep the proof surface stable. The + system is designed for third parties who are not inside your network. +

+
+

What “VERIFIED” means (black/white)

+
+
+
Verified
+
The bytes you can download hash to the same values shown on the trace receipt.
+
+
+
Quantum ready
+
A post‑quantum signature receipt exists (additive; integrity hashes still stand).
+
+
+
Not implied
+
Compliance, intent, or correctness of interpretation.
+
+
+
+
+ + +
+
+ +
+
+

HTML fallback (for sandboxed reviewers)

+

+ Some external review environments can load HTML but reject downloadable binaries or raw markdown. For those, we publish HTML views alongside + the raw assets. +

+
+
+

Raw

+
/static/pack/<shareId>.md
+/static/review/<shareId>.md
+/static/marketing/<shareId>.md
+
+
+

HTML view

+
/static/pack/<shareId>
+/static/review/<shareId>
+/static/marketing/<shareId>
+
+
+
+
+ +
+
+

Offline verification (triage bundles)

+

Download a bundle (lightweight/standard/full) and verify without relying on the live site.

+
+
+

Bundle selector (demo)

+ +

+ Note: some “web fetchers” reject .tar.gz with a client-side error even when browsers/curl succeed. Use the HTML views and + download bundles locally. +

+
+
+

Verify (CLI)

+
curl -fsSL -o iftrace.py 'https://infrafabric.io/static/hosted/iftrace.py'
+python3 iftrace.py verify trace_bundle_<id>_standard.tar.gz --expected-sha256 <sha256>
+

If hashes match, the receipt’s integrity claim is satisfied.

+
+
+
+
+ +
+ +
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /fr/governance/ +- URL: https://infrafabric.io/fr/governance/ +- Static: https://infrafabric.io/static/hosted/ifttt/fr/governance/ +- Source: `ifttt/fr/governance/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Gouvernance ouverte + + + + + +
+ +
+ +
+
+
+
+

Gouvernance ouverte

+

Lisible par les gouvernés.

+

+ Une “gouvernance” qui ne se lit qu’en interne n’est pas une preuve. IF.TTT publie des reçus stables, accessibles sans login, pour que des + tiers puissent vérifier l’intégrité sans entrer dans votre réseau. +

+ +
+

Ce que cela prouve (et ce que cela ne prouve pas)

+
+
+
Prouve
+
Liaison d’intégrité (hashes), reçus de publication, bundles hors‑ligne.
+
+
+
Ne prouve pas
+
L’intention, l’interprétation, ou “la conformité atteinte”.
+
+
+
+ +
+

La “stack” de gouvernance

+
    +
  • IF.TTT (reçus) : source_sha256 ↔ output_sha256, trace_id, shareId.
  • +
  • Revue : packs de revue externes, critiques, disputes.
  • +
  • Contrôles : gates/stop‑conditions qui consomment ces reçus.
  • +
+
+ + +
+ + +
+
+ +
+
+

Pour qui (et qui va détester)

+

Lisible pour des tiers : le but n’est pas le confort interne, mais la vérifiabilité externe.

+ +
+
+

Pour

+
    +
  • GRC / audit (SOC 2 / ISO) : preuves exportables.
  • +
  • Architecture sécurité : contrôles mesurables, pas d’attestations.
  • +
  • Juridique / conformité : chaîne de possession en cas de litige.
  • +
  • Produits IA : “pourquoi le modèle a dit ça ?”
  • +
  • Secteur public / défense : vérification hors‑ligne et environnements verrouillés.
  • +
+
+ +
+

Pas pour

+
    +
  • Ceux qui veulent un “badge” sans publier d’artefacts vérifiables.
  • +
  • Les workflows où rien ne peut sortir du réseau (pas de surface publique).
  • +
  • Les organisations qui préfèrent l’ambiguïté : IF.TTT rend les trous visibles.
  • +
+
+
+ + +
+
+
+ +
+ +
+ + +``` + +
+ +## /fr/ +- URL: https://infrafabric.io/fr/ +- Static: https://infrafabric.io/static/hosted/ifttt/fr/ +- Source: `ifttt/fr/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Vérification ouverte pour la gouvernance IA + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+

Gouvernance ouverte, lisible par des tiers

+

Des reçus, pas des opinions.

+
+ if.> +
+
+
+
+
+

+ IF.TTT est une couche de gouvernance “receipt‑first”. Elle relie un artefact source à un output via une + page de trace, des liens publics sans login, et des bundles hors‑ligne vérifiables. +

+ +
+
+ Sans login + Surface publique +
+
+ Hors‑ligne + Bundles de triage +
+
+ Noir/blanc + Vérifié vs non‑vérifié +
+
+ + + +

+ Nous ne “vendons” pas la conformité. Nous aidons les audits en produisant des reçus vérifiables que des tiers peuvent contrôler + sans vos identifiants. +

+
+ + +
+
+
+ +
+ +
+ +
+
+
+ Secteurs + Secteur public + Entreprise + Recherche + Services pro + · + Industries + Santé + Finance + Juridique +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /governance/ +- URL: https://infrafabric.io/governance/ +- Static: https://infrafabric.io/static/hosted/ifttt/governance/ +- Source: `ifttt/governance/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Open Governance + + + + + +
+ +
+ +
+
+
+
+

Open governance

+

Legible to the governed.

+

+ “Governance” fails when it’s only legible inside your network. IF.TTT moves the proof outside: stable, no‑login receipts that third parties + can verify without joining your internal world. +

+ +
+

What this page is (black/white)

+
+
+
Goal
+
Make third‑party verification possible without credentials.
+
+
+
Mechanism
+
Hashes + trace receipts + stable URLs + optional offline bundles.
+
+
+
Not implied
+
“Compliance achieved” or “correctness of interpretation”.
+
+
+
+ +
+

The governance stack (where IF.TTT sits)

+
    +
  • Receipt layer (IF.TTT): integrity binding + chain‑of‑custody IDs + share surface.
  • +
  • Review layer: external review packs, panel critique, dispute workflows.
  • +
  • Enforcement layer: gates/stop‑conditions that consume receipts (CI, access, runtime).
  • +
+

Receipts don’t replace governance. They remove ambiguity from it.

+
+ + +
+ + +
+
+ +
+
+

For whom (and who will hate it)

+

A constitutional framing: the goal is legibility to outsiders, not internal comfort.

+ +
+
+

For

+
    +
  • GRC / Audit leads drowning in evidence requests (SOC 2 / ISO 27001 / vendor due diligence).
  • +
  • Security architects who need “proof of what ran” without adding manual theater.
  • +
  • Legal / compliance teams who need chain‑of‑custody that survives disputes.
  • +
  • AI product teams facing “why did it say that?” questions from customers and regulators.
  • +
  • Gov/defense contractors who must verify artifacts offline or across locked‑down environments.
  • +
+
+ +
+

Not for

+
    +
  • Teams seeking a “compliance badge” without publishing verifiable artifacts.
  • +
  • Workflows where evidence cannot leave the internal network (no share surface, no external verification).
  • +
  • Organizations that want to hide uncertainty: IF.TTT makes gaps visible by design.
  • +
  • Anyone who needs governance to remain ambiguous (receipts reduce wiggle room).
  • +
+
+
+ + +
+
+ +
+ +
+ +
+
+

Live example

+

A real trace receipt you can verify right now.

+ +

+ “VERIFIED” means the published bytes hash to what the receipt says. “QUANTUM READY” means a post‑quantum signature receipt exists (additive; + integrity hashes still stand). +

+
+
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## / +- URL: https://infrafabric.io/ +- Static: https://infrafabric.io/static/hosted/ifttt/ +- Source: `ifttt/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Open Verification for AI Governance + + + + + + + + + + + + + +
+ +
+ +
+
+
+ + +
+ if.> +
+ +
+
+
+
+ +

+ Open verification for governance: third parties can verify receipts without your credentials. + Artifacts > adjectives. +

+ + + +
+ Danny Stocker · ds@infrafabric.io +
+
+
+
+ +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/ai/ +- URL: https://infrafabric.io/verticals/ai/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/ai/ +- Source: `ifttt/verticals/ai/index.html` + +
+HTML + +```html + + + + + + IF.TTT — AI Products + + + + + +
+ +
+ +
+
+
+
+

AI product reality

+

“Why did it say that?” becomes a contract clause.

+

+ Enterprise buyers increasingly require provenance: what source material fed the output, what version produced it, and what can be + verified after the fact. IF.TTT turns that requirement into a repeatable receipt surface. +

+ +
+

Third‑party pressure

+
    +
  • Enterprise buyers demand defensible provenance without joining your internal stack.
  • +
  • Incident responders demand integrity-bound artifacts for “what happened.”
  • +
  • GRC teams demand a black/white boundary between verified evidence and interpretation.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Receipts
+
Trace pages + stable no‑login URLs for outputs and sources.
+
+
+
Disputes
+
Offline bundles for verification after access or context changes.
+
+
+
Clarity
+
Proves integrity and publication; does not claim intent or correctness.
+
+
+
+
+ + +
+
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/enterprise/ +- URL: https://infrafabric.io/verticals/enterprise/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/enterprise/ +- Source: `ifttt/verticals/enterprise/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Enterprise + + + + + +
+ +
+ +
+
+
+
+

Enterprise reality

+

Audits are a throughput problem.

+

+ Enterprise trust breaks when proof requires access: screenshots, ticket exports, and “trust me” Slack threads. IF.TTT replaces access + requirements with receipts—so verification is externalizable. +

+ +
+

Third‑party pressure

+
    +
  • Auditors and customers ask the same question: “prove it was true at the time.”
  • +
  • Procurement needs evidence without granting broad credentials.
  • +
  • Executives need a narrative; security needs reproducible artifacts.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Receipt‑first
+
Integrity binding: source_sha256output_sha256.
+
+
+
No‑login share
+
Public receipt surface for reviewers (with sandbox fallback paths).
+
+
+
Offline option
+
Triage bundles for future disputes and restricted review.
+
+
+
+
+ + +
+
+ +
+
+

One sentence you can forward

+

For stakeholder alignment without overclaiming.

+
+

+ IF.TTT supports audits by producing externally verifiable receipts—so reviewers don’t need your internal credentials to verify integrity. +

+
+
+
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/finance/ +- URL: https://infrafabric.io/verticals/finance/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/finance/ +- Source: `ifttt/verticals/finance/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Finance + + + + + +
+ +
+ +
+
+
+
+

Finance reality

+

Regulators don’t buy narratives. They buy receipts.

+

+ In regulated finance, the first question after an incident is not “what did the model mean?” It’s “show me the evidence chain: inputs, + outputs, timestamps, and who approved what.” +

+ +
+

Third‑party pressure

+
    +
  • Model risk / validation teams need reproducibility.
  • +
  • Internal audit needs non‑repudiation and time‑scoped proof.
  • +
  • Regulators need chain‑of‑custody that survives disputes.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Receipt
+
A public trace page binding source_sha256output_sha256.
+
+
+
Dispute
+
Offline bundles for later verification without relying on internal access.
+
+
+
Clarity
+
Black/white separation of what’s verified vs what is interpretation.
+
+
+
+
+ + +
+
+ +
+
+

Artifacts you can hand to third parties

+

This is the point: reviewers shouldn’t need your VPN.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Output (rendered): https://infrafabric.io/static/dossier/<shareId>
+Output (raw): https://infrafabric.io/static/dossier/<shareId>/download
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html
+
+
+ +
+ +
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/government/ +- URL: https://infrafabric.io/verticals/government/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/government/ +- Source: `ifttt/verticals/government/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Government + + + + + +
+ +
+ +
+
+
+
+

Government reality

+

Assurance is an offline problem.

+

+ In restricted environments, the “can you verify it?” question must be answered without assuming network access, SaaS consoles, or vendor + portals. IF.TTT treats offline verification as a first‑class requirement. +

+ +
+

Third‑party pressure

+
    +
  • Assessors demand chain‑of‑custody and unambiguous provenance.
  • +
  • Procurement wants proof that survives vendor handoffs.
  • +
  • Security teams need evidence that is portable across networks and time.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Offline bundles
+
Triage bundles (lightweight/standard/full) with expected hashes for trustless verification.
+
+
+
Receipt surface
+
Stable no‑login URLs for trace + output + source.
+
+
+
Black/white
+
Clear statement of what integrity receipts prove—and what they don’t.
+
+
+
+
+ + +
+
+ +
+
+

What you can hand to an assessor

+

No accounts required. No internal consoles required.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Bundle selector: https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html
+Verifier: https://infrafabric.io/static/hosted/iftrace.py
+
+
+ +
+ +
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/healthcare/ +- URL: https://infrafabric.io/verticals/healthcare/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/healthcare/ +- Source: `ifttt/verticals/healthcare/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Healthcare + + + + + +
+ +
+ +
+
+
+
+

Healthcare reality

+

Clarity beats confidence.

+

+ Healthcare environments punish ambiguity. IF.TTT makes “what we can prove” explicit, and forces everything else to be labeled as + interpretation or review-required. +

+ +
+

Third‑party pressure

+
    +
  • Compliance wants evidence that is bounded and reviewable.
  • +
  • Incident reviewers want provenance for outputs and decisions.
  • +
  • Vendors and partners want proof without access to your internal tooling.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Verified
+
Integrity binding (hashes), receipts, optional signatures.
+
+
+
Not verified
+
Clinical intent, interpretation, or correctness of conclusions.
+
+
+
Outcome
+
Evidence becomes legible to outsiders without pretending it is “the decision.”
+
+
+
+
+ + +
+
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/ +- URL: https://infrafabric.io/verticals/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/ +- Source: `ifttt/verticals/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Verticals + + + + + +
+ +
+ +
+
+
+
+

Same mechanism, different pressure

+

Two axes: who is buying, what is at stake.

+

+ IF.TTT doesn’t “solve compliance.” It solves the universal problem underneath compliance: third parties demanding proof without joining your + internal world. The receipts stay the same; the incentives and failure modes change. +

+ +
+ + +
+
+ +
+
+

Browse by sector

+

Who the buyer is. The same receipts, different pressure.

+ +
+
+

Public Sector

+

Procurement cycles, oversight, offline verification.

+ Public Sector → +
+
+

Enterprise

+

Audits as throughput; evidence without credential sprawl.

+ Enterprise → +
+
+

Research

+

Provenance, reproducibility, and external reviewers.

+ Research → +
+ +
+ +

Browse by industry

+

What domain the risk lives in: regulation, data, and dispute pressure.

+ +
+
+

Healthcare

+

Audit trails, privacy boundaries, dispute‑ready artifacts.

+ Healthcare → +
+
+

Financial Services

+

Model risk, non‑repudiation, evidence for regulators.

+ Financial → +
+
+

Legal

+

Chain‑of‑custody for drafts, evidence, and decisions.

+ Legal → +
+
+ +

More pressure profiles

+

Common governance failure modes that appear across sectors and industries.

+ +
+
+

B2B SaaS (SOC 2 / ISO)

+

Auditors, procurement, “prove it existed at the time.”

+ B2B SaaS → +
+
+

SecOps / SOC

+

Bind summaries to evidence; keep custody intact.

+ SecOps → +
+
+

AI Product Companies

+

Provable provenance for outputs: “why did it say that?”

+ AI products → +
+
+

Industrial / Supply Chain

+

Traceability that survives vendor and contractor handoffs.

+ Supply chain → +
+
+
+
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/legal/ +- URL: https://infrafabric.io/verticals/legal/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/legal/ +- Source: `ifttt/verticals/legal/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Legal + + + + + +
+ +
+ +
+
+
+
+

Legal reality

+

Courts don’t accept “trust me.” They accept provenance.

+

+ Legal and compliance teams live in the difference between “we believe this happened” and “we can prove this happened.” IF.TTT is built to + make that proof portable. +

+ +
+

Third‑party pressure

+
    +
  • Disputes demand reproducibility: the exact input and the exact output.
  • +
  • Evidence must be time‑scoped: “what did we know, when did we know it?”
  • +
  • Chain‑of‑custody must survive handoffs (vendor → customer → counsel → auditor).
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Integrity
+
Hash receipts bind the published bytes to what was reviewed.
+
+
+
Portability
+
No‑login links and offline bundles for external review.
+
+
+
Clarity
+
Explicit “proves / does not prove” framing reduces ambiguity.
+
+
+
+
+ + +
+
+ +
+
+

Artifacts that make disputes less expensive

+

You can hand these to an external reviewer without shipping your internal systems.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Output (raw): https://infrafabric.io/static/dossier/<shareId>/download
+Review pack: https://infrafabric.io/static/review/<shareId>
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html
+
+
+ +
+ +
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/professional-services/ +- URL: https://infrafabric.io/verticals/professional-services/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/professional-services/ +- Source: `ifttt/verticals/professional-services/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Professional Services + + + + + +
+ +
+ +
+
+
+
+

Services reality

+

The deliverable is the receipt.

+

+ In professional services, the artifact you hand over becomes evidence: audits, disputes, expert reports, procurement packs. IF.TTT makes + the handoff verifiable without making you a credential broker. +

+ +
+

Third‑party pressure

+
    +
  • Clients want proof; opposing counsel wants provenance.
  • +
  • Auditors need artifacts they can verify without your internal access.
  • +
  • Engagements outlive inboxes; the evidence must remain stable.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Chain‑of‑custody
+
Trace receipt binds source ↔ output, plus IDs and timestamps.
+
+
+
Portable proofs
+
Bundles can be archived with the case file and re‑verified later.
+
+
+
Clarity
+
What was verified is shown; interpretation is labeled as interpretation.
+
+
+
+
+ + +
+
+ +
+
+

Operational trap to avoid

+

Don’t turn verification into credential distribution.

+
+
+

Bad

+

“Log in to our system and we’ll show you.”

+
+
+

Good

+

“Here is the artifact, here is the receipt, verify without us.”

+
+
+
+
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/public-sector/ +- URL: https://infrafabric.io/verticals/public-sector/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/public-sector/ +- Source: `ifttt/verticals/public-sector/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Public Sector + + + + + +
+ +
+ +
+
+
+
+

Public sector reality

+

Proof must survive procurement.

+

+ Public accountability is a third‑party problem: reviewers need proof without getting access to your internal systems. IF.TTT turns “trust + us” into receipts that a stranger can verify. +

+ +
+

Third‑party pressure

+
    +
  • Assessors need chain‑of‑custody that survives vendor handoffs.
  • +
  • Procurement and oversight bodies require documentation that outlives staff turnover.
  • +
  • Some environments must support offline verification by design.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Receipt surface
+
Stable, no‑login URLs for trace + output + source.
+
+
+
Offline bundles
+
Triage bundles (lightweight/standard/full) with expected hashes.
+
+
+
Black/white
+
States what is verified (integrity) and what is not (interpretation).
+
+
+
+
+ + +
+
+ +
+
+

What you can hand to a reviewer

+

No accounts required. No internal consoles required.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Pack (HTML): https://infrafabric.io/static/pack/<shareId>
+Bundle selector: https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html
+
+
+ +
+ +
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/research/ +- URL: https://infrafabric.io/verticals/research/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/research/ +- Source: `ifttt/verticals/research/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Research + + + + + +
+ +
+ +
+
+
+
+

Research reality

+

Reproducibility is governance.

+

+ Research already understands receipts: methods, datasets, citations. IF.TTT applies the same discipline to AI outputs and operational + decisions: publish what can be verified, label what can’t, and keep the bytes stable. +

+ +
+

Third‑party pressure

+
    +
  • Peer review demands the ability to reproduce claims.
  • +
  • Funding/compliance bodies demand provenance for decisions and outputs.
  • +
  • Collaborators need proof that the artifact they received is the artifact you published.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Integrity
+
Hash receipts: same bytes, same hash, independent verification.
+
+
+
Clarity
+
Explicitly separates evidence (verified) from interpretation (not verified).
+
+
+
Portability
+
Offline bundles for constrained or future review environments.
+
+
+
+
+ + +
+
+ +
+
+

Portable verification artifacts

+

So reviewers can validate without trusting your infrastructure.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Pack (raw): https://infrafabric.io/static/pack/<shareId>.md
+Pack (HTML): https://infrafabric.io/static/pack/<shareId>
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html
+
+
+ +
+ +
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/saas/ +- URL: https://infrafabric.io/verticals/saas/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/saas/ +- Source: `ifttt/verticals/saas/index.html` + +
+HTML + +```html + + + + + + IF.TTT — B2B SaaS + + + + + +
+ +
+ +
+
+
+
+

SaaS reality

+

Audits are evidence requests with a deadline.

+

+ In B2B SaaS, the friction isn’t the control design. It’s proving the control existed at the right time, in the right scope, without + granting auditors full internal access. +

+ +
+

Third‑party pressure

+
    +
  • Auditors want integrity-bound artifacts (not screenshots in shared drives).
  • +
  • Enterprise procurement wants reproducible proof without bespoke portals.
  • +
  • Post‑incident reviewers want “what did it say?” tied to “what did it see?”
  • +
+
+ +
+

What IF.TTT provides

+
+
+
No‑login
+
Stable URLs for trace + output + source, keyed by shareId.
+
+
+
Dispute‑ready
+
Offline bundles with expected hashes for later verification.
+
+
+
Black/white
+
Explicit “proves / does not prove” framing for auditor conversations.
+
+
+
+
+ + +
+
+ +
+
+

Artifacts for auditors

+

The purpose is to make evidence portable and boring.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Output (raw): https://infrafabric.io/static/dossier/<shareId>/download
+Pack (HTML): https://infrafabric.io/static/pack/<shareId>
+
+
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/sciences/ +- URL: https://infrafabric.io/verticals/sciences/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/sciences/ +- Source: `ifttt/verticals/sciences/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Sciences + + + + + +
+ +
+ +
+
+
+
+

Research reality

+

Reproducibility is governance in a lab coat.

+

+ Scientific workflows already understand receipts: methods, datasets, and citations. IF.TTT is the same idea applied to AI outputs and + operational decisions: publish what can be verified, and mark what can’t. +

+ +
+

Third‑party pressure

+
    +
  • Peer reviewers need the ability to reproduce claims.
  • +
  • Funding/compliance bodies need provenance for decisions and outputs.
  • +
  • Collaborators need proof that the artifact they received is the artifact you published.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Integrity
+
Hash receipts: same bytes, same hash, independent verification.
+
+
+
Clarity
+
Explicitly separates evidence (verified) from interpretation (not verified).
+
+
+
Portability
+
Offline bundles for constrained or future review environments.
+
+
+
+
+ + +
+
+ +
+
+

Portable verification artifacts

+

So reviewers can validate without trusting your infrastructure.

+
Trace receipt: https://infrafabric.io/static/trace/<shareId>
+Pack (raw): https://infrafabric.io/static/pack/<shareId>.md
+Pack (HTML): https://infrafabric.io/static/pack/<shareId>
+Offline bundles: https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html
+
+
+ +
+ +
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/secops/ +- URL: https://infrafabric.io/verticals/secops/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/secops/ +- Source: `ifttt/verticals/secops/index.html` + +
+HTML + +```html + + + + + + IF.TTT — SecOps + + + + + +
+ +
+ +
+
+
+
+

SecOps reality

+

Bind “what the system said” to “what the system saw.”

+

+ AI summaries can help, but only if they remain verifiable against raw telemetry. IF.TTT makes the custody chain explicit: source bytes, + output bytes, and a receipt that can be validated by third parties. +

+ +
+

Third‑party pressure

+
    +
  • Executives demand a narrative; auditors demand evidence.
  • +
  • Incident response needs reproducible artifacts, not recollections.
  • +
  • External assessors need proof without your SIEM credentials.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Trace receipt
+
Integrity binding: source_sha256output_sha256.
+
+
+
Offline proof
+
Bundles that can be verified after the fact, offline.
+
+
+
Clarity
+
What’s verified is stated; what’s interpretation is labeled as such.
+
+
+
+
+ + +
+
+ +
+
+

Operational trap to avoid

+

Do not treat “AI summary” as evidence.

+
+
+

Bad

+

“The AI said this was resolved.”

+
+
+

Good

+

“Here is the output, here is the evidence artifact, here is the receipt binding them.”

+
+
+
+
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /verticals/supply-chain/ +- URL: https://infrafabric.io/verticals/supply-chain/ +- Static: https://infrafabric.io/static/hosted/ifttt/verticals/supply-chain/ +- Source: `ifttt/verticals/supply-chain/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Supply Chain + + + + + +
+ +
+ +
+
+
+
+

Supply chain reality

+

Handoffs are where proof dies.

+

+ Industrial systems accumulate contractors, vendors, and integrators. IF.TTT standardizes a receipt surface so chain‑of‑custody doesn’t + collapse the moment responsibility moves. +

+ +
+

Third‑party pressure

+
    +
  • Customers ask for change control evidence after outages.
  • +
  • Insurers ask what controls existed at the time of the incident.
  • +
  • Auditors ask for traceability across organizational boundaries.
  • +
+
+ +
+

What IF.TTT provides

+
+
+
Receipts
+
Stable no‑login trace + output + source URLs keyed by shareId.
+
+
+
Offline
+
Bundles for verification when networks and portals are unavailable.
+
+
+
Clarity
+
Integrity binding is verifiable; interpretation remains process-owned.
+
+
+
+
+ + +
+
+
+ + + +
+
+
+ Sectors + Public Sector + Enterprise + Research + Professional + · + Industries + Healthcare + Financial + Legal +
+
+ Developers + | + API +
+
+
+ + +``` + +
+ +## /whitepaper/ +- URL: https://infrafabric.io/whitepaper/ +- Static: https://infrafabric.io/static/hosted/ifttt/whitepaper/ +- Source: `ifttt/whitepaper/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Whitepaper + + + + + +
+ +
+ +
+
+
+
+

Long-form spec + receipts

+

The IF.TTT whitepaper.

+

+ “Trustworthy” can’t be a vibe. This paper documents the receipt‑first sequence: hash the sourcehash the output → + publish a traceshare no‑login receiptsoptional offline bundles. +

+ +
+
+ Paper + HTML + Markdown +
+
+ Receipts + Trace + hashes +
+
+ Offline + Proof bundle + verifier +
+
+ + + +

+ If your environment blocks downloads (common for some web fetchers), use the HTML version. The receipts are still verifiable. +

+
+ + +
+
+ +
+ +
+
+ + + + +``` + +
+ +## /whitepaper/thanks/ +- URL: https://infrafabric.io/whitepaper/thanks/ +- Static: https://infrafabric.io/static/hosted/ifttt/whitepaper/thanks/ +- Source: `ifttt/whitepaper/thanks/index.html` + +
+HTML + +```html + + + + + + IF.TTT — Whitepaper request + + + + + +
+ +
+ +
+
+
+

Received.

+

If you submitted the form, we’ll reply with the stable links. No pitch deck required.

+ + + + +
+
+
+ + + + +``` + +
+ +--- + +# Text Assets (Full) + +## `app.js` +- Source: `ifttt/app.js` + +```js +(() => { + const typewordEl = document.getElementById("typeword"); + const stepperEl = document.getElementById("stepper"); + const revealStepper = createStepperRevealer(stepperEl); + if (stepperEl) window.setTimeout(revealStepper, 5200); + + if (typewordEl) startTypewriter(typewordEl, { onFirstCycleDone: revealStepper }); + + const quoteTextEl = document.getElementById("quoteText"); + const quoteMetaEl = document.getElementById("quoteMeta"); + const quoteWrapEl = quoteTextEl?.closest?.(".quote"); + if (quoteTextEl && quoteMetaEl && quoteWrapEl) startQuoteTicker({ quoteWrapEl, quoteTextEl, quoteMetaEl }); +})(); + +function createStepperRevealer(stepperEl) { + let shown = false; + return () => { + if (shown || !stepperEl) return; + shown = true; + stepperEl.hidden = false; + window.requestAnimationFrame(() => stepperEl.classList.add("homeStepper--show")); + }; +} + +function startTypewriter(typewordEl, opts = {}) { + const words = ["Transparent", "Traceable", "Trust", "TTT"]; + const typeMs = 42; + const deleteMs = 26; + const holdMs = 780; + const finalHoldMs = 1100; + const betweenMs = 180; + const onFirstCycleDone = typeof opts.onFirstCycleDone === "function" ? opts.onFirstCycleDone : null; + + let wordIndex = 0; + let charIndex = 0; + let isDeleting = false; + let cycleCount = 0; + + const tick = () => { + const word = words[wordIndex] || ""; + if (!isDeleting) { + charIndex = Math.min(word.length, charIndex + 1); + } else { + charIndex = Math.max(0, charIndex - 1); + } + + typewordEl.textContent = word.slice(0, charIndex); + + const atEnd = !isDeleting && charIndex === word.length; + const atStart = isDeleting && charIndex === 0; + + if (atEnd) { + isDeleting = true; + const wait = wordIndex === words.length - 1 ? finalHoldMs : holdMs; + window.setTimeout(tick, wait); + return; + } + + if (atStart) { + isDeleting = false; + wordIndex = (wordIndex + 1) % words.length; + if (wordIndex === 0) { + cycleCount += 1; + if (cycleCount === 1 && onFirstCycleDone) onFirstCycleDone(); + } + window.setTimeout(tick, betweenMs); + return; + } + + window.setTimeout(tick, isDeleting ? deleteMs : typeMs); + }; + + tick(); +} + +async function startQuoteTicker({ quoteWrapEl, quoteTextEl, quoteMetaEl }) { + const quotes = await loadQuotes(); + if (!Array.isArray(quotes) || quotes.length === 0) return; + + quoteWrapEl.classList.add("quote--show"); + + let idx = Math.floor(Math.random() * quotes.length); + + const show = (q) => { + quoteWrapEl.classList.remove("quote--show"); + quoteWrapEl.classList.add("quote--fade"); + + window.setTimeout(() => { + quoteTextEl.textContent = q.text || ""; + renderQuoteMeta({ quoteMetaEl, q }); + + quoteWrapEl.classList.remove("quote--fade"); + quoteWrapEl.classList.add("quote--show"); + }, 220); + }; + + const loop = () => { + const q = quotes[idx] || {}; + show(q); + idx = (idx + 1) % quotes.length; + + const duration = estimateReadMs(q.text || ""); + window.setTimeout(loop, duration); + }; + + loop(); +} + +async function loadQuotes() { + try { + const resp = await fetch(resolveIfTttUrl("assets/ifttt-quotes.json"), { cache: "no-store" }); + if (resp.ok) { + const data = await resp.json(); + if (Array.isArray(data)) return data; + } + } catch (e) {} + + return [ + { + text: "Footnotes aren't decorations. They're load-bearing walls.", + source: "IF.TTT paper", + href: "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html", + }, + { + text: "If there's no IF.TTT trace, it didn't happen—or shouldn't be trusted.", + source: "IF.TTT doctrine", + href: "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html", + }, + { + text: "Trust isn't claimed. It's proven.", + source: "IF.TTT paper", + href: "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html", + }, + ]; +} + +function resolveIfTttUrl(path) { + try { + const scriptEl = document.querySelector('script[src$="app.js"]'); + const scriptUrl = scriptEl ? new URL(scriptEl.getAttribute("src"), window.location.href) : new URL(window.location.href); + return new URL(path, scriptUrl).toString(); + } catch (e) { + return path; + } +} + +function renderQuoteMeta({ quoteMetaEl, q }) { + while (quoteMetaEl.firstChild) quoteMetaEl.removeChild(quoteMetaEl.firstChild); + + const source = String(q.source || "").trim(); + const href = String(q.href || "").trim(); + if (!source) return; + + if (href) { + const a = document.createElement("a"); + a.href = href; + a.target = "_blank"; + a.rel = "noreferrer"; + a.textContent = source; + quoteMetaEl.appendChild(a); + return; + } + + quoteMetaEl.textContent = source; +} + +function estimateReadMs(text) { + const cleaned = String(text || "").trim(); + if (!cleaned) return 4000; + + const words = cleaned.split(/\s+/).filter(Boolean).length; + const wpm = 220; + const ms = (words / wpm) * 60000 + 1200; + return clamp(ms, 3200, 11000); +} + +function clamp(v, min, max) { + return Math.max(min, Math.min(max, v)); +} +``` + +## `style.css` +- Source: `ifttt/style.css` + +```css +:root { + --bg: #fffdf7; + --bg-alt: #fff9e6; + --panel: #ffffff; + --text: #111827; + --muted: #6b7280; + --border: #e5e7eb; + --link: #1d4ed8; + --accent: #8b0000; + --ok: #0f5132; + --ok-bg: #e7f6ee; + --shadow: 0 1px 0 rgba(0, 0, 0, 0.03); + --radius: 14px; +} + +* { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + margin: 0; + font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji", "Segoe UI Emoji"; + background: var(--bg); + color: var(--text); + line-height: 1.5; + padding-bottom: 62px; +} + +a { + color: var(--link); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +code { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 0.92em; + background: #f3f4f6; + padding: 2px 6px; + border-radius: 8px; +} + +pre.code { + background: #0b1020; + color: #e5e7eb; + border-radius: 12px; + padding: 12px; + overflow: auto; + box-shadow: var(--shadow); + border: 1px solid rgba(255, 255, 255, 0.06); +} + +pre.code code { + background: transparent; + padding: 0; + border-radius: 0; + font-size: 12px; + line-height: 1.45; +} + +.form { + display: grid; + gap: 12px; + margin-top: 12px; +} + +.field label { + display: block; + font-size: 12px; + font-weight: 700; + color: var(--muted); + margin: 0 0 6px; +} + +.field input, +.field select, +.field textarea { + width: 100%; + padding: 10px 12px; + border-radius: 12px; + border: 1px solid var(--border); + background: #ffffff; + font-size: 14px; + line-height: 1.2; +} + +.field textarea { + resize: vertical; +} + +.field input:focus, +.field select:focus, +.field textarea:focus { + outline: none; + border-color: rgba(29, 78, 216, 0.45); + box-shadow: 0 0 0 4px rgba(29, 78, 216, 0.12); +} + +.field-row { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 12px; +} + +.honeypot { + display: none !important; +} + +@media (max-width: 860px) { + .field-row { + grid-template-columns: 1fr; + } +} + + +.wrap { + max-width: 1120px; + margin: 0 auto; + padding: 0 18px; +} + +.top { + position: sticky; + top: 0; + z-index: 20; + background: rgba(255, 253, 247, 0.92); + backdrop-filter: blur(10px); + border-bottom: 1px solid var(--border); +} + +.top__inner { + display: flex; + align-items: center; + justify-content: space-between; + padding: 14px 0; + gap: 14px; +} + +.brand { + display: inline-flex; + align-items: center; + gap: 12px; + min-width: 220px; +} + +.brand__mark { + width: 38px; + height: 38px; + border-radius: 12px; + border: 1px solid rgba(139, 0, 0, 0.25); + background: + radial-gradient(18px 18px at 30% 30%, rgba(139, 0, 0, 0.18), transparent 60%), + radial-gradient(18px 18px at 70% 70%, rgba(29, 78, 216, 0.10), transparent 60%), + #fff; + box-shadow: var(--shadow); +} + +.brand__logo { + width: 38px; + height: 38px; + display: block; + border-radius: 12px; + box-shadow: var(--shadow); +} + +.brand__text { + display: flex; + flex-direction: column; + gap: 2px; +} + +.brand__title { + font-weight: 800; + letter-spacing: 0.2px; +} + +.brand__sub { + font-size: 12px; + color: var(--muted); +} + +.nav { + display: flex; + gap: 14px; + flex-wrap: wrap; + justify-content: flex-end; + font-size: 13px; +} + +.nav a { + color: var(--muted); + padding: 6px 8px; + border-radius: 10px; +} + +.nav a:hover { + color: var(--text); + background: #ffffff; + border: 1px solid var(--border); + text-decoration: none; +} + +.hero { + padding: 34px 0 22px; + background: + radial-gradient(650px 260px at 20% 0%, rgba(139, 0, 0, 0.08), transparent 60%), + radial-gradient(700px 300px at 100% 40%, rgba(29, 78, 216, 0.06), transparent 60%), + linear-gradient(#fffdf7, #fff); +} + +.hero__grid { + display: grid; + grid-template-columns: 1.2fr 0.8fr; + gap: 22px; + align-items: start; +} + +.kicker { + font-size: 13px; + color: var(--muted); + margin: 0 0 10px; +} + +h1 { + font-size: 40px; + line-height: 1.1; + margin: 0 0 10px; + letter-spacing: -0.4px; +} + +.type { + display: inline-flex; + align-items: center; + gap: 0; + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 14px; + color: #374151; + margin: 0 0 10px; + user-select: none; +} + +.type__prefix, +.type__suffix { + color: #111827; + font-weight: 700; +} + +.type__caret { + width: 8px; + height: 16px; + margin-left: 6px; + border-radius: 2px; + background: rgba(17, 24, 39, 0.65); + animation: caretblink 1s steps(1, end) infinite; +} + +@keyframes caretblink { + 50% { + opacity: 0; + } +} + +.quote { + margin: 0 0 12px; + padding: 10px 12px; + border: 1px solid var(--border); + border-radius: var(--radius); + background: #ffffff; + box-shadow: var(--shadow); + max-width: 72ch; +} + +.quote__text { + font-size: 13px; + color: #111827; + font-weight: 650; +} + +.quote__meta { + margin-top: 6px; + font-size: 12px; + color: var(--muted); +} + +.quote__meta a { + color: var(--muted); + text-decoration: underline; + text-underline-offset: 2px; +} + +.quote--fade { + opacity: 0; + transition: opacity 250ms ease; +} + +.quote--show { + opacity: 1; +} + +.lede { + margin: 0 0 14px; + color: #374151; + max-width: 62ch; +} + +.pillrow { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 10px; + margin: 18px 0 16px; +} + +.pill { + border: 1px solid var(--border); + background: #ffffff; + border-radius: var(--radius); + padding: 10px 10px; + box-shadow: var(--shadow); +} + +.pill__k { + font-size: 12px; + color: var(--muted); + display: block; +} + +.pill__v { + font-size: 13px; + font-weight: 600; + margin-top: 2px; + display: block; +} + +.cta { + display: flex; + gap: 10px; + flex-wrap: wrap; + margin: 14px 0 10px; +} + +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 10px 12px; + border-radius: 12px; + border: 1px solid var(--border); + background: #ffffff; + color: var(--text); + font-weight: 650; + font-size: 13px; + box-shadow: var(--shadow); + text-decoration: none; +} + +.btn:hover { + text-decoration: none; + border-color: rgba(17, 24, 39, 0.22); +} + +.btn--primary { + background: #111827; + color: #ffffff; + border-color: rgba(0, 0, 0, 0.25); +} + +.btn--primary:hover { + border-color: rgba(0, 0, 0, 0.45); +} + +.note { + font-size: 12px; + color: var(--muted); + margin: 10px 0 0; +} + +.card { + border: 1px solid var(--border); + background: #ffffff; + border-radius: 18px; + box-shadow: var(--shadow); + overflow: hidden; +} + +.card__media { + border-bottom: 1px solid var(--border); + background: #111827; +} + +.card__media img { + display: block; + width: 100%; + height: 162px; + object-fit: cover; + opacity: 0.95; +} + +.card__hdr { + padding: 12px 12px; + border-bottom: 1px solid var(--border); + display: flex; + gap: 8px; + flex-wrap: wrap; + background: #f8fafc; +} + +.badge { + display: inline-flex; + align-items: center; + padding: 4px 10px; + border-radius: 999px; + border: 1px solid var(--border); + font-size: 12px; + color: var(--muted); + background: #ffffff; + white-space: nowrap; +} + +.badge--ok { + border-color: rgba(15, 81, 50, 0.25); + background: var(--ok-bg); + color: var(--ok); + font-weight: 700; +} + +.card__body { + padding: 14px 12px 12px; +} + +.kv { + display: grid; + grid-template-columns: 90px 1fr; + gap: 6px 10px; + font-size: 13px; +} + +.kv__k { + color: var(--muted); +} + +.kv__v code { + background: #f3f4f6; +} + +.mini { + margin-top: 12px; + border-top: 1px dashed var(--border); + padding-top: 10px; + font-size: 13px; +} + +.mini__k { + color: var(--muted); + font-weight: 600; + font-size: 12px; +} + +.mini__v { + margin-top: 4px; + color: #374151; +} + +.section { + padding: 34px 0; +} + +.section--alt { + background: var(--bg-alt); + border-top: 1px solid rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.03); +} + +h2 { + margin: 0 0 8px; + font-size: 22px; + letter-spacing: -0.2px; +} + +.sub { + margin: 0 0 18px; + color: var(--muted); + font-size: 14px; + max-width: 80ch; +} + +.sub2 { + margin: 0 0 10px; + color: var(--muted); + font-size: 13px; +} + +.steps { + display: grid; + gap: 10px; + padding: 0; + margin: 0; + list-style: none; +} + +.step { + position: relative; + display: grid; + grid-template-columns: 44px 1fr; + gap: 12px; + padding: 14px 12px; + border: 1px solid var(--border); + border-radius: var(--radius); + background: #ffffff; + box-shadow: var(--shadow); +} + +.step::after { + content: ""; + position: absolute; + left: 30px; + top: 54px; + bottom: -10px; + width: 2px; + background: linear-gradient(to bottom, rgba(229, 231, 235, 0.95), rgba(229, 231, 235, 0)); +} + +.step:last-child::after { + display: none; +} + +.step__n { + width: 36px; + height: 36px; + border-radius: 12px; + background: rgba(139, 0, 0, 0.06); + border: 1px solid rgba(139, 0, 0, 0.18); + display: grid; + place-items: center; + font-weight: 800; + color: var(--accent); +} + +.step__t { + font-weight: 750; +} + +.step__d { + color: #374151; + margin-top: 3px; + font-size: 13px; +} + +.grid2 { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 14px; +} + +.panel { + background: #ffffff; + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 14px 14px; + box-shadow: var(--shadow); +} + +.panel h3 { + margin: 0 0 8px; + font-size: 15px; +} + +.list { + margin: 10px 0 0; + padding-left: 18px; + color: #374151; + font-size: 13px; +} + +.bw { + display: grid; + gap: 8px; + font-size: 13px; +} + +.bw__row { + display: grid; + grid-template-columns: 130px 1fr; + gap: 10px; + padding: 10px 10px; + border: 1px solid var(--border); + border-radius: 12px; + background: #ffffff; +} + +.bw__k { + color: var(--muted); + font-weight: 700; +} + +.bw__v { + color: #374151; +} + +.verify { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 14px; + align-items: start; +} + +.links { + display: grid; + gap: 8px; + margin-top: 10px; +} + +.linkrow { + display: grid; + gap: 4px; + border: 1px solid var(--border); + border-radius: 12px; + padding: 10px 10px; + background: #ffffff; + box-shadow: var(--shadow); +} + +.linkrow:hover { + border-color: rgba(29, 78, 216, 0.35); + text-decoration: none; +} + +.linkrow__t { + font-weight: 700; + font-size: 13px; + color: var(--text); +} + +.linkrow__u { + font-size: 12px; + color: var(--muted); + overflow-wrap: anywhere; +} + +.fine { + margin: 12px 0 0; + color: var(--muted); + font-size: 12px; +} + +.cards { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 12px; +} + +.vcard { + background: #ffffff; + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 14px 14px; + box-shadow: var(--shadow); +} + +.vcard__icon { + width: 44px; + height: 44px; + border: 1px solid var(--border); + border-radius: 14px; + background: #f8fafc; + display: grid; + place-items: center; + margin-bottom: 10px; + color: var(--accent); +} + +.vcard__icon svg { + width: 22px; + height: 22px; +} + +.vcard h3 { + margin: 0 0 10px; + font-size: 15px; +} + +.vcard__k { + margin: 0; + font-size: 12px; + color: var(--muted); + font-weight: 700; +} + +.vcard__v { + margin: 4px 0 10px; + font-size: 13px; + color: #374151; +} + +.vcard__more { + display: inline-flex; + align-items: center; + gap: 6px; + font-size: 12px; + color: var(--muted); + padding: 6px 10px; + border: 1px solid var(--border); + border-radius: 999px; + background: #ffffff; +} + +.vcard__more:hover { + color: var(--text); + border-color: rgba(17, 24, 39, 0.22); + text-decoration: none; +} + +.faq { + display: grid; + gap: 10px; +} + +details { + background: #ffffff; + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 12px 12px; + box-shadow: var(--shadow); +} + +summary { + cursor: pointer; + font-weight: 750; + list-style: none; +} + +summary::-webkit-details-marker { + display: none; +} + +details p { + margin: 10px 0 0; + color: #374151; + font-size: 13px; +} + +.foot { + margin-top: 18px; + border-top: 1px solid var(--border); + padding-top: 14px; + display: grid; + gap: 8px; +} + +.foot__row { + display: grid; + grid-template-columns: 90px 1fr; + gap: 12px; + font-size: 13px; +} + +.foot__k { + color: var(--muted); + font-weight: 700; +} + +.footer { + border-top: 1px solid var(--border); + padding: 18px 0; + background: #ffffff; +} + +.footer__inner { + display: flex; + justify-content: space-between; + gap: 12px; + flex-wrap: wrap; +} + +.muted { + color: var(--muted); + font-size: 12px; +} + +.bottombar { + position: fixed; + left: 0; + right: 0; + bottom: 0; + z-index: 25; + background: rgba(255, 253, 247, 0.92); + backdrop-filter: blur(10px); + border-top: 1px solid var(--border); +} + +.bottombar__inner { + display: flex; + justify-content: space-between; + gap: 12px; + align-items: center; + padding: 10px 0; + font-size: 12px; +} + +.bottombar__left, +.bottombar__right { + display: flex; + gap: 6px; + align-items: center; + flex-wrap: wrap; +} + +.bottombar__label { + font-size: 11px; + font-weight: 750; + letter-spacing: 0.08em; + text-transform: uppercase; + color: rgba(107, 114, 128, 0.85); + padding: 6px 6px; +} + +.bottombar a { + color: var(--muted); + padding: 6px 8px; + border-radius: 10px; +} + +.bottombar a:hover { + color: var(--text); + background: #ffffff; + border: 1px solid var(--border); + text-decoration: none; +} + +.bottombar__sep { + color: rgba(107, 114, 128, 0.7); + margin: 0 2px; +} + +@media (max-width: 980px) { + .hero__grid { + grid-template-columns: 1fr; + } + .pillrow { + grid-template-columns: 1fr; + } + .grid2 { + grid-template-columns: 1fr; + } + .verify { + grid-template-columns: 1fr; + } + .cards { + grid-template-columns: 1fr; + } + h1 { + font-size: 34px; + } + + body { + padding-bottom: 74px; + } +} + +/* Home (minimal landing; “OK Computer” empty-space bias) */ +body.home { + background: + radial-gradient(900px 420px at 15% 0%, rgba(29, 78, 216, 0.06), transparent 60%), + radial-gradient(900px 420px at 85% 15%, rgba(139, 0, 0, 0.06), transparent 60%), + linear-gradient(#fffdf7, #ffffff); +} + +body.home .top { + position: fixed; + left: 0; + right: 0; + background: transparent; + border-bottom: none; + backdrop-filter: none; +} + +body.home .top__inner { + padding: 18px 0; +} + +.homeNav { + display: flex; + align-items: center; + gap: 12px; + flex-wrap: wrap; + justify-content: flex-end; + font-size: 12px; +} + +.homeNav a { + color: var(--muted); + padding: 6px 8px; + border-radius: 10px; +} + +.homeNav a:hover { + color: var(--text); + background: #ffffff; + border: 1px solid var(--border); + text-decoration: none; +} + +.homeNav__sep { + color: rgba(107, 114, 128, 0.7); +} + +.homeMain { + min-height: 100vh; + display: flex; + align-items: center; + padding: 120px 0 90px; +} + +.homeMain__inner { + width: 100%; +} + +.homeCenter { + text-align: center; + max-width: 920px; + margin: 0 auto; +} + +.homeBadges { + display: flex; + justify-content: center; + align-items: center; + gap: 10px; + flex-wrap: wrap; + margin: 0 0 14px; +} + +.badge--big { + font-size: 12px; + padding: 7px 12px; + border-radius: 999px; + letter-spacing: 0.08em; +} + +.type--home { + font-size: clamp(44px, 7vw, 74px); + line-height: 1.05; + margin: 0 0 14px; + color: #111827; +} + +.type--home .type__prefix, +.type--home .type__suffix { + font-weight: 800; +} + +.type--home .type__caret { + width: 0.18em; + height: 1.05em; + margin-left: 0.12em; + border-radius: 0.14em; + background: rgba(17, 24, 39, 0.65); +} + +.quote--home { + margin: 0 auto 14px; +} + +.quote--home .quote__text { + font-size: 14px; +} + +.homeLede { + margin: 0 auto 0; + max-width: 78ch; + color: #374151; + font-size: 13px; +} + +.homeStepper { + margin: 18px auto 0; + max-width: 920px; + text-align: left; + opacity: 0; + transform: translateY(6px); + transition: + opacity 420ms ease, + transform 420ms ease; +} + +.homeStepper.homeStepper--show { + opacity: 1; + transform: translateY(0); +} + +.homeLinks { + display: flex; + flex-wrap: wrap; + gap: 10px; + margin: 14px 0 0; +} + +.homeLink { + display: inline-flex; + align-items: center; + justify-content: center; + padding: 9px 10px; + border-radius: 12px; + border: 1px solid var(--border); + background: #ffffff; + color: var(--text); + font-weight: 650; + font-size: 12px; + box-shadow: var(--shadow); + text-decoration: none; +} + +.homeLink:hover { + text-decoration: none; + border-color: rgba(29, 78, 216, 0.35); + box-shadow: + var(--shadow), + 0 0 0 4px rgba(29, 78, 216, 0.10); +} + +.homeMeta { + margin-top: 14px; + font-size: 12px; + color: var(--muted); +} + +@media (max-width: 980px) { + body.home .top { + position: sticky; + background: rgba(255, 253, 247, 0.92); + border-bottom: 1px solid var(--border); + backdrop-filter: blur(10px); + } + + .homeMain { + padding-top: 86px; + } + + .type--home { + font-size: clamp(38px, 10vw, 54px); + } +} +``` + +## `assets/if-logo-simple.svg` +- Source: `ifttt/assets/if-logo-simple.svg` + +```svg + + + if. mark + Stylized “if.” mark with subtle gradient and shadow. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +## `assets/ifttt-quotes.json` +- Source: `ifttt/assets/ifttt-quotes.json` + +```json +[ + { + "text": "Footnotes aren't decorations. They're load-bearing walls.", + "source": "IF.TTT paper (v2.3)", + "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" + }, + { + "text": "If there's no IF.TTT trace, it didn't happen—or shouldn't be trusted.", + "source": "IF.TTT doctrine", + "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" + }, + { + "text": "No trace, no trust. Simple as that.", + "source": "IF.TTT doctrine", + "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" + }, + { + "text": "Trust isn't claimed. It's proven.", + "source": "IF.TTT paper (v2.3)", + "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" + }, + { + "text": "We don’t claim trust. We publish receipts.", + "source": "IF.TTT stance", + "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" + }, + { + "text": "Your auditor shouldn’t need your credentials.", + "source": "IF.TTT public receipts", + "href": "https://infrafabric.io/static/hosted/ifttt/" + }, + { + "text": "Third parties verify. We just publish the math.", + "source": "IF.TTT posture", + "href": "https://infrafabric.io/static/hosted/ifttt/" + }, + { + "text": "Receipts must be readable and verifiable without credentials.", + "source": "IF.TTT public receipt surface", + "href": "https://infrafabric.io/static/hosted/ifttt/" + }, + { + "text": "Design constraint: black/white clarity. No “maybe”.", + "source": "IF.TTT ops (full stack)", + "href": "https://infrafabric.io/static/hosted/ifttt/api/" + }, + { + "text": "We do not claim “quantum-secure”. We claim “quantum-ready”.", + "source": "IF.TTT tech stack", + "href": "https://infrafabric.io/static/hosted/ifttt/api/" + }, + { + "text": "The stenographer doesn't make the therapy cold. The stenographer makes it accountable.", + "source": "IF.emotion on IF.TTT", + "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" + }, + { + "text": "That's the moat.", + "source": "IF.TTT paper (v2.3)", + "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" + }, + { + "text": "The moat is not the AI. The moat is the proof.", + "source": "IF.TTT paper (v2.3)", + "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" + }, + { + "text": "If it’s not verifiable, label it as a gap. Do not endorse it.", + "source": "IF.TTT stance", + "href": "https://infrafabric.io/static/hosted/ifttt/" + } +] +```