Hotlinked images from f12.rocks were blocked cross-origin; download
640px WebPs into the repo and reference them with relative paths.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace AI-generated hero with f12.rocks gallery images and shift copy
from blog/website to @f12.rocks as primary destination.
Co-authored-by: Cursor <cursoragent@cursor.com>
Android Chrome loses the user gesture when getUserMedia is awaited before
recognition.start(). Add an explicit permission banner/button and only
start speech recognition synchronously after mic access is granted.
Co-authored-by: Cursor <cursoragent@cursor.com>
Web-App-Manifest, Service Worker und Icons für Install-Prompt;
Permissions-Policy erlaubt Mikrofon (self); getUserMedia vor Speech API.
Co-authored-by: Cursor <cursoragent@cursor.com>