diff --git a/public/images/agent1.png b/public/images/agent1.png index 27de355..1f0c9dc 100644 Binary files a/public/images/agent1.png and b/public/images/agent1.png differ diff --git a/public/images/ainode.png b/public/images/ainode.png index deeab5a..23d94ba 100644 Binary files a/public/images/ainode.png and b/public/images/ainode.png differ diff --git a/public/images/autonomous.png b/public/images/autonomous.png index f23729c..7b26053 100644 Binary files a/public/images/autonomous.png and b/public/images/autonomous.png differ diff --git a/public/images/edge.png b/public/images/edge.png index c718818..dadac70 100644 Binary files a/public/images/edge.png and b/public/images/edge.png differ diff --git a/public/images/edgenode.png b/public/images/edgenode.png index 04a33c2..2e51142 100644 Binary files a/public/images/edgenode.png and b/public/images/edgenode.png differ diff --git a/public/images/encryptednode.png b/public/images/encryptednode.png index 5d0659c..a0c3ead 100644 Binary files a/public/images/encryptednode.png and b/public/images/encryptednode.png differ diff --git a/public/images/energy.png b/public/images/energy.png index 80e5b68..269d66c 100644 Binary files a/public/images/energy.png and b/public/images/energy.png differ diff --git a/public/images/fullstack.png b/public/images/fullstack.png index f9c065f..74c0906 100644 Binary files a/public/images/fullstack.png and b/public/images/fullstack.png differ diff --git a/public/images/uptime.png b/public/images/uptime.png index e300aab..a2effdb 100644 Binary files a/public/images/uptime.png and b/public/images/uptime.png differ diff --git a/src/pages/nodes/NodeProducts.tsx b/src/pages/nodes/NodeProducts.tsx index 7e3ab6a..a1bff50 100644 --- a/src/pages/nodes/NodeProducts.tsx +++ b/src/pages/nodes/NodeProducts.tsx @@ -3,6 +3,7 @@ import { useState } from "react"; import { motion } from "framer-motion"; import { Eyebrow, SectionHeader, P } from "@/components/Texts"; +import { Button } from "@/components/Button"; import { QuestionMarkCircleIcon, CheckIcon, @@ -96,7 +97,7 @@ export function NodeProducts() {

-
+
{/* ------------------------------ */} {/* LEFT — TEXT AREA */} @@ -106,7 +107,7 @@ export function NodeProducts() { initial={{ opacity: 0, y: 20 }} animate={{ opacity: 1, y: 0 }} transition={{ duration: 0.4 }} - className="flex flex-col justify-center" + className="order-2 lg:order-1 flex flex-col justify-center" >

{selectedNode.name} @@ -168,29 +169,35 @@ export function NodeProducts() { {/* ------------------------ */} {/* BUTTONS AREA */} {/* ------------------------ */} -
+
- {/* Outline Button */} - - Learn More - - - {/* Solid Cyan Button */} - Purchase Node - + + + {/* Outline Button */} + + +
@@ -204,12 +211,12 @@ export function NodeProducts() { initial={{ opacity: 0, scale: 0.92 }} animate={{ opacity: 1, scale: 1 }} transition={{ duration: 0.35 }} - className="flex justify-center" + className="order-1 lg:order-2 flex justify-center" > {selectedNode.name} diff --git a/src/pages/nodes/NodeSpecs.tsx b/src/pages/nodes/NodeSpecs.tsx index 1454703..400e51d 100644 --- a/src/pages/nodes/NodeSpecs.tsx +++ b/src/pages/nodes/NodeSpecs.tsx @@ -4,7 +4,7 @@ import { Eyebrow, H3, P, Small, CT, CP } from "@/components/Texts"; const cards = [ { - category: "Autonomous", + category: "AUTONOMY", title: "Autonomous Operation", description: "Runs autonomously with no central control.", image: "/images/autonomous.png", @@ -12,13 +12,13 @@ const cards = [ innerRounded: "lg:rounded-tl-[calc(2rem+1px)]", }, { - category: "Security", + category: "SECURITY", title: "Encrypted by Default", description: "Fully encrypted and identity-based.", image: "/images/encryptednode.png", }, { - category: "Efficiency", + category: "EFFICIENCY", title: "Energy Efficient", description: "Energy-efficient and quiet, designed for 24/7 uptime.", image: "/images/energy.png", @@ -26,7 +26,7 @@ const cards = [ innerRounded: "lg:rounded-tr-[calc(2rem+1px)]", }, { - category: "Monitoring", + category: "MONITORING", title: "Measured Uptime", description: "Automatically measures uptime and contribution.", image: "/images/uptime.png", @@ -34,13 +34,13 @@ const cards = [ innerRounded: "lg:rounded-bl-[calc(2rem+1px)]", }, { - category: "Full Stack", + category: "SUPPORT", title: "Full Mycelium Stack Support", description: "Supports Mycelium Network, Cloud, Pods, and Agents.", image: "/images/fullstack.png", }, { - category: "Edge & Home", + category: "DEPLOYMENT", title: "Edge & Home Ready", description: "Runs seamlessly on compact hardware for edge, home, or micro-datacenter deployments.", @@ -52,9 +52,15 @@ const cards = [ export function NodeSpecs() { return ( -
-
+
+ {/* ✅ Top horizontal line with spacing */} +
+
+ + + {/* ✅ Inner content container */} +
Node Specifications

Built for Reliability and Control

@@ -63,7 +69,7 @@ export function NodeSpecs() {

{/* BENTO GRID */} -
+
{cards.map((item, index) => (
@@ -76,7 +82,7 @@ export function NodeSpecs() { {/* INNER CARD */}
@@ -89,9 +95,9 @@ export function NodeSpecs() { {/* RIGHT TEXT */}
- {item.category} + {item.category} {item.title} - {item.description} + {item.description}
@@ -105,6 +111,9 @@ export function NodeSpecs() { ))}
+ {/* ✅ Bottom horizontal line with spacing */} +
+
); } diff --git a/src/pages/nodes/NodeSteps.tsx b/src/pages/nodes/NodeSteps.tsx index f9241e6..c3504b0 100644 --- a/src/pages/nodes/NodeSteps.tsx +++ b/src/pages/nodes/NodeSteps.tsx @@ -1,6 +1,6 @@ "use client"; -import { Eyebrow, H3, P, CT, CP } from "@/components/Texts"; +import { Eyebrow, H3, P, CT } from "@/components/Texts"; import { CloudArrowDownIcon, CpuChipIcon, @@ -16,7 +16,7 @@ const steps = [ icon: CpuChipIcon, }, { - name: "Download Mycelium OS", + name: "Download Mycelium", description: "Install the Mycelium OS to prepare your node for network access.", icon: CloudArrowDownIcon, @@ -38,50 +38,74 @@ const steps = [ export function NodeSteps() { return (
- {/* Top line */} + + {/* Header spacing + borders */}
-
+ {/* Content */} +
+ + {/* HEADER */}
HOW IT WORKS - -

- Host a Node -

- -

+

Host a Node

+

Hosting a node takes minutes, and it runs automatically once online.

- {/* 🔹 Horizontal Stepper */} -
- {steps.map((step, i) => ( -
- {/* 🔹 Horizontal connector line (desktop only) */} - {i < steps.length - 1 && ( -
- )} + {/* STEPS */} +
    - {/* 🔹 Step header with icon */} -
    -
    - + {steps.map((step, i) => ( +
  • + + {/* LEFT COLUMN — circle + MOBILE vertical line */} +
    + + {/* Circle */} +
    + {i + 1}
    - {step.name} +
    - {/* 🔹 Description */} - {step.description} -
  • + {/* CONTENT */} +
    +
    + + {step.name} +
    +

    + {step.description} +

    +
    + + {/* DESKTOP horizontal line — perfectly centered */} + {i < steps.length - 1 && ( + + )} + ))} -
    + +
- {/* bottom line */} - {/* ✅ Bottom horizontal line with spacing */} -
-
+ + {/* Bottom border */} +
+
+
); }