69 lines
No EOL
35 KiB
HTML
69 lines
No EOL
35 KiB
HTML
<!DOCTYPE html><html lang="en" class="dark"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="theme-color" content="#0b1020"><link rel="canonical" href="https://infrafabric.io/verticals/"><title>IF.Trace — Sectors</title><meta name="description" content="Sector fit overview for IF.Trace: third‑party trust pressure mapped to receipts, bundles, and verification."><meta property="og:title" content="IF.Trace — Sectors"><meta property="og:description" content="Sector fit overview for IF.Trace: third‑party trust pressure mapped to receipts, bundles, and verification."><meta property="og:type" content="website"><meta property="og:image" content="https://infrafabric.io/assets/iftrace-og.svg"><meta name="twitter:card" content="summary_large_image"><link rel="icon" href="/assets/if-logo-simple.svg" type="image/svg+xml"><link rel="stylesheet" href="/assets/_astro/index.BM2f01Os.css">
|
||
<style>[data-slot=section]{--section-width: var(--container, var(--breakpoint-xl));--section-py: calc(var(--spacing) * 12);--section-px: max( var(--gutter, 24px), calc((100cqw - var(--section-width)) / 2) )}[data-slot=section][data-variant=floating]{--section-px: calc(var(--spacing) * 6)}[data-slot=section][data-size=sm]{--section-py: calc(var(--spacing) * 8)}[data-slot=section][data-size=lg]{--section-py: calc(var(--spacing) * 24)}@media(min-width:1024px){[data-slot=section]{--section-py: calc(var(--spacing) * 16)}[data-slot=section][data-variant=floating]{--section-px: calc(var(--spacing) * 16)}[data-slot=section][data-size=sm]{--section-py: calc(var(--spacing) * 12)}[data-slot=section][data-size=lg]{--section-py: calc(var(--spacing) * 32)}}
|
||
[data-slot=tile]{--tile-padding: 0px}[data-slot=tile][data-variant=floating]{--tile-padding: 24px}
|
||
</style></head> <body class="min-h-screen bg-background text-foreground"> <div aria-hidden="true" class="pointer-events-none fixed inset-0 -z-10"> <div class="absolute inset-0 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%)]"></div> <div class="absolute inset-0 bg-[linear-gradient(to_bottom,rgba(2,6,23,0.75),rgba(2,6,23,0.95))]"></div> <div class="absolute inset-0 opacity-[0.06] mix-blend-overlay [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')]"></div> </div> <header class="fixed left-0 right-0 top-0 z-50"> <div class="mx-auto max-w-6xl px-4 py-4 sm:px-6"> <div class="flex items-center justify-between rounded-2xl border border-white/10 bg-slate-950/40 px-4 py-3 backdrop-blur-md shadow-[0_20px_80px_rgba(0,0,0,0.35)] sm:px-6"> <a href="/" class="text-sm font-semibold tracking-tight text-white/90 hover:text-white">IF.Trace</a> <nav class="flex items-center gap-3 text-xs text-white/70 sm:gap-4"> <a class="hover:text-white" href="/verticals/">Sector</a> <span class="text-white/20" aria-hidden="true">|</span> <a class="hover:text-white" href="/pricing/">Pricing</a> <span class="text-white/20" aria-hidden="true">|</span> <a class="hover:text-white" href="/api/">API</a> </nav> </div> </div> </header> <main class="pt-28 sm:pt-32"> <section class="relative mx-auto flex scroll-m-(--section-py) flex-col gap-16 px-(--section-px) py-(--section-py) bg-background w-full" data-slot="section"> <div class="relative z-10 flex flex-col gap-y-8 items-center"> <a data-slot="badge" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-md border px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] [&>svg]:pointer-events-none [&>svg]:size-3 bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90 border-transparent" href="/">Same mechanism, different pressure<svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="m12 19-7-7 7-7" />
|
||
<path d="M19 12H5" />
|
||
</svg></a> <div class="text-foreground w-full space-y-4 [&_p]:leading-[1.8] [&_p]:not-first:mt-4 [&_ul]:ml-5 [&_ul]:list-disc [&_ul]:space-y-2 [&_ul]:not-first:mt-4 [&_ol]:ml-5 [&_ol]:list-decimal [&_ol]:space-y-2 [&_ol]:not-first:mt-4 [&_li_p]:inline [&_a]:text-primary [&_a]:hover:underline @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:break-words @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:wrap-break-word @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:hyphens-auto [&_:is(h1,h2,h3,h4,h5,h6)]:scroll-mt-20 [&_:is(h1,h2,h3,h4,h5,h6)]:leading-[1.1] [&_:is(h1,h2,h3,h4,h5,h6)]:font-semibold [&_:is(h1,h2,h3,h4,h5,h6)]:not-first:mt-12 [&_img]:rounded-lg [&_img]:not-first:mt-12 [&_p:first-child:has(~:is(h1,h2,h3,h4,h5,h6))]:text-accent-foreground [&_p:first-child+:is(h1,h2,h3,h4,h5,h6)]:mt-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-medium [&_pre]:bg-muted [&_pre]:mt-6 [&_pre]:rounded-md [&_pre]:border [&_pre]:p-4 [&_pre]:text-sm max-w-4xl text-lg [&_h1]:text-4xl @5xl:[&_h1]:text-5xl [&_h2]:text-4xl [&_h3]:text-3xl [&_h4]:text-2xl [&_h5]:text-xl [&_h6]:text-lg text-center text-balance"> <p>Same mechanism, different pressure</p> <h1>Two axes: who is buying, what is at stake.</h1> <p>
|
||
IF.Trace doesn’t “solve compliance.” It solves the universal problem
|
||
underneath compliance: third parties demanding proof without joining your
|
||
internal world.
|
||
</p> </div> <div class="relative z-10 flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 bg-primary text-primary-foreground hover:bg-primary/90 h-10 rounded-md px-6 has-[>svg]:px-4" href="https://infrafabric.io/static/trace/6qRgcR01kw_qNo63Dbs_ob9n" target="_blank"><svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z" />
|
||
<path d="M20 2v4" />
|
||
<path d="M22 4h-4" />
|
||
<circle cx="4" cy="20" r="2" />
|
||
</svg>Try a live trace</a><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 bg-secondary text-secondary-foreground hover:bg-secondary/80 h-10 rounded-md px-6 has-[>svg]:px-4" href="/api/"><svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="m16 18 6-6-6-6" />
|
||
<path d="m8 6-6 6 6 6" />
|
||
</svg>Developer surface</a></div> </div> <div data-slot="section-media" class="relative flex items-center justify-center overflow-hidden rounded-lg *:size-full *:object-cover"> <img class="h-auto w-full" alt="Verification flow diagram (example)" src="/assets/iftrace-diagram.svg" sizes="(min-width: 1536px) 1536px, 100vw" priority="true"> </div> </section> <section class="relative mx-auto flex scroll-m-(--section-py) flex-col gap-16 px-(--section-px) py-(--section-py) bg-background w-full" data-slot="section"> <div class="relative z-10 flex flex-col gap-y-8 items-center"> <div class="text-foreground w-full space-y-4 text-pretty [&_p]:leading-[1.8] [&_p]:not-first:mt-4 [&_ul]:ml-5 [&_ul]:list-disc [&_ul]:space-y-2 [&_ul]:not-first:mt-4 [&_ol]:ml-5 [&_ol]:list-decimal [&_ol]:space-y-2 [&_ol]:not-first:mt-4 [&_li_p]:inline [&_a]:text-primary [&_a]:hover:underline @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:break-words @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:wrap-break-word @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:hyphens-auto [&_:is(h1,h2,h3,h4,h5,h6)]:scroll-mt-20 [&_:is(h1,h2,h3,h4,h5,h6)]:leading-[1.1] [&_:is(h1,h2,h3,h4,h5,h6)]:font-semibold [&_:is(h1,h2,h3,h4,h5,h6)]:not-first:mt-12 [&_img]:rounded-lg [&_img]:not-first:mt-12 [&_p:first-child:has(~:is(h1,h2,h3,h4,h5,h6))]:text-accent-foreground [&_p:first-child+:is(h1,h2,h3,h4,h5,h6)]:mt-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-medium [&_pre]:bg-muted [&_pre]:mt-6 [&_pre]:rounded-md [&_pre]:border [&_pre]:p-4 [&_pre]:text-sm max-w-3xl text-base [&_h1]:text-4xl [&_h2]:text-3xl [&_h3]:text-2xl [&_h4]:text-xl [&_h5]:text-lg [&_h6]:text-base text-center"> <p>Browse by sector</p> <h2>Who the buyer is.</h2> <p>The same receipts, different pressure.</p> </div> </div> <div class="grid w-full gap-6 grid-cols-1 sm:grid-cols-[repeat(auto-fit,minmax(260px,1fr))]"><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="M10 18v-7" />
|
||
<path d="M11.12 2.198a2 2 0 0 1 1.76.006l7.866 3.847c.476.233.31.949-.22.949H3.474c-.53 0-.695-.716-.22-.949z" />
|
||
<path d="M14 18v-7" />
|
||
<path d="M18 18v-7" />
|
||
<path d="M3 22h18" />
|
||
<path d="M6 18v-7" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">Public Sector</h3> <p class="text-muted-foreground text-sm">Procurement cycles, oversight, offline verification.</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/public-sector/">Public Sector →</a></div> </div><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="M10 12h4" />
|
||
<path d="M10 8h4" />
|
||
<path d="M14 21v-3a2 2 0 0 0-4 0v3" />
|
||
<path d="M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2" />
|
||
<path d="M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">Enterprise</h3> <p class="text-muted-foreground text-sm">Audits as throughput; evidence without credential sprawl.</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/enterprise/">Enterprise →</a></div> </div><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2" />
|
||
<path d="M6.453 15h11.094" />
|
||
<path d="M8.5 2h7" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">Research</h3> <p class="text-muted-foreground text-sm">Provenance, reproducibility, and external reviewers.</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/research/">Research →</a></div> </div><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" />
|
||
<rect width="20" height="14" x="2" y="6" rx="2" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">Professional Services</h3> <p class="text-muted-foreground text-sm">Client handoffs, disputes, and custody that holds up later.</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/professional-services/">Professional Services →</a></div> </div></div> </section> <section class="relative mx-auto flex scroll-m-(--section-py) flex-col gap-16 px-(--section-px) py-(--section-py) bg-background w-full" data-slot="section"> <div class="relative z-10 flex flex-col gap-y-8 items-center"> <div class="text-foreground w-full space-y-4 text-pretty [&_p]:leading-[1.8] [&_p]:not-first:mt-4 [&_ul]:ml-5 [&_ul]:list-disc [&_ul]:space-y-2 [&_ul]:not-first:mt-4 [&_ol]:ml-5 [&_ol]:list-decimal [&_ol]:space-y-2 [&_ol]:not-first:mt-4 [&_li_p]:inline [&_a]:text-primary [&_a]:hover:underline @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:break-words @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:wrap-break-word @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:hyphens-auto [&_:is(h1,h2,h3,h4,h5,h6)]:scroll-mt-20 [&_:is(h1,h2,h3,h4,h5,h6)]:leading-[1.1] [&_:is(h1,h2,h3,h4,h5,h6)]:font-semibold [&_:is(h1,h2,h3,h4,h5,h6)]:not-first:mt-12 [&_img]:rounded-lg [&_img]:not-first:mt-12 [&_p:first-child:has(~:is(h1,h2,h3,h4,h5,h6))]:text-accent-foreground [&_p:first-child+:is(h1,h2,h3,h4,h5,h6)]:mt-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-medium [&_pre]:bg-muted [&_pre]:mt-6 [&_pre]:rounded-md [&_pre]:border [&_pre]:p-4 [&_pre]:text-sm max-w-3xl text-base [&_h1]:text-4xl [&_h2]:text-3xl [&_h3]:text-2xl [&_h4]:text-xl [&_h5]:text-lg [&_h6]:text-base text-center"> <p>Browse by industry</p> <h2>Where the risk lives.</h2> <p>Regulation, data, and dispute pressure.</p> </div> </div> <div class="grid w-full gap-6 grid-cols-1 sm:grid-cols-[repeat(auto-fit,minmax(260px,1fr))]"><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5" />
|
||
<path d="M3.22 13H9.5l.5-1 2 4.5 2-7 1.5 3.5h5.27" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">Healthcare</h3> <p class="text-muted-foreground text-sm">Audit trails, privacy boundaries, dispute‑ready artifacts.</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/healthcare/">Healthcare →</a></div> </div><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<rect width="20" height="12" x="2" y="6" rx="2" />
|
||
<circle cx="12" cy="12" r="2" />
|
||
<path d="M6 12h.01M18 12h.01" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">Financial Services</h3> <p class="text-muted-foreground text-sm">Model risk, non‑repudiation, evidence for regulators.</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/finance/">Financial →</a></div> </div><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="m14 13-8.381 8.38a1 1 0 0 1-3.001-3l8.384-8.381" />
|
||
<path d="m16 16 6-6" />
|
||
<path d="m21.5 10.5-8-8" />
|
||
<path d="m8 8 6-6" />
|
||
<path d="m8.5 7.5 8 8" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">Legal</h3> <p class="text-muted-foreground text-sm">Chain‑of‑custody for drafts, evidence, and decisions.</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/legal/">Legal →</a></div> </div></div> </section> <section class="relative mx-auto flex scroll-m-(--section-py) flex-col gap-16 px-(--section-px) py-(--section-py) bg-background w-full" data-slot="section"> <div class="relative z-10 flex flex-col gap-y-8 items-center"> <div class="text-foreground w-full space-y-4 text-pretty [&_p]:leading-[1.8] [&_p]:not-first:mt-4 [&_ul]:ml-5 [&_ul]:list-disc [&_ul]:space-y-2 [&_ul]:not-first:mt-4 [&_ol]:ml-5 [&_ol]:list-decimal [&_ol]:space-y-2 [&_ol]:not-first:mt-4 [&_li_p]:inline [&_a]:text-primary [&_a]:hover:underline @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:break-words @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:wrap-break-word @max-sm:[&_:is(h1,h2,h3,h4,h5,h6)]:hyphens-auto [&_:is(h1,h2,h3,h4,h5,h6)]:scroll-mt-20 [&_:is(h1,h2,h3,h4,h5,h6)]:leading-[1.1] [&_:is(h1,h2,h3,h4,h5,h6)]:font-semibold [&_:is(h1,h2,h3,h4,h5,h6)]:not-first:mt-12 [&_img]:rounded-lg [&_img]:not-first:mt-12 [&_p:first-child:has(~:is(h1,h2,h3,h4,h5,h6))]:text-accent-foreground [&_p:first-child+:is(h1,h2,h3,h4,h5,h6)]:mt-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-medium [&_pre]:bg-muted [&_pre]:mt-6 [&_pre]:rounded-md [&_pre]:border [&_pre]:p-4 [&_pre]:text-sm max-w-3xl text-base [&_h1]:text-4xl [&_h2]:text-3xl [&_h3]:text-2xl [&_h4]:text-xl [&_h5]:text-lg [&_h6]:text-base text-center"> <p>More pressure profiles</p> <h2>Common failure modes, recurring incentives.</h2> <p>Same mechanism, different stakes.</p> </div> </div> <div class="grid w-full gap-6 grid-cols-1 sm:grid-cols-[repeat(auto-fit,minmax(260px,1fr))]"><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">B2B SaaS (SOC 2 / ISO)</h3> <p class="text-muted-foreground text-sm">Auditors, procurement, “prove it existed at the time.”</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/saas/">B2B SaaS →</a></div> </div><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">SecOps / SOC</h3> <p class="text-muted-foreground text-sm">Bind summaries to evidence; keep custody intact.</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/secops/">SecOps →</a></div> </div><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="M12 8V4H8" />
|
||
<rect width="16" height="12" x="4" y="8" rx="2" />
|
||
<path d="M2 14h2" />
|
||
<path d="M20 14h2" />
|
||
<path d="M15 13v2" />
|
||
<path d="M9 13v2" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">AI Product Companies</h3> <p class="text-muted-foreground text-sm">Provable provenance for outputs: “why did it say that?”</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/ai/">AI products →</a></div> </div><div data-slot="tile" class="group/tile focus-visible:border-ring focus-visible:ring-ring/50 relative flex flex-col gap-6 outline-none focus-visible:ring-[3px] [a]:transition-all [a]:hover:ring-accent/50 [a]:hover:bg-accent/50 rounded-sm bg-transparent [a]:hover:ring-12 items-center"> <div data-slot="tile-media" data-variant="icon" class="flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=tile-description]]/tile:translate-y-0.5 group-has-[[data-slot=tile-description]]/tile:self-start [&_svg]:pointer-events-none transition-opacity duration-100 [&:is(a:hover>&)]:opacity-75 relative overflow-hidden bg-muted size-8 rounded-sm border [&_svg:not([class*='size-'])]:size-4"> <svg class="size-[1em] text-base" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||
<path d="M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2" />
|
||
<path d="M15 18H9" />
|
||
<path d="M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14" />
|
||
<circle cx="17" cy="18" r="2" />
|
||
<circle cx="7" cy="18" r="2" />
|
||
</svg> </div> <div class="relative z-10 flex flex-col gap-3 items-center text-center text-balance"> <h3 class="leading-none font-semibold">Industrial / Supply Chain</h3> <p class="text-muted-foreground text-sm">Traceability that survives vendor and contractor handoffs.</p> </div> <div class="flex flex-wrap gap-2 justify-center"><a data-slot="button" class="focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 text-primary underline-offset-4 hover:underline has-[>svg]:px-3 h-auto p-0" href="/verticals/supply-chain/">Supply chain →</a></div> </div></div> </section> </main> <a href="mailto:ds@infrafabric.io?subject=IF.Trace%20contact" class="fixed bottom-6 right-6 inline-flex h-10 items-center justify-center rounded-full border border-white/10 bg-slate-950/50 px-4 text-xs font-medium text-white/80 backdrop-blur hover:bg-slate-950/70 hover:text-white">contact</a> </body></html> |