diff --git a/src/components/magicui/infinite-moving-cards.tsx b/src/components/magicui/infinite-moving-cards.tsx index 90d64e4..0cd023e 100644 --- a/src/components/magicui/infinite-moving-cards.tsx +++ b/src/components/magicui/infinite-moving-cards.tsx @@ -20,15 +20,6 @@ export const InfiniteMovingCards = ({ const scrollerRef = React.useRef(null); const [start, setStart] = useState(false); - const getDirection = useCallback(() => { - if (containerRef.current) { - if (direction === "left") { - containerRef.current.style.setProperty("--animation-direction", "forwards"); - } else { - containerRef.current.style.setProperty("--animation-direction", "reverse"); - } - } - }, [direction]); const getSpeed = useCallback(() => { if (containerRef.current) { @@ -53,11 +44,10 @@ export const InfiniteMovingCards = ({ } }); - getDirection(); getSpeed(); setStart(true); } - }, [getDirection, getSpeed]); + }, [getSpeed]); useEffect(() => { addAnimation(); @@ -75,6 +65,9 @@ export const InfiniteMovingCards = ({ start && "animate-scroll", pauseOnHover && "hover:[animation-play-state:paused]", )} + style={{ + "--animation-direction": direction === "left" ? "forwards" : "reverse", + } as React.CSSProperties} > {items.map((item, idx) => (
  • diff --git a/src/pages/agents/AgentBento.tsx b/src/pages/agents/AgentBento.tsx new file mode 100644 index 0000000..31e6de1 --- /dev/null +++ b/src/pages/agents/AgentBento.tsx @@ -0,0 +1,157 @@ +"use client"; + +import { Eyebrow, H3, P } from "@/components/Texts"; + +const bentos = [ + { + id: "core", + eyebrow: "ARCHITECTURE", + title: "Deterministic by Design", + description: + "Every workload runs exactly as declared: no drift, no hidden state, no surprises.", + video: null, + colSpan: "lg:col-span-3", + rowSpan: "lg:row-span-1", + custom: true, + noBorder: true, + }, + + // ✅ Updated Bento Cards + { + id: "fungistor", + title: "FungiStor", + subtitle: "Long-Term AI Memory", + description: + "Erasure coding + compression slash storage bloat by up to 10× vs basic replication. Source-encrypted shards are geo-dispersed—lose pieces, rebuild perfectly from a quorum.", + video: "/videos/fungistor.mp4", + colSpan: "lg:col-span-3", + rowSpan: "lg:row-span-1", + }, + { + id: "herodb", + title: "HeroDB", + subtitle: "Active AI Memory", + description: + "Multimodal vector+keyword retrieval makes RAG feel instant across text, image, audio. Time-aware, policy-guarded context keeps results fresh while access stays governed.", + video: "/videos/herodb.mp4", + colSpan: "lg:col-span-3", + rowSpan: "lg:row-span-1", + }, + { + id: "mos", + title: "MOS Sandboxes", + subtitle: "Secure Agent Workspaces", + description: + "Attested, signed workspaces spin up ≈5s worldwide—ready to execute. Hardware isolation and scoped egress: run hard, tear down clean, zero residue.", + video: "/videos/herodb.mp4", + colSpan: "lg:col-span-3", + rowSpan: "lg:row-span-1", + }, + { + id: "mesh", + title: "Mycelium Mesh", + subtitle: "Secure Communication Network", + description: + "A private, public-key fabric with self-healing multi-path routing. Glides through NATs and firewalls—direct, low-latency, no middlemen.", + video: "/videos/mesh.mp4", + colSpan: "lg:col-span-2", + rowSpan: "lg:row-span-1", + }, + { + id: "deterministic", + title: "Deterministic Deployment", + subtitle: "Verifiable Code Execution", + description: + "Declare intent, get a hash; remote attestation proves that is what runs. Reproducible builds, signed artifacts, immutable logs—supply chain, sealed.", + video: "/videos/deterministic.mp4", + colSpan: "lg:col-span-2", + rowSpan: "lg:row-span-1", + }, + { + id: "agent-coordination", + title: "Agent Coordination", + subtitle: "Sovereign Workflow Management", + description: + "Your private agent conducts swarms of specialists in parallel. Policies fan out work; human checkpoints keep you in command.", + video: "/videos/agent.mp4", + colSpan: "lg:col-span-2", + rowSpan: "lg:row-span-1", + }, +]; + +export function AgentBento() { + return ( +
    +
    +
    + +
    +
    + {bentos.map((card) => ( +
    + {!card.noBorder && ( +
    + )} + +
    + {/* ✅ VIDEO instead of animation */} + {card.video ? ( +
    +
    + ) : ( +
    + )} + +
    + {card.custom ? ( + <> + {card.eyebrow && {card.eyebrow}} +

    {card.title}

    +

    {card.description}

    + + ) : ( + <> + {/* ✅ NEW SUBTITLE */} +

    {card.subtitle}

    + +

    + {card.title} +

    + + + +

    + {card.description} +

    + + )} +
    +
    + + {!card.noBorder && ( +
    + )} +
    + ))} +
    +
    +
    + ); +} diff --git a/src/pages/agents/AgentsPage.tsx b/src/pages/agents/AgentsPage.tsx index 225d420..d025d38 100644 --- a/src/pages/agents/AgentsPage.tsx +++ b/src/pages/agents/AgentsPage.tsx @@ -2,10 +2,9 @@ import { AnimatedSection } from '../../components/AnimatedSection' import { DeploySection } from './DeploySection' import { GallerySection } from './GallerySection' import { Companies } from './Companies' -import { BentoSection } from './BentoSection' +import { AgentBento } from './AgentBento' import { AgentHeroAlt } from './AgentHeroAlt' import { CallToAction } from './CallToAction' -import { AgentComponents } from './AgentComponents' export default function AgentsPage() { return ( @@ -27,11 +26,7 @@ export default function AgentsPage() { - - - - - + diff --git a/src/pages/agents/CallToAction.tsx b/src/pages/agents/CallToAction.tsx index 8c3b8b9..b472596 100644 --- a/src/pages/agents/CallToAction.tsx +++ b/src/pages/agents/CallToAction.tsx @@ -1,59 +1,57 @@ -import { CircleBackground } from '../../components/CircleBackground' -import { Container } from '@/components/Container' -import { Button } from '@/components/Button' +"use client"; + +import { Container } from "@/components/Container"; +import { Button } from "@/components/Button"; export function CallToAction() { return ( -
    -
    - +
    + {/* ✅ Top horizontal line with spacing */} +
    +
    + + {/* ✅ Main boxed area */} +
    + +
    +

    + Start Building the Future of Sovereign AI +

    + +

    + Use today’s components — models, storage, compute, mesh — and step into agents as they arrive. +

    + + {/* ✅ Two cards, stacked center with spacing */} +
    +
    + +
    + +
    + +
    + +
    + +
    +
    +
    +
    - -
    -

    - Start Building the Future of Sovereign AI -

    -

    - Use today’s components — models, storage, compute, mesh — - and step into agents as they arrive. -

    - -
    - - - - - -
    -
    -
    + {/* ✅ Bottom horizontal line with spacing */} +
    +
    - ) + ); } diff --git a/src/pages/agents/Companies.tsx b/src/pages/agents/Companies.tsx index f056ac9..22be635 100644 --- a/src/pages/agents/Companies.tsx +++ b/src/pages/agents/Companies.tsx @@ -39,25 +39,10 @@ const row2 = logos.slice(6); export function Companies() { return ( -
    -
    - - {/* Heading */} - - -

    - Mycelium Cloud allows you to deploy and scale AI agents from top global providers on a decentralized, privacy-first infrastructure. -

    -
    - +
    +
    {/* Logos grid */} -
    +
    -
    +
    + {/* ✅ Top horizontal line with spacing */} +
    +
    + +
    +
    +
    ); } diff --git a/src/pages/cloud/CalltoAction.tsx b/src/pages/cloud/CalltoAction.tsx index d2c4290..6f9e322 100644 --- a/src/pages/cloud/CalltoAction.tsx +++ b/src/pages/cloud/CalltoAction.tsx @@ -7,13 +7,13 @@ export function CallToAction() { return (
    {/* ✅ Top horizontal line with spacing */} -
    -
    +
    +
    {/* ✅ Main boxed area */}
    @@ -48,8 +48,8 @@ export function CallToAction() {
    {/* ✅ Bottom horizontal line with spacing */} -
    -
    +
    +
    ); } diff --git a/src/pages/compute/CallToAction.tsx b/src/pages/compute/CallToAction.tsx index d2c4290..6f9e322 100644 --- a/src/pages/compute/CallToAction.tsx +++ b/src/pages/compute/CallToAction.tsx @@ -7,13 +7,13 @@ export function CallToAction() { return (
    {/* ✅ Top horizontal line with spacing */} -
    -
    +
    +
    {/* ✅ Main boxed area */}
    @@ -48,8 +48,8 @@ export function CallToAction() {
    {/* ✅ Bottom horizontal line with spacing */} -
    -
    +
    +
    ); } diff --git a/src/pages/compute/ComputeCapabilitiesNew.tsx b/src/pages/compute/ComputeCapabilitiesNew.tsx index 2d45f00..4e864d2 100644 --- a/src/pages/compute/ComputeCapabilitiesNew.tsx +++ b/src/pages/compute/ComputeCapabilitiesNew.tsx @@ -86,14 +86,14 @@ export function ComputeCapabilitiesNew() { diff --git a/src/pages/download/DevHub.tsx b/src/pages/download/DevHub.tsx index ab4ea0c..ef78b71 100644 --- a/src/pages/download/DevHub.tsx +++ b/src/pages/download/DevHub.tsx @@ -54,7 +54,7 @@ export function DevHub() { href={feature.href} target="_blank" rel="noopener noreferrer" - className="block rounded-2xl border border-gray-700 bg-gray-900/40 p-6 shadow-sm transition-all duration-300 ease-in-out hover:scale-105 hover:border-cyan-500 hover:bg-gray-800 hover:shadow-lg hover:shadow-cyan-500/20" + className="block rounded-2xl border border-gray-800 bg-gray-900/40 p-6 shadow-sm transition-all duration-300 ease-in-out hover:scale-105 hover:border-cyan-500 hover:bg-gray-800 hover:shadow-lg hover:shadow-cyan-500/20" >