body {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  margin: 0;
  background-image: radial-gradient(circle, #e7e7e7, #d7d7d7);
  font-size: 16px;
}

.ticklishbutton {
  display: inline-block;
  transition: all 0.1s ease-out;
  user-select: none;
  cursor: pointer;
  font-family: sans-serif;
  transform-style: preserve-3d;
}
.ticklishbutton:hover {
  transform: translateZ(30px);
}
.ticklishbutton:hover .surface {
  background-size: 100% 200%;
}

.surface {
  border-radius: 40px;
  background-image: radial-gradient(ellipse at 80% 100%, #C42505, #E8B106);
  background-size: 100% 100%;
  transition: all 0.2s ease;
  color: #fff;
  padding: 20px 45px;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2), inset 0 0 5px rgba(0, 0, 0, 0.2);
  pointer-events: none;
  will-change: background-size;
}

.text {
  transform: translateZ(60px);
  text-shadow: 0 5px 12px rgba(0, 0, 0, 0.4);
  pointer-events: none;
}