CSS link now includes ?v=timestamp to bust browser cache.
Map/charts use named functions instead of IIFEs (minifier safe).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
TOC links now gray (#4b5563) instead of accent color.
Map and charts use polling (100ms retry) to wait for libs
instead of window.load which fires too early.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extracted from agiliton.eu — indigo/purple gradient palette,
not green. Applied to all shortcodes, badges, links, accents.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Enforced=#84cc16, Passed=#65a30d, Progress=#a3e635, Guidelines=#d9f99d
Links and accents use lime-600 (#65a30d) from Agiliton brand palette.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Self-hosted maplibre-gl.js, vector tiles from maps.clicksports.de
style.json. No raster rendering needed — uses WebGL directly.
Same approach as held.de dealer map.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
TileServer GL renderer times out on raster requests.
Needs headless GL renderer fix — tracked separately.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Leaflet, TopJSON, Chart.js, Mermaid served from /js/
- Leaflet CSS from /css/leaflet.min.css
- World atlas GeoJSON from /data/countries-110m.json
- Zero external CDN requests (GDPR compliant)
- Map tiles from maps.clicksports.de (fixed missing Noto Sans font)
- Attribution: clicksports maps + OpenMapTiles + OpenStreetMap
- window.load for script initialization (load order fix)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
MapLibre inline style JSON was mangled by Hugo minifier.
Leaflet + OSM tiles is simpler and works reliably.
Updated map colors to Agiliton green palette.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
maps.clicksports.de vector tile style.json returns 503 on render.
Fall back to OSM raster tiles until tile server is fixed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace Leaflet+OSM with MapLibre GL JS consuming vector tiles
from maps.clicksports.de (TileServer GL). Choropleth overlay via
TopoJSON remains the same.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add centralized data/countries.json with all 17 countries (EN/DE/FR)
- Add Leaflet choropleth world map with TopoJSON boundaries
- Add stats banner shortcode (enforced/passed/progress/guidelines counts)
- Add Chart.js charts (status donut, age limits bar, legislation timeline)
- Add Mermaid timeline of legislation milestones 2020-2026
- Refactor child-safety-map table to use data file (DRY)
- Update all 3 language articles (EN/DE/FR)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replaces broken agiliton.eu/vpn links with tracked redirect via
go.agiliton.eu, which fires Rybbit analytics before forwarding
to the App Store.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- French Hugo config (languages.fr.toml)
- All 6 content pages translated: homepage, about, imprint, privacy,
global overview article, France social media ban article
- Child-safety-map shortcode updated with French table + legend
- Nginx redirect updated to include /fr/ path
- CI smoke tests now verify /fr/ endpoint
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- No more external CDN dependencies (jsdelivr)
- Fully bilingual EN/DE table with country flags
- Color-coded status badges
- Mobile-responsive
- Consistent with privacy policy (no external resources)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>