diff --git a/ifttt-src/public/review/screens/desktop/about.png b/ifttt-src/public/review/screens/desktop/about.png new file mode 100644 index 0000000..b058b60 Binary files /dev/null and b/ifttt-src/public/review/screens/desktop/about.png differ diff --git a/ifttt-src/public/review/screens/desktop/api.png b/ifttt-src/public/review/screens/desktop/api.png index 8ac6913..eb2eac1 100644 Binary files a/ifttt-src/public/review/screens/desktop/api.png and b/ifttt-src/public/review/screens/desktop/api.png differ diff --git a/ifttt-src/public/review/screens/desktop/flow/01-home.png b/ifttt-src/public/review/screens/desktop/flow/01-home.png index e2f4b13..d234d9a 100644 Binary files a/ifttt-src/public/review/screens/desktop/flow/01-home.png and b/ifttt-src/public/review/screens/desktop/flow/01-home.png differ diff --git a/ifttt-src/public/review/screens/desktop/flow/02-sector.png b/ifttt-src/public/review/screens/desktop/flow/02-sector.png index 6506594..b3ea4ad 100644 Binary files a/ifttt-src/public/review/screens/desktop/flow/02-sector.png and b/ifttt-src/public/review/screens/desktop/flow/02-sector.png differ diff --git a/ifttt-src/public/review/screens/desktop/flow/03-pricing.png b/ifttt-src/public/review/screens/desktop/flow/03-pricing.png index 1d3836f..5552446 100644 Binary files a/ifttt-src/public/review/screens/desktop/flow/03-pricing.png and b/ifttt-src/public/review/screens/desktop/flow/03-pricing.png differ diff --git a/ifttt-src/public/review/screens/desktop/flow/04-api.png b/ifttt-src/public/review/screens/desktop/flow/04-api.png index d023f44..54b5016 100644 Binary files a/ifttt-src/public/review/screens/desktop/flow/04-api.png and b/ifttt-src/public/review/screens/desktop/flow/04-api.png differ diff --git a/ifttt-src/public/review/screens/desktop/fr.png b/ifttt-src/public/review/screens/desktop/fr.png new file mode 100644 index 0000000..89c7474 Binary files /dev/null and b/ifttt-src/public/review/screens/desktop/fr.png differ diff --git a/ifttt-src/public/review/screens/desktop/governance.png b/ifttt-src/public/review/screens/desktop/governance.png new file mode 100644 index 0000000..6be47b7 Binary files /dev/null and b/ifttt-src/public/review/screens/desktop/governance.png differ diff --git a/ifttt-src/public/review/screens/desktop/home.png b/ifttt-src/public/review/screens/desktop/home.png index e2f4b13..d234d9a 100644 Binary files a/ifttt-src/public/review/screens/desktop/home.png and b/ifttt-src/public/review/screens/desktop/home.png differ diff --git a/ifttt-src/public/review/screens/desktop/pricing.png b/ifttt-src/public/review/screens/desktop/pricing.png index a3a9089..a601278 100644 Binary files a/ifttt-src/public/review/screens/desktop/pricing.png and b/ifttt-src/public/review/screens/desktop/pricing.png differ diff --git a/ifttt-src/public/review/screens/desktop/verticals-public-sector.png b/ifttt-src/public/review/screens/desktop/verticals-public-sector.png new file mode 100644 index 0000000..0e57d26 Binary files /dev/null and b/ifttt-src/public/review/screens/desktop/verticals-public-sector.png differ diff --git a/ifttt-src/public/review/screens/desktop/verticals.png b/ifttt-src/public/review/screens/desktop/verticals.png index 7a34003..ea2969b 100644 Binary files a/ifttt-src/public/review/screens/desktop/verticals.png and b/ifttt-src/public/review/screens/desktop/verticals.png differ diff --git a/ifttt-src/public/review/screens/desktop/whitepaper.png b/ifttt-src/public/review/screens/desktop/whitepaper.png new file mode 100644 index 0000000..ee514cd Binary files /dev/null and b/ifttt-src/public/review/screens/desktop/whitepaper.png differ diff --git a/ifttt-src/public/review/screens/mobile/about.png b/ifttt-src/public/review/screens/mobile/about.png new file mode 100644 index 0000000..4059a7f Binary files /dev/null and b/ifttt-src/public/review/screens/mobile/about.png differ diff --git a/ifttt-src/public/review/screens/mobile/api.png b/ifttt-src/public/review/screens/mobile/api.png index 1178ac8..40df02a 100644 Binary files a/ifttt-src/public/review/screens/mobile/api.png and b/ifttt-src/public/review/screens/mobile/api.png differ diff --git a/ifttt-src/public/review/screens/mobile/flow/01-home.png b/ifttt-src/public/review/screens/mobile/flow/01-home.png index 1d7fc32..36efe51 100644 Binary files a/ifttt-src/public/review/screens/mobile/flow/01-home.png and b/ifttt-src/public/review/screens/mobile/flow/01-home.png differ diff --git a/ifttt-src/public/review/screens/mobile/flow/02-sector.png b/ifttt-src/public/review/screens/mobile/flow/02-sector.png index 0345768..2bb4ee8 100644 Binary files a/ifttt-src/public/review/screens/mobile/flow/02-sector.png and b/ifttt-src/public/review/screens/mobile/flow/02-sector.png differ diff --git a/ifttt-src/public/review/screens/mobile/flow/03-pricing.png b/ifttt-src/public/review/screens/mobile/flow/03-pricing.png index 6d1a2fb..289622a 100644 Binary files a/ifttt-src/public/review/screens/mobile/flow/03-pricing.png and b/ifttt-src/public/review/screens/mobile/flow/03-pricing.png differ diff --git a/ifttt-src/public/review/screens/mobile/flow/04-api.png b/ifttt-src/public/review/screens/mobile/flow/04-api.png index 197e41d..a69965a 100644 Binary files a/ifttt-src/public/review/screens/mobile/flow/04-api.png and b/ifttt-src/public/review/screens/mobile/flow/04-api.png differ diff --git a/ifttt-src/public/review/screens/mobile/fr.png b/ifttt-src/public/review/screens/mobile/fr.png new file mode 100644 index 0000000..ee7bb18 Binary files /dev/null and b/ifttt-src/public/review/screens/mobile/fr.png differ diff --git a/ifttt-src/public/review/screens/mobile/governance.png b/ifttt-src/public/review/screens/mobile/governance.png new file mode 100644 index 0000000..64b8586 Binary files /dev/null and b/ifttt-src/public/review/screens/mobile/governance.png differ diff --git a/ifttt-src/public/review/screens/mobile/home.png b/ifttt-src/public/review/screens/mobile/home.png index 1d7fc32..36efe51 100644 Binary files a/ifttt-src/public/review/screens/mobile/home.png and b/ifttt-src/public/review/screens/mobile/home.png differ diff --git a/ifttt-src/public/review/screens/mobile/pricing.png b/ifttt-src/public/review/screens/mobile/pricing.png index 833e8a9..96c6ed3 100644 Binary files a/ifttt-src/public/review/screens/mobile/pricing.png and b/ifttt-src/public/review/screens/mobile/pricing.png differ diff --git a/ifttt-src/public/review/screens/mobile/verticals-public-sector.png b/ifttt-src/public/review/screens/mobile/verticals-public-sector.png new file mode 100644 index 0000000..a1cf821 Binary files /dev/null and b/ifttt-src/public/review/screens/mobile/verticals-public-sector.png differ diff --git a/ifttt-src/public/review/screens/mobile/verticals.png b/ifttt-src/public/review/screens/mobile/verticals.png index 535e6fd..72b466c 100644 Binary files a/ifttt-src/public/review/screens/mobile/verticals.png and b/ifttt-src/public/review/screens/mobile/verticals.png differ diff --git a/ifttt-src/public/review/screens/mobile/whitepaper.png b/ifttt-src/public/review/screens/mobile/whitepaper.png new file mode 100644 index 0000000..cea9ace Binary files /dev/null and b/ifttt-src/public/review/screens/mobile/whitepaper.png differ diff --git a/ifttt-src/src/data/review-packet.md b/ifttt-src/src/data/review-packet.md index a326288..41eece5 100644 --- a/ifttt-src/src/data/review-packet.md +++ b/ifttt-src/src/data/review-packet.md @@ -12,6 +12,13 @@ This packet exists because many “AI browser / fetch” tools cannot load a liv If you cannot fetch `https://infrafabric.io/` in your environment, use this packet instead. It contains the live URLs, the current plain-language intent, and screenshots. +## 0) Changelog (so reviewers can trust the packet) + +- 2025-12-31: Added `Whitepaper` to the top nav. +- 2025-12-31: Added plain examples for offline bundles (light/standard/full). +- 2025-12-31: Added `Privacy` + `Terms` pages and linked them in the footer. +- 2025-12-31: Refreshed desktop/mobile screenshots in this packet. + ## 1) What You Are Reviewing (plain description) IF.Trace is a small public website for a verification protocol. @@ -56,7 +63,7 @@ Main routes (public): - FR: `https://infrafabric.io/fr/` Header nav is intentionally minimal: -- `Sector | Pricing | API` +- `Sector | Pricing | API | Whitepaper` ## 5) Current “Home Page” Intent (the core promise) @@ -138,4 +145,3 @@ Please do not be polite. Assume we prefer accuracy over encouragement. If you find yourself agreeing with everything, pause and look for weaknesses: - who would *not* trust this, and why? - what could be misunderstood and cause harm? - diff --git a/ifttt-src/src/layouts/BaseLayout.astro b/ifttt-src/src/layouts/BaseLayout.astro index f43d7d6..3a463e8 100644 --- a/ifttt-src/src/layouts/BaseLayout.astro +++ b/ifttt-src/src/layouts/BaseLayout.astro @@ -53,6 +53,8 @@ const langSwitch = Pricing API + + Whitepaper + + -

Public receipt surface (no login)

-

Stable URLs, predictable verification.

+

API

+

Upload a file. Get a receipt.

- IF.Trace 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. + This is the practical page. Copy/paste the examples, run a real request, and share the receipt URL with a reviewer.

-
+
-

What “VERIFIED” means (black/white)

-

Integrity, not interpretation.

+

Quickstart

+

Three steps.

+

1) Login. 2) Create an API key. 3) Upload a file to /api/v1/traces.

+ - Verified - - The bytes you can download hash to the same values shown on the trace receipt. - + 1) Console + Login and create an API key for your organization. +
+ + +
+ - Quantum ready - - A post‑quantum signature receipt can be added (integrity hashes still stand). - + 2) Upload + POST a file to /api/v1/traces. +
curl -fsS -X POST \\
+  -H 'X-API-Key: <your_key>' \\
+  -F 'file=@./document.pdf' \\
+  -F 'expected_sha256=<optional_expected_sha256>' \\
+  https://infrafabric.io/api/v1/traces
+ - Not implied - Compliance, intent, or correctness of interpretation. + 3) Share + Send the receipt URL to the reviewer. No login required. +
# Response includes:
+receipt_url: https://infrafabric.io/api/v1/public/receipt/<public_id>
-
- - -

Share surface

-

Copy/pasteable proof links.

-

These URLs are stable by design so review packs remain checkable later.

+
+ + +

Live test

+

Try an upload right now.

+

Paste your API key, pick a file, optionally provide an expected SHA‑256, and run the call.

-
-
Paths
-
-https://infrafabric.io/static/trace/<shareId>
-https://infrafabric.io/static/dossier/<shareId>
-https://infrafabric.io/static/dossier/<shareId>/download
-https://infrafabric.io/static/pack/<shareId>.md
-https://infrafabric.io/static/review/<shareId>.md
-https://infrafabric.io/static/marketing/<shareId>.md
-https://infrafabric.io/static/source/<source_sha256>.pdf
-        
+
+ +
-
+
-

HTML fallback

-

For sandboxed reviewers.

+

Examples

+

Copy/paste for common platforms.

+
+ + + + + Python (requests) +
import requests
+
+API_KEY = "iftr_..."
+with open("document.pdf", "rb") as f:
+    res = requests.post(
+        "https://infrafabric.io/api/v1/traces",
+        headers={"X-API-Key": API_KEY},
+        files={"file": ("document.pdf", f, "application/pdf")},
+        data={"expected_sha256": ""},  # optional
+        timeout=60,
+    )
+print(res.status_code)
+print(res.json())
+
+
+ + + + Node.js (fetch) +
import fs from "node:fs";
+
+const apiKey = "iftr_...";
+const fd = new FormData();
+fd.append("file", new Blob([fs.readFileSync("document.pdf")]), "document.pdf");
+// fd.append("expected_sha256", ""); // optional
+
+const res = await fetch("https://infrafabric.io/api/v1/traces", {
+  method: "POST",
+  headers: { "X-API-Key": apiKey },
+  body: fd,
+});
+console.log(res.status);
+console.log(await res.json());
+
+
+
+
+
+ +
+ + +

Meaning

+

Integrity, not interpretation.

- Some external review environments can load HTML but reject downloadable binaries or raw markdown. For those, we publish HTML views alongside the raw assets. + “Verified” means the computed hash matched an expected hash you provided. + It does not mean “true”, “compliant”, or “approved”.

- - - - - 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 (light/standard/full) and verify without relying on the live site.

-
- -
- - -
-
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.

-
-
- -
- -
- - -

Docs

-

Review packs

-

Use the paper update as a reviewer-friendly packet.

-
-
- -
-
diff --git a/ifttt-src/src/pages/fr/index.astro b/ifttt-src/src/pages/fr/index.astro index 701bd5c..e79dfa9 100644 --- a/ifttt-src/src/pages/fr/index.astro +++ b/ifttt-src/src/pages/fr/index.astro @@ -52,7 +52,7 @@ import BaseLayout from "@/layouts/BaseLayout.astro"; }, { title: "Fallback HTML", - description: "Certains reviewers chargent du HTML mais refusent les téléchargements : on publie les deux.", + description: "Version HTML de secours : certains reviewers chargent du HTML mais refusent les téléchargements, donc on publie les deux.", icon: "file-text", }, { @@ -102,4 +102,3 @@ import BaseLayout from "@/layouts/BaseLayout.astro";

- diff --git a/ifttt-src/src/pages/index.astro b/ifttt-src/src/pages/index.astro index ea91511..414e3ee 100644 --- a/ifttt-src/src/pages/index.astro +++ b/ifttt-src/src/pages/index.astro @@ -18,17 +18,20 @@ import BaseLayout from "@/layouts/BaseLayout.astro"; target: "_blank", icon: "sparkles", }, - { text: "Read the paper", href: "/whitepaper/", icon: "file-text" }, + { text: "Read the whitepaper", href: "/whitepaper/", icon: "file-text" }, ]} image={{ src: "/assets/iftrace-diagram.svg", - alt: "Verification flow diagram (example)", + alt: "Verification flow (example): 1) keep source private 2) hash output 3) publish receipt 4) third party verifies", }} >

IF.Transparent > IF.Traceable > IF.Trustworthy

IF.Trace

-

Confidential work > open verification.

-

Let a third party check integrity later, without joining your tools.

+

Proof for outsiders, without giving access.

+

+ When an auditor, client, partner, or reviewer says “prove it”, the problem is not the hash. + The problem is access. IF.Trace gives you a public receipt they can verify without accounts. +

-

What IF.Trace is

-

A verification layer for third‑party pressure.

+

What it is

+

A public receipt for a private workflow.

- When someone needs proof, the bottleneck is almost always the same: - they can’t be onboarded into your internal systems. IF.Trace keeps the proof - outside: stable links they can verify without accounts. + If you have ever lost days to “can you prove this existed then?” or “can you share access so we can check?”, + IF.Trace is the simple alternative: keep the work private, publish a receipt for outsiders.

@@ -102,7 +104,7 @@ import BaseLayout from "@/layouts/BaseLayout.astro"; ]} image={{ src: "/assets/iftrace-diagram.svg", - alt: "Verification flow diagram (example)", + alt: "Verification flow (example): 1) keep source private 2) hash output 3) publish receipt 4) third party verifies", }} >

How it works

diff --git a/ifttt-src/src/pages/pricing/index.astro b/ifttt-src/src/pages/pricing/index.astro index 734e18d..2da7362 100644 --- a/ifttt-src/src/pages/pricing/index.astro +++ b/ifttt-src/src/pages/pricing/index.astro @@ -1,68 +1,202 @@ --- import Hero from "@/components/blocks/hero-1.astro"; -import Pricings from "@/components/blocks/pricings-1.astro"; +import { Button } from "@/components/ui/button"; +import { Icon } from "@/components/ui/icon"; +import { Section, SectionContent, SectionGrid, SectionProse } from "@/components/ui/section"; +import { Tile, TileActions, TileContent, TileDescription, TileTitle } from "@/components/ui/tile"; import BaseLayout from "@/layouts/BaseLayout.astro"; --- - + -

A simple model, on purpose

+

Simple pricing, on purpose

Pricing

-

If you need audit‑ready verification, we price by risk and responsibility.

+

Pick the plan that matches your monthly volume. No jargon.

- -

Early access

-

We charge for setup, not for verification clicks.

-

- Setup + governance configuration, integration support, and proof-surface - hardening. Third-party checking should stay cheap. -

-
+
+ + +

Choose a plan

+

Free, monthly, or pay‑as‑you‑go.

+

+ A “transaction” is one published receipt (a trace link) with a yes/no integrity result. +

+
+ + + + + Free + Try it. Share a receipt. See if it fits your workflow. +
+
10
+
transactions / month
+
+
    +
  • Public receipt pages (no login)
  • +
  • HTML fallback for reviewers
  • +
  • Best for testing and low volume
  • +
+
+ + + +
+ + + + Monthly + Pick a monthly volume. The slider shows the price. + +
+
+
Monthly volume
+
100 / month
+
+ + + +
+ 100 + 1,000 + 10,000 + 25,000+ +
+ +
+
+
Price / month
+
$9.99
+
+
+
Effective price
+
$0.10
+
per transaction
+
+
+
+ +
    +
  • Includes everything in Free
  • +
  • Designed for repeated external review
  • +
  • Upgrade or switch to pay‑as‑you‑go anytime
  • +
+
+ + + +
+ + + + Pay‑as‑you‑go + For irregular volume. No monthly commitment. +
+
$0.12
+
per transaction
+
+
    +
  • Same receipt surface
  • +
  • Good for spikes and seasonal workflows
  • +
  • No commitment
  • +
+
+ + + +
+
+ +
+

Notes

+
    +
  • We may introduce fair‑use limits (for example: unusually large files or unusually high download volume) to protect reliability.
  • +
  • We will warn you before applying any new overage pricing.
  • +
+

+ Terms: /terms/ +

+
+
+
+ +
diff --git a/ifttt-src/src/pages/privacy/index.astro b/ifttt-src/src/pages/privacy/index.astro new file mode 100644 index 0000000..893ed03 --- /dev/null +++ b/ifttt-src/src/pages/privacy/index.astro @@ -0,0 +1,48 @@ +--- +import BaseLayout from "@/layouts/BaseLayout.astro"; +--- + + +
+

Privacy

+

+ IF.Trace is designed so third parties can verify integrity without being onboarded into your internal tools. + This page is a short, plain-English summary. +

+ +
+

Short version

+
    +
  • We do not need to see your confidential content to publish a receipt.
  • +
  • Receipts are public pages by design. Do not put secrets in what you publish.
  • +
+ +

What IF.Trace is built to avoid

+
    +
  • Reviewer accounts, logins, or access to your internal systems.
  • +
  • Collecting more personal data than needed to provide a proof surface.
  • +
+ +

What can appear on public receipts

+
    +
  • Integrity hashes and identifiers used to verify bytes.
  • +
  • Links to published outputs (only what you choose to share).
  • +
+ +

What we may store

+
    +
  • Contact emails when you request support or early access.
  • +
  • Technical logs needed to operate the service (for example: request timing and errors).
  • +
+ +

What we do not want

+
    +
  • Private data that does not need to be public.
  • +
  • Secrets embedded in “proof” links.
  • +
+ +

Contact

+

If you have questions about data handling for your workflow, email ds@infrafabric.io.

+
+
+
diff --git a/ifttt-src/src/pages/terms/index.astro b/ifttt-src/src/pages/terms/index.astro new file mode 100644 index 0000000..3a82efe --- /dev/null +++ b/ifttt-src/src/pages/terms/index.astro @@ -0,0 +1,60 @@ +--- +import BaseLayout from "@/layouts/BaseLayout.astro"; +--- + + +
+

Terms

+

+ Plain-English terms while IF.Trace is in early access. The intent is clarity, not fine print. +

+ +
+

What IF.Trace does (and does not) claim

+
    +
  • IF.Trace can support byte-level integrity checks (hashes match = verified).
  • +
  • IF.Trace does not claim compliance, intent, or correctness of interpretation.
  • +
+ +

Definitions

+
    +
  • Transaction: one published receipt (a trace link) with a yes/no integrity result.
  • +
  • Receipt: a public page that publishes the integrity hashes and what they apply to.
  • +
+ +

Pricing (early access)

+

Current public pricing is described on /pricing/.

+
    +
  • Free: 10 transactions per month.
  • +
  • Monthly plans: priced by the selected monthly volume tier.
  • +
  • Pay‑as‑you‑go: $0.12 per transaction.
  • +
+

+ We may change pricing over time. If we introduce new usage limits or overage pricing for existing users, we will + warn you before it applies. +

+ +

Responsible use

+
    +
  • Do not publish confidential content as “proof”. Publish hashes and receipts, not secrets.
  • +
  • Use offline bundles where reviewers cannot rely on live systems.
  • +
  • You are responsible for what you choose to publish or share via IF.Trace links.
  • +
+ +

Fair use and reliability

+

+ IF.Trace is designed to be simple and stable. If usage materially threatens reliability (for example: unusually + large files, unusually high download volume, or abusive automation), we may temporarily rate‑limit or suspend + access. We will aim to contact you first when feasible. +

+ +

Early access

+

+ IF.Trace is evolving. Features may change. Availability is best‑effort unless you have a separate written agreement. +

+ +

Contact

+

Questions or requests: ds@infrafabric.io.

+
+
+
diff --git a/ifttt/404.html b/ifttt/404.html new file mode 100644 index 0000000..7ddb8b3 --- /dev/null +++ b/ifttt/404.html @@ -0,0 +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 diff --git a/ifttt/about/index.html b/ifttt/about/index.html deleted file mode 100644 index 0a2fc69..0000000 --- a/ifttt/about/index.html +++ /dev/null @@ -1,80 +0,0 @@ - IF.Trace — About -
Why this exists - - - - - -

Why this exists

We built the skeleton first.

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

Verification flow diagram (example)

Who / Why / What / Where / When / How

A proof protocol you can show a stranger.

Who

-Teams who need to show proof to someone outside their network. -

Why

-Because “trust us” fails the moment a reviewer asks for receipts. -

What

-Bind source_sha256output_sha256 under a stable 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. -

Traps

How receipts break.

These are common ways “open verification” quietly becomes theater.

  • - - Broken share surface: moving URLs or forcing login turns receipts into theater. -
  • - - Mixing identifiers: shareId is public; trace_id is chain‑of‑custody. Don’t swap them. -
  • - - “Compliance” claims: receipts support audits; they do not guarantee scope or behavior. -
  • - - Unverifiable artifacts: screenshots and PDFs are not gates unless bound to machine‑checkable signals. -
  • - - WAF surprises: some clients can fetch HTML but reject binary downloads—publish HTML views. -

Scope

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

Proves

  • - - Integrity binding: published bytes match receipt hashes. -
  • - - Traceability: reviewers can point to stable, no‑login receipts. -
  • - - Replay: verification works during disputes (offline bundles when needed). -

Does not prove

  • - - Intent, interpretation, or narrative “correctness”. -
  • - - That a control is effective—only that evidence exists and is bound to the record. -
  • - - Compliance scope (people, policy, contracts); receipts are inputs to governance. -
contact \ No newline at end of file diff --git a/ifttt/api/index.html b/ifttt/api/index.html index 2150544..cc52be8 100644 --- a/ifttt/api/index.html +++ b/ifttt/api/index.html @@ -1,57 +1,22 @@ - IF.Trace — Developers / API -
Public receipt surface (no login) - - -

Public receipt surface (no login)

Stable URLs, predictable verification.

-IF.Trace 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. -

Verification flow diagram (example)

What “VERIFIED” means (black/white)

Integrity, not interpretation.

Verified

-The bytes you can download hash to the same values shown on the trace receipt. -

Quantum ready

-A post‑quantum signature receipt can be added (integrity hashes still stand). -

Not implied

Compliance, intent, or correctness of interpretation.

Share surface

Copy/pasteable proof links.

These URLs are stable by design so review packs remain checkable later.

Paths
https://infrafabric.io/static/trace/<shareId>
-https://infrafabric.io/static/dossier/<shareId>
-https://infrafabric.io/static/dossier/<shareId>/download
-https://infrafabric.io/static/pack/<shareId>.md
-https://infrafabric.io/static/review/<shareId>.md
-https://infrafabric.io/static/marketing/<shareId>.md
-https://infrafabric.io/static/source/<source_sha256>.pdf
-        

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 (light/standard/full) and verify without relying on the live site.

Bundle selector (demo)

-Note: some “web fetchers” reject .tar.gz even when browsers/curl succeed. Use 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.

Docs

Review packs

Use the paper update as a reviewer-friendly packet.

contact \ No newline at end of file + 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
+
+                  {
+  "shareId": "6qRgcR01kw_qNo63Dbs_ob9n",
+  "receipt_url": "https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n"
+}
+                
GET /v1/trace/{shareId}
Fetch receipt data

Code

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":"..."}'
+            
Node
              const res = await fetch('https://api.infrafabric.io/v1/trace', {
+  method: 'POST',
+  headers: {
+    Authorization: `Bearer ${process.env.IFTRACE_API_KEY}`,
+    'Content-Type': 'application/json'
+  },
+  body: JSON.stringify({ source_sha256: '...', output_sha256: '...' })
+});
+            

Test

Send a request. See the real response.

Try the endpoint

This sends a real request to https://api.infrafabric.io. Use non-confidential hashes.

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":"","metadata":{"kind":"report-summary","public_title":"Q4 review pack"}}'
contact \ No newline at end of file diff --git a/ifttt/assets/_astro/ApiTryForm.CSrrM9iB.js b/ifttt/assets/_astro/ApiTryForm.CSrrM9iB.js new file mode 100644 index 0000000..dc8cd40 --- /dev/null +++ b/ifttt/assets/_astro/ApiTryForm.CSrrM9iB.js @@ -0,0 +1,5 @@ +import{j as e}from"./jsx-runtime.ClP7wGfN.js";import{r as a}from"./index.DK-fsZOb.js";function j(r){try{return JSON.parse(r)}catch{return null}}function S(r){const[o,p]=a.useState(""),[l,b]=a.useState(""),[n,g]=a.useState(""),[d,w]=a.useState('{"kind":"report-summary","public_title":"Q4 review pack"}'),[i,c]=a.useState(null),[u,h]=a.useState(!1),x=a.useMemo(()=>{const t=j(d),s={source_sha256:l.trim(),output_sha256:n.trim()};return t&&typeof t=="object"&&(s.metadata=t),s},[d,n,l]),m=a.useMemo(()=>{const t=r.baseUrl.replace(/\/+$/,""),s=JSON.stringify(x).replace(/'/g,"'\\''");return`curl -sS -X POST ${t}/v1/trace \\ + -H 'Authorization: Bearer $IFTRACE_API_KEY' \\ + -H 'Content-Type: application/json' \\ + -d '${s}'`},[x,r.baseUrl]);async function y(){h(!0),c(null);try{const t=r.baseUrl.replace(/\/+$/,""),s=await fetch(`${t}/v1/trace`,{method:"POST",headers:{"Content-Type":"application/json",...o.trim()?{Authorization:`Bearer ${o.trim()}`}:{}},body:JSON.stringify(x)}),f=await s.text();c({ok:s.ok,status:s.status,body:f})}catch(t){c({ok:!1,status:0,body:t?.message?String(t.message):String(t)})}finally{h(!1)}}return e.jsxs("div",{className:"rounded-2xl border border-white/10 bg-white/5 p-5 shadow-[0_16px_60px_rgba(0,0,0,0.35)]",children:[e.jsx("div",{className:"text-sm font-semibold text-white/90",children:"Try the endpoint"}),e.jsxs("p",{className:"mt-2 text-sm text-white/70",children:["This sends a real request to ",e.jsx("span",{className:"font-medium text-white/85",children:r.baseUrl}),". Use non-confidential hashes."]}),e.jsxs("div",{className:"mt-4 grid gap-3 sm:grid-cols-2",children:[e.jsxs("label",{className:"grid gap-1 text-xs text-white/70",children:["API key (optional)",e.jsx("input",{value:o,onChange:t=>p(t.target.value),placeholder:"IFTRACE_API_KEY",className:"rounded-xl border border-white/10 bg-slate-950/30 px-3 py-2 text-sm text-white/90 placeholder:text-white/35"})]}),e.jsx("div",{className:"hidden sm:block"}),e.jsxs("label",{className:"grid gap-1 text-xs text-white/70",children:["source_sha256",e.jsx("input",{value:l,onChange:t=>b(t.target.value),placeholder:"64-hex",className:"rounded-xl border border-white/10 bg-slate-950/30 px-3 py-2 text-sm text-white/90 placeholder:text-white/35"})]}),e.jsxs("label",{className:"grid gap-1 text-xs text-white/70",children:["output_sha256",e.jsx("input",{value:n,onChange:t=>g(t.target.value),placeholder:"64-hex",className:"rounded-xl border border-white/10 bg-slate-950/30 px-3 py-2 text-sm text-white/90 placeholder:text-white/35"})]}),e.jsxs("label",{className:"grid gap-1 text-xs text-white/70 sm:col-span-2",children:["metadata (JSON, optional)",e.jsx("textarea",{value:d,onChange:t=>w(t.target.value),rows:3,className:"rounded-xl border border-white/10 bg-slate-950/30 px-3 py-2 font-mono text-xs text-white/90 placeholder:text-white/35"})]})]}),e.jsxs("div",{className:"mt-4 flex flex-col gap-2 sm:flex-row sm:items-center",children:[e.jsx("button",{type:"button",onClick:y,disabled:u,className:"inline-flex items-center justify-center rounded-full bg-primary px-4 py-2 text-sm font-medium text-primary-foreground transition hover:bg-primary/90 disabled:cursor-not-allowed disabled:opacity-60",children:u?"Sending…":"Send request"}),e.jsx("button",{type:"button",onClick:()=>navigator.clipboard?.writeText(m),className:"inline-flex items-center justify-center rounded-full border border-white/12 bg-white/5 px-4 py-2 text-sm font-medium text-white/85 transition hover:bg-white/10 hover:text-white",children:"Copy curl"})]}),e.jsxs("div",{className:"mt-4",children:[e.jsx("div",{className:"text-xs font-medium uppercase tracking-wide text-white/50",children:"curl"}),e.jsx("pre",{className:"mt-2 overflow-x-auto rounded-2xl border border-white/10 bg-slate-950/40 p-4 text-xs text-white/85",children:e.jsx("code",{children:m})})]}),i&&e.jsxs("div",{className:"mt-4",children:[e.jsx("div",{className:"text-xs font-medium uppercase tracking-wide text-white/50",children:"Response"}),e.jsx("pre",{className:"mt-2 overflow-x-auto rounded-2xl border border-white/10 bg-slate-950/40 p-4 text-xs text-white/85",children:e.jsxs("code",{children:[i.ok?"OK":"FAIL"," status=",i.status,` +`,i.body]})})]})]})}export{S as ApiTryForm}; diff --git a/ifttt/assets/_astro/PricingCalculator.AawJrak5.js b/ifttt/assets/_astro/PricingCalculator.AawJrak5.js new file mode 100644 index 0000000..6942d99 --- /dev/null +++ b/ifttt/assets/_astro/PricingCalculator.AawJrak5.js @@ -0,0 +1 @@ +import{j as e}from"./jsx-runtime.ClP7wGfN.js";import{r as h}from"./index.DK-fsZOb.js";function n(t){return Number.isFinite(t)?new Intl.NumberFormat("en-US",{style:"currency",currency:"USD"}).format(t):"$0.00"}function g(t){const i=h.useMemo(()=>[...t.steps].sort((s,r)=>s.receipts-r.receipts),[t.steps]),[l,c]=h.useState(0),a=i[Math.min(Math.max(l,0),i.length-1)],p=a.unitUsd,o=a.receipts,d=a.monthlyUsd,x=o*t.paygUnitUsd,m=x-d;return e.jsxs("div",{className:"rounded-2xl border border-white/10 bg-white/5 p-5 shadow-[0_16px_60px_rgba(0,0,0,0.35)]",children:[e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-end sm:justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-xs font-medium uppercase tracking-wide text-white/50",children:"Monthly volume"}),e.jsxs("div",{className:"mt-1 text-2xl font-semibold tracking-tight text-white/90",children:[o.toLocaleString()," receipts"]})]}),e.jsxs("div",{className:"grid grid-cols-2 gap-3 sm:grid-cols-3",children:[e.jsxs("div",{className:"rounded-xl border border-white/10 bg-slate-950/30 px-3 py-2",children:[e.jsx("div",{className:"text-[11px] text-white/60",children:"Unit price"}),e.jsx("div",{className:"mt-1 text-sm font-semibold text-white/90",children:n(p)})]}),e.jsxs("div",{className:"rounded-xl border border-white/10 bg-slate-950/30 px-3 py-2",children:[e.jsx("div",{className:"text-[11px] text-white/60",children:"Subscription"}),e.jsx("div",{className:"mt-1 text-sm font-semibold text-white/90",children:n(d)})]}),e.jsxs("div",{className:"hidden rounded-xl border border-white/10 bg-slate-950/30 px-3 py-2 sm:block",children:[e.jsx("div",{className:"text-[11px] text-white/60",children:"PAYG equivalent"}),e.jsx("div",{className:"mt-1 text-sm font-semibold text-white/90",children:n(x)})]})]})]}),e.jsxs("div",{className:"mt-5",children:[e.jsx("input",{"aria-label":"Select monthly receipt volume",className:"w-full accent-[oklch(var(--primary))]",type:"range",min:0,max:Math.max(0,i.length-1),step:1,value:l,onChange:s=>c(Number.parseInt(s.target.value,10))}),e.jsx("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:i.map((s,r)=>e.jsx("button",{type:"button",onClick:()=>c(r),className:"rounded-full border px-3 py-1 text-xs font-medium transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/60 focus-visible:ring-offset-2 focus-visible:ring-offset-background "+(r===l?"border-white/25 bg-white/10 text-white":"border-white/10 bg-white/5 text-white/70 hover:bg-white/10 hover:text-white"),children:s.receipts.toLocaleString()},s.receipts))})]}),e.jsx("div",{className:"mt-4 text-sm text-white/70",children:m>0?e.jsxs("span",{children:["At this volume, subscription is about ",e.jsx("span",{className:"font-semibold text-white/90",children:n(m)})," less than PAYG."]}):e.jsx("span",{children:"At this volume, subscription and PAYG are within the same range."})})]})}export{g as PricingCalculator}; diff --git a/ifttt/assets/_astro/arrow-left.DiM2-gGs.svg b/ifttt/assets/_astro/arrow-left.DiM2-gGs.svg deleted file mode 100644 index 587d792..0000000 --- a/ifttt/assets/_astro/arrow-left.DiM2-gGs.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/ifttt/assets/_astro/arrow-right.D3I-UH2K.svg b/ifttt/assets/_astro/arrow-right.D3I-UH2K.svg deleted file mode 100644 index 2fc6d3f..0000000 --- a/ifttt/assets/_astro/arrow-right.D3I-UH2K.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/ifttt/assets/_astro/arrow-up-right.UBhlvV25.svg b/ifttt/assets/_astro/arrow-up-right.UBhlvV25.svg deleted file mode 100644 index 4a45ece..0000000 --- a/ifttt/assets/_astro/arrow-up-right.UBhlvV25.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/ifttt/assets/_astro/badge-check.CVOkXTj5.svg b/ifttt/assets/_astro/badge-check.CVOkXTj5.svg deleted file mode 100644 index a97cda6..0000000 --- a/ifttt/assets/_astro/badge-check.CVOkXTj5.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/ifttt/assets/_astro/banknote.DrpFqxha.svg b/ifttt/assets/_astro/banknote.DrpFqxha.svg deleted file mode 100644 index ce39815..0000000 --- a/ifttt/assets/_astro/banknote.DrpFqxha.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/ifttt/assets/_astro/bot.GU2b7S1y.svg b/ifttt/assets/_astro/bot.GU2b7S1y.svg deleted file mode 100644 index 560b100..0000000 --- a/ifttt/assets/_astro/bot.GU2b7S1y.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/ifttt/assets/_astro/briefcase.Cu2eArfT.svg b/ifttt/assets/_astro/briefcase.Cu2eArfT.svg deleted file mode 100644 index eb62152..0000000 --- a/ifttt/assets/_astro/briefcase.Cu2eArfT.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/ifttt/assets/_astro/building-2.D8BbTWt7.svg b/ifttt/assets/_astro/building-2.D8BbTWt7.svg deleted file mode 100644 index e1f406a..0000000 --- a/ifttt/assets/_astro/building-2.D8BbTWt7.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/ifttt/assets/_astro/check.eLgJmth-.svg b/ifttt/assets/_astro/check.eLgJmth-.svg deleted file mode 100644 index 8a27614..0000000 --- a/ifttt/assets/_astro/check.eLgJmth-.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/ifttt/assets/_astro/chevron-down.b6CoF_R0.svg b/ifttt/assets/_astro/chevron-down.b6CoF_R0.svg deleted file mode 100644 index 78e6c9e..0000000 --- a/ifttt/assets/_astro/chevron-down.b6CoF_R0.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/ifttt/assets/_astro/client.nc8uITnr.js b/ifttt/assets/_astro/client.nc8uITnr.js new file mode 100644 index 0000000..8da1a57 --- /dev/null +++ b/ifttt/assets/_astro/client.nc8uITnr.js @@ -0,0 +1,24 @@ +import{a as Nc,r as Lt}from"./index.DK-fsZOb.js";var xl={},gi={exports:{}},we={},wi={exports:{}},ki={};/** + * @license React + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ya;function zc(){return ya||(ya=1,(function(w){function L(k,P){var C=k.length;k.push(P);e:for(;0>>1,U=k[F];if(0>>1;Fde(Pn,C))Aede(qt,Pn)?(k[F]=qt,k[Ae]=C,F=Ae):(k[F]=Pn,k[Ue]=C,F=Ue);else if(Aede(qt,C))k[F]=qt,k[Ae]=C,F=Ae;else break e}}return P}function de(k,P){var C=k.sortIndex-P.sortIndex;return C!==0?C:k.id-P.id}if(typeof performance=="object"&&typeof performance.now=="function"){var Oe=performance;w.unstable_now=function(){return Oe.now()}}else{var _e=Date,pe=_e.now();w.unstable_now=function(){return _e.now()-pe}}var te=[],Ne=[],Yt=1,G=null,W=3,Fe=!1,ne=!1,Q=!1,$=typeof setTimeout=="function"?setTimeout:null,$t=typeof clearTimeout=="function"?clearTimeout:null,Xt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Rt(k){for(var P=p(Ne);P!==null;){if(P.callback===null)ce(Ne);else if(P.startTime<=k)ce(Ne),P.sortIndex=P.expirationTime,L(te,P);else break;P=p(Ne)}}function ke(k){if(Q=!1,Rt(k),!ne)if(p(te)!==null)ne=!0,ze(st);else{var P=p(Ne);P!==null&&Jt(ke,P.startTime-k)}}function st(k,P){ne=!1,Q&&(Q=!1,$t(qe),qe=-1),Fe=!0;var C=W;try{for(Rt(P),G=p(te);G!==null&&(!(G.expirationTime>P)||k&&!Nn());){var F=G.callback;if(typeof F=="function"){G.callback=null,W=G.priorityLevel;var U=F(G.expirationTime<=P);P=w.unstable_now(),typeof U=="function"?G.callback=U:G===p(te)&&ce(te),Rt(P)}else ce(te);G=p(te)}if(G!==null)var at=!0;else{var Ue=p(Ne);Ue!==null&&Jt(ke,Ue.startTime-P),at=!1}return at}finally{G=null,W=C,Fe=!1}}var Ie=!1,je=null,qe=-1,Gt=5,_n=-1;function Nn(){return!(w.unstable_now()-_nk||125F?(k.sortIndex=C,L(Ne,k),p(te)===null&&k===p(Ne)&&(Q?($t(qe),qe=-1):Q=!0,Jt(ke,C-F))):(k.sortIndex=U,L(te,k),ne||Fe||(ne=!0,ze(st))),k},w.unstable_shouldYield=Nn,w.unstable_wrapCallback=function(k){var P=W;return function(){var C=W;W=P;try{return k.apply(this,arguments)}finally{W=C}}}})(ki)),ki}var ga;function Pc(){return ga||(ga=1,wi.exports=zc()),wi.exports}/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var wa;function Tc(){if(wa)return we;wa=1;var w=Nc(),L=Pc();function p(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),te=Object.prototype.hasOwnProperty,Ne=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Yt={},G={};function W(e){return te.call(G,e)?!0:te.call(Yt,e)?!1:Ne.test(e)?G[e]=!0:(Yt[e]=!0,!1)}function Fe(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function ne(e,t,n,r){if(t===null||typeof t>"u"||Fe(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Q(e,t,n,r,l,u,i){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=l,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=u,this.removeEmptyString=i}var $={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){$[e]=new Q(e,0,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];$[t]=new Q(t,1,!1,e[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){$[e]=new Q(e,2,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){$[e]=new Q(e,2,!1,e,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){$[e]=new Q(e,3,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){$[e]=new Q(e,3,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){$[e]=new Q(e,4,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){$[e]=new Q(e,6,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){$[e]=new Q(e,5,!1,e.toLowerCase(),null,!1,!1)});var $t=/[\-:]([a-z])/g;function Xt(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace($t,Xt);$[t]=new Q(t,1,!1,e,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace($t,Xt);$[t]=new Q(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace($t,Xt);$[t]=new Q(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){$[e]=new Q(e,1,!1,e.toLowerCase(),null,!1,!1)}),$.xlinkHref=new Q("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){$[e]=new Q(e,1,!1,e.toLowerCase(),null,!0,!0)});function Rt(e,t,n,r){var l=$.hasOwnProperty(t)?$[t]:null;(l!==null?l.type!==0:r||!(2o||l[i]!==u[o]){var s=` +`+l[i].replace(" at new "," at ");return e.displayName&&s.includes("")&&(s=s.replace("",e.displayName)),s}while(1<=i&&0<=o);break}}}finally{at=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?U(e):""}function Pn(e){switch(e.tag){case 5:return U(e.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return e=Ue(e.type,!1),e;case 11:return e=Ue(e.type.render,!1),e;case 1:return e=Ue(e.type,!0),e;default:return""}}function Ae(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case je:return"Fragment";case Ie:return"Portal";case Gt:return"Profiler";case qe:return"StrictMode";case be:return"Suspense";case Zt:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Nn:return(e.displayName||"Context")+".Consumer";case _n:return(e._context.displayName||"Context")+".Provider";case Mt:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case zn:return t=e.displayName||null,t!==null?t:Ae(e.type)||"Memo";case ze:t=e._payload,e=e._init;try{return Ae(e(t))}catch{}}return null}function qt(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ae(t);case 8:return t===qe?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ft(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Si(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Pa(e){var t=Si(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var l=n.get,u=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return l.call(this)},set:function(i){r=""+i,u.call(this,i)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(i){r=""+i},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function mr(e){e._valueTracker||(e._valueTracker=Pa(e))}function Ei(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Si(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function vr(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function _l(e,t){var n=t.checked;return C({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ci(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=ft(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function xi(e,t){t=t.checked,t!=null&&Rt(e,"checked",t,!1)}function Nl(e,t){xi(e,t);var n=ft(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?zl(e,t.type,n):t.hasOwnProperty("defaultValue")&&zl(e,t.type,ft(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function _i(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function zl(e,t,n){(t!=="number"||vr(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Tn=Array.isArray;function bt(e,t,n,r){if(e=e.options,t){t={};for(var l=0;l"+t.valueOf().toString()+"",t=hr.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ln(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Rn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ta=["Webkit","ms","Moz","O"];Object.keys(Rn).forEach(function(e){Ta.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Rn[t]=Rn[e]})});function Ri(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Rn.hasOwnProperty(e)&&Rn[e]?(""+t).trim():t+"px"}function Mi(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,l=Ri(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,l):e[n]=l}}var La=C({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ll(e,t){if(t){if(La[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(p(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(p(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(p(61))}if(t.style!=null&&typeof t.style!="object")throw Error(p(62))}}function Rl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ml=null;function Dl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Ol=null,en=null,tn=null;function Di(e){if(e=bn(e)){if(typeof Ol!="function")throw Error(p(280));var t=e.stateNode;t&&(t=Ar(t),Ol(e.stateNode,e.type,t))}}function Oi(e){en?tn?tn.push(e):tn=[e]:en=e}function Fi(){if(en){var e=en,t=tn;if(tn=en=null,Di(e),t)for(e=0;e>>=0,e===0?32:31-(Ha(e)/Ba|0)|0}var Sr=64,Er=4194304;function Fn(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Cr(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,l=e.suspendedLanes,u=e.pingedLanes,i=n&268435455;if(i!==0){var o=i&~l;o!==0?r=Fn(o):(u&=i,u!==0&&(r=Fn(u)))}else i=n&~l,i!==0?r=Fn(i):u!==0&&(r=Fn(u));if(r===0)return 0;if(t!==0&&t!==r&&(t&l)===0&&(l=r&-r,u=t&-t,l>=u||l===16&&(u&4194240)!==0))return t;if((r&4)!==0&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function In(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-Ve(t),e[t]=n}function Ya(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Qn),ao=" ",fo=!1;function co(e,t){switch(e){case"keyup":return Sf.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function po(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var ln=!1;function Cf(e,t){switch(e){case"compositionend":return po(t);case"keypress":return t.which!==32?null:(fo=!0,ao);case"textInput":return e=t.data,e===ao&&fo?null:e;default:return null}}function xf(e,t){if(ln)return e==="compositionend"||!ql&&co(e,t)?(e=ro(),Pr=Yl=vt=null,ln=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=ko(n)}}function Eo(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Eo(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Co(){for(var e=window,t=vr();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=vr(e.document)}return t}function tu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Df(e){var t=Co(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Eo(n.ownerDocument.documentElement,n)){if(r!==null&&tu(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var l=n.textContent.length,u=Math.min(r.start,l);r=r.end===void 0?u:Math.min(r.end,l),!e.extend&&u>r&&(l=r,r=u,u=l),l=So(n,u);var i=So(n,r);l&&i&&(e.rangeCount!==1||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),e.removeAllRanges(),u>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,un=null,nu=null,Xn=null,ru=!1;function xo(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ru||un==null||un!==vr(r)||(r=un,"selectionStart"in r&&tu(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Xn&&$n(Xn,r)||(Xn=r,r=Ir(nu,"onSelect"),0cn||(e.current=vu[cn],vu[cn]=null,cn--)}function O(e,t){cn++,vu[cn]=e.current,e.current=t}var wt={},ue=gt(wt),me=gt(!1),Ft=wt;function dn(e,t){var n=e.type.contextTypes;if(!n)return wt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var l={},u;for(u in n)l[u]=t[u];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=l),l}function ve(e){return e=e.childContextTypes,e!=null}function Vr(){j(me),j(ue)}function Ao(e,t,n){if(ue.current!==wt)throw Error(p(168));O(ue,t),O(me,n)}function Vo(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var l in r)if(!(l in t))throw Error(p(108,qt(e)||"Unknown",l));return C({},n,r)}function Hr(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||wt,Ft=ue.current,O(ue,e),O(me,me.current),!0}function Ho(e,t,n){var r=e.stateNode;if(!r)throw Error(p(169));n?(e=Vo(e,t,Ft),r.__reactInternalMemoizedMergedChildContext=e,j(me),j(ue),O(ue,e)):j(me),O(me,n)}var tt=null,Br=!1,hu=!1;function Bo(e){tt===null?tt=[e]:tt.push(e)}function Kf(e){Br=!0,Bo(e)}function kt(){if(!hu&&tt!==null){hu=!0;var e=0,t=D;try{var n=tt;for(D=1;e>=i,l-=i,nt=1<<32-Ve(t)+l|n<T?(ee=z,z=null):ee=z.sibling;var M=m(f,z,c[T],y);if(M===null){z===null&&(z=ee);break}e&&z&&M.alternate===null&&t(f,z),a=u(M,a,T),N===null?_=M:N.sibling=M,N=M,z=ee}if(T===c.length)return n(f,z),A&&jt(f,T),_;if(z===null){for(;TT?(ee=z,z=null):ee=z.sibling;var Tt=m(f,z,M.value,y);if(Tt===null){z===null&&(z=ee);break}e&&z&&Tt.alternate===null&&t(f,z),a=u(Tt,a,T),N===null?_=Tt:N.sibling=Tt,N=Tt,z=ee}if(M.done)return n(f,z),A&&jt(f,T),_;if(z===null){for(;!M.done;T++,M=c.next())M=h(f,M.value,y),M!==null&&(a=u(M,a,T),N===null?_=M:N.sibling=M,N=M);return A&&jt(f,T),_}for(z=r(f,z);!M.done;T++,M=c.next())M=g(z,f,T,M.value,y),M!==null&&(e&&M.alternate!==null&&z.delete(M.key===null?T:M.key),a=u(M,a,T),N===null?_=M:N.sibling=M,N=M);return e&&z.forEach(function(_c){return t(f,_c)}),A&&jt(f,T),_}function Y(f,a,c,y){if(typeof c=="object"&&c!==null&&c.type===je&&c.key===null&&(c=c.props.children),typeof c=="object"&&c!==null){switch(c.$$typeof){case st:e:{for(var _=c.key,N=a;N!==null;){if(N.key===_){if(_=c.type,_===je){if(N.tag===7){n(f,N.sibling),a=l(N,c.props.children),a.return=f,f=a;break e}}else if(N.elementType===_||typeof _=="object"&&_!==null&&_.$$typeof===ze&&Xo(_)===N.type){n(f,N.sibling),a=l(N,c.props),a.ref=er(f,N,c),a.return=f,f=a;break e}n(f,N);break}else t(f,N);N=N.sibling}c.type===je?(a=Kt(c.props.children,f.mode,y,c.key),a.return=f,f=a):(y=hl(c.type,c.key,c.props,null,f.mode,y),y.ref=er(f,a,c),y.return=f,f=y)}return i(f);case Ie:e:{for(N=c.key;a!==null;){if(a.key===N)if(a.tag===4&&a.stateNode.containerInfo===c.containerInfo&&a.stateNode.implementation===c.implementation){n(f,a.sibling),a=l(a,c.children||[]),a.return=f,f=a;break e}else{n(f,a);break}else t(f,a);a=a.sibling}a=pi(c,f.mode,y),a.return=f,f=a}return i(f);case ze:return N=c._init,Y(f,a,N(c._payload),y)}if(Tn(c))return E(f,a,c,y);if(P(c))return x(f,a,c,y);Yr(f,c)}return typeof c=="string"&&c!==""||typeof c=="number"?(c=""+c,a!==null&&a.tag===6?(n(f,a.sibling),a=l(a,c),a.return=f,f=a):(n(f,a),a=di(c,f.mode,y),a.return=f,f=a),i(f)):n(f,a)}return Y}var hn=Go(!0),Zo=Go(!1),$r=gt(null),Xr=null,yn=null,Eu=null;function Cu(){Eu=yn=Xr=null}function xu(e){var t=$r.current;j($r),e._currentValue=t}function _u(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function gn(e,t){Xr=e,Eu=yn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(he=!0),e.firstContext=null)}function Le(e){var t=e._currentValue;if(Eu!==e)if(e={context:e,memoizedValue:t,next:null},yn===null){if(Xr===null)throw Error(p(308));yn=e,Xr.dependencies={lanes:0,firstContext:e}}else yn=yn.next=e;return t}var Ut=null;function Nu(e){Ut===null?Ut=[e]:Ut.push(e)}function Jo(e,t,n,r){var l=t.interleaved;return l===null?(n.next=n,Nu(t)):(n.next=l.next,l.next=n),t.interleaved=n,lt(e,r)}function lt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var St=!1;function zu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function qo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function ut(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Et(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,(R&2)!==0){var l=r.pending;return l===null?t.next=t:(t.next=l.next,l.next=t),r.pending=t,lt(e,n)}return l=r.interleaved,l===null?(t.next=t,Nu(r)):(t.next=l.next,l.next=t),r.interleaved=t,lt(e,n)}function Gr(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Hl(e,n)}}function bo(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var l=null,u=null;if(n=n.firstBaseUpdate,n!==null){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};u===null?l=u=i:u=u.next=i,n=n.next}while(n!==null);u===null?l=u=t:u=u.next=t}else l=u=t;n={baseState:r.baseState,firstBaseUpdate:l,lastBaseUpdate:u,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Zr(e,t,n,r){var l=e.updateQueue;St=!1;var u=l.firstBaseUpdate,i=l.lastBaseUpdate,o=l.shared.pending;if(o!==null){l.shared.pending=null;var s=o,d=s.next;s.next=null,i===null?u=d:i.next=d,i=s;var v=e.alternate;v!==null&&(v=v.updateQueue,o=v.lastBaseUpdate,o!==i&&(o===null?v.firstBaseUpdate=d:o.next=d,v.lastBaseUpdate=s))}if(u!==null){var h=l.baseState;i=0,v=d=s=null,o=u;do{var m=o.lane,g=o.eventTime;if((r&m)===m){v!==null&&(v=v.next={eventTime:g,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var E=e,x=o;switch(m=t,g=n,x.tag){case 1:if(E=x.payload,typeof E=="function"){h=E.call(g,h,m);break e}h=E;break e;case 3:E.flags=E.flags&-65537|128;case 0:if(E=x.payload,m=typeof E=="function"?E.call(g,h,m):E,m==null)break e;h=C({},h,m);break e;case 2:St=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,m=l.effects,m===null?l.effects=[o]:m.push(o))}else g={eventTime:g,lane:m,tag:o.tag,payload:o.payload,callback:o.callback,next:null},v===null?(d=v=g,s=h):v=v.next=g,i|=m;if(o=o.next,o===null){if(o=l.shared.pending,o===null)break;m=o,o=m.next,m.next=null,l.lastBaseUpdate=m,l.shared.pending=null}}while(!0);if(v===null&&(s=h),l.baseState=s,l.firstBaseUpdate=d,l.lastBaseUpdate=v,t=l.shared.interleaved,t!==null){l=t;do i|=l.lane,l=l.next;while(l!==t)}else u===null&&(l.shared.lanes=0);Ht|=i,e.lanes=i,e.memoizedState=h}}function es(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=Mu.transition;Mu.transition={};try{e(!1),t()}finally{D=n,Mu.transition=r}}function ws(){return Re().memoizedState}function Gf(e,t,n){var r=Nt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},ks(e))Ss(t,n);else if(n=Jo(e,t,n,r),n!==null){var l=fe();Ye(n,e,r,l),Es(n,t,r)}}function Zf(e,t,n){var r=Nt(e),l={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(ks(e))Ss(t,l);else{var u=e.alternate;if(e.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var i=t.lastRenderedState,o=u(i,n);if(l.hasEagerState=!0,l.eagerState=o,He(o,i)){var s=t.interleaved;s===null?(l.next=l,Nu(t)):(l.next=s.next,s.next=l),t.interleaved=l;return}}catch{}finally{}n=Jo(e,t,l,r),n!==null&&(l=fe(),Ye(n,e,r,l),Es(n,t,r))}}function ks(e){var t=e.alternate;return e===H||t!==null&&t===H}function Ss(e,t){lr=br=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Es(e,t,n){if((n&4194240)!==0){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Hl(e,n)}}var nl={readContext:Le,useCallback:ie,useContext:ie,useEffect:ie,useImperativeHandle:ie,useInsertionEffect:ie,useLayoutEffect:ie,useMemo:ie,useReducer:ie,useRef:ie,useState:ie,useDebugValue:ie,useDeferredValue:ie,useTransition:ie,useMutableSource:ie,useSyncExternalStore:ie,useId:ie,unstable_isNewReconciler:!1},Jf={readContext:Le,useCallback:function(e,t){return Ze().memoizedState=[e,t===void 0?null:t],e},useContext:Le,useEffect:cs,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,el(4194308,4,ms.bind(null,t,e),n)},useLayoutEffect:function(e,t){return el(4194308,4,e,t)},useInsertionEffect:function(e,t){return el(4,2,e,t)},useMemo:function(e,t){var n=Ze();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ze();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Gf.bind(null,H,e),[r.memoizedState,e]},useRef:function(e){var t=Ze();return e={current:e},t.memoizedState=e},useState:as,useDebugValue:Au,useDeferredValue:function(e){return Ze().memoizedState=e},useTransition:function(){var e=as(!1),t=e[0];return e=Xf.bind(null,e[1]),Ze().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=H,l=Ze();if(A){if(n===void 0)throw Error(p(407));n=n()}else{if(n=t(),b===null)throw Error(p(349));(Vt&30)!==0||ls(r,t,n)}l.memoizedState=n;var u={value:n,getSnapshot:t};return l.queue=u,cs(is.bind(null,r,u,e),[e]),r.flags|=2048,or(9,us.bind(null,r,u,n,t),void 0,null),n},useId:function(){var e=Ze(),t=b.identifierPrefix;if(A){var n=rt,r=nt;n=(r&~(1<<32-Ve(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=ur++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=i.createElement(n,{is:r.is}):(e=i.createElement(n),n==="select"&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,n),e[Xe]=t,e[qn]=r,Bs(e,t,!1,!1),t.stateNode=e;e:{switch(i=Rl(n,r),n){case"dialog":I("cancel",e),I("close",e),l=r;break;case"iframe":case"object":case"embed":I("load",e),l=r;break;case"video":case"audio":for(l=0;lCn&&(t.flags|=128,r=!0,sr(u,!1),t.lanes=4194304)}else{if(!r)if(e=Jr(i),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),sr(u,!0),u.tail===null&&u.tailMode==="hidden"&&!i.alternate&&!A)return oe(t),null}else 2*K()-u.renderingStartTime>Cn&&n!==1073741824&&(t.flags|=128,r=!0,sr(u,!1),t.lanes=4194304);u.isBackwards?(i.sibling=t.child,t.child=i):(n=u.last,n!==null?n.sibling=i:t.child=i,u.last=i)}return u.tail!==null?(t=u.tail,u.rendering=t,u.tail=t.sibling,u.renderingStartTime=K(),t.sibling=null,n=V.current,O(V,r?n&1|2:n&1),t):(oe(t),null);case 22:case 23:return ai(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&(t.mode&1)!==0?(xe&1073741824)!==0&&(oe(t),t.subtreeFlags&6&&(t.flags|=8192)):oe(t),null;case 24:return null;case 25:return null}throw Error(p(156,t.tag))}function uc(e,t){switch(gu(t),t.tag){case 1:return ve(t.type)&&Vr(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return wn(),j(me),j(ue),Ru(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 5:return Tu(t),null;case 13:if(j(V),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(p(340));vn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return j(V),null;case 4:return wn(),null;case 10:return xu(t.type._context),null;case 22:case 23:return ai(),null;case 24:return null;default:return null}}var il=!1,se=!1,ic=typeof WeakSet=="function"?WeakSet:Set,S=null;function Sn(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){B(e,t,r)}else n.current=null}function Ju(e,t,n){try{n()}catch(r){B(e,t,r)}}var Ks=!1;function oc(e,t){if(au=Nr,e=Co(),tu(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var l=r.anchorOffset,u=r.focusNode;r=r.focusOffset;try{n.nodeType,u.nodeType}catch{n=null;break e}var i=0,o=-1,s=-1,d=0,v=0,h=e,m=null;t:for(;;){for(var g;h!==n||l!==0&&h.nodeType!==3||(o=i+l),h!==u||r!==0&&h.nodeType!==3||(s=i+r),h.nodeType===3&&(i+=h.nodeValue.length),(g=h.firstChild)!==null;)m=h,h=g;for(;;){if(h===e)break t;if(m===n&&++d===l&&(o=i),m===u&&++v===r&&(s=i),(g=h.nextSibling)!==null)break;h=m,m=h.parentNode}h=g}n=o===-1||s===-1?null:{start:o,end:s}}else n=null}n=n||{start:0,end:0}}else n=null;for(fu={focusedElem:e,selectionRange:n},Nr=!1,S=t;S!==null;)if(t=S,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,S=e;else for(;S!==null;){t=S;try{var E=t.alternate;if((t.flags&1024)!==0)switch(t.tag){case 0:case 11:case 15:break;case 1:if(E!==null){var x=E.memoizedProps,Y=E.memoizedState,f=t.stateNode,a=f.getSnapshotBeforeUpdate(t.elementType===t.type?x:We(t.type,x),Y);f.__reactInternalSnapshotBeforeUpdate=a}break;case 3:var c=t.stateNode.containerInfo;c.nodeType===1?c.textContent="":c.nodeType===9&&c.documentElement&&c.removeChild(c.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163))}}catch(y){B(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,S=e;break}S=t.return}return E=Ks,Ks=!1,E}function ar(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var l=r=r.next;do{if((l.tag&e)===e){var u=l.destroy;l.destroy=void 0,u!==void 0&&Ju(t,n,u)}l=l.next}while(l!==r)}}function ol(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function qu(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Ys(e){var t=e.alternate;t!==null&&(e.alternate=null,Ys(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Xe],delete t[qn],delete t[mu],delete t[Wf],delete t[Qf])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function $s(e){return e.tag===5||e.tag===3||e.tag===4}function Xs(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||$s(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function bu(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Ur));else if(r!==4&&(e=e.child,e!==null))for(bu(e,t,n),e=e.sibling;e!==null;)bu(e,t,n),e=e.sibling}function ei(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(ei(e,t,n),e=e.sibling;e!==null;)ei(e,t,n),e=e.sibling}var re=null,Qe=!1;function Ct(e,t,n){for(n=n.child;n!==null;)Gs(e,t,n),n=n.sibling}function Gs(e,t,n){if($e&&typeof $e.onCommitFiberUnmount=="function")try{$e.onCommitFiberUnmount(kr,n)}catch{}switch(n.tag){case 5:se||Sn(n,t);case 6:var r=re,l=Qe;re=null,Ct(e,t,n),re=r,Qe=l,re!==null&&(Qe?(e=re,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):re.removeChild(n.stateNode));break;case 18:re!==null&&(Qe?(e=re,n=n.stateNode,e.nodeType===8?pu(e.parentNode,n):e.nodeType===1&&pu(e,n),Hn(e)):pu(re,n.stateNode));break;case 4:r=re,l=Qe,re=n.stateNode.containerInfo,Qe=!0,Ct(e,t,n),re=r,Qe=l;break;case 0:case 11:case 14:case 15:if(!se&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){l=r=r.next;do{var u=l,i=u.destroy;u=u.tag,i!==void 0&&((u&2)!==0||(u&4)!==0)&&Ju(n,t,i),l=l.next}while(l!==r)}Ct(e,t,n);break;case 1:if(!se&&(Sn(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(o){B(n,t,o)}Ct(e,t,n);break;case 21:Ct(e,t,n);break;case 22:n.mode&1?(se=(r=se)||n.memoizedState!==null,Ct(e,t,n),se=r):Ct(e,t,n);break;default:Ct(e,t,n)}}function Zs(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new ic),t.forEach(function(r){var l=hc.bind(null,e,r);n.has(r)||(n.add(r),r.then(l,l))})}}function Ke(e,t){var n=t.deletions;if(n!==null)for(var r=0;rl&&(l=i),r&=~u}if(r=l,r=K()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*ac(r/1960))-r,10e?16:e,_t===null)var r=!1;else{if(e=_t,_t=null,dl=0,(R&6)!==0)throw Error(p(331));var l=R;for(R|=4,S=e.current;S!==null;){var u=S,i=u.child;if((S.flags&16)!==0){var o=u.deletions;if(o!==null){for(var s=0;sK()-ri?Wt(e,0):ni|=n),ge(e,t)}function aa(e,t){t===0&&((e.mode&1)===0?t=1:(t=Er,Er<<=1,(Er&130023424)===0&&(Er=4194304)));var n=fe();e=lt(e,t),e!==null&&(In(e,t,n),ge(e,n))}function vc(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),aa(e,n)}function hc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;l!==null&&(n=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(p(314))}r!==null&&r.delete(t),aa(e,n)}var fa;fa=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||me.current)he=!0;else{if((e.lanes&n)===0&&(t.flags&128)===0)return he=!1,rc(e,t,n);he=(e.flags&131072)!==0}else he=!1,A&&(t.flags&1048576)!==0&&Wo(t,Qr,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;ul(e,t),e=t.pendingProps;var l=dn(t,ue.current);gn(t,n),l=Ou(null,t,r,e,l,n);var u=Fu();return t.flags|=1,typeof l=="object"&&l!==null&&typeof l.render=="function"&&l.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ve(r)?(u=!0,Hr(t)):u=!1,t.memoizedState=l.state!==null&&l.state!==void 0?l.state:null,zu(t),l.updater=rl,t.stateNode=l,l._reactInternals=t,Hu(t,r,e,n),t=Ku(null,t,r,!0,u,n)):(t.tag=0,A&&u&&yu(t),ae(null,t,l,n),t=t.child),t;case 16:r=t.elementType;e:{switch(ul(e,t),e=t.pendingProps,l=r._init,r=l(r._payload),t.type=r,l=t.tag=gc(r),e=We(r,e),l){case 0:t=Qu(null,t,r,e,n);break e;case 1:t=Is(null,t,r,e,n);break e;case 11:t=Rs(null,t,r,e,n);break e;case 14:t=Ms(null,t,r,We(r.type,e),n);break e}throw Error(p(306,r,""))}return t;case 0:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:We(r,l),Qu(e,t,r,l,n);case 1:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:We(r,l),Is(e,t,r,l,n);case 3:e:{if(js(t),e===null)throw Error(p(387));r=t.pendingProps,u=t.memoizedState,l=u.element,qo(e,t),Zr(t,r,null,n);var i=t.memoizedState;if(r=i.element,u.isDehydrated)if(u={element:r,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},t.updateQueue.baseState=u,t.memoizedState=u,t.flags&256){l=kn(Error(p(423)),t),t=Us(e,t,r,n,l);break e}else if(r!==l){l=kn(Error(p(424)),t),t=Us(e,t,r,n,l);break e}else for(Ce=yt(t.stateNode.containerInfo.firstChild),Ee=t,A=!0,Be=null,n=Zo(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(vn(),r===l){t=it(e,t,n);break e}ae(e,t,r,n)}t=t.child}return t;case 5:return ts(t),e===null&&ku(t),r=t.type,l=t.pendingProps,u=e!==null?e.memoizedProps:null,i=l.children,cu(r,l)?i=null:u!==null&&cu(r,u)&&(t.flags|=32),Fs(e,t),ae(e,t,i,n),t.child;case 6:return e===null&&ku(t),null;case 13:return As(e,t,n);case 4:return Pu(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=hn(t,null,r,n):ae(e,t,r,n),t.child;case 11:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:We(r,l),Rs(e,t,r,l,n);case 7:return ae(e,t,t.pendingProps,n),t.child;case 8:return ae(e,t,t.pendingProps.children,n),t.child;case 12:return ae(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,l=t.pendingProps,u=t.memoizedProps,i=l.value,O($r,r._currentValue),r._currentValue=i,u!==null)if(He(u.value,i)){if(u.children===l.children&&!me.current){t=it(e,t,n);break e}}else for(u=t.child,u!==null&&(u.return=t);u!==null;){var o=u.dependencies;if(o!==null){i=u.child;for(var s=o.firstContext;s!==null;){if(s.context===r){if(u.tag===1){s=ut(-1,n&-n),s.tag=2;var d=u.updateQueue;if(d!==null){d=d.shared;var v=d.pending;v===null?s.next=s:(s.next=v.next,v.next=s),d.pending=s}}u.lanes|=n,s=u.alternate,s!==null&&(s.lanes|=n),_u(u.return,n,t),o.lanes|=n;break}s=s.next}}else if(u.tag===10)i=u.type===t.type?null:u.child;else if(u.tag===18){if(i=u.return,i===null)throw Error(p(341));i.lanes|=n,o=i.alternate,o!==null&&(o.lanes|=n),_u(i,n,t),i=u.sibling}else i=u.child;if(i!==null)i.return=u;else for(i=u;i!==null;){if(i===t){i=null;break}if(u=i.sibling,u!==null){u.return=i.return,i=u;break}i=i.return}u=i}ae(e,t,l.children,n),t=t.child}return t;case 9:return l=t.type,r=t.pendingProps.children,gn(t,n),l=Le(l),r=r(l),t.flags|=1,ae(e,t,r,n),t.child;case 14:return r=t.type,l=We(r,t.pendingProps),l=We(r.type,l),Ms(e,t,r,l,n);case 15:return Ds(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,l=t.pendingProps,l=t.elementType===r?l:We(r,l),ul(e,t),t.tag=1,ve(r)?(e=!0,Hr(t)):e=!1,gn(t,n),xs(t,r,l),Hu(t,r,l,n),Ku(null,t,r,!0,e,n);case 19:return Hs(e,t,n);case 22:return Os(e,t,n)}throw Error(p(156,t.tag))};function ca(e,t){return Wi(e,t)}function yc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function De(e,t,n,r){return new yc(e,t,n,r)}function ci(e){return e=e.prototype,!(!e||!e.isReactComponent)}function gc(e){if(typeof e=="function")return ci(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Mt)return 11;if(e===zn)return 14}return 2}function Pt(e,t){var n=e.alternate;return n===null?(n=De(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function hl(e,t,n,r,l,u){var i=2;if(r=e,typeof e=="function")ci(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case je:return Kt(n.children,l,u,t);case qe:i=8,l|=8;break;case Gt:return e=De(12,n,t,l|2),e.elementType=Gt,e.lanes=u,e;case be:return e=De(13,n,t,l),e.elementType=be,e.lanes=u,e;case Zt:return e=De(19,n,t,l),e.elementType=Zt,e.lanes=u,e;case Jt:return yl(n,l,u,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case _n:i=10;break e;case Nn:i=9;break e;case Mt:i=11;break e;case zn:i=14;break e;case ze:i=16,r=null;break e}throw Error(p(130,e==null?e:typeof e,""))}return t=De(i,n,t,l),t.elementType=e,t.type=r,t.lanes=u,t}function Kt(e,t,n,r){return e=De(7,e,r,t),e.lanes=n,e}function yl(e,t,n,r){return e=De(22,e,r,t),e.elementType=Jt,e.lanes=n,e.stateNode={isHidden:!1},e}function di(e,t,n){return e=De(6,e,null,t),e.lanes=n,e}function pi(e,t,n){return t=De(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function wc(e,t,n,r,l){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Vl(0),this.expirationTimes=Vl(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vl(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function mi(e,t,n,r,l,u,i,o,s){return e=new wc(e,t,n,o,s),t===1?(t=1,u===!0&&(t|=8)):t=0,u=De(3,null,null,t),e.current=u,u.stateNode=e,u.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},zu(u),e}function kc(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(w)}catch(L){console.error(L)}}return w(),gi.exports=Tc(),gi.exports}var Sa;function Rc(){if(Sa)return xl;Sa=1;var w=Lc();return xl.createRoot=w.createRoot,xl.hydrateRoot=w.hydrateRoot,xl}var Ea=Rc();const _a=({value:w,name:L,hydrate:p=!0})=>{if(!w)return null;const ce=p?"astro-slot":"astro-static-slot";return Lt.createElement(ce,{name:L,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:w}})};_a.shouldComponentUpdate=()=>!1;var Na=_a;function Mc(w){for(const L in w)if(L.startsWith("__reactContainer"))return L}function za(w){let L={};for(const p of w.attributes)L[p.name]=p.value;return w.firstChild===null?Lt.createElement(w.localName,L):Lt.createElement(w.localName,L,Array.from(w.childNodes).map(p=>p.nodeType===Node.TEXT_NODE?p.data:p.nodeType===Node.ELEMENT_NODE?za(p):void 0).filter(p=>!!p))}function Dc(w,L){if(L&&w){let p=[],ce=document.createElement("template");ce.innerHTML=w;for(let de of ce.content.children)p.push(za(de));return p}else return w?Lt.createElement(Na,{value:w}):void 0}let Ca=new WeakMap;const xa=(w,L)=>{let p=Ca.get(w);return p||(p=L(),Ca.set(w,p)),p};var Fc=w=>(L,p,{default:ce,...de},{client:Oe})=>{if(!w.hasAttribute("ssr"))return;const _e=w.getAttribute("data-action-key"),pe=w.getAttribute("data-action-name"),te=w.getAttribute("data-action-result"),Ne=_e&&pe&&te?[JSON.parse(te),_e,pe]:void 0,Yt={identifierPrefix:w.getAttribute("prefix"),formState:Ne};for(const[Fe,ne]of Object.entries(de))p[Fe]=Lt.createElement(Na,{value:ne,name:Fe});const G=Lt.createElement(L,p,Dc(ce,w.hasAttribute("data-react-children"))),W=Mc(w);if(W&&delete w[W],Oe==="only")return Lt.startTransition(()=>{xa(w,()=>{const ne=Ea.createRoot(w);return w.addEventListener("astro:unmount",()=>ne.unmount(),{once:!0}),ne}).render(G)});Lt.startTransition(()=>{xa(w,()=>{const ne=Ea.hydrateRoot(w,G,Yt);return w.addEventListener("astro:unmount",()=>ne.unmount(),{once:!0}),ne}).render(G)})};export{Fc as default}; diff --git a/ifttt/assets/_astro/cloud.DoW-st4Z.svg b/ifttt/assets/_astro/cloud.DoW-st4Z.svg deleted file mode 100644 index 662877c..0000000 --- a/ifttt/assets/_astro/cloud.DoW-st4Z.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/ifttt/assets/_astro/code.SHOoX6Nw.svg b/ifttt/assets/_astro/code.SHOoX6Nw.svg deleted file mode 100644 index 5e7393e..0000000 --- a/ifttt/assets/_astro/code.SHOoX6Nw.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/ifttt/assets/_astro/file-text.BAT4m0Vj.svg b/ifttt/assets/_astro/file-text.BAT4m0Vj.svg deleted file mode 100644 index aad64d3..0000000 --- a/ifttt/assets/_astro/file-text.BAT4m0Vj.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/ifttt/assets/_astro/flask-conical.MRh4m795.svg b/ifttt/assets/_astro/flask-conical.MRh4m795.svg deleted file mode 100644 index 347d1c8..0000000 --- a/ifttt/assets/_astro/flask-conical.MRh4m795.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/ifttt/assets/_astro/gavel.p62gY9pd.svg b/ifttt/assets/_astro/gavel.p62gY9pd.svg deleted file mode 100644 index b32165a..0000000 --- a/ifttt/assets/_astro/gavel.p62gY9pd.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/ifttt/assets/_astro/heart-pulse.DtJHKgvr.svg b/ifttt/assets/_astro/heart-pulse.DtJHKgvr.svg deleted file mode 100644 index a5c73ca..0000000 --- a/ifttt/assets/_astro/heart-pulse.DtJHKgvr.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/ifttt/assets/_astro/index.DK-fsZOb.js b/ifttt/assets/_astro/index.DK-fsZOb.js new file mode 100644 index 0000000..4668ee9 --- /dev/null +++ b/ifttt/assets/_astro/index.DK-fsZOb.js @@ -0,0 +1,9 @@ +var k={exports:{}},r={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var T;function X(){if(T)return r;T=1;var y=Symbol.for("react.element"),A=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),U=Symbol.for("react.strict_mode"),F=Symbol.for("react.profiler"),L=Symbol.for("react.provider"),M=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),z=Symbol.for("react.suspense"),B=Symbol.for("react.memo"),H=Symbol.for("react.lazy"),w=Symbol.iterator;function W(e){return e===null||typeof e!="object"?null:(e=w&&e[w]||e["@@iterator"],typeof e=="function"?e:null)}var $={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},b=Object.assign,C={};function p(e,t,n){this.props=e,this.context=t,this.refs=C,this.updater=n||$}p.prototype.isReactComponent={},p.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},p.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function x(){}x.prototype=p.prototype;function v(e,t,n){this.props=e,this.context=t,this.refs=C,this.updater=n||$}var m=v.prototype=new x;m.constructor=v,b(m,p.prototype),m.isPureReactComponent=!0;var j=Array.isArray,O=Object.prototype.hasOwnProperty,S={current:null},g={key:!0,ref:!0,__self:!0,__source:!0};function P(e,t,n){var o,u={},c=null,s=null;if(t!=null)for(o in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(c=""+t.key),t)O.call(t,o)&&!g.hasOwnProperty(o)&&(u[o]=t[o]);var f=arguments.length-2;if(f===1)u.children=n;else if(1: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-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-2{column-gap:calc(var(--spacing)*2)}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-x-32{column-gap:calc(var(--spacing)*32)}:where(.-space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-4)*calc(1 - var(--tw-space-x-reverse)))}:where(.-space-x-5>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-5)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-5)*calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}.gap-y-2{row-gap:calc(var(--spacing)*2)}.gap-y-8{row-gap:calc(var(--spacing)*8)}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[4px\]{border-radius:4px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-r-none{border-top-right-radius:0;border-bottom-right-radius:0}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-y{border-block-style:var(--tw-border-style);border-block-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-border{border-color:var(--border)}.border-input{border-color:var(--input)}.border-primary\/20{border-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.border-primary\/20{border-color:color-mix(in oklab,var(--primary)20%,transparent)}}.border-transparent{border-color:#0000}.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)}}.bg-accent,.bg-accent\/50{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.bg-accent\/50{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.bg-background,.bg-background\/60{background-color:var(--background)}@supports (color:color-mix(in lab,red,red)){.bg-background\/60{background-color:color-mix(in oklab,var(--background)60%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\!{background-color:var(--color-black)!important}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-foreground{background-color:var(--foreground)}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.bg-muted\/50{background-color:color-mix(in oklab,var(--muted)50%,transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/5{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.bg-primary\/5{background-color:color-mix(in oklab,var(--primary)5%,transparent)}}.bg-secondary{background-color:var(--secondary)}.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-transparent{background-color:#0000}.bg-transparent\!{background-color:#0000!important}.bg-white{background-color:var(--color-white)}.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)}}.\[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%)}.mask-y-from-0\%{-webkit-mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left),var(--tw-mask-right),var(--tw-mask-bottom),var(--tw-mask-top);--tw-mask-top:linear-gradient(to top,var(--tw-mask-top-from-color)var(--tw-mask-top-from-position),var(--tw-mask-top-to-color)var(--tw-mask-top-to-position));--tw-mask-top-from-position:0%;--tw-mask-bottom:linear-gradient(to bottom,var(--tw-mask-bottom-from-color)var(--tw-mask-bottom-from-position),var(--tw-mask-bottom-to-color)var(--tw-mask-bottom-to-position));--tw-mask-bottom-from-position:0%;-webkit-mask-composite:source-in;mask-composite:intersect}.mask-t-from-0\%{-webkit-mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left),var(--tw-mask-right),var(--tw-mask-bottom),var(--tw-mask-top);--tw-mask-top:linear-gradient(to top,var(--tw-mask-top-from-color)var(--tw-mask-top-from-position),var(--tw-mask-top-to-color)var(--tw-mask-top-to-position));--tw-mask-top-from-position:0%;-webkit-mask-composite:source-in;mask-composite:intersect}.mask-t-to-black\/10{-webkit-mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left),var(--tw-mask-right),var(--tw-mask-bottom),var(--tw-mask-top);--tw-mask-top:linear-gradient(to top,var(--tw-mask-top-from-color)var(--tw-mask-top-from-position),var(--tw-mask-top-to-color)var(--tw-mask-top-to-position));--tw-mask-top-to-color:#0000001a;-webkit-mask-composite:source-in;mask-composite:intersect}@supports (color:color-mix(in lab,red,red)){.mask-t-to-black\/10{--tw-mask-top-to-color:color-mix(in oklab,var(--color-black)10%,transparent)}}.mask-x-from-95\%{-webkit-mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left),var(--tw-mask-right),var(--tw-mask-bottom),var(--tw-mask-top);--tw-mask-right:linear-gradient(to right,var(--tw-mask-right-from-color)var(--tw-mask-right-from-position),var(--tw-mask-right-to-color)var(--tw-mask-right-to-position));--tw-mask-right-from-position:95%;--tw-mask-left:linear-gradient(to left,var(--tw-mask-left-from-color)var(--tw-mask-left-from-position),var(--tw-mask-left-to-color)var(--tw-mask-left-to-position));--tw-mask-left-from-position:95%;-webkit-mask-composite:source-in;mask-composite:intersect}.mask-b-from-0\%{-webkit-mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left),var(--tw-mask-right),var(--tw-mask-bottom),var(--tw-mask-top);--tw-mask-bottom:linear-gradient(to bottom,var(--tw-mask-bottom-from-color)var(--tw-mask-bottom-from-position),var(--tw-mask-bottom-to-color)var(--tw-mask-bottom-to-position));--tw-mask-bottom-from-position:0%;-webkit-mask-composite:source-in;mask-composite:intersect}.mask-b-to-black\/50{-webkit-mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left),var(--tw-mask-right),var(--tw-mask-bottom),var(--tw-mask-top);--tw-mask-bottom:linear-gradient(to bottom,var(--tw-mask-bottom-from-color)var(--tw-mask-bottom-from-position),var(--tw-mask-bottom-to-color)var(--tw-mask-bottom-to-position));--tw-mask-bottom-to-color:#00000080;-webkit-mask-composite:source-in;mask-composite:intersect}@supports (color:color-mix(in lab,red,red)){.mask-b-to-black\/50{--tw-mask-bottom-to-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing)*0)}.p-0\!{padding:calc(var(--spacing)*0)!important}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-\[3px\]{padding:3px}.px-\(--banner-px\){padding-inline:var(--banner-px)}.px-\(--footer-px\){padding-inline:var(--footer-px)}.px-\(--header-px\){padding-inline:var(--header-px)}.px-\(--section-px\){padding-inline:var(--section-px)}.px-1\.5{padding-inline:calc(var(--spacing)*1.5)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-2\.5{padding-inline:calc(var(--spacing)*2.5)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-\(--footer-py\){padding-block:var(--footer-py)}.py-\(--section-py\){padding-block:var(--section-py)}.py-0{padding-block:calc(var(--spacing)*0)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.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-6{padding-block:calc(var(--spacing)*6)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.py-\[36cqw\]{padding-block:36cqw}.pt-\(--header-height\){padding-top:var(--header-height)}.pt-\(--section-py\){padding-top:var(--section-py)}.pt-0{padding-top:calc(var(--spacing)*0)}.pt-6{padding-top:calc(var(--spacing)*6)}.pt-8{padding-top:calc(var(--spacing)*8)}.pt-12{padding-top:calc(var(--spacing)*12)}.pt-28{padding-top:calc(var(--spacing)*28)}.pr-2\.5{padding-right:calc(var(--spacing)*2.5)}.pr-6{padding-right:calc(var(--spacing)*6)}.pr-9{padding-right:calc(var(--spacing)*9)}.pb-4{padding-bottom:calc(var(--spacing)*4)}.pb-20{padding-bottom:calc(var(--spacing)*20)}.pb-\[72cqw\]{padding-bottom:72cqw}.text-center{text-align:center}.text-left{text-align:left}.text-start{text-align:start}.align-middle{vertical-align:middle}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--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-sm\/relaxed{font-size:var(--text-sm);line-height:var(--leading-relaxed)}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--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-5{--tw-leading:calc(var(--spacing)*5);line-height:calc(var(--spacing)*5)}.leading-none{--tw-leading:1;line-height:1}.leading-normal{--tw-leading:var(--leading-normal);line-height:var(--leading-normal)}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.text-balance\!{text-wrap:balance!important}.text-pretty{text-wrap:pretty}.break-words{overflow-wrap:break-word}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.\!text-primary{color:var(--primary)!important}.text-accent-foreground{color:var(--accent-foreground)}.text-background{color:var(--background)}.text-card-foreground{color:var(--card-foreground)}.text-destructive{color:var(--destructive)}.text-foreground{color:var(--foreground)}.text-inherit{color:inherit}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-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\/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\/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\/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\/90{color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.text-white\/90{color:color-mix(in oklab,var(--color-white)90%,transparent)}}.line-through{text-decoration-line:line-through}.underline-offset-4{text-underline-offset:4px}.accent-primary{accent-color:var(--primary)}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-90{opacity:.9}.opacity-\[0\.06\]{opacity:.06}.mix-blend-overlay{mix-blend-mode:overlay}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);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_0_0_1px_hsl\(var\(--border\)\)\]{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--border)));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)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(1px + 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)}.ring-0\!{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(0px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)!important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.ring-2{--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)}.ring-background{--tw-ring-color:var(--background)}.ring-transparent\!{--tw-ring-color:transparent!important}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\!transition-none{transition-property:none!important}.duration-100{--tw-duration:.1s;transition-duration:.1s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.animation-duration-40000{--tw-animation-duration: 40000ms ;animation-duration:40s}.animation-duration-80000{--tw-animation-duration: 80000ms ;animation-duration:80s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.\[scrollbar-width\:none\]{scrollbar-width:none}:is(.\*\:size-full>*){width:100%;height:100%}:is(.\*\:w-full>*){width:100%}:is(.\*\:break-inside-avoid>*){break-inside:avoid}:is(.\*\:object-cover>*){object-fit:cover}.not-first\:mt-2:not(:first-child){margin-top:calc(var(--spacing)*2)}.not-first\:mt-4:not(:first-child){margin-top:calc(var(--spacing)*4)}.group-open\/collapsible\:rotate-180:is(:where(.group\/collapsible):is([open],:popover-open,:open) *){rotate:180deg}.group-focus-within\/navigation-menu-item\:visible:is(:where(.group\/navigation-menu-item):focus-within *){visibility:visible}.group-focus-within\/navigation-menu-item\:translate-y-0:is(:where(.group\/navigation-menu-item):focus-within *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-focus-within\/navigation-menu-item\:rotate-180:is(:where(.group\/navigation-menu-item):focus-within *){rotate:180deg}.group-focus-within\/navigation-menu-item\:opacity-100:is(:where(.group\/navigation-menu-item):focus-within *){opacity:1}@media(hover:hover){.group-hover\:flex:is(:where(.group):hover *){display:flex}.group-hover\/marquee\:paused:is(:where(.group\/marquee):hover *){animation-play-state:paused}.group-hover\/navigation-menu-item\:visible:is(:where(.group\/navigation-menu-item):hover *){visibility:visible}.group-hover\/navigation-menu-item\:translate-y-0:is(:where(.group\/navigation-menu-item):hover *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/navigation-menu-item\:rotate-180:is(:where(.group\/navigation-menu-item):hover *){rotate:180deg}.group-hover\/navigation-menu-item\:opacity-100:is(:where(.group\/navigation-menu-item):hover *){opacity:1}.group-hover\/tile\:translate-x-2:is(:where(.group\/tile):hover *){--tw-translate-x:calc(var(--spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/tile\:translate-x-3:is(:where(.group\/tile):hover *){--tw-translate-x:calc(var(--spacing)*3);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-hover\/tile\:scale-103:is(:where(.group\/tile):hover *){--tw-scale-x:103%;--tw-scale-y:103%;--tw-scale-z:103%;scale:var(--tw-scale-x)var(--tw-scale-y)}.group-hover\/tile\:opacity-100:is(:where(.group\/tile):hover *){opacity:1}}.group-has-\[\[data-orientation\=horizontal\]\]\/field\:text-balance:is(:where(.group\/field):has([data-orientation=horizontal]) *){text-wrap:balance}.group-has-\[\[data-slot\=item-description\]\]\/item\:translate-y-0\.5:is(:where(.group\/item):has([data-slot=item-description]) *){--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-has-\[\[data-slot\=item-description\]\]\/item\:self-start:is(:where(.group\/item):has([data-slot=item-description]) *){align-self:flex-start}.group-has-\[\[data-slot\=tile-description\]\]\/tile\:translate-y-0\.5:is(:where(.group\/tile):has([data-slot=tile-description]) *){--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-has-\[\[data-slot\=tile-description\]\]\/tile\:self-start:is(:where(.group\/tile):has([data-slot=tile-description]) *){align-self:flex-start}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *),.group-data-\[disabled\=true\]\/field\:opacity-50:is(:where(.group\/field)[data-disabled=true] *){opacity:.5}.group-data-\[orientation\=vertical\]\/native-carousel\:-top-12:is(:where(.group\/native-carousel)[data-orientation=vertical] *){top:calc(var(--spacing)*-12)}.group-data-\[orientation\=vertical\]\/native-carousel\:top-auto:is(:where(.group\/native-carousel)[data-orientation=vertical] *){top:auto}.group-data-\[orientation\=vertical\]\/native-carousel\:right-1\/2:is(:where(.group\/native-carousel)[data-orientation=vertical] *){right:50%}.group-data-\[orientation\=vertical\]\/native-carousel\:-bottom-12:is(:where(.group\/native-carousel)[data-orientation=vertical] *){bottom:calc(var(--spacing)*-12)}.group-data-\[orientation\=vertical\]\/native-carousel\:left-1\/2:is(:where(.group\/native-carousel)[data-orientation=vertical] *){left:50%}.group-data-\[orientation\=vertical\]\/native-carousel\:-translate-x-1\/2:is(:where(.group\/native-carousel)[data-orientation=vertical] *){--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[orientation\=vertical\]\/native-carousel\:translate-y-0:is(:where(.group\/native-carousel)[data-orientation=vertical] *){--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.group-data-\[orientation\=vertical\]\/native-carousel\:rotate-90:is(:where(.group\/native-carousel)[data-orientation=vertical] *){rotate:90deg}.group-data-\[orientation\=vertical\]\/native-carousel\:snap-y:is(:where(.group\/native-carousel)[data-orientation=vertical] *){scroll-snap-type:y var(--tw-scroll-snap-strictness)}.group-data-\[orientation\=vertical\]\/native-carousel\:flex-col:is(:where(.group\/native-carousel)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/native-carousel\:overflow-y-auto:is(:where(.group\/native-carousel)[data-orientation=vertical] *){overflow-y:auto}.group-data-\[variant\=outline\]\/field-group\:-mb-2:is(:where(.group\/field-group)[data-variant=outline] *){margin-bottom:calc(var(--spacing)*-2)}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection{background-color:var(--primary)}.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection{color:var(--primary-foreground)}.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.backdrop\:bg-black\/50::backdrop{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-0:before{content:var(--tw-content);top:calc(var(--spacing)*0)}.before\:top-full:before{content:var(--tw-content);top:100%}.before\:right-0:before{content:var(--tw-content);right:calc(var(--spacing)*0)}.before\:bottom-full:before{content:var(--tw-content);bottom:100%}.before\:left-0:before{content:var(--tw-content);left:calc(var(--spacing)*0)}.before\:left-5\.5:before{content:var(--tw-content);left:calc(var(--spacing)*5.5)}.before\:-z-10:before{content:var(--tw-content);z-index:-10}.before\:h-2:before{content:var(--tw-content);height:calc(var(--spacing)*2)}.before\:h-\[200\%\]:before{content:var(--tw-content);height:200%}.before\:h-full:before{content:var(--tw-content);height:100%}.before\:w-full:before{content:var(--tw-content);width:100%}.before\:w-px:before{content:var(--tw-content);width:1px}.before\:-translate-y-full:before{content:var(--tw-content);--tw-translate-y:-100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.before\:animate-pulse:before{content:var(--tw-content);animation:var(--animate-pulse)}.before\:rounded-full:before{content:var(--tw-content);border-radius:3.40282e38px}.before\:bg-border:before{content:var(--tw-content);background-color:var(--border)}.before\:bg-gradient-to-b:before{content:var(--tw-content);--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.before\:bg-gradient-to-t:before{content:var(--tw-content);--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.before\:from-primary\/10:before{content:var(--tw-content);--tw-gradient-from:var(--primary)}@supports (color:color-mix(in lab,red,red)){.before\:from-primary\/10:before{--tw-gradient-from:color-mix(in oklab,var(--primary)10%,transparent)}}.before\:from-primary\/10:before{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.before\:from-primary\/20:before{content:var(--tw-content);--tw-gradient-from:var(--primary)}@supports (color:color-mix(in lab,red,red)){.before\:from-primary\/20:before{--tw-gradient-from:color-mix(in oklab,var(--primary)20%,transparent)}}.before\:from-primary\/20:before{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.before\:to-transparent:before{content:var(--tw-content);--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from)var(--tw-gradient-from-position),var(--tw-gradient-to)var(--tw-gradient-to-position))}.before\:blur-3xl:before{content:var(--tw-content);--tw-blur:blur(var(--blur-3xl));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,)}.before\:content-\[\'\'\]:before{--tw-content:"";content:var(--tw-content)}.after\:w-0:after{content:var(--tw-content);width:calc(var(--spacing)*0)}.first\:mt-2:first-child{margin-top:calc(var(--spacing)*2)}.first\:ml-auto:first-child{margin-left:auto}.last\:mt-0:last-child{margin-top:calc(var(--spacing)*0)}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.checked\:border-primary:checked{border-color:var(--primary)}.checked\:bg-primary:checked{background-color:var(--primary)}.checked\:text-primary-foreground:checked{color:var(--primary-foreground)}@media(hover:hover){.hover\:visible:hover{visibility:visible}.hover\:translate-y-0:hover{--tw-translate-y:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab,var(--muted)50%,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-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,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\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-white:hover{color:var(--color-white)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--accent\)\)\]:hover{--tw-shadow:0 0 0 1px var(--tw-shadow-color,hsl(var(--accent)));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus\:ring-2:focus{--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\:ring-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--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\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media(forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab,red,red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.active\:bg-accent:active{background-color:var(--accent)}.active\:text-accent-foreground:active{color:var(--accent-foreground)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[state\=checked\]\:border-primary:has([data-state=checked]){border-color:var(--primary)}.has-data-\[state\=checked\]\:bg-primary\/5:has([data-state=checked]){background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.has-data-\[state\=checked\]\:bg-primary\/5:has([data-state=checked]){background-color:color-mix(in oklab,var(--primary)5%,transparent)}}.has-\[select\:disabled\]\:opacity-50:has(:is(select:disabled)){opacity:.5}.has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has(>[data-slot=checkbox-group]){gap:calc(var(--spacing)*3)}.has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}.has-\[\>\[data-slot\=field\]\]\:w-full:has(>[data-slot=field]){width:100%}.has-\[\>\[data-slot\=field\]\]\:flex-col:has(>[data-slot=field]){flex-direction:column}.has-\[\>\[data-slot\=field\]\]\:rounded-md:has(>[data-slot=field]){border-radius:calc(var(--radius) - 2px)}.has-\[\>\[data-slot\=field\]\]\:border:has(>[data-slot=field]){border-style:var(--tw-border-style);border-width:1px}.has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has(>[data-slot=radio-group]){gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true]{pointer-events:none}.data-\[disabled\=true\]\:opacity-50[data-disabled=true]{opacity:.5}.data-\[invalid\=true\]\:text-destructive[data-invalid=true]{color:var(--destructive)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:var(--accent)}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:var(--accent-foreground)}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}.data-\[slot\=checkbox-group\]\:gap-3[data-slot=checkbox-group]{gap:calc(var(--spacing)*3)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[variant\=label\]\:text-sm[data-variant=label]{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.data-\[variant\=legend\]\:text-base[data-variant=legend]{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.nth-last-2\:-mt-1:nth-last-child(2){margin-top:calc(var(--spacing)*-1)}@media(min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.sm\:grid-cols-\[repeat\(auto-fit\,minmax\(260px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.sm\:grid-cols-\[repeat\(auto-fit\,minmax\(400px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:px-6{padding-inline:calc(var(--spacing)*6)}.sm\:pt-32{padding-top:calc(var(--spacing)*32)}.sm\:text-left{text-align:left}}@media(min-width:48rem){.md\:p-12{padding:calc(var(--spacing)*12)}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@container not (min-width:64rem){.\@max-5xl\:hidden{display:none}.\@max-5xl\:flex-row{flex-direction:row}.\@max-5xl\:mask-y-from-50\%{-webkit-mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left),var(--tw-mask-right),var(--tw-mask-bottom),var(--tw-mask-top);--tw-mask-top:linear-gradient(to top,var(--tw-mask-top-from-color)var(--tw-mask-top-from-position),var(--tw-mask-top-to-color)var(--tw-mask-top-to-position));--tw-mask-top-from-position:50%;--tw-mask-bottom:linear-gradient(to bottom,var(--tw-mask-bottom-from-color)var(--tw-mask-bottom-from-position),var(--tw-mask-bottom-to-color)var(--tw-mask-bottom-to-position));--tw-mask-bottom-from-position:50%;-webkit-mask-composite:source-in;mask-composite:intersect}}@container not (min-width:20rem){.\@max-xs\:flex-col{flex-direction:column}}@container field-group (min-width:28rem){.\@md\/field-group\:flex-row{flex-direction:row}.\@md\/field-group\:items-center{align-items:center}.\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}}@container (min-width:36rem){.\@xl\:w-\[200\%\]{width:200%}.\@xl\:scale-50{--tw-scale-x:50%;--tw-scale-y:50%;--tw-scale-z:50%;scale:var(--tw-scale-x)var(--tw-scale-y)}}@container (min-width:48rem){.\@3xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@3xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (min-width:64rem){.\@5xl\:absolute{position:absolute}.\@5xl\:sticky{position:sticky}.\@5xl\:top-\[calc\(24px\+var\(--header-height\,0px\)\)\]{top:calc(24px + var(--header-height,0px))}.\@5xl\:top-\[calc\(var\(--section-py\)\+var\(--header-height\,0px\)\)\]{top:calc(var(--section-py) + var(--header-height,0px))}.\@5xl\:left-1\/2{left:50%}.\@5xl\:z-90{z-index:90}.\@5xl\:order-first{order:-9999}.\@5xl\:col-span-2{grid-column:span 2/span 2}.\@5xl\:-my-\(--section-py\){margin-block:calc(var(--section-py)*-1)}.\@5xl\:-mt-\[calc\(var\(--section-py\)\+var\(--header-height\,0px\)\)\]{margin-top:calc(calc(var(--section-py) + var(--header-height,0px))*-1)}.\@5xl\:-ml-0{margin-left:calc(var(--spacing)*0)}.\@5xl\:-ml-\[25\%\]{margin-left:-25%}.\@5xl\:grid{display:grid}.\@5xl\:hidden{display:none}.\@5xl\:w-\[200\%\]{width:200%}.\@5xl\:w-\[640px\]{width:640px}.\@5xl\:-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.\@5xl\:scale-50{--tw-scale-x:50%;--tw-scale-y:50%;--tw-scale-z:50%;scale:var(--tw-scale-x)var(--tw-scale-y)}.\@5xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\@5xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.\@5xl\:grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.\@5xl\:grid-cols-\[1fr_3fr\]{grid-template-columns:1fr 3fr}.\@5xl\:grid-cols-\[2fr_3fr\]{grid-template-columns:2fr 3fr}.\@5xl\:grid-cols-\[3fr_2fr\]{grid-template-columns:3fr 2fr}.\@5xl\:flex-row{flex-direction:row}.\@5xl\:items-center{align-items:center}.\@5xl\:items-end{align-items:flex-end}.\@5xl\:items-start{align-items:flex-start}.\@5xl\:justify-between{justify-content:space-between}.\@5xl\:justify-end{justify-content:flex-end}.\@5xl\:gap-1{gap:calc(var(--spacing)*1)}.\@5xl\:gap-24{gap:calc(var(--spacing)*24)}.\@5xl\:self-center{align-self:center}.\@5xl\:mask-b-from-50\%{-webkit-mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left),var(--tw-mask-right),var(--tw-mask-bottom),var(--tw-mask-top);--tw-mask-bottom:linear-gradient(to bottom,var(--tw-mask-bottom-from-color)var(--tw-mask-bottom-from-position),var(--tw-mask-bottom-to-color)var(--tw-mask-bottom-to-position));--tw-mask-bottom-from-position:50%;-webkit-mask-composite:source-in;mask-composite:intersect}.\@5xl\:mask-l-from-0\%{-webkit-mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);mask-image:var(--tw-mask-linear),var(--tw-mask-radial),var(--tw-mask-conic);--tw-mask-linear:var(--tw-mask-left),var(--tw-mask-right),var(--tw-mask-bottom),var(--tw-mask-top);--tw-mask-left:linear-gradient(to left,var(--tw-mask-left-from-color)var(--tw-mask-left-from-position),var(--tw-mask-left-to-color)var(--tw-mask-left-to-position));--tw-mask-left-from-position:0%;-webkit-mask-composite:source-in;mask-composite:intersect}.\@5xl\:py-\[18cqw\]{padding-block:18cqw}.\@5xl\:pt-1{padding-top:calc(var(--spacing)*1)}.\@5xl\:pb-\[36cqw\]{padding-bottom:36cqw}.\@5xl\:text-center{text-align:center}:is(.\@5xl\:\*\:sticky>*){position:sticky}:is(.\@5xl\:\*\:top-\[calc\(var\(--section-py\)\+var\(--header-height\,0px\)\)\]>*){top:calc(var(--section-py) + var(--header-height,0px))}}.before\:\@5xl\:top-5\.5:before{content:var(--tw-content)}@container (min-width:64rem){.before\:\@5xl\:top-5\.5:before{top:calc(var(--spacing)*5.5)}}.before\:\@5xl\:h-px:before{content:var(--tw-content)}@container (min-width:64rem){.before\:\@5xl\:h-px:before{height:1px}}.before\:\@5xl\:w-full:before{content:var(--tw-content)}@container (min-width:64rem){.before\:\@5xl\:w-full:before{width:100%}}@container (min-width:72rem){.\@6xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.dark\:block:is(.dark *){display:block}.dark\:hidden:is(.dark *){display:none}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-black:is(.dark *){background-color:var(--color-black)}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media(hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:has-data-\[state\=checked\]\:bg-primary\/10:is(.dark *):has([data-state=checked]){background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){.dark\:has-data-\[state\=checked\]\:bg-primary\/10:is(.dark *):has([data-state=checked]){background-color:color-mix(in oklab,var(--primary)10%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab,red,red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:scroll-mt-20 :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:calc(var(--spacing)*20)}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:leading-\[1\.1\] :is(h1,h2,h3,h4,h5,h6){--tw-leading:1.1;line-height:1.1}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:font-semibold :is(h1,h2,h3,h4,h5,h6){--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:not-first\:mt-12 :is(h1,h2,h3,h4,h5,h6):not(:first-child){margin-top:calc(var(--spacing)*12)}@container not (min-width:24rem){.\@max-sm\:\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:break-words :is(h1,h2,h3,h4,h5,h6),.\@max-sm\:\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:wrap-break-word :is(h1,h2,h3,h4,h5,h6){overflow-wrap:break-word}.\@max-sm\:\[\&_\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:hyphens-auto :is(h1,h2,h3,h4,h5,h6){-webkit-hyphens:auto;hyphens:auto}}.\[\&_\[data-slot\=command-group-heading\]\]\:px-2 [data-slot=command-group-heading]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[data-slot\=command-group-heading\]\]\:py-1\.5 [data-slot=command-group-heading]{padding-block:calc(var(--spacing)*1.5)}.\[\&_\[data-slot\=command-group-heading\]\]\:text-xs [data-slot=command-group-heading]{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.\[\&_\[data-slot\=command-group-heading\]\]\:font-medium [data-slot=command-group-heading]{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_\[data-slot\=command-group-heading\]\]\:text-muted-foreground [data-slot=command-group-heading]{color:var(--muted-foreground)}.\[\&_\[data-slot\=command-group\]\]\:px-2 [data-slot=command-group]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[data-slot\=command-group\]\:not\(\[hidden\]\)_\~\[data-slot\=command-group\]\]\:pt-0 [data-slot=command-group]:not([hidden])~[data-slot=command-group]{padding-top:calc(var(--spacing)*0)}.\[\&_\[data-slot\=command-input-wrapper\]\]\:h-12 [data-slot=command-input-wrapper]{height:calc(var(--spacing)*12)}.\[\&_\[data-slot\=command-input-wrapper\]_svg\]\:size-5 [data-slot=command-input-wrapper] svg{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.\[\&_\[data-slot\=command-input\]\]\:h-12 [data-slot=command-input]{height:calc(var(--spacing)*12)}.\[\&_\[data-slot\=command-item\]\]\:px-2 [data-slot=command-item]{padding-inline:calc(var(--spacing)*2)}.\[\&_\[data-slot\=command-item\]\]\:py-3 [data-slot=command-item]{padding-block:calc(var(--spacing)*3)}.\[\&_\[data-slot\=command-item\]_svg\]\:size-5 [data-slot=command-item] svg{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.\[\&_\[data-slot\=command\]\]\:border-0 [data-slot=command]{border-style:var(--tw-border-style);border-width:0}.\[\&_\[data-slot\=command\]\]\:bg-transparent [data-slot=command]{background-color:#0000}.\[\&_a\]\:text-primary a{color:var(--primary)}@media(hover:hover){.\[\&_a\]\:hover\:underline a:hover{text-decoration-line:underline}}.\[\&_h1\]\:text-3xl h1{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.\[\&_h1\]\:text-4xl h1{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}@container (min-width:64rem){.\@5xl\:\[\&_h1\]\:text-5xl h1{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}}.\[\&_h2\]\:text-2xl h2{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.\[\&_h2\]\:text-3xl h2{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.\[\&_h2\]\:text-4xl h2{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.\[\&_h3\]\:text-2xl h3{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.\[\&_h3\]\:text-3xl h3{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.\[\&_h3\]\:text-xl h3{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.\[\&_h4\]\:text-2xl h4{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.\[\&_h4\]\:text-lg h4{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.\[\&_h4\]\:text-xl h4{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.\[\&_h5\]\:text-base h5{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.\[\&_h5\]\:text-lg h5{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.\[\&_h5\]\:text-xl h5{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.\[\&_h6\]\:text-base h6{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.\[\&_h6\]\:text-lg h6{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.\[\&_h6\]\:text-sm h6{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.\[\&_img\]\:size-full img{width:100%;height:100%}.\[\&_img\]\:rounded-lg img{border-radius:var(--radius)}.\[\&_img\]\:object-cover img{object-fit:cover}.\[\&_img\]\:not-first\:mt-12 img:not(:first-child){margin-top:calc(var(--spacing)*12)}.\[\&_li_p\]\:inline li p{display:inline}.\[\&_ol\]\:ml-5 ol{margin-left:calc(var(--spacing)*5)}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}:where(.\[\&_ol\]\:space-y-2 ol>: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)))}.\[\&_ol\]\:not-first\:mt-4 ol:not(:first-child){margin-top:calc(var(--spacing)*4)}.\[\&_p\]\:leading-\[1\.8\] p{--tw-leading:1.8;line-height:1.8}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_p\]\:not-first\:mt-4 p:not(:first-child),.\[\&_p\:first-child\+\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\]\:mt-4 p:first-child+:is(h1,h2,h3,h4,h5,h6){margin-top:calc(var(--spacing)*4)}.\[\&_p\:first-child\:has\(\~\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\)\]\:text-sm p:first-child:has(~:is(h1,h2,h3,h4,h5,h6)){font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.\[\&_p\:first-child\:has\(\~\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\)\]\:font-medium p:first-child:has(~:is(h1,h2,h3,h4,h5,h6)){--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.\[\&_p\:first-child\:has\(\~\:is\(h1\,h2\,h3\,h4\,h5\,h6\)\)\]\:text-accent-foreground p:first-child:has(~:is(h1,h2,h3,h4,h5,h6)){color:var(--accent-foreground)}.\[\&_pre\]\:mt-6 pre{margin-top:calc(var(--spacing)*6)}.\[\&_pre\]\:rounded-lg pre{border-radius:var(--radius)}.\[\&_pre\]\:rounded-md pre{border-radius:calc(var(--radius) - 2px)}.\[\&_pre\]\:border pre{border-style:var(--tw-border-style);border-width:1px}.\[\&_pre\]\:bg-muted pre{background-color:var(--muted)}.\[\&_pre\]\:p-4 pre{padding:calc(var(--spacing)*4)}.\[\&_pre\]\:text-sm pre{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\]\:translate-y-\[30\%\] svg{--tw-translate-y:30%;translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6 svg:not([class*=size-]){width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-\[1em\] svg:not([class*=size-]){width:1em;height:1em}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&_ul\]\:ml-5 ul{margin-left:calc(var(--spacing)*5)}.\[\&_ul\]\:list-disc ul{list-style-type:disc}:where(.\[\&_ul\]\:space-y-2 ul>: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)))}.\[\&_ul\]\:not-first\:mt-4 ul:not(:first-child){margin-top:calc(var(--spacing)*4)}.\[\&\+\[data-slot\=item-content\]\]\:flex-none+[data-slot=item-content]{flex:none}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}.\[\&\:\:-webkit-scrollbar\]\:hidden::-webkit-scrollbar{display:none}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing)*0)}.\[\&\:is\(\.copied_\&\)\]\:block:is(.copied .\[\&\:is\(\.copied_\&\)\]\:block){display:block}.\[\&\:is\(\.copied_\&\)\]\:hidden:is(.copied .\[\&\:is\(\.copied_\&\)\]\:hidden){display:none}.\[\&\:is\(\[data-theme\=dark\]_\&\)\]\:block:is([data-theme=dark] .\[\&\:is\(\[data-theme\=dark\]_\&\)\]\:block){display:block}.\[\&\:is\(\[data-theme\=dark\]_\&\)\]\:hidden:is([data-theme=dark] .\[\&\:is\(\[data-theme\=dark\]_\&\)\]\:hidden){display:none}.\[a\]\:transition-all:is(a){transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.\[a\]\:transition-colors:is(a){transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media(hover:hover){.\[a\]\:hover\:bg-accent\/50:is(a):hover{background-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:bg-accent\/50:is(a):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.\[a\]\:hover\:ring-12:is(a):hover{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(12px + 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)}.\[a\]\:hover\:ring-accent\/50:is(a):hover{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.\[a\]\:hover\:ring-accent\/50:is(a):hover{--tw-ring-color:color-mix(in oklab,var(--accent)50%,transparent)}}}.\[\&\:is\(a\:hover\>\&\)\]\:opacity-75:is(a:hover>.\[\&\:is\(a\:hover\>\&\)\]\:opacity-75){opacity:.75}.\[\&\:where\(button\)\]\:border-none:where(button){--tw-border-style:none;border-style:none}.\[\&\:where\(button\)\]\:bg-transparent:where(button){background-color:#0000}.\[\&\>\*\]\:w-full>*{width:100%}.\[\&\>\*\]\:data-\[slot\=field\]\:p-4>[data-slot=field]{padding:calc(var(--spacing)*4)}@container field-group (min-width:28rem){.\@md\/field-group\:\[\&\>\*\]\:w-auto>*{width:auto}}.\[\&\>\.sr-only\]\:w-auto>.sr-only{width:auto}.\[\&\>\[data-slot\=field-group\]\]\:gap-4>[data-slot=field-group]{gap:calc(var(--spacing)*4)}.\[\&\>\[data-slot\=field-label\]\]\:flex-auto>[data-slot=field-label]{flex:auto}@container field-group (min-width:28rem){.\@md\/field-group\:\[\&\>\[data-slot\=field-label\]\]\:flex-auto>[data-slot=field-label]{flex:auto}}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y:2px;translate:var(--tw-translate-x)var(--tw-translate-y)}.has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content])>[role=checkbox],.has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content]) [role=radio]{margin-top:1px}@container field-group (min-width:28rem){.\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content])>[role=checkbox],.\@md\/field-group\:has-\[\>\[data-slot\=field-content\]\]\:\[\&\>\[role\=checkbox\]\,\[role\=radio\]\]\:mt-px:has(>[data-slot=field-content]) [role=radio]{margin-top:1px}}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>a\:hover\]\:text-primary>a:hover{color:var(--primary)}.\[\&\>span\:last-child\]\:truncate>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}.group-open\:\[\&\>svg\]\:rotate-180:is(:where(.group):is([open],:popover-open,:open) *)>svg{rotate:180deg}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}[data-variant=legend]+.\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5{margin-top:calc(var(--spacing)*-1.5)}@media(hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab,red,red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}}}@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}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/fonts/inter/InterVariable.woff2)format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/assets/fonts/inter/InterVariable-Italic.woff2)format("woff2")}:root{--font-base:"Inter",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-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-scroll-snap-strictness{syntax:"*";inherits:false;initial-value:proximity}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-mask-linear{syntax:"*";inherits:false;initial-value:linear-gradient(#fff,#fff)}@property --tw-mask-radial{syntax:"*";inherits:false;initial-value:linear-gradient(#fff,#fff)}@property --tw-mask-conic{syntax:"*";inherits:false;initial-value:linear-gradient(#fff,#fff)}@property --tw-mask-left{syntax:"*";inherits:false;initial-value:linear-gradient(#fff,#fff)}@property --tw-mask-right{syntax:"*";inherits:false;initial-value:linear-gradient(#fff,#fff)}@property --tw-mask-bottom{syntax:"*";inherits:false;initial-value:linear-gradient(#fff,#fff)}@property --tw-mask-top{syntax:"*";inherits:false;initial-value:linear-gradient(#fff,#fff)}@property --tw-mask-top-from-position{syntax:"*";inherits:false;initial-value:0%}@property --tw-mask-top-to-position{syntax:"*";inherits:false;initial-value:100%}@property --tw-mask-top-from-color{syntax:"*";inherits:false;initial-value:black}@property --tw-mask-top-to-color{syntax:"*";inherits:false;initial-value:transparent}@property --tw-mask-bottom-from-position{syntax:"*";inherits:false;initial-value:0%}@property --tw-mask-bottom-to-position{syntax:"*";inherits:false;initial-value:100%}@property --tw-mask-bottom-from-color{syntax:"*";inherits:false;initial-value:black}@property --tw-mask-bottom-to-color{syntax:"*";inherits:false;initial-value:transparent}@property --tw-mask-right-from-position{syntax:"*";inherits:false;initial-value:0%}@property --tw-mask-right-to-position{syntax:"*";inherits:false;initial-value:100%}@property --tw-mask-right-from-color{syntax:"*";inherits:false;initial-value:black}@property --tw-mask-right-to-color{syntax:"*";inherits:false;initial-value:transparent}@property --tw-mask-left-from-position{syntax:"*";inherits:false;initial-value:0%}@property --tw-mask-left-to-position{syntax:"*";inherits:false;initial-value:100%}@property --tw-mask-left-from-color{syntax:"*";inherits:false;initial-value:black}@property --tw-mask-left-to-color{syntax:"*";inherits:false;initial-value:transparent}@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-outline-style{syntax:"*";inherits:false;initial-value:solid}@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}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}} diff --git a/ifttt/assets/_astro/index.niIggI7A.css b/ifttt/assets/_astro/index.niIggI7A.css new file mode 100644 index 0000000..b1b7b85 --- /dev/null +++ b/ifttt/assets/_astro/index.niIggI7A.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-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/assets/_astro/jsx-runtime.ClP7wGfN.js b/ifttt/assets/_astro/jsx-runtime.ClP7wGfN.js new file mode 100644 index 0000000..aae97bc --- /dev/null +++ b/ifttt/assets/_astro/jsx-runtime.ClP7wGfN.js @@ -0,0 +1,9 @@ +import{a as v}from"./index.DK-fsZOb.js";var i={exports:{}},t={};/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var p;function y(){if(p)return t;p=1;var a=v(),R=Symbol.for("react.element"),x=Symbol.for("react.fragment"),c=Object.prototype.hasOwnProperty,l=a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,d={key:!0,ref:!0,__self:!0,__source:!0};function s(n,r,_){var e,o={},u=null,f=null;_!==void 0&&(u=""+_),r.key!==void 0&&(u=""+r.key),r.ref!==void 0&&(f=r.ref);for(e in r)c.call(r,e)&&!d.hasOwnProperty(e)&&(o[e]=r[e]);if(n&&n.defaultProps)for(e in r=n.defaultProps,r)o[e]===void 0&&(o[e]=r[e]);return{$$typeof:R,type:n,key:u,ref:f,props:o,_owner:l.current}}return t.Fragment=x,t.jsx=s,t.jsxs=s,t}var m;function O(){return m||(m=1,i.exports=y()),i.exports}var j=O();export{j}; diff --git a/ifttt/assets/_astro/landmark.E5CxlCg3.svg b/ifttt/assets/_astro/landmark.E5CxlCg3.svg deleted file mode 100644 index 9cdf738..0000000 --- a/ifttt/assets/_astro/landmark.E5CxlCg3.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - diff --git a/ifttt/assets/_astro/layers.CuvC3pxu.svg b/ifttt/assets/_astro/layers.CuvC3pxu.svg deleted file mode 100644 index be6a3a0..0000000 --- a/ifttt/assets/_astro/layers.CuvC3pxu.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/ifttt/assets/_astro/link-2.7WbG7n3x.svg b/ifttt/assets/_astro/link-2.7WbG7n3x.svg deleted file mode 100644 index 38715f3..0000000 --- a/ifttt/assets/_astro/link-2.7WbG7n3x.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - diff --git a/ifttt/assets/_astro/mail.WDLIIHg8.svg b/ifttt/assets/_astro/mail.WDLIIHg8.svg deleted file mode 100644 index f73f706..0000000 --- a/ifttt/assets/_astro/mail.WDLIIHg8.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/ifttt/assets/_astro/package.BgT239Op.svg b/ifttt/assets/_astro/package.BgT239Op.svg deleted file mode 100644 index 4e9a4b3..0000000 --- a/ifttt/assets/_astro/package.BgT239Op.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/ifttt/assets/_astro/scale.B2k8EeQ4.svg b/ifttt/assets/_astro/scale.B2k8EeQ4.svg deleted file mode 100644 index 6bacc70..0000000 --- a/ifttt/assets/_astro/scale.B2k8EeQ4.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - diff --git a/ifttt/assets/_astro/shield-check.C19i7JrJ.svg b/ifttt/assets/_astro/shield-check.C19i7JrJ.svg deleted file mode 100644 index c1775d9..0000000 --- a/ifttt/assets/_astro/shield-check.C19i7JrJ.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - - diff --git a/ifttt/assets/_astro/shield.DI0djbE-.svg b/ifttt/assets/_astro/shield.DI0djbE-.svg deleted file mode 100644 index 1266829..0000000 --- a/ifttt/assets/_astro/shield.DI0djbE-.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - diff --git a/ifttt/assets/_astro/sparkles.C2LAIHzz.svg b/ifttt/assets/_astro/sparkles.C2LAIHzz.svg deleted file mode 100644 index 8c71c13..0000000 --- a/ifttt/assets/_astro/sparkles.C2LAIHzz.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/ifttt/assets/_astro/truck.NZiG2cbD.svg b/ifttt/assets/_astro/truck.NZiG2cbD.svg deleted file mode 100644 index efefbf2..0000000 --- a/ifttt/assets/_astro/truck.NZiG2cbD.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/ifttt/assets/fonts/inter/InterVariable-Italic.woff2 b/ifttt/assets/fonts/inter/InterVariable-Italic.woff2 deleted file mode 100644 index f22ec25..0000000 Binary files a/ifttt/assets/fonts/inter/InterVariable-Italic.woff2 and /dev/null differ diff --git a/ifttt/assets/fonts/inter/InterVariable.woff2 b/ifttt/assets/fonts/inter/InterVariable.woff2 deleted file mode 100644 index 22a12b0..0000000 Binary files a/ifttt/assets/fonts/inter/InterVariable.woff2 and /dev/null differ diff --git a/ifttt/assets/fonts/inter/LICENSE.txt b/ifttt/assets/fonts/inter/LICENSE.txt deleted file mode 100644 index 9b2ca37..0000000 --- a/ifttt/assets/fonts/inter/LICENSE.txt +++ /dev/null @@ -1,92 +0,0 @@ -Copyright (c) 2016 The Inter Project Authors (https://github.com/rsms/inter) - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION AND CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/ifttt/assets/if-logo-simple.svg b/ifttt/assets/if-logo-simple.svg index 342886f..2d80146 100644 --- a/ifttt/assets/if-logo-simple.svg +++ b/ifttt/assets/if-logo-simple.svg @@ -1,60 +1,6 @@ - - - if. mark - Stylized “if.” mark with subtle gradient and shadow. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + diff --git a/ifttt/assets/iftrace-diagram.svg b/ifttt/assets/iftrace-diagram.svg deleted file mode 100644 index e99c3dd..0000000 --- a/ifttt/assets/iftrace-diagram.svg +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - 1) Keep it private - You hold the source. - source_sha256 - - - - - 2) Hash the output - What you will share. - output_sha256 - - - - - 3) Publish a receipt - No login required. - /trace/… - - - - - 4) Third party verifies - They download bytes and compare hashes. - verified == (hashes match) - - - - - - - - Integrity claims only: byte-level verification, not interpretation. - diff --git a/ifttt/assets/iftrace-og.svg b/ifttt/assets/iftrace-og.svg index 3721829..86447b6 100644 --- a/ifttt/assets/iftrace-og.svg +++ b/ifttt/assets/iftrace-og.svg @@ -1,49 +1,31 @@ - + - - - + + - - - - - - - - - - - - - - + + + + + + + + - - - - - - IF.Transparent > IF.Traceable > IF.Trustworthy - IF.Trace - Confidential documents → open verification - source_sha256 → output_sha256 → /trace/… - 3rd party audit trails, without publishing the source. + + + + + + + + + IF.Trace + Confidential work → open verification. + No login. Black/white integrity checks. Optional offline bundles. + + See a receipt + + diff --git a/ifttt/assets/ifttt-quotes.json b/ifttt/assets/ifttt-quotes.json deleted file mode 100644 index 498d627..0000000 --- a/ifttt/assets/ifttt-quotes.json +++ /dev/null @@ -1,72 +0,0 @@ -[ - { - "text": "Footnotes aren't decorations. They're load-bearing walls.", - "source": "IF.Trace 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.Trace trace, it didn't happen—or shouldn't be trusted.", - "source": "IF.Trace 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.Trace 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.Trace 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.Trace 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.Trace public receipts", - "href": "https://infrafabric.io/static/hosted/ifttt/" - }, - { - "text": "Third parties verify. We just publish the math.", - "source": "IF.Trace posture", - "href": "https://infrafabric.io/static/hosted/ifttt/" - }, - { - "text": "Receipts must be readable and verifiable without credentials.", - "source": "IF.Trace public receipt surface", - "href": "https://infrafabric.io/static/hosted/ifttt/" - }, - { - "text": "Design constraint: black/white clarity. No “maybe”.", - "source": "IF.Trace ops (full stack)", - "href": "https://infrafabric.io/static/hosted/ifttt/api/" - }, - { - "text": "We do not claim “quantum-secure”. We claim “quantum-ready”.", - "source": "IF.Trace 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.Trace", - "href": "https://infrafabric.io/static/hosted/review/ifttt-paper-update/2025-12-28/review-pack.html" - }, - { - "text": "That's the moat.", - "source": "IF.Trace 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.Trace 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.Trace stance", - "href": "https://infrafabric.io/static/hosted/ifttt/" - } -] diff --git a/ifttt/fr/governance/index.html b/ifttt/fr/governance/index.html deleted file mode 100644 index 4af0e92..0000000 --- a/ifttt/fr/governance/index.html +++ /dev/null @@ -1,39 +0,0 @@ - IF.Trace — Gouvernance ouverte -
FR / Gouvernance - - -

Gouvernance ouverte

Lisible par les gouvernés.

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

Schéma de vérification (exemple)

La stack

Où IF.Trace se place.

  • - - IF.Trace (reçus) : source_sha256 ↔ output_sha256, trace_id, shareId.
  • - - Revue : packs externes, critiques, disputes.
  • - - Contrôles : gates/stop‑conditions qui consomment ces reçus.
contact \ No newline at end of file diff --git a/ifttt/fr/index.html b/ifttt/fr/index.html deleted file mode 100644 index e9e466b..0000000 --- a/ifttt/fr/index.html +++ /dev/null @@ -1,74 +0,0 @@ - IF.Trace — Vérification ouverte -
Sans login - - -

IF.Transparent > IF.Traceable > IF.Trustworthy

IF.Trace

Travail confidentiel > vérification ouverte.

Permettre à un tiers de vérifier l’intégrité plus tard, sans rejoindre vos outils.

Schéma de vérification (exemple)

Ce que c’est

Une couche de vérification pour la pression externe.

-Quand quelqu’un demande une preuve, le problème est souvent le même : - il ne peut pas être onboardé dans vos systèmes. IF.Trace garde la preuve à l’extérieur : - des liens stables que l’on peut vérifier sans compte. -

- - -

Reçus sans login

Des liens stables qu’un tiers peut vérifier sans compte.

- - - - -

Bundles hors‑ligne

Pour les environnements de revue qui ne peuvent pas dépendre du site.

- - -

Oui / non

Si les hashes correspondent, c’est vérifié.

- - - - - -

Fallback HTML

Certains reviewers chargent du HTML mais refusent les téléchargements : on publie les deux.

- - - -

Source → output

Relier une source confidentielle à son output, sans fuite.

- - - - - -

Conçu pour la revue

Une preuve qui survit aux handoffs, aux fournisseurs et au temps.

Comment ça marche

Une preuve sans permission.

-L’output peut être public pendant que la source reste confidentielle. - La preuve reste simple et stable. -

  • - - Gardez la source privée. Hashez-la localement.
  • - - Hashez l’output que vous allez partager.
  • - - Publiez un reçu qui relie source → output.
  • - - Partagez les liens. Un tiers vérifie sans login.
Schéma de vérification (exemple)
contact \ No newline at end of file diff --git a/ifttt/governance/index.html b/ifttt/governance/index.html deleted file mode 100644 index 1f8b35e..0000000 --- a/ifttt/governance/index.html +++ /dev/null @@ -1,95 +0,0 @@ - IF.Trace — Open Governance -
Open governance - - -

Open governance

Legible to the governed.

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

Verification flow diagram (example)

Black/white

What this page is (and is not).

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.Trace sits.

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

  • - - Receipt layer (IF.Trace): 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). -
Stable receipt surface
/static/trace/<shareId>
-/static/dossier/<shareId>
-/static/dossier/<shareId>/download
-/static/pack/<shareId>.md
-/static/review/<shareId>.md
-/static/marketing/<shareId>.md
-/static/source/<source_sha256>.pdf
-          

For whom (and who will hate it)

Legible to outsiders.

A constitutional framing: the goal is external verifiability, not internal comfort.

For

  • - - GRC / Audit leads drowning in evidence requests.
  • - - Security architects who need proof without theater.
  • - - Legal / compliance teams needing chain‑of‑custody.
  • - - AI product teams facing “why did it say that?” questions.
  • - - Gov/defense contractors requiring offline verification.

Not for

  • - - Teams seeking a “badge” without publishing verifiable artifacts.
  • - - Workflows where evidence cannot leave the internal network.
  • - - Organizations that want uncertainty to stay hidden.
  • - - Anyone who needs governance to remain ambiguous.

Charters

How we keep it honest.

Plain Markdown docs: readable, linkable, easy to critique.

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). -

contact \ No newline at end of file diff --git a/ifttt/index.html b/ifttt/index.html index 4fcdb9b..e8f59cf 100644 --- a/ifttt/index.html +++ b/ifttt/index.html @@ -1,74 +1 @@ - IF.Trace — Open Verification -
No‑login verification - - -

IF.Transparent > IF.Traceable > IF.Trustworthy

IF.Trace

Confidential work > open verification.

Let a third party check integrity later, without joining your tools.

Verification flow diagram (example)

What IF.Trace is

A verification layer for third‑party pressure.

-When someone needs proof, the bottleneck is almost always the same: - they can’t be onboarded into your internal systems. IF.Trace keeps the proof - outside: stable links they can verify without accounts. -

- - -

No‑login receipts

Stable URLs that any third party can verify without accounts or access.

- - - - -

Offline verification bundles

Triage bundles (light/standard/full) for review environments that cannot rely on the live site.

- - -

Black/white integrity claims

Clear yes/no checks: if the hashes match, it’s verified.

- - - - - -

HTML fallback

Some reviewers can load HTML but reject downloads — we publish both.

- - - -

Source → output binding

Bind a confidential source to its derived output so the debate stays grounded.

- - - - - -

Designed for audits

Proof that survives vendors, contractors, handoffs, and time.

How it works

Proof without permission.

-The output can be public while the source stays confidential. - The proof surface stays boring and stable. -

  • - - Keep the source private. Hash it locally.
  • - - Hash the output you will share.
  • - - Publish a receipt that binds source → output.
  • - - Share proof links. Third parties verify without logins.
Verification flow diagram (example)
contact \ No newline at end of file + 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 diff --git a/ifttt/pricing/index.html b/ifttt/pricing/index.html index 17046fa..d0337a1 100644 --- a/ifttt/pricing/index.html +++ b/ifttt/pricing/index.html @@ -1,35 +1 @@ - IF.Trace — Pricing -
Early access - - -

A simple model, on purpose

Pricing

If you need audit‑ready verification, we price by risk and responsibility.

Verification flow diagram (example)

Early access

We charge for setup, not for verification clicks.

-Setup + governance configuration, integration support, and proof-surface - hardening. Third-party checking should stay cheap. -

Starter

Proof surface for one workflow.

Talk to us
  • - - Public proof links (no login)
  • - - Offline bundle pattern
  • - - Verification scope (black/white)

Teams

Governance patterns + rollout support.

Talk to us
  • - - Triage bundle templates
  • - - Integration support
  • - - Basic evidence logging / trace IDs

Enterprise / Regulated

High-stakes deployment support.

Talk to us
  • - - Audit-aligned proof surfaces
  • - - Offline-first reviewer flows
  • - - Hardening + review support
contact \ No newline at end of file + 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 diff --git a/ifttt/privacy/index.html b/ifttt/privacy/index.html new file mode 100644 index 0000000..6675929 --- /dev/null +++ b/ifttt/privacy/index.html @@ -0,0 +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 diff --git a/ifttt/review/index.html b/ifttt/review/index.html deleted file mode 100644 index f27b9e6..0000000 --- a/ifttt/review/index.html +++ /dev/null @@ -1,145 +0,0 @@ - IF.Trace — External Review Packet -

External review

IF.Trace review packet (single file)

-Raw markdown: /review/index.md

---
-title: IF.Trace External Review Packet
-last_updated_utc: 2025-12-31
-site: https://infrafabric.io/
-packet: https://infrafabric.io/review/
-raw_packet: https://infrafabric.io/review/index.md
----
-
-# IF.Trace External Review Packet (Public)
-
-This packet exists because many “AI browser / fetch” tools cannot load a live site reliably, even when it is static HTML.
-
-If you cannot fetch `https://infrafabric.io/` in your environment, use this packet instead. It contains the live URLs, the current plain-language intent, and screenshots.
-
-## 1) What You Are Reviewing (plain description)
-
-IF.Trace is a small public website for a verification protocol.
-
-Goal: **let a third party verify the integrity of confidential work without getting logins**.
-
-The promise is intentionally narrow:
-- If the bytes someone downloads match the hashes on the receipt, it is verified.
-- IF.Trace does **not** claim “correctness” or “truth” of the content.
-
-## 2) Who The Buyer Is (working assumption)
-
-Primary buyers we are optimizing for:
-- people responsible for external review outcomes (procurement / audit / legal / security / research review)
-- people who get blamed when proof is missing later
-
-People we are not optimizing for:
-- casual readers
-- “cool protocol vibes” audiences
-
-## 3) Languages
-
-Live language options:
-- English (default)
-- French (`/fr/`)
-
-Request to reviewers:
-- evaluate whether the language feels like “buyer language” in both EN and FR
-- flag any phrases that sound technical, salesy, or “inside baseball”
-
-## 4) Site Map (what exists)
-
-Main routes (public):
-- Home: `https://infrafabric.io/`
-- Sector: `https://infrafabric.io/verticals/`
-- Pricing: `https://infrafabric.io/pricing/`
-- API / developer surface: `https://infrafabric.io/api/`
-- Whitepaper: `https://infrafabric.io/whitepaper/`
-- About: `https://infrafabric.io/about/`
-- Governance: `https://infrafabric.io/governance/`
-- Review packet (this): `https://infrafabric.io/review/`
-- FR: `https://infrafabric.io/fr/`
-
-Header nav is intentionally minimal:
-- `Sector | Pricing | API`
-
-## 5) Current “Home Page” Intent (the core promise)
-
-What we want the user to understand quickly:
-- This is a way to share proof with outsiders (no login).
-- The verification is a simple yes/no integrity check (hashes match).
-- It supports offline bundles for review environments.
-
-If any of that reads unclear, untrustworthy, or “too clever”, call it out.
-
-## 6) Screenshots (desktop + mobile)
-
-Desktop:
-- Home: `https://infrafabric.io/review/screens/desktop/home.png`
-- Sector: `https://infrafabric.io/review/screens/desktop/verticals.png`
-- Pricing: `https://infrafabric.io/review/screens/desktop/pricing.png`
-- API: `https://infrafabric.io/review/screens/desktop/api.png`
-
-Mobile:
-- Home: `https://infrafabric.io/review/screens/mobile/home.png`
-- Sector: `https://infrafabric.io/review/screens/mobile/verticals.png`
-- Pricing: `https://infrafabric.io/review/screens/mobile/pricing.png`
-- API: `https://infrafabric.io/review/screens/mobile/api.png`
-
-Navigation flow (useful for “first 20 seconds” critique):
-- Desktop: `https://infrafabric.io/review/screens/desktop/flow/01-home.png` → `02-sector.png` → `03-pricing.png` → `04-api.png`
-- Mobile: `https://infrafabric.io/review/screens/mobile/flow/01-home.png` → `02-sector.png` → `03-pricing.png` → `04-api.png`
-
-## 7) What We Want From You (constructive, objective critique)
-
-Please answer in a structured way.
-
-### A) Your model and your limits
-- Model name and version (if you know it)
-- Knowledge cutoff (if you know it)
-- Can you fetch live sites / run JavaScript, or only read text?
-
-### B) “10-second test”
-After 10 seconds on the home page, can you answer:
-1) What is this?
-2) Who is it for?
-3) What can I do with it right now?
-
-If not, say what blocked you.
-
-### C) Trust signals (what makes you believe it)
-From the page alone:
-- What feels credible?
-- What feels vague?
-- What feels like marketing theatre?
-
-### D) Cognitive load (mental effort)
-- What words / sections require re-reading?
-- What could be removed without losing meaning?
-- What would you add **only if it reduces confusion**?
-
-### E) Buyer psychology (the “sold” moment)
-Assume a cautious buyer who has been burned before:
-- What makes them say “yes, this is the right shape of solution”?
-- What makes them say “no, this is risky / unclear / too early”?
-
-### F) Layout and structure
-Compare to other “serious verification / trust infrastructure” sites:
-- Is the layout lean enough?
-- Is it missing any “minimum viable” credibility elements?
-- Is the ordering of sections right?
-
-### G) Language quality (EN + FR)
-- Any phrases that sound like a bot, like a pitch, or like an academic paper?
-- Any phrases that sound culturally off in French?
-
-### H) Concrete patches
-Provide 3–10 actionable edits (copy or layout). No vague advice.
-
-## 8) Bias Control (important)
-
-Please do not be polite. Assume we prefer accuracy over encouragement.
-
-If you find yourself agreeing with everything, pause and look for weaknesses:
-- who would *not* trust this, and why?
-- what could be misunderstood and cause harm?
-
-
contact \ No newline at end of file diff --git a/ifttt/review/index.md b/ifttt/review/index.md deleted file mode 100644 index a326288..0000000 --- a/ifttt/review/index.md +++ /dev/null @@ -1,141 +0,0 @@ ---- -title: IF.Trace External Review Packet -last_updated_utc: 2025-12-31 -site: https://infrafabric.io/ -packet: https://infrafabric.io/review/ -raw_packet: https://infrafabric.io/review/index.md ---- - -# IF.Trace External Review Packet (Public) - -This packet exists because many “AI browser / fetch” tools cannot load a live site reliably, even when it is static HTML. - -If you cannot fetch `https://infrafabric.io/` in your environment, use this packet instead. It contains the live URLs, the current plain-language intent, and screenshots. - -## 1) What You Are Reviewing (plain description) - -IF.Trace is a small public website for a verification protocol. - -Goal: **let a third party verify the integrity of confidential work without getting logins**. - -The promise is intentionally narrow: -- If the bytes someone downloads match the hashes on the receipt, it is verified. -- IF.Trace does **not** claim “correctness” or “truth” of the content. - -## 2) Who The Buyer Is (working assumption) - -Primary buyers we are optimizing for: -- people responsible for external review outcomes (procurement / audit / legal / security / research review) -- people who get blamed when proof is missing later - -People we are not optimizing for: -- casual readers -- “cool protocol vibes” audiences - -## 3) Languages - -Live language options: -- English (default) -- French (`/fr/`) - -Request to reviewers: -- evaluate whether the language feels like “buyer language” in both EN and FR -- flag any phrases that sound technical, salesy, or “inside baseball” - -## 4) Site Map (what exists) - -Main routes (public): -- Home: `https://infrafabric.io/` -- Sector: `https://infrafabric.io/verticals/` -- Pricing: `https://infrafabric.io/pricing/` -- API / developer surface: `https://infrafabric.io/api/` -- Whitepaper: `https://infrafabric.io/whitepaper/` -- About: `https://infrafabric.io/about/` -- Governance: `https://infrafabric.io/governance/` -- Review packet (this): `https://infrafabric.io/review/` -- FR: `https://infrafabric.io/fr/` - -Header nav is intentionally minimal: -- `Sector | Pricing | API` - -## 5) Current “Home Page” Intent (the core promise) - -What we want the user to understand quickly: -- This is a way to share proof with outsiders (no login). -- The verification is a simple yes/no integrity check (hashes match). -- It supports offline bundles for review environments. - -If any of that reads unclear, untrustworthy, or “too clever”, call it out. - -## 6) Screenshots (desktop + mobile) - -Desktop: -- Home: `https://infrafabric.io/review/screens/desktop/home.png` -- Sector: `https://infrafabric.io/review/screens/desktop/verticals.png` -- Pricing: `https://infrafabric.io/review/screens/desktop/pricing.png` -- API: `https://infrafabric.io/review/screens/desktop/api.png` - -Mobile: -- Home: `https://infrafabric.io/review/screens/mobile/home.png` -- Sector: `https://infrafabric.io/review/screens/mobile/verticals.png` -- Pricing: `https://infrafabric.io/review/screens/mobile/pricing.png` -- API: `https://infrafabric.io/review/screens/mobile/api.png` - -Navigation flow (useful for “first 20 seconds” critique): -- Desktop: `https://infrafabric.io/review/screens/desktop/flow/01-home.png` → `02-sector.png` → `03-pricing.png` → `04-api.png` -- Mobile: `https://infrafabric.io/review/screens/mobile/flow/01-home.png` → `02-sector.png` → `03-pricing.png` → `04-api.png` - -## 7) What We Want From You (constructive, objective critique) - -Please answer in a structured way. - -### A) Your model and your limits -- Model name and version (if you know it) -- Knowledge cutoff (if you know it) -- Can you fetch live sites / run JavaScript, or only read text? - -### B) “10-second test” -After 10 seconds on the home page, can you answer: -1) What is this? -2) Who is it for? -3) What can I do with it right now? - -If not, say what blocked you. - -### C) Trust signals (what makes you believe it) -From the page alone: -- What feels credible? -- What feels vague? -- What feels like marketing theatre? - -### D) Cognitive load (mental effort) -- What words / sections require re-reading? -- What could be removed without losing meaning? -- What would you add **only if it reduces confusion**? - -### E) Buyer psychology (the “sold” moment) -Assume a cautious buyer who has been burned before: -- What makes them say “yes, this is the right shape of solution”? -- What makes them say “no, this is risky / unclear / too early”? - -### F) Layout and structure -Compare to other “serious verification / trust infrastructure” sites: -- Is the layout lean enough? -- Is it missing any “minimum viable” credibility elements? -- Is the ordering of sections right? - -### G) Language quality (EN + FR) -- Any phrases that sound like a bot, like a pitch, or like an academic paper? -- Any phrases that sound culturally off in French? - -### H) Concrete patches -Provide 3–10 actionable edits (copy or layout). No vague advice. - -## 8) Bias Control (important) - -Please do not be polite. Assume we prefer accuracy over encouragement. - -If you find yourself agreeing with everything, pause and look for weaknesses: -- who would *not* trust this, and why? -- what could be misunderstood and cause harm? - diff --git a/ifttt/review/screens/desktop/api.png b/ifttt/review/screens/desktop/api.png deleted file mode 100644 index 8ac6913..0000000 Binary files a/ifttt/review/screens/desktop/api.png and /dev/null differ diff --git a/ifttt/review/screens/desktop/flow/01-home.png b/ifttt/review/screens/desktop/flow/01-home.png deleted file mode 100644 index e2f4b13..0000000 Binary files a/ifttt/review/screens/desktop/flow/01-home.png and /dev/null differ diff --git a/ifttt/review/screens/desktop/flow/02-sector.png b/ifttt/review/screens/desktop/flow/02-sector.png deleted file mode 100644 index 6506594..0000000 Binary files a/ifttt/review/screens/desktop/flow/02-sector.png and /dev/null differ diff --git a/ifttt/review/screens/desktop/flow/03-pricing.png b/ifttt/review/screens/desktop/flow/03-pricing.png deleted file mode 100644 index 1d3836f..0000000 Binary files a/ifttt/review/screens/desktop/flow/03-pricing.png and /dev/null differ diff --git a/ifttt/review/screens/desktop/flow/04-api.png b/ifttt/review/screens/desktop/flow/04-api.png deleted file mode 100644 index d023f44..0000000 Binary files a/ifttt/review/screens/desktop/flow/04-api.png and /dev/null differ diff --git a/ifttt/review/screens/desktop/home.png b/ifttt/review/screens/desktop/home.png deleted file mode 100644 index e2f4b13..0000000 Binary files a/ifttt/review/screens/desktop/home.png and /dev/null differ diff --git a/ifttt/review/screens/desktop/pricing.png b/ifttt/review/screens/desktop/pricing.png deleted file mode 100644 index a3a9089..0000000 Binary files a/ifttt/review/screens/desktop/pricing.png and /dev/null differ diff --git a/ifttt/review/screens/desktop/verticals.png b/ifttt/review/screens/desktop/verticals.png deleted file mode 100644 index 7a34003..0000000 Binary files a/ifttt/review/screens/desktop/verticals.png and /dev/null differ diff --git a/ifttt/review/screens/mobile/api.png b/ifttt/review/screens/mobile/api.png deleted file mode 100644 index 1178ac8..0000000 Binary files a/ifttt/review/screens/mobile/api.png and /dev/null differ diff --git a/ifttt/review/screens/mobile/flow/01-home.png b/ifttt/review/screens/mobile/flow/01-home.png deleted file mode 100644 index 1d7fc32..0000000 Binary files a/ifttt/review/screens/mobile/flow/01-home.png and /dev/null differ diff --git a/ifttt/review/screens/mobile/flow/02-sector.png b/ifttt/review/screens/mobile/flow/02-sector.png deleted file mode 100644 index 0345768..0000000 Binary files a/ifttt/review/screens/mobile/flow/02-sector.png and /dev/null differ diff --git a/ifttt/review/screens/mobile/flow/03-pricing.png b/ifttt/review/screens/mobile/flow/03-pricing.png deleted file mode 100644 index 6d1a2fb..0000000 Binary files a/ifttt/review/screens/mobile/flow/03-pricing.png and /dev/null differ diff --git a/ifttt/review/screens/mobile/flow/04-api.png b/ifttt/review/screens/mobile/flow/04-api.png deleted file mode 100644 index 197e41d..0000000 Binary files a/ifttt/review/screens/mobile/flow/04-api.png and /dev/null differ diff --git a/ifttt/review/screens/mobile/home.png b/ifttt/review/screens/mobile/home.png deleted file mode 100644 index 1d7fc32..0000000 Binary files a/ifttt/review/screens/mobile/home.png and /dev/null differ diff --git a/ifttt/review/screens/mobile/pricing.png b/ifttt/review/screens/mobile/pricing.png deleted file mode 100644 index 833e8a9..0000000 Binary files a/ifttt/review/screens/mobile/pricing.png and /dev/null differ diff --git a/ifttt/review/screens/mobile/verticals.png b/ifttt/review/screens/mobile/verticals.png deleted file mode 100644 index 535e6fd..0000000 Binary files a/ifttt/review/screens/mobile/verticals.png and /dev/null differ diff --git a/ifttt/terms/index.html b/ifttt/terms/index.html new file mode 100644 index 0000000..39145c2 --- /dev/null +++ b/ifttt/terms/index.html @@ -0,0 +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 diff --git a/ifttt/verticals/ai/index.html b/ifttt/verticals/ai/index.html index 7406c29..a47bb9d 100644 --- a/ifttt/verticals/ai/index.html +++ b/ifttt/verticals/ai/index.html @@ -1,24 +1 @@ - IF.Trace — AI Product Companies -
Browse sectors - - -

AI trust pressure

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.

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Users demand provenance and reproducibility.
  • - - Vendors and models change over time.
  • - - Claims must be checkable outside your system.

What IF.Trace provides

Verification primitives that survive handoffs.

Provenance receipts

A stable proof surface for outputs.

Audit-ready bundles

Offline verification options.

Clear limits

Integrity verified; meaning debated separately.

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 6015560..b22709a 100644 --- a/ifttt/verticals/enterprise/index.html +++ b/ifttt/verticals/enterprise/index.html @@ -1,24 +1 @@ - IF.Trace — Enterprise -
Browse sectors - - -

Enterprise pressure

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.

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Auditors and security teams require repeatable evidence for decisions and outputs.
  • - - Vendors and contractors create custody gaps.
  • - - Internal access sprawl is a risk in itself.

What IF.Trace provides

Verification primitives that survive handoffs.

No-login proof

Receipts that verify without granting access.

Provenance linking

Bind source → output so reviews stay grounded.

Operational fit

Works with existing workflows (PRs, tickets, approvals).

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 121903e..f925a94 100644 --- a/ifttt/verticals/finance/index.html +++ b/ifttt/verticals/finance/index.html @@ -1,24 +1 @@ - IF.Trace — Financial Services -
Browse sectors - - -

Financial pressure

Non-repudiation for decisions and outputs.

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

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Model risk and decision audits require durable evidence.
  • - - Regulators and auditors are external third parties.
  • - - Evidence must remain checkable months later.

What IF.Trace provides

Verification primitives that survive handoffs.

Integrity receipts

Downloadable bytes that match published hashes.

Stable proof surface

Predictable URLs for audit trails.

Offline options

Bundles for constrained environments.

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 cf6916a..2fda97c 100644 --- a/ifttt/verticals/government/index.html +++ b/ifttt/verticals/government/index.html @@ -1,24 +1 @@ - IF.Trace — Government -
Browse sectors - - -

Government review reality

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.

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Oversight reviewers need “show me the proof” without accounts or internal tools.
  • - - Procurement workflows introduce long delays and many stakeholders.
  • - - Offline review is sometimes a requirement, not a preference.

What IF.Trace provides

Verification primitives that survive handoffs.

Receipt URLs

Stable links that can be cited in procurement and audit threads.

Triage bundles

Downloadable bundles for offline verification.

Clear scope

Integrity verification without over-claiming correctness.

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 881721a..1a01414 100644 --- a/ifttt/verticals/healthcare/index.html +++ b/ifttt/verticals/healthcare/index.html @@ -1,24 +1 @@ - IF.Trace — Healthcare -
Browse sectors - - -

Healthcare constraints

Proof that respects boundaries.

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

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Privacy boundaries must be respected even during review.
  • - - Audit trails must be clear and durable.
  • - - Third-party verification must not depend on internal access.

What IF.Trace provides

Verification primitives that survive handoffs.

Verification without access

Receipts instead of credentials.

De-risked sharing

Share proof of integrity, not patient data.

Operational clarity

Explicitly scoped claims for reviewers.

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 b8c3aac..0c38103 100644 --- a/ifttt/verticals/index.html +++ b/ifttt/verticals/index.html @@ -1,68 +1 @@ - IF.Trace — Sectors -
Same mechanism, different pressure - - -

Same mechanism, different pressure

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

-Different buyers have different pressure, but the need is the same: - a third party wants proof, without being added to your systems. -

Verification flow diagram (example)

Browse by sector

Who the buyer is.

The same receipts, different pressure.

- - - - - - -

Public Sector

Procurement cycles, oversight, offline verification.

- - - - - -

Enterprise

Audits as throughput; evidence without credential sprawl.

- - - -

Research

Provenance, reproducibility, and external reviewers.

- - -

Professional Services

Client handoffs, disputes, and custody that holds up later.

Browse by industry

Where the risk lives.

Regulation, data, and dispute pressure.

- - -

Healthcare

Audit trails, privacy boundaries, dispute‑ready artifacts.

- - - -

Financial Services

Model risk, non‑repudiation, evidence for regulators.

- - - - - -

Legal

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

More pressure profiles

Common failure modes, recurring incentives.

Same mechanism, different stakes.

- -

B2B SaaS (SOC 2 / ISO)

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

- -

SecOps / SOC

Bind summaries to evidence; keep custody intact.

- - - - - - -

AI Product Companies

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

- - - - - -

Industrial / Supply Chain

Traceability that survives vendor and contractor handoffs.

contact \ No newline at end of file + 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 diff --git a/ifttt/verticals/legal/index.html b/ifttt/verticals/legal/index.html index 61ad00f..4b00bc7 100644 --- a/ifttt/verticals/legal/index.html +++ b/ifttt/verticals/legal/index.html @@ -1,24 +1 @@ - IF.Trace — Legal -
Browse sectors - - -

Legal reality

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.

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Draft histories matter when disputes arise.
  • - - Evidence must be defensible in adversarial review.
  • - - Third parties should verify without logins.

What IF.Trace provides

Verification primitives that survive handoffs.

Custody proof

Bind source and output with trace IDs and hashes.

Black/white verification

Integrity verification with clear limits.

Portable review

Offline bundles and HTML views.

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 abd32d2..41f8060 100644 --- a/ifttt/verticals/professional-services/index.html +++ b/ifttt/verticals/professional-services/index.html @@ -1,24 +1 @@ - IF.Trace — Professional Services -
Browse sectors - - -

Client handoff reality

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.

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Client handoffs create ambiguity about what was delivered and when.
  • - - Disputes happen later, under stress, with missing context.
  • - - Third-party reviewers should not need your accounts.

What IF.Trace provides

Verification primitives that survive handoffs.

Chain-of-custody

Bind drafts and outputs to timestamps and hashes.

Share surface

Public receipt links for reviewers.

Offline bundles

A portable verification kit.

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 059410e..7d3eb1e 100644 --- a/ifttt/verticals/public-sector/index.html +++ b/ifttt/verticals/public-sector/index.html @@ -1,32 +1 @@ - IF.Trace — Public Sector -
Browse sectors - - -

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.Trace turns “trust us” into receipts that a stranger can verify.

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - 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.Trace provides

Verification primitives that survive handoffs.

Receipt surface

Stable, no‑login URLs for trace + output + source.

Offline bundles

Triage bundles (light/standard/full) with expected hashes.

Black/white

States what is verified (integrity) and what is not (interpretation).

What you can hand to a reviewer
-
-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 fad325e..c8b91d5 100644 --- a/ifttt/verticals/research/index.html +++ b/ifttt/verticals/research/index.html @@ -1,24 +1 @@ - IF.Trace — Research -
Browse sectors - - -

External review reality

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.

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - External reviewers cannot be onboarded into internal tooling.
  • - - Sensitive datasets must stay private, even when outputs are shared.
  • - - Reproducibility requires stable evidence, not “trust me”.

What IF.Trace provides

Verification primitives that survive handoffs.

Receipt-first sharing

Share proof links that survive copy/paste and time.

Offline fallback

HTML views and bundles for constrained environments.

Scope clarity

Proves integrity, not interpretation.

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 167c8fd..605c804 100644 --- a/ifttt/verticals/saas/index.html +++ b/ifttt/verticals/saas/index.html @@ -1,24 +1 @@ - IF.Trace — B2B SaaS (SOC 2 / ISO) -
Browse sectors - - -

Audit readiness

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.

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Auditors need repeatable proof for controls and decisions.
  • - - Vendor and contractor work introduces custody gaps.
  • - - Evidence must be stable across quarters.

What IF.Trace provides

Verification primitives that survive handoffs.

Receipt-first evidence

Receipts for audits and reviews.

Offline bundles

Bring-your-own-verification kit.

Scope discipline

Integrity ≠ correctness, and we say so.

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 2d9a262..c737543 100644 --- a/ifttt/verticals/sciences/index.html +++ b/ifttt/verticals/sciences/index.html @@ -1,24 +1 @@ - IF.Trace — Sciences -
Browse sectors - - -

Scientific review reality

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.

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Reviews happen outside your tooling and outside your time zone.
  • - - Artifacts must remain checkable long after they were produced.
  • - - Integrity needs to be easy to verify, or it won’t be verified.

What IF.Trace provides

Verification primitives that survive handoffs.

Stable URLs

A predictable proof surface for citations and review packs.

Hash verification

Clear, black/white integrity checks.

Reviewer-friendly

HTML fallbacks and offline bundles.

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 e3ee15c..a8b1e50 100644 --- a/ifttt/verticals/secops/index.html +++ b/ifttt/verticals/secops/index.html @@ -1,24 +1 @@ - IF.Trace — SecOps / SOC -
Browse sectors - - -

Security operations

Bind summaries to evidence.

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

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Incidents are reviewed later, often by external parties.
  • - - Evidence chains can break during handoffs.
  • - - Over-sharing internal access increases risk.

What IF.Trace provides

Verification primitives that survive handoffs.

Evidence binding

Link reports to underlying inputs via hashes.

Shareable receipts

No-login verification for stakeholders.

Offline verification

Portable bundles for review.

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 b7fe3fa..caeee8e 100644 --- a/ifttt/verticals/supply-chain/index.html +++ b/ifttt/verticals/supply-chain/index.html @@ -1,24 +1 @@ - IF.Trace — Industrial / Supply Chain -
Browse sectors - - -

Supply chain reality

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.

Verification flow diagram (example)

Third‑party pressure

Why this gets hard in the real world

-The constraint is almost always the same: someone needs proof, but - cannot be onboarded into your internal systems. -

  • - - Many stakeholders, many tools, many custody breaks.
  • - - Evidence must outlive contracts and teams.
  • - - Offline verification is common in the field.

What IF.Trace provides

Verification primitives that survive handoffs.

Portable proof

Receipts and bundles that travel with the work.

Stable verification

Predictable URLs and black/white checks.

Workflow fit

Evidence can be attached to existing tickets and docs.

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 05883b6..9b7c52a 100644 --- a/ifttt/whitepaper/index.html +++ b/ifttt/whitepaper/index.html @@ -1,46 +1 @@ - IF.Trace — Whitepaper - -
Long-form spec + receipts - - - - - -

Long-form spec + receipts

The IF.Trace whitepaper.

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

Verification flow diagram (example)

Included artifacts

Everything needed for review.

Paper

HTML + Markdown.

Receipts

Trace + hashes.

Offline

Proof bundle + verifier.

No login

Want the pack in your inbox?

-Optional. If you prefer, drop an email and we’ll reply with stable links - (no “demo call” bait). -

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

-We only use this to reply with the paper/receipts. No spam, no list rental. -

Stable links

Copy/paste entry points.

These are the boring, audit-safe URLs.

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 diff --git a/ifttt/whitepaper/thanks/index.html b/ifttt/whitepaper/thanks/index.html deleted file mode 100644 index e649470..0000000 --- a/ifttt/whitepaper/thanks/index.html +++ /dev/null @@ -1,13 +0,0 @@ - IF.Trace — Thanks -

Thank you

Request received.

We’ll reply with the stable, no‑login links.

contact \ No newline at end of file