/* ===========================================================================
   Wackelpudding-Glas (Phase A2; Andi, 04.10.2026)

   Jede Fläche mit data-pudding lässt sich ziehen, gibt elastisch nach und
   schwingt beim Loslassen federnd zurück; aufklappbare Flächen wackeln beim
   Öffnen und Schließen. Gerechnet wird in pudding.js mit der Feder aus
   federn.js; hier steht nur, was das Stylesheet dazu beitragen muss.

   Nur transform, und zwar an der Fläche selbst: Verschieben, gegenläufiges
   scale, leichtes skew. Kein filter, keine mask, kein clip-path, keine
   opacity — an einem Vorfahren einer Glasfläche schaltet jedes davon das
   Glas ab (glas.css), und eine Fläche kann Glas enthalten.

   Auf dem Telefon bringt nur das waagerechte Ziehen das Wackeln; senkrecht
   wird gescrollt (touch-action: pan-y), wie beim Drehen des Hauses. Das Haus
   nimmt auf Glas kein Ziehen an (hintergrund.js, BEDIEN), es gibt also keinen
   Streit, wer den Finger bekommt.
   =========================================================================== */

[data-pudding] { touch-action: pan-y; }
/* Während der Bewegung eine eigene Ebene, danach nicht mehr: Eine dauerhafte
   Ebene je Glasfläche kostet auf dem Telefon Speicher. */
[data-pudding].wackelt { will-change: transform; }
[data-pudding].zieht { cursor: grabbing; user-select: none; -webkit-user-select: none; }
@media (hover: hover) and (pointer: fine) { [data-pudding]:not(.zieht) { cursor: grab; } }
@media (hover: hover) and (pointer: fine) { [data-pudding] :is(input, button, a, select, textarea, label) { cursor: auto; } }
@media (hover: hover) and (pointer: fine) { [data-pudding] :is(button, a, label) { cursor: pointer; } }
/* Was man antippt, zeigt den Zeiger der Bedienung, nicht die greifende Hand; ein Feld den Texteingabe-Zeiger. */
@media (hover: hover) and (pointer: fine) {
    :is(button, a, label, [role=button])[data-pudding]:not(.zieht), .aufklapper[data-pudding]:not(.zieht) .aufklapper-kopf { cursor: pointer; }
    :is(input, textarea)[data-pudding]:not(.zieht), .fluss-eingabe[data-pudding]:not(.zieht) { cursor: text; }
    select[data-pudding]:not(.zieht) { cursor: pointer; }
}
@media (prefers-reduced-motion: reduce) {
    [data-pudding], [data-pudding]:not(.zieht) { cursor: auto; touch-action: auto; }
}
