/* Gemeinsame Bewegungsgrammatik fuer Start-, Maschinen- und Produktseiten. */
:root{--gm-ease:cubic-bezier(.2,.78,.24,1);--gm-spring:cubic-bezier(.16,1.25,.3,1)}

/* Reveal: Inhalt erscheint hierarchisch, ohne das Layout zu verschieben. */
.gm-ready .gm-reveal{transition:opacity .72s var(--gm-ease),translate .82s var(--gm-ease),clip-path .9s var(--gm-ease);transition-delay:var(--gm-delay,0ms)}
.gm-ready .gm-reveal.gm-pending{opacity:0;translate:0 24px}
.gm-ready .gm-clip{clip-path:inset(0 0 0 0)}
.gm-ready .gm-clip.gm-pending{clip-path:inset(0 0 100% 0);translate:0 16px}

/* Scroll: Bilder bewegen sich innerhalb ihrer Flaeche, die Seite bleibt ruhig. */
.gm-parallax{will-change:translate}
.gm-parallax>img,.gm-parallax picture>img{will-change:transform,scale}
.gm-parallax{translate:0 var(--gm-y,0px)}
.gm-media{overflow:hidden}
.gm-media img{transition:scale .8s var(--gm-ease),filter .5s ease}
.gm-media:hover img{scale:1.045}
.gm-media:hover .n-tool-image img,.gm-media:hover .n-model-picture img{scale:1.035}

/* Hover: Der Inhalt reagiert, ohne Kartengroessen oder Textfluss zu aendern. */
.gm-magnetic{translate:var(--gm-mx,0px) var(--gm-my,0px);transition:translate .42s var(--gm-spring),box-shadow .35s ease}
.gm-text-shift{position:relative}
.gm-text-shift:after{transform-origin:left;transition:transform .4s var(--gm-ease)}
.gm-text-shift:hover:after,.gm-text-shift:focus-visible:after{transform:scaleX(1.08)}
.gm-text-shift>span,.gm-text-shift>i{transition:translate .35s var(--gm-ease)}
.gm-text-shift:hover>span:last-child,.gm-text-shift:hover>i,.gm-text-shift:focus-visible>span:last-child,.gm-text-shift:focus-visible>i{translate:4px 0}

/* Klick: kurze Kompression und sichtbare Rueckmeldung. */
.gm-press{transform-origin:center;touch-action:manipulation}
.gm-press.gm-confirmed{box-shadow:0 0 0 4px rgba(164,198,57,.24)}
.gm-choice-pulse{animation:gm-choice .48s var(--gm-spring)}
@keyframes gm-choice{0%{box-shadow:inset 0 0 0 0 rgba(164,198,57,0)}45%{box-shadow:inset 0 0 0 2px rgba(164,198,57,.72)}100%{box-shadow:inset 0 0 0 0 rgba(164,198,57,0)}}

@media(pointer:coarse),(max-width:760px){
 .gm-magnetic{translate:none!important}
 .gm-parallax{translate:none!important}
 .gm-media:hover img{scale:1}
 .gm-ready .gm-reveal.gm-pending{translate:0 14px}
}
@media(prefers-reduced-motion:reduce){
 .gm-reveal,.gm-clip,.gm-parallax,.gm-magnetic,.gm-media img,.gm-text-shift>span,.gm-text-shift>i{opacity:1!important;translate:none!important;transform:none!important;scale:1!important;clip-path:none!important;transition:none!important;animation:none!important}
}
