Files
boc/landvex-all/use-cases/bridge-inspection/sweden/index.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

350 lines
21 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>Bridge Inspection in Sweden — Landvex</title>
<meta name="description" content="Landvex delivers systematic bridge condition monitoring and structural assessment intelligence for Swedish road authorities and Trafikverket.">
<link rel="canonical" href="https://landvex.com/use-cases/bridge-inspection/sweden/">
<link rel="alternate" hreflang="x-default" href="https://landvex.com/">
<meta property="og:type" content="website">
<meta property="og:url" content="https://landvex.com/use-cases/bridge-inspection/sweden/">
<meta property="og:title" content="Bridge Inspection in Sweden — Landvex">
<meta property="og:description" content="Landvex delivers systematic bridge condition monitoring and structural assessment intelligence for Swedish road authorities, Trafikverket, and municipalities — deployed within 72 hours.">
<meta property="og:image" content="https://landvex.com/og-image.jpg">
<meta name="twitter:card" content="summary_large_image">
<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">
<meta name="robots" content="index, follow">
<script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{"@type": "ListItem", "position": 1, "name": "Landvex", "item": "https://landvex.com/"},
{"@type": "ListItem", "position": 2, "name": "Use Cases", "item": "https://landvex.com/use-cases/"},
{"@type": "ListItem", "position": 3, "name": "Bridge Inspection", "item": "https://landvex.com/use-cases/bridge-inspection/"},
{"@type": "ListItem", "position": 4, "name": "Sweden", "item": "https://landvex.com/use-cases/bridge-inspection/sweden/"}
]
}</script>
<link rel="stylesheet" href="/assets/css/landvex-complete.css">
<style>
*, *::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.15); --text-light: #1d1d1f;
--text-dim: #6B6B6B; --text-muted: #6B6B6B; --surface: #ffffff;
--surface-2: #f5f5f7; --border: rgba(0,0,0,0.08);
--radius-sm: 8px; --radius-md: 14px; --radius-lg: 24px;
}
html { scroll-behavior: smooth; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Helvetica Neue', sans-serif; background: var(--bg-dark); color: var(--text-light); line-height: 1.6; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
nav { position: fixed; top: 0; left: 0; right: 0; z-index: 100; 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 var(--border); }
.nav-logo {
font-size: 18px;
font-weight: 700;
letter-spacing: -0.3px;
color: #1d1d1f; }
.btn { display: inline-flex; align-items: center; gap: 16px; padding: 24px; background: var(--blue); color: #1d1d1f; 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 { background: transparent; border: 1.5px solid rgba(0,0,0,0.18); color: var(--text-light); }
.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 { min-height: 88vh; 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 { font-size: clamp(34px,5.5vw,62px); font-weight: 800; letter-spacing: -2px; line-height: 1.06; color: #1d1d1f; max-width: 820px; margin-bottom: 24px; }
.hero-sub { font-size: clamp(16px,2vw,19px); color: var(--text-dim); max-width: 640px; line-height: 1.65; margin-bottom: 40px; }
.hero-ctas { display: flex; gap: 16px; flex-wrap: wrap; justify-content: center; }
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 { font-size: clamp(26px,3.8vw,42px); font-weight: 800; letter-spacing: -1.2px; line-height: 1.1; color: #1d1d1f; margin-bottom: 24px; }
.section-sub { font-size: 17px; color: var(--text-dim); max-width: 600px; line-height: 1.7; }
.use-case-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 48px; }
.use-case-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; }
.use-case-card:hover { border-color: rgba(0,102,255,0.35); transform: translateY(-3px); }
.use-case-card h3 { font-size: 17px; font-weight: 700; color: #1d1d1f; margin-bottom: 8px; }
.use-case-card p { font-size: 14px; color: var(--text-dim); line-height: 1.6; }
.decisions-bg { background: var(--surface); }
.decisions-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; margin-top: 40px; }
.decision-chip { background: var(--bg-dark); border: 1px solid var(--border); border-radius: var(--radius-md); padding: 24px; display: flex; align-items: center; gap: 16px; }
.decision-chip .chip-dot { width: 8px; height: 8px; border-radius: var(--radius-full); background: var(--blue); flex-shrink: 0; }
.decision-chip span { font-size: 14px; font-weight: 600; color: var(--text-light); }
.contradiction-bg { background: #e8f0fe; }
.contradiction-box { background: rgba(0,0,0,.05); border: 1px solid rgba(0,0,0,.1); border-radius: var(--radius-lg); padding: 24px; margin-bottom: 32px; }
.conflict-header { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.conflict-flag { font-size: 1.5rem; color: #f87171; }
.conflict-title { color: #f87171; font-weight: 800; font-size: .9375rem; margin-bottom: 4px; }
.conflict-desc { color: rgba(0,0,0,.6); font-size: .875rem; line-height: 1.6; }
.conflict-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.conflict-side { border-radius: var(--radius-md); padding: 16px; }
.conflict-official { background: rgba(34,197,94,.1); border: 1px solid rgba(34,197,94,.2); }
.conflict-observed { background: rgba(239,68,68,.1); border: 1px solid rgba(239,68,68,.2); }
.conflict-side-label { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 10px; }
.conflict-official .conflict-side-label { color: #86efac; }
.conflict-observed .conflict-side-label { color: #fca5a5; }
.conflict-side ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 16px; }
.conflict-footer { margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(0,0,0,.1); display: flex; justify-content: space-between; align-items: center; }
.conflict-footer-label { color: rgba(0,0,0,.75); font-size: .8125rem; }
.conflict-confidence { color: #f87171; font-weight: 800; font-size: 1.125rem; }
.breadcrumb { font-size: 13px; color: var(--text-muted); padding: 24px 0; display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.breadcrumb a { color: var(--text-muted); }
.breadcrumb a:hover { color: #1d1d1f; }
.breadcrumb .sep { color: var(--border); }
.comparison-table { width: 100%; border-collapse: collapse; margin-top: 32px; border-radius: var(--radius-md); overflow: hidden; border: 1px solid rgba(0,0,0,0.08); }
.comparison-table th { padding: 24px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; text-align: left; background: rgba(0,0,0,0.04); color: var(--text-dim); }
.cta-section { background: #e8f0fe; }
.cta-box { border-radius: var(--radius-lg); padding: 24px; text-align: center; max-width: 680px; margin: 0 auto; }
.cta-box h2 { font-size: clamp(24px,3vw,36px); font-weight: 800; color: #1d1d1f; margin-bottom: 24px; }
.cta-box p { font-size: 17px; color: rgba(0,0,0,.7); margin-bottom: 36px; line-height: 1.65; }
.lv-disclaimer { font-size:.75rem; color:rgba(0,0,0,.75); margin-top:24px; padding: 24px; background:rgba(0,0,0,.04); border-radius: var(--radius-md); line-height:1.6; max-width:800px; }
.lv-disclaimer a { color:rgba(0,0,0,.65); text-decoration:underline; }
footer { border-top: 1px solid var(--border); padding: 40px; }
.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: #1d1d1f; }
.footer-copy { font-size: 13px; color: var(--text-muted); }
.footer-tagline { font-size: 12px; color: var(--text-muted); margin-top: 4px; }
.footer-links { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.footer-links a { font-size: 14px; color: var(--text-muted); transition: color 0.2s; }
.footer-links a:hover { color: #1d1d1f; }
.footer-social { width: 32px; height: 32px; border: 1px solid var(--border); border-radius: var(--radius-md); 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); }
@media (max-width:900px) { nav { padding:0 20px; } .use-case-grid { grid-template-columns:1fr; } .decisions-grid { grid-template-columns:1fr 1fr; } .conflict-grid { grid-template-columns:1fr; } }
@media (max-width:600px) { section { padding: 24px; } .decisions-grid { grid-template-columns:1fr; } nav { padding:0 16px; } .hero h1 { letter-spacing:-1px; } .contradiction-box { padding: 24px; } }
</style>
</head>
<body>
<nav aria-label="Main navigation">
<a class="nav-logo" href="https://landvex.com/">&larr; Landvex</a>
<a class="lv-btn lv-btn--outline" href="/contact/">Contact &rarr;</a>
</nav>
<div class="breadcrumb">
<a href="https://landvex.com/">Landvex</a>
<span class="sep">/</span>
<a href="/use-cases/">Use Cases</a>
<span class="sep">/</span>
<a href="/use-cases/bridge-inspection/">Bridge Inspection</a>
<span class="sep">/</span>
<span>Sweden</span>
</div>
<!-- HERO -->
<section class="lv-hero">
<div class="lv-hero-eyebrow">Bridge Inspection — Sweden</div>
<h1>Bridge Inspection in Sweden</h1>
<p class="lv-hero-subtitle">Landvex provides Swedish road authorities and municipalities with field-verified bridge condition intelligence, enabling maintenance prioritization and structural risk assessment across the national network. Deployed in 24 to 72 hours, without procurement delays.</p>
<div class="hero-ctas">
<a class="lv-btn lv-btn--lg" href="/pilot/">Request a pilot &rarr;</a>
<a class="btn btn-outline btn-lg" href="/contact/">Contact Landvex</a>
</div>
</section>
<!-- USE CASE CARDS -->
<section>
<div class="lv-container">
<div class="section-label">Capabilities</div>
<h2 class="section-title">Bridge Inspection in Sweden — what Landvex delivers</h2>
<p class="section-sub">Every engagement is anchored to a specific decision. Select a capability to discuss how Landvex applies it to your context.</p>
<div class="use-case-grid">
<a class="use-case-card" href="/contact/">
<span class="uc-icon">&#965050</span>
<h3>Structural Condition Assessment</h3>
<p>Systematic visual surveys of bridge decks, bearings, expansion joints, parapets, and approach slabs across the Swedish national and municipal bridge inventory. AI-reviewed, geo-tagged, and delivered as structured data.</p>
<div>Learn more &rarr;</div>
</a>
<a class="use-case-card" href="/contact/">
<span class="uc-icon">&#9632;</span>
<h3>Maintenance Prioritization for Trafikverket</h3>
<p>Rank bridge assets by observed condition severity and deterioration rate. Support capital allocation decisions with field-verified evidence rather than interpolated inspection cycles.</p>
<div>Learn more &rarr;</div>
</a>
<a class="use-case-card" href="/contact/">
<span class="uc-icon">&#9670;</span>
<h3>Contractor Performance Verification</h3>
<p>Independent post-maintenance verification for Swedish procurement authorities. Confirm that remediation work has been completed to specification before invoice approval.</p>
<div>Learn more &rarr;</div>
</a></div>
</div>
</section>
<!-- COMPARISON TABLE -->
<section>
<div class="lv-container">
<div class="section-label">Comparison</div>
<h2 class="section-title">Landvex vs traditional bridge inspection methods</h2>
<p class="section-sub">How field-verified continuous intelligence compares to conventional survey and inspection approaches.</p>
<table class="comparison-table">
<thead>
<tr>
<th>Dimension</th>
<th>Traditional approach</th>
<th>Landvex</th>
</tr>
</thead>
<tbody>
<tr>
<td>Physical access required</td>
<td>Yes — inspectors on site</td>
<td>No — remote observation</td>
</tr>
<tr>
<td>Deployment lead time</td>
<td>Weeks to months</td>
<td>2472 hours</td>
</tr>
<tr>
<td>Coverage per day</td>
<td>13 bridges</td>
<td>50+ bridges</td>
</tr>
<tr>
<td>Data format</td>
<td>PDF reports, paper forms</td>
<td>Structured JSON, GIS-ready</td>
</tr>
<tr>
<td>Re-inspection frequency</td>
<td>210 year cycles</td>
<td>On-demand</td>
</tr>
<tr>
<td>Contradiction detection</td>
<td>Manual review only</td>
<td>Automated AI cross-reference</td>
</tr>
</tbody>
</table>
</div>
</section>
<!-- KEY DECISIONS -->
<section class="decisions-bg">
<div class="lv-container">
<div class="section-label">Decision support</div>
<h2 class="section-title">Decisions Landvex informs in Sweden</h2>
<p class="section-sub">Every Landvex engagement is anchored to one or more of these decisions. We start with your question before designing the intelligence mission.</p>
<div class="decisions-grid">
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Maintenance prioritisation across Trafikverket districts</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Municipal bridge budget allocation</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Risk-based inspection scheduling</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Contractor works acceptance</span>
</div>
<div class="decision-chip">
<span class="chip-dot"></span>
<span>Regulatory NVV reporting</span>
</div></div>
</div>
</section>
<!-- CONTRADICTION ENGINE -->
<section class="contradiction-bg">
<div class="lv-container">
<div>
<div class="section-label">Contradiction Engine</div>
<h2 class="section-title">Most systems confirm what you already believe.<br>Landvex finds what doesn&rsquo;t add up.</h2>
<p class="section-sub">The most actionable intelligence is contradiction. Landvex actively searches for conflicts between official narratives and observed field reality — and quantifies the confidence gap.</p>
</div>
<div class="contradiction-box">
<div class="conflict-header">
<span class="conflict-flag">&#9888;</span>
<div>
<div class="conflict-title">Narrative Conflict Detected &mdash; E4 Corridor — Sodermanland</div>
<div class="conflict-desc">Trafikverket maintenance schedule indicates assets within acceptable parameters. Field observation contradicts in 4 of 6 monitored segments.</div>
</div>
</div>
<div class="conflict-grid">
<div class="conflict-side conflict-official">
<div class="conflict-side-label">Official narrative</div>
<ul><li>&#100003 Last inspection: 14 months ago, passed</li>
<li>&#100003 Maintenance schedule: on track</li>
<li>&#100003 No load restrictions active</li></ul>
</div>
<div class="conflict-side conflict-observed">
<div class="conflict-side-label">Observed reality</div>
<ul><li>&#100007 Visible spalling on three pier caps</li>
<li>&#100007 Expansion joint separation exceeds specification on two spans</li>
<li>&#100007 Approach slab subsidence visible on northbound carriageway</li>
<li>&#100007 Drainage outfall blockage confirmed at abutment E4-107</li></ul>
</div>
</div>
<div class="conflict-footer">
<span class="conflict-footer-label">Confidence in official narrative</span>
<span class="conflict-confidence">23%</span>
</div>
</div>
<div>
<div>
<div>&#128269;</div>
<h4>Show me what I am missing</h4>
<p>Blind spots absent from official data and internal reports</p>
</div>
<div>
<div>&#9878;</div>
<h4>AI Red Team</h4>
<p>Every conclusion is challenged by a second model before delivery</p>
</div>
<div>
<div>&#128208;</div>
<h4>Which assumptions are wrong?</h4>
<p>Identify where your thesis conflicts with observed reality</p>
</div>
</div>
</div>
</section>
<!-- CTA -->
<section class="cta-section">
<div class="lv-container">
<div class="cta-box">
<div class="section-label">Get started</div>
<h2>Request a pilot for Bridge Inspection in Sweden</h2>
<p>Tell us the decision you need to make. We will design an intelligence mission and return field-verified data within 72 hours — no procurement delay, no physical access required.</p>
<a class="lv-btn lv-btn--lg" href="/pilot/">Request a pilot &rarr;</a>
</div>
<p class="lv-disclaimer">Intelligence outputs are indicative and advisory only. Based on field observations — not investment, financial, or legal advice. Landvex AB accepts no liability for decisions made based on these outputs. <a href="/methodology/">Methodology &rarr;</a></p>
</div>
</section>
<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-tagline">Decision intelligence for the physical world.</div>
</div>
<div class="footer-links">
<a href="https://landvex.com/">Home</a>
<a href="/methodology/">Methodology</a>
<a href="/security/">Security</a>
<a href="https://www.quixzoom.com/" target="_blank" rel="noopener">quiXzoom &rarr;</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>
</body>
</html>