Dateien
Website/index.html
claude-dev 51278e59ca Performance Quick-Wins: Logo-SVG, lazy images, preconnect
- Logo-Header: PNG (31.7 KB) -> SVG (6.3 KB) auf 12 Seiten, mit width/height fuer CLS
- loading=lazy auf 25 unter-Fold-Bilder (Feature-/Problem-/Trust-Icons + handshake)
  Logo bleibt eager (above-the-fold)
- preconnect zu unpkg.com (CDN fuer Leaflet) im Head von 8 Seiten
  Reduziert TLS-Handshake-Verzoegerung beim ersten Leaflet-Asset
2026-05-10 15:36:13 +02:00

568 Zeilen
28 KiB
HTML

<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preconnect" href="https://unpkg.com" crossorigin>
<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1">
<meta name="theme-color" content="#0A1832">
<meta name="author" content="AegisSight UG">
<title>AegisSight Monitor – Echtzeit-Lagebilder aus offenen Quellen</title>
<meta name="description" content="OSINT-Monitoring Software aus Deutschland: KI-gestützte Echtzeit-Lagebilder aus offenen Quellen. Für Behörden, Redaktionen und Sicherheitsdienste.">
<link rel="canonical" href="https://aegis-sight.de/">
<link rel="alternate" hreflang="de" href="https://aegis-sight.de/">
<link rel="alternate" hreflang="en" href="https://aegis-sight.de/en/">
<link rel="alternate" hreflang="x-default" href="https://aegis-sight.de/">
<!-- Open Graph / Social Sharing -->
<meta property="og:type" content="website">
<meta property="og:site_name" content="AegisSight">
<meta property="og:title" content="AegisSight Monitor – Echtzeit-Lagebilder aus offenen Quellen">
<meta property="og:description" content="KI-gestützte Echtzeit-Lagebilder aus offenen Quellen. Für Behörden, Redaktionen und Sicherheitsdienste – Made in Germany.">
<meta property="og:url" content="https://aegis-sight.de/">
<meta property="og:image" content="https://aegis-sight.de/assets/images/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:locale" content="de_DE">
<meta property="og:locale:alternate" content="en_GB">
<!-- Twitter Card -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="AegisSight Monitor – Echtzeit-Lagebilder aus offenen Quellen">
<meta name="twitter:description" content="KI-gestützte Echtzeit-Lagebilder aus offenen Quellen. Für Behörden, Redaktionen und Sicherheitsdienste – Made in Germany.">
<meta name="twitter:image" content="https://aegis-sight.de/assets/images/og-image.png">
<!-- Schema.org Organization -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "AegisSight UG (haftungsbeschränkt)",
"alternateName": "AegisSight",
"url": "https://aegis-sight.de",
"logo": "https://aegis-sight.de/assets/images/logos/AegisSightLogo_NavyGold.svg",
"email": "info@aegis-sight.de",
"address": {
"@type": "PostalAddress",
"streetAddress": "Gladbacher Straße 3-5",
"postalCode": "40764",
"addressLocality": "Langenfeld",
"addressRegion": "Nordrhein-Westfalen",
"addressCountry": "DE"
}
}
</script>
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="apple-touch-icon" href="/assets/images/logos/AegisSightLogo_NavyGold.svg">
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css">
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="/css/lang-switcher.css">
<link rel="stylesheet" href="/cookie-consent.css">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "AegisSight",
"alternateName": "AegisSight Monitor",
"url": "https://aegis-sight.de/",
"inLanguage": "de-DE",
"description": "OSINT-Monitoring aus Deutschland: KI-gestützte Echtzeit-Lagebilder aus offenen Quellen, mit automatischer Faktenprüfung und Quellenbelegen.",
"publisher": {
"@type": "Organization",
"name": "AegisSight UG (haftungsbeschränkt)",
"url": "https://aegis-sight.de/",
"logo": {
"@type": "ImageObject",
"url": "https://aegis-sight.de/assets/images/logos/AegisSightLogo_NavyGold.svg"
}
}
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "AegisSight Monitor",
"applicationCategory": "BusinessApplication",
"applicationSubCategory": "OSINT Monitoring Software",
"operatingSystem": "Web",
"url": "https://aegis-sight.de/",
"image": "https://aegis-sight.de/assets/images/og-image.png",
"description": "KI-gestützte Echtzeit-Lagebilder aus offenen Quellen. Aggregation, Deduplizierung, geografische Verortung, automatische Faktenprüfung und mehrsprachige Auswertung. Für Behörden, Redaktionen und Sicherheitsdienste.",
"inLanguage": "de-DE",
"featureList": [
"Echtzeit-Monitoring hunderter Quellen",
"Quellenanalyse mit Aggregation und Deduplizierung",
"Geografische Verortung auf interaktiver Karte",
"Mehrsprachige Auswertung (Farsi, Arabisch, Hebräisch und mehr)",
"Automatische Faktenprüfung gegen unabhängige Quellen",
"Strukturierte Lagebilder mit Quellenbelegen und Zeitverlauf"
],
"publisher": {
"@type": "Organization",
"name": "AegisSight UG (haftungsbeschränkt)",
"url": "https://aegis-sight.de/",
"logo": {
"@type": "ImageObject",
"url": "https://aegis-sight.de/assets/images/logos/AegisSightLogo_NavyGold.svg"
}
},
"offers": {
"@type": "Offer",
"availability": "https://schema.org/InStock",
"priceCurrency": "EUR",
"price": "0",
"url": "https://aegis-sight.de/#contact",
"description": "Preise auf Anfrage"
}
}
</script>
</head>
<body>
<!-- Navigation -->
<nav class="navbar" id="navbar">
<div class="nav-container">
<a href="#hero" class="nav-logo">
<img src="/assets/images/logos/Logo+Schrift_Rechts.svg" alt="AegisSight" class="logo-img" width="200" height="40">
</a>
<ul class="nav-menu">
<li><a href="#features">Funktionen</a></li>
<li><a href="#demos">Live-Lagebilder</a></li>
<li><a href="#trust">Über uns</a></li>
<li><a href="#contact">Kontakt</a></li>
</ul>
<div class="nav-extras">
<div class="lang-switcher" role="group" aria-label="Sprache">
<span class="lang-active" lang="de" aria-current="true">DE</span>
<span class="lang-sep" aria-hidden="true">|</span>
<a class="lang-link" href="/en/" lang="en" hreflang="en" rel="alternate">EN</a>
</div>
<button class="mobile-menu-toggle" aria-label="Menü öffnen" aria-expanded="false">
<span></span><span></span><span></span>
</button>
</div>
</div>
</nav>
<!-- Mobile Menu -->
<div class="mobile-menu" id="mobile-menu" aria-hidden="true">
<ul>
<li><a href="#features">Funktionen</a></li>
<li><a href="#demos">Live-Lagebilder</a></li>
<li><a href="#trust">Über uns</a></li>
<li><a href="#contact">Kontakt</a></li>
</ul>
<div class="lang-switcher" role="group" aria-label="Sprache">
<span class="lang-active" lang="de" aria-current="true">DE</span>
<span class="lang-sep" aria-hidden="true">|</span>
<a class="lang-link" href="/en/" lang="en" hreflang="en" rel="alternate">EN</a>
</div>
</div>
<div class="mobile-overlay" id="mobile-overlay"></div>
<!-- Hero Section -->
<section class="hero" id="hero">
<div class="hero-overlay"></div>
<div class="hero-content">
<div class="hero-brand">
<h1 class="hero-title">AegisSight Monitor</h1>
<p class="hero-tagline">KI-gestützte Echtzeit-Lagebilder aus offenen Quellen, <span class="gold">vollautomatisch.</span></p>
</div>
<div class="hero-slider" role="region" aria-label="Produktvorteile" aria-live="polite">
<!-- Slide 1: Echtzeit-Monitoring (Video) -->
<div class="hero-slide active" data-slide="0">
<div class="hero-slide-video">
<video muted playsinline preload="auto">
<source src="videos/hero-slide-1-monitoring.mp4" type="video/mp4">
</video>
</div>
<div class="hero-slide-bottom">
<p class="hero-slide-example">Live-Beispiel: Der Iran-Konflikt wird mit über 14.900 Artikeln aus 375 Quellen kontinuierlich überwacht.</p>
<div class="hero-slide-cta">
<a href="#demos" class="btn btn-primary" onclick="positionCards(0)">Live-Beispiel ansehen</a>
</div>
</div>
</div>
<!-- Slide 2: Automatischer Faktencheck (Video) -->
<div class="hero-slide" data-slide="1">
<div class="hero-slide-video">
<video muted playsinline preload="none">
<source src="videos/hero-slide-2-monitoring.mp4?v=3" type="video/mp4">
</video>
</div>
</div>
<!-- Slide 3: KI-Recherche (Video) -->
<div class="hero-slide" data-slide="2">
<div class="hero-slide-video">
<video muted playsinline preload="none">
<source src="videos/hero-slide-3-monitoring.mp4?v=2" type="video/mp4">
</video>
</div>
<div class="hero-slide-bottom">
<p class="hero-slide-example">Beispiel: Ein Dossier zur rechtlichen Lage von Deepfakes in Deutschland, 121 Artikel aus 90 Quellen, automatisch erstellt.</p>
<div class="hero-slide-cta">
<a href="#demos" class="btn btn-primary" onclick="positionCards(2)">Recherche-Beispiel ansehen</a>
</div>
</div>
</div>
<!-- Slide 4: Globale Quellenabdeckung (Video) -->
<div class="hero-slide" data-slide="3">
<div class="hero-slide-video">
<video muted playsinline preload="none">
<source src="videos/hero-slide-4-monitoring.mp4" type="video/mp4">
</video>
</div>
<div class="hero-slide-bottom">
<p class="hero-slide-example">Im Iran-Konflikt werden Primärquellen in Farsi, Arabisch und Hebräisch direkt ausgewertet.</p>
<div class="hero-slide-cta">
<a href="#demos" class="btn btn-primary" onclick="positionCards(0)">Live-Beispiel ansehen</a>
</div>
</div>
</div>
<!-- Slide 5: Flexibel einsetzbar (Video) -->
<div class="hero-slide" data-slide="4">
<div class="hero-slide-video">
<video muted playsinline preload="none">
<source src="videos/hero-slide-5-monitoring.mp4?v=2" type="video/mp4">
</video>
</div>
<div class="hero-slide-bottom">
<p class="hero-slide-example">Beispiel: Cyberangriffe auf deutsche Infrastruktur, 93 Artikel aus 41 Quellen, automatisch überwacht.</p>
<div class="hero-slide-cta">
<a href="#demos" class="btn btn-primary" onclick="positionCards(1)">Live-Beispiel ansehen</a>
</div>
</div>
</div>
</div>
<div class="hero-slider-nav">
<div class="hero-slider-dots">
<button class="hero-dot active" data-slide="0" aria-label="Echtzeit-Monitoring"></button>
<button class="hero-dot" data-slide="1" aria-label="Faktencheck"></button>
<button class="hero-dot" data-slide="2" aria-label="KI-gestützte Recherche"></button>
<button class="hero-dot" data-slide="3" aria-label="Globale Abdeckung"></button>
<button class="hero-dot" data-slide="4" aria-label="Flexibel einsetzbar"></button>
</div>
</div>
<div class="hero-slider-arrows">
<button class="hero-arrow hero-arrow-prev" aria-label="Vorheriger Slide">&#8592;</button>
<button class="hero-arrow hero-arrow-next" aria-label="Nächster Slide">&#8594;</button>
</div>
</div>
</section>
<!-- Features -->
<section class="section section-dark" id="features">
<div class="container">
<h2 class="section-title">Was der Monitor leistet</h2>
<!-- Highlight: Faktenprüfung -->
<div class="feature-statement">
<p class="feature-statement-text">Jede Behauptung wird automatisch gegen unabhängige Quellen geprüft.</p>
<p class="feature-statement-sub">Statusverlauf, Evidenz und Quellenbelege. Automatisch und nachvollziehbar.</p>
</div>
<div class="grid-3">
<div class="feature-card">
<div class="feature-icon">
<img loading="lazy" src="/assets/images/icons/monitor.svg" alt="" width="36" height="36">
</div>
<h3>Echtzeit-Monitoring</h3>
<p>Kontinuierliche Überwachung Ihrer definierten Quellen, rund um die Uhr.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<img loading="lazy" src="/assets/images/icons/cube.svg" alt="" width="36" height="36">
</div>
<h3>Quellenanalyse</h3>
<p>Automatische Aggregation und Deduplizierung aus hunderten internationalen Quellen.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<img loading="lazy" src="/assets/images/icons/location.svg" alt="" width="36" height="36">
</div>
<h3>Geografische Verortung</h3>
<p>Orte werden erkannt und auf einer interaktiven Karte dargestellt.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<img loading="lazy" src="/assets/images/icons/languages.svg" alt="" width="36" height="36">
</div>
<h3>Mehrsprachige Auswertung</h3>
<p>Quellen in verschiedenen Sprachen werden automatisch verarbeitet und zusammengeführt.</p>
</div>
<div class="feature-card">
<div class="feature-icon">
<img loading="lazy" src="/assets/images/icons/document.svg" alt="" width="36" height="36">
</div>
<h3>Strukturierte Lagebilder</h3>
<p>Übersichtliche Zusammenfassungen mit Quellenbelegen und Zeitverläufen.</p>
</div>
</div>
</div>
</section>
<!-- Gradient: Features -> Problem -->
<div class="divider divider-gradient-dark-to-base"></div>
<!-- Problem Statement -->
<section class="section section-base" id="problem">
<div class="container">
<h2 class="section-title">Warum manuelle OSINT-Auswertung nicht skaliert</h2>
<p class="section-subtitle">Analysten in Sicherheitsbehörden, Redaktionen und Unternehmen stehen täglich vor der gleichen Herausforderung.</p>
<div class="grid-3">
<div class="problem-card">
<div class="problem-icon">
<img loading="lazy" src="/assets/images/icons/world-globe.svg" alt="" width="40" height="40">
</div>
<h3>Quellenvielfalt</h3>
<p>Hunderte Nachrichtenagenturen, Telegram-Kanäle und soziale Medien in dutzenden Sprachen. Kein Analyst überblickt alles gleichzeitig.</p>
</div>
<div class="problem-card">
<div class="problem-icon">
<img loading="lazy" src="/assets/images/icons/clock.svg" alt="" width="40" height="40">
</div>
<h3>Zeitdruck</h3>
<p>Neue Meldungen im Minutentakt. Manuelle Auswertung kostet Zeit, die Sie nicht haben.</p>
</div>
<div class="problem-card">
<div class="problem-icon">
<img loading="lazy" src="/assets/images/icons/document.svg" alt="" width="40" height="40">
</div>
<h3>Informationsflut</h3>
<p>Kritische Informationen gehen in der Masse unter, Zusammenhänge bleiben unsichtbar.</p>
</div>
</div>
</div>
</section>
<!-- Gradient: Problem -> Workflow -->
<div class="divider divider-gradient-base-to-alt"></div>
<!-- Solution / Workflow -->
<section class="section section-alt" id="solution">
<div class="container">
<h2 class="section-title">So funktioniert der AegisSight Monitor</h2>
<div class="workflow">
<div class="workflow-step">
<div class="step-number">1</div>
<h3>Erfassen</h3>
<p>Hunderte Quellen werden kontinuierlich überwacht. Nachrichtenagenturen, Telegram, Social Media und mehr.</p>
</div>
<div class="workflow-connector"></div>
<div class="workflow-step">
<div class="step-number">2</div>
<h3>Analysieren</h3>
<p>Meldungen werden automatisch ausgewertet, Fakten geprüft und geografisch verortet.</p>
</div>
<div class="workflow-connector"></div>
<div class="workflow-step">
<div class="step-number">3</div>
<h3>Berichten</h3>
<p>Strukturierte Lagebilder mit Quellenbelegen, Faktencheck und Kartenansicht. In Echtzeit.</p>
</div>
</div>
</div>
</section>
<!-- Gradient: Solution -> Demos -->
<div class="divider divider-gradient-alt-to-base"></div>
<!-- Live Demos / Showcase -->
<section class="section section-base" id="demos">
<div class="container">
<!-- Live Stats Bar -->
<div class="live-stats-bar">
<div class="live-stats-title">Großlage - Irankonflikt</div>
<div class="live-stats-row">
<div class="live-stat">
<span class="live-stat-value" id="stat-articles">...</span>
<span class="live-stat-label">Artikel</span>
</div>
<div class="live-stat">
<span class="live-stat-value" id="stat-sources">...</span>
<span class="live-stat-label">Quellen</span>
</div>
<div class="live-stat">
<span class="live-stat-value" id="stat-factchecks">...</span>
<span class="live-stat-label">Faktenchecks</span>
</div>
</div>
</div>
<!-- 3D Carousel -->
<div class="carousel-viewport">
<button class="carousel-arrow carousel-prev" aria-label="Vorherige Lage">&#8249;</button>
<button class="carousel-arrow carousel-next" aria-label="Nächste Lage">&#8250;</button>
<div class="carousel-track" id="carousel">
<!-- Iran Card -->
<div class="carousel-card card-live active" data-index="0" data-lage="iran-konflikt">
<div class="demo-badge">LIVE</div>
<h3 class="demo-title">Iran-Konflikt</h3>
<div class="demo-excerpt" id="demo-excerpt">
<div class="excerpt-text" id="excerpt-text">Lagebild wird geladen...</div>
</div>
<a href="/lagen/iran-konflikt/" class="btn btn-primary btn-block">Vollständiges Lagebild öffnen</a>
</div>
<!-- Cyberangriffe -->
<div class="carousel-card card-live" data-index="1" data-lage="cyberangriffe">
<div class="demo-badge">LIVE</div>
<h3 class="demo-title">Cyberangriffe auf deutsche Infrastruktur</h3>
<div class="demo-excerpt" id="demo-excerpt-cyberangriffe">
<div class="excerpt-text" id="excerpt-text-cyberangriffe">Lagebild wird geladen...</div>
</div>
<a href="/lagen/cyberangriffe/" class="btn btn-primary btn-block">Vollständiges Lagebild öffnen</a>
</div>
<!-- Deepfakes Recherche -->
<div class="carousel-card card-live" data-index="2" data-lage="deepfakes">
<div class="demo-badge">RECHERCHE</div>
<h3 class="demo-title">Rechtliche Lage von Deepfakes in Deutschland</h3>
<div class="demo-excerpt" id="demo-excerpt-deepfakes">
<div class="excerpt-text" id="excerpt-text-deepfakes">Recherche wird geladen...</div>
</div>
<a href="/lagen/deepfakes/" class="btn btn-primary btn-block">Vollständige Recherche öffnen</a>
</div>
</div>
<div class="carousel-nav">
<button class="carousel-dot active" data-index="0"></button>
<button class="carousel-dot" data-index="1"></button>
<button class="carousel-dot" data-index="2"></button>
</div>
</div>
<!-- Map -->
<div class="map-section" id="map-section">
<h3 class="map-title" id="map-title">Geografische Verortung der Meldungen</h3>
<div id="map-container"></div>
<div class="map-empty" id="map-empty" style="display:none">Kartendaten folgen</div>
</div>
</div>
</section>
<!-- Gradient: Demos -> Contact -->
<div class="divider"></div>
<!-- Contact CTA -->
<section class="section section-base" id="contact">
<div class="container cta-container">
<h2 class="section-title">Interesse am AegisSight Monitor?</h2>
<p class="cta-text">Sprechen Sie mit uns über Ihren Anwendungsfall.</p>
<button class="btn btn-primary btn-lg" onclick="openContactModal()">Kontakt aufnehmen</button>
</div>
</section>
<!-- Diagonal: Contact -> Trust -->
<div class="divider divider-diagonal-dark">
<svg viewBox="0 0 1440 60" preserveAspectRatio="none"><path d="M0,60 L1440,0 L1440,60 Z" fill="#132844"/></svg>
</div>
<!-- Trust / Unser Versprechen -->
<section class="section section-dark" id="trust">
<div class="container">
<h2 class="section-title">Unser Versprechen</h2>
<div class="grid-4 trust-grid">
<div class="trust-card">
<div class="trust-icon-wrap">
<img loading="lazy" src="/assets/images/icons/check-circle-filled.svg" alt="" width="48" height="48">
</div>
<h3>Enge Zusammenarbeit</h3>
<p>Wir arbeiten Hand in Hand mit unseren Kunden für maßgeschneiderte Lösungen</p>
</div>
<div class="trust-card">
<div class="trust-icon-wrap trust-flag">
<img loading="lazy" src="/assets/images/icons/german-flag.svg" alt="" width="60" height="36">
</div>
<h3>Made in Germany</h3>
<p>Klare, robuste und sichere Software nach deutschen Qualitätsstandards</p>
</div>
<div class="trust-card">
<div class="trust-icon-wrap">
<img loading="lazy" src="/assets/handshake.svg" alt="" width="50" height="50">
</div>
<h3>Verlässliche Partnerschaft</h3>
<p>Basierend auf gemeinsamen Werten und langfristigem Vertrauen</p>
</div>
<div class="trust-card">
<div class="trust-icon-wrap">
<img loading="lazy" src="/assets/images/icons/shield-check.svg" alt="" width="48" height="48">
</div>
<h3>Nachhaltigkeit</h3>
<p>Fokus auf Sicherheit, Professionalität und zukunftssichere Lösungen</p>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="footer">
<div class="container">
<div class="footer-content">
<div class="footer-info">
<p class="footer-company">AegisSight UG (haftungsbeschränkt)</p>
<p>Gladbacher Straße 3-5, 40764 Langenfeld</p>
</div>
<div class="footer-links">
<a href="/impressum.html">Impressum</a>
<a href="/datenschutz.html">Datenschutz</a>
<a href="#" id="cookie-settings-link">Cookie-Einstellungen</a>
</div>
</div>
<p class="footer-copyright">&copy; <span id="footer-year">2026</span> AegisSight UG (haftungsbeschränkt). Alle Rechte vorbehalten.</p>
</div>
</footer>
<script>document.getElementById('footer-year').textContent=new Date().getFullYear();</script>
<!-- Contact Modal -->
<div class="modal-overlay" id="contact-modal" style="display:none">
<div class="modal-content">
<button class="modal-close" onclick="closeContactModal()">&times;</button>
<h2>Kontakt aufnehmen</h2>
<p class="modal-sub">Sprechen Sie mit uns über Ihren Anwendungsfall.</p>
<form id="contact-form" onsubmit="return submitContact(event)">
<div class="form-row">
<div class="form-group">
<label for="cf-name">Name</label>
<input type="text" id="cf-name" name="name" required>
</div>
<div class="form-group">
<label for="cf-org">Organisation</label>
<input type="text" id="cf-org" name="organisation">
</div>
</div>
<div class="form-group">
<label for="cf-email">E-Mail</label>
<input type="email" id="cf-email" name="email" required>
</div>
<div class="form-group">
<label for="cf-message">Nachricht</label>
<textarea id="cf-message" name="message" rows="4" required></textarea>
</div>
<button type="submit" class="btn btn-primary btn-block">Nachricht senden</button>
</form>
<div class="form-success" id="form-success" style="display:none">
<p>Vielen Dank für Ihre Nachricht. Wir melden uns zeitnah bei Ihnen.</p>
</div>
</div>
</div>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script src="https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js"></script>
<script src="js/app.js"></script>
<script src="/cookie-consent.js"></script>
</body>
</html>