CSS touch-action: pan-y und JS-Listener-Scope (wrapper statt hero,
ohne preventDefault) jetzt explizit per @media / matchMedia auf
max-width: 768px begrenzt. Über 768px bleibt das ursprüngliche
Verhalten erhalten — touchmove auf .hero mit preventDefault, falls
Touch-Hardware im Desktop-Layout im Spiel ist.
Touchmove-Listener von .hero auf .text3d-wrapper verschoben, sodass nur
Touches direkt auf der animierten Text-Komponente die Animation triggern.
preventDefault() entfernt + touch-action: pan-y auf den Wrapper —
vertical scroll funktioniert jetzt sowohl außerhalb als auch innerhalb
des Animations-Bereichs ungestört. Desktop-mousemove unverändert.
Strukturelle Folge aus Marken-Klärung (msbls = Marke unter flexsiebels-Umbrella,
Rechtsträger ist flexsiebels):
- shared/impressum.js: default owner ist jetzt flexsiebels; owners.msbls als
Legacy-Alias auf owners.flexsiebels (backward-compat). Header-Doku aktualisiert.
- heygoldi.de: Script-Tag auf data-owner="flexsiebels" data-variant="full".
- 9 Satire-Sites: Impressum-Script raus, statischer "Ein Projekt von msbls.de"-
Link im Footer (color:inherit, dezent).
Sites: patentonkel, paragraphenraiter, killuminati, kilitaer, killions,
killusion, killegal, killionaer, kilibri.
Build: ./build.sh -> 59 sites OK. Andere Overlay-Sites (ichbinotto, lexsiebels,
mai-otto, smartin3, martinsiebels, zensiebels) unverändert.
Closes via done-label: m/onepager#5
- Trigger: <a>-Link mit identischer CSS-Hülle wie die inline-minimal-
Variante (text-align:center; font-size:0.75rem; opacity:0.6;
padding:12px 0; margin-top:4px). Kein Footer-Layout-Shift mehr,
Höhe und Breite identisch zu vorher.
- Karte: nutzt --bg-card / --text / --accent / --border / --radius /
--font-primary vom Host (shared/css/variables.css) — Dark-Fallbacks
neutral. Auf hellen Themes greifen die CSS-Vars, auf Sites ohne
Variablen bleibt es dezent dunkel.
- max-width: min(420px, calc(100vw - 32px)) + box-sizing:border-box
+ overflow-wrap:break-word — Karte kann Viewport nie sprengen,
auch nicht bei langen unbreakable strings.
- Body-scroll-lock während Overlay offen ist; vorheriger overflow-
Wert wird beim Schließen restauriert.
Project-scope `mai` server collided with the user-scope maimcp
orchestration binary registered in ~/.claude.json — silently rebinding
mcp__mai__* from list_tasks/update_task/send_message to Supabase SQL
tools. Renaming to `supabase` keeps the namespaces disjoint.
Refs: m/mAi#154
- shared/impressum.js: Name korrigiert (msbls/flexsiebels = Matthias Siebels, nicht Martin),
echte Adresse aus youpc.org übernommen (c/o Online-Impressum.de #5892, Sankt Augustin).
Neuer Owner 'flexsiebels', neuer Owner 'martinsiebels' (für Martin als separate Person
mit eigener Adresse in Osnabrück). data-variant als offizielles Attribut, data-style
weiterhin als Legacy-Alias. Rendert in #impressum falls vorhanden, sonst footer.
- paragraphenraiter.de: hardcoded "Ein Projekt von Matthias Flexsiebels" → shared (msbls minimal)
- patentonkel.de: hardcoded "Matthias Flexsiebels" + kaputter window.__impressum() → shared (msbls minimal)
- smartin3.de: inline Impressum-Text → shared (martinsiebels full) in #impressum Div
- ichbinotto.de: shared (flexsiebels full) mit echter § 5 TMG-Angabe
Caddyfile: Regenerierung hat fehlende Einträge für 6034.de, traihard.de, zensiebels.de ergänzt.
Refs: #3