# Lizenzen

Alles, was aus fremder Hand in dieses Projekt eingeflossen ist: Icons,
Schriften und gebündelter Fremdcode. Jede Position mit Quelle, Lizenz und
Fundort im Repo.

**Grundsatz:** Nichts davon wird zur Laufzeit von einem fremden Server
geladen. Die Site holt alles von der eigenen Domain — `tools/test-home.mjs`
weist das über die Resource-Timing-API für jede Seite nach.

---

# Icons

Die Rang-Embleme in `shared/badges.mjs` stammen aus zwei freien Bibliotheken
und zu einem kleinen Teil aus eigener Hand. Die SVG-Pfaddaten liegen inline im
Modul — es wird kein npm-Paket und kein CDN zur Laufzeit geladen.

## game-icons.net — CC BY 3.0

<https://game-icons.net> · Lizenz: <https://creativecommons.org/licenses/by/3.0/>

Die Icons wurden eingefärbt (Gradient statt einfarbig) und der schwarze
Hintergrundpfad entfernt. Das sind Bearbeitungen im Sinne der Lizenz; die
Namensnennung erfolgt hier und im Footer der Website.

| Motiv | Ränge | Icon | Autor |
|---|---|---|---|
| `fish` | R1–R3 | `delapouite/double-fish` | Delapouite |
| `volcano` | R12–R13 | `lorc/eruption` | Lorc |
| `bubble` | R14–R15 | `lorc/bubbles` | Lorc |
| `fist` | R16–R17 | `lorc/fist` | Lorc |
| `banknote` | R20–R21 | `delapouite/banknote` | Delapouite |
| `lightning` | R22–R23 | `lorc/lightning-arc` | Lorc |
| `mask` | R24–R25 | `lorc/domino-mask` | Lorc |
| `target` | R26–R27 | `lorc/archery-target` | Lorc |
| `hammer` | R30–R31 | `lorc/claw-hammer` | Lorc |
| `wizardhat` | R34–R35 | `lorc/pointy-hat` | Lorc |
| `book` | R36 | `lorc/open-book` | Lorc |
| `crystalball` | R37 | `lorc/crystal-ball` | Lorc |
| `trophy` | R38 | `delapouite/laurels-trophy` | Delapouite |
| `diamond` | R39 | `lorc/cut-diamond` | Lorc |

## Tabler Icons — MIT

<https://tabler.io/icons> · Lizenz: <https://github.com/tabler/tabler-icons/blob/main/LICENSE>

Verwendet wird jeweils die **gefüllte** Variante (`icons/filled/`), damit der
Stil zu den Silhouetten von game-icons passt; die Outline-Varianten hätten in
der Galerie als Strichzeichnungen herausgestochen.

| Motiv | Ränge | Icon |
|---|---|---|
| `ticket` | R10–R11 | `ticket` |
| `crt` | R18–R19 | `device-tv-old` |

## Eigene Werke

Für diese vier Motive gibt es weder bei game-icons.net noch bei Tabler ein
passendes Icon (geprüft gegen den vollständigen Katalog: 2788 bzw. 5112
Einträge). Sie sind für dieses Projekt gezeichnet, im gleichen Stil wie die
Bibliotheks-Icons, und stehen unter derselben Lizenz wie das übrige Repo.

| Motiv | Ränge | Anmerkung |
|---|---|---|
| `snail` | R4–R6 | Keine Schnecke in beiden Bibliotheken; game-icons `delapouite/grasping-slug` war als Nacktschnecke unkenntlich. Haus als gestrichene Spirale. |
| `whale` | R7–R9 | Kein Wal in beiden Bibliotheken. Stumpfer Kopf, waagerechte Fluke und drei Fontänen-Strahlen trennen ihn bei 20px vom Fisch. |
| `vault` | R28–R29 | Kein Tresor/Safe in beiden Bibliotheken. Quadrat mit rundem Drehrad, zwei Formen. |
| `sharkfin` | R32–R33 | Kein Hai in beiden Bibliotheken. Rückenflosse über der Wasserlinie — die ikonischste und bei 20px lesbarste Hai-Darstellung. |
| `plusev` | R40 | Marken-Emblem des höchsten Rangs. Stern mit ausgespartem „+EV“-Monogramm. |

## Namensnennung auf der Website

Die Attributionszeile steht im Footer jeder Seite:

> Icons: game-icons.net (CC BY 3.0) · Tabler Icons (MIT)


---

# Schriften

## Space Grotesk — SIL Open Font License 1.1

<https://fonts.google.com/specimen/Space+Grotesk> ·
Entwurf: Florian Karsten ·
Lizenz: <https://openfontlicense.org/>

Verwendet als **Display-Schrift** für Überschriften und Claims auf der
Startseite. Fließtext bleibt beim System-Stack.

| Datei | Schnitt | Größe |
|---|---|---|
| `assets/fonts/space-grotesk-500.woff2` | Medium (500) | ~13 KB |
| `assets/fonts/space-grotesk-700.woff2` | Bold (700) | ~13 KB |

**Selbst gehostet, bewusst.** Es gibt keinen Request an
`fonts.googleapis.com` oder `fonts.gstatic.com` — ein solcher würde die
IP-Adresse jedes Besuchers an Google übertragen und wäre ohne Einwilligung
nicht DSGVO-konform. Die Dateien sind einmalig geladen, auf den
Latin-Zeichensatz beschränkt und liegen im Repo. `tools/test-home.mjs` prüft
mit einem Negativ-Test, dass kein externer Font-Request entsteht.

---

# Gebündelter Fremdcode (Vendor)

## @netlify/identity 1.2.0 — MIT

<https://github.com/netlify/netlify-identity> ·
Lizenz: MIT (siehe `node_modules/@netlify/identity/package.json`)

| Datei | Inhalt | Größe |
|---|---|---|
| `vendor/netlify-identity.mjs` | Login, Signup, Logout, Session, OAuth, Passwort-Recovery | ~18 KB |

Erzeugt von `tools/vendor-identity.mjs` (esbuild, ausschließlich zur
Build-Zeit — **keine** Laufzeit- oder package.json-Dependency). Das Ergebnis
ist committet und wird beim Deploy einfach ausgeliefert; das Skript läuft
nicht bei jedem Deploy.

**Warum gebündelt statt vom CDN.** Vorher luden vier Seiten das Modul von
`esm.sh`. Damit ging bei jedem Seitenaufruf die IP-Adresse jedes Besuchers an
einen Dritten — dieselbe Frage, wegen der auch die Schrift selbst gehostet
wird. Gemessen waren es bis zu neun Requests pro Aufruf (das Modul zieht
`gotrue-js` und mehrere Node-Shims nach).

Aktualisieren: `npm install && node tools/vendor-identity.mjs`, danach alle
Suiten. Ausführliche Anleitung: `docs/RUNBOOK.md`.
