[class*=hint--] {
	position: relative;
	display: inline-block;
}

[class*=hint--]:after, [class*=hint--]:before {
	position: absolute;
	-webkit-transform: translate3d(0, 0, 0);
	-moz-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
	visibility: hidden;
	opacity: 0;
	z-index: 1000000;
	pointer-events: none;
	-webkit-transition: .3s ease;
	-moz-transition: .3s ease;
	transition: .3s ease;
	-webkit-transition-delay: 0s;
	-moz-transition-delay: 0s;
	transition-delay: 0s;
}

[class*=hint--]:hover:after, [class*=hint--]:hover:before {
	visibility: visible;
	opacity: 1;
	-webkit-transition-delay: .1s;
	-moz-transition-delay: .1s;
	transition-delay: .1s;
}

[class*=hint--]:before {
	content: "";
	position: absolute;
	background: 0 0;
	border: 6px solid transparent;
	z-index: 1000001;
}

[class*=hint--]:after {
	background: #383838;
	color: #fff;
	padding: 8px 10px;
	font-size: 12px;
	font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
	line-height: 12px;
	white-space: nowrap;
	text-shadow: 0 -1px 0 #000;
	box-shadow: 4px 4px 8px rgba(0, 0, 0, .3);
}

[class*=hint--][aria-label]:after {
	content: attr(aria-label);
}

[class*=hint--][data-hint]:after {
	content: attr(data-hint);
}

[aria-label='']:after, [aria-label='']:before, [data-hint='']:after, [data-hint='']:before {
	display: none !important;
}

.hint--top-left:before, .hint--top-right:before, .hint--top:before {
	border-top-color: #383838;
}

.hint--top:after, .hint--top:before {
	bottom: 100%;
	left: 50%;
}

.hint--top:before {
	margin-bottom: -11px;
	left: calc(50% - 6px);
}

.hint--top:after {
	-webkit-transform: translateX(-50%);
	-moz-transform: translateX(-50%);
	transform: translateX(-50%);
}

.hint--top:hover:before {
	-webkit-transform: translateY(-8px);
	-moz-transform: translateY(-8px);
	transform: translateY(-8px);
}

.hint--top:hover:after {
	-webkit-transform: translateX(-50%) translateY(-8px);
	-moz-transform: translateX(-50%) translateY(-8px);
	transform: translateX(-50%) translateY(-8px);
}

.hint--left:before {
	border-left-color: #383838;
	margin-right: -11px;
	margin-bottom: -6px;
}

.hint--left:after {
	margin-bottom: -14px;
}

.hint--left:after, .hint--left:before {
	right: 100%;
	bottom: 50%;
}

.hint--left:hover:after, .hint--left:hover:before {
	-webkit-transform: translateX(-8px);
	-moz-transform: translateX(-8px);
	transform: translateX(-8px);
}

.hint--bounce:after, .hint--bounce:before {
	-webkit-transition: opacity .3s ease, visibility .3s ease, -webkit-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);
	-moz-transition: opacity .3s ease, visibility .3s ease, -moz-transform .3s cubic-bezier(.71, 1.7, .77, 1.24);
	transition: opacity .3s ease, visibility .3s ease, transform .3s cubic-bezier(.71, 1.7, .77, 1.24);
}