enterprise-landing / index.html
aayu-outdooragi's picture
Add auto-play toggle to the scroll flight
cd41f76 verified
Raw
History Blame Contribute Delete
11.4 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Complide Enterprise β€” Compliance gating for AI agent fleets</title>
<meta name="description" content="Complide Enterprise puts a CISO in every terminal. Real-time, local-first compliance gating for fleets of AI coding agents β€” signed audit receipts, air-gapped by design." />
<link rel="preload" as="image" href="assets/scene_hq.webp" />
<link rel="preload" as="image" href="assets/scene_gate.webp" />
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<!-- Fixed chrome -->
<header class="nav">
<a class="nav__brand" href="#">
<svg class="nav__glyph" viewBox="0 0 24 24" fill="none" aria-hidden="true">
<path d="M12 2 4 5.6v6.1c0 4.8 3.4 8.6 8 10.3 4.6-1.7 8-5.5 8-10.3V5.6L12 2Z" stroke="currentColor" stroke-width="1.6" stroke-linejoin="round"/>
<path d="M8.5 11.8l2.4 2.4 4.6-4.9" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
<span>Complide</span>
<span class="nav__tag">Enterprise</span>
</a>
<nav class="nav__links">
<a href="#world-gate">Gate</a>
<a href="#world-vault">Audit</a>
<a href="#world-bunker">Air-gap</a>
<a href="#world-command">Fleet</a>
<a href="#details">Platform</a>
</nav>
<a class="btn btn--primary nav__cta" href="#cta">Request a demo</a>
</header>
<!-- Scene progress rail -->
<aside class="rail" aria-hidden="true">
<div class="rail__track"><div class="rail__fill" id="railFill"></div></div>
<ul class="rail__dots" id="railDots">
<li data-scene="0"><i></i><span>HQ</span></li>
<li data-scene="1"><i></i><span>Gate</span></li>
<li data-scene="2"><i></i><span>Audit</span></li>
<li data-scene="3"><i></i><span>Air-gap</span></li>
<li data-scene="4"><i></i><span>Fleet</span></li>
</ul>
</aside>
<!-- Auto-play: starts the flight scrolling itself after a short idle delay.
Independent of the rail's own fade so it's visible from the very top,
while the 7-second countdown is still running. -->
<button class="autoplay-toggle" id="autoplayToggle" type="button" aria-pressed="true" title="Auto-play is on β€” click to stop">
<svg class="autoplay-toggle__icon autoplay-toggle__icon--pause" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
<rect x="6" y="5" width="4" height="14" rx="1"/><rect x="14" y="5" width="4" height="14" rx="1"/>
</svg>
<svg class="autoplay-toggle__icon autoplay-toggle__icon--play" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
<path d="M7 4.5v15l13-7.5-13-7.5Z"/>
</svg>
<span class="autoplay-toggle__label">Auto-play</span>
</button>
<!-- The world: fixed stage, scroll scrubs the flight -->
<div class="world" id="world">
<div class="world__stage" id="stage">
<!-- The generated camera flight (Veo 3.1): five dive-in clips joined by
first/last-frame connector clips; scroll scrubs currentTime. -->
<div class="flight">
<!-- src is set by scroll-world.js (1440p on large screens, else 1080p) -->
<video id="flightVideo" muted playsinline preload="auto"></video>
<div class="scene__vignette"></div>
</div>
<section class="scene" data-scene="0" style="--fx:50%; --fy:40%;">
<img src="assets/scene_hq.webp" alt="Isometric diorama of the Complide enterprise headquarters at night" draggable="false" />
<div class="scene__vignette"></div>
</section>
<section class="scene" data-scene="1" style="--fx:50%; --fy:38%;">
<img src="assets/scene_gate.webp" alt="Isometric diorama of a security checkpoint gating commands as green, yellow or red" draggable="false" />
<div class="scene__vignette"></div>
</section>
<section class="scene" data-scene="2" style="--fx:58%; --fy:42%;">
<img src="assets/scene_vault.webp" alt="Isometric diorama of a vault holding a hash-chained ledger of signed audit receipts" draggable="false" />
<div class="scene__vignette"></div>
</section>
<section class="scene" data-scene="3" style="--fx:48%; --fy:58%;">
<img src="assets/scene_bunker.webp" alt="Isometric diorama of an air-gapped underground server bunker with a severed uplink" draggable="false" />
<div class="scene__vignette"></div>
</section>
<section class="scene" data-scene="4" style="--fx:50%; --fy:46%;">
<img src="assets/scene_command.webp" alt="Isometric diorama of a mission-control room governing a fleet of AI agents" draggable="false" />
<div class="scene__vignette"></div>
</section>
<!-- Copy cards, one per scene -->
<div class="cards">
<article class="card card--hero" data-card="0">
<p class="card__kicker">Complide Enterprise</p>
<h1>A CISO in every<br/>terminal.</h1>
<p class="card__body">
Real-time, local-first compliance gating for your entire fleet of AI coding
agents. Every command classified in under 80&nbsp;ms β€” before it runs.
</p>
<div class="card__actions">
<a class="btn btn--primary" href="#cta">Request a demo</a>
<a class="btn btn--ghost" href="#details">Explore the platform</a>
</div>
<p class="scroll-hint"><span class="scroll-hint__mouse"><span></span></span>Scroll to fly through</p>
</article>
<article class="card" data-card="1">
<p class="card__kicker">01 β€” The Gate</p>
<h2>Every command,<br/>gated in flight.</h2>
<p class="card__body">
GREEN reads pass instantly. YELLOW network ops are enriched.
RED irreversible actions stop at the barrier and wait for a human β€”
with the NIST 800-53 controls attached.
</p>
<div class="chips">
<span class="chip chip--green">GREEN&nbsp;Β· allow</span>
<span class="chip chip--yellow">YELLOW&nbsp;Β· enrich</span>
<span class="chip chip--red">RED&nbsp;Β· ask</span>
</div>
</article>
<article class="card" data-card="2">
<p class="card__kicker">02 β€” The Vault</p>
<h2>Audit receipts,<br/>signed and chained.</h2>
<p class="card__body">
Every decision becomes an Ed25519-signed, hash-chained receipt.
Hand your auditor cryptographic proof the gate ran β€” without ever
exposing raw command history.
</p>
<div class="chips">
<span class="chip">Ed25519</span>
<span class="chip">Tamper-evident</span>
<span class="chip">SHA-256 chain</span>
</div>
</article>
<article class="card" data-card="3">
<p class="card__kicker">03 β€” The Bunker</p>
<h2>Air-gapped<br/>by construction.</h2>
<p class="card__body">
Zero network calls in the gate path β€” enforced by CI, not by promise.
Complide runs offline, in sealed sandboxes, and inside your most
regulated environments.
</p>
<div class="chips">
<span class="chip">No cloud</span>
<span class="chip">Works offline</span>
<span class="chip">CI-enforced</span>
</div>
</article>
<article class="card" data-card="4">
<p class="card__kicker">04 β€” Mission Control</p>
<h2>Govern the whole<br/>agent fleet.</h2>
<p class="card__body">
Autonomy levels, regulation presets, drift detection and a live
governance INDEX β€” one policy surface for every agent, every repo,
every developer.
</p>
<div class="chips">
<span class="chip">SOC 2</span>
<span class="chip">HIPAA</span>
<span class="chip">PCI</span>
<span class="chip">FedRAMP</span>
</div>
</article>
</div>
</div>
<!-- Anchors used by the nav to jump inside the flight -->
<div class="world__anchors" aria-hidden="true">
<span id="world-hq"></span><span id="world-gate"></span><span id="world-vault"></span>
<span id="world-bunker"></span><span id="world-command"></span>
</div>
</div>
<!-- Scroll spacer that drives the flight -->
<div class="world-spacer" id="worldSpacer"></div>
<!-- Ground content after the flight -->
<main class="ground" id="details">
<section class="stats">
<div class="stat"><strong>&lt;80&nbsp;ms</strong><span>gate decision, local</span></div>
<div class="stat"><strong>90</strong><span>rules in the engine</span></div>
<div class="stat"><strong>0</strong><span>network calls in the gate path</span></div>
<div class="stat"><strong>837</strong><span>tests across 5 packages</span></div>
</section>
<section class="features">
<h2 class="ground__title">Built for the enterprise floor,<br/>not just the demo.</h2>
<div class="features__grid">
<div class="feature">
<h3>Autonomy levels</h3>
<p>Supervised, balanced or autonomous β€” tune how much your agents can do alone. Critical controls (credentials, data destruction, code integrity) always ask.</p>
</div>
<div class="feature">
<h3>Regulation presets</h3>
<p>SOC 2, HIPAA, PCI and FedRAMP presets filter and emphasize which controls gate, so policy matches your actual obligations.</p>
</div>
<div class="feature">
<h3>Drift detection</h3>
<p>Compare what agents did against what they were supposed to do. Catch rubber-stamping, unmatched cards and goal misalignment early.</p>
</div>
<div class="feature">
<h3>Learning cycle</h3>
<p>Consistently-approved YELLOW patterns surface as graduation candidates. RED never auto-graduates β€” the operator stays in the loop.</p>
</div>
<div class="feature">
<h3>Every agent, every IDE</h3>
<p>Claude Code hook, plus an MCP surface for Cursor, Windsurf and anything else. One rule table, overridable per team without forking.</p>
</div>
<div class="feature">
<h3>Cold-start bootstrap</h3>
<p>Turn a product idea into inferred NIST controls, relevant ComplyBench scenarios and a goals file β€” before the first line of code.</p>
</div>
</div>
</section>
<section class="cta" id="cta">
<h2>Put a CISO in every terminal.</h2>
<p>See Complide Enterprise gate a live agent fleet β€” on your infrastructure, with your policies.</p>
<div class="cta__actions">
<a class="btn btn--primary btn--lg" href="mailto:enterprise@complide.dev">Request a demo</a>
<a class="btn btn--ghost btn--lg" href="https://github.com/aayush-complide/cli">View on GitHub</a>
</div>
</section>
<footer class="footer">
<span>Β© 2026 Complide β€” local-first compliance gating for AI agents.</span>
<span>No data ever leaves your machine.</span>
</footer>
</main>
<script src="flight-timeline.js"></script>
<script src="scroll-world.js"></script>
</body>
</html>