{
 "schema": "fundus-rezept/1",
 "stand": "02.11.2026",
 "basis": {
  "stand": "02.11.2026 (Runde 5: Redaktion nach KI-Audit und Lückenrecherche)",
  "muster": [
   "vt-cross-document-mpa",
   "css-view-reveal-nativ",
   "unterstreichung-varianten",
   "button-zustaende",
   "validierung-nach-interaktion",
   "consent-banner-gestaltet",
   "fokus-stil-system",
   "sprunglinks-landmarken",
   "bewegung-pausieren-schalter",
   "fehlerseite-leerzustand",
   "dialog-modal-nativ",
   "zoom-und-textabstand-robust",
   "kontrastmodus-forced-colors",
   "firmendaten-strukturiert",
   "sofort-navigation-vorladen",
   "danke-seite-naechste-schritte",
   "rechtstext-layout",
   "favicon-teilbild-system",
   "druckansicht-print"
  ],
  "beschreibung": "Grundausstattung, die jedes Rezept ohne Nennung bekommt: native Seitenübergänge zwischen echten Seiten (vt-cross-document-mpa) und Vorladen der Hauptwege (sofort-navigation-vorladen), beides nicht bei Onepagern; native Scroll-Reveals nur wo sinnvoll, Link-Unterstreichung, vollständige Button-Zustände, Validierung erst nach Interaktion, ein gestaltetes Consent-Banner, Fehlerseite und Leerzustand, natives Dialog-Modal und eine einzige Datenquelle für Firmendaten, aus der Kontaktblock, Öffnungszeiten und JSON-LD entstehen (firmendaten-strukturiert). Dazu die Barrierefreiheit der Kategorie zugang: sichtbarer Fokus, Sprunglinks und Landmarken, Pause für Bewegung, 200 % Zoom und Textabstände ohne Abschneiden (zoom-und-textabstand-robust), Kontrastmodus (kontrastmodus-forced-colors). In Sektionen dürfen Basis-Muster genannt werden, wenn sie dort besonders wichtig sind (z. B. Formular-Validierung); in den Kategorie-Listen der Rezepte stehen sie nicht. Seit 04.11.2026 gehören auch eine Danke-Seite mit nächsten Schritten nach jedem Formular (danke-seite-naechste-schritte) und lesbare Rechtsseiten im Look der Website (rechtstext-layout) dazu. Seit 05.11.2026 gehören dazu ein vollständiger Symbolsatz aus der Marke (favicon-teilbild-system, Variante satz) und ein Druckstil für die Rechtsseiten (druckansicht-print, Variante rechtstext).",
  "regeln": [
   "Keine Schrift kommt in mehr als 3 Rezepten vor (headline, text und akzent zusammen gezählt, alternative_eigenprojekt ausgenommen).",
   "Ein Rezept darf Headline- und Textschrift nicht 1:1 mit einem anderen Rezept teilen.",
   "Pflichtfeld signatur: 1–2 Muster, die kein anderes Rezept nutzt (Basis ausgenommen); jedes Signatur-Muster steht auch in den Muster-Listen des Rezepts.",
   "cinematic-video-hero nur mit eigenem, hochwertigem Footage. Für typische KMU-Kunden (Gastro, Mode/Concept Store) ist ein Foto-Hero Standard, Video steht unter hero_variante.",
   "Kontakt/Anfrage, Online-Termin und Anfahrt sind eigene Sektionen (kontakt-anfrage-formular bzw. mehrschritt-anfrage, termin-buchung-zwei-klick, karte-zwei-klick, oeffnungszeiten-status), auch wenn ein Rezept sie nicht nennt; die Adresse steht immer auch als Text da; studio-visitenkarte-footer steht nur im Footer.",
   "Drittanbieter-Inhalte (Video, Karte, Buchung, Social Feeds) erst nach Einwilligung bzw. Klick laden.",
   "Höchstens ein Material-Effekt (Glow, Verlaufsrahmen, Raster, Textur) pro Ansicht.",
   "Automatisch bewegte Inhalte (Laufband, Wortwechsel, Autoplay) nie für wichtige Information; immer pausierbar und unter prefers-reduced-motion statisch.",
   "Barrierefreiheit gehört zur Grundausstattung (BFSG seit 28.06.2025): sichtbarer Fokus (fokus-stil-system), Sprunglinks und Landmarken, Pause für alles, was sich länger als 5 s bewegt (bewegung-pausieren-schalter), native Dialoge, 200 % Zoom und 320 px Breite ohne Abschneiden (zoom-und-textabstand-robust), Kontrastmodus prüfen (kontrastmodus-forced-colors). Rechtliches (Erklärung zur Barrierefreiheit) vom Kunden prüfen lassen.",
   "Firmendaten (Name, Adresse, Telefon, Zeiten samt Sonderzeiten, Leistungen, Profil-Links) aus einer Quelle; JSON-LD nur für sichtbare Inhalte, keine eigenen Bewertungssterne im Markup (firmendaten-strukturiert).",
   "Wer online Verträge mit Verbrauchern schließt (Shop, Kurs, Abo, Mitgliedschaft, Online-Anmeldung), braucht im Footer ohne Login „Vertrag widerrufen“ und bei Dauerverträgen „Verträge hier kündigen“ (widerruf-und-kuendigung-schaltflaeche, seit 19.06.2026) – vom Kunden prüfen lassen.",
   "Bewertungen von Google oder anderen Plattformen nur mit Echtheitshinweis direkt an den gezeigten Bewertungen (bewertungsprofil-mit-echtheitshinweis); bewertungen-verteilung nur für eigene, geprüfte Bewertungen.",
   "Pflichtangaben (Impressum, Datenschutzerklärung, Branchenpflichten aus Leitfaden 8a und den Rezept-regeln) als Seiten, Links oder markierte Platzhalter; keine Rechtstexte erfinden, alles vom Kunden prüfen lassen. Chatbots und KI-Funktionen direkt beim Start kennzeichnen (Art. 50 KI-VO), keine pauschalen Umweltaussagen ohne Nachweis.",
   "consent-banner-gestaltet nur, wenn beim Laden einwilligungspflichtige Dienste laufen. Laden alle Dritten erst per 2-Klick, genügt ein Einstellungs-Dialog im Footer („Datenschutz-Einstellungen“) zum Widerrufen.",
   "Starter- und Beispielseiten ohne echte Daten: Bewertungen, Preise, Allergene und Kennzahlen als markierte Platzhalter, nie erfundene Kundenstimmen als echt.",
   "Werbung mit Rate, Zins, „0 %“, Ratenzahlung, Leasing oder „später bezahlen“ braucht ab 20.11.2026 finanzierung-pflichtangaben: effektiver Jahreszins mindestens so groß wie die Rate, Warnhinweis „Achtung! Kreditaufnahme kostet Geld.“ direkt dabei (vom Kunden prüfen lassen).",
   "Verkauf von Waren an Verbraucher braucht seit 27.09.2026 den EU-Hinweis zur gesetzlichen Gewährleistung (eu-gewaehrleistungshinweis), mindestens als Footer-Link, sicherer an Produktseite und Checkout; nur die amtliche Vorlage der EU-Kommission.",
   "Lange deutsche Wörter trennen: hyphens: auto mit lang=\"de\" für Fließtext und schmale Spalten, in Headlines weiche Trennstellen (&shy;) an den Wortfugen, nie bei Marken, Telefonnummern, Preisen und Codes (silbentrennung-komposita).",
   "Zahlen, Daten und Telefonnummern deutsch und einheitlich setzen: geschütztes Leerzeichen vor € und %, Bis-Strich ohne Leerzeichen für Spannen (9–13 Uhr), Telefon gegliedert und als tel:-Link mit +49, eine Satzregel je Seite (zahlen-datum-telefon-satz).",
   "Impressum, Datenschutz, AGB und Erklärung zur Barrierefreiheit als lesbare Seiten im Look der Website (rechtstext-layout): Impressum als kurzes Blatt ohne Inhaltsverzeichnis (Variante impressum), lange Texte mit Inhaltsverzeichnis, Ankern und Stand-Datum (Variante datenschutz); Sprünge aus dem Inhaltsverzeichnis landen sichtbar unter dem Kopf (anker-landung-markieren, Variante inhalt). Dazu ein Druckstil für dieselben Seiten (druckansicht-print, Variante rechtstext): A4 mit Kopf, Fuß, Stand und Seitenzahl, Linkadressen am Ende. Die Texte liefert der Kunde, vom Kunden prüfen lassen.",
   "Jedes Formular, das eine Anfrage, Buchung, Anmeldung oder Bewerbung abschickt, endet auf einer Danke-Seite mit den nächsten Schritten (danke-seite-naechste-schritte): Variante termin nach Buchungen, anfrage nach Angebots- und Kontaktanfragen, bestaetigen bei Newsletter und Erinnerungen mit Double-Opt-in; keine Werbung davor, keine Zeitzusage, die der Betrieb nicht hält.",
   "Formularfelder bekommen passende autocomplete-Werte, inputmode, sichtbare Beschriftung und Fehlertexte, die sagen, was zu tun ist (formular-eingabehilfen-autofill, Spickzettel in der Variante uebersicht).",
   "Jede Seite bekommt aus der Marke einen vollständigen Symbolsatz (favicon-teilbild-system, Variante satz): favicon.ico, icon.svg mit Dunkelmodus, apple-touch-icon, 192 und 512 px, maskierbares Icon und Manifest. Seiten, die geteilt werden (Veranstaltung, Artikel, Stelle, Objekt), bekommen zusätzlich ein Teilbild 1200 × 630 aus Rubrik und Titel (Variante teilbild), wo das Rezept es nennt.",
   "Jede Startseite hat einen Moment, an den man sich erinnert (rezept.moment: was, wo, gewicht, muster, variante): groß bzw. interaktiv, im ersten oder zweiten Bildschirm, abgeleitet aus Signatur und Branche. Auch ruhige Rezepte: dort langsam und groß, nie unsichtbar (Jury-Lehre 05.11.2026).",
   "Display-Schriften mit Haarlinien (Didone wie Bodoni Moda und Imbue, Display-Schnitte wie Libre Caslon Display, Fraunces und Newsreader mit hoher opsz und wght unter 400) zerfallen auf dem Bildschirm unter etwa 40 px. Display-Werte nur für die H1 ab etwa 2.75rem; H2 mit opsz an die Größe gekoppelt oder fest 24 bis 36 und höherem Gewicht (ab wght 500), H3 und kleiner in der Textschrift.",
   "Bilder: wenige, aber groß. Lieber ein Bild randlos oder über 7 bis 12 Spalten als drei mittelgroße; mittelgroße Fotos und dünne Strichzeichnungen wirken wie Vorlage. Zeichnungen kräftig und groß als eigene Bildwelt (Strich ab 2,5 px, Flächen in den Rezeptfarben), nie als dünne Icons (bildsprache.gewicht)."
  ],
  "herkunft": "Art-Director-Prüfung der 18 Rezepte, Runde 3 (Basis-Block, Signatur-Pflichtfeld, Schriftverteilung, 2-Klick-Muster). Runde 5 (02.11.2026): zugang-Muster, Firmendaten und Vorladen in die Grundausstattung, Regeln zu Kontakt, Verträgen, Bewertungen und Pflichtangaben (KI-Audit Befund 3, Lückenrecherche N1–N3, N6, K5). Runde 4 (04.11.2026): danke-seite-naechste-schritte und rechtstext-layout in die Grundausstattung, Grundregeln zu Silbentrennung, Zahlensatz, Rechtsseiten, Danke-Seite und Eingabehilfen. Runde 3 (05.11.2026): favicon-teilbild-system (satz) und druckansicht-print (rechtstext) in die Grundausstattung. Runde 3b (05.11.2026, Jury-Lehren): Feld moment je Rezept, Seitenwechsel mindestens 350–400 ms sichtbar, minimales Intro ruhiger Rezepte, Haarlinien-Regel, Bilder wenige und groß. Runde 3b (05.11.2026, Jury-Lehren): Feld moment je Rezept, Seitenwechsel mindestens 350–400 ms sichtbar, minimales Intro ruhiger Rezepte, Haarlinien-Regel, Bilder wenige und groß.",
  "bewegung_basis": {
   "stand": "05.11.2026",
   "zweck": "Bewegungs-Partitur: legt je Rezept fest, was sich beim Laden, Scrollen, Zeigen und beim Seitenwechsel bewegt, in welcher Reihenfolge, wie lange und mit welcher Kurve. Die gemeinsamen Regeln stehen hier einmal; rezepte[].bewegung nennt nur, was abweicht oder konkret ist. Die älteren Felder easing, dauer_ms, regel und beobachtet bleiben gültig und gehen vor, wo sie strenger sind.",
   "felder": {
    "kurve": "haupt = die eine Hauptkurve (--ease in tokens.css, aus dem Animationsstil); ein/aus = Eintritt und Austritt (--ease-ein, --ease-aus); ui = Öffnen/Schließen für Menüs, Formulare, Dialoge (--ui-ease-ein/--ui-ease-aus), wo das Rezept einen UI-Stil hat; gilt_fuer sagt, wofür die Hauptkurve gilt; ausnahme nennt die eine erlaubte Sonderkurve, falls das Rezept eine nennt.",
    "dauern": "In ms. klein = Hover, Farbe, Druck, Fokus; mittel = UI öffnen (Menü, Akkordeon, Reiter, Dialog); gross = Auftritt von Hero, Bild-Reveal, Signatur; seitenwechsel = Standard-Seitenwechsel gesamt; schliessen = mittel beim Schließen (mittel × aus_faktor, immer kürzer). tokens nennt die Variable aus tokens.css mit genau diesem Wert, sonst „eigener Wert“.",
    "laden": "Startseite beim ersten Aufruf im Tab: schritte in Reihenfolge, je teil, ab_ms (Liste = Zeilen der H1), dauer_ms (0 = steht), art. ende_ms = letzte Bewegung steht (ohne einmaliges Zurückskalieren des Hero-Bilds). wiederholt = jeder weitere Aufruf und Seiten ohne Intro.",
    "scroll": "reveals: höchstens drei Arten je Seite (art, muster, wo, dauer_ms, versatz_ms, weg, ausloeser). fortschritt: höchstens eine Fortschrittsanzeige, zählt nicht als Reveal. nie: zusätzlich zu basis.scroll.nie.",
    "hover": "Ein Satz für Link, Knopf, Karte und Bild mit derselben Kurve und denselben Dauern (ein_ms, aus_ms).",
    "signatur": "Die eine Signatur-Bewegung je Ansicht: muster, variante, bewegung, ausloeser, wiederholung.",
    "seitenwechsel": "muster (Kategorie seitenuebergaenge) mit variante bzw. spielart, zusatz (weitere Muster), richtung (Typen), geteilt (view-transition-name), dauer_ms; onepager = was ohne Seitenwechsel gilt.",
    "budget": "Rezept-eigene Grenzen zusätzlich zu basis.budget.",
    "reduziert": "Was bei prefers-reduced-motion und beim Schalter „Bewegung reduzieren“ bleibt.",
    "verboten": "Was für diese Branche zu viel wäre, zusätzlich zu basis.verboten und nicht_verwenden.",
    "partitur_herkunft": "Woher die Werte stammen: Starter-Seite, Demo (meta.json bau.werte), Rezept-Felder oder eigene Festlegung."
   },
   "kurve": [
    "Eine Hauptkurve und eine Dauer-Skala je Seite (Leitfaden B2). Eine zweite Kurve nur als Paar für das Schließen (B5) und, wo das Rezept einen UI-Stil hat, das UI-Paar.",
    "Kurven aus Demos werden auf die Tokens der Seite umgestellt; die Werte in meta.json sind Vorführwerte ihrer Welt.",
    "Scrollgekoppelte Bewegung läuft linear (der Scroll ist die Zeit), sie braucht keine eigene Kurve.",
    "Kein ease und kein ease-in-out mit 0,3 s für sichtbare Bewegung (B1)."
   ],
   "dauern": {
    "klein_ms": "80 bis 250",
    "mittel_ms": "200 bis 525",
    "gross_ms": "400 bis 1600",
    "seitenwechsel_ms": "400 bis 1500; sichtbare Veränderung mindestens 350 bis 400",
    "aus_faktor": "0,6 bis 0,75 laut Stil; Schließen nie langsamer als Öffnen",
    "rueckmeldung_max_ms": 500,
    "regeln": [
     "Rückmeldung auf eine Eingabe (Hover, Druck, Umschalten) nie über 500 ms (Leitfaden 6).",
     "Schließen = Öffnen × aus_faktor mit der Austrittskurve (B5).",
     "Opazität und Farbe laufen linear oder mit der Hauptkurve, nie mit Überschwingen.",
     "Alle Dauern als Variablen aus tokens.css, keine Zahl im CSS der Seite."
    ]
   },
   "laden": {
    "bedienbar_ab_ms": 0,
    "erster_einsatz_max_ms": 120,
    "letzter_einsatz_max_ms": 700,
    "ende_max_ms": {
     "kurze_stile": 1200,
     "lange_stile": 1800,
     "bild_ausklang": 2200
    },
    "kurze_stile": [
     "token-tech-praezise",
     "token-swiss-knackig",
     "token-toggle-asymmetrisch",
     "token-studio-signatur",
     "token-federnd-verspielt",
     "token-brutal-hart"
    ],
    "lange_stile": [
     "token-editorial-langsam",
     "token-luxus-weich",
     "token-kinetisch-inout"
    ],
    "regeln": [
     "Kopf, Navigation, Telefon und Haupthandlung stehen ab dem ersten Bild und sind bedienbar: keine Einblendung des Kopfs, kein pointer-events: none, kein inert, kein Deckel über Links.",
     "Reihenfolge: Kopf (steht) → H1 Zeile für Zeile → Hero-Bild → Satz und Handlung → alles Weitere erst beim Scrollen.",
     "Erster Einsatz spätestens 120 ms, letzter Einsatz spätestens 700 ms. ende_ms höchstens 1.200 ms bei kurzen Stilen und 1.800 ms bei langen Stilen; ein einmaliges Zurückskalieren des Hero-Bilds (nur scale) darf bis 2.200 ms ausklingen, weil nichts darauf wartet.",
     "Das LCP-Bild ist ab dem ersten Bild gemalt (fetchpriority high, nicht lazy) und wird nie über Deckkraft eingeblendet. Masken (clip-path) öffnen ein schon geladenes Bild; kein Preloader, kein Zähler (B7).",
     "Voll nur beim ersten Aufruf im Tab (sessionStorage), danach kurz: nur die H1-Zeilen mit halbem Versatz. Kommt man per Seitenwechsel, übernimmt der Seitenwechsel, kein zweites Intro. Vorgerenderte Seiten starten erst bei pagereveal.",
     "Klick, Taste, Rad oder Wischen beendet einen laufenden Auftritt sofort im Endzustand.",
     "Unterseiten: nur die H1 des Seitenkopfs (wie wiederholt) und das Kopfbild, wenn kein geteiltes Element es bringt.",
     "Ruhige Rezepte ohne Intro (Apotheke, Pflege, Bestattung, Tierarzt, IT, Hausverwaltung): die Seite ist ab 0 ms bedienbar und steht; nur der Moment des Rezepts (rezept.moment) läuft einmal je Sitzung, langsam und weich, innerhalb von ende_max_ms. Danach steht alles."
    ]
   },
   "scroll": {
    "reveal_arten_max": 3,
    "regeln": [
     "Reveals nur in benannten Sektionen: Hero, Bilder, Kapitelanfänge, die Signatur (B3). Eine Reveal-Art ist eine Art des Erscheinens (Bild-Maske, Zeilen-Maske, Deckkraft mit Weg); dieselbe Art an mehreren Stellen zählt einmal.",
     "Bilder per clip-path statt Opacity-Fade (B4). Text höchstens 8 px Weg plus Deckkraft oder Zeilen aus Masken.",
     "Einmalig ausgelöst: einmal je Seitenaufruf, nie beim Zurückscrollen erneut. Scrollgekoppelt: hinter @supports (animation-timeline: view()), ohne Unterstützung steht der Endzustand.",
     "Versatz für Geschwister höchstens fünfmal (min(sibling-index() - 1, 5) × Versatz).",
     "Fortschrittsanzeigen (Linie wächst, Lesefortschritt, Kapitelspur) zählen nicht als Reveal; höchstens eine je Seite.",
     "Spätestens bei 85 % Viewporthöhe ist alles ganz aufgedeckt, nichts Lesbares bleibt halb verdeckt stehen."
    ],
    "nie": [
     "Fließtext",
     "Formulare und Felder",
     "Preise, Tarife, Kosten",
     "Öffnungszeiten, Telefon, Adresse",
     "Tabellen und Datenblätter",
     "Rechtstexte und Pflichtangaben",
     "Kopf und Navigation",
     "Fehlermeldungen, Hinweise, Notdienst"
    ]
   },
   "hover": {
    "regeln": [
     "Nur mit Zeiger: @media (hover: hover) and (pointer: fine). :focus-visible zeigt dasselbe ohne Verzögerung.",
     "Ein Satz: Link, Knopf, Karte und Bild nutzen dieselbe Kurve und dieselben zwei Dauern (ein_ms, aus_ms); nur Farbe darf kürzer sein (dauern.klein).",
     "Verlassen schneller als Hineingehen, mit der Austrittskurve.",
     "Effekte erst bei Interaktion, nie im Ruhezustand (C9): kein Puls, kein Glanz, kein Lichtlauf.",
     "Bilder in Karten höchstens scale 1.06 bis 1.12 im stehenden Rahmen (bild-zoom-in-maske); die Karte selbst skaliert nie.",
     "Ein langsamer Bild-Zoom im stehenden Rahmen darf als Ausklang länger laufen (bis 1.200 ms, bei langen Stilen bis 2.200 ms), wenn ein schnelles Zeichen derselben Karte (Pfeil, Linie, Farbe) innerhalb von ein_ms antwortet.",
     "Touch: kein Inhalt nur bei Hover; :active zeigt den Druck (scale .97 bis .98 oder höchstens 4 px Weg)."
    ]
   },
   "signatur": {
    "regeln": [
     "Höchstens eine Signatur-Bewegung je Ansicht. Liegen zwei Signatur-Stellen zugleich im Bild, bewegt sich nur die erste.",
     "Läuft sie von selbst, dann einmal je Seitenaufruf und höchstens 5 s; länger nur mit Pause-Knopf (bewegung-pausieren-schalter).",
     "Auf Hover, Klick oder Ziehen beliebig oft, aber nie als Schleife ohne Eingabe.",
     "Steht die Signatur selbst still (Typo, Raster, Form), ist sie keine Bewegung; dann trägt die unter signatur.bewegung genannte Stelle den einen bewegten Moment."
    ]
   },
   "seitenwechsel": {
    "regeln": [
     "Nur bei mehreren Seiten: vt-cross-document-mpa mit @view-transition { navigation: auto } als <style> direkt im Kopf, Typen aus pageswap/pagereveal im blockierenden Kopfskript.",
     "Kopf (view-transition-name: kopf) und die mobile Leiste bleiben stehen; geteilte Elemente nur während des Wechsels benennen.",
     "Nie zwei Textebenen übereinander: Die neue Seite deckt, oder die alte ist weg, bevor neuer Text erscheint.",
     "Gesamtdauer höchstens 1.500 ms; die neue Seite ist bedienbar, sobald sie da ist. Abgebrochene Übergänge abfangen (ready/finished mit catch, skipTransition bei schnellem Klicken).",
     "Zurück (Browser-Zurück oder eine Ebene höher) läuft gespiegelt.",
     "Ohne Unterstützung normale Navigation, nichts fehlt. Vorladen nach sofort-navigation-vorladen.",
     "Mindestens 350–400 ms sichtbare Veränderung mit gemeinsamem Element und Richtung; ruhig heißt weich, nicht kurz. Kopf und Leiste, die nur stehen bleiben, zählen nicht als gemeinsames Element. Ruhige Rezepte nehmen eine weiche Kurve ohne Überschwingen (in-out, z. B. --ease-seite), nie eine Feder. Steile Out-Kurven sind nach einem Fünftel der Zeit fast fertig: die Dauer so wählen, dass mindestens drei Einzelbilder im Abstand von 100 ms sichtbare Bewegung zeigen. Partituren unter 400 ms gibt es nicht mehr (Jury-Lehre 05.11.2026)."
    ],
    "onepager": "Kein Seitenwechsel. Sprunglinks scrollen mit scroll-behavior: smooth nur bei prefers-reduced-motion: no-preference, keine Smooth-Scroll-Bibliothek."
   },
   "budget": [
    "Eine Signatur-Bewegung je Ansicht.",
    "Höchstens drei Reveal-Arten je Seite, nur in benannten Sektionen.",
    "Höchstens eine Fortschrittsanzeige je Seite.",
    "Kein Parallax auf Text. Parallax auf Bildern höchstens 10 % Weg.",
    "Keine Bewegung über 5 s ohne Pause-Knopf, nichts in Schleife ohne Eingabe.",
    "Höchstens zwei Dinge bewegen sich zugleich im Blickfeld (die Zeilen einer Überschrift zählen als eins).",
    "Rückmeldung auf Eingaben nie über 500 ms.",
    "Überschwingen nur auf kleinen Elementen (B6).",
    "Großflächige Hell-Dunkel-Wechsel höchstens dreimal pro Sekunde (WCAG 2.3.1)."
   ],
   "reduziert": {
    "max_ms": 150,
    "regeln": [
     "Es bleiben nur Überblendungen bis 150 ms (opacity, linear) und Farbwechsel ohne Weg.",
     "Reveals entfallen: Masken stehen offen, Bilder sind ganz da, Zeilen stehen.",
     "Seitenwechsel nur als Überblendung von root (alt 100 ms, neu 150 ms), keine geteilten Elemente, kein Farbpanel.",
     "Scrollgekoppelte Strecken ohne Pin im Endzustand; Autoplay aus, Laufendes pausiert.",
     "Zustände (offen, gewählt, Fehler, gesendet) bleiben sichtbar, nur ohne Weg.",
     "Gilt für prefers-reduced-motion: reduce und den Schalter „Bewegung reduzieren“ im Fuß (bewegung-pausieren-schalter, gespeichert)."
    ]
   },
   "verboten": [
    "ease 0.3s für sichtbare Bewegung (B1)",
    "Fade-up für alles (B3)",
    "Preloader und Prozent-Zähler (B7)",
    "Smooth-Scroll-Bibliothek, wenn das Rezept sie nicht nennt (B8)",
    "eigener Cursor als Standard (B9)",
    "Puls, Glanz oder Lichtlauf im Ruhezustand",
    "Bewegung, die Klicks blockiert oder auf sich warten lässt"
   ],
   "belege": [
    "lab/fundus/messungen.json (31.10.2026): Eine Kurve dominiert je Seite, z. B. landonorris.com cubic-bezier(0.65, 0.05, 0, 1) 118-mal bei 0,75 s, obys.agency cubic-bezier(0.16, 1, 0.3, 1) 80-mal, vercel.com cubic-bezier(0.4, 0, 0.2, 1) 139-mal bei 0,1 bis 0,15 s.",
    "Leitfaden Abschnitt 5 (B1 bis B9) und Abschnitt 6 (Dauer-Faustregeln).",
    "Recherche Runde 4 (04.11.2026), One-Shot-Generator, P3 Bewegungs-Partitur.",
    "Starter-Seiten lab/fundus/starter/<id>/ (style.css, tokens.css, LIESMICH.md) als gelungenste Umsetzungen."
   ],
   "herkunft": "Regeln aus Leitfaden und Recherche P3. Die Grenzwerte (erster und letzter Einsatz, ende_max_ms, zwei gleichzeitige Bewegungen, 10 % Parallax, 85 % Aufdeckung) sind eigene Festlegung, abgeleitet aus den zehn Starter-Seiten (04.11.2026)."
  },
  "varianten": {
   "favicon-teilbild-system": "satz",
   "druckansicht-print": "rechtstext"
  }
 },
 "id": "hundeschule-tierbetreuung",
 "name": "Hundeschule und Tierbetreuung: draußen, klar, freundlich",
 "branche": "Hundeschule / Hundetrainer:in / Hundetagesstätte / Hundepension / Gassi-Service / Hundesalon (Tierbetreuung mit Erlaubnis nach § 11 TierSchG)",
 "stimmung": [
  "draußen",
  "klar",
  "freundlich",
  "tatkräftig"
 ],
 "stimmung_tags": [
  "warm",
  "verspielt"
 ],
 "kurz": "Hundehalter:innen wollen wissen: Welcher Kurs passt zu meinem Hund, wann ist der nächste Termin, gibt es noch Plätze, wie arbeitet ihr? Deshalb stehen Kurse mit freien Plätzen gleich nach dem Hero, die Haltung zur Methode ist ehrlich und konkret (belohnungsbasiert, ohne Stachel-, Würge- oder Elektrohalsband), Trainer:innen mit Qualifikation und Erlaubnis, Preise als Kurs- und Mehrfachkarten, dazu Tagesstätte und Pension mit Probetag. Anybody mit breiter Achse für Überschriften, Zalando Sans für Text. Kies, Taubenblau und Dämmerblau, Apportiergelb nur für „Anmelden“. Signatur: mit Hundeaugen. Hunde sehen vor allem Blau und Gelb; Kursbilder und Trainer:innen stehen in diesem Duoton und bekommen beim Zeigen (auf dem Telefon in der Bildmitte) ihre volle Farbe zurück (graustufen-zu-farbe). Die Palette folgt derselben Idee: kein Grün, kein Rot.",
 "referenzen": [
  {
   "seite": "Easy Dogs – Woran erkenne ich eine gut geführte Welpenstunde?",
   "url": "https://www.easy-dogs.net/gute-welpenstunde",
   "art": "website",
   "herkunft": "beobachtet",
   "abgerufen": "2026-11-05",
   "quelle": "https://www.easy-dogs.net/gute-welpenstunde",
   "beobachtung": "Live geprüft 05.11.2026 (WebFetch, nur Text; CSS und Kurven nicht gemessen): Blogbeitrag eines Hundeschul-Netzwerks (veröffentlicht 2018, aktualisiert Juni 2024): kleine Gruppen, passende Spielpartner, kurze Spielphasen im Wechsel mit Training, Lernklima für Mensch und Hund, Ablehnung von Leinenruck, Stachel- und Elektrohalsband als kontraproduktiv und tierschutzrelevant; rät, vorab mehrere Gruppen ohne Welpen zu besuchen und nach der Prüfung nach § 11 TierSchG zu fragen. Kopf mit Standorte, Shop, Blog, Termine. Vorbild für den Abschnitt Haltung und Methoden und die Welpengruppe."
  },
  {
   "seite": "Berliner Kurier – So finden Sie eine gute Betreuungs-Einrichtung",
   "url": "https://www.berliner-kurier.de/article/so-finden-sie-eine-gute-betreuungs-einrichtung-wenn-herrchen-verreisen-muss-1470037",
   "art": "website",
   "herkunft": "beobachtet",
   "abgerufen": "2026-11-05",
   "quelle": "https://www.berliner-kurier.de/article/so-finden-sie-eine-gute-betreuungs-einrichtung-wenn-herrchen-verreisen-muss-1470037",
   "beobachtung": "Live geprüft 05.11.2026 (WebFetch, nur Text; CSS und Kurven nicht gemessen): Ratgeber (22.07.2010) zu Hundepension und Gassi-Service: Einrichtung vorab ohne Hund besichtigen, Hund muss ins Rudel passen, persönliche Betreuung statt Box, regelmäßiger Auslauf, bisheriges Futter; beim Gassi-Service höchstens acht Hunde je Person, Qualifikation erfragen, Haftpflicht, offizielle Anmeldung. Alt, aber als Fragenliste der Halter:innen brauchbar; die Pensionsseite beantwortet diese Fragen von sich aus."
  }
 ],
 "schrift": {
  "paarung_basis": "",
  "headline": "anybody",
  "text": "zalando-sans",
  "akzent": "",
  "groessen": "h1 Anybody clamp(2.5rem, 1.2rem + 5.4vw, 5.5rem), wdth 125, wght 800, Laufweite -0.02em, Zeilenhöhe 0.95; Kapitel-H2 clamp(1.75rem, 1.2rem + 2.2vw, 3rem), wdth 115, wght 750. H3, Kursnamen und Gebrauchsüberschriften Zalando Sans 650, 1.25rem. Fließtext Zalando Sans 1.0625rem (17 px), wght 400, Zeilenhöhe 1.58, höchstens 64ch. Termine, Plätze und Preise Zalando Sans 500 mit Tabellenziffern. Knöpfe Zalando Sans 650, 1rem.",
  "techniken": [
   "fluide-typo-clamp-cqi",
   "tabellenziffern",
   "silbentrennung-komposita"
  ],
  "alternative_eigenprojekt": "",
  "abweichung": "Eigene Festlegung. anybody steht damit in drei Rezepten (fitness mit Funnel Sans, freizeit mit TikTok Sans), zalando-sans in drei (mode, versicherung). Breite statt Fett: die Achse wdth trägt die Kraft, nicht ein Black-Schnitt."
 },
 "farbe": {
  "prinzip": "Mit Hundeaugen: nur Blau, Gelb und Neutraltöne, so wie Hunde Farben sehen. Kies als Grund, Taubenblau als Fläche für Kurse, Termine und Preise, Dämmerblau für Kapitel und Fuß. Apportiergelb nur für „Anmelden“, immer mit dunkler Schrift und Rand in Textfarbe. Kein Grün, kein Rot, keine Pfoten-Ornamente.",
  "beispiel": [
   "#F3F1EC Grund Kies",
   "#1B1F2A Text (14,6 : 1 auf Grund)",
   "#DCE3F0 Fläche Taubenblau: Kurse, Termine, Preise (Text 12,8 : 1)",
   "#1F2F5C Dunkel Dämmerblau: Kapitel, Footer (Weiß darauf 13,0 : 1, Apportiergelb darauf 7,7 : 1)",
   "#F2C230 Signal Apportiergelb: Anmelden (Text darauf 9,8 : 1; auf Kies nur 1,5 : 1, deshalb Knopf mit 2 px Rand in Textfarbe)",
   "#585E6B Leise: Termine, Stand-Daten (5,8 : 1 auf Grund, 5,1 : 1 auf Taubenblau)"
  ]
 },
 "animationsstil": "token-federnd-verspielt",
 "animationsstil_ui": "token-toggle-asymmetrisch",
 "animationsstil_hinweis": "Federn nur als Belohnung auf kleinen Elementen: Anmelde-Knopf beim Druck, Häkchen „Platz reserviert“, Platz-Zähler. Fotos, Flächen, Reiter und Formulare laufen über das UI-Paar ohne Überschwingen; der Duoton-Wechsel läuft mit --ease-flaeche.",
 "bewegung": {
  "easing": "cubic-bezier(0.34, 1.56, 0.64, 1) (token-federnd-verspielt, nur kleine Elemente); UI über animationsstil_ui",
  "beobachtet": "nicht gemessen: Referenzen nur inhaltlich per WebFetch geprüft",
  "dauer_ms": "150 (Hover, Farbe), 400 (Knopf und Häkchen federn), 300 (Reiter, Akkordeon, Dialog öffnen), 200 (schließen), 500 (Duoton wird Farbe), 800 (Seitenwechsel als Kreis vom Bild, zurück 540)",
  "regel": "Termine, Plätze und Preise stehen sofort. Federn nur auf Knopf, Häkchen und Platz-Zähler, nie auf Fotos, Flächen oder Deckkraft. Kursbilder und Trainer:innen stehen im Blau-Gelb-Duoton und bekommen beim Zeigen in 500 ms ihre Farbe; auf Touch, wenn das Bild die Mitte des Bildschirms erreicht, einmal. Seitenwechsel: ein Kreis öffnet sich am angeklickten Bild. Bei prefers-reduced-motion stehen alle Bilder in Farbe, Seitenwechsel als Überblendung.",
  "herkunft": "Kurve aus token-federnd-verspielt, UI-Paar token-toggle-asymmetrisch; Duoton nach graustufen-zu-farbe (Demo: Duoton-Ebene 500 ms); Seitenwechsel nach seitenwechsel-wachsende-form (Variante klickpunkt, 800/540 ms).",
  "kurve": {
   "haupt": "cubic-bezier(0.34, 1.56, 0.64, 1)",
   "token": "--ease",
   "ein": "cubic-bezier(0.34, 1.56, 0.64, 1)",
   "aus": "cubic-bezier(0.36, 0, 0.66, -0.56)",
   "stil": "token-federnd-verspielt",
   "gilt_fuer": "nur kleine Elemente (Anmelde-Knopf, Häkchen, Platz-Zähler); Fotos, Duoton, Reiter, Formulare und Seitenwechsel ohne Überschwingen",
   "ui": {
    "ein": "cubic-bezier(0.16, 1, 0.3, 1)",
    "aus": "cubic-bezier(0.7, 0, 0.84, 0)",
    "stil": "token-toggle-asymmetrisch",
    "token": "--ui-ease-ein / --ui-ease-aus"
   },
   "quelle": "bewegung.easing und tokens.css (token-federnd-verspielt, UI token-toggle-asymmetrisch)",
   "ausnahme": {
    "kurve": "cubic-bezier(0.76, 0, 0.24, 1)",
    "token": "--ease-kreis",
    "fuer": "nur den Kreis beim Seitenwechsel (seitenwechsel-wachsende-form, klickpunkt); alle anderen Flächen nehmen --ease-flaeche"
   }
  },
  "dauern": {
   "klein": 150,
   "mittel": 300,
   "gross": 500,
   "seitenwechsel": 800,
   "schliessen": 200,
   "aus_faktor": 0.67,
   "tokens": {
    "klein": "--dauer-rezept-1",
    "mittel": "--dauer-rezept-3",
    "gross": "--dauer-rezept-5",
    "seitenwechsel": "--dauer-rezept-6",
    "schliessen": "--dauer-rezept-2"
   },
   "hinweis": "Rezept: 150 Hover, 400 Knopf und Häkchen federn, 300 Reiter und Akkordeon, 200 schließen, 500 Duoton wird Farbe, 800 Seitenwechsel (zurück 540)."
  },
  "laden": {
   "schritte": [
    {
     "teil": "Kopf mit Anmelden und Telefon",
     "ab_ms": 0,
     "dauer_ms": 0,
     "art": "steht"
    },
    {
     "teil": "Hero-Foto (in Farbe)",
     "ab_ms": 0,
     "dauer_ms": 0,
     "art": "steht (LCP)"
    },
    {
     "teil": "H1 (zwei Zeilen)",
     "ab_ms": [
      0,
      80
     ],
     "dauer_ms": 500,
     "art": "Breitenachse wdth 100 → 125 und Zeilenmaske, --ui-ease-ein; Breite erst, wenn die Schrift geladen ist"
    },
    {
     "teil": "Nächste Kurse mit freien Plätzen",
     "ab_ms": 0,
     "dauer_ms": 0,
     "art": "steht"
    }
   ],
   "ende_ms": 580,
   "wiederholt": "H1 steht in voller Breite (sessionStorage)."
  },
  "scroll": {
   "reveals": [
    {
     "art": "Duoton wird Farbe (nur Touch)",
     "muster": "graustufen-zu-farbe",
     "wo": "Kurskarten, Trainer:innen, Haltung",
     "dauer_ms": 500,
     "versatz_ms": 0,
     "weg": "Duoton-Ebene Deckkraft 1 → 0, einmal je Bild",
     "ausloeser": "Bild erreicht die Mitte des Bildschirms (IntersectionObserver, rootMargin -45 %), nur bei hover: none"
    }
   ],
   "fortschritt": "keine",
   "nie": [
    "Termine und freie Plätze",
    "Preise",
    "Impf- und Haftpflichthinweise"
   ]
  },
  "hover": {
   "link": "Unterstreichung wächst von links (unterstreichung-varianten durchlauf)",
   "knopf": "button-zustaende: Gelb mit Rand, beim Druck federt der Knopf 400 ms mit --ease; pfeil-icon-button seitenwechsel: Kreis wandert zur anderen Seite",
   "karte": "karte-ganzflaechig-klickbar raster: Duoton wird Farbe, Pfeil 4 px",
   "bild": "Duoton wird Farbe (graustufen-zu-farbe), kein Zoom",
   "ein_ms": 300,
   "aus_ms": 200,
   "kurve": "--ui-ease-ein / --ui-ease-aus"
  },
  "signatur": {
   "muster": "graustufen-zu-farbe",
   "variante": null,
   "bewegung": "Mit Hundeaugen: Kurs- und Trainerbilder stehen im Blau-Gelb-Duoton (SVG-Filter, Verlauf Dämmerblau → Apportiergelb). Beim Zeigen oder Fokus wird das Bild in 500 ms farbig; auf Touch einmal, wenn es die Bildschirmmitte erreicht. Eine kleine Zeile unter dem ersten Bild erklärt es: „So ungefähr sieht Ihr Hund die Welt.“",
   "ausloeser": "Zeiger oder Fokus; auf Touch Bildschirmmitte",
   "dauer_ms": 500,
   "wiederholung": "je Zeigen; auf Touch einmal je Bild"
  },
  "seitenwechsel": {
   "muster": "seitenwechsel-wachsende-form",
   "variante": "klickpunkt",
   "zusatz": [],
   "richtung": "vorwaerts: der Kreis öffnet sich am angeklickten Kursbild bis zur fernsten Ecke, die alte Seite tritt auf Deckkraft 0,5 zurück; zurueck: der Kreis schließt sich in dieses Bild; Tastatur: Kreis aus der Mitte des Links",
   "geteilt": [
    "kopf",
    "kursbild (Klickpunkt → Kopfbild der Kursseite)"
   ],
   "dauer_ms": 800,
   "zurueck_ms": 540,
   "kurve": "cubic-bezier(0.76, 0, 0.24, 1) (--ease-kreis)"
  },
  "budget": [
   "Federn nie auf Fotos, Flächen oder Deckkraft (Rezept).",
   "Höchstens ein farbig werdendes Bild zugleich; die Nachbarn bleiben im Duoton.",
   "Der Kreis ist eine Fläche: ohne Überschwingen, nie --ease."
  ],
  "reduziert": "Alle Bilder in Farbe ohne Duoton-Wechsel; H1 in voller Breite; Knopf ohne Federn; Seitenwechsel als Überblendung 150 ms ohne Kreis.",
  "verboten": [
   "Pfotenspuren, die über die Seite laufen",
   "wedelnde oder springende Hunde-Animationen",
   "Knochen-Cursor, Konfetti"
  ],
  "partitur_herkunft": "Kein Starter. Werte aus bewegung.dauer_ms, regel und animationsstil_hinweis; Duoton nach graustufen-zu-farbe (500 ms), Kreis nach seitenwechsel-wachsende-form (klickpunkt: 800/540 ms, cubic-bezier(0.76, 0, 0.24, 1)). Begrenzungen eigene Festlegung.",
  "partitur_stand": "05.11.2026"
 },
 "hero_beschreibung": "Foto-Hero randlos (foto-hero, Variante randlos-unten-links): ein echtes Foto vom Trainingsgelände, Hund und Mensch in Bewegung, Blick auf Augenhöhe des Hundes, in Farbe. Unten links H1 in Anybody breit, ein Satz zur Haltung, „Anmelden“ (Apportiergelb) und Telefon. Direkt darunter die nächsten Kurse mit freien Plätzen. Kein Stockfoto mit Welpe im Körbchen.",
 "muster": {
  "seitenuebergang": [
   "seitenwechsel-wachsende-form"
  ],
  "preloader": [],
  "navigation": [
   "native-popover-dropdowns",
   "mobile-bottom-navigation"
  ],
  "hero": [
   "foto-hero"
  ],
  "hero_variante": [],
  "sektionen": [
   {
    "zweck": "Kurse und nächste Termine (Welpen, Junghunde, Alltag, Mantrailing, Agility, Einzeltraining; Filter nach Alter und Thema; freie Plätze und Warteliste nur aus echter Quelle)",
    "muster": [
     "wochen-kursplan",
     "graustufen-zu-farbe",
     "karte-ganzflaechig-klickbar"
    ],
    "varianten": {
     "wochen-kursplan": "studio",
     "graustufen-zu-farbe": "hundeblick"
    }
   },
   {
    "zweck": "Kurs-Detailseite (je Kurs eine Seite: Alter, Voraussetzungen, Termine, Treffpunkt, Gruppengröße, Preis, Mitbringen, Anmeldung; Vergangenes mit Hinweis statt Fehlerseite)",
    "muster": [
     "veranstaltung-detailseite"
    ],
    "varianten": {
     "veranstaltung-detailseite": "ticket"
    }
   },
   {
    "zweck": "Haltung und Methoden (belohnungsbasiert, ohne Stachel-, Würge- oder Elektrohalsband; was wir nicht machen und wohin man sonst geht; Erlaubnis nach § 11 TierSchG und Qualifikation)",
    "muster": [
     "split-screen-sticky-seiten"
    ],
    "varianten": {
     "split-screen-sticky-seiten": "bild"
    }
   },
   {
    "zweck": "Welpengruppe: so läuft es (Alter, Impfungen, Gruppengröße, Spiel und Training im Wechsel; vier Schritte vom Kennenlernen bis zur Gruppe)",
    "muster": [
     "prozess-timeline-wachsende-linie"
    ],
    "varianten": {
     "prozess-timeline-wachsende-linie": "unterstrich"
    }
   },
   {
    "zweck": "Preise und Karten (Kurs, Einzelstunde, Mehrfachkarte, Hausbesuch mit Anfahrt; Endpreise inkl. MwSt.)",
    "muster": [
     "preisseite-geruest"
    ],
    "varianten": {
     "preisseite-geruest": "kurskarte"
    }
   },
   {
    "zweck": "Tagesstätte und Pension (Probetag, Impfpass, Haftpflicht, Gruppengröße, Ruhezeiten, Bring- und Abholzeiten; freie Plätze im Monat nur aus echter Quelle)",
    "muster": [
     "termin-verfuegbarkeit-anfrage",
     "oeffnungszeiten-status"
    ],
    "varianten": {
     "termin-verfuegbarkeit-anfrage": "kalender",
     "oeffnungszeiten-status": "kompakt"
    }
   },
   {
    "zweck": "Trainer:innen (Foto im Duoton, Schwerpunkte, Qualifikation, eigener Hund nur, wenn gewünscht)",
    "muster": [
     "team-ueber-mich-layout"
    ],
    "varianten": {
     "team-ueber-mich-layout": "raster"
    }
   },
   {
    "zweck": "Person-Detailseite (je Trainer:in eine Seite: Spezialgebiete, Kurse, Ausbildung mit Nachweis, Preis ab, du-Ton erlaubt)",
    "muster": [
     "person-detailseite"
    ],
    "varianten": {
     "person-detailseite": "stylistin"
    }
   },
   {
    "zweck": "Stimmen (über Training, Umgang und Fortschritt, nie über Heilung von Verhaltensproblemen; Google-Bewertungen nur mit Echtheitshinweis)",
    "muster": [
     "testimonials-neu-gedacht",
     "bewertungsprofil-mit-echtheitshinweis"
    ],
    "varianten": {
     "testimonials-neu-gedacht": "wand",
     "bewertungsprofil-mit-echtheitshinweis": "band"
    }
   },
   {
    "zweck": "Anmeldung (Hund: Name, Alter, Rasse freiwillig → Kurs oder Probetag → Kontakt; Fehlerliste; Bestätigung mit Treffpunkt und Mitbringliste)",
    "muster": [
     "mehrschritt-anfrage",
     "formular-fehlerzusammenfassung",
     "danke-seite-naechste-schritte"
    ],
    "varianten": {
     "mehrschritt-anfrage": "leiste",
     "formular-fehlerzusammenfassung": "liste",
     "danke-seite-naechste-schritte": "termin"
    }
   },
   {
    "zweck": "Trainingsgelände und Anfahrt (Treffpunkt, Parken, eingezäunte Fläche, Wasser, Unterstand als Skizze; Adresse als Text)",
    "muster": [
     "karte-zwei-klick"
    ],
    "varianten": {
     "karte-zwei-klick": "skizze"
    }
   },
   {
    "zweck": "Vertrag widerrufen, kündigen und Barrierefreiheit (bei Online-Kursbuchung und Monatsverträgen der Tagesstätte; Footer und mobiles Menü, ohne Login)",
    "muster": [
     "widerruf-und-kuendigung-schaltflaeche",
     "barrierefreiheit-seite"
    ],
    "varianten": {
     "widerruf-und-kuendigung-schaltflaeche": "richtig",
     "barrierefreiheit-seite": "bfsg"
    }
   }
  ],
  "scroll": [],
  "schrift_animation": [],
  "hover": [
   "graustufen-zu-farbe",
   "karte-ganzflaechig-klickbar"
  ],
  "cursor": [],
  "mikro": [
   "druck-feedback",
   "checkbox-radio-animiert",
   "icon-squash-stretch",
   "bewegung-als-css-funktion"
  ],
  "material": [],
  "galerie": [],
  "footer": [
   "studio-visitenkarte-footer"
  ],
  "button": [
   "button-zustaende",
   "pfeil-icon-button"
  ],
  "hero_varianten": {
   "foto-hero": "randlos-unten-links"
  }
 },
 "signatur": [
  "graustufen-zu-farbe"
 ],
 "moment": {
  "was": "Mit Hundeaugen: die Kurs- und Trainerbilder stehen groß im Blau-Gelb-Duoton und werden beim Zeigen oder in der Bildschirmmitte farbig.",
  "wo": "Startseite, zweiter Bildschirm",
  "gewicht": "groß und interaktiv: Bilder mindestens 5 Spalten, Hochformat",
  "muster": [
   "graustufen-zu-farbe"
  ],
  "variante": "hundeblick"
 },
 "varianten_demo": {
  "mobile-bottom-navigation": "fab",
  "karte-ganzflaechig-klickbar": "raster",
  "studio-visitenkarte-footer": "gastgeber",
  "pfeil-icon-button": "seitenwechsel",
  "bewegung-als-css-funktion": "federn"
 },
 "nicht_verwenden": [
  "maskottchen-zustaende – Signatur von tierarztpraxis; hier tragen echte Fotos den Hund",
  "svg-pfad-zeichnen-scroll – Signatur von fahrschule-freundlich-buchbar; keine Leine als Linie quer über die Seite",
  "konfetti-erfolg – Belohnung als Federn des Häkchens, nicht als Konfetti",
  "zahlen-odometer – keine hochgezählten Hundezahlen",
  "cursor-follower-lerp – kein Knochen- oder Pfoten-Cursor",
  "smooth-scroll-lenis – Termine und Plätze müssen schnell erreichbar sein",
  "marquee-laufband – Kurse laufen nicht durch",
  "Pfoten- und Knochen-Ornamente, Comic-Hunde, Stockfotos mit Welpen im Körbchen – eigene Fotos vom Gelände",
  "Heilversprechen bei Verhaltensproblemen, Garantien wie „in drei Stunden leinenführig“ – unseriös"
 ],
 "regeln": [
  "Erster Bildschirm: Foto vom Gelände in Farbe, H1, ein Satz zur Haltung, „Anmelden“ und Telefon; direkt darunter die nächsten Kurse mit freien Plätzen. Mobil Knopf Anrufen / Anmelden.",
  "Signatur (graustufen-zu-farbe): nur Kurs-, Trainer- und Haltungsbilder im Blau-Gelb-Duoton, nie das Hero-Foto und nie Bilder, deren Farbe etwas erklärt (Gelände-Skizze, Impfpass). Eine Zeile erklärt das Duoton einmal. Bei reduzierter Bewegung alle Bilder in Farbe.",
  "Haltung konkret: Methoden benennen (Belohnung, Markersignal) und Hilfsmittel, die nicht verwendet werden (Stachel-, Würge-, Elektrohalsband, Leinenruck). Kein Versprechen zu Dauer oder Erfolg.",
  "Erlaubnis nach § 11 TierSchG (Ausbildung von Hunden für Dritte bzw. Halten von Tieren für Dritte in Tagesstätte oder Pension) mit zuständigem Veterinäramt als Aufsichtsbehörde im Impressum (§ 5 DDG). Landesrechtliche Sachkundeprüfungen oder Hundeführerscheine nur nennen, wenn die Schule dafür anerkannt ist. Vom Kunden prüfen lassen.",
  "Teilnahmebedingungen sichtbar vor der Anmeldung: Impfungen, Haftpflicht der Halter:in, Läufigkeit, kranke Hunde, Rücktritt und Ausfall. Bei Online-Kursbuchung und Monatsverträgen der Tagesstätte Widerruf und Kündigung im Footer ohne Login (widerruf-und-kuendigung-schaltflaeche); ob ein Widerrufsrecht besteht, klärt der Betrieb. Vom Kunden prüfen lassen.",
  "Verhaltensberatung ist keine Therapie: Verhaltensmedizin und Medikamente gehören zur Tierärztin; bei Verdacht auf Schmerzen oder Krankheit dorthin verweisen.",
  "Fotos von Hunden der Kundschaft nur mit Einwilligung der Halter:innen, Personen erkennbar nur mit eigener Einwilligung.",
  "Knöpfe: Apportiergelb mit 2 px Rand in Textfarbe (button-zustaende) für Anmelden; Nebenwege als Konturpille, bei der der Kreis wandert (pfeil-icon-button, Variante seitenwechsel)."
 ],
 "varianten": [
  {
   "name": "Hundetagesstätte und Hundepension (ohne Training)",
   "hinweis": "Schrift, Farbe, Stil und Signatur bleiben; das Duoton trägt die Gruppen- und Raumbilder. Statt Kursplan zuerst „Freie Plätze“ (termin-verfuegbarkeit-anfrage, Variante kalender) mit Probetag als erstem Schritt; Pension mit Zeitraum, Anzahl Hunde, Futter und Medikamenten als Freitext ohne Diagnosen. Ein Tag in der Tagesstätte mit Uhrzeiten (prozess-timeline-wachsende-linie, Variante linie). Preise je Tag, Halbtag, Zehnerkarte und Monat; Monatsverträge mit Kündigungs-Button. Erlaubnis nach § 11 TierSchG (Tiere für Dritte halten) und Veterinäramt im Impressum; Gruppengröße und Betreuungsschlüssel nur echt. Vom Kunden prüfen lassen.",
   "sektionen": [
    "Freie Plätze und Probetag",
    "Ein Tag bei uns",
    "Gruppen und Räume (Ruhezonen, Auslauf, Rückzug)",
    "Pension (Zeitraum, Futter, Medikamente als Freitext)",
    "Voraussetzungen (Impfungen, Haftpflicht, Kastration nach Regel des Hauses)",
    "Preise",
    "Team",
    "Stimmen",
    "Bringen und Abholen (Skizze, Zeiten)",
    "Vertrag kündigen & Barrierefreiheit"
   ],
   "weglassen": [
    "Kursplan und Kurs-Detailseiten",
    "Welpengruppe"
   ],
   "muster_zusatz": []
  },
  {
   "name": "Hundesalon / Hundefriseur",
   "hinweis": "Schrift, Farbe, Stil und Signatur bleiben; vorher/nachher nur als Bildpaar mit Einwilligung, nie als Regler (vorher-nachher-vergleichsregler ist Signatur von handwerk). Leistungen und Preise nach Größe und Fellart als speisekarte-editorial (Variante preisliste), Termin über termin-buchung-zwei-klick (Variante vorauswahl: Rasse oder Größe, Leistung). Hinweise zu Dauer, Abholzeit und verfilztem Fell ehrlich. Gewerbe bzw. Erlaubnis nach § 11 TierSchG nur, wenn sie für den Salon gilt. Vom Kunden prüfen lassen.",
   "sektionen": [
    "Leistungen und Preise (nach Größe und Fellart)",
    "Termin buchen",
    "So läuft ein Termin ab",
    "Vorher wissen (Dauer, Abholen, Fellzustand)",
    "Team",
    "Stimmen",
    "Anfahrt und Zeiten"
   ],
   "weglassen": [
    "Kursplan",
    "Tagesstätte und Pension",
    "Haltung und Methoden (als kurzer Satz zum Umgang)"
   ],
   "muster_zusatz": [
    "speisekarte-editorial",
    "termin-buchung-zwei-klick"
   ]
  }
 ],
 "template_tauglich": true,
 "aufwand": "mittel",
 "leistung": "Hero-Foto als LCP mit fetchpriority=high, in Farbe. Duoton als ein SVG-Filter für alle Bilder (feColorMatrix plus feComponentTransfer), kein Canvas; auf Touch ein IntersectionObserver. Anybody als Variable-Datei mit wdth und wght, Zalando Sans Variable, beide nur Latin. Kursplan als HTML, Buchung und Karte erst nach Klick.",
 "offen": [
  "graustufen-zu-farbe hat keine Demo-Variante „Hundeblick“ (Duoton Dämmerblau → Apportiergelb, Touch-Auslöser in der Bildschirmmitte); die Demo zeigt ein Team-Raster mit Grau → Farbe.",
  "Kein Muster für Kurse mit Warteliste und Nachrücken (Platz frei geworden → Benachrichtigung); wochen-kursplan studio zeigt Warteliste nur als Zustand."
 ],
 "raum": {
  "basis_px": 8,
  "skala_px": [
   4,
   8,
   12,
   16,
   24,
   32,
   48,
   64,
   96,
   136
  ],
  "sektion": "clamp(64px, 8vw, 136px)",
  "dichte": "mittel",
  "hinweis": "Kräftig und luftig: Kurskarten mit 24 px Innenabstand, Termine dicht, Haltung mit viel Raum neben dem Bild."
 },
 "raster": {
  "spalten": 12,
  "rand": "clamp(16px, 4vw, 56px)",
  "spalt": "clamp(14px, 2vw, 28px)",
  "max_breite": "1280px",
  "hinweis": "Hero randlos über 12 Spalten, Text unten links über 7. Kurse als drei ungleich breite Karten (5/4/3) am Desktop, auf dem Telefon untereinander; Haltung 6/6 sticky."
 },
 "form": {
  "radius_klein": "12px",
  "radius_gross": "28px",
  "pille": true,
  "linie": "2px #1B1F2A am gelben Knopf; Felder 1px in Leise (3:1)",
  "schatten": "keiner",
  "hinweis": "Rund und griffig wie ein Ball: Knöpfe als Pille, Karten 28 px; der gelbe Knopf trägt immer den dunklen Rand."
 },
 "bildsprache": {
  "licht": "Draußen, Tageslicht, gern Gegenlicht am Morgen; kein Studio.",
  "ausschnitt": "Augenhöhe des Hundes, Hund und Mensch in Bewegung, Hände mit Leckerli, Gruppe in der Totalen.",
  "personen": "Ja: Trainer:innen mit Einwilligung; Kundschaft und ihre Hunde nur mit Einwilligung.",
  "formate": [
   "3:2",
   "4:5",
   "1:1"
  ],
  "nicht": "Keine Stockwelpen, keine Hunde mit Stachel- oder Kettenhalsband, keine verängstigten Hunde.",
  "gewicht": "Wenige Bilder, groß: lieber ein Bild randlos oder über 7 bis 12 Spalten als drei mittelgroße; jedes Bild trägt eine Aussage, keins füllt nur Platz."
 },
 "ton": {
  "anrede": "Sie (Trainer:innen-Seiten dürfen du sagen, wenn das Team so spricht)",
  "saetze": "Kurz, tatkräftig, konkret: wann, wo, für welchen Hund, was mitbringen.",
  "haltung": "Wie eine Trainerin am Gelände: freundlich, klar, ehrlich über Grenzen.",
  "beispiele": [
   "Welpengruppe für Hunde bis 16 Wochen. Samstags 10 Uhr, noch zwei Plätze.",
   "Wir arbeiten mit Belohnung. Stachelhalsband bleibt im Auto."
  ],
  "nicht": "„Ihr Liebling“, „Fellnase“, Garantien, Rudelführer-Sprache."
 },
 "hero_aufbau": {
  "raster": "Foto randlos über 12 Spalten; H1, Satz und Wege unten links über Spalte 1 bis 7 auf ruhiger Bildzone; mobil Foto oben, Text darunter.",
  "bild": "Echtes Foto vom Gelände, Augenhöhe des Hundes, in Farbe, 3:2 Desktop, 4:5 mobil.",
  "h1": "clamp(2.5rem, 1.2rem + 5.4vw, 5.5rem), Anybody breit; Name der Schule oder ein Satz, kein Label darüber.",
  "handlung": "„Anmelden“ (Apportiergelb mit dunklem Rand) und Telefon als tel:-Link.",
  "zusatz": "Direkt unter dem Hero die nächsten drei Kurse mit freien Plätzen; mobil Knopf Anrufen / Anmelden."
 },
 "url": "https://cecodesign.de/lab/fundus/rezepte/hundeschule-tierbetreuung/",
 "tokens_css": "https://cecodesign.de/lab/fundus/rezepte/hundeschule-tierbetreuung/tokens.css",
 "bauplan": "https://cecodesign.de/lab/fundus/rezepte/hundeschule-tierbetreuung/bauplan.txt",
 "rezept_json": "https://cecodesign.de/lab/fundus/rezepte/hundeschule-tierbetreuung/rezept.json",
 "nicht_verwenden_ids": [
  {
   "ids": [
    "maskottchen-zustaende"
   ],
   "grund": "Signatur von tierarztpraxis; hier tragen echte Fotos den Hund"
  },
  {
   "ids": [
    "svg-pfad-zeichnen-scroll"
   ],
   "grund": "Signatur von fahrschule-freundlich-buchbar; keine Leine als Linie quer über die Seite"
  },
  {
   "ids": [
    "konfetti-erfolg"
   ],
   "grund": "Belohnung als Federn des Häkchens, nicht als Konfetti"
  },
  {
   "ids": [
    "zahlen-odometer"
   ],
   "grund": "keine hochgezählten Hundezahlen"
  },
  {
   "ids": [
    "cursor-follower-lerp"
   ],
   "grund": "kein Knochen- oder Pfoten-Cursor"
  },
  {
   "ids": [
    "smooth-scroll-lenis"
   ],
   "grund": "Termine und Plätze müssen schnell erreichbar sein"
  },
  {
   "ids": [
    "marquee-laufband"
   ],
   "grund": "Kurse laufen nicht durch"
  },
  {
   "ids": [],
   "grund": "Pfoten- und Knochen-Ornamente, Comic-Hunde, Stockfotos mit Welpen im Körbchen – eigene Fotos vom Gelände"
  },
  {
   "ids": [],
   "grund": "Heilversprechen bei Verhaltensproblemen, Garantien wie „in drei Stunden leinenführig“ – unseriös"
  }
 ],
 "alle_muster": [
  {
   "id": "graustufen-zu-farbe",
   "rolle": "Signatur",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/hover/graustufen-zu-farbe/meta.json",
   "variante": "hundeblick",
   "demo_url": "https://cecodesign.de/lab/fundus/hover/graustufen-zu-farbe/demo?v=hundeblick"
  },
  {
   "id": "foto-hero",
   "rolle": "Hero",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/hero-layouts/foto-hero/meta.json",
   "variante": "randlos-unten-links",
   "demo_url": "https://cecodesign.de/lab/fundus/hero-layouts/foto-hero/demo?v=randlos-unten-links"
  },
  {
   "id": "wochen-kursplan",
   "rolle": "Sektion: Kurse und nächste Termine (Welpen, Junghunde, Alltag, Mantrailing, Agility, Einzeltraining; Filter nach Alter und Thema; freie Plätze und Warteliste nur aus echter Quelle)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/sektionen/wochen-kursplan/meta.json",
   "variante": "studio",
   "demo_url": "https://cecodesign.de/lab/fundus/sektionen/wochen-kursplan/demo?v=studio"
  },
  {
   "id": "karte-ganzflaechig-klickbar",
   "rolle": "Sektion: Kurse und nächste Termine (Welpen, Junghunde, Alltag, Mantrailing, Agility, Einzeltraining; Filter nach Alter und Thema; freie Plätze und Warteliste nur aus echter Quelle)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/hover/karte-ganzflaechig-klickbar/meta.json",
   "variante": "raster",
   "demo_url": "https://cecodesign.de/lab/fundus/hover/karte-ganzflaechig-klickbar/demo?v=raster"
  },
  {
   "id": "veranstaltung-detailseite",
   "rolle": "Sektion: Kurs-Detailseite (je Kurs eine Seite: Alter, Voraussetzungen, Termine, Treffpunkt, Gruppengröße, Preis, Mitbringen, Anmeldung; Vergangenes mit Hinweis statt Fehlerseite)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/sektionen/veranstaltung-detailseite/meta.json",
   "variante": "ticket",
   "demo_url": "https://cecodesign.de/lab/fundus/sektionen/veranstaltung-detailseite/demo?v=ticket"
  },
  {
   "id": "split-screen-sticky-seiten",
   "rolle": "Sektion: Haltung und Methoden (belohnungsbasiert, ohne Stachel-, Würge- oder Elektrohalsband; was wir nicht machen und wohin man sonst geht; Erlaubnis nach § 11 TierSchG und Qualifikation)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/hero-layouts/split-screen-sticky-seiten/meta.json",
   "variante": "bild",
   "demo_url": "https://cecodesign.de/lab/fundus/hero-layouts/split-screen-sticky-seiten/demo?v=bild"
  },
  {
   "id": "prozess-timeline-wachsende-linie",
   "rolle": "Sektion: Welpengruppe: so läuft es (Alter, Impfungen, Gruppengröße, Spiel und Training im Wechsel; vier Schritte vom Kennenlernen bis zur Gruppe)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/hero-layouts/prozess-timeline-wachsende-linie/meta.json",
   "variante": "unterstrich",
   "demo_url": "https://cecodesign.de/lab/fundus/hero-layouts/prozess-timeline-wachsende-linie/demo?v=unterstrich"
  },
  {
   "id": "preisseite-geruest",
   "rolle": "Sektion: Preise und Karten (Kurs, Einzelstunde, Mehrfachkarte, Hausbesuch mit Anfahrt; Endpreise inkl. MwSt.)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/sektionen/preisseite-geruest/meta.json",
   "variante": "kurskarte",
   "demo_url": "https://cecodesign.de/lab/fundus/sektionen/preisseite-geruest/demo?v=kurskarte"
  },
  {
   "id": "termin-verfuegbarkeit-anfrage",
   "rolle": "Sektion: Tagesstätte und Pension (Probetag, Impfpass, Haftpflicht, Gruppengröße, Ruhezeiten, Bring- und Abholzeiten; freie Plätze im Monat nur aus echter Quelle)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/sektionen/termin-verfuegbarkeit-anfrage/meta.json",
   "variante": "kalender",
   "demo_url": "https://cecodesign.de/lab/fundus/sektionen/termin-verfuegbarkeit-anfrage/demo?v=kalender"
  },
  {
   "id": "oeffnungszeiten-status",
   "rolle": "Sektion: Tagesstätte und Pension (Probetag, Impfpass, Haftpflicht, Gruppengröße, Ruhezeiten, Bring- und Abholzeiten; freie Plätze im Monat nur aus echter Quelle)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/sektionen/oeffnungszeiten-status/meta.json",
   "variante": "kompakt",
   "demo_url": "https://cecodesign.de/lab/fundus/sektionen/oeffnungszeiten-status/demo?v=kompakt"
  },
  {
   "id": "team-ueber-mich-layout",
   "rolle": "Sektion: Trainer:innen (Foto im Duoton, Schwerpunkte, Qualifikation, eigener Hund nur, wenn gewünscht)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/hero-layouts/team-ueber-mich-layout/meta.json",
   "variante": "raster",
   "demo_url": "https://cecodesign.de/lab/fundus/hero-layouts/team-ueber-mich-layout/demo?v=raster"
  },
  {
   "id": "person-detailseite",
   "rolle": "Sektion: Person-Detailseite (je Trainer:in eine Seite: Spezialgebiete, Kurse, Ausbildung mit Nachweis, Preis ab, du-Ton erlaubt)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/sektionen/person-detailseite/meta.json",
   "variante": "stylistin",
   "demo_url": "https://cecodesign.de/lab/fundus/sektionen/person-detailseite/demo?v=stylistin"
  },
  {
   "id": "testimonials-neu-gedacht",
   "rolle": "Sektion: Stimmen (über Training, Umgang und Fortschritt, nie über Heilung von Verhaltensproblemen; Google-Bewertungen nur mit Echtheitshinweis)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/hero-layouts/testimonials-neu-gedacht/meta.json",
   "variante": "wand",
   "demo_url": "https://cecodesign.de/lab/fundus/hero-layouts/testimonials-neu-gedacht/demo?v=wand"
  },
  {
   "id": "bewertungsprofil-mit-echtheitshinweis",
   "rolle": "Sektion: Stimmen (über Training, Umgang und Fortschritt, nie über Heilung von Verhaltensproblemen; Google-Bewertungen nur mit Echtheitshinweis)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/sektionen/bewertungsprofil-mit-echtheitshinweis/meta.json",
   "variante": "band",
   "demo_url": "https://cecodesign.de/lab/fundus/sektionen/bewertungsprofil-mit-echtheitshinweis/demo?v=band"
  },
  {
   "id": "mehrschritt-anfrage",
   "rolle": "Sektion: Anmeldung (Hund: Name, Alter, Rasse freiwillig → Kurs oder Probetag → Kontakt; Fehlerliste; Bestätigung mit Treffpunkt und Mitbringliste)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/sektionen/mehrschritt-anfrage/meta.json",
   "variante": "leiste",
   "demo_url": "https://cecodesign.de/lab/fundus/sektionen/mehrschritt-anfrage/demo?v=leiste"
  },
  {
   "id": "formular-fehlerzusammenfassung",
   "rolle": "Sektion: Anmeldung (Hund: Name, Alter, Rasse freiwillig → Kurs oder Probetag → Kontakt; Fehlerliste; Bestätigung mit Treffpunkt und Mitbringliste)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/zugang/formular-fehlerzusammenfassung/meta.json",
   "variante": "liste",
   "demo_url": "https://cecodesign.de/lab/fundus/zugang/formular-fehlerzusammenfassung/demo?v=liste"
  },
  {
   "id": "danke-seite-naechste-schritte",
   "rolle": "Sektion: Anmeldung (Hund: Name, Alter, Rasse freiwillig → Kurs oder Probetag → Kontakt; Fehlerliste; Bestätigung mit Treffpunkt und Mitbringliste)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/sektionen/danke-seite-naechste-schritte/meta.json",
   "variante": "termin",
   "demo_url": "https://cecodesign.de/lab/fundus/sektionen/danke-seite-naechste-schritte/demo?v=termin"
  },
  {
   "id": "karte-zwei-klick",
   "rolle": "Sektion: Trainingsgelände und Anfahrt (Treffpunkt, Parken, eingezäunte Fläche, Wasser, Unterstand als Skizze; Adresse als Text)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/hero-layouts/karte-zwei-klick/meta.json",
   "variante": "skizze",
   "demo_url": "https://cecodesign.de/lab/fundus/hero-layouts/karte-zwei-klick/demo?v=skizze"
  },
  {
   "id": "widerruf-und-kuendigung-schaltflaeche",
   "rolle": "Sektion: Vertrag widerrufen, kündigen und Barrierefreiheit (bei Online-Kursbuchung und Monatsverträgen der Tagesstätte; Footer und mobiles Menü, ohne Login)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/sektionen/widerruf-und-kuendigung-schaltflaeche/meta.json",
   "variante": "richtig",
   "demo_url": "https://cecodesign.de/lab/fundus/sektionen/widerruf-und-kuendigung-schaltflaeche/demo?v=richtig"
  },
  {
   "id": "barrierefreiheit-seite",
   "rolle": "Sektion: Vertrag widerrufen, kündigen und Barrierefreiheit (bei Online-Kursbuchung und Monatsverträgen der Tagesstätte; Footer und mobiles Menü, ohne Login)",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/zugang/barrierefreiheit-seite/meta.json",
   "variante": "bfsg",
   "demo_url": "https://cecodesign.de/lab/fundus/zugang/barrierefreiheit-seite/demo?v=bfsg"
  },
  {
   "id": "seitenwechsel-wachsende-form",
   "rolle": "Seitenwechsel",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/seitenuebergaenge/seitenwechsel-wachsende-form/meta.json"
  },
  {
   "id": "native-popover-dropdowns",
   "rolle": "Navigation",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/navigation/native-popover-dropdowns/meta.json"
  },
  {
   "id": "mobile-bottom-navigation",
   "rolle": "Navigation",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/navigation/mobile-bottom-navigation/meta.json",
   "variante": "fab",
   "demo_url": "https://cecodesign.de/lab/fundus/navigation/mobile-bottom-navigation/demo?v=fab"
  },
  {
   "id": "druck-feedback",
   "rolle": "Mikroanimation",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/mikroanimationen/druck-feedback/meta.json"
  },
  {
   "id": "checkbox-radio-animiert",
   "rolle": "Mikroanimation",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/mikroanimationen/checkbox-radio-animiert/meta.json"
  },
  {
   "id": "icon-squash-stretch",
   "rolle": "Mikroanimation",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/mikroanimationen/icon-squash-stretch/meta.json"
  },
  {
   "id": "bewegung-als-css-funktion",
   "rolle": "Mikroanimation",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/animationsstile/bewegung-als-css-funktion/meta.json",
   "variante": "federn",
   "demo_url": "https://cecodesign.de/lab/fundus/animationsstile/bewegung-als-css-funktion/demo?v=federn"
  },
  {
   "id": "studio-visitenkarte-footer",
   "rolle": "Footer",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/footer/studio-visitenkarte-footer/meta.json",
   "variante": "gastgeber",
   "demo_url": "https://cecodesign.de/lab/fundus/footer/studio-visitenkarte-footer/demo?v=gastgeber"
  },
  {
   "id": "button-zustaende",
   "rolle": "Buttons",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/mikroanimationen/button-zustaende/meta.json"
  },
  {
   "id": "pfeil-icon-button",
   "rolle": "Buttons",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/buttons/pfeil-icon-button/meta.json",
   "variante": "seitenwechsel",
   "demo_url": "https://cecodesign.de/lab/fundus/buttons/pfeil-icon-button/demo?v=seitenwechsel"
  },
  {
   "id": "token-federnd-verspielt",
   "rolle": "Animationsstil",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/animationsstile/token-federnd-verspielt/meta.json"
  },
  {
   "id": "token-toggle-asymmetrisch",
   "rolle": "Animationsstil für UI",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/animationsstile/token-toggle-asymmetrisch/meta.json"
  },
  {
   "id": "fluide-typo-clamp-cqi",
   "rolle": "Schrift-Technik",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/typo-techniken/fluide-typo-clamp-cqi/meta.json"
  },
  {
   "id": "tabellenziffern",
   "rolle": "Schrift-Technik",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/typo-techniken/tabellenziffern/meta.json"
  },
  {
   "id": "silbentrennung-komposita",
   "rolle": "Schrift-Technik",
   "demo": true,
   "meta": "https://cecodesign.de/lab/fundus/typo-techniken/silbentrennung-komposita/meta.json"
  }
 ]
}
