Commit graph

173 Commits

Autor SHA1 Nachricht Datum
claude-dev
025ddfcebd SEO Stufe 1: Indexierung freischalten + Lagen-Meta
- noindex/nofollow von 12 indexierbaren Seiten entfernt (Hauptseiten DE/EN, 3 Lagen DE/EN, Legal DE/EN)
- robots.txt scharf geschaltet: Crawling allgemein erlaubt, Live-Search-AI-Bots (OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot) erlaubt, Training-Bots (GPTBot, CCBot, anthropic-ai, Google-Extended, Applebot-Extended, Bytespider, ...) geblockt
- sitemap.xml: Inhalt aus sitemap-launch.xml uebernommen, mit Sitemap-Verweis in robots.txt
- Lagen-Seiten (3 DE + 3 EN): description, canonical, Open Graph, Twitter Card und Schema.org Article ergaenzt
- Lagen-Hero: Topic-Default in <p id="incident-title"> als Crawler-Fallback (JS ueberschreibt mit Datum bei Lade)
- CLAUDE.md CHANGE_LOG ergaenzt
2026-05-10 15:01:25 +02:00
claude-dev
a6481a11c0 Doku: CLAUDE.md auf aktuellen Stand der Hauptseite gebracht
- /vorschau/ entfernt (alte Vorab-Produktseite, durch index.html mit Hero-Slider und Live-Demos ersetzt)
- STRUCTURE: aktive vs. legacy CSS/JS getrennt, videos/, downloads/, insights/, accountforger-video.html ergaenzt
- Lagen: cyberangriffe und deepfakes binden Lagebild-Assets aus iran-konflikt ein
- SERVICES: sync-lagebild und insights ergaenzt
- DEPLOYMENT: Cache-/Auth-Besonderheiten dokumentiert
2026-05-10 14:28:17 +02:00
5e93e5b9d1 i18n: Summary-Section auch unter englischem Header erkennen
Der Monitor uebersetzt im research-Lagebild-Markdown die
Section-Ueberschrift "## Zusammenfassung" zu "## SUMMARY".
extractZusammenfassung und stripZusammenfassung matchten bisher
nur das deutsche Wort, daher zeigte die EN-Variante der
Deepfakes-Recherche eine leere Zusammenfassung.

Beide Funktionen erkennen jetzt 'zusammenfassung' und 'summary'
case-insensitive.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 00:47:18 +02:00
49fc3a6f64 i18n: app.js erkennt Sprache und laedt EN-Datenfiles
Die Index-Hauptseite hat noch eine Reihe dynamisch gefuellter Texte
(Live-Stats-Bar-Titel, Map-Legende, Default-Kategorie-Labels) und
laedt summary.json fuer die Excerpts. Auf der EN-Variante hat das
bisher zu sichtbarem deutschen Text gefuehrt.

- SITE_LANG wird einmal aus <html lang> abgeleitet
- lageTitles existiert pro Sprache
- defaultLabels (primary/secondary/tertiary/mentioned) pro Sprache
- Legende -> Legend in der Map-Legende
- summary.json -> summary_en.json bei EN, mit Fallback auf summary.json
  wenn EN-Variante nicht existiert (Monitor erzeugt beide bereits)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:44:01 +02:00
2840f42059 Staging: Mountpoint-Platzhalter fuer Lagen-Daten
Die /lagen/*/data/-Verzeichnisse sind nicht versioniert (.gitignore),
werden aber im Staging-Container per bind-mount aus dem Live-Pfad
eingeblendet. Bei read_only:true im Container muss das Mountpoint-
Verzeichnis bereits existieren - daher .gitkeep als Platzhalter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:40:43 +02:00
f874d1dee0 i18n: Aufraeumen und Doku-Update (Phase 5)
- lagebild.js: tote initLangToggle() und switchContent() entfernt;
  initTranslations()-Aufruf aus init() raus (translations.js gibt es
  nicht mehr). Kein neues Verhalten, nur Aufraeumen.
- CLAUDE.md aktualisiert: en/situations/-Struktur, Slug-Mapping,
  Daten-Freigabe-Konzept, Kontaktformular i18n-Hinweis,
  CHANGE_LOG erweitert.

Backend (contact-form.py) wurde live ausgerollt und ist nicht im
Repo (liegt unter /opt/v2-Docker/aegis-website/), Backup unter
contact-form.py.bak.<timestamp>.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:30:24 +02:00
645fb33898 i18n: EN-Lagen-Seiten + zweisprachiges Kontaktformular (Phase 3+4)
Phase 3 - Englische Lagebild-Seiten:
- /en/situations/iran-conflict/, /en/situations/cyber-attacks/,
  /en/situations/deepfakes/ erstellt (Mirror der DE-Lagen mit
  englischer UI)
- lagebild.js: curLang() liest jetzt direkt <html lang>; neuer
  dataBase()-Helper, damit EN-Seiten die JSON-Daten aus dem
  DE-Pfad nachladen koennen (window.LAGEBILD_DATA_BASE pro Seite)
- 4 zuvor hardcodierte DE-Strings (emptyDevelopments, emptySummary,
  Quelle-Tooltip, Schliessen-Aria) ueber t() und das vorhandene
  lang.de/lang.en-Dictionary uebersetzt
- DE-Lagen-Seiten: hreflang-Tags wieder aktiv, Toggle zeigt nun
  korrekt auf das EN-Pendant statt /en/
- en/index.html Karussell-Buttons zeigen auf EN-Lagen
- Sitemap mit hreflang-Alternativen fuer alle Lagen ergaenzt

Phase 4 - Kontaktformular zweisprachig (Frontend):
- js/app.js submitContact() liest <html lang>, sendet lang im POST
  und zeigt Sende-/Fehler-Texte in der jeweiligen Sprache
- Backend (contact-form.py) wird separat ausgerollt, ist aber
  abwaertskompatibel: bei fehlendem lang-Param defaultet es auf de

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:28:05 +02:00
8c8130509a i18n: Aufraeumen alter Mehrsprachigkeits-Reste
- js/translations.js entfernt (war im aktuellen Site-Stand ungenutzt
  und passte nicht mehr zur neuen Struktur)
- impressum-en.html und datenschutz-en.html entfernt (durch
  /en/legal-notice.html und /en/privacy.html ersetzt)
- data-translate Attribute aus den drei Lagen-Seiten entfernt
- <script src="/js/translations.js"> aus den Lagen-Seiten entfernt
- CLAUDE.md auf neuen Stand gebracht (i18n-Ansatz dokumentiert,
  CHANGE_LOG erweitert)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 22:13:55 +02:00
3229c6b1ea i18n: Sprachumschalter DE/EN und englische Seiten unter /en/
- Neuer .lang-switcher Komponente in css/lang-switcher.css, Variante
  fuer dunkle Lagebild-Seiten enthalten
- Sprachumschalter im Header und Mobile-Menue aller DE-Seiten
  (index, impressum, datenschutz, lagen/*)
- Englische Seiten unter /en/index.html, /en/legal-notice.html und
  /en/privacy.html mit kompletter Uebersetzung; rechtliche Texte mit
  Hinweis "German version shall prevail"
- hreflang-Tags (de/en/x-default) auf Hauptseite und rechtlichen
  Seiten; Lagen-Seiten ohne hreflang bis EN-Versionen existieren
- og:locale + og:locale:alternate gesetzt, Schema.org bleibt
- Sitemap mit xhtml:link Alternates fuer beide Sprachen ergaenzt
- DE-Lagen-Toggle zeigt vorerst auf /en/ (EN-Lagen folgen Phase 3)
- Cookie-Banner liest <html lang> bereits selbststaendig, daher
  englisch auf EN-Seiten ohne weitere Aenderung

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 22:12:19 +02:00
Claude Code
3905e90467 CLAUDE.md: Auto-Deploy + Promote-UI dokumentiert (TODO -> abgeschlossen)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 21:15:34 +02:00
Claude Code
95ada4dd39 CLAUDE.md: Staging-Umgebung dokumentiert (URL, Workflow, Auth-Service)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 19:56:27 +02:00
Claude Code
0b979c7d85 Texte: Einsatzfall -> Anwendungsfall (CTA + Kontakt-Modal)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:59:43 +02:00
Claude Code
0e0744779c Datenschutz und Impressum auf neues Layout migriert
- Wechsel von altem Multi-File-CSS-Setup (main.css/fonts.css/mobile.css) auf
  das neue /css/style.css der Hauptseite. Bebas-Neue-Headlines und
  Glassmorphism-Karten ersetzt durch Inter + flaches Design mit Navy/Gold-Akzent.
- Header (Navbar + Mobile-Menu + Mobile-Overlay) und Footer aus index.html
  uebernommen; Anker-Links zeigen auf die Hauptseite (/#features etc.).
- Inhalt 1:1 erhalten; Klassen normalisiert auf .legal-section/.legal-content.
- Inline-Styles am Quellverweis durch .source-note-Klasse ersetzt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:54:57 +02:00
Claude Code
2abf6f798a Passwortschutz von der Hauptseite entfernen
Das clientseitige Login-Gate (#login-gate, SHA256-Cookie-Pruefung)
stammt aus der Vorschau-Phase. Nach Befoerderung der Vorschau zur
Live-Hauptseite ist es nicht mehr erforderlich; der gesamte Block
inkl. CSS, HTML und JS wurde entfernt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:47:41 +02:00
Claude Code
19620aaa4b Hauptwebseite durch Vorschau-Iteration ersetzt
- /vorschau/ existiert nicht mehr; deren Inhalte sind jetzt unter /
- index.html, css/style.css, js/app.js und videos/ stammen aus dem ehemaligen
  vorschau/-Verzeichnis und ersetzen die bisherige Hauptseite.
- Alte CSS/JS-Dateien (main.css, main.js etc.) bleiben erhalten - sie werden
  weiterhin von /lagen/, /datenschutz, /impressum genutzt.
- Vorheriger Stand archiviert unter AegisSight/Webseite_alt.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:24:07 +02:00
Claude Code
bea7c1eb7a Vorschau: Karussell-Excerpt vereinheitlicht + Hero-Slide-Uebergang glaetten
- demo-excerpt mit fester Hoehe (760px Desktop, 640px Mobile) und weicher
  Fade-out-Maske; vereinheitlicht die Kartenhoehe ueber alle Lagen ohne
  harte Abschneidung des Inhalts.
- heroGoTo() haelt die .ended-Klasse waehrend des Fade-outs aktiv und
  raeumt sie erst nach 400ms auf. Verhindert das Aufblitzen des
  pausierten Video-Frames beim Wechsel von der Endcard zur naechsten Slide.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 14:15:38 +02:00
Claude Code
2a9bbb312f Vorschau: Online-Schaltung vorbereitet (SEO, Cookie-Consent, Conversion-Tracking, LAUNCH-CHECKLIST)
Vorbereitungen fuer den Tag-X-Switch zur neuen Hauptseite. Schaltung selbst lauft ueber LAUNCH-CHECKLIST.md.

vorschau/index.html:
- Meta-Description, Canonical, Open Graph, Twitter Card, Schema.org Organization
- Cookie-Consent CSS+JS eingebunden (reused von alter Hauptseite, mit Umami-Anbindung)
- Footer um Cookie-Einstellungen-Link und dynamisches Jahr ergaenzt
- noindex/nofollow bleibt bis Tag X drin (Vorschau weiter passwortgeschuetzt)

vorschau/js/app.js:
- Conversion-Tracking: umami.track("contact_modal_open") und umami.track("contact_form_success")

assets/images/og-image.png (NEU):
- 1200x630 Open Graph Vorschaubild, Logo + Tagline auf Navy

datenschutz.html:
- Section 5 NEU: Kontaktformular und Anfragen (Daten, Speicherdauer, Rechtsgrundlage)
- Section 7 NEU: AegisSight Analytics (Umami) - cookielos, IP-anonymisiert, selbstgehostet
- Sections umnummeriert: Newsletter -> 6, Plugins -> 7, KI-Agenten -> 8

lagen/{iran-konflikt,cyberangriffe,deepfakes}/index.html:
- Cookie-Consent CSS+JS eingebunden
- Footer-Navigation auf neue Hauptseite-Anker umgestellt: /#features, /#demos, /#trust, /#contact
- Cookie-Einstellungen-Link im Footer
- Farbgebung der Lagen unveraendert (User-Wunsch)

NEUE inaktive Dateien fuer Tag X (per LAUNCH-CHECKLIST aktiviert):
- sitemap-launch.xml: Hauptseite + 3 Lagen + Impressum + Datenschutz
- robots-launch.txt: Crawler erlaubt, AI-Crawler/Spam-Bots/Archiv-Bots blockiert
- LAUNCH-CHECKLIST.md: vollstaendige Anleitung fuer den Schaltungs-Tag (Backup, Schritte, Smoke-Tests, Rollback)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 11:30:32 +02:00
Claude Code
5367b91945 Vorschau: Helligkeits-Tonleiter fuer helle Sections + Contact als heller Akzent
- Vier Tonstufen (--tone-1 bis --tone-4) fuer Problem, Workflow, Demos, Contact: Seite atmet beim Scrollen sanft von hell nach kuehler
- Contact in hellem Blau-Grau-Weiss (#ECF2F9) als frischer Akzent vor dem dunklen Trust
- Divider-Uebergaenge per Adjacent-Sibling an die neuen Tonstufen angepasst
- Trust und Contact in Page-Reihenfolge zurueckgetauscht: Contact vor Trust (Trust bleibt visueller Schluss-Anker), Navbar-Reihenfolge bleibt aber Funktionen-Live-Lagebilder-Ueber-uns-Kontakt
- Subpixel-Luecke unter dem Diagonal-Divider Contact->Trust mit margin-top:-1px geschlossen

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 10:02:18 +02:00
Claude Code
12dc13c089 Vorschau: Trust vor Contact + Navbar Versprechen->Über uns
- Trust-Section (Unser Versprechen) wandert vor die Contact-CTA, damit Vertrauen vor der Conversion-Aufforderung steht
- Divider angepasst: Demos -> Trust (diagonal-dark), Trust -> Contact (gradient-dark-to-base), Contact -> Footer (diagonal-dark mit Footer-Navy als Fill)
- Navbar-Label Versprechen -> Über uns (klarer fuer Erstbesucher) und neue Reihenfolge: Funktionen, Live-Lagebilder, Über uns, Kontakt (folgt der Scroll-Reihenfolge)
- Mobile-Menu identisch angepasst

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 09:31:11 +02:00
Claude Code
10e71eecbe Vorschau: Features-Section nach oben mit Gold-Glasmorphism, Problem-Section auf hellem Hintergrund
- Features (Was der Monitor leistet) wandert direkt unter Hero, bekommt section-dark
- Problem (Warum manuelle OSINT-Auswertung nicht skaliert) rutscht eine Position nach unten, bekommt section-base
- Feature-Cards im dunklen Kontext: Glasmorphism mit dezent transparentem Hintergrund, permanente Gold-Border, Gold-getoente Icon-Box, goldfarbene Icons (CSS-Filter), Hover mit kraeftigerer Gold-Border und Lift
- Neuer Divider divider-gradient-base-to-alt fuer den Uebergang Problem -> Workflow

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 09:23:06 +02:00
Claude Code
980dd3039e Lagebild: Zusammenfassung nicht mehr doppelt / nicht mehr im Recherche-Tab
- extractZusammenfassung: Header-Zeile aus Inhalt entfernen, damit sie nicht zusaetzlich zur Card-Headline erscheint
- renderSummary: stripZusammenfassung schneidet den Zusammenfassungs-Block raus, damit er exklusiv im Zusammenfassung-Tab gerendert wird

Betrifft research-Typ (Deepfakes). Adhoc-Lagen (Iran, Cyberangriffe) unberuehrt.
2026-04-24 23:42:21 +02:00
Claude Code
f1d17922ee Vorschau Hero: Dots weiter unten, eigener Raum unter dem Video
- Slider endet jetzt bei bottom:60px statt bottom:0 -> Video-Bereich
  beginnt unter der Navbar und endet oberhalb einer reservierten Zone
  fuer die Dots, damit sie keine Video-Schrift verdecken
- Dots auf bottom:22px (Desktop) / 18px (Mobile) statt 75/65px

Rollback-Punkt: fa17c1f
2026-04-21 01:52:03 +02:00
Claude Code
fa17c1fefb Vorschau Hero: Slider unter Navbar + Endcard 7s
- Slider-Container beginnt jetzt bei top:var(--nav-height) statt 0;
  das Video wurde zuvor oben durch die fixe Navbar ueberdeckt, obwohl
  object-fit:contain es komplett rendert
- HERO_ENDCARD_MS von 3000 auf 7000 (User-Feedback: zu kurz)

Rollback-Punkt: c85be47
2026-04-21 01:48:40 +02:00
Claude Code
c85be47307 Vorschau Hero: Video vollstaendig sichtbar + Endcard mit CTA am Ende
Umgebaut zu Video-getriebenem Slider mit Endcard-Phase:
- Video object-fit: contain (komplett sichtbar, Navy-Letterbox-Raender)
- Waehrend Video-Laufzeit: keine Overlays (Video spricht fuer sich)
- ended-Event triggert .ended/.endcard-Klassen -> 3s Endcard
- Endcard zeigt Titel + Tagline (zentriert) + Beispieltext + CTA
- Slide 2 ohne CTA: Endcard zeigt nur Titel + Tagline
- loop-Attribut aus allen 5 Videos entfernt (sonst feuert ended nicht)
- Festes 15s-Autoplay entfernt; Slide-Wechsel ist video-getrieben
- Fallback-Timer 25s falls ended-Event nicht kommt (Ladefehler etc.)
- Manuelle Navigation (Dots/Pfeile/Swipe) cleant alle Timer sofort
- Tab-Wechsel pausiert/resumt korrekt im jeweiligen Zustand

Rollback-Punkt: c693114
2026-04-21 01:28:42 +02:00
Claude Code
c6931142e7 Vorschau Hero: Video in voller Hero-Breite mit Overlay-Text
Hero-Slider umgebaut auf Vollbreiten-Video:
- Video fuellt gesamte Hero-Section (object-fit:cover, inset:0)
- Titel + Tagline als Overlay oben (ueber Gradient)
- Slide-Bottom (Beispieltext+CTA) als Overlay unten
- Pfeile auf Hero-Mitte seitlich, Dots zentriert unten
- Gradient-Overlay pro Slide (dunkel oben/unten, Safe-Zone Mitte)
- Mobile-Anpassungen (Pfeile ausgeblendet, kleinere Fonts)
- Tote Klassen entfernt (hero-claim, hero-cta, hero-slide-inner etc.)

Rollback-Punkt: a38a6e1
2026-04-21 01:11:22 +02:00
Claude Code
a38a6e1930 Latest-Developments: Pipe-Parser fuer Name|URL-Bullet-Format
Analog Monitor-Aenderung: Pills parsen {Name|URL, Name|URL} direkt und
nutzen die URL aus dem Bullet, statt ueber sources_json-Namen nachzuschlagen.
Damit verweist jeder Pill-Klick eindeutig auf den belegenden Post — keine
Name-Kollisionen mehr (insbesondere bei Telegram-Kanaelen mit mehreren
gleichnamigen sources_json-Eintraegen).

Legacy-Kompat: Items ohne Pipe gehen weiter per lookupByName durch.
2026-04-19 01:19:07 +02:00
Claude Code
f4334863a0 Source-Pill: Clip entfernt, langer Kanal-Pfad vollstaendig sichtbar
Analog Monitor: max-width/ellipsis raus, white-space: normal + overflow-wrap.
2026-04-19 00:57:57 +02:00
Claude Code
a65ad6085e Telegram-Pill: Kanal-Pfad statt generisches Label
Analog Monitor-Aenderung: (t.me/iranmilitarymag) statt (Telegram-Link).
2026-04-19 00:53:12 +02:00
Claude Code
0f2e4083df Quellen-Pills: (Telegram-Link) Suffix bei t.me-URLs
Quellen mit nichtlateinischem Namen wie Telegram: persisch-arabisch waren
schwer zuordenbar. Pill-Label bekommt jetzt bei allen Quellen mit URL auf
t.me einen Zusatz Telegram-Link in Klammern. Konsistent an drei Stellen:
Lagebild-Seite renderLatestDevelopmentsHtml und Vorschau renderLatestDevelopments.
2026-04-19 00:34:46 +02:00
Claude Code
c3bae27837 Lagebild-Seite: Tab Neueste Entwicklungen / Zusammenfassung
Live-Lagen (iran-konflikt, cyberangriffe) bekommen einen neuen ersten Tab
Neueste Entwicklungen mit Bullet-Cards, klickbaren Quellen-Pills und
Zeitstempel. Recherche-Lagen (deepfakes) bekommen an selber Stelle einen
Tab Zusammenfassung, der den Zusammenfassung-Abschnitt aus dem Markdown
extrahiert und mit Citation-Links rendert.

lagebild.js: renderUeberblick, renderLatestDevelopmentsHtml,
extractZusammenfassung ergaenzt. i18n-Keys tabUeberblick/Research.
Lang-Toggle aktualisiert Tab-Label und h2.

Vorschau-Karten zeigen wieder den Lagebild-Text fuer alle Lagen
(renderLatestDevelopments-Calls aus loadLiveData entfernt).
2026-04-19 00:19:14 +02:00
Claude Code
8b8072efe7 feat: Slide 3 KI-Recherche-Video v2 + Cache-Bust 2026-04-14 02:59:46 +02:00
Claude Code
c5415f7a6b feat: Slide 2 Faktencheck-Video v3 + Cache-Bust 2026-04-14 02:38:27 +02:00
Claude Code
51d1c0d905 feat: Slide 5 Flexibel-Video v2 + Cache-Bust 2026-04-14 02:31:54 +02:00
Claude Code
2b76e5f3bb feat: Slide 5 (Flexibel einsetzbar) mit Video statt Text 2026-04-14 02:27:10 +02:00
Claude Code
05e5179235 feat: Slide 4 (Globale Abdeckung) mit Video statt Text 2026-04-14 00:58:07 +02:00
Claude Code
442b794421 feat: Slide 3 (KI-Recherche) mit Video statt Text 2026-04-13 23:35:26 +02:00
Claude Code
b613cb47bc feat: Slide 2 Faktencheck-Video v2 + Cache-Bust 2026-04-13 21:04:58 +02:00
Claude Code
87d90f07d1 fix: Problem-Karte 1 - Widerspruch Tausende/Hunderte behoben
Überschrift von "Tausende Quellen" auf "Quellenvielfalt" geändert
und den Beschreibungstext entsprechend angepasst. Behebt den internen
Widerspruch (Überschrift sagte Tausende, Text sagte Hunderte) und
entfernt die Wort-Redundanz von "Quellen".

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 20:59:44 +02:00
Claude Code
c245f03203 feat: Slide 2 (Faktencheck) mit Video statt Text
Video ersetzt Description-Text + leere media-col. Premiere-Export
wurde mit ffmpeg reencodet (CRF 23, preset slower, no audio, faststart),
von 17,2 MB auf 1,6 MB (-91%) bei gleicher Auflösung 1920x1080 @ 25fps
und ohne sichtbaren Qualitätsverlust.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 20:55:44 +02:00
Claude Code
7dd6cb991d refactor: Hero-Slider auf opacity-Stacking, Video pro Slide
- visibility:hidden aus Slide-States entfernt (brach Video-Playback)
- #hero-video-container + Sonderfall-Logik für Slide 0 entfernt
- Video in Slide 0 inline verschoben, generische Restart-Logik
- Videos starten bei jedem Slide-Wechsel bei 0:00 (bewusste
  Verhaltensänderung gegenüber 9df30bc)
- Autoplay-Intervall auf 15s vereinheitlicht (kein Video/Text-Sonderfall)
- Hover-Pause des Sliders entfernt (stoppte Autoplay unerwartet)
- Neue Videos in weiteren Slides erfordern jetzt nur HTML-Block + src

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 19:34:52 +02:00
Claude Code
80ce22b692 fix: Video-Wiedergabe bei Rückkehr zu Slide 0 sicherstellen
Browser pausiert Videos bei opacity:0, autoplay greift nicht erneut.
Explizit play() bei Slide 0, pause() bei anderen Slides.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 16:12:55 +02:00
Claude Code
d6191584d3 fix: min-height:280px vom hero-slider entfernt
Slide 0 hat weniger Inhalt seit Video ausgelagert wurde,
die fixe min-height erzeugte unnötigen Leerraum vor den Dots.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 16:09:44 +02:00
Claude Code
9df30bcd96 fix: Video läuft durchgehend, kein Neustart bei Slide-Wechsel
Video aus dem Slide-Div herausgelöst und als eigenständiges Element
zwischen hero-brand und hero-slider platziert. Dadurch wird es nie
via visibility:hidden versteckt und der Browser resettet es nicht.
Ein-/Ausblenden per opacity + max-height Transition.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 16:07:49 +02:00
Claude Code
964b8d47f2 update: Hero-Video Slide 1 neu gerendert
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 16:04:00 +02:00
Claude Code
0fc0d30191 refactor: Hero Slide 0 mit Inline-Video statt Fullscreen-Hintergrund
Video wird jetzt als Inline-Element unter der Tagline angezeigt
(volle Breite, object-fit contain, nichts abgeschnitten).
Label und Headline entfernt (redundant mit Tagline).
Beispiel-Text und CTA-Button unterhalb des Videos.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:57:41 +02:00
Claude Code
fbadb45914 fix: z-index Reihenfolge für Hero-Video korrigiert
Overlay z-index 1, Video z-index 2, Content z-index 3.
Video war vorher hinter dem fast undurchsichtigen Overlay versteckt.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:53:25 +02:00
Claude Code
fb7e52a3bc fix: Slider-Intervall 15s für Video-Slide, 8s für andere
Slide 0 bleibt jetzt so lange sichtbar wie das Video dauert (15s).
Alle anderen Slides wechseln weiterhin nach 8s. Umstellung von
setInterval auf verkettete setTimeout für dynamisches Timing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:50:09 +02:00
Claude Code
f039357a7f fix: Hero-Video als Vollbild über gesamte Hero-Section
Video füllt jetzt die komplette Hero-Section (88vh) statt nur den
700px-breiten Slide-Container. Ein-/Ausblenden per CSS-Transition
(0.8s) gekoppelt an den aktiven Slide (nur bei Slide 0 sichtbar).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:49:02 +02:00
Claude Code
8d01c49707 feat: Video-Hintergrund für Hero Slide 1 (Echtzeit-Monitoring)
- Komprimiertes Video (2.1 MB, 1920x1080, 15s loop) als Hintergrund
- Beschreibungstext entfernt (wird durch Video repräsentiert)
- Label, Headline, Beispiel-Zitat und CTA bleiben sichtbar
- Text-Shadows für Lesbarkeit über Video

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:46:53 +02:00
Claude Code
5f6cd77a47 fix: duplizierten Hero-Slider CSS-Block in Vorschau entfernt
Identischer CSS-Block war doppelt vorhanden (Zeilen 77-105 und 108-136),
was bei späteren Änderungen zu Wartungsproblemen geführt hätte.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 15:41:29 +02:00