From 9700e0d23a738af184e720383415909818f80268 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 31 Dec 2025 22:39:28 +0000 Subject: [PATCH] Tighten IF.Trace layout (receipt-first hero) --- ifttt/404.html | 2 +- ifttt/api/index.html | 10 +++++++++- ifttt/assets/_astro/index.Dr9NnB1c.css | 1 + ifttt/assets/_astro/index.niIggI7A.css | 1 - ifttt/index.html | 4 +++- ifttt/pricing/index.html | 4 +++- ifttt/privacy/index.html | 2 +- ifttt/terms/index.html | 2 +- ifttt/verticals/ai/index.html | 2 +- ifttt/verticals/enterprise/index.html | 2 +- ifttt/verticals/finance/index.html | 2 +- ifttt/verticals/government/index.html | 2 +- ifttt/verticals/healthcare/index.html | 2 +- ifttt/verticals/index.html | 2 +- ifttt/verticals/legal/index.html | 2 +- ifttt/verticals/professional-services/index.html | 2 +- ifttt/verticals/public-sector/index.html | 2 +- ifttt/verticals/research/index.html | 2 +- ifttt/verticals/saas/index.html | 2 +- ifttt/verticals/sciences/index.html | 2 +- ifttt/verticals/secops/index.html | 2 +- ifttt/verticals/supply-chain/index.html | 2 +- ifttt/whitepaper/index.html | 2 +- 23 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 ifttt/assets/_astro/index.Dr9NnB1c.css delete mode 100644 ifttt/assets/_astro/index.niIggI7A.css diff --git a/ifttt/404.html b/ifttt/404.html index 7ddb8b3..4b1f935 100644 --- a/ifttt/404.html +++ b/ifttt/404.html @@ -1 +1 @@ - IF.Trace — Not found

404

Page not found

If you expected a receipt link, make sure you have the exact URL.

contact \ No newline at end of file + IF.Trace — Not found

404

Page not found

If you expected a receipt link, make sure you have the exact URL.

contact \ No newline at end of file diff --git a/ifttt/api/index.html b/ifttt/api/index.html index cc52be8..e3b16c7 100644 --- a/ifttt/api/index.html +++ b/ifttt/api/index.html @@ -1,4 +1,12 @@ - IF.Trace — API

API

API

Implementation ABC. Copy/paste examples. A real endpoint once the service is live.

Base URL

https://api.infrafabric.io

Endpoints

Minimal surface area. Predictable responses.

POST /v1/trace
Create a receipt
Field Type Required Example
source_sha256 hex yes 84730eea481d385d77ec2ee6fc3416c7156c4ff6e2cccaae6fbed649511138ed
output_sha256 hex yes c306c5964c2945727d9b6840678db6013c49275acb89d2dfc09b9ce1b4808cc3
metadata object no {"kind":"report-summary","public_title":"Q4 review pack"}
Response example
+ IF.Trace — API   

API

API

Implementation ABC. Copy/paste examples. A real endpoint once the service is live.

Hello world

Create one receipt (source hash + output hash). Copy/paste.

curl
            curl -sS -X POST https://api.infrafabric.io/v1/trace \
+  -H 'Authorization: Bearer $IFTRACE_API_KEY' \
+  -H 'Content-Type: application/json' \
+  -d '{"source_sha256":"...","output_sha256":"..."}'
+          

Use non-confidential test hashes. This endpoint is wired once the service is live.

Response (example)
            {
+  "shareId": "6qRgcR01kw_qNo63Dbs_ob9n",
+  "receipt_url": "https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n"
+}
+          

Base URL

https://api.infrafabric.io

Endpoints

Minimal surface area. Predictable responses.

POST /v1/trace
Create a receipt
Field Type Required Example
source_sha256 hex yes 84730eea481d385d77ec2ee6fc3416c7156c4ff6e2cccaae6fbed649511138ed
output_sha256 hex yes c306c5964c2945727d9b6840678db6013c49275acb89d2dfc09b9ce1b4808cc3
metadata object no {"kind":"report-summary","public_title":"Q4 review pack"}
Response example
 
                   {
   "shareId": "6qRgcR01kw_qNo63Dbs_ob9n",
diff --git a/ifttt/assets/_astro/index.Dr9NnB1c.css b/ifttt/assets/_astro/index.Dr9NnB1c.css
new file mode 100644
index 0000000..d55cc4c
--- /dev/null
+++ b/ifttt/assets/_astro/index.Dr9NnB1c.css
@@ -0,0 +1 @@
+/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-slate-950:oklch(12.9% .042 264.695);--color-white:#fff;--spacing:.25rem;--breakpoint-2xl:96rem;--container-xl:36rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-2xl:1rem;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}html{scroll-behavior:smooth;background-color:var(--background);font-family:var(--font-base)}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.right-6{right:calc(var(--spacing)*6)}.bottom-6{bottom:calc(var(--spacing)*6)}.left-0{left:calc(var(--spacing)*0)}.-z-10{z-index:-10}.z-50{z-index:50}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing)*.5)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-7{margin-top:calc(var(--spacing)*7)}.mt-8{margin-top:calc(var(--spacing)*8)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing)*4)}.h-8{height:calc(var(--spacing)*8)}.h-10{height:calc(var(--spacing)*10)}.h-full{height:100%}.h-px{height:1px}.min-h-screen{min-height:100vh}.w-8{width:calc(var(--spacing)*8)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.min-w-\[190px\]{min-width:190px}.min-w-\[720px\]{min-width:720px}.flex-1{flex:1}.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px*var(--tw-divide-y-reverse));border-bottom-width:calc(1px*calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-white\/10>:not(:last-child)){border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){:where(.divide-white\/10>:not(:last-child)){border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.overflow-x-auto{overflow-x:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/12{border-color:#ffffff1f}@supports (color:color-mix(in lab,red,red)){.border-white\/12{border-color:color-mix(in oklab,var(--color-white)12%,transparent)}}.border-white\/25{border-color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.border-white\/25{border-color:color-mix(in oklab,var(--color-white)25%,transparent)}}.bg-background{background-color:var(--background)}.bg-primary{background-color:var(--primary)}.bg-slate-950\/30{background-color:#0206184d}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/30{background-color:color-mix(in oklab,var(--color-slate-950)30%,transparent)}}.bg-slate-950\/35{background-color:#02061859}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/35{background-color:color-mix(in oklab,var(--color-slate-950)35%,transparent)}}.bg-slate-950\/40{background-color:#02061866}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/40{background-color:color-mix(in oklab,var(--color-slate-950)40%,transparent)}}.bg-slate-950\/50{background-color:#02061880}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/50{background-color:color-mix(in oklab,var(--color-slate-950)50%,transparent)}}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.\[background-image\:url\(\'data\:image\/svg\+xml\,\%3Csvg\%20xmlns\=\%22http\:\/\/www\.w3\.org\/2000\/svg\%22\%20width\=\%22300\%22\%20height\=\%22300\%22\%3E\%3Cfilter\%20id\=\%22n\%22\%3E\%3CfeTurbulence\%20type\=\%22fractalNoise\%22\%20baseFrequency\=\%220\.8\%22\%20numOctaves\=\%224\%22\%20stitchTiles\=\%22stitch\%22\/\%3E\%3C\/filter\%3E\%3Crect\%20width\=\%22300\%22\%20height\=\%22300\%22\%20filter\=\%22url\(\%23n\)\%22\%20opacity\=\%220\.5\%22\/\%3E\%3C\/svg\%3E\'\)\]{background-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22300%22%20height=%22300%22%3E%3Cfilter%20id=%22n%22%3E%3CfeTurbulence%20type=%22fractalNoise%22%20baseFrequency=%220.8%22%20numOctaves=%224%22%20stitchTiles=%22stitch%22/%3E%3C/filter%3E%3Crect%20width=%22300%22%20height=%22300%22%20filter=%22url(%23n)%22%20opacity=%220.5%22/%3E%3C/svg%3E")}.bg-\[linear-gradient\(to_bottom\,rgba\(2\,6\,23\,0\.86\)\,rgba\(2\,6\,23\,0\.96\)\)\]{background-image:linear-gradient(#020617db,#020617f5)}.bg-\[radial-gradient\(900px_circle_at_20\%_0\%\,rgba\(59\,130\,246\,0\.10\)\,transparent_60\%\)\,radial-gradient\(900px_circle_at_100\%_0\%\,rgba\(16\,185\,129\,0\.08\)\,transparent_55\%\)\]{background-image:radial-gradient(900px at 20% 0,#3b82f61a,#0000 60%),radial-gradient(900px at 100% 0,#10b98114,#0000 55%)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-5{padding-block:calc(var(--spacing)*5)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.py-12{padding-block:calc(var(--spacing)*12)}.py-14{padding-block:calc(var(--spacing)*14)}.py-24{padding-block:calc(var(--spacing)*24)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-28{padding-top:calc(var(--spacing)*28)}.pr-4{padding-right:calc(var(--spacing)*4)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pb-16{padding-bottom:calc(var(--spacing)*16)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.text-foreground{color:var(--foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-white{color:var(--color-white)}.text-white\/20{color:#fff3}@supports (color:color-mix(in lab,red,red)){.text-white\/20{color:color-mix(in oklab,var(--color-white)20%,transparent)}}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.text-white\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\/55{color:#ffffff8c}@supports (color:color-mix(in lab,red,red)){.text-white\/55{color:color-mix(in oklab,var(--color-white)55%,transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\/65{color:#ffffffa6}@supports (color:color-mix(in lab,red,red)){.text-white\/65{color:color-mix(in oklab,var(--color-white)65%,transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\/75{color:#ffffffbf}@supports (color:color-mix(in lab,red,red)){.text-white\/75{color:color-mix(in oklab,var(--color-white)75%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.text-white\/85{color:color-mix(in oklab,var(--color-white)85%,transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-white\/95{color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.text-white\/95{color:color-mix(in oklab,var(--color-white)95%,transparent)}}.uppercase{text-transform:uppercase}.accent-\[oklch\(var\(--primary\)\)\]{accent-color:oklch(var(--primary))}.opacity-\[0\.035\]{opacity:.035}.mix-blend-overlay{mix-blend-mode:overlay}.shadow-\[0_10px_30px_rgba\(0\,0\,0\,0\.25\)\]{--tw-shadow:0 10px 30px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_16px_60px_rgba\(0\,0\,0\,0\.35\)\]{--tw-shadow:0 16px 60px var(--tw-shadow-color,#00000059);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.running{animation-play-state:running}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}@media(hover:hover){.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}}.placeholder\:text-white\/35::placeholder{color:#ffffff59}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-white\/35::placeholder{color:color-mix(in oklab,var(--color-white)35%,transparent)}}@media(hover:hover){.hover\:border-white\/20:hover{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:border-white\/20:hover{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-slate-950\/70:hover{background-color:#020618b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-950\/70:hover{background-color:color-mix(in oklab,var(--color-slate-950)70%,transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:bg-white\/\[0\.07\]:hover{background-color:#ffffff12}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.07\]:hover{background-color:color-mix(in oklab,var(--color-white)7%,transparent)}}.hover\:text-white:hover{color:var(--color-white)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-white\/60:focus-visible{--tw-ring-color:#fff9}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-white\/60:focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:block{display:block}.sm\:inline-flex{display:inline-flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:py-14{padding-block:calc(var(--spacing)*14)}.sm\:py-16{padding-block:calc(var(--spacing)*16)}.sm\:pt-32{padding-top:calc(var(--spacing)*32)}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.sm\:text-\[0\.95rem\]{font-size:.95rem}}@media(min-width:64rem){.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:mt-2{margin-top:calc(var(--spacing)*2)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:gap-10{gap:calc(var(--spacing)*10)}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--font-base:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";--font-heading:var(--font-base);--spacing:.25rem;--radius:.75rem;--container:var(--breakpoint-2xl);--gutter:24px;--background:oklch(14.1% .005 285.823);--foreground:oklch(98.5% 0 0);--card:oklch(21% .006 285.885);--card-foreground:oklch(98.5% 0 0);--popover:oklch(21% .006 285.885);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(70.5% .213 47.604);--primary-foreground:#fff;--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(27.4% .006 286.033);--muted-foreground:oklch(70.5% .015 286.067);--accent:oklch(27.4% .006 286.033);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(40.8% .123 38.172)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
diff --git a/ifttt/assets/_astro/index.niIggI7A.css b/ifttt/assets/_astro/index.niIggI7A.css
deleted file mode 100644
index b1b7b85..0000000
--- a/ifttt/assets/_astro/index.niIggI7A.css
+++ /dev/null
@@ -1 +0,0 @@
-/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-slate-950:oklch(12.9% .042 264.695);--color-white:#fff;--spacing:.25rem;--breakpoint-2xl:96rem;--container-xl:36rem;--container-3xl:48rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-2xl:1rem;--blur-md:12px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}html{scroll-behavior:smooth;background-color:var(--background);font-family:var(--font-base)}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.right-0{right:calc(var(--spacing)*0)}.right-6{right:calc(var(--spacing)*6)}.bottom-6{bottom:calc(var(--spacing)*6)}.left-0{left:calc(var(--spacing)*0)}.-z-10{z-index:-10}.z-50{z-index:50}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-5{margin-top:calc(var(--spacing)*5)}.mt-6{margin-top:calc(var(--spacing)*6)}.mt-7{margin-top:calc(var(--spacing)*7)}.mt-8{margin-top:calc(var(--spacing)*8)}.mb-6{margin-bottom:calc(var(--spacing)*6)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.h-4{height:calc(var(--spacing)*4)}.h-10{height:calc(var(--spacing)*10)}.h-full{height:100%}.h-px{height:1px}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-none{max-width:none}.max-w-xl{max-width:var(--container-xl)}.min-w-\[190px\]{min-width:190px}.min-w-\[720px\]{min-width:720px}.border-collapse{border-collapse:collapse}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-8{gap:calc(var(--spacing)*8)}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.overflow-x-auto{overflow-x:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-white\/10{border-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.border-white\/10{border-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.border-white\/12{border-color:#ffffff1f}@supports (color:color-mix(in lab,red,red)){.border-white\/12{border-color:color-mix(in oklab,var(--color-white)12%,transparent)}}.border-white\/25{border-color:#ffffff40}@supports (color:color-mix(in lab,red,red)){.border-white\/25{border-color:color-mix(in oklab,var(--color-white)25%,transparent)}}.bg-background{background-color:var(--background)}.bg-primary{background-color:var(--primary)}.bg-slate-950\/30{background-color:#0206184d}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/30{background-color:color-mix(in oklab,var(--color-slate-950)30%,transparent)}}.bg-slate-950\/40{background-color:#02061866}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/40{background-color:color-mix(in oklab,var(--color-slate-950)40%,transparent)}}.bg-slate-950\/50{background-color:#02061880}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/50{background-color:color-mix(in oklab,var(--color-slate-950)50%,transparent)}}.bg-white\/5{background-color:#ffffff0d}@supports (color:color-mix(in lab,red,red)){.bg-white\/5{background-color:color-mix(in oklab,var(--color-white)5%,transparent)}}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.bg-white\/10{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.\[background-image\:url\(\'data\:image\/svg\+xml\,\%3Csvg\%20xmlns\=\%22http\:\/\/www\.w3\.org\/2000\/svg\%22\%20width\=\%22300\%22\%20height\=\%22300\%22\%3E\%3Cfilter\%20id\=\%22n\%22\%3E\%3CfeTurbulence\%20type\=\%22fractalNoise\%22\%20baseFrequency\=\%220\.8\%22\%20numOctaves\=\%224\%22\%20stitchTiles\=\%22stitch\%22\/\%3E\%3C\/filter\%3E\%3Crect\%20width\=\%22300\%22\%20height\=\%22300\%22\%20filter\=\%22url\(\%23n\)\%22\%20opacity\=\%220\.5\%22\/\%3E\%3C\/svg\%3E\'\)\]{background-image:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22300%22%20height=%22300%22%3E%3Cfilter%20id=%22n%22%3E%3CfeTurbulence%20type=%22fractalNoise%22%20baseFrequency=%220.8%22%20numOctaves=%224%22%20stitchTiles=%22stitch%22/%3E%3C/filter%3E%3Crect%20width=%22300%22%20height=%22300%22%20filter=%22url(%23n)%22%20opacity=%220.5%22/%3E%3C/svg%3E")}.bg-\[linear-gradient\(to_bottom\,rgba\(2\,6\,23\,0\.75\)\,rgba\(2\,6\,23\,0\.95\)\)\]{background-image:linear-gradient(#020617bf,#020617f2)}.bg-\[radial-gradient\(1200px_circle_at_20\%_0\%\,rgba\(16\,185\,129\,0\.18\)\,transparent_60\%\)\,radial-gradient\(1200px_circle_at_90\%_10\%\,rgba\(59\,130\,246\,0\.14\)\,transparent_55\%\)\,radial-gradient\(900px_circle_at_30\%_100\%\,rgba\(244\,63\,94\,0\.10\)\,transparent_55\%\)\]{background-image:radial-gradient(1200px at 20% 0,#10b9812e,#0000 60%),radial-gradient(1200px at 90% 10%,#3b82f624,#0000 55%),radial-gradient(900px at 30% 100%,#f43f5e1a,#0000 55%)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-10{padding-block:calc(var(--spacing)*10)}.py-12{padding-block:calc(var(--spacing)*12)}.py-14{padding-block:calc(var(--spacing)*14)}.py-24{padding-block:calc(var(--spacing)*24)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-28{padding-top:calc(var(--spacing)*28)}.pr-4{padding-right:calc(var(--spacing)*4)}.pb-12{padding-bottom:calc(var(--spacing)*12)}.pb-16{padding-bottom:calc(var(--spacing)*16)}.text-center{text-align:center}.text-left{text-align:left}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.break-all{word-break:break-all}.text-foreground{color:var(--foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-white{color:var(--color-white)}.text-white\/20{color:#fff3}@supports (color:color-mix(in lab,red,red)){.text-white\/20{color:color-mix(in oklab,var(--color-white)20%,transparent)}}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab,red,red)){.text-white\/50{color:color-mix(in oklab,var(--color-white)50%,transparent)}}.text-white\/55{color:#ffffff8c}@supports (color:color-mix(in lab,red,red)){.text-white\/55{color:color-mix(in oklab,var(--color-white)55%,transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab,red,red)){.text-white\/60{color:color-mix(in oklab,var(--color-white)60%,transparent)}}.text-white\/65{color:#ffffffa6}@supports (color:color-mix(in lab,red,red)){.text-white\/65{color:color-mix(in oklab,var(--color-white)65%,transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.text-white\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}}.text-white\/75{color:#ffffffbf}@supports (color:color-mix(in lab,red,red)){.text-white\/75{color:color-mix(in oklab,var(--color-white)75%,transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab,red,red)){.text-white\/80{color:color-mix(in oklab,var(--color-white)80%,transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab,red,red)){.text-white\/85{color:color-mix(in oklab,var(--color-white)85%,transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.text-white\/95{color:#fffffff2}@supports (color:color-mix(in lab,red,red)){.text-white\/95{color:color-mix(in oklab,var(--color-white)95%,transparent)}}.uppercase{text-transform:uppercase}.accent-\[oklch\(var\(--primary\)\)\]{accent-color:oklch(var(--primary))}.opacity-\[0\.06\]{opacity:.06}.mix-blend-overlay{mix-blend-mode:overlay}.shadow-\[0_16px_60px_rgba\(0\,0\,0\,0\.35\)\]{--tw-shadow:0 16px 60px var(--tw-shadow-color,#00000059);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_20px_80px_rgba\(0\,0\,0\,0\.35\)\]{--tw-shadow:0 20px 80px var(--tw-shadow-color,#00000059);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.running{animation-play-state:running}.group-open\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *){rotate:180deg}@media(hover:hover){.group-hover\:text-white:is(:where(.group):hover *){color:var(--color-white)}}.placeholder\:text-white\/35::placeholder{color:#ffffff59}@supports (color:color-mix(in lab,red,red)){.placeholder\:text-white\/35::placeholder{color:color-mix(in oklab,var(--color-white)35%,transparent)}}@media(hover:hover){.hover\:border-white\/20:hover{border-color:#fff3}@supports (color:color-mix(in lab,red,red)){.hover\:border-white\/20:hover{border-color:color-mix(in oklab,var(--color-white)20%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-slate-950\/70:hover{background-color:#020618b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-950\/70:hover{background-color:color-mix(in oklab,var(--color-slate-950)70%,transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab,var(--color-white)10%,transparent)}}.hover\:bg-white\/\[0\.07\]:hover{background-color:#ffffff12}@supports (color:color-mix(in lab,red,red)){.hover\:bg-white\/\[0\.07\]:hover{background-color:color-mix(in oklab,var(--color-white)7%,transparent)}}.hover\:text-white:hover{color:var(--color-white)}}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus-visible\:ring-white\/60:focus-visible{--tw-ring-color:#fff9}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-white\/60:focus-visible{--tw-ring-color:color-mix(in oklab,var(--color-white)60%,transparent)}}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--background)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:block{display:block}.sm\:inline-flex{display:inline-flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:py-16{padding-block:calc(var(--spacing)*16)}.sm\:pt-32{padding-top:calc(var(--spacing)*32)}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.sm\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.sm\:text-\[0\.95rem\]{font-size:.95rem}}@media(min-width:64rem){.lg\:col-span-5{grid-column:span 5/span 5}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:block{display:block}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--font-base:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";--font-heading:var(--font-base);--spacing:.25rem;--radius:.75rem;--container:var(--breakpoint-2xl);--gutter:24px;--background:oklch(14.1% .005 285.823);--foreground:oklch(98.5% 0 0);--card:oklch(21% .006 285.885);--card-foreground:oklch(98.5% 0 0);--popover:oklch(21% .006 285.885);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(70.5% .213 47.604);--primary-foreground:#fff;--secondary:oklch(27.4% .006 286.033);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(27.4% .006 286.033);--muted-foreground:oklch(70.5% .015 286.067);--accent:oklch(27.4% .006 286.033);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(40.8% .123 38.172)}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}
diff --git a/ifttt/index.html b/ifttt/index.html
index e8f59cf..9b74c5a 100644
--- a/ifttt/index.html
+++ b/ifttt/index.html
@@ -1 +1,3 @@
- IF.Trace   

No-login verification

IF.Trace

Confidential work → open verification.

Anyone can check the proof links. Nobody needs access to your internal systems.

Verified means
Hashes match (black/white).
Not implied
Truth, compliance, or interpretation.

How it works

A receipt-first sequence. Fast to understand. Hard to fake.

Step 1
source_sha256

Keep the source private

You do not publish the confidential source.

Step 2
output_sha256

Hash what you will share

You hash the output you can show to others.

Step 3
receipt_url

Publish a receipt

A receipt binds source → output so the debate stays grounded.

Step 4
verified: true/false

Third parties verify

They verify hashes match—no logins.

What you get (black/white)

Stable proof links

Share a URL that survives handoffs and time.

  • https://infrafabric.io/static/trace/<shareId>
  • https://infrafabric.io/static/pack/<shareId>
  • https://infrafabric.io/static/pack/<shareId>.md

Offline bundles

For reviewers who can’t download or can’t log in.

  • https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html

HTML fallbacks

Some reviewers can open HTML but refuse downloads—publish both.

Quantum-ready (optional)

A post-quantum receipt can exist for the trace (QUANTUM READY, not “quantum-secure”).

Browse by sector

Same mechanism, different pressure.

Common failure modes

Real buyers don’t want more dashboards. They want a third party to stop arguing.

External reviewers cannot log in
They refuse account creation or downloads.
IF.Trace response
HTML view + offline bundles + stable URLs.
Vendor handoff breaks the proof chain
Links, access, or context disappears after the handoff.
IF.Trace response
No-login proof links that survive time.
Disputes months later
People argue about what existed at the time.
IF.Trace response
Receipts bind source → output; integrity is checkable later.
contact \ No newline at end of file + IF.Trace

No-login integrity receipts

Prove an output matches a confidential source.

Publish a receipt. Anyone can verify the bytes later—without access to your internal systems.

Verified means the hashes match (black/white). It does not imply truth, compliance, or interpretation.

What is verified
The output bytes match the receipt hash.
What is not verified
Whether the output is correct, true, or compliant.
Receipt preview
+This is what a third party sees. No login. One question: do the bytes match the hash? +
Open
shareId
6qRgcR01kw_qNo63Dbs_ob9n
verified
yes / no
proof links
/static/trace/<shareId>
/static/pack/<shareId>
/static/pack/<shareId>.md

How it works

Four steps. One outcome: verified or not.

  1. 1

    Keep the source private

    source_sha256

    You do not publish the confidential source.

  2. 2

    Hash what you will share

    output_sha256

    You hash the output you can show to others.

  3. 3

    Publish a receipt

    receipt_url

    A receipt binds source → output so the debate stays grounded.

  4. 4

    Third parties verify

    verified: true/false

    They verify hashes match—no logins.

What you get (black/white)

Stable proof links

Share a URL that survives handoffs and time.

  • https://infrafabric.io/static/trace/<shareId>
  • https://infrafabric.io/static/pack/<shareId>
  • https://infrafabric.io/static/pack/<shareId>.md

Offline bundles

For reviewers who can’t download or can’t log in.

  • https://infrafabric.io/static/hosted/review/trace-bundles/<id>/index.html

HTML fallbacks

Some reviewers can open HTML but refuse downloads—publish both.

Quantum-ready (optional)

A post-quantum receipt can exist for the trace (QUANTUM READY, not “quantum-secure”).

Browse by sector

Same mechanism, different pressure.

Common failure modes

Real buyers don’t want more dashboards. They want a third party to stop arguing.

External reviewers cannot log in
They refuse account creation or downloads.
IF.Trace response
HTML view + offline bundles + stable URLs.
Vendor handoff breaks the proof chain
Links, access, or context disappears after the handoff.
IF.Trace response
No-login proof links that survive time.
Disputes months later
People argue about what existed at the time.
IF.Trace response
Receipts bind source → output; integrity is checkable later.
contact \ No newline at end of file diff --git a/ifttt/pricing/index.html b/ifttt/pricing/index.html index d0337a1..2258b16 100644 --- a/ifttt/pricing/index.html +++ b/ifttt/pricing/index.html @@ -1 +1,3 @@ - IF.Trace — Pricing

Pricing

Pricing

One thing priced: the proof surface.

Plans

Free
$0
  • 10 receipts / month
  • Public receipt URLs
  • HTML view
Subscription (sliding scale)
$9.99+ / month
  • Receipt creation + verification
  • Predictable monthly pricing
  • Unit price decreases with volume
Pay as you go
$0.12 / receipt
  • No subscription
  • Same verification surface

Subscription calculator

Choose a plan breakpoint. Unit price decreases with volume.

Monthly volume
100 receipts
Unit price
$0.10
Subscription
$9.99
At this volume, subscription is about $2.01 less than PAYG.

The unit price is shown at the plan breakpoints. If you need volumes above 25,000/month, the unit price continues at $0.05 unless explicitly agreed otherwise.

Notes

  • We verify integrity (hashes), not correctness or truth.
  • Large file egress or unusual storage can incur overages; see Terms.
contact \ No newline at end of file + IF.Trace — Pricing

Pricing

Pricing

One thing priced: the proof surface.

Plans

+A “receipt” is one binding of source_sha256 + output_sha256. A third party verifies by checking whether the hashes match. +

Free
$0
  • 10 receipts / month
  • Public receipt URLs
  • HTML view
Subscription (sliding scale)
$9.99+ / month
  • Receipt creation + verification
  • Predictable monthly pricing
  • Unit price decreases with volume
Pay as you go
$0.12 / receipt
  • No subscription
  • Same verification surface

Subscription calculator

Choose a plan breakpoint. Unit price decreases with volume.

Monthly volume
100 receipts
Unit price
$0.10
Subscription
$9.99
At this volume, subscription is about $2.01 less than PAYG.

The unit price is shown at the plan breakpoints. If you need volumes above 25,000/month, the unit price continues at $0.05 unless explicitly agreed otherwise.

Notes

  • We verify integrity (hashes), not correctness or truth.
  • Large file egress or unusual storage can incur overages; see Terms.
contact \ No newline at end of file diff --git a/ifttt/privacy/index.html b/ifttt/privacy/index.html index 6675929..42bbcbb 100644 --- a/ifttt/privacy/index.html +++ b/ifttt/privacy/index.html @@ -1 +1 @@ - IF.Trace — Privacy

Legal

Privacy

Plain language. Short. Built for this category.

Policy

IF.Trace is built to keep confidential work confidential.

What we store by default:

- Receipt data (hashes and non-sensitive metadata you choose to attach).

- Operational logs needed to keep the service reliable (e.g., timestamps and request identifiers).

What we do not need:

- Your confidential source files.

If you upload or paste content into any test tools, treat that content as non-confidential.

If you contact us by email, we will use your email only to reply to your request.

We do not sell contact lists.

contact \ No newline at end of file + IF.Trace — Privacy

Legal

Privacy

Plain language. Short. Built for this category.

Policy

IF.Trace is built to keep confidential work confidential.

What we store by default:

- Receipt data (hashes and non-sensitive metadata you choose to attach).

- Operational logs needed to keep the service reliable (e.g., timestamps and request identifiers).

What we do not need:

- Your confidential source files.

If you upload or paste content into any test tools, treat that content as non-confidential.

If you contact us by email, we will use your email only to reply to your request.

We do not sell contact lists.

contact \ No newline at end of file diff --git a/ifttt/terms/index.html b/ifttt/terms/index.html index 39145c2..cbf9a5c 100644 --- a/ifttt/terms/index.html +++ b/ifttt/terms/index.html @@ -1 +1 @@ - IF.Trace — Terms

Legal

Terms

Plain language. Short. Built for this category.

Terms

IF.Trace provides integrity receipts.

Black/white meaning:

- VERIFIED means hashes match.

- It does not mean the content is true, correct, compliant, safe, or endorsed.

Usage:

- You are responsible for what you choose to publish and what metadata you attach.

- Do not upload confidential sources to public demo tooling.

Pricing and overages:

- Subscription pricing follows the published sliding scale breakpoints.

- Pay-as-you-go is billed per receipt.

- If your usage involves unusually large artifacts (egress, storage, or bandwidth beyond typical receipt traffic), we may apply reasonable overages. Any overage policy change is documented before billing.

Availability:

- The marketing site may describe features that depend on API availability. The service is considered live only when the API is operational and tested.

contact \ No newline at end of file + IF.Trace — Terms

Legal

Terms

Plain language. Short. Built for this category.

Terms

IF.Trace provides integrity receipts.

Black/white meaning:

- VERIFIED means hashes match.

- It does not mean the content is true, correct, compliant, safe, or endorsed.

Usage:

- You are responsible for what you choose to publish and what metadata you attach.

- Do not upload confidential sources to public demo tooling.

Pricing and overages:

- Subscription pricing follows the published sliding scale breakpoints.

- Pay-as-you-go is billed per receipt.

- If your usage involves unusually large artifacts (egress, storage, or bandwidth beyond typical receipt traffic), we may apply reasonable overages. Any overage policy change is documented before billing.

Availability:

- The marketing site may describe features that depend on API availability. The service is considered live only when the API is operational and tested.

contact \ No newline at end of file diff --git a/ifttt/verticals/ai/index.html b/ifttt/verticals/ai/index.html index a47bb9d..a70c29a 100644 --- a/ifttt/verticals/ai/index.html +++ b/ifttt/verticals/ai/index.html @@ -1 +1 @@ - IF.Trace — AI Product Companies

AI trust pressure

AI Product Companies

Make outputs provable, not persuasive.

When an output is contested (“why did it say that?”), you need provenance. IF.Trace supports verifiable linkage from inputs to outputs.

contact \ No newline at end of file + IF.Trace — AI Product Companies

AI trust pressure

AI Product Companies

Make outputs provable, not persuasive.

When an output is contested (“why did it say that?”), you need provenance. IF.Trace supports verifiable linkage from inputs to outputs.

contact \ No newline at end of file diff --git a/ifttt/verticals/enterprise/index.html b/ifttt/verticals/enterprise/index.html index b22709a..a2fab7e 100644 --- a/ifttt/verticals/enterprise/index.html +++ b/ifttt/verticals/enterprise/index.html @@ -1 +1 @@ - IF.Trace — Enterprise

Enterprise pressure

Enterprise

Audit throughput without credential sprawl.

In enterprise environments, audit friction becomes a tax on delivery. IF.Trace provides proof that third parties can verify without joining your internal world.

contact \ No newline at end of file + IF.Trace — Enterprise

Enterprise pressure

Enterprise

Audit throughput without credential sprawl.

In enterprise environments, audit friction becomes a tax on delivery. IF.Trace provides proof that third parties can verify without joining your internal world.

contact \ No newline at end of file diff --git a/ifttt/verticals/finance/index.html b/ifttt/verticals/finance/index.html index f925a94..5e176b4 100644 --- a/ifttt/verticals/finance/index.html +++ b/ifttt/verticals/finance/index.html @@ -1 +1 @@ - IF.Trace — Financial Services

Financial pressure

Financial Services

Non-repudiation for decisions and outputs.

Regulated environments need evidence that survives scrutiny. IF.Trace supports verifiable artifacts without fragile internal access dependencies.

contact \ No newline at end of file + IF.Trace — Financial Services

Financial pressure

Financial Services

Non-repudiation for decisions and outputs.

Regulated environments need evidence that survives scrutiny. IF.Trace supports verifiable artifacts without fragile internal access dependencies.

contact \ No newline at end of file diff --git a/ifttt/verticals/government/index.html b/ifttt/verticals/government/index.html index 2fda97c..c76db57 100644 --- a/ifttt/verticals/government/index.html +++ b/ifttt/verticals/government/index.html @@ -1 +1 @@ - IF.Trace — Government

Government review reality

Government

Evidence must outlive people.

When decisions are reviewed months later, the only thing that matters is what you can still prove. IF.Trace produces stable proof surfaces that survive staffing changes, vendors, and audits.

contact \ No newline at end of file + IF.Trace — Government

Government review reality

Government

Evidence must outlive people.

When decisions are reviewed months later, the only thing that matters is what you can still prove. IF.Trace produces stable proof surfaces that survive staffing changes, vendors, and audits.

contact \ No newline at end of file diff --git a/ifttt/verticals/healthcare/index.html b/ifttt/verticals/healthcare/index.html index 1a01414..96803d6 100644 --- a/ifttt/verticals/healthcare/index.html +++ b/ifttt/verticals/healthcare/index.html @@ -1 +1 @@ - IF.Trace — Healthcare

Healthcare constraints

Healthcare

Proof that respects boundaries.

Healthcare environments require strict boundaries: privacy, consent, and auditability. IF.Trace supports verification without broad data exposure.

contact \ No newline at end of file + IF.Trace — Healthcare

Healthcare constraints

Healthcare

Proof that respects boundaries.

Healthcare environments require strict boundaries: privacy, consent, and auditability. IF.Trace supports verification without broad data exposure.

contact \ No newline at end of file diff --git a/ifttt/verticals/index.html b/ifttt/verticals/index.html index 0c38103..17c6a9f 100644 --- a/ifttt/verticals/index.html +++ b/ifttt/verticals/index.html @@ -1 +1 @@ - IF.Trace — Sector

Browse by sector

Same mechanism, different pressure.

Public sector reality

Public Sector

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

Open →

Government review reality

Government

When decisions are reviewed months later, the only thing that matters is what you can still prove. IF.Trace produces stable proof surfaces that survive staffing changes, vendors, and audits.

Open →

Enterprise pressure

Enterprise

In enterprise environments, audit friction becomes a tax on delivery. IF.Trace provides proof that third parties can verify without joining your internal world.

Open →

External review reality

Research

Research reviewers need proof, not your whole environment. IF.Trace makes it practical to share verifiable outputs while keeping raw data controlled.

Open →

Scientific review reality

Sciences

Science is adversarial in the best way: other people must be able to check your work. IF.Trace keeps the proof surface simple and stable.

Open →

Client handoff reality

Professional Services

When advice, drafts, and deliverables become contested, you need custody that holds up. IF.Trace makes your outputs verifiable without exposing your internal process.

Open →

Healthcare constraints

Healthcare

Healthcare environments require strict boundaries: privacy, consent, and auditability. IF.Trace supports verification without broad data exposure.

Open →

Financial pressure

Financial Services

Regulated environments need evidence that survives scrutiny. IF.Trace supports verifiable artifacts without fragile internal access dependencies.

Open →

Legal reality

Legal

Legal work depends on what can be proven. IF.Trace provides a simple, verifiable custody layer for documents and derived outputs.

Open →

Audit readiness

B2B SaaS (SOC 2 / ISO)

Compliance is often a third-party proof problem. IF.Trace makes it easier to show audit evidence without turning your internal systems into public surface area.

Open →

Security operations

SecOps / SOC

Security teams summarize fast under pressure. IF.Trace keeps summaries tied to underlying evidence so post-incident review stays grounded.

Open →

AI trust pressure

AI Product Companies

When an output is contested (“why did it say that?”), you need provenance. IF.Trace supports verifiable linkage from inputs to outputs.

Open →

Supply chain reality

Industrial / Supply Chain

In complex supply chains, custody breaks at handoff points. IF.Trace makes proof portable so verification survives contractor and vendor boundaries.

Open →

contact \ No newline at end of file + IF.Trace — Use cases

Browse by sector

Same mechanism, different pressure.

Public sector reality

Public Sector

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

Open →

Government review reality

Government

When decisions are reviewed months later, the only thing that matters is what you can still prove. IF.Trace produces stable proof surfaces that survive staffing changes, vendors, and audits.

Open →

Enterprise pressure

Enterprise

In enterprise environments, audit friction becomes a tax on delivery. IF.Trace provides proof that third parties can verify without joining your internal world.

Open →

External review reality

Research

Research reviewers need proof, not your whole environment. IF.Trace makes it practical to share verifiable outputs while keeping raw data controlled.

Open →

Scientific review reality

Sciences

Science is adversarial in the best way: other people must be able to check your work. IF.Trace keeps the proof surface simple and stable.

Open →

Client handoff reality

Professional Services

When advice, drafts, and deliverables become contested, you need custody that holds up. IF.Trace makes your outputs verifiable without exposing your internal process.

Open →

Healthcare constraints

Healthcare

Healthcare environments require strict boundaries: privacy, consent, and auditability. IF.Trace supports verification without broad data exposure.

Open →

Financial pressure

Financial Services

Regulated environments need evidence that survives scrutiny. IF.Trace supports verifiable artifacts without fragile internal access dependencies.

Open →

Legal reality

Legal

Legal work depends on what can be proven. IF.Trace provides a simple, verifiable custody layer for documents and derived outputs.

Open →

Audit readiness

B2B SaaS (SOC 2 / ISO)

Compliance is often a third-party proof problem. IF.Trace makes it easier to show audit evidence without turning your internal systems into public surface area.

Open →

Security operations

SecOps / SOC

Security teams summarize fast under pressure. IF.Trace keeps summaries tied to underlying evidence so post-incident review stays grounded.

Open →

AI trust pressure

AI Product Companies

When an output is contested (“why did it say that?”), you need provenance. IF.Trace supports verifiable linkage from inputs to outputs.

Open →

Supply chain reality

Industrial / Supply Chain

In complex supply chains, custody breaks at handoff points. IF.Trace makes proof portable so verification survives contractor and vendor boundaries.

Open →

contact \ No newline at end of file diff --git a/ifttt/verticals/legal/index.html b/ifttt/verticals/legal/index.html index 4b00bc7..4455b0d 100644 --- a/ifttt/verticals/legal/index.html +++ b/ifttt/verticals/legal/index.html @@ -1 +1 @@ - IF.Trace — Legal

Legal reality

Legal

Chain-of-custody for drafts and evidence.

Legal work depends on what can be proven. IF.Trace provides a simple, verifiable custody layer for documents and derived outputs.

contact \ No newline at end of file + IF.Trace — Legal

Legal reality

Legal

Chain-of-custody for drafts and evidence.

Legal work depends on what can be proven. IF.Trace provides a simple, verifiable custody layer for documents and derived outputs.

contact \ No newline at end of file diff --git a/ifttt/verticals/professional-services/index.html b/ifttt/verticals/professional-services/index.html index 41f8060..e3d8d86 100644 --- a/ifttt/verticals/professional-services/index.html +++ b/ifttt/verticals/professional-services/index.html @@ -1 +1 @@ - IF.Trace — Professional Services

Client handoff reality

Professional Services

Receipts that survive disputes.

When advice, drafts, and deliverables become contested, you need custody that holds up. IF.Trace makes your outputs verifiable without exposing your internal process.

contact \ No newline at end of file + IF.Trace — Professional Services

Client handoff reality

Professional Services

Receipts that survive disputes.

When advice, drafts, and deliverables become contested, you need custody that holds up. IF.Trace makes your outputs verifiable without exposing your internal process.

contact \ No newline at end of file diff --git a/ifttt/verticals/public-sector/index.html b/ifttt/verticals/public-sector/index.html index 7d3eb1e..e0354cb 100644 --- a/ifttt/verticals/public-sector/index.html +++ b/ifttt/verticals/public-sector/index.html @@ -1 +1 @@ - IF.Trace — Public Sector

Public sector reality

Public Sector

Proof must survive procurement.

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

Hand this to a reviewer

One URL per line. No logins.

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
contact \ No newline at end of file + IF.Trace — Public Sector

Public sector reality

Public Sector

Proof must survive procurement.

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

Hand this to a reviewer

One URL per line. No logins.

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
contact \ No newline at end of file diff --git a/ifttt/verticals/research/index.html b/ifttt/verticals/research/index.html index c8b91d5..0724469 100644 --- a/ifttt/verticals/research/index.html +++ b/ifttt/verticals/research/index.html @@ -1 +1 @@ - IF.Trace — Research

External review reality

Research

Reproducibility without leaking the lab.

Research reviewers need proof, not your whole environment. IF.Trace makes it practical to share verifiable outputs while keeping raw data controlled.

contact \ No newline at end of file + IF.Trace — Research

External review reality

Research

Reproducibility without leaking the lab.

Research reviewers need proof, not your whole environment. IF.Trace makes it practical to share verifiable outputs while keeping raw data controlled.

contact \ No newline at end of file diff --git a/ifttt/verticals/saas/index.html b/ifttt/verticals/saas/index.html index 605c804..66f26e7 100644 --- a/ifttt/verticals/saas/index.html +++ b/ifttt/verticals/saas/index.html @@ -1 +1 @@ - IF.Trace — B2B SaaS (SOC 2 / ISO)

Audit readiness

B2B SaaS (SOC 2 / ISO)

Prove what existed, when it existed.

Compliance is often a third-party proof problem. IF.Trace makes it easier to show audit evidence without turning your internal systems into public surface area.

contact \ No newline at end of file + IF.Trace — B2B SaaS (SOC 2 / ISO)

Audit readiness

B2B SaaS (SOC 2 / ISO)

Prove what existed, when it existed.

Compliance is often a third-party proof problem. IF.Trace makes it easier to show audit evidence without turning your internal systems into public surface area.

contact \ No newline at end of file diff --git a/ifttt/verticals/sciences/index.html b/ifttt/verticals/sciences/index.html index c737543..ff82383 100644 --- a/ifttt/verticals/sciences/index.html +++ b/ifttt/verticals/sciences/index.html @@ -1 +1 @@ - IF.Trace — Sciences

Scientific review reality

Sciences

Make claims checkable later.

Science is adversarial in the best way: other people must be able to check your work. IF.Trace keeps the proof surface simple and stable.

contact \ No newline at end of file + IF.Trace — Sciences

Scientific review reality

Sciences

Make claims checkable later.

Science is adversarial in the best way: other people must be able to check your work. IF.Trace keeps the proof surface simple and stable.

contact \ No newline at end of file diff --git a/ifttt/verticals/secops/index.html b/ifttt/verticals/secops/index.html index a8b1e50..7e065fb 100644 --- a/ifttt/verticals/secops/index.html +++ b/ifttt/verticals/secops/index.html @@ -1 +1 @@ - IF.Trace — SecOps / SOC

Security operations

SecOps / SOC

Bind summaries to evidence.

Security teams summarize fast under pressure. IF.Trace keeps summaries tied to underlying evidence so post-incident review stays grounded.

contact \ No newline at end of file + IF.Trace — SecOps / SOC

Security operations

SecOps / SOC

Bind summaries to evidence.

Security teams summarize fast under pressure. IF.Trace keeps summaries tied to underlying evidence so post-incident review stays grounded.

contact \ No newline at end of file diff --git a/ifttt/verticals/supply-chain/index.html b/ifttt/verticals/supply-chain/index.html index caeee8e..c500faa 100644 --- a/ifttt/verticals/supply-chain/index.html +++ b/ifttt/verticals/supply-chain/index.html @@ -1 +1 @@ - IF.Trace — Industrial / Supply Chain

Supply chain reality

Industrial / Supply Chain

Traceability across vendor handoffs.

In complex supply chains, custody breaks at handoff points. IF.Trace makes proof portable so verification survives contractor and vendor boundaries.

contact \ No newline at end of file + IF.Trace — Industrial / Supply Chain

Supply chain reality

Industrial / Supply Chain

Traceability across vendor handoffs.

In complex supply chains, custody breaks at handoff points. IF.Trace makes proof portable so verification survives contractor and vendor boundaries.

contact \ No newline at end of file diff --git a/ifttt/whitepaper/index.html b/ifttt/whitepaper/index.html index 9b7c52a..5c849c9 100644 --- a/ifttt/whitepaper/index.html +++ b/ifttt/whitepaper/index.html @@ -1 +1 @@ - IF.Trace — Whitepaper

Whitepaper

Whitepaper

The receipt-first sequence, documented with verifiable artifacts.

What this paper is

Hash the source → hash the output → publish a trace → share no-login receipts → optional offline bundles.

Verified means hashes match (black/white).

Not implied: truth, compliance, or interpretation.

Links

No login. Use the HTML version if your environment blocks downloads.

Limits (black/white)

Verified
  • Hashes match.
  • Receipt links are stable.
  • Offline bundle checksums match (when used).
Not implied
  • Truth.
  • Compliance.
  • Intent or interpretation.
contact \ No newline at end of file + IF.Trace — Whitepaper

Whitepaper

Whitepaper

The receipt-first sequence, documented with verifiable artifacts.

What this paper is

Hash the source → hash the output → publish a trace → share no-login receipts → optional offline bundles.

Verified means hashes match (black/white).

Not implied: truth, compliance, or interpretation.

Links

No login. Use the HTML version if your environment blocks downloads.

Limits (black/white)

Verified
  • Hashes match.
  • Receipt links are stable.
  • Offline bundle checksums match (when used).
Not implied
  • Truth.
  • Compliance.
  • Intent or interpretation.
contact \ No newline at end of file