Optimierung markemacht.de und adametz.media für Live-Deploy.
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (8.3) (push) Waiting to run
tests / ci (8.4) (push) Waiting to run
tests / ci (8.5) (push) Waiting to run

Beide Sites mit lokalem Font-Hosting, WebP, Build-Pipeline, SEO-Basis,
HSTS, Performance-Tuning und aktualisierten Impressum/Datenschutz-Texten.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Kevin Adametz 2026-06-09 09:55:25 +00:00
parent 18216e301c
commit 9c6b7ed4f3
158 changed files with 12472 additions and 873 deletions

92
_adametz.media/.htaccess Normal file
View file

@ -0,0 +1,92 @@
# ADAMETZ.MEDIA — Apache-Konfiguration (adametz.media)
# Kanonische Domain: https://adametz.media (ohne www)
# ── Rewrite-Engine ────────────────────────────────────────────────────────────
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# HTTPS erzwingen und www → non-www (301 Permanent)
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.adametz\.media$ [NC]
RewriteRule ^ https://adametz.media%{REQUEST_URI} [R=301,L]
# Build-Skript und interne Dateien nicht öffentlich
RewriteRule ^scripts/ - [F,L]
RewriteRule ^assets/components/ - [F,L]
RewriteRule ^assets/version\.txt$ - [F,L]
</IfModule>
# ── Fehlerseiten ──────────────────────────────────────────────────────────────
ErrorDocument 404 /404.html
# ── Verzeichnislisting deaktivieren ───────────────────────────────────────────
Options -Indexes -MultiViews
# ── Standard-Dokument ─────────────────────────────────────────────────────────
DirectoryIndex index.html
# ── Zeichensatz ───────────────────────────────────────────────────────────────
AddDefaultCharset UTF-8
# ── MIME-Typen ────────────────────────────────────────────────────────────────
<IfModule mod_mime.c>
AddType image/webp .webp
AddType image/svg+xml .svg
AddType font/woff2 .woff2
AddType font/woff .woff
</IfModule>
# ── Kompression ───────────────────────────────────────────────────────────────
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
AddOutputFilterByType DEFLATE application/javascript application/json application/xml
AddOutputFilterByType DEFLATE image/svg+xml font/woff2 font/woff
</IfModule>
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css text/xml
AddOutputFilterByType BROTLI_COMPRESS application/javascript application/json application/xml
AddOutputFilterByType BROTLI_COMPRESS image/svg+xml font/woff2 font/woff
</IfModule>
# ── Cache-Steuerung ───────────────────────────────────────────────────────────
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 0 seconds"
ExpiresByType text/html "access plus 0 seconds"
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
ExpiresByType image/svg+xml "access plus 7 days"
ExpiresByType image/webp "access plus 7 days"
ExpiresByType image/jpeg "access plus 7 days"
ExpiresByType image/png "access plus 7 days"
ExpiresByType font/woff2 "access plus 7 days"
ExpiresByType font/woff "access plus 7 days"
</IfModule>
<IfModule mod_headers.c>
SetEnvIf Request_URI "^/assets/" ASSET_PATH=1
Header set Cache-Control "public, max-age=604800, immutable" env=ASSET_PATH
<FilesMatch "\.(html)$">
Header set Cache-Control "no-cache, must-revalidate"
</FilesMatch>
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'self'; base-uri 'self'; form-action 'self' mailto:"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
</IfModule>
# ── Zugriffsschutz ────────────────────────────────────────────────────────────
<FilesMatch "(^\.|\.md$|\.DS_Store$)">
Require all denied
</FilesMatch>
<FilesMatch "(^|/)version\.txt$">
Require all denied
</FilesMatch>

162
_adametz.media/404.html Normal file
View file

@ -0,0 +1,162 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Seite nicht gefunden Kevin Adametz</title>
<meta
name="description"
content="Die angeforderte Seite wurde nicht gefunden."
/>
<meta name="robots" content="noindex" />
<meta property="og:title" content="Seite nicht gefunden Kevin Adametz" />
<meta
property="og:description"
content="Die angeforderte Seite wurde nicht gefunden."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://adametz.media/404.html" />
<link rel="canonical" href="https://adametz.media/" />
<meta name="twitter:title" content="Seite nicht gefunden Kevin Adametz" />
<meta
name="twitter:description"
content="Die angeforderte Seite wurde nicht gefunden."
/>
<meta property="og:locale" content="de_DE" />
<meta property="og:site_name" content="ADAMETZ.MEDIA" />
<meta property="og:image" content="https://adametz.media/assets/img/og-share.webp" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Kevin Adametz — Markensysteme, die funktionieren" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://adametz.media/assets/img/og-share.webp" />
<meta name="theme-color" content="#0a0a0a" />
<link rel="preload" href="assets/fonts/outfit-regular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="preload" href="assets/fonts/source-sans-3-regular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="apple-touch-icon" sizes="180x180" href="assets/fav/apple-icon-180x180.png" />
<link rel="icon" type="image/png" sizes="32x32" href="assets/fav/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="assets/fav/favicon-16x16.png" />
<link rel="shortcut icon" href="assets/fav/favicon.ico" />
<link rel="manifest" href="manifest.json" />
<link rel="stylesheet" href="assets/styles.css?v=20250610" />
<script src="assets/js/app.js?v=20250610" defer></script>
<script defer src="https://sys.adametz.media/config.js" data-website-id="69ec86fc-7f06-4cc5-9e2c-fd9daaae7faa"></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "ADAMETZ.MEDIA",
"url": "https://adametz.media/",
"description": "Markensysteme für Unternehmen, die sich klar erklären wollen von der Strategie bis zur Umsetzung.",
"inLanguage": "de-DE"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Kevin Adametz",
"jobTitle": "Markenarchitekt",
"url": "https://adametz.media/",
"email": "info@adametz.media",
"telephone": "+49-5206-7076721",
"address": {
"@type": "PostalAddress",
"streetAddress": "In der Lake 4",
"addressLocality": "Bielefeld",
"postalCode": "33739",
"addressCountry": "DE"
},
"worksFor": {
"@type": "Organization",
"name": "ADAMETZ.MEDIA"
}
}
</script>
</head>
<body>
<a class="skip-link" href="#main">Zum Inhalt springen</a>
<nav class="nav" id="nav" aria-label="Hauptnavigation">
<div class="container">
<div class="nav-inner">
<a href="index.html" class="nav-logo">
<img
src="assets/img/logo.png"
alt="Adametz.Media Logo"
class="nav-logo-img"
width="252"
height="160"
decoding="async"
/>
Adametz.Media
</a>
<ul class="nav-links">
<li><a href="index.html#start">Start</a></li>
<li><a href="index.html#haltung">Haltung</a></li>
<li><a href="index.html#umsetzung">Umsetzung</a></li>
<li><a href="index.html#projekte">Evidenz</a></li>
<li><a href="index.html#kontakt">Kontakt</a></li>
</ul>
<button
class="nav-toggle"
id="navToggle"
aria-label="Menü öffnen"
aria-controls="navMobile"
aria-expanded="false"
>
<span></span>
<span></span>
<span></span>
</button>
</div>
</div>
</nav>
<div class="nav-mobile" id="navMobile">
<a href="index.html#start">Start</a>
<a href="index.html#haltung">Haltung</a>
<a href="index.html#umsetzung">Umsetzung</a>
<a href="index.html#projekte">Evidenz</a>
<a href="index.html#kontakt">Kontakt</a>
</div>
<section class="content-section" id="main">
<div class="container">
<div class="content-wrapper">
<h1>Seite nicht gefunden</h1>
<p>
Die angeforderte Seite existiert nicht oder wurde verschoben.
</p>
<p>
<a href="index.html" class="btn">
Zur Startseite
<span class="btn-arrow"></span>
</a>
</p>
</div>
</div>
</section>
<footer class="footer">
<div class="container">
<div class="footer-inner">
<p class="footer-copy">© 2026 ADAMETZ.MEDIA Kevin Adametz</p>
<div class="footer-links">
<a href="impressum.html">Impressum</a>
<a href="datenschutz.html">Datenschutz</a>
</div>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,186 @@
# Live-Deployment — adametz.media
Kurzanleitung für den Upload auf den Produktionsserver (Apache + `.htaccess`).
---
## Server-Anforderungen
| Komponente | Erforderlich |
|------------|--------------|
| **Webserver** | Apache mit `mod_rewrite`, `mod_headers`, `mod_expires`, `mod_deflate` |
| **PHP** | Nicht erforderlich (reine Static-Site) |
| **HTTPS** | Pflicht — wird per `.htaccess` erzwungen |
| **Optional** | `mod_brotli` (zusätzliche Kompression) |
Domain: **https://adametz.media** (ohne `www`).
---
## Deploy-Ablauf (Checkliste)
### 1. Vor dem Upload (lokal)
```bash
cd _adametz.media
# Bei CSS/JS-Änderungen: Version erhöhen
# → assets/version.txt (z. B. 20250610)
# Head, Header, Footer in alle HTML-Seiten einspielen
python3 scripts/build-site.py
```
### 2. Auf den Server hochladen
Document Root = Inhalt von `_adametz.media/` (alle Dateien im Root der Domain).
### 3. Kurz testen
- [ ] https://adametz.media/ lädt korrekt
- [ ] Hero-Bild und Scroll-Reveal funktionieren
- [ ] Mobile Navigation öffnet und schließt
- [ ] https://adametz.media/robots.txt erreichbar
- [ ] https://adametz.media/sitemap.xml erreichbar
- [ ] Ungültige URL zeigt `404.html`
- [ ] `mailto:`- und `tel:`-Links funktionieren
---
## Was hochladen — was nicht
### Mit hochladen
- Alle `*.html` im Root (inkl. `404.html`)
- `.htaccess`
- `robots.txt`, `sitemap.xml`, `manifest.json`, `browserconfig.xml`
- `assets/` (css, js, fonts, img, fav, components)
### Nicht öffentlich / nicht nötig
| Pfad | Grund |
|------|--------|
| `scripts/` | Build-Skript — wird per `.htaccess` blockiert |
| `assets/version.txt` | Nur für Build — wird blockiert |
| `*.md` | Werden per `.htaccess` blockiert |
| `.DS_Store` | Werden blockiert |
| Ungenutzte PNG/JPG-Originale in `assets/img/` | Nicht deployen — nur WebP-Varianten ausliefern |
| `assets/manifest.json` | Gelöscht — nur Root-`manifest.json` nutzen |
---
## Build-Workflow
Die Site nutzt ein einfaches Build-Skript analog zu markemacht.de:
```
assets/components/
head-common.html → Favicons, OG-Bild, JSON-LD, CSS/JS mit Cache-Busting
header-index.html → Navigation für Startseite (Anker-Links)
header-sub.html → Navigation für Unterseiten
footer.html → Footer
scripts/build-site.py → Inlined Komponenten in alle *.html
assets/version.txt → Versionsnummer für ?v= Cache-Busting
```
**Nach jeder Änderung an Komponenten oder version.txt:**
```bash
python3 scripts/build-site.py
```
---
## Bilder
Genutzte Bilder liegen als **WebP** in `assets/img/`:
| Datei | Verwendung | Größe (ca.) |
|-------|------------|-------------|
| `hero-bg2.webp` | Hero-Hintergrund (LCP) | ~91 KB |
| `og-share.webp` | Social-Media-Vorschau | ~49 KB |
| `haltung-*.webp` | Haltung-Sektion | ~1118 KB |
| `umsetzung-*.webp` | Umsetzung-Sektion | ~2454 KB |
| `case-*.webp` | Evidenz-Sektion | ~1062 KB |
| `am.webp` | Hero-Portrait | ~2 KB |
| `back.webp` | Kontakt-Portrait | ~19 KB |
| `logo.png` | Logo (klein, PNG) | ~8 KB |
**Neue Bilder hinzufügen:**
```bash
# Beispiel: PNG → WebP mit ffmpeg
ffmpeg -y -i neues-bild.png -vf "scale=800:-2" -c:v libwebp -quality 80 neues-bild.webp
```
---
## Schriften
Alle Schriften sind lokal gehostet (`assets/fonts/`):
- **Outfit** (400, 500, 600, 700) — Headlines
- **Source Sans 3** (400, 500, 600) — Fließtext
Keine externen Font-Requests (kein Google Fonts).
---
## SEO
| Datei | Inhalt |
|-------|--------|
| `robots.txt` | Crawler-Regeln + Sitemap-Verweis |
| `sitemap.xml` | 3 URLs: `/`, `/impressum.html`, `/datenschutz.html` |
| JSON-LD | `WebSite` + `Person` auf allen Seiten (via head-common) |
| `og-share.webp` | Dediziertes OG-Bild (1200×630) |
---
## Apache-Konfiguration (`.htaccess`)
Die `.htaccess` enthält:
- HTTPS + www→non-www Redirect (301)
- `ErrorDocument 404 /404.html`
- Gzip + Brotli-Kompression
- Cache-Steuerung: HTML frisch, Assets 7 Tage (mit `?v=` Cache-Busting)
- Security-Headers (CSP, X-Frame-Options, etc.)
- Schutz für `scripts/`, `version.txt`, `.md`, `.DS_Store`
**CSP:** Keine externen Skripte — `script-src 'self'` only.
---
## Wartung
### CSS/JS geändert?
1. `assets/version.txt` erhöhen (z. B. `20250610`)
2. `python3 scripts/build-site.py` ausführen
3. Geänderte Dateien hochladen
### Navigation/Footer geändert?
1. Komponente in `assets/components/` bearbeiten
2. `python3 scripts/build-site.py` ausführen
3. Alle HTML-Dateien hochladen
### Neues Bild?
1. WebP erstellen und in `assets/img/` ablegen
2. HTML referenzieren (oder Build-Skript anpassen)
3. Hochladen
---
## Troubleshooting
| Problem | Lösung |
|---------|--------|
| Altes CSS nach Update | `version.txt` erhöhen + Build ausführen |
| 404 zeigt Server-Default | `.htaccess` prüfen, `mod_rewrite` aktiv? |
| Bilder laden nicht | WebP-Dateien hochgeladen? `mod_mime` für `.webp`? |
| Redirect-Loop | HTTPS-Zertifikat und `RewriteBase /` prüfen |
| Header fehlt auf Unterseite | `build-site.py` erneut ausführen |

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View file

@ -0,0 +1,11 @@
<footer class="footer">
<div class="container">
<div class="footer-inner">
<p class="footer-copy">© 2026 ADAMETZ.MEDIA Kevin Adametz</p>
<div class="footer-links">
<a href="impressum.html">Impressum</a>
<a href="datenschutz.html">Datenschutz</a>
</div>
</div>
</div>
</footer>

View file

@ -0,0 +1,56 @@
<meta property="og:locale" content="de_DE" />
<meta property="og:site_name" content="ADAMETZ.MEDIA" />
<meta property="og:image" content="https://adametz.media/assets/img/og-share.webp" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Kevin Adametz — Markensysteme, die funktionieren" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://adametz.media/assets/img/og-share.webp" />
<meta name="theme-color" content="#0a0a0a" />
<link rel="preload" href="assets/fonts/outfit-regular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="preload" href="assets/fonts/source-sans-3-regular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="apple-touch-icon" sizes="180x180" href="assets/fav/apple-icon-180x180.png" />
<link rel="icon" type="image/png" sizes="32x32" href="assets/fav/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="assets/fav/favicon-16x16.png" />
<link rel="shortcut icon" href="assets/fav/favicon.ico" />
<link rel="manifest" href="manifest.json" />
<link rel="stylesheet" href="assets/styles.css?v={{VERSION}}" />
<script src="assets/js/app.js?v={{VERSION}}" defer></script>
<script defer src="https://sys.adametz.media/config.js" data-website-id="69ec86fc-7f06-4cc5-9e2c-fd9daaae7faa"></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "ADAMETZ.MEDIA",
"url": "https://adametz.media/",
"description": "Markensysteme für Unternehmen, die sich klar erklären wollen von der Strategie bis zur Umsetzung.",
"inLanguage": "de-DE"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Kevin Adametz",
"jobTitle": "Markenarchitekt",
"url": "https://adametz.media/",
"email": "info@adametz.media",
"telephone": "+49-5206-7076721",
"address": {
"@type": "PostalAddress",
"streetAddress": "In der Lake 4",
"addressLocality": "Bielefeld",
"postalCode": "33739",
"addressCountry": "DE"
},
"worksFor": {
"@type": "Organization",
"name": "ADAMETZ.MEDIA"
}
}
</script>

View file

@ -0,0 +1,47 @@
<a class="skip-link" href="#start">Zum Inhalt springen</a>
<nav class="nav" id="nav" aria-label="Hauptnavigation">
<div class="container">
<div class="nav-inner">
<a href="#start" class="nav-logo">
<img
src="assets/img/logo.png"
alt="Adametz.Media Logo"
class="nav-logo-img"
width="252"
height="160"
decoding="async"
/>
Adametz.Media
</a>
<ul class="nav-links">
<li><a href="#start">Start</a></li>
<li><a href="#haltung">Haltung</a></li>
<li><a href="#umsetzung">Umsetzung</a></li>
<li><a href="#projekte">Evidenz</a></li>
<li><a href="#kontakt">Kontakt</a></li>
</ul>
<button
class="nav-toggle"
id="navToggle"
aria-label="Menü öffnen"
aria-controls="navMobile"
aria-expanded="false"
>
<span></span>
<span></span>
<span></span>
</button>
</div>
</div>
</nav>
<div class="nav-mobile" id="navMobile">
<a href="#start">Start</a>
<a href="#haltung">Haltung</a>
<a href="#umsetzung">Umsetzung</a>
<a href="#projekte">Evidenz</a>
<a href="#kontakt">Kontakt</a>
</div>

View file

@ -0,0 +1,47 @@
<a class="skip-link" href="#main">Zum Inhalt springen</a>
<nav class="nav" id="nav" aria-label="Hauptnavigation">
<div class="container">
<div class="nav-inner">
<a href="index.html" class="nav-logo">
<img
src="assets/img/logo.png"
alt="Adametz.Media Logo"
class="nav-logo-img"
width="252"
height="160"
decoding="async"
/>
Adametz.Media
</a>
<ul class="nav-links">
<li><a href="index.html#start">Start</a></li>
<li><a href="index.html#haltung">Haltung</a></li>
<li><a href="index.html#umsetzung">Umsetzung</a></li>
<li><a href="index.html#projekte">Evidenz</a></li>
<li><a href="index.html#kontakt">Kontakt</a></li>
</ul>
<button
class="nav-toggle"
id="navToggle"
aria-label="Menü öffnen"
aria-controls="navMobile"
aria-expanded="false"
>
<span></span>
<span></span>
<span></span>
</button>
</div>
</div>
</nav>
<div class="nav-mobile" id="navMobile">
<a href="index.html#start">Start</a>
<a href="index.html#haltung">Haltung</a>
<a href="index.html#umsetzung">Umsetzung</a>
<a href="index.html#projekte">Evidenz</a>
<a href="index.html#kontakt">Kontakt</a>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -0,0 +1,41 @@
# Font-Dateien
Dieser Ordner sollte die folgenden Font-Dateien enthalten:
## Outfit Font (4 Varianten)
- `outfit-regular.woff2` (Font-Weight: 400)
- `outfit-regular.woff` (Font-Weight: 400)
- `outfit-medium.woff2` (Font-Weight: 500)
- `outfit-medium.woff` (Font-Weight: 500)
- `outfit-semibold.woff2` (Font-Weight: 600)
- `outfit-semibold.woff` (Font-Weight: 600)
- `outfit-bold.woff2` (Font-Weight: 700)
- `outfit-bold.woff` (Font-Weight: 700)
## Source Sans 3 Font (3 Varianten)
- `source-sans-3-regular.woff2` (Font-Weight: 400)
- `source-sans-3-regular.woff` (Font-Weight: 400)
- `source-sans-3-medium.woff2` (Font-Weight: 500)
- `source-sans-3-medium.woff` (Font-Weight: 500)
- `source-sans-3-semibold.woff2` (Font-Weight: 600)
- `source-sans-3-semibold.woff` (Font-Weight: 600)
## Fonts herunterladen
Die Fonts können von folgenden Quellen heruntergeladen werden:
1. **Google Fonts** (https://fonts.google.com/):
- Outfit: https://fonts.google.com/specimen/Outfit
- Source Sans 3: https://fonts.google.com/specimen/Source+Sans+3
2. **Alternative Tools zum Herunterladen**:
- Google Webfonts Helper: https://gwfh.mranftl.com/fonts
- Fontsquirrel: https://www.fontsquirrel.com/
3. **Direkter Download** (mit Tools wie `google-webfonts-helper` oder Browser-Erweiterungen)
Die Fonts müssen im WOFF2- und WOFF-Format vorliegen für optimale Browser-Kompatibilität.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 349 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 900 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

View file

@ -0,0 +1,72 @@
(function () {
'use strict';
var nav = document.getElementById('nav');
var navToggle = document.getElementById('navToggle');
var navMobile = document.getElementById('navMobile');
/* Navigation scroll effect */
if (nav) {
var scrolled = false;
window.addEventListener(
'scroll',
function () {
var shouldScroll = window.scrollY > 100;
if (shouldScroll === scrolled) return;
scrolled = shouldScroll;
nav.classList.toggle('scrolled', scrolled);
},
{ passive: true }
);
}
/* Mobile menu */
if (navToggle && navMobile) {
navToggle.addEventListener('click', function () {
var isOpen = navMobile.classList.toggle('active');
navToggle.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
});
navMobile.querySelectorAll('a').forEach(function (link) {
link.addEventListener('click', function () {
navMobile.classList.remove('active');
navToggle.setAttribute('aria-expanded', 'false');
});
});
}
/* Scroll reveal via IntersectionObserver */
var reveals = document.querySelectorAll('.reveal');
if (reveals.length && 'IntersectionObserver' in window) {
var observer = new IntersectionObserver(
function (entries) {
entries.forEach(function (entry) {
if (entry.isIntersecting) {
entry.target.classList.add('active');
observer.unobserve(entry.target);
}
});
},
{ rootMargin: '0px 0px -80px 0px', threshold: 0.05 }
);
reveals.forEach(function (el) {
observer.observe(el);
});
} else {
reveals.forEach(function (el) {
el.classList.add('active');
});
}
/* Smooth scroll for anchor links */
document.querySelectorAll('a[href^="#"]').forEach(function (anchor) {
anchor.addEventListener('click', function (e) {
var href = this.getAttribute('href');
if (!href || href === '#') return;
var target = document.querySelector(href);
if (!target) return;
e.preventDefault();
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
});
});
})();

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1 @@
20250610

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/assets/fav/ms-icon-70x70.png"/><square150x150logo src="/assets/fav/ms-icon-150x150.png"/><square310x310logo src="/assets/fav/ms-icon-310x310.png"/><TileColor>#0a0a0a</TileColor></tile></msapplication></browserconfig>

View file

@ -0,0 +1,500 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Datenschutzerklärung Kevin Adametz</title>
<meta
name="description"
content="Datenschutzerklärung von ADAMETZ.MEDIA mit Informationen zu Hosting, Server-Logs, Kontakt und Analyse."
/>
<meta name="author" content="Kevin Adametz" />
<meta name="robots" content="index, follow" />
<meta property="og:title" content="Datenschutzerklärung Kevin Adametz" />
<meta
property="og:description"
content="Datenschutzerklärung von ADAMETZ.MEDIA mit Informationen zu Hosting, Server-Logs, Kontakt und Analyse."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://adametz.media/datenschutz.html" />
<link rel="canonical" href="https://adametz.media/datenschutz.html" />
<meta name="twitter:title" content="Datenschutzerklärung Kevin Adametz" />
<meta
name="twitter:description"
content="Datenschutzerklärung von ADAMETZ.MEDIA mit Informationen zu Hosting, Server-Logs, Kontakt und Analyse."
/>
<meta property="og:locale" content="de_DE" />
<meta property="og:site_name" content="ADAMETZ.MEDIA" />
<meta property="og:image" content="https://adametz.media/assets/img/og-share.webp" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Kevin Adametz — Markensysteme, die funktionieren" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://adametz.media/assets/img/og-share.webp" />
<meta name="theme-color" content="#0a0a0a" />
<link rel="preload" href="assets/fonts/outfit-regular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="preload" href="assets/fonts/source-sans-3-regular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="apple-touch-icon" sizes="180x180" href="assets/fav/apple-icon-180x180.png" />
<link rel="icon" type="image/png" sizes="32x32" href="assets/fav/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="assets/fav/favicon-16x16.png" />
<link rel="shortcut icon" href="assets/fav/favicon.ico" />
<link rel="manifest" href="manifest.json" />
<link rel="stylesheet" href="assets/styles.css?v=20250610" />
<script src="assets/js/app.js?v=20250610" defer></script>
<script defer src="https://sys.adametz.media/config.js" data-website-id="69ec86fc-7f06-4cc5-9e2c-fd9daaae7faa"></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "ADAMETZ.MEDIA",
"url": "https://adametz.media/",
"description": "Markensysteme für Unternehmen, die sich klar erklären wollen von der Strategie bis zur Umsetzung.",
"inLanguage": "de-DE"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Kevin Adametz",
"jobTitle": "Markenarchitekt",
"url": "https://adametz.media/",
"email": "info@adametz.media",
"telephone": "+49-5206-7076721",
"address": {
"@type": "PostalAddress",
"streetAddress": "In der Lake 4",
"addressLocality": "Bielefeld",
"postalCode": "33739",
"addressCountry": "DE"
},
"worksFor": {
"@type": "Organization",
"name": "ADAMETZ.MEDIA"
}
}
</script>
</head>
<body>
<a class="skip-link" href="#main">Zum Inhalt springen</a>
<nav class="nav" id="nav" aria-label="Hauptnavigation">
<div class="container">
<div class="nav-inner">
<a href="index.html" class="nav-logo">
<img
src="assets/img/logo.png"
alt="Adametz.Media Logo"
class="nav-logo-img"
width="252"
height="160"
decoding="async"
/>
Adametz.Media
</a>
<ul class="nav-links">
<li><a href="index.html#start">Start</a></li>
<li><a href="index.html#haltung">Haltung</a></li>
<li><a href="index.html#umsetzung">Umsetzung</a></li>
<li><a href="index.html#projekte">Evidenz</a></li>
<li><a href="index.html#kontakt">Kontakt</a></li>
</ul>
<button
class="nav-toggle"
id="navToggle"
aria-label="Menü öffnen"
aria-controls="navMobile"
aria-expanded="false"
>
<span></span>
<span></span>
<span></span>
</button>
</div>
</div>
</nav>
<div class="nav-mobile" id="navMobile">
<a href="index.html#start">Start</a>
<a href="index.html#haltung">Haltung</a>
<a href="index.html#umsetzung">Umsetzung</a>
<a href="index.html#projekte">Evidenz</a>
<a href="index.html#kontakt">Kontakt</a>
</div>
<section class="content-section" id="main">
<div class="container">
<div class="content-wrapper">
<h1>Datenschutzerklärung</h1>
<p>
Informationen dazu, welche personenbezogenen Daten beim Besuch dieser Website
verarbeitet werden.
</p>
<h3>1. Datenschutz auf einen Blick</h3>
<h4>Allgemeine Hinweise</h4>
<p>
Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren
personenbezogenen Daten passiert, wenn Sie unsere Website besuchen. Personenbezogene
Daten sind alle Daten, mit denen Sie persönlich identifiziert werden können.
Ausführliche Informationen zum Thema Datenschutz entnehmen Sie unserer unter diesem
Text aufgeführten Datenschutzerklärung.
</p>
<h4>Datenerfassung auf unserer Website</h4>
<p><strong>Wer ist verantwortlich für die Datenerfassung auf dieser Website?</strong></p>
<p>
Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen
Kontaktdaten können Sie dem Impressum dieser Website entnehmen.
</p>
<p><strong>Wie erfassen wir Ihre Daten?</strong></p>
<p>
Ihre Daten werden zum einen dadurch erhoben, dass Sie uns diese mitteilen — z.&nbsp;B.
per E-Mail oder Telefon. Diese Website verwendet kein Kontaktformular.
</p>
<p>
Andere Daten werden automatisch beim Besuch der Website durch unsere IT-Systeme erfasst.
Das sind vor allem technische Daten (z.&nbsp;B. Internetbrowser, Betriebssystem oder
Uhrzeit des Seitenaufrufs). Die Erfassung dieser Daten erfolgt automatisch, sobald Sie
unsere Website betreten.
</p>
<p><strong>Wofür nutzen wir Ihre Daten?</strong></p>
<p>
Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der Website zu
gewährleisten. Andere Daten werden zur anonymisierten Analyse Ihres Nutzerverhaltens
verwendet.
</p>
<p><strong>Welche Rechte haben Sie bezüglich Ihrer Daten?</strong></p>
<p>
Sie haben jederzeit das Recht unentgeltlich Auskunft über Herkunft, Empfänger und Zweck
Ihrer gespeicherten personenbezogenen Daten zu erhalten. Sie haben außerdem ein Recht,
die Berichtigung, Sperrung oder Löschung dieser Daten zu verlangen. Hierzu sowie zu
weiteren Fragen zum Thema Datenschutz können Sie sich jederzeit unter der im Impressum
angegebenen Adresse an uns wenden. Des Weiteren steht Ihnen ein Beschwerderecht bei der
zuständigen Aufsichtsbehörde zu.
</p>
<p>
Außerdem haben Sie das Recht, unter bestimmten Umständen die Einschränkung der
Verarbeitung Ihrer personenbezogenen Daten zu verlangen. Details hierzu entnehmen Sie
der Datenschutzerklärung unter „Recht auf Einschränkung der Verarbeitung".
</p>
<h3>2. Hosting</h3>
<h4>Externes Hosting</h4>
<p>
Diese Website wird bei einem externen Dienstleister gehostet (Hoster). Die
personenbezogenen Daten, die auf dieser Website erfasst werden, werden auf den Servern
des Hosters gespeichert. Hierbei kann es sich v.&nbsp;a. um IP-Adressen, Kontaktanfragen,
Meta- und Kommunikationsdaten, Vertragsdaten, Kontaktdaten, Namen, Websitezugriffe und
sonstige Daten, die über eine Website generiert werden, handeln.
</p>
<p>
Der Einsatz des Hosters erfolgt zum Zwecke der Vertragserfüllung gegenüber unseren
potenziellen und bestehenden Kunden (Art. 6 Abs. 1 lit. b DSGVO) und im Interesse einer
sicheren, schnellen und effizienten Bereitstellung unseres Online-Angebots durch einen
professionellen Anbieter (Art. 6 Abs. 1 lit. f DSGVO). Unser Hoster wird Ihre Daten nur
insoweit verarbeiten, wie dies zur Erfüllung seiner Leistungspflichten erforderlich ist
und unsere Weisungen in Bezug auf diese Daten befolgen.
</p>
<p>
Wir setzen folgenden Hoster ein:<br />
ALL-INKL.COM - Neue Medien Münnich<br />
Inhaber: René Münnich<br />
Hauptstraße 68<br />
02742 Friedersdorf
</p>
<h4>Abschluss eines Vertrages über Auftragsverarbeitung (AVV)</h4>
<p>
Wir haben einen Vertrag über Auftragsverarbeitung (AVV) mit dem oben genannten Anbieter
geschlossen. Hierbei handelt es sich um einen datenschutzrechtlich vorgeschriebenen
Vertrag, der gewährleistet, dass dieser die personenbezogenen Daten unserer
Websitebesucher nur nach unseren Weisungen und unter Einhaltung der DSGVO verarbeitet.
</p>
<hr />
<h3>3. Allgemeine Hinweise und Pflichtinformationen</h3>
<h4>Datenschutz</h4>
<p>
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen
Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten
vertraulich und entsprechend der gesetzlichen
Datenschutzvorschriften sowie dieser Datenschutzerklärung.
</p>
<p>
Wenn Sie diese Website benutzen, werden verschiedene
personenbezogene Daten erhoben. Personenbezogene Daten sind Daten,
mit denen Sie persönlich identifiziert werden können. Die
vorliegende Datenschutzerklärung erläutert, welche Daten wir erheben
und wofür wir sie nutzen. Sie erläutert auch, wie und zu welchem
Zweck das geschieht.
</p>
<p>
Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B.
bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann.
Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist
nicht möglich.
</p>
<h4>Hinweis zur verantwortlichen Stelle</h4>
<p>
Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website ist:<br />
<br />
ADAMETZ.MEDIA<br />
Kevin Adametz<br />
In der Lake 4<br />
33739 Bielefeld<br />
<br />
Tel: +49 5206 7076721<br />
E-Mail: <a href="mailto:info@adametz.media">info@adametz.media</a>
</p>
<p>
Verantwortliche Stelle ist die natürliche oder juristische Person,
die allein oder gemeinsam mit anderen über die Zwecke und Mittel der
Verarbeitung von personenbezogenen Daten (z.B. Namen,
E-Mail-Adressen o. Ä.) entscheidet.
</p>
<h4>Widerruf Ihrer Einwilligung zur Datenverarbeitung</h4>
<p>
Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen
Einwilligung möglich. Sie können eine bereits erteilte Einwilligung
jederzeit widerrufen. Dazu reicht eine formlose Mitteilung per
E-Mail an uns. Die Rechtmäßigkeit der bis zum Widerruf erfolgten
Datenverarbeitung bleibt vom Widerruf unberührt.
</p>
<h4>
Widerspruchsrecht gegen die Datenerhebung in besonderen Fällen sowie
gegen Direktwerbung (Art. 21 DSGVO)
</h4>
<p>
Wenn die Datenverarbeitung auf Grundlage von Art. 6 Abs. 1 lit. e
oder f DSGVO erfolgt, haben Sie jederzeit das Recht, aus Gründen,
die sich aus Ihrer besonderen Situation ergeben, gegen die
Verarbeitung Ihrer personenbezogenen Daten Widerspruch einzulegen;
dies gilt auch für ein auf diese Bestimmungen gestütztes Profiling.
Die jeweilige Rechtsgrundlage, auf denen eine Verarbeitung beruht,
entnehmen Sie dieser Datenschutzerklärung. Wenn Sie Widerspruch
einlegen, werden wir Ihre betroffenen personenbezogenen Daten nicht
mehr verarbeiten, es sei denn, wir können zwingende schutzwürdige
Gründe für die Verarbeitung nachweisen, die Ihre Interessen, Rechte
und Freiheiten überwiegen oder die Verarbeitung dient der
Geltendmachung, Ausübung oder Verteidigung von Rechtsansprüchen
(Widerspruch nach Art. 21 Abs. 1 DSGVO).
</p>
<p>
Werden Ihre personenbezogenen Daten verarbeitet, um Direktwerbung zu
betreiben, so haben Sie das Recht, jederzeit Widerspruch gegen die
Verarbeitung Sie betreffender personenbezogener Daten zum Zwecke
derartiger Werbung einzulegen; dies gilt auch für das Profiling,
soweit es mit solcher Direktwerbung in Verbindung steht. Wenn Sie
widersprechen, werden Ihre personenbezogenen Daten anschließend
nicht mehr zum Zwecke der Direktwerbung verwendet (Widerspruch nach
Art. 21 Abs. 2 DSGVO).
</p>
<h4>Beschwerderecht bei der zuständigen Aufsichtsbehörde</h4>
<p>
Im Falle von Verstößen gegen die DSGVO steht den Betroffenen ein
Beschwerderecht bei einer Aufsichtsbehörde, insbesondere in dem
Mitgliedstaat ihres gewöhnlichen Aufenthalts, ihres Arbeitsplatzes
oder des Orts des mutmaßlichen Verstoßes zu. Das Beschwerderecht
besteht unbeschadet anderweitiger verwaltungsrechtlicher oder
gerichtlicher Rechtsbehelfe.
</p>
<h4>Recht auf Datenübertragbarkeit</h4>
<p>
Sie haben das Recht, Daten, die wir auf Grundlage Ihrer Einwilligung
oder in Erfüllung eines Vertrags automatisiert verarbeiten, an sich
oder an einen Dritten in einem gängigen, maschinenlesbaren Format
aushändigen zu lassen. Sofern Sie die direkte Übertragung der Daten
an einen anderen Verantwortlichen verlangen, erfolgt dies nur,
soweit es technisch machbar ist.
</p>
<h4>SSL- bzw. TLS-Verschlüsselung</h4>
<p>
Diese Seite nutzt aus Sicherheitsgründen und zum Schutz der
Übertragung vertraulicher Inhalte, wie zum Beispiel Bestellungen
oder Anfragen, die Sie an uns als Seitenbetreiber senden, eine
SSL-bzw. TLS-Verschlüsselung. Eine verschlüsselte Verbindung
erkennen Sie daran, dass die Adresszeile des Browsers von "http://"
auf "https://" wechselt und an dem Schloss-Symbol in Ihrer
Browserzeile.
</p>
<p>
Wenn die SSL- bzw. TLS-Verschlüsselung aktiviert ist, können die
Daten, die Sie an uns übermitteln, nicht von Dritten mitgelesen
werden.
</p>
<h4>Auskunft, Sperrung, Löschung und Berichtigung</h4>
<p>
Sie haben im Rahmen der geltenden gesetzlichen Bestimmungen
jederzeit das Recht auf unentgeltliche Auskunft über Ihre
gespeicherten personenbezogenen Daten, deren Herkunft und Empfänger
und den Zweck der Datenverarbeitung und ggf. ein Recht auf
Berichtigung, Sperrung oder Löschung dieser Daten. Hierzu sowie zu
weiteren Fragen zum Thema personenbezogene Daten können Sie sich
jederzeit unter der im Impressum angegebenen Adresse an uns wenden.
</p>
<h4>Recht auf Einschränkung der Verarbeitung</h4>
<p>
Sie haben das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten
zu verlangen. Das Recht auf Einschränkung der Verarbeitung besteht in folgenden Fällen:
</p>
<p>
Wenn Sie die Richtigkeit Ihrer bei uns gespeicherten personenbezogenen Daten bestreiten,
benötigen wir in der Regel Zeit, um dies zu überprüfen. Für die Dauer der Prüfung haben
Sie das Recht, die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu
verlangen.
</p>
<p>
Wenn die Verarbeitung Ihrer personenbezogenen Daten unrechtmäßig geschah / geschieht,
können Sie statt der Löschung die Einschränkung der Datenverarbeitung verlangen.
</p>
<p>
Wenn wir Ihre personenbezogenen Daten nicht mehr benötigen, Sie sie jedoch zur Ausübung,
Verteidigung oder Geltendmachung von Rechtsansprüchen benötigen, haben Sie das Recht,
statt der Löschung die Einschränkung der Verarbeitung Ihrer personenbezogenen Daten zu
verlangen.
</p>
<p>
Wenn Sie einen Widerspruch nach Art. 21 Abs. 1 DSGVO eingelegt haben, muss eine Abwägung
zwischen Ihren und unseren Interessen vorgenommen werden. Solange noch nicht feststeht,
wessen Interessen überwiegen, haben Sie das Recht, die Einschränkung der Verarbeitung
Ihrer personenbezogenen Daten zu verlangen.
</p>
<p>
Wenn Sie die Verarbeitung Ihrer personenbezogenen Daten
eingeschränkt haben, dürfen diese Daten von ihrer Speicherung
abgesehen nur mit Ihrer Einwilligung oder zur Geltendmachung,
Ausübung oder Verteidigung von Rechtsansprüchen oder zum Schutz der
Rechte einer anderen natürlichen oder juristischen Person oder aus
Gründen eines wichtigen öffentlichen Interesses der Europäischen
Union oder eines Mitgliedstaats verarbeitet werden.
</p>
<h4>Widerspruch gegen Werbe-E-Mails</h4>
<p>
Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten
Kontaktdaten zur Übersendung von nicht ausdrücklich angeforderter
Werbung und Informationsmaterialien wird hiermit widersprochen. Die
Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte
im Falle der unverlangten Zusendung von Werbeinformationen, etwa
durch Spam-E-Mails, vor.
</p>
<hr />
<h3>4. Datenerfassung auf unserer Website</h3>
<h4>Cookies</h4>
<p>Diese Webseite verwendet keine Cookies.</p>
<h4>Server-Log-Dateien</h4>
<p>
Der Provider der Seiten erhebt und speichert automatisch Informationen in so genannten
Server-Log-Dateien, die Ihr Browser automatisch an uns übermittelt. Dies sind:
</p>
<p>
Browsertyp und Browserversion<br />
verwendetes Betriebssystem<br />
Referrer URL<br />
Hostname des zugreifenden Rechners<br />
Uhrzeit der Serveranfrage<br />
IP-Adresse
</p>
<p>
Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen. Die
Erfassung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO. Der
Websitebetreiber hat ein berechtigtes Interesse an der technisch fehlerfreien
Darstellung und der Optimierung seiner Website hierzu müssen die Server-Log-Files
erfasst werden.
</p>
<h4>E-Mail-Kontakt</h4>
<p>
Wenn Sie uns per E-Mail Anfragen zukommen lassen, werden Ihre Angaben (z.&nbsp;B.
E-Mail-Adresse und der Text Ihrer Anfrage) zwecks Bearbeitung der Anfrage und für den
Fall von Anschlussfragen bei uns gespeichert. Diese Daten geben wir nicht ohne Ihre
Einwilligung weiter.
</p>
<p>
Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO,
sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur
Durchführung vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen beruht
die Verarbeitung auf unserem berechtigten Interesse an der effektiven Bearbeitung der
an uns gerichteten Anfragen (Art. 6 Abs. 1 lit. f DSGVO) oder auf Ihrer Einwilligung
(Art. 6 Abs. 1 lit. a DSGVO), sofern diese abgefragt wurde.
</p>
<p>
Die von Ihnen an uns übersendeten Daten verbleiben bei uns, bis Sie uns zur Löschung
auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die
Datenspeicherung entfällt (z.&nbsp;B. nach abgeschlossener Bearbeitung Ihrer Anfrage).
Zwingende gesetzliche Bestimmungen insbesondere Aufbewahrungsfristen bleiben
unberührt.
</p>
<h4>Verarbeiten von Daten (Kunden- und Vertragsdaten)</h4>
<p>
Wir erheben, verarbeiten und nutzen personenbezogene Daten nur, soweit sie für die
Begründung, inhaltliche Ausgestaltung oder Änderung des Rechtsverhältnisses erforderlich
sind (Bestandsdaten). Dies erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, der die
Verarbeitung von Daten zur Erfüllung eines Vertrags oder vorvertraglicher Maßnahmen
gestattet. Personenbezogene Daten über die Inanspruchnahme unserer Internetseiten
(Nutzungsdaten) erheben, verarbeiten und nutzen wir nur, soweit dies erforderlich ist,
um dem Nutzer die Inanspruchnahme des Dienstes zu ermöglichen oder abzurechnen.
</p>
<p>
Die erhobenen Kundendaten werden nach Abschluss des Auftrags oder Beendigung der
Geschäftsbeziehung gelöscht. Gesetzliche Aufbewahrungsfristen bleiben unberührt.
</p>
<h3>5. Analyse-Tools</h3>
<h4>Umami Analytics (selbst gehostet)</h4>
<p>
Diese Website nutzt das Open-Source-Webanalyse-Tool Umami für interne Auswertungen. Um
höchste Datenschutzstandards zu gewährleisten, wird Umami vollständig auf einem eigenen
Server gehostet. Dadurch bleiben alle erfassten Daten in unserer alleinigen Kontrolle
und werden nicht an Dritte weitergegeben.
</p>
<p>Umami wurde datenschutzfreundlich konzipiert:</p>
<p>
Es werden keine Cookies in Ihrem Browser gespeichert.<br />
Es findet kein website- oder geräteübergreifendes Tracking (Cross-Site Tracking) statt.<br />
Alle IP-Adressen werden unmittelbar bei der Erfassung vollständig anonymisiert, sodass
ein Rückschluss auf Ihre Person oder Ihr genaues Gerät ausgeschlossen ist.
</p>
<p>
Es werden lediglich grundlegende, anonyme Telemetriedaten erfasst (z.&nbsp;B. aufgerufene
Seiten, Browsertyp, Betriebssystem, Herkunftsland und Bildschirmauflösung). Die Nutzung
von Umami erfolgt auf Grundlage unseres berechtigten Interesses gemäß Art. 6 Abs. 1
lit. f DSGVO. Unser berechtigtes Interesse liegt in der anonymisierten Analyse des
Nutzerverhaltens, um unsere Website sowie unser Angebot technisch und inhaltlich
fortlaufend zu optimieren.
</p>
</div>
</div>
</section>
<footer class="footer">
<div class="container">
<div class="footer-inner">
<p class="footer-copy">© 2026 ADAMETZ.MEDIA Kevin Adametz</p>
<div class="footer-links">
<a href="impressum.html">Impressum</a>
<a href="datenschutz.html">Datenschutz</a>
</div>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,244 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Impressum Kevin Adametz</title>
<meta
name="description"
content="Impressum und Anbieterkennzeichnung von ADAMETZ.MEDIA."
/>
<meta name="author" content="Kevin Adametz" />
<meta name="robots" content="index, follow" />
<meta property="og:title" content="Impressum Kevin Adametz" />
<meta
property="og:description"
content="Impressum und Anbieterkennzeichnung von ADAMETZ.MEDIA."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://adametz.media/impressum.html" />
<link rel="canonical" href="https://adametz.media/impressum.html" />
<meta name="twitter:title" content="Impressum Kevin Adametz" />
<meta
name="twitter:description"
content="Impressum und Anbieterkennzeichnung von ADAMETZ.MEDIA."
/>
<meta property="og:locale" content="de_DE" />
<meta property="og:site_name" content="ADAMETZ.MEDIA" />
<meta property="og:image" content="https://adametz.media/assets/img/og-share.webp" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Kevin Adametz — Markensysteme, die funktionieren" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://adametz.media/assets/img/og-share.webp" />
<meta name="theme-color" content="#0a0a0a" />
<link rel="preload" href="assets/fonts/outfit-regular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="preload" href="assets/fonts/source-sans-3-regular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="apple-touch-icon" sizes="180x180" href="assets/fav/apple-icon-180x180.png" />
<link rel="icon" type="image/png" sizes="32x32" href="assets/fav/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="assets/fav/favicon-16x16.png" />
<link rel="shortcut icon" href="assets/fav/favicon.ico" />
<link rel="manifest" href="manifest.json" />
<link rel="stylesheet" href="assets/styles.css?v=20250610" />
<script src="assets/js/app.js?v=20250610" defer></script>
<script defer src="https://sys.adametz.media/config.js" data-website-id="69ec86fc-7f06-4cc5-9e2c-fd9daaae7faa"></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "ADAMETZ.MEDIA",
"url": "https://adametz.media/",
"description": "Markensysteme für Unternehmen, die sich klar erklären wollen von der Strategie bis zur Umsetzung.",
"inLanguage": "de-DE"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Kevin Adametz",
"jobTitle": "Markenarchitekt",
"url": "https://adametz.media/",
"email": "info@adametz.media",
"telephone": "+49-5206-7076721",
"address": {
"@type": "PostalAddress",
"streetAddress": "In der Lake 4",
"addressLocality": "Bielefeld",
"postalCode": "33739",
"addressCountry": "DE"
},
"worksFor": {
"@type": "Organization",
"name": "ADAMETZ.MEDIA"
}
}
</script>
</head>
<body>
<a class="skip-link" href="#main">Zum Inhalt springen</a>
<nav class="nav" id="nav" aria-label="Hauptnavigation">
<div class="container">
<div class="nav-inner">
<a href="index.html" class="nav-logo">
<img
src="assets/img/logo.png"
alt="Adametz.Media Logo"
class="nav-logo-img"
width="252"
height="160"
decoding="async"
/>
Adametz.Media
</a>
<ul class="nav-links">
<li><a href="index.html#start">Start</a></li>
<li><a href="index.html#haltung">Haltung</a></li>
<li><a href="index.html#umsetzung">Umsetzung</a></li>
<li><a href="index.html#projekte">Evidenz</a></li>
<li><a href="index.html#kontakt">Kontakt</a></li>
</ul>
<button
class="nav-toggle"
id="navToggle"
aria-label="Menü öffnen"
aria-controls="navMobile"
aria-expanded="false"
>
<span></span>
<span></span>
<span></span>
</button>
</div>
</div>
</nav>
<div class="nav-mobile" id="navMobile">
<a href="index.html#start">Start</a>
<a href="index.html#haltung">Haltung</a>
<a href="index.html#umsetzung">Umsetzung</a>
<a href="index.html#projekte">Evidenz</a>
<a href="index.html#kontakt">Kontakt</a>
</div>
<section class="content-section" id="main">
<div class="container">
<div class="content-wrapper">
<h1>Impressum</h1>
<p>Angaben gemäß § 5 DDG.</p>
<p>
ADAMETZ.MEDIA<br />
Kevin Adametz<br />
In der Lake 4<br />
33739 Bielefeld
</p>
<h3>Inhaber / Vertreten durch</h3>
<p>Kevin Adametz</p>
<h3>Kontakt</h3>
<p>
Telefon: +49 5206 7076721<br />
E-Mail: <a href="mailto:info@adametz.media">info@adametz.media</a>
</p>
<h3>Umsatzsteuer-ID</h3>
<p>
Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz:<br />
DE298729654
</p>
<h3>Steuernummer</h3>
<p>349/5910/0994</p>
<h3>EU-Streitschlichtung</h3>
<p>
Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
<a href="https://ec.europa.eu/consumers/odr/" rel="noopener noreferrer">https://ec.europa.eu/consumers/odr/</a>.
Unsere E-Mail-Adresse finden Sie oben im Impressum.
</p>
<h3>Verbraucherstreitbeilegung / Universalschlichtungsstelle</h3>
<p>
Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer
Verbraucherschlichtungsstelle teilzunehmen.
</p>
<hr />
<h3>Haftungsausschluss (Disclaimer)</h3>
<h4>Haftung für Inhalte</h4>
<p>
Als Diensteanbieter sind wir gemäß § 7 Abs. 1 DDG für eigene Inhalte auf diesen Seiten
nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 DDG sind wir als
Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde
Informationen zu überwachen oder nach Umständen zu forschen, die auf eine rechtswidrige
Tätigkeit hinweisen.
</p>
<p>
Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den
allgemeinen Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch
erst ab dem Zeitpunkt der Kenntnis einer konkreten Rechtsverletzung möglich. Bei
Bekanntwerden von entsprechenden Rechtsverletzungen werden wir diese Inhalte umgehend
entfernen.
</p>
<h4>Haftung für Links</h4>
<p>
Unser Angebot enthält Links zu externen Websites Dritter, auf deren Inhalte wir keinen
Einfluss haben. Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen.
Für die Inhalte der verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der
Seiten verantwortlich. Die verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf
mögliche Rechtsverstöße überprüft. Rechtswidrige Inhalte waren zum Zeitpunkt der
Verlinkung nicht erkennbar.
</p>
<p>
Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete
Anhaltspunkte einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von
Rechtsverletzungen werden wir derartige Links umgehend entfernen.
</p>
<h3>Urheberrecht</h3>
<p>
Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen
dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art
der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen
Zustimmung des jeweiligen Autors bzw. Erstellers. Downloads und Kopien dieser Seite sind
nur für den privaten, nicht kommerziellen Gebrauch gestattet.
</p>
<p>
Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die
Urheberrechte Dritter beachtet. Insbesondere werden Inhalte Dritter als solche
gekennzeichnet. Sollten Sie trotzdem auf eine Urheberrechtsverletzung aufmerksam werden,
bitten wir um einen entsprechenden Hinweis. Bei Bekanntwerden von Rechtsverletzungen
werden wir derartige Inhalte umgehend entfernen.
</p>
</div>
</div>
</section>
<footer class="footer">
<div class="container">
<div class="footer-inner">
<p class="footer-copy">© 2026 ADAMETZ.MEDIA Kevin Adametz</p>
<div class="footer-links">
<a href="impressum.html">Impressum</a>
<a href="datenschutz.html">Datenschutz</a>
</div>
</div>
</div>
</footer>
</body>
</html>

747
_adametz.media/index.html Normal file
View file

@ -0,0 +1,747 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>
Kevin Adametz Ich entwickle Markensysteme, die funktionieren
</title>
<meta
name="description"
content="Ich entwickle Markensysteme für Unternehmen, die sich klar erklären wollen von der Strategie bis zur Umsetzung."
/>
<meta name="author" content="Kevin Adametz" />
<meta name="robots" content="index, follow" />
<meta
property="og:title"
content="Kevin Adametz Markensysteme, die funktionieren"
/>
<meta
property="og:description"
content="Ich entwickle Markensysteme für Unternehmen, die sich klar erklären wollen."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://adametz.media/" />
<link rel="canonical" href="https://adametz.media/" />
<meta
name="twitter:title"
content="Kevin Adametz Markensysteme, die funktionieren"
/>
<meta
name="twitter:description"
content="Ich entwickle Markensysteme für Unternehmen, die sich klar erklären wollen."
/>
<meta property="og:locale" content="de_DE" />
<meta property="og:site_name" content="ADAMETZ.MEDIA" />
<meta property="og:image" content="https://adametz.media/assets/img/og-share.webp" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Kevin Adametz — Markensysteme, die funktionieren" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://adametz.media/assets/img/og-share.webp" />
<meta name="theme-color" content="#0a0a0a" />
<link rel="preload" href="assets/fonts/outfit-regular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="preload" href="assets/fonts/source-sans-3-regular.woff2" as="font" type="font/woff2" crossorigin />
<link rel="apple-touch-icon" sizes="180x180" href="assets/fav/apple-icon-180x180.png" />
<link rel="icon" type="image/png" sizes="32x32" href="assets/fav/favicon-32x32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="assets/fav/favicon-16x16.png" />
<link rel="shortcut icon" href="assets/fav/favicon.ico" />
<link rel="manifest" href="manifest.json" />
<link rel="preload" as="image" href="assets/img/hero-bg2-960.webp" type="image/webp" fetchpriority="high" imagesrcset="assets/img/hero-bg2-640.webp 640w, assets/img/hero-bg2-960.webp 960w, assets/img/hero-bg2.webp 1920w" imagesizes="100vw" />
<link rel="stylesheet" href="assets/styles.css?v=20250610" />
<script src="assets/js/app.js?v=20250610" defer></script>
<script defer src="https://sys.adametz.media/config.js" data-website-id="69ec86fc-7f06-4cc5-9e2c-fd9daaae7faa"></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "ADAMETZ.MEDIA",
"url": "https://adametz.media/",
"description": "Markensysteme für Unternehmen, die sich klar erklären wollen von der Strategie bis zur Umsetzung.",
"inLanguage": "de-DE"
}
</script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Kevin Adametz",
"jobTitle": "Markenarchitekt",
"url": "https://adametz.media/",
"email": "info@adametz.media",
"telephone": "+49-5206-7076721",
"address": {
"@type": "PostalAddress",
"streetAddress": "In der Lake 4",
"addressLocality": "Bielefeld",
"postalCode": "33739",
"addressCountry": "DE"
},
"worksFor": {
"@type": "Organization",
"name": "ADAMETZ.MEDIA"
}
}
</script>
</head>
<body>
<a class="skip-link" href="#start">Zum Inhalt springen</a>
<nav class="nav" id="nav" aria-label="Hauptnavigation">
<div class="container">
<div class="nav-inner">
<a href="#start" class="nav-logo">
<img
src="assets/img/logo.png"
alt="Adametz.Media Logo"
class="nav-logo-img"
width="252"
height="160"
decoding="async"
/>
Adametz.Media
</a>
<ul class="nav-links">
<li><a href="#start">Start</a></li>
<li><a href="#haltung">Haltung</a></li>
<li><a href="#umsetzung">Umsetzung</a></li>
<li><a href="#projekte">Evidenz</a></li>
<li><a href="#kontakt">Kontakt</a></li>
</ul>
<button
class="nav-toggle"
id="navToggle"
aria-label="Menü öffnen"
aria-controls="navMobile"
aria-expanded="false"
>
<span></span>
<span></span>
<span></span>
</button>
</div>
</div>
</nav>
<div class="nav-mobile" id="navMobile">
<a href="#start">Start</a>
<a href="#haltung">Haltung</a>
<a href="#umsetzung">Umsetzung</a>
<a href="#projekte">Evidenz</a>
<a href="#kontakt">Kontakt</a>
</div>
<section class="hero" id="start">
<div class="hero-background">
<img
src="assets/img/hero-bg2.webp"
srcset="assets/img/hero-bg2-640.webp 640w, assets/img/hero-bg2-960.webp 960w, assets/img/hero-bg2.webp 1920w"
sizes="100vw"
alt="Abstrakte architektonische Struktur"
width="1920"
height="1080"
loading="eager"
fetchpriority="high"
decoding="async"
/>
<div class="hero-shape hero-shape-1"></div>
<div class="hero-shape hero-shape-2"></div>
<div class="hero-shape hero-shape-3"></div>
</div>
<div class="container">
<div class="hero-content">
<h1>Ich entwickle Markensysteme, die funktionieren.</h1>
<div class="hero-text">
<p>
Seit über 20 Jahren arbeite ich mit Unternehmen an der Frage, wie
sie sich erklären konsistent, strukturiert, unabhängig von
einzelnen Köpfen.
</p>
<p>
Das beginnt mit Klarheit. Und es endet mit Umsetzung: Websites,
Tools, Kommunikationsmittel, die das System im Alltag tragen.
</p>
<p>Die Methode dahinter heißt „MARKE MACHT"</p>
</div>
<div class="hero-cta">
<a href="#haltung" class="btn btn--next">
Haltung
<span class="btn-arrow-down" aria-hidden="true"></span>
</a>
<a
href="https://markemacht.de"
class="btn btn--mm"
target="_blank"
rel="noopener"
>
MARKE MACHT
<span class="btn-arrow" aria-hidden="true"></span>
</a>
</div>
</div>
<div class="hero-meta">
<img
src="assets/img/am.webp"
alt="Kevin Adametz"
class="hero-portrait"
width="200"
height="200"
loading="lazy"
decoding="async"
/>
<div class="hero-meta-text">
<p><strong>Kevin Adametz</strong></p>
<p>Markenarchitekt · Gründer von „MARKE MACHT"</p>
<p>Bielefeld</p>
</div>
</div>
</div>
</section>
<section class="haltung" id="haltung">
<div class="container">
<div class="section-header reveal">
<p class="section-label">Haltung</p>
<h2>Wofür ich stehe.</h2>
</div>
<div class="haltung-grid">
<div class="haltung-item reveal">
<div class="haltung-image">
<img
src="assets/img/haltung-1.webp"
alt="Struktur"
loading="lazy"
width="320"
height="320"
decoding="async"
/>
</div>
<div class="haltung-content">
<h3>Struktur vor Kreativität.</h3>
<p>
Gute Markenarbeit beginnt mit Klarheit über das, wofür ein
Unternehmen steht, wie es spricht und wo es Grenzen zieht. Erst
wenn diese Grundlage existiert, wird Gestaltung wirksam.
</p>
</div>
</div>
<div class="haltung-item reveal">
<div class="haltung-image">
<img
src="assets/img/haltung-2.webp"
alt="Systeme"
loading="lazy"
width="320"
height="320"
decoding="async"
/>
</div>
<div class="haltung-content">
<h3>Systeme statt Einzelmaßnahmen.</h3>
<p>
Ich entwickle Regelwerke, die über Jahre tragen und mit dem
Unternehmen wachsen. Eine Marke, die nur in Kampagnen existiert,
bleibt fragil. Eine Marke, die in Struktur existiert, ist
führbar.
</p>
</div>
</div>
<div class="haltung-item reveal">
<div class="haltung-image">
<img
src="assets/img/haltung-3.webp"
alt="Strategie"
loading="lazy"
width="320"
height="320"
decoding="async"
/>
</div>
<div class="haltung-content">
<h3>Strategie und Umsetzung aus einer Hand.</h3>
<p>
Ich trenne Denken und Machen nicht. Wer Markensysteme baut, muss
sie auch in die Realität bringen in Websites, Tools,
Interfaces und ja, auch in Print. Sonst bleibt Strategie Papier.
</p>
</div>
</div>
<div class="haltung-item reveal">
<div class="haltung-image">
<img
src="assets/img/haltung-4.webp"
alt="Partnerschaft"
loading="lazy"
width="320"
height="320"
decoding="async"
/>
</div>
<div class="haltung-content">
<h3>Partnerschaft auf Augenhöhe.</h3>
<p>
Viele meiner Kunden begleite ich seit über zehn Jahren.
Vertrauen entsteht durch Ergebnisse, durch Verlässlichkeit und
durch die Bereitschaft, gemeinsam klare Entscheidungen zu
treffen.
</p>
</div>
</div>
</div>
<div class="haltung-cta reveal">
<p>
Wenn Sie verstehen wollen, wie ich über Marke denke, finden Sie den
vollständigen Denkrahmen auf markemacht.de.
</p>
<div class="section-cta">
<a href="#umsetzung" class="btn btn--next">
Umsetzung
<span class="btn-arrow-down" aria-hidden="true"></span>
</a>
<a
href="https://markemacht.de"
class="btn btn--mm"
target="_blank"
rel="noopener"
>
MARKE MACHT
<span class="btn-arrow" aria-hidden="true"></span>
</a>
</div>
</div>
</div>
</section>
<section class="umsetzung" id="umsetzung">
<div class="container">
<div class="section-header reveal">
<p class="section-label">Umsetzung</p>
<h2>Wie Klarheit Realität wird.</h2>
</div>
<div class="umsetzung-intro reveal">
<p>
Klarheit, die nur in Dokumenten existiert, verändert nichts. Deshalb
endet meine Arbeit nicht bei der Strategie sondern dort, wo die
Marke sichtbar und nutzbar wird.
</p>
</div>
<div class="umsetzung-grid">
<div class="umsetzung-item reveal">
<div class="umsetzung-number">01</div>
<h3>Websites, Tools, Interfaces</h3>
<p>
Ich entwickle und programmiere Websites, Landingpages, interne
Tools und Web-Applikationen immer auf Basis der Marken-DNA.
Technik folgt der Strategie, nicht umgekehrt.
</p>
<div class="umsetzung-image">
<img
src="assets/img/umsetzung-1.webp"
alt="Websites und Tools"
loading="lazy"
width="960"
height="540"
decoding="async"
/>
</div>
</div>
<div class="umsetzung-item reveal">
<div class="umsetzung-number">02</div>
<h3>Workflows, die Konsistenz sichern</h3>
<p>
KI nutze ich nicht für Spielereien, sondern für Marken-Governance:
Regeln, Checks und Prozesse, die dafür sorgen, dass die Marke in
Content und Kommunikation stabil bleibt.
</p>
<div class="umsetzung-image">
<img
src="assets/img/umsetzung-2.webp"
alt="KI Workflows"
loading="lazy"
width="960"
height="540"
decoding="async"
/>
</div>
</div>
<div class="umsetzung-item reveal">
<div class="umsetzung-number">03</div>
<h3>Print, Präsentationen, Messe</h3>
<p>
Wenn das System steht, entstehen auch analoge Anwendungen
Geschäftsausstattung, Broschüren, Messestände. Sie sind Konsequenz
der Markenführung, nicht Ausgangspunkt.
</p>
<div class="umsetzung-image">
<img
src="assets/img/umsetzung-3.webp"
alt="Print und Messe"
loading="lazy"
width="960"
height="540"
decoding="async"
/>
</div>
</div>
</div>
<div class="umsetzung-note reveal">
<p>
Alle Umsetzungen folgen denselben Regeln: der Marken-DNA des
Unternehmens. Das ist der Unterschied zwischen Ausführung und
Systemarbeit.
</p>
</div>
<div class="umsetzung-cta reveal">
<div class="section-cta">
<a href="#projekte" class="btn btn--next">
Evidenz
<span class="btn-arrow-down" aria-hidden="true"></span>
</a>
<a
href="https://markemacht.de"
class="btn btn--mm"
target="_blank"
rel="noopener"
>
MARKE MACHT
<span class="btn-arrow" aria-hidden="true"></span>
</a>
</div>
</div>
</div>
</section>
<section class="projekte" id="projekte">
<div class="container">
<div class="section-header reveal">
<p class="section-label">Evidenz</p>
<h2>Ausgewählte Erfolge.</h2>
<p>
Keine Logos, keine Bildergalerien. Nur das, was zählt: Ausgangslage,
Intervention, Ergebnis.
</p>
</div>
<div class="case-list">
<article class="case-item reveal">
<div class="case-image">
<img
src="assets/img/case-1.webp"
alt="Makro-Detailaufnahme"
loading="lazy"
width="800"
height="450"
decoding="async"
/>
</div>
<div class="case-header">
<h3>Maschinenbauer</h3>
<span>120 Mitarbeiter</span>
</div>
<div class="case-content">
<div class="case-block">
<h4>Ausgangslage</h4>
<p>
Technisch führend, aber sprachlich austauschbar. Vertrieb
argumentierte je nach Person unterschiedlich. Website und
Angebote erzählten verschiedene Geschichten.
</p>
</div>
<div class="case-block">
<h4>Intervention</h4>
<p>
Marken-DNA entwickelt: Identitätskern, Positionierung,
Sprachregeln. Website neu aufgebaut. Vertriebsunterlagen
vereinheitlicht.
</p>
</div>
<div class="case-block">
<h4>Ergebnis</h4>
<p>
Das Unternehmen erklärt sich heute in einem Satz konsistent
über alle Kanäle. Abstimmungsschleifen im Marketing haben sich
halbiert.
</p>
</div>
</div>
</article>
<article class="case-item reveal">
<div class="case-image">
<img
src="assets/img/case-2.webp"
alt="Makro-Detailaufnahme"
loading="lazy"
width="800"
height="450"
decoding="async"
/>
</div>
<div class="case-header">
<h3>IT-Dienstleister</h3>
<span>40 Mitarbeiter</span>
</div>
<div class="case-content">
<div class="case-block">
<h4>Ausgangslage</h4>
<p>
Schnelles Wachstum, aber keine einheitliche Sprache. Website,
Sales-Pitches und LinkedIn widersprachen sich. Jeder
Mitarbeiter erklärte das Unternehmen anders.
</p>
</div>
<div class="case-block">
<h4>Intervention</h4>
<p>
Positionierung geschärft. Sprachregeln und Themenrahmen
definiert. Website und Pitch-Deck neu strukturiert. Interne
Guidelines erstellt.
</p>
</div>
<div class="case-block">
<h4>Ergebnis</h4>
<p>
Kommunikation ist reproduzierbar unabhängig davon, wer sie
erstellt. Neue Mitarbeiter sind in Tagen statt Wochen
sprachfähig.
</p>
</div>
</div>
</article>
<article class="case-item reveal">
<div class="case-image">
<img
src="assets/img/case-3.webp"
alt="Makro-Detailaufnahme"
loading="lazy"
width="800"
height="450"
decoding="async"
/>
</div>
<div class="case-header">
<h3>Beratungsunternehmen</h3>
<span>8 Mitarbeiter</span>
</div>
<div class="case-content">
<div class="case-block">
<h4>Ausgangslage</h4>
<p>
Starke Gründerpersönlichkeit, aber Wissen war nicht
übertragbar. Inhalte und Akquise hingen am Inhaber. Skalierung
blockiert.
</p>
</div>
<div class="case-block">
<h4>Intervention</h4>
<p>
Haltung in Struktur übersetzt. Marken-DNA dokumentiert. Team
befähigt, eigenständig zu kommunizieren. Website als System
aufgebaut.
</p>
</div>
<div class="case-block">
<h4>Ergebnis</h4>
<p>
Die Marke funktioniert auch ohne den Gründer im Raum. Erstmals
können andere Berater unter derselben Positionierung
auftreten.
</p>
</div>
</div>
</article>
<article class="case-item reveal">
<div class="case-image">
<img
src="assets/img/case-4.webp"
alt="Makro-Detailaufnahme"
loading="lazy"
width="800"
height="450"
decoding="async"
/>
</div>
<div class="case-header">
<h3>Produzierendes Unternehmen</h3>
<span>200 Mitarbeiter</span>
</div>
<div class="case-content">
<div class="case-block">
<h4>Ausgangslage</h4>
<p>
Marke existierte nur als Logo und Farbwelt. Keine
dokumentierte Positionierung. Marketing produzierte viel, aber
ohne roten Faden.
</p>
</div>
<div class="case-block">
<h4>Intervention</h4>
<p>
Marken-DNA von Grund auf entwickelt. Interne Workshops zur
Verankerung. Website-Relaunch, Messeauftritt, Broschüren
alles aus einem System.
</p>
</div>
<div class="case-block">
<h4>Ergebnis</h4>
<p>
Zum ersten Mal spricht das Unternehmen nach außen wie nach
innen. Der Messestand wurde zum konsistentesten Auftritt der
Firmengeschichte.
</p>
</div>
</div>
</article>
<article class="case-item reveal">
<div class="case-image">
<img
src="assets/img/case-5.webp"
alt="Makro-Detailaufnahme"
loading="lazy"
width="800"
height="450"
decoding="async"
/>
</div>
<div class="case-header">
<h3>Startup</h3>
<span>12 Mitarbeiter</span>
</div>
<div class="case-content">
<div class="case-block">
<h4>Ausgangslage</h4>
<p>
Produkt war da, aber die Erklärung fehlte. Pitch-Deck
überzeugte nicht. Website war technisch, nicht strategisch.
</p>
</div>
<div class="case-block">
<h4>Intervention</h4>
<p>
Positionierung erarbeitet. Messaging-System entwickelt.
Website und Pitch-Deck komplett neu gebaut. KI-gestützter
Content-Workflow eingerichtet.
</p>
</div>
<div class="case-block">
<h4>Ergebnis</h4>
<p>
Investorengespräche laufen fokussierter. Content entsteht
jetzt regelbasiert statt aus dem Bauch.
</p>
</div>
</div>
</article>
</div>
<div class="projekte-cta reveal">
<p>
Diese Projekte stehen für eine Arbeitsweise: Klarheit zuerst, dann
Umsetzung. Wenn Sie wissen wollen, ob das zu Ihrer Situation passt,
sprechen wir.
</p>
<div class="section-cta">
<a href="#kontakt" class="btn btn--next">
Kontakt
<span class="btn-arrow-down" aria-hidden="true"></span>
</a>
</div>
</div>
</div>
</section>
<section class="kontakt" id="kontakt">
<div class="container">
<div class="section-header reveal">
<p class="section-label">Kontakt</p>
<h2>Sprechen wir.</h2>
<p>
Wenn Sie über Markenklarheit sprechen wollen oder ein konkretes
Umsetzungsprojekt haben schreiben Sie mir.
</p>
</div>
<div class="kontakt-grid">
<div class="kontakt-text reveal">
<div class="kontakt-portrait">
<img
src="assets/img/back.webp"
alt="Kevin Adametz"
loading="lazy"
width="800"
height="533"
decoding="async"
/>
</div>
</div>
<div class="kontakt-info reveal">
<div class="kontakt-card">
<img
src="assets/img/logo.png"
alt="Adametz.Media Logo"
class="kontakt-logo"
width="252"
height="160"
decoding="async"
/>
<h3>Kevin Adametz</h3>
<div class="kontakt-details">
<p>ADAMETZ.MEDIA</p>
<p>In der Lake 4</p>
<p>33739 Bielefeld</p>
<p style="margin-top: 1rem">
<a href="mailto:info@adametz.media">info@adametz.media</a>
</p>
<p><a href="tel:+4952067076721">+49 5206 7076721</a></p>
</div>
<p class="kontakt-note">
Ich antworte in der Regel innerhalb von 48 Stunden.
</p>
</div>
</div>
</div>
</div>
</section>
<footer class="footer">
<div class="container">
<div class="footer-inner">
<p class="footer-copy">© 2026 ADAMETZ.MEDIA Kevin Adametz</p>
<div class="footer-links">
<a href="https://markemacht.de">MARKE MACHT</a>
<a href="impressum.html">Impressum</a>
<a href="datenschutz.html">Datenschutz</a>
</div>
</div>
</div>
</footer>
</body>
</html>

View file

@ -0,0 +1,47 @@
{
"name": "ADAMETZ.MEDIA",
"short_name": "Adametz",
"start_url": "/",
"scope": "/",
"display": "standalone",
"theme_color": "#0a0a0a",
"background_color": "#0a0a0a",
"icons": [
{
"src": "assets/android-icon-36x36.png",
"sizes": "36x36",
"type": "image/png",
"density": "0.75"
},
{
"src": "assets/android-icon-48x48.png",
"sizes": "48x48",
"type": "image/png",
"density": "1.0"
},
{
"src": "assets/android-icon-72x72.png",
"sizes": "72x72",
"type": "image/png",
"density": "1.5"
},
{
"src": "assets/android-icon-96x96.png",
"sizes": "96x96",
"type": "image/png",
"density": "2.0"
},
{
"src": "assets/android-icon-144x144.png",
"sizes": "144x144",
"type": "image/png",
"density": "3.0"
},
{
"src": "assets/android-icon-192x192.png",
"sizes": "192x192",
"type": "image/png",
"density": "4.0"
}
]
}

View file

@ -0,0 +1,4 @@
User-agent: *
Allow: /
Sitemap: https://adametz.media/sitemap.xml

View file

@ -0,0 +1,135 @@
#!/usr/bin/env python3
"""Synchronisiert head-common, Header und Footer in alle HTML-Seiten."""
from __future__ import annotations
import re
from pathlib import Path
ROOT = Path(__file__).resolve().parent.parent
VERSION = (ROOT / 'assets' / 'version.txt').read_text().strip()
HEAD_COMMON = ROOT / 'assets' / 'components' / 'head-common.html'
HEADER_INDEX = ROOT / 'assets' / 'components' / 'header-index.html'
HEADER_SUB = ROOT / 'assets' / 'components' / 'header-sub.html'
FOOTER = ROOT / 'assets' / 'components' / 'footer.html'
HEAD_MOUNT = re.compile(r' <!-- data-site-head -->\n')
HEAD_BLOCK = re.compile(
r' <meta property="og:locale" content="de_DE" />.*?"name": "ADAMETZ\.MEDIA"\n \}\n \}\n </script>\n',
re.DOTALL,
)
HEADER_MOUNT = re.compile(r' <div data-site-header></div>\n')
FOOTER_MOUNT = re.compile(r' <div data-site-footer></div>\n')
STYLESHEET = re.compile(
r'<link rel="stylesheet" href="assets/styles\.css(?:\?v=[^"]*)?" />'
)
APP_JS = re.compile(
r'<script src="assets/js/app\.js(?:\?v=[^"]*)?" defer></script>'
)
HERO_IMG = re.compile(
r'<img\s+src="assets/img/hero-bg2\.webp"[^>]*>',
re.DOTALL,
)
HERO_IMG_REPLACEMENT = '''<img
src="assets/img/hero-bg2.webp"
srcset="assets/img/hero-bg2-640.webp 640w, assets/img/hero-bg2-960.webp 960w, assets/img/hero-bg2.webp 1920w"
sizes="100vw"
alt="Abstrakte architektonische Struktur"
width="1920"
height="1080"
loading="eager"
fetchpriority="high"
decoding="async"
/>'''
INDEX_PAGES = {'index.html'}
def indent_block(text: str, prefix: str = ' ') -> str:
lines = text.strip('\n').splitlines()
return '\n'.join(prefix + line if line.strip() else '' for line in lines) + '\n'
def build_head() -> str:
content = HEAD_COMMON.read_text()
content = content.replace('{{VERSION}}', VERSION)
return indent_block(content)
def build_header(path: Path) -> str:
if path.name in INDEX_PAGES:
return indent_block(HEADER_INDEX.read_text())
return indent_block(HEADER_SUB.read_text())
def process_html(path: Path) -> bool:
text = path.read_text()
if '<!-- data-site-head -->' not in text and 'og:locale' not in text:
return False
original = text
if HEAD_MOUNT.search(text):
text = HEAD_MOUNT.sub(build_head(), text, count=1)
elif 'og:locale' in text:
text = HEAD_BLOCK.sub(build_head(), text, count=1)
if HEADER_MOUNT.search(text):
text = HEADER_MOUNT.sub(build_header(path), text, count=1)
if FOOTER_MOUNT.search(text):
footer = indent_block(FOOTER.read_text())
text = FOOTER_MOUNT.sub(footer, text, count=1)
text = STYLESHEET.sub(
f'<link rel="stylesheet" href="assets/styles.css?v={VERSION}" />',
text,
)
text = APP_JS.sub(
f'<script src="assets/js/app.js?v={VERSION}" defer></script>',
text,
)
if path.name == 'index.html':
text = HERO_IMG.sub(HERO_IMG_REPLACEMENT, text, count=1)
preload = (
' <link rel="preload" as="image" href="assets/img/hero-bg2-960.webp" '
'type="image/webp" fetchpriority="high" '
'imagesrcset="assets/img/hero-bg2-640.webp 640w, '
'assets/img/hero-bg2-960.webp 960w, assets/img/hero-bg2.webp 1920w" '
'imagesizes="100vw" />\n'
)
for _ in range(3):
text = re.sub(
r' <link rel="preload" as="image" href="assets/img/hero-bg2[^"]*"[^/]*/>\n',
'',
text,
)
manifest_line = ' <link rel="manifest" href="manifest.json" />\n'
if preload.strip() not in text and manifest_line in text:
text = text.replace(manifest_line, manifest_line + preload, 1)
if text != original:
path.write_text(text)
return True
return False
def main() -> None:
updated = []
for path in sorted(ROOT.glob('*.html')):
if process_html(path):
updated.append(path.name)
print(f'Version: {VERSION}')
for name in updated:
print(f' aktualisiert: {name}')
if not updated:
print(' keine Änderungen')
if __name__ == '__main__':
main()

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://adametz.media/</loc>
<changefreq>monthly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://adametz.media/impressum.html</loc>
<changefreq>yearly</changefreq>
<priority>0.3</priority>
</url>
<url>
<loc>https://adametz.media/datenschutz.html</loc>
<changefreq>yearly</changefreq>
<priority>0.3</priority>
</url>
</urlset>

5
_markemacht.de/.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
# Composer-Abhängigkeiten (per `composer install` reproduzierbar)
/vendor/
# Zugangsdaten niemals committen (siehe config.example.php als Vorlage)
/assets/php/config.php

108
_markemacht.de/.htaccess Normal file
View file

@ -0,0 +1,108 @@
# MARKE MACHT — Apache-Konfiguration (markemacht.de)
# Kanonische Domain: https://markemacht.de (ohne www)
# ── Rewrite-Engine ────────────────────────────────────────────────────────────
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# HTTPS erzwingen und www → non-www (301 Permanent)
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.markemacht\.de$ [NC]
RewriteRule ^ https://markemacht.de%{REQUEST_URI} [R=301,L]
# Alte Denken-Artikel → Übersicht
RewriteRule ^denken-agilitaet\.html$ /denken.html [R=301,L]
RewriteRule ^denken-fuehrung-durch-reduktion\.html$ /denken.html [R=301,L]
RewriteRule ^denken-architektursanierung\.html$ /denken.html [R=301,L]
# Build-Skript und interne Dateien nicht öffentlich
RewriteRule ^scripts/ - [F,L]
RewriteRule ^assets/components/ - [F,L]
RewriteRule ^assets/version\.txt$ - [F,L]
</IfModule>
# ── Fehlerseiten ──────────────────────────────────────────────────────────────
ErrorDocument 404 /404.html
# ── Verzeichnislisting deaktivieren ───────────────────────────────────────────
Options -Indexes -MultiViews
# ── Standard-Dokument ─────────────────────────────────────────────────────────
DirectoryIndex index.html
# ── Zeichensatz ───────────────────────────────────────────────────────────────
AddDefaultCharset UTF-8
# ── MIME-Typen ────────────────────────────────────────────────────────────────
<IfModule mod_mime.c>
AddType image/webp .webp
AddType image/svg+xml .svg
AddType font/woff2 .woff2
AddType font/woff .woff
</IfModule>
# ── Kompression ───────────────────────────────────────────────────────────────
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml
AddOutputFilterByType DEFLATE application/javascript application/json application/xml
AddOutputFilterByType DEFLATE image/svg+xml font/woff2 font/woff
</IfModule>
<IfModule mod_brotli.c>
AddOutputFilterByType BROTLI_COMPRESS text/html text/plain text/css text/xml
AddOutputFilterByType BROTLI_COMPRESS application/javascript application/json application/xml
AddOutputFilterByType BROTLI_COMPRESS image/svg+xml font/woff2 font/woff
</IfModule>
# ── Cache-Steuerung ───────────────────────────────────────────────────────────
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 0 seconds"
# HTML-Seiten: immer frisch validieren
ExpiresByType text/html "access plus 0 seconds"
# Statische Assets: 7 Tage (Cache-Busting via ?v= in CSS/JS)
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
ExpiresByType image/svg+xml "access plus 7 days"
ExpiresByType image/webp "access plus 7 days"
ExpiresByType image/jpeg "access plus 7 days"
ExpiresByType image/png "access plus 7 days"
ExpiresByType font/woff2 "access plus 7 days"
ExpiresByType font/woff "access plus 7 days"
</IfModule>
<IfModule mod_headers.c>
# Statische Assets unter /assets/
SetEnvIf Request_URI "^/assets/" ASSET_PATH=1
Header set Cache-Control "public, max-age=604800, immutable" env=ASSET_PATH
# HTML: Revalidierung erlauben
<FilesMatch "\.(html)$">
Header set Cache-Control "no-cache, must-revalidate"
</FilesMatch>
# Sicherheits-Header
Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' https://sys.adametz.media; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self' https://sys.adametz.media; frame-ancestors 'self'; base-uri 'self'; form-action 'self' mailto:"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" env=HTTPS
</IfModule>
# ── Zugriffsschutz (interne / sensible Dateien) ──────────────────────────────
<FilesMatch "(^\.|\.md$|composer\.(json|lock)$)">
Require all denied
</FilesMatch>
<FilesMatch "(^|/)version\.txt$">
Require all denied
</FilesMatch>
<IfModule mod_rewrite.c>
RewriteRule ^vendor/ - [F,L]
RewriteRule ^docker/ - [F,L]
</IfModule>

276
_markemacht.de/404.html Normal file
View file

@ -0,0 +1,276 @@
<!DOCTYPE html>
<html lang="de" data-theme="monolith">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
<title>Seite nicht gefunden · MARKE MACHT</title>
<meta name="description" content="Die angeforderte Seite wurde nicht gefunden." />
<meta name="robots" content="noindex" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="MARKE MACHT" />
<meta property="og:title" content="Seite nicht gefunden · MARKE MACHT" />
<meta property="og:description" content="Die angeforderte Seite wurde nicht gefunden." />
<meta property="og:url" content="https://markemacht.de/404.html" />
<link rel="canonical" href="https://markemacht.de/" />
<meta property="og:locale" content="de_DE" />
<meta property="og:image" content="https://markemacht.de/assets/img/og-share.webp" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="MARKE MACHT — Denkraum für Unternehmer" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://markemacht.de/assets/img/og-share.webp" />
<meta name="theme-color" content="#0A0A0A" media="(prefers-color-scheme: dark)" />
<meta name="theme-color" content="#FBFAF2" media="(prefers-color-scheme: light)" />
<link rel="icon" type="image/svg+xml" href="./assets/favicon.svg" />
<link rel="preconnect" href="https://sys.adametz.media" crossorigin />
<script>
(function () {
'use strict';
if ('scrollRestoration' in history) history.scrollRestoration = 'manual';
if (!location.hash) window.scrollTo(0, 0);
var key = 'mm-wirkung';
var valid = ['monolith', 'editorial'];
var v = null;
try { v = localStorage.getItem(key); } catch (_) {}
if (valid.indexOf(v) === -1) v = 'monolith';
document.documentElement.setAttribute('data-theme', v);
var fontBase = './assets/fonts/';
var displayFont = v === 'editorial'
? fontBase + 'plus-jakarta-sans/plus-jakarta-sans-v12-latin-600.woff2'
: fontBase + 'outfit/outfit-v15-latin-700.woff2';
[fontBase + 'space-grotesk/space-grotesk-v22-latin-regular.woff2', displayFont].forEach(function (href) {
var link = document.createElement('link');
link.rel = 'preload';
link.as = 'font';
link.type = 'font/woff2';
link.crossOrigin = 'anonymous';
link.href = href;
document.head.appendChild(link);
});
['./assets/fonts/fonts-shared.css', './assets/fonts/fonts-' + v + '.css'].forEach(function (href) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = href;
document.head.appendChild(link);
});
var heroes = {
'index.html': { monolith: 'start-monolith.webp', editorial: 'start-editorial.webp' },
'manifest.html': { monolith: 'manifest-monolith.webp', editorial: 'manifest-editorial.webp' },
'methode.html': { monolith: 'methode-monolith.webp', editorial: 'methode-editorial.webp' },
'denken.html': { monolith: 'denken-monolith.webp', editorial: 'denken-editorial.webp' }
};
var page = location.pathname.split('/').pop() || 'index.html';
var pair = heroes[page];
if (pair) {
var img = pair[v] || pair.monolith;
var preload = document.createElement('link');
preload.rel = 'preload';
preload.as = 'image';
preload.href = './assets/img/' + img;
preload.type = 'image/webp';
if ('fetchPriority' in preload) preload.fetchPriority = 'high';
document.head.appendChild(preload);
}
})();
</script>
<link rel="stylesheet" href="./assets/css/app.css?v=20250610" />
<script defer src="https://sys.adametz.media/config.js" data-website-id="40125fcf-49c4-43f3-a9a5-9eec5eb55696"></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "MARKE MACHT",
"url": "https://markemacht.de/",
"description": "Denkraum für Unternehmer im Mittelstand. Marke ist die Fähigkeit eines Unternehmens, sich selbst eindeutig zu erklären.",
"inLanguage": "de-DE"
}
</script>
</head>
<body>
<a class="visually-hidden" href="#main">Zum Inhalt springen</a>
<nav class="nav" aria-label="Hauptnavigation" data-site-nav>
<div class="nav-inner">
<a class="nav-brand" href="./index.html">MARKE MACHT</a>
<div class="nav-links">
<a class="nav-link" href="./index.html" data-nav-page="start">Start</a>
<a class="nav-link" href="./manifest.html" data-nav-page="manifest">Manifest</a>
<a class="nav-link" href="./methode.html" data-nav-page="methode">Methode</a>
<a class="nav-link" href="./denken.html" data-nav-page="denken">Denken</a>
</div>
<div class="wirkung-switch" role="group" aria-label="Wirkung wechseln">
<span class="wirkung-label">Wirkung:</span>
<button type="button" class="wirkung-option" data-wirkung="monolith" aria-pressed="false">monolithisch</button>
<span class="wirkung-sep" aria-hidden="true">·</span>
<button type="button" class="wirkung-option" data-wirkung="editorial" aria-pressed="false">editorial</button>
</div>
<a class="nav-cta" href="./audit.html">Audit anfragen</a>
<button class="menu-btn" data-drawer-open aria-label="Menü öffnen" aria-controls="mobile-drawer" aria-expanded="false">
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#menu"></use></svg>
</button>
</div>
</nav>
<aside id="mobile-drawer" class="mobile-drawer" data-mobile-drawer aria-hidden="true" aria-label="Mobile Navigation">
<div class="mobile-drawer-head">
<span class="nav-brand">MARKE MACHT</span>
<button class="menu-btn" data-drawer-close aria-label="Menü schließen">
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#close"></use></svg>
</button>
</div>
<nav class="mobile-drawer-links" aria-label="Mobile Hauptnavigation">
<a class="mobile-drawer-link" href="./index.html" data-nav-page="start">Start</a>
<a class="mobile-drawer-link" href="./manifest.html" data-nav-page="manifest">Manifest</a>
<a class="mobile-drawer-link" href="./methode.html" data-nav-page="methode">Methode</a>
<a class="mobile-drawer-link" href="./denken.html" data-nav-page="denken">Denken</a>
</nav>
<div class="mobile-drawer-footer">
<div class="wirkung-switch" role="group" aria-label="Wirkung wechseln">
<span class="wirkung-label">Wirkung:</span>
<button type="button" class="wirkung-option" data-wirkung="monolith" aria-pressed="false">monolithisch</button>
<span class="wirkung-sep" aria-hidden="true">·</span>
<button type="button" class="wirkung-option" data-wirkung="editorial" aria-pressed="false">editorial</button>
</div>
<a class="nav-cta mobile-drawer-cta" href="./audit.html">Audit anfragen</a>
</div>
</aside>
<main id="main">
<section class="section">
<div class="shell grid-12">
<div class="col-12 stack-32" style="padding-block: clamp(64px, 12vw, 128px);">
<span class="meta accent">404</span>
<h1 class="section-headline" style="max-width: 16ch;">Diese Seite existiert nicht.</h1>
<p class="body-text dim max-prose">
Der Link ist veraltet oder die Adresse wurde falsch eingegeben. Vielleicht finden Sie hier, was Sie suchen:
</p>
<div class="btn-row">
<a class="btn" href="./index.html">
Zur Startseite
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
</a>
<a class="btn btn-ghost" href="./denken.html">
Zum Denkraum
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
</a>
</div>
</div>
</div>
</section>
</main>
<footer class="site-footer">
<div class="footer-inner">
<div class="footer-meta">
<p class="footer-copy">© MARKE MACHT · Denkraum für Unternehmer</p>
<p class="footer-note">Keine Cookies</p>
</div>
<div class="footer-links">
<a class="footer-link" href="./impressum.html">Impressum</a>
<a class="footer-link" href="./datenschutz.html">Datenschutz</a>
<button class="footer-link" type="button" data-audit-modal-open>Anfrage</button>
</div>
</div>
</footer>
<div class="modal-backdrop" data-audit-modal aria-hidden="true">
<div class="modal-dialog" role="dialog" aria-modal="true" aria-labelledby="audit-modal-title" aria-describedby="audit-modal-desc">
<button class="modal-close" type="button" data-audit-modal-close aria-label="Anfragefenster schließen">
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#close"></use></svg>
</button>
<div class="stack-32">
<div class="stack-16">
<span class="meta accent">Anfrage</span>
<h2 class="section-headline" id="audit-modal-title" style="max-width: 16ch;">Kurzer Erstkontakt.</h2>
<p class="body-text max-prose" id="audit-modal-desc">
Wählen Sie den direkten E-Mail-Weg oder senden Sie eine knappe Anfrage über das Formular.
</p>
</div>
<div class="card stack-16">
<span class="meta">Direkt per E-Mail</span>
<p class="body-text">
Öffnet Ihr E-Mail-Programm mit vorausgefülltem Betreff.
</p>
<div>
<a class="btn btn-nav-cta" href="mailto:info@markemacht.de?subject=Anfrage%20Marken-Klarheits-Audit">
E-Mail öffnen
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
</a>
</div>
</div>
<div data-audit-form-panel>
<form class="modal-form stack-16" data-audit-form novalidate>
<div class="form-field">
<label class="meta" for="audit-name">Name</label>
<input id="audit-name" name="name" type="text" autocomplete="name" required />
</div>
<div class="form-field">
<label class="meta" for="audit-email">E-Mail</label>
<input id="audit-email" name="email" type="email" autocomplete="email" required />
</div>
<div class="form-field">
<label class="meta" for="audit-message">Worum geht es?</label>
<textarea id="audit-message" name="message" rows="5" required></textarea>
</div>
<div class="form-honeypot" aria-hidden="true">
<label for="audit-company">Firma</label>
<input id="audit-company" name="company" type="text" tabindex="-1" autocomplete="off" />
<label for="audit-url">Website</label>
<input id="audit-url" name="url" type="url" tabindex="-1" autocomplete="off" />
</div>
<label class="form-check">
<input name="privacy" type="checkbox" required />
<span class="form-switch" aria-hidden="true"></span>
<span>Ich akzeptiere die <a href="./datenschutz.html">Datenschutzerklärung</a>.</span>
</label>
<p class="form-status body-text" data-audit-form-status aria-live="polite"></p>
<div>
<button class="btn btn-nav-cta" type="submit">
Absenden
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
</button>
</div>
</form>
</div>
<div class="form-success" data-audit-form-success hidden>
<div class="form-success-icon" aria-hidden="true">
<svg class="icon icon--lg" aria-hidden="true"><use href="./assets/icons.svg#check-circle"></use></svg>
</div>
<div class="stack-16">
<h3 class="sub-headline">Vielen Dank für Ihre Anfrage.</h3>
<p class="body-text">Wir werden uns in Kürze bei Ihnen melden.</p>
</div>
<button class="btn btn-ghost" type="button" data-audit-modal-close>
Schließen
</button>
</div>
</div>
</div>
</div>
<script src="./assets/js/app.js?v=20250610" defer></script>
</body>
</html>

View file

@ -0,0 +1,233 @@
# Live-Deployment — markemacht.de
Kurzanleitung für den Upload auf den Produktionsserver (Apache + `.htaccess`).
---
## Server-Anforderungen
| Komponente | Erforderlich |
|------------|--------------|
| **Webserver** | Apache mit `mod_rewrite`, `mod_headers`, `mod_expires`, `mod_deflate` |
| **PHP** | 8.1+ (nur für Kontaktformular unter `assets/php/`) |
| **HTTPS** | Pflicht — wird per `.htaccess` erzwungen |
| **Optional** | `mod_brotli` (zusätzliche Kompression) |
Domain: **https://markemacht.de** (ohne `www`).
---
## Deploy-Ablauf (Checkliste)
### 1. Vor dem Upload (lokal)
```bash
cd _markemacht.de
# Bei CSS/JS-Änderungen: Version erhöhen
# → assets/version.txt (z. B. 20250610)
# Head, Header, Footer in alle HTML-Seiten einspielen
python3 scripts/build-site.py
# PHP-Abhängigkeiten (nur wenn Formular genutzt wird)
php composer install --no-dev --optimize-autoloader
/usr/bin/php84 /usr/bin/composer
```
### 2. Auf den Server hochladen
Document Root = Inhalt von `_markemacht.de/` (alle Dateien im Root der Domain).
### 3. Nach dem Upload (einmalig / bei Formular)
```bash
# Auf dem Server, im Ordner assets/php/:
cp config.example.php config.php
# → SMTP-Zugangsdaten eintragen (nicht ins Git committen)
```
### 4. Kurz testen
- [ ] https://markemacht.de/ lädt korrekt
- [ ] Wirkungs-Umschalter (monolithisch / editorial) funktioniert
- [ ] Anfrage-Modal öffnet sich, Formular sendet (oder Fehlermeldung bei fehlender SMTP-Config)
- [ ] https://markemacht.de/robots.txt erreichbar
- [ ] https://markemacht.de/sitemap.xml erreichbar
- [ ] Ungültige URL zeigt `404.html`
- [ ] Alte URLs leiten um: `/denken-agilitaet.html``/denken.html`
---
## Was hochladen — was nicht
### Mit hochladen
- Alle `*.html` im Root (inkl. `404.html`)
- `.htaccess`
- `robots.txt`, `sitemap.xml`
- `assets/` (css, js, fonts, img, icons.svg, components, php)
- `vendor/`**nur wenn** das Kontaktformular aktiv ist
### Nicht öffentlich / nicht nötig auf Static-Only-Hosting
| Pfad | Grund |
|------|--------|
| `scripts/` | Build-Skript — wird per `.htaccess` blockiert |
| `docker/` | Nur für lokale Entwicklung |
| `vendor/` | Nur für PHP-Formular nötig |
| `assets/php/config.php` | Enthält SMTP-Passwort — nur auf Server anlegen |
| `*.md` (außer intern) | Werden per `.htaccess` blockiert |
| `composer.json` / `composer.lock` | Werden blockiert |
Die **vollständigen Font-Archive** unter `assets/fonts/*/` können auf dem Server liegen bleiben (Reserve). Beim Seitenaufruf werden nur die reduzierten Theme-Bundles geladen (`fonts-monolith.css` / `fonts-editorial.css` + `fonts-shared.css`).
---
## Build-System & Komponenten
Die Seite nutzt **kein** Build-Tool wie Webpack. Stattdessen:
### Quell-Dateien (hier bearbeiten)
| Datei | Inhalt |
|-------|--------|
| `assets/components/head-common.html` | OG-Tags, Favicon, Theme-Init, CSS, Analytics, JSON-LD |
| `assets/components/header.html` | Navigation, Mobile Drawer |
| `assets/components/footer.html` | Footer + Anfrage-Modal |
### Build ausführen
```bash
python3 scripts/build-site.py
```
Das Skript:
1. Spiegelt `head-common.html` in alle HTML-Seiten (ab `og:locale`)
2. Bettet Header und Footer direkt in jede Seite ein (kein JS-Fetch mehr)
3. Setzt Cache-Busting an `app.js?v=…` aus `assets/version.txt`
4. Ergänzt auf `index.html` das LCP-Preload für das Hero-Bild
**Wichtig:** Nach Änderungen an den drei Komponenten immer Build ausführen, sonst sind die Live-HTML-Dateien veraltet.
### Cache-Busting
- Version steht in `assets/version.txt` (z. B. `20250609`)
- `head-common.html` nutzt Platzhalter `{{VERSION}}` für `app.css?v={{VERSION}}`
- Bei jedem Deploy mit CSS/Änderungen: **Version erhöhen** → Build → Upload
---
## Apache (`.htaccess`)
Die Live-Konfiguration liegt in `.htaccess` im Root. Wichtigste Regeln:
- **HTTPS + non-www** — Redirect auf `https://markemacht.de`
- **301-Redirects** — alte Denken-Artikel → `denken.html`
- **404**`ErrorDocument 404 /404.html`
- **Gzip + optional Brotli**
- **Cache** — HTML: `no-cache`; Assets unter `/assets/`: 7 Tage `immutable`
- **Security-Header** — CSP, `X-Frame-Options`, `Referrer-Policy` u. a.
- **CSP** erlaubt Analytics von `https://sys.adametz.media`
Geschützte Pfade: `/scripts/`, `/vendor/`, `/docker/`, `/assets/version.txt`
---
## Kontaktformular (PHP)
Endpoint: `assets/php/send-anfrage.php`
Konfiguration: `assets/php/config.php` (aus `config.example.php` kopieren)
```bash
composer install --no-dev
cp assets/php/config.example.php assets/php/config.php
# config.php mit SMTP-Daten füllen
```
`config.php` ist per `.htaccess` in `assets/php/` vor direktem Download geschützt.
Das Modal liegt im Footer (`assets/components/footer.html`) — nach Änderungen Build ausführen.
---
## Schriften & Icons
- **Keine Google Fonts** — alles lokal unter `assets/fonts/`
- **Theme-Fonts** — Inline-Script in `head-common.html` setzt Theme, lädt Fonts und LCP-Preload; beim Wechsel lädt `app.js` das andere Bundle nach
- **Icons** — SVG-Sprite `assets/icons.svg` (kein Icon-Font mehr)
---
## Analytics
Umami (selbst gehostet), eingebunden in `head-common.html`:
```html
<script defer src="https://sys.adametz.media/config.js" data-website-id="40125fcf-49c4-43f3-a9a5-9eec5eb55696"></script>
```
Keine Cookies. In der Datenschutzerklärung bereits beschrieben.
---
## SEO-Dateien
| Datei | URL |
|-------|-----|
| `robots.txt` | https://markemacht.de/robots.txt |
| `sitemap.xml` | https://markemacht.de/sitemap.xml |
| OG-Share-Bild | `assets/img/og-share.webp` (1200×630) |
Bei neuen indexierbaren Seiten: `sitemap.xml` manuell ergänzen.
---
## Bilder
- Hero- und Split-Bilder als **WebP** unter `assets/img/`
- Benennung: `{seite}-monolith.webp` / `{seite}-editorial.webp`
- Lazy Load über `app.js` (Intersection Observer)
Neue Bildpaare: in `assets/css/app.css` unter `.hero--*` bzw. `.split-visual .monolith` eintragen.
---
## Datenschutz & Cookies
- **Keine Cookies**
- Wirkungs-Modus wird in **`localStorage`** gespeichert (`mm-wirkung`) — in Datenschutzerklärung dokumentiert
- Beim Moduswechsel wird ein eventuelles Legacy-Cookie einmalig gelöscht (`app.js`)
---
## Typische Probleme
| Symptom | Lösung |
|---------|--------|
| Altes CSS/JS nach Deploy | `assets/version.txt` erhöhen, `build-site.py` ausführen, neu hochladen |
| Header/Footer veraltet | Komponente bearbeitet, aber Build vergessen |
| Formular sendet nicht | `config.php` auf Server prüfen, `vendor/` vorhanden, PHP-Fehlerlog |
| 500 nach Upload | `.htaccess`-Module prüfen (`mod_rewrite`, `mod_headers`); PHP-Version |
| CSP blockiert Script | Nur `self`, inline und `sys.adametz.media` erlaubt — keine fremden Scripts ohne CSP-Anpassung |
| Fonts laden nicht | `assets/fonts/fonts-*.css` und zugehörige `.woff2` mit hochladen |
---
## Schnellreferenz — Änderungstyp → Schritte
| Änderung an … | Schritte |
|---------------|----------|
| `app.css` | Version ↑ → optional Build → Upload `app.css` + HTML (wegen `?v=`) |
| `app.js` | Version ↑ → Build → Upload |
| `head-common.html` | Bearbeiten → **Build** → alle HTML hochladen |
| `header.html` / `footer.html` | Bearbeiten → **Build** → alle HTML hochladen |
| Einzelne Inhaltsseite `*.html` | Direkt bearbeiten → hochladen (Head/Footer nur via Build sync) |
| Neues Hero-Bild | WebP ablegen → CSS anpassen → Upload |
| SMTP / Formular | Nur `config.php` auf Server |
---
*Stand: Juni 2025 — Projekt `_markemacht.de`*

View file

@ -2,12 +2,97 @@
<div class="footer-inner">
<div class="footer-meta">
<p class="footer-copy">© MARKE MACHT · Denkraum für Unternehmer</p>
<p class="footer-note">Keine Cookies, kein Tracking.</p>
<p class="footer-note">Keine Cookies</p>
</div>
<div class="footer-links">
<a class="footer-link" href="#">Impressum</a>
<a class="footer-link" href="#">Datenschutz</a>
<a class="footer-link" href="#">Kontakt</a>
<a class="footer-link" href="./impressum.html">Impressum</a>
<a class="footer-link" href="./datenschutz.html">Datenschutz</a>
<button class="footer-link" type="button" data-audit-modal-open>Anfrage</button>
</div>
</div>
</footer>
<div class="modal-backdrop" data-audit-modal aria-hidden="true">
<div class="modal-dialog" role="dialog" aria-modal="true" aria-labelledby="audit-modal-title" aria-describedby="audit-modal-desc">
<button class="modal-close" type="button" data-audit-modal-close aria-label="Anfragefenster schließen">
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#close"></use></svg>
</button>
<div class="stack-32">
<div class="stack-16">
<span class="meta accent">Anfrage</span>
<h2 class="section-headline" id="audit-modal-title" style="max-width: 16ch;">Kurzer Erstkontakt.</h2>
<p class="body-text max-prose" id="audit-modal-desc">
Wählen Sie den direkten E-Mail-Weg oder senden Sie eine knappe Anfrage über das Formular.
</p>
</div>
<div class="card stack-16">
<span class="meta">Direkt per E-Mail</span>
<p class="body-text">
Öffnet Ihr E-Mail-Programm mit vorausgefülltem Betreff.
</p>
<div>
<a class="btn btn-nav-cta" href="mailto:info@markemacht.de?subject=Anfrage%20Marken-Klarheits-Audit">
E-Mail öffnen
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
</a>
</div>
</div>
<div data-audit-form-panel>
<form class="modal-form stack-16" data-audit-form novalidate>
<div class="form-field">
<label class="meta" for="audit-name">Name</label>
<input id="audit-name" name="name" type="text" autocomplete="name" required />
</div>
<div class="form-field">
<label class="meta" for="audit-email">E-Mail</label>
<input id="audit-email" name="email" type="email" autocomplete="email" required />
</div>
<div class="form-field">
<label class="meta" for="audit-message">Worum geht es?</label>
<textarea id="audit-message" name="message" rows="5" required></textarea>
</div>
<div class="form-honeypot" aria-hidden="true">
<label for="audit-company">Firma</label>
<input id="audit-company" name="company" type="text" tabindex="-1" autocomplete="off" />
<label for="audit-url">Website</label>
<input id="audit-url" name="url" type="url" tabindex="-1" autocomplete="off" />
</div>
<label class="form-check">
<input name="privacy" type="checkbox" required />
<span class="form-switch" aria-hidden="true"></span>
<span>Ich akzeptiere die <a href="./datenschutz.html">Datenschutzerklärung</a>.</span>
</label>
<p class="form-status body-text" data-audit-form-status aria-live="polite"></p>
<div>
<button class="btn btn-nav-cta" type="submit">
Absenden
<svg class="icon" aria-hidden="true"><use href="./assets/icons.svg#arrow-forward"></use></svg>
</button>
</div>
</form>
</div>
<div class="form-success" data-audit-form-success hidden>
<div class="form-success-icon" aria-hidden="true">
<svg class="icon icon--lg" aria-hidden="true"><use href="./assets/icons.svg#check-circle"></use></svg>
</div>
<div class="stack-16">
<h3 class="sub-headline">Vielen Dank für Ihre Anfrage.</h3>
<p class="body-text">Wir werden uns in Kürze bei Ihnen melden.</p>
</div>
<button class="btn btn-ghost" type="button" data-audit-modal-close>
Schließen
</button>
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,81 @@
<meta property="og:locale" content="de_DE" />
<meta property="og:image" content="https://markemacht.de/assets/img/og-share.webp" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="MARKE MACHT — Denkraum für Unternehmer" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://markemacht.de/assets/img/og-share.webp" />
<meta name="theme-color" content="#0A0A0A" media="(prefers-color-scheme: dark)" />
<meta name="theme-color" content="#FBFAF2" media="(prefers-color-scheme: light)" />
<link rel="icon" type="image/svg+xml" href="./assets/favicon.svg" />
<link rel="preconnect" href="https://sys.adametz.media" crossorigin />
<script>
(function () {
'use strict';
if ('scrollRestoration' in history) history.scrollRestoration = 'manual';
if (!location.hash) window.scrollTo(0, 0);
var key = 'mm-wirkung';
var valid = ['monolith', 'editorial'];
var v = null;
try { v = localStorage.getItem(key); } catch (_) {}
if (valid.indexOf(v) === -1) v = 'monolith';
document.documentElement.setAttribute('data-theme', v);
var fontBase = './assets/fonts/';
var displayFont = v === 'editorial'
? fontBase + 'plus-jakarta-sans/plus-jakarta-sans-v12-latin-600.woff2'
: fontBase + 'outfit/outfit-v15-latin-700.woff2';
[fontBase + 'space-grotesk/space-grotesk-v22-latin-regular.woff2', displayFont].forEach(function (href) {
var link = document.createElement('link');
link.rel = 'preload';
link.as = 'font';
link.type = 'font/woff2';
link.crossOrigin = 'anonymous';
link.href = href;
document.head.appendChild(link);
});
['./assets/fonts/fonts-shared.css', './assets/fonts/fonts-' + v + '.css'].forEach(function (href) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = href;
document.head.appendChild(link);
});
var heroes = {
'index.html': { monolith: 'start-monolith.webp', editorial: 'start-editorial.webp' },
'manifest.html': { monolith: 'manifest-monolith.webp', editorial: 'manifest-editorial.webp' },
'methode.html': { monolith: 'methode-monolith.webp', editorial: 'methode-editorial.webp' },
'denken.html': { monolith: 'denken-monolith.webp', editorial: 'denken-editorial.webp' }
};
var page = location.pathname.split('/').pop() || 'index.html';
var pair = heroes[page];
if (pair) {
var img = pair[v] || pair.monolith;
var preload = document.createElement('link');
preload.rel = 'preload';
preload.as = 'image';
preload.href = './assets/img/' + img;
preload.type = 'image/webp';
if ('fetchPriority' in preload) preload.fetchPriority = 'high';
document.head.appendChild(preload);
}
})();
</script>
<link rel="stylesheet" href="./assets/css/app.css?v={{VERSION}}" />
<script defer src="https://sys.adametz.media/config.js" data-website-id="40125fcf-49c4-43f3-a9a5-9eec5eb55696"></script>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "MARKE MACHT",
"url": "https://markemacht.de/",
"description": "Denkraum für Unternehmer im Mittelstand. Marke ist die Fähigkeit eines Unternehmens, sich selbst eindeutig zu erklären.",
"inLanguage": "de-DE"
}
</script>

Some files were not shown because too many files have changed in this diff Show more