---
updatedAt: 2026-09-17T13:55:10.000Z
agentTools:
  projectIndex: https://docs.sixfab.com/llms.txt
---

# Overview

The ALPON X4 edge computer enables reliable industrial edge computing for real-time data processing. It is built for rugged environments and scalable IoT deployments.

<HTMLBlock>{`
<style>
/* ══════════════════════════════════════════════════════════════════════
   ALPON X4 · Overview
   Page type: §11.2 Hardware overview
   Tier governance: Tier 1 default · Tier 3 ALPON Gradient on hero/AEO
                    · No AI Iris (X4 has no NPU; project §3 + §11)
                    Structural template mirrors alpon-x5-ai-overview.html
                    in every aspect: Hero → Meta → AEO → Spec bar →
                    Features → Flow → Use cases → Platform → Lockup.
                    The only differences are the brand surface (ALPON
                    Gradient instead of Neural Field) and the removal of
                    AI / NPU / CES 2026 content per the project rules.
   ══════════════════════════════════════════════════════════════════════ */

/* === FONTS ============================================================ */
@font-face { font-family:'Gilroy'; src:url('https://sixfab.com/wp-content/fonts/Gilroy-Regular.woff2')   format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('https://sixfab.com/wp-content/fonts/Gilroy-Medium.woff2')    format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('https://sixfab.com/wp-content/fonts/Gilroy-SemiBold.woff2')  format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('https://sixfab.com/wp-content/fonts/Gilroy-Bold.woff2')      format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('https://sixfab.com/wp-content/fonts/Gilroy-ExtraBold.woff2') format('woff2'); font-weight:800; font-display:swap; }
@font-face { font-family:'JetBrains Mono'; src:url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono@2.304/fonts/webfonts/JetBrainsMono-Regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'JetBrains Mono'; src:url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono@2.304/fonts/webfonts/JetBrainsMono-Medium.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; }

/* === DESIGN TOKENS — 6-tier (DESIGN.md) ============================== */
.sf-doc {
  /* Tier 1 — Core Brand */
  --primary:       #034860;
  --secondary:     #00E0B8;
  --tertiary:      #1B2D45;
  --neutral:       #E8F5F0;

  /* Tier 2 — Neutral & Interface */
  --white:         #FFFFFF;
  --light:         #F6F8F9;
  --line:          #DDE6EC;
  --slate-light:   #94A8B5;
  --slate:         #52667A;
  --deep-ink:      #10202E;

  /* Tier 3 — AI / Product Accent (AI Iris declared for token completeness;
     not used anywhere on X4 per project §3 + §11) */
  --ai-iris:       #6B47F0;
  --ai-mist:       #F0EDFF;
  --alpon-purple:  #4F008E;
  --alpon-cyan:    #00A6C8;
  --alpon-cyan-deep: #007A8F; /* cyan for small text on light surfaces (WCAG AA 5.0:1) */

  /* Tier 4 — Campaign / Event (declared only; not used on X4) */
  --ember:         #FF6B35;
  --ember-dark:    #B8471F;

  /* Tier 5 — Semantic */
  --success:       #00B894;
  --warning:       #F59E0B;
  --danger:        #DC2626;
  --info:          #429CBF;
  --success-text:  #047857;
  --warning-text:  #92400E;
  --danger-text:   #B91C1C;
  --info-text:     #0E4A66;
  --success-bg:    #E0F5EE;
  --warning-bg:    #FDF1DC;
  --danger-bg:     #FBE5E5;
  --info-bg:       #DCEFF7;

  /* On-color */
  --on-primary:    #FFFFFF;
  --on-secondary:  #1B2D45;
  --on-ember:      #10202E;

  /* Gradients */
  --grad-edge-cloud:    linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
  --grad-alpon:         linear-gradient(135deg, var(--alpon-purple) 0%, var(--alpon-cyan) 100%);
  --grad-alert-horizon: linear-gradient(120deg, var(--primary) 0%, var(--ember) 100%);

  /* Spacing scale */
  --xs: 4px; --sm: 8px; --md: 16px; --lg: 24px;
  --xl: 32px; --2xl: 48px; --3xl: 64px; --4xl: 96px;

  /* Radius */
  --r-sm: 4px; --r-md: 8px; --r-lg: 10px; --r-xl: 12px; --r-2xl: 16px;

  /* Shadows */
  --shadow-sm: 0 1px 2px rgba(10,23,33,.04);
  --shadow-md: 0 4px 12px rgba(10,23,33,.06);
  --shadow-lg: 0 8px 24px rgba(10,23,33,.08);

  /* Fonts */
  --font-sans: 'Gilroy', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;

  font-family: var(--font-sans);
  font-size: 16px;
  line-height: 1.6;
  color: var(--deep-ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.sf-doc * { box-sizing: border-box; }

/* === BASE TYPOGRAPHY ================================================== */
.sf-doc h1 {
  font-size: 3rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.08;
  color: var(--deep-ink);
  margin: 0 0 16px;
}
.sf-doc h2 {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.15;
  color: var(--primary);
  margin: 48px 0 12px;
  padding-bottom: 0;
  border-bottom: 0;
}
.sf-doc h2:first-of-type { margin-top: 0; }
.sf-doc h3 {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.015em;
  line-height: 1.25;
  color: var(--deep-ink);
  margin: 32px 0 12px;
}
.sf-doc h4 {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--deep-ink);
  margin: 24px 0 8px;
}
.sf-doc p {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--deep-ink);
  margin: 0 0 14px;
}
.sf-doc a {
  color: var(--primary);
  text-decoration: none;
  transition: color .15s, opacity .15s;
}
.sf-doc a:hover { color: var(--deep-ink); text-decoration: underline; }
.sf-doc ul, .sf-doc ol { padding-left: 22px; margin: 8px 0 16px; }
.sf-doc li { font-size: 1rem; line-height: 1.6; color: var(--deep-ink); margin-bottom: 6px; }
.sf-doc ul li::marker { color: var(--primary); }
.sf-doc code {
  font-family: var(--font-mono);
  font-size: 0.875rem;
  background: var(--light);
  color: var(--primary);
  padding: 1px 6px;
  border-radius: var(--r-sm);
  border: 0;
}
.sf-doc strong { color: var(--deep-ink); font-weight: 700; }
.sf-doc hr {
  border: 0;
  height: 1px;
  background: var(--line);
  margin: 48px 0;
}

.sf-lead {
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--deep-ink);
  margin: 0 0 18px;
}

/* === EYEBROW ========================================================== */
.sf-eyebrow {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--primary);
  margin: 0 0 14px;
}

/* === ICONS ============================================================ */
.sf-icon { display: inline-block; flex-shrink: 0; vertical-align: middle; }

/* ══════════════════════════════════════════════════════════════════════
   HERO — sf-hero--alpon (Tier 3 ALPON Gradient: purple → cyan)
   Same structural pattern as the X5 AI overview's sf-hero--ai; the surface
   colour differs because ALPON X4 uses the ALPON Gradient (its product
   family surface) instead of Neural Field (reserved for AI signal).
   Both surfaces follow design-language §6.2.2: white text, !important on
   color, wildcard fallback inside the surface.
   ══════════════════════════════════════════════════════════════════════ */
.sf-doc .sf-hero {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: var(--xl);
  align-items: center;
  padding: var(--xl);
  margin: 0 0 var(--xl);
  background: var(--light);
  border-radius: var(--r-2xl);
  overflow: hidden;
  position: relative;
}
.sf-doc .sf-hero--alpon {
  background: var(--grad-alpon);
  color: #FFFFFF !important;
}
.sf-doc .sf-hero--alpon * { color: inherit; }
.sf-doc .sf-hero__copy { min-width: 0; position: relative; z-index: 1; }

/* Hero typography — force white so ReadMe heading defaults can't darken */
.sf-doc .sf-hero--alpon .sf-eyebrow {
  color: var(--secondary) !important;
  font-weight: 700;
}
.sf-doc .sf-hero__title {
  font-family: var(--font-sans);
  font-size: 3rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.08;
  color: var(--deep-ink);
  margin: 0 0 16px;
}
.sf-doc .sf-hero--alpon .sf-hero__title {
  color: #FFFFFF !important;
}
.sf-doc .sf-hero__lead {
  font-size: 1.125rem;
  line-height: 1.6;
  margin: 0 0 20px;
  text-align: justify;
  hyphens: auto;
}
.sf-doc .sf-hero--alpon .sf-hero__lead {
  color: rgba(255, 255, 255, 0.92) !important;
}
.sf-doc .sf-hero--alpon .sf-hero__lead strong {
  color: #FFFFFF !important;
  font-weight: 800;
}
.sf-doc .sf-hero--alpon code {
  background: rgba(255, 255, 255, 0.14);
  color: #FFFFFF !important;
  border: 0;
}
.sf-doc .sf-hero__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 24px;
}
.sf-doc .sf-hero--alpon .sf-pill {
  background: rgba(255, 255, 255, 0.12) !important;
  color: #FFFFFF !important;
  border-color: rgba(255, 255, 255, 0.22);
}
.sf-doc .sf-hero--alpon .sf-pill--brand {
  background: #FFFFFF !important;
  color: var(--alpon-purple) !important;
  border-color: #FFFFFF;
  font-weight: 700;
}
.sf-doc .sf-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; }

/* Hero visual — transparent product PNG floats over the ALPON Gradient.
   No card, no white rectangle. Drop-shadow gives depth so the device
   reads as a hovering object, not a sticker. Halo tinted purple to keep
   the ALPON Gradient family. */
.sf-doc .sf-hero__visual {
  margin: 0;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  background: transparent;
  overflow: visible;
  padding: 8px;
}
.sf-doc .sf-hero__visual img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter:
    drop-shadow(0 22px 32px rgba(10, 20, 35, 0.45))
    drop-shadow(0 8px 14px rgba(10, 20, 35, 0.30))
    drop-shadow(0 0 24px rgba(79, 0, 142, 0.28));
}

/* === BUTTONS ========================================================== */
.sf-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 700;
  padding: 11px 20px;
  border-radius: var(--r-md);
  border: 1px solid transparent;
  text-decoration: none !important;
  transition: background .15s, color .15s, border-color .15s, transform .15s;
  cursor: pointer;
  letter-spacing: -0.005em;
  white-space: nowrap;
}
.sf-btn:hover { transform: translateY(-1px); text-decoration: none !important; }
.sf-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px #FFFFFF, 0 0 0 4px var(--secondary);
}

/* Primary CTA on hero — mint on the ALPON Gradient (same as X5 AI overview) */
.sf-btn--mint {
  background: var(--secondary);
  color: var(--on-secondary) !important;
  border-color: var(--secondary);
}
.sf-btn--mint:hover {
  background: #00C8A4;
  color: var(--on-secondary) !important;
  border-color: #00C8A4;
}

/* Secondary CTA on dark/gradient surface — translucent white outline */
.sf-btn--secondary-dark {
  background: rgba(255, 255, 255, 0.08);
  color: #FFFFFF !important;
  border-color: rgba(255, 255, 255, 0.45);
  padding: 10px 19px;
}
.sf-btn--secondary-dark:hover,
.sf-btn--secondary-dark:focus-visible {
  background: rgba(255, 255, 255, 0.20);
  color: #FFFFFF !important;
  border-color: #FFFFFF;
}

/* Hero CTA elevation so buttons stay legible across every stop of the
   ALPON Gradient (purple → cyan). */
.sf-doc .sf-hero--alpon .sf-btn--mint,
.sf-doc .sf-hero--alpon .sf-btn--secondary-dark {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.18), 0 0 0 1px rgba(255, 255, 255, 0.06);
}

/* Legacy variants kept for other CTAs on the page */
.sf-btn--primary {
  background: var(--primary);
  color: var(--on-primary) !important;
  border-color: var(--primary);
}
.sf-btn--primary:hover { background: var(--deep-ink); border-color: var(--deep-ink); }
.sf-doc a.sf-btn--secondary,
.sf-btn--secondary {
  background: rgba(0, 224, 184, 0.12);
  color: var(--secondary) !important;
  border-color: var(--secondary);
  font-weight: 700;
  backdrop-filter: blur(4px);
}
.sf-doc a.sf-btn--secondary:hover,
.sf-btn--secondary:hover {
  background: var(--secondary);
  border-color: var(--secondary);
  color: var(--on-secondary) !important;
  text-decoration: none !important;
}
.sf-btn__arrow {
  display: inline-flex;
  align-items: center;
  transition: transform .15s;
}
.sf-btn:hover .sf-btn__arrow { transform: translateX(2px); }

/* === META BAR ========================================================= */
/* Quiet sans-serif row, primary-teal badge on light surface — sits between
   the ALPON Gradient hero and the ALPON Gradient AEO as a calm Tier-1
   breath between two Tier-3 surfaces. */
.sf-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--slate);
  margin: 0 0 28px;
}
.sf-meta__badge {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 0.75rem;
  padding: 3px 8px;
  border-radius: var(--r-sm);
  background: var(--light);
  color: var(--primary) !important;
  border: 1px solid var(--line);
}
.sf-meta__sep { color: var(--line); }

/* ══════════════════════════════════════════════════════════════════════
   AEO ANSWER BLOCK — sf-aeo--alpon (Tier 3 ALPON Gradient left border)
   Same question-as-heading pattern as the X5 AI overview's sf-aeo--ai;
   the surface tints purple (X4's gradient-start family color) instead of
   AI mist.
   ══════════════════════════════════════════════════════════════════════ */
.sf-aeo {
  position: relative;
  background: var(--light);
  border: 1px solid var(--line);
  border-left: 4px solid var(--primary);
  border-radius: var(--r-md);
  padding: var(--lg) var(--xl);
  margin: 0 0 var(--xl);
}
.sf-aeo--alpon {
  background: linear-gradient(135deg, rgba(79, 0, 142, 0.05) 0%, rgba(0, 166, 200, 0.05) 100%);
  border-color: rgba(79, 0, 142, 0.18);
  border-left-color: var(--alpon-purple);
}
/* The question itself is the heading — readable display type, larger than
   the answer paragraph below it. */
.sf-aeo__label {
  display: block;
  font-family: var(--font-sans);
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.015em;
  text-transform: none;
  color: var(--primary);
  margin: 0 0 var(--sm);
}
.sf-aeo--alpon .sf-aeo__label { color: var(--alpon-purple); }
.sf-aeo__text {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--deep-ink);
  margin: 0;
}
.sf-aeo__text strong { color: var(--primary); font-weight: 600; }
.sf-aeo--alpon .sf-aeo__text strong { color: var(--alpon-purple); }

/* ══════════════════════════════════════════════════════════════════════
   PILL (factual badge)
   ══════════════════════════════════════════════════════════════════════ */
.sf-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--r-sm);
  background: var(--light);
  color: var(--deep-ink);
  border: 1px solid var(--line);
  white-space: nowrap;
  line-height: 1.4;
}
.sf-pill--success { background: var(--success-bg); color: var(--success-text); border-color: var(--success-bg); }
.sf-pill--info    { background: var(--info-bg);    color: var(--info-text);    border-color: var(--info-bg); }
.sf-pill--brand {
  background: var(--primary);
  color: var(--on-primary);
  border-color: var(--primary);
}

/* ══════════════════════════════════════════════════════════════════════
   PLATFORM & ECOSYSTEM — sf-platform-grid (showcase cards)
   Two-column tall cards: gradient header band with icon, title,
   description, capability chips, footer CTA. Identical to the X5 AI
   overview's pattern.
   ══════════════════════════════════════════════════════════════════════ */
.sf-platform-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin: 18px 0 0;
}
.sf-platform {
  display: flex;
  flex-direction: column;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2xl);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  position: relative;
}
.sf-platform:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
  border-color: var(--slate-light);
}

/* Header band — full-width colored strip with icon on the left */
.sf-platform__band {
  position: relative;
  padding: 22px 24px 18px;
  display: flex;
  align-items: center;
  gap: 14px;
  color: #FFFFFF;
  overflow: hidden;
}
.sf-platform__band * { color: inherit; }
.sf-platform--cloud .sf-platform__band {
  background: var(--grad-edge-cloud);
}
.sf-platform--cloud .sf-platform__band::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 100% 0%, rgba(255,255,255,0.18), transparent 50%),
    radial-gradient(circle at 0% 100%, rgba(0,0,0,0.10), transparent 50%);
  pointer-events: none;
}
.sf-platform--compare .sf-platform__band {
  background: var(--tertiary);
}
.sf-platform--compare .sf-platform__band::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 90% 10%, rgba(0,224,184,0.18), transparent 55%);
  pointer-events: none;
}

.sf-platform__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--r-md);
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #FFFFFF;
  backdrop-filter: blur(4px);
  position: relative;
  z-index: 1;
}
.sf-platform__icon svg { width: 22px; height: 22px; }

.sf-platform__band-text {
  min-width: 0;
  position: relative;
  z-index: 1;
}
.sf-platform__eyebrow {
  font-family: var(--font-sans);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78) !important;
  margin: 0 0 4px;
  display: block;
}
.sf-platform--cloud .sf-platform__eyebrow { color: var(--secondary) !important; }
.sf-platform--compare .sf-platform__eyebrow { color: var(--secondary) !important; }
.sf-platform__title {
  font-family: var(--font-sans);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: #FFFFFF !important;
  margin: 0;
}

/* Body — description + capability chips */
.sf-platform__body {
  padding: 20px 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.sf-doc .sf-platform__desc {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--slate);
  margin: 0 0 16px;
}
.sf-platform__desc strong { color: var(--deep-ink); font-weight: 600; }

.sf-platform__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 20px;
}
.sf-platform__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 9999px;
  background: var(--light);
  color: var(--primary);
  border: 1px solid var(--line);
  line-height: 1.3;
}
.sf-platform__chip-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--secondary);
  flex-shrink: 0;
}
.sf-platform--compare .sf-platform__chip-dot { background: var(--alpon-cyan); }

/* Footer — single CTA link at the bottom */
.sf-platform__foot {
  margin-top: auto;
  padding-top: 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.sf-doc a.sf-platform__cta,
.sf-platform__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--primary) !important;
  text-decoration: none !important;
  letter-spacing: -0.005em;
  transition: gap .15s ease, color .15s ease;
}
.sf-doc a.sf-platform__cta:hover,
.sf-platform__cta:hover {
  gap: 12px;
  color: var(--deep-ink) !important;
  text-decoration: none !important;
}
.sf-platform__cta svg {
  width: 16px;
  height: 16px;
  transition: transform .15s ease;
}
.sf-platform__cta:hover svg { transform: translateX(2px); }

.sf-platform__meta {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slate);
}

/* ══════════════════════════════════════════════════════════════════════
   SPEC BAR — 4 lead specs in a tight strip under the AEO
   ══════════════════════════════════════════════════════════════════════ */
.sf-spec-bar {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin: 0 0 var(--2xl);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  overflow: hidden;
}
.sf-spec-bar__item {
  padding: 18px 20px;
  border-right: 1px solid var(--line);
}
.sf-spec-bar__item:last-child { border-right: 0; }
.sf-spec-bar__label {
  font-family: var(--font-sans);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 6px;
}
.sf-spec-bar__value {
  font-family: var(--font-sans);
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--primary);
  line-height: 1.1;
  margin-bottom: 2px;
}
.sf-spec-bar__sub {
  font-family: var(--font-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--slate);
}

/* ══════════════════════════════════════════════════════════════════════
   FEATURE GRID + CARD — same as X5 AI overview, minus sf-card--ai.
   The lead card on X4 carries sf-card--alpon-accent to mark it as the
   product-family card; AI Iris is reserved for AI feature signal and is
   not used on X4 (project §3 + §11).
   ══════════════════════════════════════════════════════════════════════ */
.sf-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 14px;
  margin: 18px 0 24px;
}
.sf-card {
  background: var(--white);
  color: var(--deep-ink);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: 18px 20px;
  transition: border-color .15s, transform .15s;
}
.sf-card:hover { border-color: var(--slate-light); }
.sf-card--alpon-accent {
  background: linear-gradient(135deg, rgba(79, 0, 142, 0.04) 0%, rgba(0, 166, 200, 0.04) 100%);
  border: 1px solid rgba(0, 166, 200, 0.22);
  position: relative;
}
.sf-card--alpon-accent::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--grad-alpon);
  border-radius: var(--r-xl) var(--r-xl) 0 0;
}
.sf-feature {
  display: flex;
  gap: 14px;
  align-items: flex-start;
}
.sf-feature__icon {
  width: 36px;
  height: 36px;
  border-radius: var(--r-md);
  background: var(--light);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border: 1px solid var(--line);
}
.sf-feature__icon svg { width: 18px; height: 18px; }
.sf-card--alpon-accent .sf-feature__icon {
  background: var(--white);
  color: var(--alpon-cyan);
  border-color: rgba(0, 166, 200, 0.22);
}
.sf-feature__body { min-width: 0; }
.sf-feature__title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--deep-ink);
  margin: 0 0 4px;
  line-height: 1.3;
  letter-spacing: -0.005em;
}
.sf-feature__desc {
  font-size: 0.875rem;
  color: var(--slate);
  line-height: 1.55;
  margin: 0;
}
.sf-feature__desc strong { color: var(--deep-ink); font-weight: 600; }
.sf-feature__desc code {
  background: rgba(0, 0, 0, 0.04);
  border: 0;
  font-size: 0.8125rem;
}
.sf-card--alpon-accent .sf-feature__desc code {
  background: rgba(0, 166, 200, 0.08);
  color: var(--alpon-cyan-deep);
}

/* ══════════════════════════════════════════════════════════════════════
   FLOW / PIPELINE — same pattern as X5 AI overview's "How inference flows".
   On X4, the flow describes the IoT telemetry pipeline: Connect →
   Pre-process on CM4 → Aggregate locally → Forward over the chosen
   network path. No AI step (X4 has no NPU).
   ══════════════════════════════════════════════════════════════════════ */
.sf-flow {
  margin: 18px 0 24px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-2xl);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.sf-flow__head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  background: var(--light);
  border-bottom: 1px solid var(--line);
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slate);
}
.sf-flow__head .sf-icon { color: var(--primary); }
.sf-flow__title { color: var(--primary); }
.sf-flow__steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  padding: 28px 22px;
  position: relative;
}
/* The flowing rail — sits behind the cards, runs through their vertical
   centers. On X4 the rail is the ALPON Gradient (purple → cyan) to mark
   the product family; on X5 AI it stops through AI Iris. */
.sf-flow__steps::before {
  content: '';
  position: absolute;
  top: 70px;
  left: 22px;
  right: 22px;
  height: 2px;
  background: linear-gradient(90deg,
    var(--primary) 0%,
    var(--primary) 30%,
    var(--alpon-purple) 50%,
    var(--alpon-cyan) 75%,
    var(--secondary) 100%);
  border-radius: 9999px;
  opacity: 0.45;
  z-index: 0;
}
.sf-flow__step {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 6px;
}
.sf-flow__icon {
  width: 64px;
  height: 64px;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--white);
  color: var(--primary);
  border: 2px solid var(--primary);
  margin-bottom: 14px;
  box-shadow: 0 0 0 6px var(--white), 0 4px 14px rgba(3, 72, 96, 0.18);
  transition: transform .2s ease, box-shadow .2s ease;
}
.sf-flow__step:hover .sf-flow__icon {
  transform: translateY(-3px);
  box-shadow: 0 0 0 6px var(--white), 0 8px 20px rgba(3, 72, 96, 0.28);
}
/* The "highlight" step on X4 is step 3 (aggregation on device) — same
   visual position as the X5 AI overview's NPU inference step. Accent
   colour is ALPON Cyan (X4 product-keyed) instead of AI Iris. */
.sf-flow__step--alpon .sf-flow__icon {
  color: var(--alpon-cyan);
  border-color: var(--alpon-cyan);
  background: var(--white);
  box-shadow: 0 0 0 6px var(--white), 0 4px 14px rgba(0, 166, 200, 0.32);
}
.sf-flow__step--alpon:hover .sf-flow__icon {
  box-shadow: 0 0 0 6px var(--white), 0 8px 22px rgba(0, 166, 200, 0.48);
}
.sf-flow__num {
  font-family: var(--font-sans);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 6px;
}
.sf-flow__step--alpon .sf-flow__num { color: var(--alpon-cyan-deep); }
.sf-flow__step-title {
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 700;
  color: var(--deep-ink);
  margin-bottom: 6px;
  line-height: 1.3;
  letter-spacing: -0.01em;
}
.sf-flow__step-desc {
  font-size: 0.8125rem;
  color: var(--slate);
  line-height: 1.5;
  max-width: 190px;
}
.sf-flow__foot {
  padding: 16px 22px;
  background: var(--info-bg);
  border-top: 1px solid var(--line);
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.sf-flow__foot-icon { color: var(--info-text); flex-shrink: 0; margin-top: 2px; }
.sf-flow__foot-body { min-width: 0; }
.sf-flow__foot-title {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--info-text);
  margin-bottom: 4px;
}
.sf-flow__foot-text {
  font-size: 0.9375rem;
  color: var(--deep-ink);
  line-height: 1.55;
  margin: 0;
}
.sf-flow__foot-text strong { color: var(--deep-ink); font-weight: 600; }

/* ══════════════════════════════════════════════════════════════════════
   USE GRID — same pattern as X5 AI overview "Where it fits"
   Concise icon + title + one-sentence desc. No bullet lists.
   ══════════════════════════════════════════════════════════════════════ */
.sf-use-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin: 18px 0;
}
.sf-use {
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: 16px 18px;
  background: var(--white);
  display: flex;
  gap: 12px;
  align-items: flex-start;
  transition: border-color .15s, transform .15s;
}
.sf-use:hover { border-color: var(--slate-light); transform: translateY(-1px); }
.sf-use__icon {
  width: 32px;
  height: 32px;
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--light);
  color: var(--primary);
  border: 1px solid var(--line);
}
.sf-use__icon svg { width: 16px; height: 16px; }
.sf-use__body { min-width: 0; }
.sf-use__title {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--deep-ink);
  margin: 0 0 4px;
  line-height: 1.3;
}
.sf-use__desc {
  font-size: 0.8125rem;
  color: var(--slate);
  line-height: 1.55;
  margin: 0;
}
.sf-use__desc strong { color: var(--deep-ink); font-weight: 600; }

/* ══════════════════════════════════════════════════════════════════════
   LOCKUP FOOTER — same Ink Navy centered panel as the X5 AI overview.
   On X4, only the "Built on Raspberry Pi" partnership is canonical
   (DEEPX and CES 2026 are X5 AI only per project §2 + §11).
   ══════════════════════════════════════════════════════════════════════ */
.sf-lockup-footer {
  margin: var(--2xl) 0 0;
  padding: var(--xl);
  background: var(--tertiary);
  border-radius: var(--r-2xl);
  text-align: center;
  color: rgba(255, 255, 255, 0.92);
}
.sf-lockup-footer * { color: inherit; }
.sf-lockup-footer__eyebrow {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--secondary) !important;
  margin-bottom: 12px;
  display: block;
}
.sf-lockup-footer__line {
  font-family: var(--font-sans);
  font-size: 1.5rem;
  font-weight: 700;
  color: #FFFFFF !important;
  margin: 0 0 6px;
  letter-spacing: -0.015em;
  line-height: 1.25;
}
/* Specificity bump (.sf-doc + .sf-lockup-footer__sub) so this beats
   \`.sf-doc p\`, which would otherwise repaint the lockup paragraph in
   --deep-ink and make it invisible on Ink Navy. */
.sf-doc .sf-lockup-footer__sub {
  font-size: 0.9375rem;
  color: rgba(255, 255, 255, 0.78) !important;
  margin: 0 auto;
  line-height: 1.55;
  text-align: center;
}
.sf-doc .sf-lockup-footer__sub strong {
  color: #FFFFFF !important;
  font-weight: 700;
}

/* ══════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════════════════════════════════ */
@media (max-width: 980px) {
  .sf-spec-bar { grid-template-columns: repeat(2, 1fr); }
  .sf-spec-bar__item:nth-child(2n) { border-right: 0; }
  .sf-spec-bar__item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .sf-flow__steps { grid-template-columns: repeat(2, 1fr); gap: 28px 16px; }
  .sf-flow__steps::before { display: none; }
}
@media (max-width: 820px) {
  .sf-doc .sf-hero {
    grid-template-columns: 1fr;
    gap: var(--lg);
    padding: var(--lg);
  }
  .sf-doc .sf-hero__title { font-size: 2.25rem; }
  .sf-doc h1 { font-size: 2.25rem; }
  .sf-doc h2 { font-size: 1.625rem; margin-top: 48px; }
  .sf-feature-grid { grid-template-columns: 1fr; }
  .sf-use-grid { grid-template-columns: 1fr; }
  .sf-platform-grid { grid-template-columns: 1fr; }
  .sf-lockup-footer { padding: var(--lg); }
  .sf-lockup-footer__line { font-size: 1.25rem; }
}
@media (max-width: 480px) {
  .sf-doc .sf-hero__title { font-size: 1.875rem; }
  .sf-doc .sf-hero { padding: var(--md); }
  .sf-spec-bar { grid-template-columns: 1fr; }
  .sf-spec-bar__item { border-right: 0; border-bottom: 1px solid var(--line); }
  .sf-spec-bar__item:last-child { border-bottom: 0; }
  .sf-flow__steps { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════════════════
   DARK MODE — DESIGN.md §3.5, design-language §9
   ══════════════════════════════════════════════════════════════════════ */
[data-color-mode="dark"] .sf-doc {
  --white:         #1B2D45;
  --light:         #14222F;
  --line:          #2A3A4D;
  --slate:         #B5C3CE;
  --slate-light:   #94A8B5;
  --deep-ink:      #E8F5F0;
  --neutral:       #1F3247;
  --success-text:  #34D399;
  --warning-text:  #FBBF24;
  --danger-text:   #F87171;
  --info-text:     #5CD3EE;

  --shadow-sm:     0 1px 2px rgba(0, 0, 0, 0.30);
  --shadow-md:     0 4px 12px rgba(0, 0, 0, 0.40);
  --shadow-lg:     0 8px 24px rgba(0, 0, 0, 0.55);
}

[data-color-mode="dark"] .sf-doc h2 { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc h3 { color: var(--deep-ink); }
/* ReadMe's own html[data-color-mode="dark"] .markdown-body a / code rules are (0,2,2)
   and out-specify a plain .sf-doc descendant rule, so links rendered ReadMe blue in
   attribute-dark while system-dark showed Mint. The .markdown-body hop fixes both. */
[data-color-mode="dark"] .markdown-body .sf-doc a { color: var(--secondary); }
[data-color-mode="dark"] .markdown-body .sf-doc a:visited { color: var(--secondary); }
[data-color-mode="dark"] .markdown-body .sf-doc a:hover { color: var(--neutral); }
[data-color-mode="dark"] .markdown-body .sf-doc code {
  background: rgba(255, 255, 255, 0.06);
  color: var(--secondary);
  border: 0;
}
[data-color-mode="dark"] .sf-doc strong { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-eyebrow { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc p { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc li { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-lead { color: var(--deep-ink); }

/* AEO block — ALPON variant on dark uses subtle purple/cyan tint */
[data-color-mode="dark"] .sf-doc .sf-aeo {
  background: rgba(0, 224, 184, 0.04);
  border-color: var(--line);
  border-left-color: var(--secondary);
}
[data-color-mode="dark"] .sf-doc .sf-aeo--alpon {
  background: linear-gradient(135deg, rgba(79, 0, 142, 0.18) 0%, rgba(0, 166, 200, 0.10) 100%);
  border-color: rgba(0, 166, 200, 0.32);
  border-left: 4px solid #B084FF;
}
[data-color-mode="dark"] .sf-doc .sf-aeo--alpon .sf-aeo__label { color: #B084FF; }
[data-color-mode="dark"] .sf-doc .sf-aeo__text { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-aeo__text strong { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-aeo--alpon .sf-aeo__text strong { color: #B084FF; }

/* Meta bar */
[data-color-mode="dark"] .sf-doc .sf-meta { color: var(--slate); }
[data-color-mode="dark"] .sf-doc .sf-meta__badge {
  background: var(--light);
  color: var(--secondary) !important;
  border-color: var(--line);
}
[data-color-mode="dark"] .sf-doc .sf-meta__sep { color: var(--line); }

/* Pills */
[data-color-mode="dark"] .sf-doc .sf-pill {
  background: rgba(255, 255, 255, 0.06);
  color: var(--deep-ink);
  border-color: var(--line);
}

/* Spec bar */
[data-color-mode="dark"] .sf-doc .sf-spec-bar {
  background: var(--light);
  border-color: var(--line);
}
[data-color-mode="dark"] .sf-doc .sf-spec-bar__item { border-right-color: var(--line); }
[data-color-mode="dark"] .sf-doc .sf-spec-bar__label { color: var(--slate); }
[data-color-mode="dark"] .sf-doc .sf-spec-bar__value { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-spec-bar__sub { color: var(--slate); }

/* Feature grid + card */
[data-color-mode="dark"] .sf-doc .sf-card {
  background: var(--light);
  border-color: var(--line);
}
[data-color-mode="dark"] .sf-doc .sf-card:hover { border-color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-card--alpon-accent {
  background: linear-gradient(135deg, rgba(79, 0, 142, 0.18) 0%, rgba(0, 166, 200, 0.10) 100%);
  border-color: rgba(0, 166, 200, 0.32);
}
[data-color-mode="dark"] .sf-doc .sf-feature__icon {
  background: rgba(0, 224, 184, 0.10);
  color: var(--secondary);
  border-color: var(--line);
}
[data-color-mode="dark"] .sf-doc .sf-card--alpon-accent .sf-feature__icon {
  background: rgba(255, 255, 255, 0.06);
  color: #4FCBE6;
  border-color: rgba(0, 166, 200, 0.32);
}
[data-color-mode="dark"] .sf-doc .sf-feature__title { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-feature__desc { color: var(--slate); }
[data-color-mode="dark"] .sf-doc .sf-feature__desc strong { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-card--alpon-accent .sf-feature__desc code {
  background: rgba(0, 166, 200, 0.18);
  color: #4FCBE6;
}

/* Flow / pipeline */
[data-color-mode="dark"] .sf-doc .sf-flow {
  background: var(--light);
  border-color: var(--line);
}
[data-color-mode="dark"] .sf-doc .sf-flow__head {
  background: rgba(255, 255, 255, 0.03);
  border-bottom-color: var(--line);
  color: var(--slate);
}
[data-color-mode="dark"] .sf-doc .sf-flow__head .sf-icon,
[data-color-mode="dark"] .sf-doc .sf-flow__title { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-flow__icon {
  background: var(--light);
  color: var(--secondary);
  border-color: var(--secondary);
  box-shadow: 0 0 0 6px var(--light), 0 4px 14px rgba(0, 0, 0, 0.40);
}
[data-color-mode="dark"] .sf-doc .sf-flow__step--alpon .sf-flow__icon {
  color: #4FCBE6;
  border-color: #4FCBE6;
  background: var(--light);
  box-shadow: 0 0 0 6px var(--light), 0 4px 14px rgba(0, 166, 200, 0.40);
}
[data-color-mode="dark"] .sf-doc .sf-flow__num { color: var(--slate); }
[data-color-mode="dark"] .sf-doc .sf-flow__step--alpon .sf-flow__num { color: #4FCBE6; }
[data-color-mode="dark"] .sf-doc .sf-flow__step-title { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-flow__step-desc { color: var(--slate); }
[data-color-mode="dark"] .sf-doc .sf-flow__foot {
  background: rgba(66, 156, 191, 0.10);
  border-top-color: var(--line);
}
[data-color-mode="dark"] .sf-doc .sf-flow__foot-icon,
[data-color-mode="dark"] .sf-doc .sf-flow__foot-title { color: #6DBEDD; }
[data-color-mode="dark"] .sf-doc .sf-flow__foot-text { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-flow__foot-text strong { color: var(--deep-ink); }

/* Use grid */
[data-color-mode="dark"] .sf-doc .sf-use { background: var(--light); border-color: var(--line); }
[data-color-mode="dark"] .sf-doc .sf-use:hover { border-color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-use__icon {
  background: rgba(0, 224, 184, 0.10);
  color: var(--secondary);
  border-color: var(--line);
}
[data-color-mode="dark"] .sf-doc .sf-use__title { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-use__desc { color: var(--slate); }
[data-color-mode="dark"] .sf-doc .sf-use__desc strong { color: var(--deep-ink); }

/* Platform showcase cards */
[data-color-mode="dark"] .sf-doc .sf-platform {
  background: var(--light);
  border-color: var(--line);
  box-shadow: var(--shadow-sm);
}
[data-color-mode="dark"] .sf-doc .sf-platform:hover {
  border-color: var(--slate-light);
  box-shadow: var(--shadow-md);
}
[data-color-mode="dark"] .sf-doc .sf-platform__icon {
  background: rgba(255, 255, 255, 0.10);
  border-color: rgba(255, 255, 255, 0.18);
  color: #FFFFFF;
}
[data-color-mode="dark"] .sf-doc .sf-platform__eyebrow,
[data-color-mode="dark"] .sf-doc .sf-platform--cloud .sf-platform__eyebrow,
[data-color-mode="dark"] .sf-doc .sf-platform--compare .sf-platform__eyebrow {
  color: var(--secondary) !important;
}
[data-color-mode="dark"] .sf-doc .sf-platform__title { color: #FFFFFF !important; }
[data-color-mode="dark"] .sf-doc .sf-platform__desc { color: var(--slate); }
[data-color-mode="dark"] .sf-doc .sf-platform__desc strong { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-platform__chip {
  background: rgba(255, 255, 255, 0.04);
  color: var(--deep-ink);
  border-color: var(--line);
}
[data-color-mode="dark"] .sf-doc .sf-platform__chip-dot { background: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-platform--compare .sf-platform__chip-dot { background: var(--alpon-cyan); }
[data-color-mode="dark"] .sf-doc a.sf-platform__cta,
[data-color-mode="dark"] .sf-doc .sf-platform__cta { color: var(--secondary) !important; }
[data-color-mode="dark"] .sf-doc a.sf-platform__cta:hover,
[data-color-mode="dark"] .sf-doc .sf-platform__cta:hover { color: #FFFFFF !important; }
[data-color-mode="dark"] .sf-doc .sf-platform__meta { color: var(--slate); }

/* Lockup footer — stays Ink Navy in both modes */
[data-color-mode="dark"] .sf-doc .sf-lockup-footer {
  background: var(--tertiary);
  color: rgba(255, 255, 255, 0.92);
}
[data-color-mode="dark"] .sf-doc .sf-lockup-footer__eyebrow { color: var(--secondary) !important; }
[data-color-mode="dark"] .sf-doc .sf-lockup-footer__line { color: #FFFFFF !important; }
[data-color-mode="dark"] .sf-doc .sf-lockup-footer__sub { color: rgba(255, 255, 255, 0.78) !important; }
[data-color-mode="dark"] .sf-doc .sf-lockup-footer__sub strong { color: #FFFFFF !important; font-weight: 700; }

/* === SYSTEM-PREFERENCE FALLBACK (no explicit data-color-mode) ========= */
/* Related guides — shared X5 navigation pattern */
.sf-doc .sf-related { margin: 56px 0 0; }
.sf-doc .sf-related h2 { margin-top: 0; }
.sf-doc .sf-related__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.sf-doc .sf-related__card {
  display: flex; flex-direction: column; gap: 6px;
  text-decoration: none !important; padding: var(--lg);
  border: 0 !important; box-shadow: inset 0 0 0 1px var(--line);
  border-radius: var(--r-xl); background: var(--white);
  transition: box-shadow .15s, transform .15s;
}
.sf-doc .sf-related__card:hover { box-shadow: inset 0 0 0 1px var(--primary), 0 4px 14px rgba(3,72,96,.08); transform: translateY(-2px); }
.sf-doc .sf-related__icon { width: 36px; height: 36px; border-radius: var(--r-md); background: var(--light); color: var(--primary); display: flex; align-items: center; justify-content: center; margin-bottom: 6px; }
.sf-doc .sf-related__icon svg { width: 18px; height: 18px; }
.sf-doc .sf-related__title { font-family: var(--font-sans); font-size: 1rem; font-weight: 700; color: var(--deep-ink); letter-spacing: -.005em; }
.sf-doc .sf-related__desc { font-size: .8125rem; color: var(--slate); line-height: 1.55; font-weight: 500; }
[data-color-mode="dark"] .sf-doc .sf-related__card { background: rgba(255,255,255,.04); }
[data-color-mode="dark"] .sf-doc .sf-related__card:hover { box-shadow: inset 0 0 0 1px var(--secondary), 0 4px 14px rgba(0,0,0,.3); }
[data-color-mode="dark"] .sf-doc .sf-related__icon { background: rgba(0,224,184,.1); color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-related__title { color: #FFFFFF; }
[data-color-mode="dark"] .sf-doc .sf-related__desc { color: var(--slate); }
@media (max-width: 820px) { .sf-doc .sf-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .sf-doc .sf-related__grid { grid-template-columns: 1fr; } }

/* ── SYSTEM DARK (prefers-color-scheme) · full mirror of the [data-color-mode="dark"] branch ──
   Generated mechanically: identical selectors with the html:not([data-color-mode="light"])
   prefix and identical declarations, so the two dark branches cannot drift. ── */
@media (prefers-color-scheme: dark) {
  html:not([data-color-mode="light"]) .sf-doc {
    --white:         #1B2D45;
    --light:         #14222F;
    --line:          #2A3A4D;
    --slate:         #B5C3CE;
    --slate-light:   #94A8B5;
    --deep-ink:      #E8F5F0;
    --neutral:       #1F3247;
    --success-text:  #34D399;
    --warning-text:  #FBBF24;
    --danger-text:   #F87171;
    --info-text:     #5CD3EE;
    --shadow-sm:     0 1px 2px rgba(0, 0, 0, 0.30);
    --shadow-md:     0 4px 12px rgba(0, 0, 0, 0.40);
    --shadow-lg:     0 8px 24px rgba(0, 0, 0, 0.55);
  }
  html:not([data-color-mode="light"]) .sf-doc h2 { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc h3 { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .markdown-body .sf-doc a { color: var(--secondary); }
  html:not([data-color-mode="light"]) .markdown-body .sf-doc a:visited { color: var(--secondary); }
  html:not([data-color-mode="light"]) .markdown-body .sf-doc a:hover { color: var(--neutral); }
  html:not([data-color-mode="light"]) .markdown-body .sf-doc code {
    background: rgba(255, 255, 255, 0.06);
    color: var(--secondary);
    border: 0;
  }
  html:not([data-color-mode="light"]) .sf-doc strong { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-eyebrow { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc p { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc li { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-lead { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo {
    background: rgba(0, 224, 184, 0.04);
    border-color: var(--line);
    border-left-color: var(--secondary);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo--alpon {
    background: linear-gradient(135deg, rgba(79, 0, 142, 0.18) 0%, rgba(0, 166, 200, 0.10) 100%);
    border-color: rgba(0, 166, 200, 0.32);
    border-left: 4px solid #B084FF;
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo--alpon .sf-aeo__label { color: #B084FF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo__text { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo__text strong { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo--alpon .sf-aeo__text strong { color: #B084FF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-meta { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-meta__badge {
    background: var(--light);
    color: var(--secondary) !important;
    border-color: var(--line);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-meta__sep { color: var(--line); }
  html:not([data-color-mode="light"]) .sf-doc .sf-pill {
    background: rgba(255, 255, 255, 0.06);
    color: var(--deep-ink);
    border-color: var(--line);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-bar {
    background: var(--light);
    border-color: var(--line);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-bar__item { border-right-color: var(--line); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-bar__label { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-bar__value { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-bar__sub { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-card {
    background: var(--light);
    border-color: var(--line);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-card:hover { border-color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-card--alpon-accent {
    background: linear-gradient(135deg, rgba(79, 0, 142, 0.18) 0%, rgba(0, 166, 200, 0.10) 100%);
    border-color: rgba(0, 166, 200, 0.32);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-feature__icon {
    background: rgba(0, 224, 184, 0.10);
    color: var(--secondary);
    border-color: var(--line);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-card--alpon-accent .sf-feature__icon {
    background: rgba(255, 255, 255, 0.06);
    color: #4FCBE6;
    border-color: rgba(0, 166, 200, 0.32);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-feature__title { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-feature__desc { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-feature__desc strong { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-card--alpon-accent .sf-feature__desc code {
    background: rgba(0, 166, 200, 0.18);
    color: #4FCBE6;
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow {
    background: var(--light);
    border-color: var(--line);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__head {
    background: rgba(255, 255, 255, 0.03);
    border-bottom-color: var(--line);
    color: var(--slate);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__head .sf-icon,
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__title { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__icon {
    background: var(--light);
    color: var(--secondary);
    border-color: var(--secondary);
    box-shadow: 0 0 0 6px var(--light), 0 4px 14px rgba(0, 0, 0, 0.40);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__step--alpon .sf-flow__icon {
    color: #4FCBE6;
    border-color: #4FCBE6;
    background: var(--light);
    box-shadow: 0 0 0 6px var(--light), 0 4px 14px rgba(0, 166, 200, 0.40);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__num { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__step--alpon .sf-flow__num { color: #4FCBE6; }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__step-title { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__step-desc { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__foot {
    background: rgba(66, 156, 191, 0.10);
    border-top-color: var(--line);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__foot-icon,
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__foot-title { color: #6DBEDD; }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__foot-text { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-flow__foot-text strong { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-use { background: var(--light); border-color: var(--line); }
  html:not([data-color-mode="light"]) .sf-doc .sf-use:hover { border-color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-use__icon {
    background: rgba(0, 224, 184, 0.10);
    color: var(--secondary);
    border-color: var(--line);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-use__title { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-use__desc { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-use__desc strong { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform {
    background: var(--light);
    border-color: var(--line);
    box-shadow: var(--shadow-sm);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform:hover {
    border-color: var(--slate-light);
    box-shadow: var(--shadow-md);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform__icon {
    background: rgba(255, 255, 255, 0.10);
    border-color: rgba(255, 255, 255, 0.18);
    color: #FFFFFF;
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform__eyebrow,
  html:not([data-color-mode="light"]) .sf-doc .sf-platform--cloud .sf-platform__eyebrow,
  html:not([data-color-mode="light"]) .sf-doc .sf-platform--compare .sf-platform__eyebrow { color: var(--secondary) !important; }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform__title { color: #FFFFFF !important; }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform__desc { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform__desc strong { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform__chip {
    background: rgba(255, 255, 255, 0.04);
    color: var(--deep-ink);
    border-color: var(--line);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform__chip-dot { background: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform--compare .sf-platform__chip-dot { background: var(--alpon-cyan); }
  html:not([data-color-mode="light"]) .sf-doc a.sf-platform__cta,
  html:not([data-color-mode="light"]) .sf-doc .sf-platform__cta { color: var(--secondary) !important; }
  html:not([data-color-mode="light"]) .sf-doc a.sf-platform__cta:hover,
  html:not([data-color-mode="light"]) .sf-doc .sf-platform__cta:hover { color: #FFFFFF !important; }
  html:not([data-color-mode="light"]) .sf-doc .sf-platform__meta { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-lockup-footer {
    background: var(--tertiary);
    color: rgba(255, 255, 255, 0.92);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-lockup-footer__eyebrow { color: var(--secondary) !important; }
  html:not([data-color-mode="light"]) .sf-doc .sf-lockup-footer__line { color: #FFFFFF !important; }
  html:not([data-color-mode="light"]) .sf-doc .sf-lockup-footer__sub { color: rgba(255, 255, 255, 0.78) !important; }
  html:not([data-color-mode="light"]) .sf-doc .sf-lockup-footer__sub strong { color: #FFFFFF !important; font-weight: 700; }
  html:not([data-color-mode="light"]) .sf-doc .sf-related__card { background: rgba(255,255,255,.04); }
  html:not([data-color-mode="light"]) .sf-doc .sf-related__card:hover { box-shadow: inset 0 0 0 1px var(--secondary), 0 4px 14px rgba(0,0,0,.3); }
  html:not([data-color-mode="light"]) .sf-doc .sf-related__icon { background: rgba(0,224,184,.1); color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-related__title { color: #FFFFFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-related__desc { color: var(--slate); }
}
</style>

<div class="sf-doc">

  
  <header class="sf-hero sf-hero--alpon">
    <div class="sf-hero__copy">
      <p class="sf-hero__title">The industrial edge IoT computer.</p>
      <p class="sf-hero__lead">
        ALPON X4 pairs a <strong>Raspberry Pi Compute Module 4</strong> host with Ethernet, Wi-Fi, and cellular connectivity, a TPM 2.0, and centralized fleet management through ALPON Cloud. Its IP40 enclosure requires protection from weather and liquid ingress at outdoor sites.
      </p>
      <div class="sf-hero__chips">
        <span class="sf-pill sf-pill--brand">Raspberry Pi CM4</span>
        <span class="sf-pill">LTE Cat 4 + eSIM</span>
        <span class="sf-pill">1 GbE + 100 Mbps Ethernet</span>
        <span class="sf-pill">Wi-Fi 5 + Bluetooth 5.0</span>
        <span class="sf-pill">TPM 2.0</span>
        <span class="sf-pill">-20 °C to +60 °C</span>
        <span class="sf-pill">MTBF &gt; 13 years</span>
      </div>
      <div class="sf-hero__cta">
        <a href="/docs/alpon-x4-edge-computer-quickstart" target="_blank" rel="noopener" class="sf-btn sf-btn--mint">
          Quickstart
          <svg class="sf-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
        </a>
        <a href="https://sixfab.com/product/alpon-x4/" target="_blank" rel="noopener" class="sf-btn sf-btn--secondary-dark">
          Buy ALPON X4
        </a>
      </div>
    </div>
    <figure class="sf-hero__visual" aria-label="ALPON X4 industrial edge IoT computer: product photograph">
      <img
        src="https://sixfab.com/wp-content/uploads/2026/05/alpon-x4-overview.png"
        alt="Sixfab ALPON X4 industrial edge IoT computer with cellular, GNSS, and Wi-Fi antennas mounted on a fanless aluminum enclosure"
        loading="eager">
    </figure>
  </header>

  
  <div class="sf-meta">
    <span class="sf-meta__badge">ALPON X4</span>
    <span class="sf-meta__sep">·</span>
    <span>Overview</span>
    <span class="sf-meta__sep">·</span>
    <span>Built on Raspberry Pi</span>
    <span class="sf-meta__sep">·</span>
    <span>Updated 2026-09-17</span>
  </div>

  
  <div class="sf-aeo sf-aeo--alpon">
    <span class="sf-aeo__label">What is the ALPON X4?</span>
    <p class="sf-aeo__text">
      <strong>ALPON X4</strong> is Sixfab's industrial edge IoT computer for telemetry, gateway, and protocol-aggregation workloads. It runs on a <strong>Raspberry Pi CM4</strong> (Broadcom BCM2711 quad-core Cortex-A72 at 1.5 GHz) with up to <strong>8 GB LPDDR4 RAM</strong> and up to <strong>32 GB eMMC flash storage</strong>. Connectivity includes ETH/G (1 Gbps, data plus optional PoE+), ETH (100 Mbps, data-only), Wi-Fi 5, LTE Cat 4 with eSIM, Bluetooth 5.0 / BLE, and GNSS. It includes a <strong>TPM 2.0</strong> and is managed through <strong>ALPON Cloud</strong>. The fanless aluminum enclosure has a documented <strong>-20 °C to +60 °C</strong> operating range and IP40 protection, with no liquid-ingress protection. Built on Raspberry Pi.
    </p>
  </div>

  
  <div class="sf-spec-bar">
    <div class="sf-spec-bar__item">
      <div class="sf-spec-bar__label">Host CPU</div>
      <div class="sf-spec-bar__value">1.5 GHz</div>
      <div class="sf-spec-bar__sub">Quad Cortex-A72 · Raspberry Pi CM4</div>
    </div>
    <div class="sf-spec-bar__item">
      <div class="sf-spec-bar__label">Memory</div>
      <div class="sf-spec-bar__value">Up to 8 GB</div>
      <div class="sf-spec-bar__sub">LPDDR4 · 32 GB eMMC storage</div>
    </div>
    <div class="sf-spec-bar__item">
      <div class="sf-spec-bar__label">Connectivity</div>
      <div class="sf-spec-bar__value">4 paths</div>
      <div class="sf-spec-bar__sub">GbE · 100 Mbps · Wi-Fi 5 · LTE Cat 4</div>
    </div>
    <div class="sf-spec-bar__item">
      <div class="sf-spec-bar__label">Operating</div>
      <div class="sf-spec-bar__value">-20 to +60 °C</div>
      <div class="sf-spec-bar__sub">Fanless aluminum · IP40</div>
    </div>
  </div>

  
  <h2 id="features">Key features</h2>

  <div class="sf-feature-grid">

    <div class="sf-card sf-card--alpon-accent">
      <div class="sf-feature">
        <div class="sf-feature__icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
            <rect x="2" y="3" width="20" height="14" rx="2"/>
            <line x1="8" y1="21" x2="16" y2="21"/>
            <line x1="12" y1="17" x2="12" y2="21"/>
          </svg>
        </div>
        <div class="sf-feature__body">
          <div class="sf-feature__title">Raspberry Pi CM4 host</div>
          <div class="sf-feature__desc">Broadcom <strong>BCM2711 quad-core Cortex-A72 at 1.5 GHz</strong> with up to <strong>8 GB LPDDR4 SDRAM</strong> and up to <strong>32 GB eMMC</strong> flash storage. Native Raspberry Pi ecosystem, Debian-based <code>ALPON X4 OS</code>, and standard ARM64 containers.</div>
        </div>
      </div>
    </div>

    <div class="sf-card">
      <div class="sf-feature">
        <div class="sf-feature__icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
            <path d="M5 12.55a11 11 0 0 1 14 0"/>
            <path d="M1.42 9a16 16 0 0 1 21.16 0"/>
            <path d="M8.53 16.11a6 6 0 0 1 6.95 0"/>
            <line x1="12" y1="20" x2="12.01" y2="20"/>
          </svg>
        </div>
        <div class="sf-feature__body">
          <div class="sf-feature__title">Multi-network connectivity</div>
          <div class="sf-feature__desc">Dual Ethernet (<strong>ETH/G: 1 Gbps</strong>, data plus optional PoE+; <strong>ETH: 100 Mbps</strong>, data-only), <strong>LTE Cat 4 with eSIM</strong> (eUICC SGP.22), dual-band <strong>Wi-Fi 5</strong>, <strong>Bluetooth 5.0 / BLE</strong>, and GNSS / cellular geolocation. Reachability depends on configuration, service availability, and coverage.</div>
        </div>
      </div>
    </div>

    <div class="sf-card">
      <div class="sf-feature">
        <div class="sf-feature__icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
            <rect x="3" y="11" width="18" height="11" rx="2"/>
            <path d="M7 11V7a5 5 0 0 1 10 0v4"/>
          </svg>
        </div>
        <div class="sf-feature__body">
          <div class="sf-feature__title">TPM 2.0 hardware</div>
          <div class="sf-feature__desc">Discrete <strong>Infineon SLB 9670 TPM 2.0</strong> provides hardware-backed security capabilities. Its presence alone does not confirm secure boot, measured boot, or an application key-management policy is configured. Validate the security configuration for your deployment.</div>
        </div>
      </div>
    </div>

    <div class="sf-card">
      <div class="sf-feature">
        <div class="sf-feature__icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
            <path d="M2 22h20"/>
            <path d="M4 22V8l8-6 8 6v14"/>
            <path d="M9 22v-6h6v6"/>
          </svg>
        </div>
        <div class="sf-feature__body">
          <div class="sf-feature__title">Industrial form factor</div>
          <div class="sf-feature__desc">Fanless aluminum enclosure, <strong>111.16 × 99.9 × 33 mm</strong> at ~457 g, IP40. Operating range <strong>-20 °C to +60 °C</strong>, up to 95 % RH non-condensing, MTBF over <strong>13 years at 25 °C</strong>. DIN rail and wall-mount kits available.</div>
        </div>
      </div>
    </div>

    <div class="sf-card">
      <div class="sf-feature">
        <div class="sf-feature__icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
            <rect x="2" y="7" width="20" height="14" rx="2"/>
            <path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"/>
          </svg>
        </div>
        <div class="sf-feature__body">
          <div class="sf-feature__title">Flexible I/O and power</div>
          <div class="sf-feature__desc">2× USB 2.0, 1× HDMI, an RJ45-style Add-on connector with <strong>6 GPIO signals</strong> plus 5 V output up to 1 A and GND, 2 user buttons, and an RGB LED controlled through an I²C expander. The Add-on connector is not Ethernet. Use one power input: <strong>9–30 V DC</strong> rated (full peripherals at <strong>12–30 V</strong>), <strong>USB-C PD 15 V, 1.8 A (27 W)</strong>, or optional <strong>PoE+</strong> up to 25 W. PoE cannot cover the 27 W simultaneous system peak; reduce peripheral load or use DC/PD.</div>
        </div>
      </div>
    </div>

    <div class="sf-card">
      <div class="sf-feature">
        <div class="sf-feature__icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
            <path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/>
          </svg>
        </div>
        <div class="sf-feature__body">
          <div class="sf-feature__title">Managed by ALPON Cloud</div>
          <div class="sf-feature__desc">Device registration and activation, fleet inventory, updates, container deployment, and remote terminal in <a href="https://connect.sixfab.com" target="_blank" rel="noopener">ALPON Cloud</a> — accessed through Sixfab Connect. Follow the Quickstart before deploying workloads.</div>
        </div>
      </div>
    </div>

  </div>

  
  <h2 id="how-it-works">How data flows on ALPON X4</h2>

  <div class="sf-flow">
    <div class="sf-flow__head">
      <svg class="sf-icon" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="5" y="5" width="14" height="14" rx="1"/><path d="M9 9h6v6H9z"/></svg>
      <span class="sf-flow__title">Telemetry pipeline</span>
    </div>
    <div class="sf-flow__steps">

      <div class="sf-flow__step">
        <div class="sf-flow__icon">
          <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09a1.65 1.65 0 0 0-1-1.51 1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09a1.65 1.65 0 0 0 1.51-1 1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33h.01a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51h.01a1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82v.01a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>
        </div>
        <div class="sf-flow__num">Step 1</div>
        <div class="sf-flow__step-title">Connect</div>
        <div class="sf-flow__step-desc">Connect sensors, meters, and field devices over Ethernet, USB, or supported GPIO interfaces. Confirm pin assignments before wiring.</div>
      </div>

      <div class="sf-flow__step">
        <div class="sf-flow__icon">
          <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
        </div>
        <div class="sf-flow__num">Step 2</div>
        <div class="sf-flow__step-title">Process on CM4</div>
        <div class="sf-flow__step-desc">Cortex-A72 handles parsing, normalization, and protocol translation (Modbus, OPC-UA, MQTT, REST) inside containers.</div>
      </div>

      <div class="sf-flow__step sf-flow__step--alpon">
        <div class="sf-flow__icon">
          <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 3v18h18"/><path d="M7 14l4-4 4 4 5-5"/></svg>
        </div>
        <div class="sf-flow__num">Step 3</div>
        <div class="sf-flow__step-title">Aggregate &amp; filter</div>
        <div class="sf-flow__step-desc">Local rules thin, batch, or threshold the data so only what matters leaves the device.</div>
      </div>

      <div class="sf-flow__step">
        <div class="sf-flow__icon">
          <svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>
        </div>
        <div class="sf-flow__num">Step 4</div>
        <div class="sf-flow__step-title">Forward</div>
        <div class="sf-flow__step-desc">Your application forwards events to its configured backend over Ethernet, Wi-Fi, or LTE.</div>
      </div>

    </div>
    <div class="sf-flow__foot">
      <svg class="sf-flow__foot-icon" width="16" height="16" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
      <div class="sf-flow__foot-body">
        <div class="sf-flow__foot-title">Why this matters</div>
        <p class="sf-flow__foot-text">Logic runs <strong>on the edge</strong>. Your application determines which field data is processed locally and what is sent to a backend. Configure and verify network access, data handling, and security for the site's requirements.</p>
      </div>
    </div>
  </div>

  
  <h2 id="use-cases">Where ALPON X4 fits</h2>

  <div class="sf-use-grid">

    <div class="sf-use">
      <div class="sf-use__icon">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
          <path d="M5 12.55a11 11 0 0 1 14 0"/>
          <path d="M1.42 9a16 16 0 0 1 21.16 0"/>
          <path d="M8.53 16.11a6 6 0 0 1 6.95 0"/>
          <line x1="12" y1="20" x2="12.01" y2="20"/>
        </svg>
      </div>
      <div class="sf-use__body">
        <div class="sf-use__title">IoT gateways &amp; telemetry</div>
        <div class="sf-use__desc">Aggregate field sensors and meters, normalize the data, and ship events to ALPON Cloud or your backend over LTE, Wi-Fi, or Ethernet.</div>
      </div>
    </div>

    <div class="sf-use">
      <div class="sf-use__icon">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
          <rect x="3" y="3" width="7" height="7" rx="1"/>
          <rect x="14" y="3" width="7" height="7" rx="1"/>
          <rect x="3" y="14" width="7" height="7" rx="1"/>
          <rect x="14" y="14" width="7" height="7" rx="1"/>
          <path d="M10 6.5h4M10 17.5h4M6.5 10v4M17.5 10v4"/>
        </svg>
      </div>
      <div class="sf-use__body">
        <div class="sf-use__title">Industrial monitoring &amp; SCADA</div>
        <div class="sf-use__desc">Modbus and OPC-UA aggregation, PLC supervision, machine condition monitoring, and edge data brokering for factory and energy sites.</div>
      </div>
    </div>

    <div class="sf-use">
      <div class="sf-use__icon">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
          <path d="M3 9l9-6 9 6v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V9z"/>
          <path d="M9 21v-6a3 3 0 0 1 6 0v6"/>
        </svg>
      </div>
      <div class="sf-use__body">
        <div class="sf-use__title">Smart city &amp; infrastructure</div>
        <div class="sf-use__desc">Street furniture, lighting controllers, environmental sensing, traffic counters, EV-charger backhaul, and digital signage — managed remotely as one fleet.</div>
      </div>
    </div>

    <div class="sf-use">
      <div class="sf-use__icon">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
          <circle cx="12" cy="12" r="10"/>
          <line x1="2" y1="12" x2="22" y2="12"/>
          <path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/>
        </svg>
      </div>
      <div class="sf-use__body">
        <div class="sf-use__title">Remote sites &amp; cellular failover</div>
        <div class="sf-use__desc">Unmanned cabinets, well sites, pumping stations, agricultural sensors, and pop-up locations where LTE is primary and Ethernet/Wi-Fi back it up.</div>
      </div>
    </div>

  </div>

  
  <h2 id="platform">Platform &amp; ecosystem</h2>

  <div class="sf-platform-grid">

    
    <div class="sf-platform sf-platform--cloud">
      <div class="sf-platform__band">
        <span class="sf-platform__icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
            <path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/>
          </svg>
        </span>
        <div class="sf-platform__band-text">
          <span class="sf-platform__eyebrow">Fleet management</span>
          <div class="sf-platform__title">Managed by ALPON Cloud</div>
        </div>
      </div>
      <div class="sf-platform__body">
        <p class="sf-platform__desc">
          One console for <strong>ALPON X4 and ALPON X5 AI</strong> fleets. Register and activate devices, manage updates and containers, and open a remote terminal when a device is connected.
        </p>
        <div class="sf-platform__chips">
          <span class="sf-platform__chip"><span class="sf-platform__chip-dot"></span>Device onboarding</span>
          <span class="sf-platform__chip"><span class="sf-platform__chip-dot"></span>OTA updates</span>
          <span class="sf-platform__chip"><span class="sf-platform__chip-dot"></span>Container deployment</span>
          <span class="sf-platform__chip"><span class="sf-platform__chip-dot"></span>Remote terminal</span>
          <span class="sf-platform__chip"><span class="sf-platform__chip-dot"></span>Real-time monitoring</span>
        </div>
        <div class="sf-platform__foot">
          <a href="/docs/alpon-cloud" target="_blank" rel="noopener" class="sf-platform__cta">
            Explore ALPON Cloud
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="M13 5l7 7-7 7"/></svg>
          </a>
          <span class="sf-platform__meta">Web console</span>
        </div>
      </div>
    </div>

    
    <div class="sf-platform sf-platform--compare">
      <div class="sf-platform__band">
        <span class="sf-platform__icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
            <path d="M3 6h18"/><path d="M3 12h18"/><path d="M3 18h18"/>
            <circle cx="7" cy="6" r="2" fill="currentColor" stroke="none"/>
            <circle cx="14" cy="12" r="2" fill="currentColor" stroke="none"/>
            <circle cx="10" cy="18" r="2" fill="currentColor" stroke="none"/>
          </svg>
        </span>
        <div class="sf-platform__band-text">
          <span class="sf-platform__eyebrow">Device comparison</span>
          <div class="sf-platform__title">ALPON X4 vs. ALPON X5 AI</div>
        </div>
      </div>
      <div class="sf-platform__body">
        <p class="sf-platform__desc">
          The <strong>ALPON X4</strong> supports telemetry, gateway, and protocol-aggregation workloads. Compare the <strong>ALPON X5 AI</strong> when your workload requires a dedicated inference accelerator for vision and analytics.
        </p>
        <div class="sf-platform__chips">
          <span class="sf-platform__chip"><span class="sf-platform__chip-dot"></span>Compute &amp; NPU</span>
          <span class="sf-platform__chip"><span class="sf-platform__chip-dot"></span>Memory</span>
          <span class="sf-platform__chip"><span class="sf-platform__chip-dot"></span>Ports &amp; I/O</span>
          <span class="sf-platform__chip"><span class="sf-platform__chip-dot"></span>Connectivity</span>
          <span class="sf-platform__chip"><span class="sf-platform__chip-dot"></span>Use cases</span>
        </div>
        <div class="sf-platform__foot">
          <a href="/docs/alpon-device-comparison" target="_blank" rel="noopener" class="sf-platform__cta">
            Compare devices
            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 12h14"/><path d="M13 5l7 7-7 7"/></svg>
          </a>
          <span class="sf-platform__meta">Side-by-side</span>
        </div>
      </div>
    </div>

  </div>

  
  <div class="sf-lockup-footer">
    <span class="sf-lockup-footer__eyebrow">Partnership lockup</span>
    <div class="sf-lockup-footer__line">Built on Raspberry Pi.</div>
    <p class="sf-lockup-footer__sub">Raspberry Pi compute. Sixfab integration, industrial enclosure, multi-network connectivity, software stack, <strong>ALPON Cloud</strong> management, and field support — engineered for production fleets.</p>
  </div>

  <section class="sf-related">
    <h2>Related guides</h2>
    <div class="sf-related__grid">
      <a class="sf-related__card" href="/docs/alpon-x4-edge-computer-quickstart" target="_blank" rel="noopener">
        <div class="sf-related__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true"><path d="m9 5 7 7-7 7"/></svg></div>
        <div class="sf-related__title">Quickstart</div>
        <div class="sf-related__desc">Register, connect, and activate your ALPON X4.</div>
      </a>
      <a class="sf-related__card" href="/docs/alpon-x4-edge-computer-specifications" target="_blank" rel="noopener">
        <div class="sf-related__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M9 21V9"/></svg></div>
        <div class="sf-related__title">Specifications</div>
        <div class="sf-related__desc">Review hardware, power limits, and pending certifications.</div>
      </a>
      <a class="sf-related__card" href="/docs/alpon-x4-edge-computer-operating-system" target="_blank" rel="noopener">
        <div class="sf-related__icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" aria-hidden="true"><rect x="2" y="3" width="20" height="14" rx="2"/><path d="M8 21h8M12 17v4"/></svg></div>
        <div class="sf-related__title">ALPON X4 OS</div>
        <div class="sf-related__desc">Configure user access, local Wi-Fi, and package updates.</div>
      </a>
    </div>
  </section>

</div>


`}</HTMLBlock>

<br />