Am Anfang liegen alle drei Formen bündig übereinander. Erst beim Hover hebt sich die mintfarbene Hauptfläche und die pinken und violetten Farbschatten fächern sich nach hinten auf – wie zwei versetzte Scheinwerfer.
<!-- Quelle / Source: anitamostofa.com -->
<span class="am-trigger">
<button type="button" class="am-fx am-lift" aria-label="Abheben"><span class="am-label">Abheben</span></button>
</span>
<style>
/* Quelle / Source: anitamostofa.com — CSS Button Lab */
.am-trigger { display: inline-grid; place-items: center; padding: 24px; max-width: 100%; box-sizing: border-box; }
.am-fx.am-fx {
--ink: #181818; --pink: #FE7DDA; --mint: #85E8B9;
--ease: cubic-bezier(.23, 1, .32, 1);
position: relative; display: inline-flex; align-items: center; justify-content: center;
gap: 1rem; min-height: 64px; max-width: 100%; box-sizing: border-box;
padding: 1rem 2rem; margin: 0; border: 2px solid var(--ink);
border-radius: 999px; background: var(--pink); color: var(--ink);
font: inherit; font-size: 1.05rem; font-weight: 650; line-height: 1.4;
text-decoration: none; cursor: pointer; isolation: isolate;
transition: transform 280ms var(--ease);
}
.am-fx:focus-visible { outline: 3px solid #7287ff; outline-offset: 8px; }
.am-fx > span { position: relative; z-index: 1; }
/* 3D layers: pulled apart */
.am-fx.am-lift { padding: 0; border: 0; border-radius: 18px; background: transparent; transform: translateY(0); transition: transform 360ms var(--ease); }
.am-lift .am-label { display: flex; align-items: center; justify-content: center; min-height: 64px; box-sizing: border-box; padding: 1rem 2rem; border: 2px solid var(--ink); border-radius: inherit; background: var(--mint); transition: transform 360ms var(--ease); }
/* Identical silhouettes start directly underneath the opaque main face. */
.am-lift::before, .am-lift::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; transform: translate(0,0) rotate(0); opacity: .8; transition: transform 360ms var(--ease); }
.am-lift::before { background: var(--pink); z-index: -1; }
.am-lift::after { background: #7287ff; z-index: -2; }
@media (prefers-reduced-motion: no-preference) {
:is(.am-fx.am-lift:hover, .am-trigger:hover .am-fx.am-lift) { transform: translateY(-6px); }
:is(.am-lift:hover, .am-trigger:hover .am-lift) .am-label { transform: rotate(-3deg); }
:is(.am-lift:hover, .am-trigger:hover .am-lift)::before { transform: translate(-20px,20px) rotate(-6deg); }
:is(.am-lift:hover, .am-trigger:hover .am-lift)::after { transform: translate(22px,38px) rotate(6deg); }
.am-lift:active .am-label { transform: translateY(3px) rotate(-3deg); }
}
@media (prefers-reduced-motion: reduce) {
.am-fx.am-lift, .am-lift .am-label, .am-lift::before, .am-lift::after { transform: none !important; transition: none !important; }
}
</style>




















