.pattern-gallery { margin: 3rem 0; padding: 2rem 0; border-top: 1px solid #ddcbb7; }
.pattern-gallery > p { max-width: 65ch; }
.gallery-hanging { position: relative; overflow: hidden; margin-top: 24px; }
.gallery-rope { position: absolute; top: 0; left: 0; width: 100%; height: 110px; pointer-events: none; }
.gallery-track { position: relative; display: flex; gap: 26px; overflow-x: auto; padding: 102px max(20px, calc((100% - 340px) / 2)) 52px; scrollbar-width: none; overscroll-behavior-x: contain; cursor: grab; }
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-track.is-dragging { cursor: grabbing; }
.gallery-card { position: relative; flex: 0 0 340px; width: 340px; margin: 0; padding: 9px; border: 1px solid #ddcbb7; border-radius: 18px; background: #fffdf7; box-shadow: 0 12px 28px rgba(64,40,24,.09); transform-origin: center -12px; user-select: none; }
.gallery-card::before { content: ''; position: absolute; top: -30px; left: calc(50% - 6px); width: 12px; height: 43px; border-radius: 3px; background: linear-gradient(90deg,#a57350,#c49671 50%,#a57350); box-shadow: inset 0 -16px 0 -13px #ead8b6; z-index: 1; }
.gallery-card img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; border-radius: 10px; background: #f7efe6; pointer-events: none; }
.gallery-card figcaption { padding: 14px 4px 5px; font-size: 14px; font-weight: 600; text-align: center; }
.gallery-enhanced .gallery-card { transform: translateY(var(--lift,0px)) rotate(var(--tilt,0deg)); }
.gallery-track:focus-visible { outline: 3px solid #386f86; outline-offset: -4px; }
.gallery-hint { margin: 10px auto 0; text-align: center; font-size: 14px; }
@media (max-width: 600px) { .gallery-card { flex-basis: 72vw; width: 72vw; } .gallery-track { padding-inline: 14vw; gap: 20px; } }
@media (prefers-reduced-motion: reduce) { .gallery-enhanced .gallery-card { transform: translateY(var(--lift,0px)); } }

/* Nur Tonwerte der neuen App-Exporte; Originaldateien bleiben unverändert. */
.gallery-card--tone img { filter: brightness(1.10) contrast(1.04); }
