Files
boc/landvex-fix/homepage.html
T
Bernt 6989a98d75 feat: Passwordless cross-device authentication
- Arkitektur: docs/auth/passwordless-architecture.md
- Backend: iom/quixzoom-auth-service/ (FastAPI + Redis)
- Webb: quixzoom-market-pages/se/login/ (QR-kod + polling)
- App: iom/quixzoom-app/src/features/auth/ (push + deep links)

Flöde: QR-kod → app-godkännande → webb-inloggad
2026-07-07 07:11:50 +00:00

2415 lines
121 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Landvex — Decision Intelligence for the Physical World</title>
<meta name="description" content="Landvex delivers control intelligence for infrastructure owners, enterprises and governments. Decision intelligence for the physical world.">
<link rel="canonical" href="https://landvex.com/">
<link rel="alternate" hreflang="x-default" href="https://landvex.com/">
<link rel="alternate" hreflang="en" href="https://landvex.com/">
<link rel="alternate" hreflang="sv" href="https://landvex.se/">
<link rel="alternate" hreflang="de" href="https://landvex.de/">
<link rel="alternate" hreflang="fr" href="https://landvex.fr/">
<link rel="alternate" hreflang="en-GB" href="https://landvex.co.uk/">
<link rel="alternate" hreflang="it" href="https://landvex.it/">
<!-- Open Graph -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://landvex.com/">
<meta property="og:title" content="Landvex — Decision Intelligence for the Physical World">
<meta property="og:description" content="Landvex is a Swedish-headquartered control intelligence company (Landvex AB, Tyresö) with 5 Markets — Phased Rollout. We deliver control intelligence for infrastructure owners, enterprises and governments globally.">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:image" content="https://landvex.com/og-image.jpg">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Landvex — Decision Intelligence for the Physical World">
<meta name="twitter:description" content="Landvex is a decision intelligence platform that transforms field observations into infrastructure intelligence, urban intelligence and commercial intelligence. Not related to LandEx or land investment platforms.">
<meta name="twitter:image" content="https://landvex.com/og-image.jpg">
<!-- Favicons -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<!-- Structured Data -->
<link rel="stylesheet" href="/assets/css/landvex-complete.css">
<style>
/* === SYMMETRY FIXES — injected 2026-07-05 === */
.vertical-card { min-height: 220px; }
.intel-card { min-height: 420px; }
.intel-kpis { min-height: 100px; }
.vertical-card p { min-height: 3.5em; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.intel-card h3 { min-height: 1.5em; }
.verticals-grid, .intel-grid { align-items: stretch !important; }
/* === END SYMMETRY FIXES === */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
--bg-dark: #f5f5f7;
--blue: #0066FF;
--blue-dark: #0052CC;
--blue-glow: rgba(0, 102, 255, 0.10);
--text-dark: #1d1d1f;
--text-body: #3a3a3a;
--text-muted: #6e6e73;
--text-light: #1d1d1f;
--text-dim: #515154;
--surface: #ffffff;
--surface-2: #f5f5f7;
--border: rgba(0,0,0,0.09);
--radius-sm: 8px;
--radius-md: 14px;
--radius-lg: 24px;
}
html { scroll-behavior: smooth; }
body { background: #FFFFFF;
font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Helvetica Neue', sans-serif;
background: #FFFFFF;
color: #0A0A0A;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
/* ── NAV ── */
nav {
position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
display: flex; align-items: center; justify-content: space-between;
padding: 0 40px;
height: 64px;
background: rgba(255,255,255,0.92);
backdrop-filter: blur(16px);
-webkit-backdrop-filter: blur(16px);
border-bottom: 1px solid rgba(0,0,0,0.08);
}
.nav-logo { color: #0A0A0A;
font-size: 18px;
font-weight: 700;
letter-spacing: -0.3px;
color: #0A0A0A;
}
.nav-links {
display: flex; gap: 16px; list-style: none;
}
.nav-links a { color: #4A4A4A;
font-size: 14px;
color: #4A4A4A;
transition: color 0.2s;
}
.nav-links a:hover { color: #0A0A0A; }
/* Dropdown */
.nav-dropdown {
position: relative;
}
.nav-dropdown > a {
display: flex; align-items: center; gap: 16px; cursor: pointer;
}
.nav-dropdown > a::after {
content: '';
display: inline-block;
width: 0; height: 0;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-top: 4px solid currentColor;
opacity: 0.55;
margin-top: 1px;
transition: transform 0.2s;
}
.nav-dropdown:hover > a::after,
.nav-dropdown:focus-within > a::after { transform: rotate(180deg); }
.nav-dropdown-menu {
display: none;
position: absolute; top: 100%; left: 50%;
transform: translateX(-50%);
background: rgba(255,255,255,0.97);
border: 1px solid var(--border);
border-radius: var(--radius-md);
padding: 8px 0;
min-width: 220px;
max-height: calc(100vh - 80px);
overflow-y: auto;
box-shadow: 0 16px 40px rgba(0,0,0,0.12);
z-index: 9999;
backdrop-filter: blur(12px);
}
/* Bridge gap so hover doesn't break when moving from link to menu */
.nav-dropdown-menu::before {
content: '';
position: absolute;
top: -12px; left: 0; right: 0;
height: 12px;
}
.nav-dropdown:hover .nav-dropdown-menu,
.nav-dropdown:focus-within .nav-dropdown-menu { display: block; }
.nav-dropdown-menu a {
display: flex; align-items: center; gap: 16px;
padding: 24px;
font-size: 14px; color: #4A4A4A;
transition: color 0.15s, background 0.15s;
white-space: nowrap;
}
.nav-dropdown-menu a:hover { color: #0A0A0A; background: rgba(0,0,0,0.03); }
.nav-dropdown-menu .dd-label {
font-size: 10px; font-weight: 700; letter-spacing: 0.1em;
text-transform: uppercase; color: rgba(0,0,0,0.75);
padding: 24px 4px; cursor: default;
}
.nav-dropdown-menu hr { border: none; border-top: 1px solid var(--border); margin: 6px 0; }
.btn { color: #FFFFFF;
display: inline-flex; align-items: center; gap: 16px;
padding: 24px;
background: var(--blue);
color: #0A0A0A;
font-size: 14px;
font-weight: 600;
border-radius: var(--radius-md);
border: none;
cursor: pointer;
transition: background 0.2s, transform 0.15s;
}
.btn:hover { background: var(--blue-dark); transform: translateY(-1px); }
.btn-outline { color: #0A0A0A; border-color: rgba(0,0,0,0.15);
background: transparent;
border: 1.5px solid rgba(0,0,0,0.18);
color: #0A0A0A;
}
.btn-outline:hover { background: rgba(0,0,0,0.04); transform: translateY(-1px); }
.btn-lg { padding: 24px; font-size: 16px; border-radius: var(--radius-md); }
/* ── HERO ── */
.hero {
min-height: 100vh;
display: flex; flex-direction: column; align-items: center; justify-content: center;
text-align: center;
padding: 24px 80px;
position: relative;
overflow: hidden;
}
/* Dekorativ bakgrund borttagen */
.hero-eyebrow { display: inline-flex; align-items: center; gap: 16px; color: #0066ff; font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; padding: 8px 0; }
.hero h1 { color: #0A0A0A;
font-size: clamp(44px, 7vw, 80px);
font-weight: 800;
letter-spacing: -2px;
line-height: 1.05;
color: #0A0A0A;
max-width: 820px;
margin-bottom: 24px;
}
.hero-sub { color: #4A4A4A;
font-size: clamp(16px, 2vw, 20px);
color: #4A4A4A;
max-width: 640px;
line-height: 1.65;
margin-bottom: 40px;
}
.hero-ctas {
display: flex; gap: 16px; flex-wrap: wrap; justify-content: center;
}
.hero-powered {
margin-top: 56px;
font-size: 13px;
color: #6E6E73;
display: flex; align-items: center; gap: 16px;
}
.hero-powered span { color: #5599ff; font-weight: 600; }
.hero-stats {
display: flex; gap: 16px; margin-top: 72px; justify-content: center; flex-wrap: wrap;
}
.stat { text-align: center; }
.stat-val {
font-size: 32px; font-weight: 800;
background: linear-gradient(135deg, #fff 60%, #5599ff);
-webkit-background-clip: text; -webkit-text-fill-color: transparent;
letter-spacing: -1px;
}
.stat-label { font-size: 13px; color: #6E6E73; margin-top: 4px; }
/* ── SECTION COMMON ── */
section { padding: 24px; }
.container { max-width: 1140px; margin: 0 auto; }
.section-label {
font-size: 12px; font-weight: 700; letter-spacing: 0.1em;
text-transform: uppercase; color: var(--blue);
margin-bottom: 24px;
}
.section-title { color: #0A0A0A;
font-size: clamp(28px, 4vw, 44px);
font-weight: 800;
letter-spacing: -1.2px;
line-height: 1.1;
color: #0A0A0A;
margin-bottom: 24px;
}
.section-sub { color: #4A4A4A;
font-size: 17px;
color: #4A4A4A;
max-width: 560px;
line-height: 1.7;
}
/* ── DELIVER ── */
.deliver-bg { background: var(--surface); }
.deliver-header {
display: flex; flex-direction: column; align-items: center;
text-align: center; margin-bottom: 60px;
}
.deliver-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}
.deliver-card {
background: var(--surface-2);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
padding: 24px;
transition: border-color 0.25s, transform 0.2s;
}
.deliver-card:hover {
border-color: rgba(0,102,255,0.35);
transform: translateY(-3px);
box-shadow: 0 8px 24px rgba(0,0,0,0.10);
}
.deliver-icon {
width: 44px; height: 44px;
background: var(--blue-glow);
border: 1px solid rgba(0,102,255,0.25);
border-radius: var(--radius-md);
display: flex; align-items: center; justify-content: center;
font-size: 20px;
margin-bottom: 24px;
}
.deliver-card h3 { color: #0A0A0A;
font-size: 18px; font-weight: 700;
color: #0A0A0A; margin-bottom: 10px;
letter-spacing: -0.3px;
}
.deliver-card .number {
font-size: 32px; font-weight: 800;
color: var(--blue); letter-spacing: -1px;
margin-bottom: 8px;
}
.deliver-card p { color: #4A4A4A; font-size: 15px; color: #4A4A4A; line-height: 1.6; }
/* ── VERTICALS ── */
.verticals-header {
text-align: center;
margin-bottom: 60px;
}
.verticals-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 16px;
}
.vertical-card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
padding: 24px;
display: flex; align-items: flex-start; gap: 16px;
transition: border-color 0.25s, background 0.2s;
}
.vertical-card:hover {
border-color: rgba(0,102,255,0.3);
background: var(--surface-2);
}
.vertical-icon {
font-size: 24px;
flex-shrink: 0;
width: 44px; height: 44px;
display: flex; align-items: center; justify-content: center;
background: #FFFFFF;
border-radius: var(--radius-md);
}
.vertical-card h3 { color: #0A0A0A; font-size: 16px; font-weight: 700; color: #0A0A0A; margin-bottom: 6px; }
.vertical-card p { color: #4A4A4A; font-size: 14px; color: #4A4A4A; line-height: 1.5; }
/* ── HOW IT WORKS ── */
.how-bg { background: var(--surface); }
.how-header { text-align: center; margin-bottom: 64px; }
.how-steps {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 0;
position: relative;
}
.how-steps::before {
content: '';
position: absolute;
top: 28px; left: 12.5%; right: 12.5%;
height: 1px;
background: linear-gradient(90deg, transparent, var(--blue) 20%, var(--blue) 80%, transparent);
opacity: 0.3;
}
.how-step { transition: transform .15s, border-color .15s; }
.how-step:hover { transform: translateY(-3px); border-color: rgba(0,102,255,0.4); }
.how-step {
text-align: center;
padding: 0 20px;
position: relative;
}
.step-num {
width: 56px; height: 56px;
border-radius: 50%;
background: var(--blue-glow);
border: 2px solid var(--blue);
display: flex; align-items: center; justify-content: center;
font-size: 18px; font-weight: 800;
color: var(--blue);
margin: 0 auto 24px;
position: relative; z-index: 1;
}
.how-step h3 { font-size: 16px; font-weight: 700; color: #0A0A0A; margin-bottom: 8px; }
.how-step p { font-size: 14px; color: #4A4A4A; line-height: 1.6; }
/* ── CONTACT ── */
.contact-wrapper {
max-width: 680px;
margin: 0 auto;
text-align: center;
}
.contact-wrapper .section-title { color: #0A0A0A; margin-bottom: 10px; }
.contact-wrapper .section-sub { color: #4A4A4A; margin: 0 auto 48px; }
.contact-form {
background: var(--surface);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
padding: 40px;
text-align: left;
}
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 24px; }
.form-group { display: flex; flex-direction: column; gap: 16px; margin-bottom: 24px; }
.form-group label { font-size: 13px; font-weight: 600; color: #4A4A4A; }
.form-group input, .form-group textarea {
background: var(--bg-dark);
border: 1.5px solid var(--border);
border-radius: var(--radius-md);
color: #0A0A0A;
font-size: 15px;
font-family: inherit;
padding: 24px;
outline: none;
transition: border-color 0.2s;
width: 100%;
}
.form-group input:focus, .form-group textarea:focus {
border-color: var(--blue);
}
.form-group input::placeholder, .form-group textarea::placeholder {
color: #6E6E73;
}
.form-group textarea { min-height: 120px; resize: vertical; }
.form-note { font-size: 12px; color: #6E6E73; margin-top: 12px; text-align: center; }
#form-message {
display: none;
padding: 24px;
border-radius: var(--radius-md);
font-size: 14px;
font-weight: 600;
text-align: center;
margin-top: 16px;
}
#form-message.success { background: rgba(0,200,80,0.1); border: 1px solid rgba(0,200,80,0.25); color: #4ade80; }
#form-message.error { background: rgba(255,60,60,0.1); border: 1px solid rgba(255,60,60,0.25); color: #f87171; }
/* ── FOOTER ── */
footer {
border-top: 1px solid var(--border);
padding: 24px;
}
.footer-inner {
max-width: 1140px; margin: 0 auto;
display: flex; align-items: center; justify-content: space-between;
flex-wrap: wrap; gap: 16px;
}
.footer-logo { font-size: 17px; font-weight: 700; color: #0A0A0A; }
.footer-copy { font-size: 13px; color: #6E6E73; }
.footer-links { display: flex; gap: 16px; align-items: center; flex-wrap:wrap;gap: 16px 24px;}
.footer-links a { font-size: 14px; color: #6E6E73; transition: color 0.2s; }
.footer-links a:hover { color: #0A0A0A; }
.vertical-card { cursor: pointer; text-decoration: none; color: inherit; display: block; transition: transform .15s, box-shadow .15s; }
.vertical-card:hover { transform: translateY(-3px); box-shadow: 0 8px 32px rgba(0,0,0,.12); }
@media(max-width:640px){
.backwards-arrow{display:none}
.backwards-step{width:calc(50% - 8px);min-width:120px}
.how-grid{grid-template-columns:1fr!important}
.how-grid>div{border-left:none!important;border-top:1px solid rgba(0,0,0,.06)!important}
.how-grid>div:first-child{border-top:none!important}
.how-grid>div{padding: 24px!important}
}
.vertical-card .drill-hint { font-size:.8rem; font-weight:700; color:var(--blue,#0066ff); margin-top:8px; display:block; }
.footer-social {
width: 32px; height: 32px;
border: 1px solid var(--border);
border-radius: 8px;
display: flex; align-items: center; justify-content: center;
transition: border-color 0.2s, background 0.2s;
}
.footer-social:hover { border-color: rgba(0,0,0,0.25); background: rgba(0,0,0,0.04); }
.footer-tagline { font-size: 12px; color: #6E6E73; margin-top: 4px; }
/* ── RESPONSIVE ── */
@media (max-width: 900px) {
nav { padding: 0 16px; }
.nav-links { display: none; }
.deliver-grid { grid-template-columns: 1fr; }
.verticals-grid { grid-template-columns: 1fr 1fr; }
.how-steps { grid-template-columns: 1fr 1fr; gap: 16px; }
.how-steps::before { display: none; }
}
@media (max-width: 640px) {
.hero h1 { color: #0A0A0A; font-size: clamp(28px, 8vw, 48px); }
.hero-sub { color: #4A4A4A; font-size: 16px; }
.hero-ctas { flex-direction: column; gap: 16px; }
.hero-ctas a { width: 100%; text-align: center; }
.hero-stats { flex-direction: column; gap: 16px; align-items: flex-start; }
.section-title { color: #0A0A0A; font-size: clamp(22px, 6vw, 36px); }
.deliver-grid { grid-template-columns: 1fr; }
.deliver-card { padding: 24px; }
.deliver-icon { overflow: hidden !important; }
.deliver-icon svg { max-width: 24px; max-height: 24px; flex-shrink: 0; }
.verticals-grid { grid-template-columns: 1fr; }
.how-steps { grid-template-columns: 1fr; }
.form-row { grid-template-columns: 1fr; }
.contact-form { padding: 24px; }
.footer-inner { flex-direction: column; text-align: center; }
.community-pipeline { flex-direction: column; gap: 16px; padding: 24px; }
.community-pipeline-text h3 { font-size: 1.1rem; }
}
@media (max-width: 480px) {
.container { padding: 0 16px !important; box-sizing: border-box; }
section { padding: 56px 0; }
.hero { padding: 24px 60px; }
.deliver-grid { grid-template-columns: 1fr; gap: 16px; }
.verticals-grid { grid-template-columns: 1fr; gap: 16px; }
.vertical-card { padding: 24px; }
.nav-logo { color: #0A0A0A; font-size: 18px; }
.backwards-arrow { display: none; }
.how-step { transition: transform .15s, border-color .15s; }
.how-step:hover { transform: translateY(-3px); border-color: rgba(0,102,255,0.4); }
.how-step { padding: 24px; }
.contact-form { padding: 24px; }
.footer-inner { gap: 16px; }
.footer-links { flex-wrap: wrap; justify-content: center; gap: 16px 16px; }
table { font-size: .75rem; }
table th, table td { padding: 24px; }
.contradiction-grid { grid-template-columns: 1fr !important; }
.howwework-grid { grid-template-columns: 1fr !important; }
}
/* ── Global mobile fix ───────────────────────────────────────────── */
@media(max-width:480px){
img, svg { max-width:100%; }
table { overflow-x:auto; display:block; }
.container { padding:0 16px !important; box-sizing:border-box; }
/* Reduce inline section padding on mobile */
section[style*="padding:80px"],
section[style*="padding:96px"] { padding-top:48px !important; padding-bottom:48px !important; }
/* Contradiction header */
div[style*="margin-bottom:56px"] { margin-bottom:32px !important; }
div[style*="margin-bottom:48px"] { margin-bottom:24px !important; }
/* How we work grid: single column */
.how-grid { grid-template-columns:1fr !important; }
.how-grid > div { border-left:none !important; border-top:1px solid rgba(0,0,0,.07) !important; padding: 24px !important; }
.how-grid > div:first-child { border-top:none !important; }
/* howwework-grid: single column with tighter padding */
.howwework-grid > div { padding:20px !important; }
}
/* Map section mobile fixes */
@media(max-width:600px){
.map-iframe{min-height:260px!important;height:52vh!important}
.map-overlay{position:static!important;background:rgba(0,0,0,.95)!important;border-radius:0 0 16px 16px;flex-direction:column;align-items:flex-start;gap: 16px;padding: 24px!important}
.map-cta-row{width:100%;display:flex;gap: 16px}
.map-cta-row a{flex:1;text-align:center}
}
/* SVG overflow fix — global */
svg { max-width: 100%; overflow: visible; }
.deliver-icon svg,
.vertical-icon svg,
.footer-social svg,
.row-icon svg { overflow: hidden; flex-shrink: 0; }
/* AUDIT FIX m-001 safety net */
html,body{overflow-x:clip}
/* ── SOCIAL PROOF ── */
.social-proof {
background: #ffffff;
border-top: 1px solid rgba(0,0,0,0.06);
border-bottom: 1px solid rgba(0,0,0,0.06);
padding: 24px;
text-align: center;
}
.sp-label {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: #a1a1a6;
margin-bottom: 20px;
}
.sp-logos {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 16px 24px;
max-width: 800px;
margin: 0 auto;
}
.sp-item {
font-size: 13px;
font-weight: 600;
color: #6e6e73;
background: #FFFFFF;
border: 1px solid rgba(0,0,0,0.08);
border-radius: 8px;
padding: 24px;
white-space: nowrap;
transition: border-color 0.2s, color 0.2s;
}
.sp-item:hover { border-color: rgba(0,102,255,0.22); color: #0A0A0A; }
/* ── P4 MICROINTERACTIONS ── */
.deliver-card, .vertical-card, .intel-card {
transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.2s ease;
}
/* ── CTA SECONDARY ── */
.cta-secondary {
display: inline-flex; align-items: center; gap: 16px;
padding: 24px;
background: transparent;
border: 1.5px solid rgba(0,0,0,0.18);
color: #0A0A0A;
font-size: 15px;
font-weight: 600;
border-radius: var(--radius-md,14px);
transition: background 0.2s, border-color 0.2s, transform 0.15s;
text-decoration: none;
}
.cta-secondary:hover { background: rgba(0,0,0,0.04); border-color: rgba(0,102,255,0.35); color: #0066FF; transform: translateY(-1px); }
/* ── FOOTER ECOSYSTEM ── */
.footer-ecosystem {
font-size: 12px; color: #6e6e73; margin-top: 12px; line-height: 1.5;
}
.footer-ecosystem a { color: #0066FF; text-decoration: none; }
.footer-ecosystem a:hover { text-decoration: underline; }
/* LV Illustrations */
.lv-ill-wrap{display:flex;justify-content:center;padding:40px 0 24px}
.lv-ill-wrap svg{max-width:100%;height:auto}
/* Intelligence Cards v2 */
.intel-grid{display:grid;grid-template-columns:repeat(2,1fr);gap: 16px;margin-top:40px}
@media(max-width:768px){.intel-grid{grid-template-columns:1fr}}
.intel-card{background:#ffffff;border:1px solid rgba(0,0,0,.08);border-radius: var(--radius-lg);padding:28px;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:0;transition:border-color .2s,transform .2s;cursor:pointer}
.intel-card:hover{border-color:rgba(0,102,255,.35);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.12)}
.intel-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px}
.intel-module{font-size:.6875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#0066FF;margin-bottom:6px}
.intel-card h3{font-size:1.0625rem;font-weight:800;color: #0A0A0A;margin:0}
.intel-card-geo{font-size:.75rem;color:rgba(0,0,0,.75);margin-top:2px}
.intel-tag{font-size:.625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding: 24px;border-radius:100px;white-space:nowrap}
.intel-tag-live{background:rgba(0,200,83,.12);color:#00C853;border:1px solid rgba(0,200,83,.2)}
.intel-tag-risk{background:rgba(255,59,48,.1);color:#FF3B30;border:1px solid rgba(255,59,48,.2)}
.intel-tag-pred{background:rgba(0,102,255,.12);color:#0066FF;border:1px solid rgba(0,102,255,.2)}
.intel-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap: 16px;margin-bottom:20px}
.intel-kpi{background:rgba(0,0,0,.03);border-radius:10px;padding: 24px}
.intel-kpi-val{font-size:1.1875rem;font-weight:900;color: #0A0A0A;letter-spacing:-.03em;line-height:1}
.intel-kpi-delta{font-size:.6875rem;font-weight:700;margin-top:3px}
.intel-kpi-delta.up{color:#00C853}
.intel-kpi-delta.down{color:#FF3B30}
.intel-kpi-lbl{font-size:.625rem;color:rgba(0,0,0,.75);margin-top:2px;line-height:1.3}
.intel-bar-list{display:flex;flex-direction:column;gap: 16px;margin-bottom:20px}
.intel-bar-row{display:flex;align-items:center;gap: 16px}
.intel-bar-name{font-size:.75rem;color:rgba(0,0,0,.65);min-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.intel-bar-track{flex:1;height:5px;background:rgba(0,0,0,.06);border-radius:3px;overflow:hidden}
.intel-bar-fill{height:100%;border-radius:3px;background:#0066FF}
.intel-bar-fill.risk{background:#FF3B30}
.intel-bar-fill.opp{background:#00C853}
.intel-bar-score{font-size:.6875rem;font-weight:700;color:rgba(0,0,0,.75);min-width:28px;text-align:right}
.intel-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:16px;border-top:1px solid rgba(0,0,0,.06);margin-top:auto}
.intel-obs{font-size:.6875rem;color:rgba(0,0,0,.75)}
.intel-cta{font-size:.75rem;font-weight:700;color:#0066FF;display:flex;align-items:center;gap: 16px}
.intel-confidence{display:flex;align-items:center;gap: 16px;font-size:.6875rem;color:rgba(0,0,0,.75)}
.intel-conf-bar{width:48px;height:4px;background:rgba(0,0,0,.08);border-radius:2px;overflow:hidden}
.intel-conf-fill{height:100%;background:#0066FF;border-radius:2px}
.intel-map-placeholder{background:linear-gradient(135deg,#0d1f3c 0%,#0a1628 50%,#0d2235 100%);border-radius:10px;height:80px;position:relative;overflow:hidden;margin-bottom:20px}
.intel-map-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:#0066FF;box-shadow:0 0 0 3px rgba(0,102,255,.2)}
.intel-map-dot.hot{background:#00C853;box-shadow:0 0 0 3px rgba(0,200,83,.2)}
.intel-map-dot.warn{background:#FF3B30;box-shadow:0 0 0 3px rgba(255,59,48,.2)}
/* LV-ILL-02 Pipeline */
.lv-pipeline{display:flex;align-items:center;justify-content:center;gap:0;margin:32px 0 40px;overflow-x:auto;padding:0 8px}
.lv-pipeline-step{display:flex;flex-direction:column;align-items:center;gap: 16px;min-width:88px}
.lv-pipeline-icon{width:52px;height:52px;border-radius:14px;background:rgba(0,102,255,.08);border:1px solid rgba(0,102,255,.18);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.lv-pipeline-label{font-size:.6875rem;font-weight:700;color:rgba(0,0,0,.75);text-align:center;letter-spacing:.02em;line-height:1.3}
.lv-pipeline-connector{width:32px;height:2px;background:linear-gradient(90deg,rgba(0,102,255,.3),rgba(0,102,255,.1));flex-shrink:0;margin-top:-22px;align-self:flex-start;margin-left:0;position:relative;top:-26px}
@media(max-width:600px){.lv-pipeline{justify-content:flex-start}.lv-pipeline-connector{width:20px}}
@media(max-width:480px){.intel-grid{grid-template-columns:1fr}.intel-kpis{grid-template-columns:repeat(3,1fr)}.intel-bar-name{min-width:80px}}
@media(max-width:480px){.lv-pipeline{gap:0}.lv-pipeline-step{min-width:56px}.lv-pipeline-label{font-size:.5625rem}.lv-pipeline-icon{width:38px;height:38px;border-radius:10px}.lv-pipeline-connector{width:10px}}
</style>
<style id="lv-light-theme">
/* Landvex Light Theme Override */
:root {
--bg-dark: #f5f5f7 !important;
--text-light: #1d1d1f !important;
--text-dim: #515154 !important;
--surface: #ffffff !important;
--surface-2: #f5f5f7 !important;
--border: rgba(0,0,0,0.09) !important;
}
body { background: #FFFFFF; background: #f5f5f7 !important; color: #1d1d1f !important; }
nav { background: rgba(255,255,255,0.92) !important; border-bottom: 1px solid rgba(0,0,0,0.08) !important; }
.nav-logo { color: #0A0A0A !important; }
.nav-links a { color: #4A4A4A !important; }
.nav-links a:hover { color: #0A0A0A !important; }
.nav-dropdown-menu { background: rgba(255,255,255,0.97) !important; border: 1px solid rgba(0,0,0,0.10) !important; box-shadow: 0 8px 32px rgba(0,0,0,0.12) !important; }
.nav-dropdown-menu a { color: #4A4A4A !important; }
.nav-dropdown-menu a:hover { color: #0A0A0A !important; background: rgba(0,0,0,0.04) !important; }
.nav-dropdown-menu .dd-label { color: #6E6E73 !important; }
.nav-dropdown-menu hr { border-top: 1px solid rgba(0,0,0,0.08) !important; }
.btn-outline { color: #0A0A0A; border-color: rgba(0,0,0,0.15); border: 1.5px solid rgba(0,0,0,0.18) !important; color: #1d1d1f !important; background: transparent !important; }
.btn-outline:hover { background: rgba(0,0,0,0.06) !important; }
.hero { background: #ffffff !important; }
.hero::before { background: radial-gradient(ellipse at center, rgba(0,102,255,0.07) 0%, transparent 70%) !important; }
.hero h1 { color: #0A0A0A; color: #1d1d1f !important; }
.hero-sub { color: #4A4A4A; color: #515154 !important; }
.hero-eyebrow { background: rgba(0,102,255,0.08); border: 1px solid rgba(0,102,255,0.2); color: #0066FF; background: rgba(0,102,255,0.08) !important; border: 1px solid rgba(0,102,255,0.18) !important; color: #0052CC !important; }
.stat-val { background: linear-gradient(135deg, #1d1d1f 60%, #0066FF) !important; -webkit-background-clip: text !important; -webkit-text-fill-color: transparent !important; }
.stat-label { color: #6e6e73 !important; }
.section-title { color: #0A0A0A; color: #1d1d1f !important; }
.section-sub { color: #4A4A4A; color: #515154 !important; }
.deliver-bg { background: #ffffff !important; }
.deliver-card { background: #f5f5f7 !important; border: 1px solid rgba(0,0,0,0.08) !important; }
.deliver-card:hover { border-color: rgba(0,102,255,0.28) !important; }
.deliver-card h3 { color: #0A0A0A; color: #1d1d1f !important; }
.deliver-card p { color: #4A4A4A; color: #515154 !important; }
.deliver-icon { background: rgba(0,102,255,0.08) !important; border: 1px solid rgba(0,102,255,0.18) !important; }
.vertical-card { background: #ffffff !important; border: 1px solid rgba(0,0,0,0.08) !important; }
.vertical-card:hover { border-color: rgba(0,102,255,0.25) !important; background: #f5f5f7 !important; }
.vertical-card h3 { color: #0A0A0A; color: #1d1d1f !important; }
.vertical-card p { color: #4A4A4A; color: #515154 !important; }
.vertical-icon { background: #f5f5f7 !important; }
.how-bg { background: #f5f5f7 !important; }
.how-step h3 { color: #1d1d1f !important; }
.how-step p { color: #515154 !important; }
.step-num { background: rgba(0,102,255,0.08) !important; border: 2px solid #0066FF !important; color: #0066FF !important; }
.contact-form { background: #ffffff !important; border: 1px solid rgba(0,0,0,0.08) !important; }
.form-group label { color: #515154 !important; }
.form-group input, .form-group textarea { background: #f5f5f7 !important; border: 1.5px solid rgba(0,0,0,0.12) !important; color: #1d1d1f !important; }
.form-group input::placeholder, .form-group textarea::placeholder { color: #a1a1a6 !important; }
footer { border-top: 1px solid rgba(0,0,0,0.08) !important; background: #ffffff !important; }
.footer-logo { color: #1d1d1f !important; }
.footer-copy { color: #6e6e73 !important; }
.footer-links a { color: #6e6e73 !important; }
.footer-links a:hover { color: #1d1d1f !important; }
.footer-social { border: 1px solid rgba(0,0,0,0.10) !important; }
.footer-social:hover { border-color: rgba(0,0,0,0.22) !important; background: rgba(0,0,0,0.04) !important; }
.intel-card { background: #ffffff !important; border: 1px solid rgba(0,0,0,0.08) !important; }
.intel-card:hover { border-color: rgba(0,102,255,0.28) !important; }
.intel-card h3 { color: #1d1d1f !important; }
.intel-card-geo { color: #515154 !important; }
.intel-kpi { background: rgba(0,0,0,0.03) !important; }
.intel-kpi-val { color: #1d1d1f !important; }
.intel-kpi-lbl { color: #6e6e73 !important; }
.intel-bar-name { color: #515154 !important; }
.intel-bar-track { background: rgba(0,0,0,0.06) !important; }
.intel-bar-score { color: #515154 !important; }
.intel-card-footer { border-top: 1px solid rgba(0,0,0,0.07) !important; }
.intel-obs { color: #6e6e73 !important; }
.intel-confidence { color: #6e6e73 !important; }
.intel-conf-bar { background: rgba(0,0,0,0.08) !important; }
.intel-map-placeholder { background: linear-gradient(135deg, #e8f0fe 0%, #dce8fd 50%, #e4effe 100%) !important; }
.lv-pipeline-label { color: #515154 !important; }
.lv-pipeline-icon { background: rgba(0,102,255,0.07) !important; border: 1px solid rgba(0,102,255,0.15) !important; }
.lv-pipeline-connector { background: linear-gradient(90deg, rgba(0,102,255,0.2), rgba(0,102,255,0.07)) !important; }
.drill-hint { color: #0066FF !important; }
table { background: #ffffff !important; }
table th { background: #f5f5f7 !important; color: #515154 !important; border-bottom: 1px solid rgba(0,0,0,0.08) !important; }
table td { color: #1d1d1f !important; border-bottom: 1px solid rgba(0,0,0,0.06) !important; }
section#cities { background: #f5f5f7 !important; }
section[style*="background:var(--surface-2)"], section[style*="background:var(--surface)"] { background: #f5f5f7 !important; }
.how-grid > div { border-top: 1px solid rgba(0,0,0,0.07) !important; }
@media(max-width:900px) { nav { background: rgba(255,255,255,0.92) !important; } }
</style>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": [
"Organization",
"Corporation"
],
"@id": "https://landvex.com/#organization",
"name": "Landvex",
"alternateName": [
"LandveX",
"Landvex AB",
"LandveX AB"
],
"url": "https://landvex.com",
"logo": {
"@type": "ImageObject",
"url": "https://landvex.com/apple-touch-icon.png",
"width": 180,
"height": 180
},
"foundingDate": "2024",
"foundingLocation": {
"@type": "Place",
"addressLocality": "Gothenburg",
"addressRegion": "Gothenburg",
"addressCountry": "SE"
},
"legalName": "Landvex Inc",
"address": {
"@type": "PostalAddress",
"addressLocality": "Houston",
"addressRegion": "TX",
"addressCountry": "US"
},
"location": [
{
"@type": "Place",
"name": "Houston, Texas, USA (US HQ)",
"address": {
"@type": "PostalAddress",
"addressLocality": "Houston",
"addressRegion": "TX",
"addressCountry": "US"
}
},
{
"@type": "Place",
"name": "Tyresö, Sweden (EU HQ)",
"address": {
"@type": "PostalAddress",
"addressLocality": "Gothenburg",
"addressRegion": "Gothenburg",
"addressCountry": "SE"
}
}
],
"taxID": "pending-EIN",
"description": "Landvex is a decision intelligence company that identifies contradictions between official narratives and observed physical reality. Using the quiXzoom field observation network and the AMOS AI analysis engine, Landvex delivers infrastructure risk indexes, urban intelligence scores, and contradiction reports to infrastructure owners, municipalities, enterprises, and investors globally.",
"disambiguatingDescription": "Landvex (LandveX) is a decision intelligence company with US headquarters in Houston, Texas (Landvex Inc.) and European headquarters in Tyresö, Sweden (Landvex AB, org.nr 559141-7042). Landvex delivers control intelligence — infrastructure risk scores, urban intelligence, and contradiction analysis — to municipalities, enterprises, infrastructure operators and investors. Landvex is not a UK meat wholesaler, food distributor, logistics company, package tracker, or land investment platform.",
"knowsAbout": [
"control intelligence",
"decision intelligence",
"infrastructure risk assessment",
"urban intelligence",
"field data collection",
"contradiction detection",
"physical world analytics",
"geospatial analytics"
],
"brand": {
"@type": "Brand",
"name": "Landvex",
"slogan": "Control intelligence for the physical world."
},
"sameAs": [
"https://landvex.com",
"https://www.linkedin.com/company/landvex",
"https://x.com/landvex",
"https://twitter.com/landvex",
"https://www.crunchbase.com/organization/landvex",
"https://github.com/landvex",
"https://www.instagram.com/landvex"
],
"contactPoint": {
"@type": "ContactPoint",
"email": "contact@landvex.com",
"contactType": "sales"
},
"slogan": "Where reported reality conflicts with observed reality."
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"@id": "https://landvex.com/#website",
"url": "https://landvex.com",
"name": "Landvex",
"description": "Landvex — decision intelligence for the physical world. Not a meat wholesaler, food company, or logistics firm.",
"publisher": {
"@id": "https://landvex.com/#organization"
},
"inLanguage": "en",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://landvex.com/?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Landvex",
"applicationCategory": "BusinessApplication",
"operatingSystem": "Web",
"description": "Decision intelligence platform for infrastructure, urban and commercial intelligence. Helps municipalities, property owners, infrastructure operators and retail chains make better decisions about physical assets.",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "EUR",
"description": "Contact for enterprise pricing"
},
"publisher": {
"@id": "https://landvex.com/#organization"
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What does Landvex do?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Landvex delivers decision intelligence for the physical world. It identifies contradictions between official narratives and observed reality, produces infrastructure risk indexes (0100 scores), urban intelligence, and predictive trend signals — using field observations from the quiXzoom network analysed by the AMOS AI engine. Customers include municipalities, infrastructure operators, property owners, insurers, and investors."
}
},
{
"@type": "Question",
"name": "Is Landvex a meat company or food wholesaler?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. Landvex (landvex.com) is a decision intelligence company — not a meat wholesaler, food distributor, or any food-related business. Landvex AB (Tyresö, Sweden) builds infrastructure risk intelligence, urban analytics and contradiction reports for municipalities, enterprises and investors."
}
},
{
"@type": "Question",
"name": "What is Landvex?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Landvex is a decision intelligence platform for the physical world. It helps municipalities, property owners, infrastructure operators and enterprises make better decisions about physical assets."
}
},
{
"@type": "Question",
"name": "How does Landvex collect data?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Landvex uses the quiXzoom contributor network — verified field contributors who collect observations on demand. Every submission is AI-reviewed for quality and specification compliance. Field observations are licensed from quiXzoom Inc under a data processing agreement; individual contributor data is anonymised before analysis."
}
},
{
"@type": "Question",
"name": "What decisions does Landvex support?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Landvex supports decisions on where to invest, where risk is increasing, what is changing in a geography, and where infrastructure or commercial conditions are deteriorating."
}
},
{
"@type": "Question",
"name": "How do I start with Landvex?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Landvex offers a pilot programme — a defined question, defined geography, 6-8 weeks. Contact us at landvex.com/pilot to discuss scope and pricing."
}
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Landvex",
"item": "https://landvex.com/"
}
]
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Speakable",
"speakableSelector": {
"@type": "CssSelectorType",
"cssSelector": [
"h1",
".hero-h1",
".hero-sub",
".hero-eyebrow"
]
},
"url": "https://landvex.com/"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is Landvex?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Landvex is a decision intelligence platform for the physical world. It turns verified field observations — captured by the quiXzoom contributor network — into structured, decision-ready intelligence for organisations managing physical assets, locations and risk."
}
},
{
"@type": "Question",
"name": "Is Landvex a logistics or transport company?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. Landvex is not affiliated with any logistics, freight or land-transport companies of similar name. Landvex provides decision intelligence built on verified field data."
}
},
{
"@type": "Question",
"name": "What is quiXzoom?",
"acceptedAnswer": {
"@type": "Answer",
"text": "quiXzoom is the field observation network that powers Landvex: vetted local contributors who complete structured capture missions with geo-tagged, timestamped, AI-reviewed evidence."
}
},
{
"@type": "Question",
"name": "How fast is intelligence delivered?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Standard missions return structured intelligence within 2472 hours of tasking, depending on scope and location."
}
},
{
"@type": "Question",
"name": "How does a pilot work?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A pilot runs for three months, scoped around one real decision your organisation faces. Successful pilots typically continue as an annual intelligence subscription."
}
}
]
}
</script>
</head>
<body>
<!-- NAV -->
<nav aria-label="Main navigation">
<a class="nav-logo" href="/">LandveX</a>
<ul class="nav-links">
<li><a href="#how-it-works">How it works</a></li>
<li><a href="#verticals">Verticals</a></li>
<li class="nav-dropdown">
<a href="/methodology/">Intelligence</a>
<div class="nav-dropdown-menu">
<div class="dd-label">Learn</div>
<a href="/methodology/">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg>
Methodology
</a>
<a href="#intelligence">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg>
Intelligence scores
</a>
<hr/>
<div class="dd-label">Verticals</div>
<a href="/verticals/property/">Property &amp; Real Estate</a>
<a href="/verticals/investors/">Investors &amp; Asset Mgrs</a>
<a href="/verticals/municipalities/">Municipalities</a>
<a href="/verticals/infrastructure/">Infrastructure</a>
<a href="/verticals/retail/">Retail &amp; F&amp;B</a>
<a href="/verticals/insurance/">Insurance</a>
<a href="/verticals/utilities/">Utilities</a>
<hr/>
<div class="dd-label">Products</div>
<a href="/enterprise/">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M9 21V9"/></svg>
Enterprise
</a>
<a href="/reports/">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>
Intelligence Reports
</a>
<a href="/pilot/">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
Pilot Programme
</a>
<hr/>
<div class="dd-label">Compare</div>
<a href="/sla/">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 11 12 14 22 4"/><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"/></svg>
SLA &amp; Coverage →
</a>
<hr/>
<a href="/security/">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
Security
</a>
</div>
</li>
<li><a href="#cities">Cities</a></li>
<li><a href="/insights/">Insights</a></li>
<li><a href="/contact/">Contact</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
<a class="lv-btn lv-btn--outline" href="#contact">Get in touch →</a>
</nav>
<!-- HERO -->
<section class="lv-hero">
<div class="lv-hero-eyebrow">Reality Intelligence Operating System</div>
<h1>The OS for the physical world.</h1>
<p class="lv-hero-subtitle">Landvex RIOS transforms continuous video observations into structured Reality Intelligence. Not just data — a continuously learning system that observes, explains, prioritises and improves.</p>
<div class="hero-ctas">
<a class="lv-btn lv-btn--lg" href="/verticals/insurance/">Insurance intelligence &rarr;</a>
<a class="btn btn-outline btn-lg" href="/contact/">Contact us &rarr;</a>
<a href="/methodology/" class="cta-secondary">See how we work &rarr;</a>
</div>
</section>
<!-- RIOS OVERVIEW -->
<section class="lv-section">
<div class="lv-container">
<div>
<div class="section-label">Reality Intelligence OS</div>
<h2 class="section-title">From observation to intelligence.<br>Continuously.</h2>
<p class="section-sub">RIOS is a vendor-agnostic AI operating system that transforms video observations into structured Reality Intelligence. It supports real-time field analysis today while continuously training proprietary models that gradually replace expensive third-party inference.</p>
</div>
<div class="how-grid">
<div>
<div>01</div>
<h3>Reality Capture</h3>
<p>QUIXZOOM mobile app, body cameras, vehicle-mounted cameras, drones, Meta smart glasses. 4K/8K video, GPS, IMU, compass, device metadata. Nothing discarded. Original media immutable.</p>
</div>
<div>
<div>02</div>
<h3>AI Orchestration</h3>
<p>Every observation enters an orchestration engine that decides which specialist models execute. Scene classification, object detection, semantic segmentation, depth estimation, OCR, risk detection, contribution detection.</p>
</div>
<div>
<div>03</div>
<h3>Active Learning (RALE)</h3>
<p>The system never asks unnecessary questions. Every human interaction maximizes future AI performance. Questions generated only when expected learning value exceeds threshold. Micro-validations in 2-5 seconds.</p>
</div>
<div>
<div>04</div>
<h3>Knowledge Graph</h3>
<p>Every confirmed observation updates assets, relationships, ownership, condition, maintenance history, predicted deterioration, regulatory status, business opportunities. Reality itself becomes a continuously indexed database.</p>
</div>
</div>
</div>
</section>
<!-- SOCIAL PROOF -->
<section class="social-proof">
<p class="sp-label">Trusted by decision makers in*</p>
<div class="sp-logos">
<div class="sp-item">🏛️ Municipal Government</div>
<div class="sp-item">🏗️ Infrastructure</div>
<div class="sp-item">🏢 Real Estate</div>
<div class="sp-item">🛡️ Insurance</div>
<div class="sp-item"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#0066FF" stroke-width="2"><path d="M18 20V10"/><path d="M12 20V4"/><path d="M6 20v-6"/></svg> Investment</div>
</div>
<p style="font-size:11px;color:#86868B;margin-top:8px;">* Representative examples of organisations Landvex is designed for. No endorsement implied.</p>
</section>
<!-- Intelligence Map Demo -->
<section class="lv-section">
<div class="lv-container">
<!-- Header -->
<div>
<div>
<span></span>
Live demonstration
</div>
<h2>Intelligence Map &mdash; 100+ Cities</h2>
<p>Click any city. Infrastructure risk, commercial vitality, contradiction index &mdash; all sourced, all traceable.</p>
</div>
<!-- Map frame -->
<div>
<iframe src="/intelligence-map.html" title="Landvex Intelligence Map" loading="lazy" allow="geolocation" class="map-iframe"></iframe>
<!-- Bottom bar: sits flush under map, inside same border-radius container -->
<div class="map-overlay">
<div>
<div></div>
<span>Source First &mdash; every data point traceable to source &rsaquo; observation &rsaquo; model &rsaquo; index</span>
</div>
<div class="map-cta-row">
<a href="/intelligence-map" >Open full map &rarr;</a>
<a href="/stockholm-intelligence" >Stockholm deep dive</a>
</div>
</div>
</div>
<!-- Tags -->
<div>
<a href="/intelligence-map" >100+ cities</a>
<a href="/intelligence/control/" >Contradiction Index</a>
<a href="/intelligence/infrastructure-risk-index/" >Infrastructure Risk</a>
<a href="/intelligence/commercial-opportunity-index/" >Commercial Vitality</a>
<a href="/intelligence/city-health-index/" >City Health</a>
<a href="/methodology/" >Source First</a>
</div>
</div>
</section>
<!-- HOW WE WORK -->
<section class="lv-section">
<div></div>
<div class="lv-container">
<div>
<div class="section-label">METHODOLOGY</div>
<h2 class="section-title">We start with your decision.<br>Not with our data.</h2>
<p>Most intelligence platforms sell you a dataset and leave the interpretation to you. Landvex works backwards — from the decision you need to make to the intelligence required to make it confidently.</p>
</div>
<div class="how-grid">
<div>
<div>01</div>
<h3>Define the decision</h3>
<p>Which assets to prioritise? Where to invest? What to insure? You define the decision — we build the intelligence to support it.</p>
</div>
<div>
<div>02</div>
<h3>Design the intelligence model</h3>
<p>We translate your decision into an observation protocol — what evidence you need, at what frequency, across which locations. Nothing more, nothing less.</p>
</div>
<div>
<div>03</div>
<h3>Deploy field collection</h3>
<p>Verified contributors collect the evidence — geo-tagged, timestamped, AI-reviewed. Every observation is traceable to a person, place, and time.</p>
</div>
<div>
<div>04</div>
<h3>Deliver structured intelligence</h3>
<p>You receive an answer — not a dataset. Condition scores, risk rankings, change flags. Formatted for the decision you defined in step one.</p>
</div>
</div>
</div>
</section>
<!-- 10 DECISIONS -->
<section class="lv-section">
<div class="lv-container">
<div>
<div class="section-label">Decision intelligence</div>
<h2 class="section-title">Ten decisions. One platform.</h2>
<p class="section-sub">Property owners, municipalities, retailers, infrastructure operators, investors. Different industries — identical need: to make better decisions about the physical world. Landvex is built for that.</p>
<div class="lv-ill-wrap" aria-hidden="true">
<svg viewBox="0 0 600 140" xmlns="http://www.w3.org/2000/svg">
<defs>
<style>@media(prefers-reduced-motion:no-preference){.pla{animation:pla 2.4s ease-in-out infinite}.plb{animation:pla 2.4s ease-in-out 1.2s infinite}}@keyframes pla{0%,100%{opacity:.65}50%{opacity:1}}</style>
</defs>
<g transform="translate(110,70)" class="pla">
<rect x="-46" y="-52" width="92" height="104" rx="8" fill="#111" stroke="rgba(0,0,0,0.08)" stroke-width="1"/>
<line x1="-28" y1="-28" x2="28" y2="-28" stroke="rgba(0,0,0,0.25)" stroke-width="2" stroke-linecap="round"/>
<line x1="-28" y1="-14" x2="18" y2="-14" stroke="rgba(0,0,0,0.15)" stroke-width="1.5" stroke-linecap="round"/>
<line x1="-28" y1="0" x2="22" y2="0" stroke="rgba(0,0,0,0.15)" stroke-width="1.5" stroke-linecap="round"/>
<circle cx="0" cy="28" r="12" fill="#00C853" opacity="0.15"/>
<path d="M-5 28 L-2 31 L7 23" fill="none" stroke="#00C853" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<text y="64" text-anchor="middle" font-family="system-ui,sans-serif" font-size="11" fill="rgba(0,0,0,0.4)">Official report</text>
</g>
<line x1="166" y1="70" x2="224" y2="70" stroke="#0066FF" stroke-width="1.5" stroke-dasharray="4 3" opacity="0.35"/>
<g transform="translate(300,70)">
<circle r="26" fill="#0066FF" opacity="0.07"/>
<circle r="26" fill="none" stroke="#0066FF" stroke-width="1" opacity="0.25"/>
<text text-anchor="middle" dy="8" font-size="24" font-weight="900" fill="#0066FF" opacity="0.75" font-family="system-ui,sans-serif"></text>
</g>
<line x1="376" y1="70" x2="434" y2="70" stroke="#0066FF" stroke-width="1.5" stroke-dasharray="4 3" opacity="0.35"/>
<g transform="translate(490,70)" class="plb">
<rect x="-46" y="-52" width="92" height="104" rx="8" fill="#111" stroke="rgba(0,0,0,0.08)" stroke-width="1"/>
<rect x="-22" y="-22" width="44" height="32" rx="4" fill="none" stroke="rgba(0,0,0,0.35)" stroke-width="1.5"/>
<circle cx="0" cy="-6" r="9" fill="none" stroke="rgba(0,0,0,0.35)" stroke-width="1.5"/>
<path d="M-10-22 L-8-28 L8-28 L10-22" fill="none" stroke="rgba(0,0,0,0.25)" stroke-width="1.5" stroke-linecap="round"/>
<circle cx="0" cy="28" r="12" fill="#FF3B30" opacity="0.15"/>
<line x1="0" y1="22" x2="0" y2="30" stroke="#FF3B30" stroke-width="2.5" stroke-linecap="round"/>
<circle cx="0" cy="35" r="1.5" fill="#FF3B30"/>
<text y="64" text-anchor="middle" font-family="system-ui,sans-serif" font-size="11" fill="rgba(0,0,0,0.4)">Field observation</text>
</g>
</svg>
</div>
</div>
<p>⚠️ All intelligence examples below are illustrative sample data for demonstration purposes.</p>
<div class="intel-grid">
<!-- CARD 1: Change Intelligence -->
<a class="lv-card lv-card--intel" href="/intelligence/">
<div class="intel-card-header">
<div>
<div class="intel-module">Change Intelligence</div>
<h3>What is changing?</h3>
<div class="intel-card-geo">Houston Metro &middot; Last 12 months</div>
</div>
<span class="lv-tag lv-tag--live">Live</span>
</div>
<div class="intel-kpis">
<div class="intel-kpi">
<div class="intel-kpi-val">92%</div>
<div class="intel-kpi-delta up">&uarr; 4.1%</div>
<div class="intel-kpi-lbl">Commercial occupancy</div>
</div>
<div class="intel-kpi">
<div class="intel-kpi-val">+1,742</div>
<div class="intel-kpi-delta up">&uarr; 12%</div>
<div class="intel-kpi-lbl">Business openings</div>
</div>
<div class="intel-kpi">
<div class="intel-kpi-val">+7.8%</div>
<div class="intel-kpi-delta up">&uarr;</div>
<div class="intel-kpi-lbl">Traffic volume</div>
</div>
</div>
<div>Top Growing Districts</div>
<div class="intel-bar-list">
<div class="intel-bar-row"><span class="intel-bar-name">Energy Corridor</span><div class="intel-bar-track"><div class="intel-bar-fill"></div></div><span class="intel-bar-score">88</span></div>
<div class="intel-bar-row"><span class="intel-bar-name">Katy</span><div class="intel-bar-track"><div class="intel-bar-fill"></div></div><span class="intel-bar-score">81</span></div>
<div class="intel-bar-row"><span class="intel-bar-name">Cypress</span><div class="intel-bar-track"><div class="intel-bar-fill"></div></div><span class="intel-bar-score">74</span></div>
</div>
<div class="intel-card-footer">
<span class="intel-obs">Based on 6,840 field observations</span>
<span class="intel-cta">Full analysis <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M12 5l7 7-7 7"/></svg></span>
</div>
</a>
<!-- CARD 2: Opportunity Intelligence -->
<a class="lv-card lv-card--intel" href="/intelligence/commercial-opportunity-index/">
<div class="intel-card-header">
<div>
<div class="intel-module">Opportunity Intelligence</div>
<h3>Where is the opportunity?</h3>
<div class="intel-card-geo">Houston Metro &middot; Ranked by score</div>
</div>
<span class="lv-tag lv-tag--live">High signal</span>
</div>
<div class="intel-kpis">
<div class="intel-kpi">
<div class="intel-kpi-val">92</div>
<div class="intel-kpi-delta up">Top score</div>
<div class="intel-kpi-lbl">Katy TX</div>
</div>
<div class="intel-kpi">
<div class="intel-kpi-val">2.1%</div>
<div class="intel-kpi-delta up">Low vacancy</div>
<div class="intel-kpi-lbl">Retail vacancy</div>
</div>
<div class="intel-kpi">
<div class="intel-kpi-val">+11%</div>
<div class="intel-kpi-delta up">&uarr;</div>
<div class="intel-kpi-lbl">Population growth</div>
</div>
</div>
<div>Highest Opportunity Score</div>
<div class="intel-bar-list">
<div class="intel-bar-row"><span class="intel-bar-name">Katy TX</span><div class="intel-bar-track"><div class="intel-bar-fill opp"></div></div><span class="intel-bar-score">92</span></div>
<div class="intel-bar-row"><span class="intel-bar-name">Spring</span><div class="intel-bar-track"><div class="intel-bar-fill opp"></div></div><span class="intel-bar-score">85</span></div>
<div class="intel-bar-row"><span class="intel-bar-name">The Woodlands</span><div class="intel-bar-track"><div class="intel-bar-fill opp"></div></div><span class="intel-bar-score">79</span></div>
</div>
<div class="intel-card-footer">
<span class="intel-obs">Income growth +8% &middot; Competition density: low</span>
<span class="intel-cta">Full analysis <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M12 5l7 7-7 7"/></svg></span>
</div>
</a>
<!-- CARD 3: Risk Intelligence -->
<a class="lv-card lv-card--intel" href="/intelligence/infrastructure-risk-index/">
<div class="intel-card-header">
<div>
<div class="intel-module">Risk Intelligence</div>
<h3>Where is the risk?</h3>
<div class="intel-card-geo">Houston Metro &middot; Risk-scored districts</div>
</div>
<span class="lv-tag lv-tag--risk">3 alerts</span>
</div>
<div class="intel-kpis">
<div class="intel-kpi">
<div class="intel-kpi-val">83</div>
<div class="intel-kpi-delta down">High risk</div>
<div class="intel-kpi-lbl">SW Houston score</div>
</div>
<div class="intel-kpi">
<div class="intel-kpi-val">+17%</div>
<div class="intel-kpi-delta down">&darr; trend</div>
<div class="intel-kpi-lbl">Vacancy rate</div>
</div>
<div class="intel-kpi">
<div class="intel-kpi-val">+21%</div>
<div class="intel-kpi-delta down">&darr;</div>
<div class="intel-kpi-lbl">Store closures</div>
</div>
</div>
<div>Highest Risk Areas</div>
<div class="intel-bar-list">
<div class="intel-bar-row"><span class="intel-bar-name">SW Houston</span><div class="intel-bar-track"><div class="intel-bar-fill risk"></div></div><span class="intel-bar-score">83</span></div>
<div class="intel-bar-row"><span class="intel-bar-name">Greenspoint</span><div class="intel-bar-track"><div class="intel-bar-fill risk"></div></div><span class="intel-bar-score">76</span></div>
<div class="intel-bar-row"><span class="intel-bar-name">Gulfgate</span><div class="intel-bar-track"><div class="intel-bar-fill risk"></div></div><span class="intel-bar-score">68</span></div>
</div>
<div class="intel-card-footer">
<span class="intel-obs">Property condition: declining &middot; 4,120 observations</span>
<span class="intel-cta">Full risk report <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M12 5l7 7-7 7"/></svg></span>
</div>
</a>
<!-- CARD 4: Predictive Intelligence -->
<a class="lv-card lv-card--intel" href="/intelligence/development-forecast/">
<div class="intel-card-header">
<div>
<div class="intel-module">Predictive Intelligence</div>
<h3>What will happen next?</h3>
<div class="intel-card-geo">Houston Metro &middot; Next 24 months</div>
</div>
<span class="lv-tag lv-tag--pred">Forecast</span>
</div>
<div class="intel-map-placeholder">
<div class="intel-map-dot hot"></div>
<div class="intel-map-dot hot"></div>
<div class="intel-map-dot hot"></div>
<div class="intel-map-dot warn"></div>
<div class="intel-map-dot"></div>
<div class="intel-map-dot"></div>
<div>Predicted growth hotspots</div>
</div>
<div class="intel-kpis">
<div class="intel-kpi">
<div class="intel-kpi-val">87%</div>
<div class="intel-kpi-delta up">Confidence</div>
<div class="intel-kpi-lbl">Model accuracy</div>
</div>
<div class="intel-kpi">
<div class="intel-kpi-val">4,281</div>
<div class="intel-kpi-delta up">Observations</div>
<div class="intel-kpi-lbl">Training base</div>
</div>
<div class="intel-kpi">
<div class="intel-kpi-val">3</div>
<div class="intel-kpi-delta up">Hotspots</div>
<div class="intel-kpi-lbl">Identified</div>
</div>
</div>
<div class="intel-confidence">
<span>Model confidence</span>
<div class="intel-conf-bar"><div class="intel-conf-fill"></div></div>
<span>87%</span>
<span>Commercial permits &middot; Population shifts &middot; Traffic flows</span>
</div>
<div class="intel-card-footer">
<span class="intel-obs">Indicative signals &mdash; not investment advice</span>
<span class="intel-cta">View forecast <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><path d="M5 12h14M12 5l7 7-7 7"/></svg></span>
</div>
</a>
</div>
<style>
.verticals-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 16px;
align-items: stretch;
}
.vertical-card {
background: #fff;
border: 1px solid #eee;
border-radius: 12px;
padding: 24px;
display: flex;
flex-direction: column;
gap: 16px;
text-decoration: none;
color: inherit;
transition: box-shadow 0.2s;
}
.vertical-card:hover {
box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.vertical-card h3 {
margin: 0;
font-size: 1.1rem;
font-weight: 600;
}
.vertical-card p {
margin: 0;
font-size: 0.875rem;
line-height: 1.5;
color: #666;
flex-grow: 1;
}
.vertical-icon {
margin-bottom: 4px;
}
</style>
<div class="verticals-grid">
<a class="lv-card lv-card--small" href="/methodology/">
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg></div>
<h3>How do we compare?</h3>
<p>Stockholm vs Copenhagen. Milan vs Barcelona. Your district vs the benchmark.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/investment-attractiveness-index/">
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<h3>Where should we invest?</h3>
<p>New store, new road, new district, new terminal — ranked by observed potential.</p>
<p><em>Location intelligence only — not financial or investment advice.</em></p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/infrastructure-risk-index/">
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></svg></div>
<h3>What needs attention first?</h3>
<p>Prioritisation within budget constraints — based on actual condition, not assumptions.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/control/">
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg></div>
<h3>What are we missing?</h3>
<p>Blind spots. Problems not yet visible in official data or internal reports.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/">
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg></div>
<h3>Are resources placed correctly?</h3>
<p>Municipalities, infrastructure operators, property portfolios — allocation intelligence.</p>
</a>
<a class="lv-card lv-card--small" href="/methodology/">
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><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>
<h3>What does reality actually look like?</h3>
<p>Not registers. Not reports. Not surveys. The physical world as it exists today.</p>
</a> </div>
</div>
</section>
<!-- DELIVER -->
<section class="deliver-bg">
<div class="lv-container">
<div class="deliver-header">
<div class="section-label">What we deliver</div>
<h2 class="section-title">From question to decision.</h2>
<p class="section-sub">Intelligence that answers a specific question — not data that leaves you guessing.</p>
</div>
<div class="lv-pipeline" aria-label="Landvex intelligence pipeline" role="img">
<div class="lv-pipeline-step">
<div class="lv-pipeline-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#0066FF" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><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>
<span class="lv-pipeline-label">Mission<br>Brief</span>
</div>
<div class="lv-pipeline-connector"></div>
<div class="lv-pipeline-step">
<div class="lv-pipeline-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#0066FF" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg></div>
<span class="lv-pipeline-label">Field<br>Collection</span>
</div>
<div class="lv-pipeline-connector"></div>
<div class="lv-pipeline-step">
<div class="lv-pipeline-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#0066FF" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg></div>
<span class="lv-pipeline-label">AI<br>Analysis</span>
</div>
<div class="lv-pipeline-connector"></div>
<div class="lv-pipeline-step">
<div class="lv-pipeline-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#0066FF" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg></div>
<span class="lv-pipeline-label">Scoring<br>0-100</span>
</div>
<div class="lv-pipeline-connector"></div>
<div class="lv-pipeline-step">
<div class="lv-pipeline-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#0066FF" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/></svg></div>
<span class="lv-pipeline-label">Intelligence<br>Report</span>
</div>
<div class="lv-pipeline-connector"></div>
<div class="lv-pipeline-step">
<div class="lv-pipeline-icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="#00C853" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 11 12 14 22 4"/><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"/></svg></div>
<span class="lv-pipeline-label">Decision<br>Made</span>
</div>
</div>
<div class="deliver-grid">
<a class="lv-card" href="/methodology/">
<div class="deliver-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><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="number">20+</div>
<h3>Countries</h3>
<p>Launching across 20+ countries from August 2026. No local staffing or coordination infrastructure required.</p>
<span>How it works →</span>
</a>
<a class="lv-card" href="/methodology/">
<div class="deliver-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
</div>
<div class="number">2472h</div>
<h3>Speed</h3>
<p>From mission creation to structured data delivery in 24 to 72 hours. No lengthy procurement cycles.</p>
<a href="/methodology/" >Methodology →</a>
</a>
<a class="lv-card" href="/methodology/">
<div class="deliver-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
</div>
<div class="number">AI</div>
<h3>Quality</h3>
<p>Every submission reviewed for geo-compliance, technical quality and specification adherence before delivery.</p>
<span>Quality standards →</span>
</a>
</div>
</div>
</section>
<!-- VERTICALS -->
<section id="verticals">
<div class="lv-container">
<div class="verticals-header">
<div class="section-label">Verticals</div>
<h2 class="section-title">Who we help make better decisions.</h2>
<p class="section-sub">If your decisions depend on the physical world, we can make them sharper.</p>
</div>
<div class="verticals-grid">
<a class="lv-card lv-card--small" href="/verticals/municipalities/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><line x1="3" y1="22" x2="21" y2="22"/><line x1="6" y1="18" x2="6" y2="11"/><line x1="10" y1="18" x2="10" y2="11"/><line x1="14" y1="18" x2="14" y2="11"/><line x1="18" y1="18" x2="18" y2="11"/><polygon points="12 2 20 7 4 7"/></svg></div>
<div>
<h3>Municipalities &amp; Government</h3>
<p class="vertical-question">Which areas will require the most investment over the next five years?</p>
<p>Urban asset management, planning compliance, public space documentation.</p>
<span class="drill-hint">Deep dive →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/verticals/infrastructure/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8h1a4 4 0 0 1 0 8h-1"/><path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"/><line x1="6" y1="1" x2="6" y2="4"/><line x1="10" y1="1" x2="10" y2="4"/></svg></div>
<div>
<h3>Infrastructure Operators</h3>
<p class="vertical-question">Where will problems emerge before they become expensive?</p>
<p>Bridge inspections, road condition surveys, utility corridor mapping.</p>
<span class="drill-hint">Deep dive →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/verticals/property/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18"/><path d="M9 21V9"/></svg></div>
<div>
<h3>Property &amp; Real Estate</h3>
<p class="vertical-question">Is this area showing growth signals worth investigating?</p>
<p>Portfolio documentation, condition assessments, site verification at scale.</p>
<span class="drill-hint">Deep dive →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/verticals/insurance/" >
<span>Vertical</span>
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg></div>
<div>
<h3>Insurance</h3>
<p class="vertical-question">Which areas carry elevated risk?</p>
<p>Claims validation, pre-loss surveys, risk assessment for physical assets.</p>
<span class="drill-hint">Deep dive →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/verticals/utilities/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg></div>
<div>
<h3>Utilities &amp; Energy</h3>
<p class="vertical-question">Where is grid capacity becoming a constraint?</p>
<p>Grid infrastructure surveys, solar/wind asset documentation, network inspections.</p>
<span class="drill-hint">Deep dive →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/verticals/logistics/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="3" width="15" height="13" rx="1"/><path d="M16 8h4l3 3v5h-7V8z"/><circle cx="5.5" cy="18.5" r="2.5"/><circle cx="18.5" cy="18.5" r="2.5"/></svg></div>
<div>
<h3>Logistics</h3>
<p class="vertical-question">Where is your network underperforming?</p>
<p>Last-mile network design, depot location selection, route efficiency and capacity planning.</p>
<span class="drill-hint">Deep dive →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/verticals/retail/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg></div>
<div>
<h3>Retail &amp; Franchise</h3>
<p class="vertical-question">Where should the next location open?</p>
<p>Store compliance audits, signage verification, location intelligence at scale.</p>
<span class="drill-hint">Deep dive →</span>
</div>
</a>
</div>
</div>
</section>
<!-- INTELLIGENCE INDEXES -->
<section id="intelligence">
<div class="lv-container">
<div>
<div class="section-label">Intelligence layer</div>
<h2 class="section-title">A score from 0100.<br>For every decision about place.</h2>
<p class="section-sub">Landvex reduces complex physical reality into a single comparable score — so you can decide faster, with more confidence. Bangkok vs Kuala Lumpur vs Manila. Same scale. Same rigour.</p>
</div>
<div class="verticals-grid">
<a class="lv-card lv-card--small" href="/intelligence/city-health-index/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M3 9h18M9 21V9M15 21V9"/></svg></div>
<h3>City Health Index</h3>
<p>A continuous composite score of urban condition, maintenance needs, and change velocity across a defined area.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/commercial-opportunity-index/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="23 6 13.5 15.5 8.5 10.5 1 18"/><polyline points="17 6 23 6 23 12"/></svg></div>
<h3>Commercial Opportunity Index</h3>
<p>Where commercial activity is growing, which locations are underserved, and which areas are in decline.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/infrastructure-risk-index/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg></div>
<h3>Infrastructure Risk Index</h3>
<p>Predictive scoring of infrastructure stress points before failures occur — based on observed conditions over time.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/development-forecast/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg></div>
<h3>Development Forecast</h3>
<p>Which areas are gaining investment, which are stagnating, and where the next development cycle is likely to begin.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/urban-growth-index/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22V12"/><path d="M5 12H2a10 10 0 0 0 20 0h-3"/><path d="M12 12C12 7 7 4 2 4c0 5 3 8 10 8z"/><path d="M12 12c0-5 5-8 10-8-0 5-3 8-10 8z"/></svg></div>
<h3>Urban Growth Index</h3>
<p>Growth velocity by district — identifying emerging zones before they appear in official statistics.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/risk-resilience-profile/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg></div>
<h3>Risk &amp; Resilience Profile</h3>
<p>Physical exposure mapping for insurance, finance, and public sector resilience planning.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/growth-velocity-index/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="19" x2="12" y2="5"/><polyline points="5 12 12 5 19 12"/></svg></div>
<h3>Growth Velocity Index</h3>
<p>How fast is an area changing? Identifies emerging zones before they appear in official statistics.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/investment-attractiveness-index/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2"/><line x1="12" y1="22" x2="12" y2="15.5"/><polyline points="22 8.5 12 15.5 2 8.5"/></svg></div>
<h3>Location Attractiveness Index</h3>
<p>Composite score for site and location analysis — combining opportunity, risk, velocity and quality signals. Not financial investment advice.</p>
</a>
<a class="lv-card lv-card--small" href="/intelligence/neighbourhood-quality-index/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg></div>
<h3>Neighbourhood Quality Index</h3>
<p>How an area is experienced — condition, activity, upkeep, and change trajectory over time.</p>
</a>
</div>
<style>
.score-table-wrap { margin-top:48px; overflow-x:auto; -webkit-overflow-scrolling:touch; }
.score-table { width:100%; border-collapse:collapse; font-size:.875rem; }
.score-table th { text-align:center; padding: 24px; font-weight:700; color:rgba(0,0,0,.75); font-size:.7rem; text-transform:uppercase; letter-spacing:.06em; }
.score-table th:first-child { text-align:left; padding-left:0; }
.score-table td { padding: 24px; border-bottom:1px solid rgba(0,0,0,.07); text-align:center; }
.score-table td:first-child { text-align:left; font-weight:700; color: #0A0A0A; padding-left:0; font-size:.875rem; }
.score-table tr:last-child td { border-bottom:none; }
/* Mobile: card layout */
@media(max-width:580px) {
.score-table-wrap { overflow-x:auto; }
.score-table thead { display:none; }
.score-table tr { display:grid; grid-template-columns:1fr 1fr; gap: 16px; padding:16px 0; border-bottom:1px solid rgba(0,0,0,.07); }
.score-table tr:last-child { border-bottom:none; }
.score-table td { display:flex; flex-direction:column; align-items:center; justify-content:center; gap: 16px; padding: 24px; background:rgba(0,0,0,.04); border-radius:10px; border-bottom:none; font-size:.75rem; }
.score-table td:first-child { grid-column:1/-1; background:transparent; align-items:flex-start; font-size:.9375rem; padding:0 0 4px; }
.score-table td::before { content:attr(data-label); font-size:.65rem; font-weight:700; color:rgba(0,0,0,.75); text-transform:uppercase; letter-spacing:.06em; }
}
</style>
<div class="score-table-wrap">
<div>
<strong><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#0066FF" stroke-width="2"><path d="M18 20V10"/><path d="M12 20V4"/><path d="M6 20v-6"/></svg> Format demonstration</strong> — The figures below are a simulated reference example showing report structure and output format. Live intelligence activates from August 2026 as the quiXzoom observation network launches.
</div>
<table class="score-table">
<thead>
<tr>
<th>City / District</th>
<th>Opportunity</th>
<th>Growth</th>
<th>Commercial Vitality</th>
<th>Infra Stability</th>
<th>Investment Confidence</th>
</tr>
</thead>
<tbody>
<tr>
<td data-label="">City A — District 1 <span>⚠ sample</span></td>
<td data-label="Opp."><span>84</span></td>
<td data-label="Growth"><span>78</span></td>
<td data-label="Vitality"><span>91</span></td>
<td data-label="Infra"><span>62</span></td>
<td data-label="Invest."><span>79</span></td>
</tr>
<tr>
<td data-label="">City B — Central <span>⚠ sample</span></td>
<td data-label="Opp."><span>77</span></td>
<td data-label="Growth"><span>61</span></td>
<td data-label="Vitality"><span>83</span></td>
<td data-label="Infra"><span>88</span></td>
<td data-label="Invest."><span>82</span></td>
</tr>
<tr>
<td data-label="">Stockholm — Norrmalm</td>
<td data-label="Opp."><span>71</span></td>
<td data-label="Growth"><span>58</span></td>
<td data-label="Vitality"><span>76</span></td>
<td data-label="Infra"><span>92</span></td>
<td data-label="Invest."><span>81</span></td>
</tr>
<tr>
<td data-label="">Milan — Porta Nuova</td>
<td data-label="Opp."><span>86</span></td>
<td data-label="Growth"><span>74</span></td>
<td data-label="Vitality"><span>88</span></td>
<td data-label="Infra"><span>69</span></td>
<td data-label="Invest."><span>84</span></td>
</tr>
</tbody>
</table>
<p>Intelligence outputs are advisory analytical signals — not investment advice, financial promotion, or statements of fact about named locations. <a href="/methodology/" >Methodology →</a></p>
</div>
<div>
<div>
<h3>Four layers. One answer.</h3>
<p>quiXzoom observes. AMOS analyses. Landvex delivers the answer. Every engagement starts with one question: <em>what decision are you trying to make?</em></p>
<!-- quiXzoom → Landvex → You pipeline -->
<div>
<div>
<div>🔭</div>
<div>quiXzoom</div>
<div>Observes reality on the ground</div>
</div>
<div>&rarr;</div>
<div>
<div></div>
<div>Landvex</div>
<div>Analyses &amp; detects contradictions</div>
</div>
<div>&rarr;</div>
<div>
<div><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="#00C853" stroke-width="3"><path d="M20 6L9 17l-5-5"/></svg></div>
<div>You decide</div>
<div>Act on what&rsquo;s actually happening</div>
</div>
</div>
</div>
<a class="lv-btn lv-btn--lg" href="#contact" >Request a briefing →</a>
</div>
</div>
</section>
<!-- CONTRADICTION ENGINE -->
<section class="lv-section">
<div class="lv-container">
<div>
<div>
<div class="section-label">Advanced intelligence</div>
<h2 class="section-title">Most systems confirm what you already believe.<br>Landvex tells you when you're wrong.</h2>
<p class="section-sub">The most valuable intelligence is not confirmation — it's contradiction. Landvex actively searches for conflicts between official narratives and observed reality, so you can correct course before it costs you.</p>
<p>⚠ All contradiction analysis shown is representative data based on real observed patterns. Live intelligence from August 2026. Reports about specific named locations are based on observed field data and explicitly labelled as analytical intelligence — not statements of fact.</p>
</div>
<div>
<div>
<span><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#f87171" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"/><line x1="4" y1="22" x2="4" y2="15"/></svg></span>
<div>
<div>Representative data — based on real observed patterns</div><div>Narrative Conflict Detected — City B (sample)</div>
<div>Official growth indicators are positive. Observed commercial activity is declining. 7 contradicting signals vs 3 supporting signals.</div>
</div>
</div>
<div class="contradiction-grid">
<div>
<div>Official narrative</div>
<ul>
<li>✓ GDP growth +3.2%</li>
<li>✓ Construction permits up</li>
<li>✓ Property prices rising</li>
</ul>
</div>
<div>
<div>Observed reality</div>
<ul>
<li>✗ Vacancies +18% this quarter</li>
<li>✗ Foot traffic down 12%</li>
<li>✗ 23 closures, 8 openings</li>
<li>✗ Maintenance deferred on 4 blocks</li>
</ul>
</div>
</div>
<div>
<span>Confidence in official narrative <em>⚠ sample</em></span>
<span>34% <span>⚠ representative</span></span>
</div>
</div>
<div class="howwework-grid">
<div>
<div>Intelligence</div>
<div>Show me what I'm missing</div>
<div>Blind spots not visible in official data or internal reports.</div>
</div>
<div>
<div>Validation</div>
<div>AI Red Team</div>
<div>Every conclusion is actively challenged by a second model before delivery.</div>
</div>
<div>
<div>Contradiction</div>
<div>Which assumptions are wrong?</div>
<div>Identify where your thesis conflicts with observed reality.</div>
</div>
</div>
</div>
</div>
</section>
<!-- HOW IT WORKS -->
<section class="how-bg" id="how-it-works">
<div class="lv-container">
<div class="how-header">
<div class="section-label">Process</div>
<h2 class="section-title">How it works</h2>
<p class="section-sub">Four steps from your question to your decision — powered by continuous active learning.</p>
</div>
<div class="how-steps">
<a class="how-step" href="/methodology/" >
<div class="step-num">1</div>
<h3>Define the decision</h3>
<p>You tell us what you need to decide — invest, insure, maintain, or move. The question drives everything.</p>
</div>
<a class="how-step" href="/methodology/" >
<div class="step-num">2</div>
<h3>Collect the evidence</h3>
<p>Verified field contributors gather observations at the exact locations your decision depends on. Every frame preserved with GPS, IMU, compass, timestamp.</p>
</div>
<a class="how-step" href="/methodology/" >
<div class="step-num">3</div>
<h3>AI + Human Intelligence</h3>
<p>AI orchestration analyses every observation. RALE (Reality Active Learning Engine) asks targeted micro-questions only when valuable. Human attention maximises future AI performance.</p>
</div>
<a class="how-step" href="/methodology/" >
<div class="step-num">4</div>
<h3>Deliver the answer</h3>
<p>You receive structured intelligence — scores, rankings, flags, and a continuously improving Knowledge Graph of your assets.</p>
</div>
</div>
</div>
</section>
<!-- CONTRIBUTION MODE -->
<section class="lv-section">
<div class="lv-container">
<div>
<div class="section-label">Active Learning</div>
<h2 class="section-title">Contribution Mode.<br>Train intelligence by confirming reality.</h2>
<p class="section-sub">Instead of asking "What is this?", AI asks: "I think there's damage here, but I'm only 62% sure. Can you confirm?" Every validation permanently improves the platform.</p>
</div>
<div class="how-grid">
<div>
<div>Micro Validation</div>
<h3>2-second confirmations</h3>
<p>"Is this road sign partially hidden?" [Yes] [No]. "How severe is this crack?" [Minor] [Moderate] [Severe]. Questions appear only when valuable, only when minimally disruptive.</p>
</div>
<div>
<div>Learning Value Score</div>
<h3>Prioritise by learning impact</h3>
<p>Every observation receives a Learning Value Score: LVS = (Uncertainty × Novelty × BusinessValue × SafetyImpact) / CostToValidate. Zoomer time is used where it has greatest impact on model quality and future operational costs.</p>
</div>
<div>
<div>Human Reliability</div>
<h3>Specialist matching</h3>
<p>Each Zoomer receives a continuously updated quality profile. Agreement with experts, category expertise, regional familiarity, historical accuracy. Different contributors become specialists in different domains.</p>
</div>
<div>
<div>Consensus Engine</div>
<h3>Maximum probability of correctness</h3>
<p>Ground truth is determined through weighted agreement: AI prediction, human validations, historical observations, official GIS, temporal consistency, neighbour consistency. Not majority voting — maximum probability of correctness.</p>
</div>
</div>
</div>
</section>
<!-- CITIES -->
<section id="cities">
<style>
#cities .vertical-card { background: #ffffff !important; }
</style>
<div class="lv-container">
<div>
<div class="section-label">City intelligence</div>
<h2 class="section-title">Intelligence for major cities.</h2>
<p class="section-sub">Explore Landvex intelligence profiles for key cities — scores, trends, and observed conditions — launching August 2026.</p>
</div>
<div class="verticals-grid">
<a class="lv-card lv-card--small" href="/cities/stockholm/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Stockholm</h3>
<p>City Health Index, Commercial Vitality, and Infrastructure Stability scores for Stockholm.</p>
<span class="drill-hint">Explore Stockholm →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/berlin/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Berlin</h3>
<p>Urban growth tracking, commercial opportunity mapping, and infrastructure risk profiling for Berlin.</p>
<span class="drill-hint">Explore Berlin →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/paris/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Paris</h3>
<p>Investment attractiveness, neighbourhood quality, and commercial opportunity intelligence for Paris.</p>
<span class="drill-hint">Explore Paris →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/london/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>London</h3>
<p>Borough-level decision intelligence — development forecasts, risk profiles, and growth velocity across London.</p>
<span class="drill-hint">Explore London →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/bangkok/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Bangkok</h3>
<p>High-growth urban intelligence for Bangkok — opportunity indexes, commercial vitality, and infrastructure risk.</p>
<span class="drill-hint">Explore Bangkok →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/copenhagen/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Copenhagen</h3>
<p>Denmark · <span>Launching August 2026</span></p>
<span class="drill-hint">Explore Copenhagen →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/oslo/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Oslo</h3>
<p>Norway · <span>Launching August 2026</span></p>
<span class="drill-hint">Explore Oslo →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/helsinki/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Helsinki</h3>
<p>Finland · <span>Launching August 2026</span></p>
<span class="drill-hint">Explore Helsinki →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/vienna/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Vienna</h3>
<p>Austria · <span>Launching August 2026</span></p>
<span class="drill-hint">Explore Vienna →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/zurich/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Zurich</h3>
<p>Switzerland · <span>Launching August 2026</span></p>
<span class="drill-hint">Explore Zurich →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/madrid/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Madrid</h3>
<p>Spain · <span>Launching August 2026</span></p>
<span class="drill-hint">Explore Madrid →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/brussels/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Brussels</h3>
<p>Belgium · <span>Launching August 2026</span></p>
<span class="drill-hint">Explore Brussels →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/rotterdam/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Rotterdam</h3>
<p>Netherlands · <span>Launching August 2026</span></p>
<span class="drill-hint">Explore Rotterdam →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/cities/milan/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></div>
<div>
<h3>Milan</h3>
<p>Italy · Investment attractiveness, commercial opportunity, and urban growth intelligence for Milan and its key districts.</p>
<span class="drill-hint">Explore Milan →</span>
</div>
</a>
</div>
</div>
</section>
<!-- USE CASES -->
<section id="use-cases">
<div class="lv-container">
<div>
<div class="section-label">Use cases</div>
<h2 class="section-title">Decisions Landvex supports.</h2>
<p class="section-sub">From bridge inspections to retail site selection — real decisions made with better intelligence.</p>
</div>
<div class="verticals-grid">
<a class="lv-card lv-card--small" href="/use-cases/retail-site-selection/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg></div>
<div>
<h3>Retail Site Selection</h3>
<p>Where should the next location open?</p>
<span class="drill-hint">Explore →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/use-cases/infrastructure-risk/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg></div>
<div>
<h3>Infrastructure Risk</h3>
<p>Where will problems emerge before they become expensive?</p>
<span class="drill-hint">Explore →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/use-cases/investment-screening/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg></div>
<div>
<h3>Investment Screening</h3>
<p>Which areas offer the best risk-adjusted opportunity?</p>
<span class="drill-hint">Explore →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/use-cases/post-disaster-assessment/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg></div>
<div>
<h3>Post-Disaster Assessment</h3>
<p>Rapid field documentation after events.</p>
<span class="drill-hint">Explore →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/use-cases/bridge-inspection/sweden/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12 Q12 4 20 12"/><line x1="4" y1="12" x2="4" y2="18"/><line x1="20" y1="12" x2="20" y2="18"/><line x1="4" y1="18" x2="20" y2="18"/><line x1="10" y1="12" x2="10" y2="18"/><line x1="16" y1="12" x2="16" y2="18"/></svg></div>
<div>
<h3>Bridge Inspection</h3>
<p>Structural condition monitoring at scale.</p>
<span class="drill-hint">Explore →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/use-cases/road-inspection/sweden/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 21L12 3l7 18"/><line x1="9" y1="14" x2="15" y2="14"/></svg></div>
<div>
<h3>Road Inspection</h3>
<p>Continuous road surface condition monitoring.</p>
<span class="drill-hint">Explore →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/contact/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><line x1="3" y1="9" x2="21" y2="9"/><line x1="9" y1="21" x2="9" y2="9"/></svg></div>
<div>
<h3>Facade Inspection</h3>
<p>Building condition at portfolio scale.</p>
<span class="drill-hint">Explore →</span>
</div>
</a>
<a class="lv-card lv-card--small" href="/contact/" >
<div class="vertical-icon"><svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="#0066ff" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><path d="M9 22V12h6v10"/><line x1="12" y1="7" x2="12.01" y2="7"/></svg></div>
<div>
<h3>Commercial Survey</h3>
<p>Commercial frontage and vitality mapping.</p>
<span class="drill-hint">Explore →</span>
</div>
</a>
</div>
</div>
</section>
<!-- DISAMBIGUATION — Google AI signal (hidden from UI; SEO/schema signal only) -->
<section>
<div class="lv-container">
<div>
<p>
<strong>Landvex (LandveX) is a decision intelligence company with US headquarters in Houston, Texas (Landvex Inc.) and European operations in Tyresö, Sweden (Landvex AB, org.nr 559141-7042)</strong> — not a meat wholesaler, food distributor, logistics company, package tracker, or land investment platform. Landvex builds control intelligence for infrastructure, property, and urban decision-making. Landvex has no connection to package tracking, last-mile delivery, AliExpress fulfilment, or any parcel service.
</p>
</div>
</div>
</section>
<!-- CONTACT -->
<section id="contact">
<div class="lv-container">
<div class="contact-wrapper">
<div class="section-label">Get in touch</div>
<h2 class="section-title">What decision are you trying to make?</h2>
<p class="section-sub">Tell us the question you need answered. We'll show you how Landvex can support it.</p>
<p>Enterprise pricing available. Pilot programmes for qualifying organisations. Typical engagement: 3-month pilot → annual intelligence subscription.</p>
<form class="contact-form" id="contact-form">
<div class="form-row">
<div class="form-group">
<label for="name">Name</label>
<input type="text" id="name" name="name" placeholder="Your name" required>
</div>
<div class="form-group">
<label for="org">Organisation</label>
<input type="text" id="org" name="organisation" placeholder="Your organisation" required>
</div>
</div>
<div class="form-group">
<label for="email">Email</label>
<input type="email" id="email" name="email" placeholder="you@organisation.com" required>
</div>
<div class="form-group">
<label for="message">Message</label>
<textarea id="message" name="message" placeholder="Describe the decision you need to make — what you need to know, where, and why it matters..."></textarea>
</div>
<button type="submit" class="lv-btn lv-btn--lg">
Request briefing →
</button>
<p class="form-note">We don't spam. Your information stays private.</p>
<div id="form-message"></div>
</form>
</div>
</div>
</section>
<!-- FOOTER -->
<footer class="lv-footer" role="contentinfo">
<div class="footer-inner">
<div>
<div class="footer-logo">Landvex</div>
<div class="footer-copy">© 2026 Landvex AB · Org.nr 559141-7042 · Tyresö, Sweden</div>
<div class="footer-ecosystem">Field data powered by <a href="https://www.quixzoom.com">quiXzoom</a> — our global network of field intelligence collectors.</div>
<div>quiXzoom is operated by Landvex AB. <a href="https://www.quixzoom.com/" >quiXzoom →</a></div>
<div class="footer-tagline">Control intelligence for the physical world.</div>
</div>
<div class="footer-links">
<a href="/privacy/">Privacy</a>
<a href="/terms/">Terms</a>
<a href="/cookie-policy/">Cookies</a>
<a href="/compliance/">Compliance</a>
<a href="/trust/">Trust Centre</a>
<a href="/dpa/">DPA</a>
<a href="/data-lineage/">Data Lineage</a>
<a href="/subprocessors/">Sub-processors</a>
<a href="/methodology/">Methodology</a>
<a href="/data-quality/">Data Quality</a>
<a href="/security/">Security</a>
<a href="/sla/">SLA &amp; Coverage</a>
<a href="/cities/stockholm/">Stockholm</a>
<a href="/cities/berlin/">Berlin</a>
<a href="/cities/paris/">Paris</a>
<a href="/cities/london/">London</a>
<a href="/cities/bangkok/">Bangkok</a>
<a href="/careers/">Careers</a>
<a href="/accessibility/">Accessibility</a>
<a href="/responsible-disclosure/">Responsible disclosure</a>
<a href="/blog/">Intelligence Insights</a>
<a href="/guides/">Guides</a>
<a href="https://www.quixzoom.com/" target="_blank" rel="noopener">quiXzoom →</a>
<a href="https://www.quixzoom.com/for-organisations/">For organisations</a>
<a href="mailto:contact@landvex.com">contact@landvex.com</a>
<a href="mailto:security@landvex.com" >security@landvex.com</a>
<a href="https://www.linkedin.com/company/landvex" target="_blank" rel="noopener" class="footer-social" title="LandveX on LinkedIn">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z" stroke="#888" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="2" y="9" width="4" height="12" stroke="#888" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="4" cy="4" r="2" stroke="#888" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</a>
<a href="https://x.com/landvex" target="_blank" rel="noopener" class="footer-social" title="LandveX on X">
<svg width="15" height="15" viewBox="0 0 24 24" fill="#888" xmlns="http://www.w3.org/2000/svg">
<path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.746l7.73-8.835L1.254 2.25H8.08l4.253 5.622 5.912-5.622Zm-1.161 17.52h1.833L7.084 4.126H5.117z"/>
</svg>
</a>
</div>
</div>
</footer>
<script>
// Contact form
document.getElementById('contact-form').addEventListener('submit', async function(e) {
e.preventDefault();
const btn = this.querySelector('button[type="submit"]');
const msgEl = document.getElementById('form-message');
btn.disabled = true;
btn.textContent = 'Sending...';
const data = {
source: 'landvex',
name: this.name.value,
organisation: this.organisation.value,
email: this.email.value,
message: this.message.value
};
try {
const res = await fetch('https://api.quixzoom.com/api/qz/waitlist', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(data)
});
if (res.ok || res.status === 201) {
msgEl.className = 'success';
msgEl.textContent = "✓ Request received. We'll be in touch within one business day.";
msgEl.style.display = 'block';
this.reset();
} else {
throw new Error('Server error ' + res.status);
}
} catch (err) {
msgEl.className = 'error';
msgEl.textContent = 'Something went wrong. Please email us directly at contact@landvex.com.';
msgEl.style.display = 'block';
}
btn.disabled = false;
btn.textContent = 'Request briefing →';
});
// Smooth scroll for nav links
document.querySelectorAll('a[href^="#"]').forEach(a => {
a.addEventListener('click', e => {
const target = document.querySelector(a.getAttribute('href'));
if (target) {
e.preventDefault();
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
});
});
</script>
<!-- About Landvex — Google Knowledge Graph + disambiguation signal -->
<section id="about-landvex" aria-hidden="true">
<h2>What is Landvex?</h2>
<p>Landvex is a decision intelligence company — not a UK meat wholesaler, food distributor, or logistics company. Landvex (landvex.com) is operated by Landvex Inc. (Houston, TX, USA) and Landvex AB (Tyresö, Sweden, org.nr 559141-7042).</p>
<p>Landvex (LandveX) is a decision intelligence platform for the physical world. Landvex is not a logistics company and has nothing to do with package tracking, parcel delivery, last-mile shipping, or AliExpress orders. Landvex helps municipalities, property owners, infrastructure operators, retail chains and investors make better decisions about physical assets by transforming field observations into actionable intelligence.</p>
<h2>Is Landvex a package tracking or logistics company?</h2>
<p>No. Landvex is not a logistics company, not a package tracker, and not related to last-mile delivery or e-commerce shipping. Landvex (LandveX) is a decision intelligence company for the built environment — infrastructure, property and urban intelligence. Landvex Inc. is incorporated in Houston, TX, USA and Landvex AB is incorporated in Tyresö, Sweden. There is no connection to any company called LandVex logistics, Land logistics, or parcel services by that name.</p>
<h2>Is Landvex related to LandEx or LandVex logistics?</h2>
<p>No. Landvex (org.nr 559141-7042, Tyresö, Sweden) is a Swedish decision intelligence company. It is not related to LandEx, LandEx Investing, or any company operating under a similar name in logistics, parcel delivery, land transport, or e-commerce fulfilment.</p>
<h2>What does Landvex do?</h2>
<p>Landvex collects field observations through the quiXzoom contributor network, analyzes them using AI, and delivers intelligence products including infrastructure risk scores, commercial opportunity indexes, urban growth indexes and contradiction reports that identify where official narratives conflict with observed reality. This is decision intelligence for the physical world — not logistics, not shipping, not package tracking.</p>
<h2>Who uses Landvex?</h2>
<p>Landvex serves municipalities and government agencies, infrastructure operators, property and real estate companies, insurance companies, utility and energy companies, and retail and franchise organizations across Europe and beyond. It is not used for parcel tracking or consumer logistics.</p>
<h2>Where is Landvex headquartered?</h2>
<p>Landvex has dual headquarters: Landvex Inc. in Houston, Texas, USA and Landvex AB in Tyresö, Sweden (org.nr 559141-7042). Landvex is a decision intelligence company — not a Chinese logistics firm, not a shipping company.</p>
<h2>Does Landvex operate in Europe?</h2>
<p>Yes. Landvex Inc. (Houston, TX) is the parent company with Landvex AB handling European operations and EU regulatory compliance. Together these entities serve clients across North America, Europe, the Middle East and Asia-Pacific.</p>
</section>
</body>
</html>