* {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
	-moz-user-select: none;
	-webkit-user-select: none;
	-ms-user-select: none;
	user-select: none;
	-webkit-user-drag: none;
	-webkit-touch-callout: none;
	-ms-content-zooming: none;
}

.tooltip {
	width: 60px;
	height: 60px;
	margin-left: -30px;
	margin-top: -30px;
	transition: opacity 0.2s;
	-webkit-transition: opacity 0.2s;
	perspective: 500px;
	-webkit-perspective: 500px;
}

	.tooltip img {
		width: 100%;
	}

	.tooltip:hover {
		z-index: 3;
	}

	.tooltip .tip {
		position: absolute;
		width: 200px;
		background-color: #ffffff;
		color: black;
		border-radius: 5px;
		opacity: 0;
		pointer-events: none;
		transition: all 0.25s;
		-webkit-transition: all 0.25s;
	}

		.tooltip .tip.right {
			right: 80px;
			transform: rotateZ(5deg) rotateY(-40deg);
			-webkit-transform: rotateZ(5deg) rotateY(-40deg);
			transform-origin: right center;
			-webkit-transform-origin: right center;
		}

		.tooltip .tip.up {
			top: 0;
		}

		.tooltip .tip.down {
			bottom: 0;
		}

		.tooltip .tip.left {
			left: 80px;
			transform: rotateZ(5deg) rotateY(40deg);
			-webkit-transform: rotateZ(5deg) rotateY(40deg);
			transform-origin: left center;
			-webkit-transform-origin: left center;
		}

		.tooltip .tip.right {
			right: 80px;
			transform: rotateZ(-5deg) rotateY(-40deg);
			-webkit-transform: rotateZ(-5deg) rotateY(-40deg);
			transform-origin: right center;
			-webkit-transform-origin: right center;
		}

.out:hover .tip {
	opacity: 1;
	pointer-events: all;
	transform: none;
	-webkit-transform: none;
	font-size: 0;
}

.tip p {
	font-size: 16px;
	padding: .5em;
	text-align: center;
	background-color: #ffffff;
	border-top-right-radius: 5px;
	border-top-left-radius: 5px;
	color: #000;
}

.tip img {
	font-size: 16px;
	padding: .5em;
}

.tooltip .pulse {
	position: absolute;
	z-index: -1;
	left: 0;
	top: 0;
	width: 60px;
	height: 60px;
	border: 3px solid white;
	border-radius: 50%;
	animation-name: pulse;
	animation-duration: 1s;
	animation-iteration-count: infinite;
	animation-fill-mode: forwards;
	-webkit-animation-fill-mode: both;
	opacity: 0.0;
}

.tooltip.viewed .pulse {
	border: 3px solid #ffffff80;
}

@-webkit-keyframes pulse {
	0% {
		transform: none;
		opacity: 1.0;
	}

	100% {
		transform: scale3d(2, 2, 1);
		opacity: 0.0;
	}
}

@keyframes pulse {
	0% {
		transform: none;
		opacity: 1.0;
	}

	100% {
		transform: scale3d(2, 2, 1);
		opacity: 0.0;
	}
}

.tooltip .out {
	position: relative;
	z-index: 2;
	width: 60px;
	height: 60px;
	padding: 18px;
	border: 3px solid white;
	border-radius: 50%;
	cursor: pointer;
	transition: border .3s ease-in-out;
}

.tooltip.viewed .out {
	border: 3px solid #ffffff80;
}

.tooltip .in {
	width: 100%;
	height: 100%;
	background-color: white;
	border-radius: 50%;
	color: #444;
	text-align: center;
	line-height: 60px;
	font-size: 2em;
	font-family: cursive;
	transition: background-color .3s ease-in-out;
}

.tooltip.viewed .in {
	background-color: #ffffff80;
}

.out:hover {
	border: 3px solid #909090;
}

	.out:hover .in {
		background-color: #909090;
	}

.tooltip.viewed .out:hover {
	border: 3px solid #90909080;
}

	.tooltip.viewed .out:hover .in {
		background-color: #90909080;
	}
