.fxssa-pin {
	position: fixed;
	right: 20px;
	top: 40%;
	z-index: 999;
	display: none;
}

.fxssa-box {
	display: inline-block;
	text-align: right;
	padding: 0;
	width: 110px;
	height: auto;
	position: relative;
	border-radius: 10px;
}

.fxssa-close {
	cursor: pointer;
	user-select: none;
	line-height: 35px;
	display: flex;
	align-items: center;
	justify-content: center;
	position: absolute;
	box-sizing: border-box;
	background: rgba(24, 24, 24, 0.57);
	height: 20px;
	width: 20px;
	top: 3px;
	right: 3px;
	border-radius: 20px;
	z-index: 99;
}

.fxssa-wiggle > a {
	display: block;
	width: 100%;
	height: 100%;
}

.fxssa-img {
	position: absolute;
	inset: calc(-1 * var(--fxssa-bleed, 1px));
	border-radius: 0;
	width: auto;
	height: auto;
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	transform: translateZ(0);
}

.fxssa-wiggle.fxssa-anim {
	animation: fxssa-bob 2400ms cubic-bezier(.22, .61, .36, 1) infinite both 400ms;
	will-change: transform;
	transform: translateZ(0);
}

@keyframes fxssa-bob {
	0% { transform: translate3d(0, 0, 0) scale(1); }
	20% { transform: translate3d(0, -0.8px, 0) scale(1.006); }
	40% { transform: translate3d(0, 0.8px, 0) scale(0.996); }
	60% { transform: translate3d(0, -0.5px, 0) scale(1.004); }
	78% { transform: translate3d(0, 0.5px, 0) scale(0.998); }
	90% { transform: translate3d(0, 0, 0) scale(1.002); }
	100% { transform: translate3d(0, 0, 0) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
	.fxssa-anim {
		animation: none;
	}
}

.fxssa-pin .fxssa-box .fxssa-imgwrap {
	border-radius: 10px !important;
}

.fxssa-imgwrap {
	--fxssa-r: 10px;
	--fxssa-bleed: 1px;
	aspect-ratio: var(--fxssa-ar, 1/1);
	position: relative;
	overflow: hidden;
	border-radius: var(--fxssa-r);
}

.fxssa-wiggle {
	position: relative;
	inset: 0;
	width: 100%;
	height: 100%;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
	transform-origin: center;
	transform: translateZ(0);
	contain: paint;
}

.fxssa-pin:hover .fxssa-anim {
	animation-play-state: paused;
}

.fxssa-pin-label {
	display: block;
	width: 120px;
	height: auto;
	margin-top: -5px;
	margin-left: auto;
	margin-right: 10px;
	pointer-events: none;
	transform: translateZ(0);
}

.fxssa-pin-label.fxssa-rot {
	animation: fxssa-tilt 3000ms cubic-bezier(.36, .07, .19, .97) infinite both 300ms;
	transform-origin: 85% 15%;
	will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
	.fxssa-pin-label.fxssa-rot {
		animation: none;
	}
}

@keyframes fxssa-tilt {
	0% { transform: rotate(0deg); }
	18% { transform: rotate(-4deg); }
	36% { transform: rotate(3deg); }
	52% { transform: rotate(-2deg); }
	68% { transform: rotate(1deg); }
	84% { transform: rotate(-1deg); }
	100% { transform: rotate(0deg); }
}
