 		animate(snapshotMaskLayer, to: .zero, withVelocity: velocity) {
 			self.styleableObject.applyNextStyle()
 			self.cleanupAfterInteractiveStyleTransition()
+			self.state = .idle
 		}
 	}
 	

		guard let snapshotMaskLayer = snapshotMaskLayer else {
			return
		}
		
		// When completing the transition we slide the mask layer down to the bottom of
		// the targetView and then remove the snapshot. The further down the mask layer is,

	func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
		guard let panRecognizer = gestureRecognizer as? UIPanGestureRecognizer else {
			return true
		}

		guard state == .idle else {
			return false
		}
		
		let translation = panRecognizer.translation(in: targetView)
