/* Kukuri - Doesn't work outside this file */
.link--kukuri:hover {
	color: #7DC456;
}

.link--kukuri::after {
	position: absolute;
	top: 50%;
	right: 1px;

	width: 100%;
	height: 16px;
	margin-top: -8px;

	content: '';
	transition: transform .4s;
	transition-timing-function: cubic-bezier(.7, 0, .3, 1);
	transform: translate3d(-100%, 0, 0);

	background: #dedede;
}

.link--kukuri:hover::after {
	right: 0;

	transform: translate3d(101%, 0, 0);
}

.link--kukuri::before {
	position: absolute;
	z-index: 2;

	overflow: hidden;

	width: 0;

	content: attr(data-letters);
	transition: width .4s .3s;
	white-space: nowrap;

	color: #7DC456;
}

.link--kukuri:hover::before {
	width: 100%;
}

/* Takiri */
.link--takiri {
	font-family: 'Playfair Display', serif;
	font-size: 7em;
	font-weight: 700;
	font-style: italic;

	padding: 0 10px 20px;

	transition: color .5s;
}

.link--takiri:hover {
	color: #1e1a1b;
}

.link--takiri::before {
	position: absolute;
	z-index: -1;
	top: 50%;
	left: -10%;

	width: 120%;
	height: 36px;
	margin-top: -18px;

	content: '';
	transition: transform .5s;
	transform: rotate3d(0, 0, 1, 45deg) scale3d(0, 1, 1);

	background: #f9f9f9;
}

.link--takiri:hover::before {
	transform: rotate3d(0, 0, 1, 45deg) scale3d(1, 1, 1);
}

.link--takiri span {
	font-size: 20%;
	font-weight: 400;

	position: absolute;
	right: 15px;
	bottom: 0;

	transition: transform .5s, opacity .5s;
	transform: translate3d(-10px, -10px, 0);

	opacity: 0;
	color: #e53369;
}

.link--takiri:hover span {
	transform: translate3d(0, 0, 0);

	opacity: 1;
}

/* Surinami */
.link--surinami {
	font-family: 'Playfair Display', serif;
	font-size: 9em;
	font-weight: 400;

	padding: 0 0 .125em;

	text-transform: uppercase;

	color: #3a4945;
}

.link--surinami::before,
.link--surinami::after {
	position: absolute;
	z-index: -1;

	width: 100%;
	height: 3px;

	content: '';
	transition: transform .5s;
	transform: scale3d(0, 1, 1);

	background: #3a4945;
}

.link--surinami::before {
	top: 0;
	right: 0;

	-ms-transform-origin: 100% 50%;
	transform-origin: 100% 50%;
}

.link--surinami::after {
	bottom: 0;
	left: 0;

	-ms-transform-origin: 0 50%;
	transform-origin: 0 50%;
}

.link--surinami:hover::before,
.link--surinami:hover::after {
	transform: scale3d(1, 1, 1);
}

.link--surinami span {
	position: relative;

	transition: color .5s;
}

.link--surinami:hover span {
	color: transparent;
}

.link--surinami span::before,
.link--surinami span::after {
	position: absolute;

	transition: transform .5s, opacity .5s;

	opacity: 0;
	color: #fff;
}

.link--surinami span::before {
	left: 0;

	content: attr(data-letters-l);
	transform: translate3d(-5px, 0, 0);
}

.link--surinami span::after {
	right: 0;

	content: attr(data-letters-r);
	transform: translate3d(5px, 0, 0);
}

.link--surinami:hover span::before,
.link--surinami:hover span::after {
	transform: translate3d(0, 0, 0);

	opacity: 1;
}

/* Nukun */
.link--nukun {
	font-weight: 900;

	overflow: hidden;

	padding: 10px 0;

	transition: color .3s;
	text-transform: uppercase;

	color: #e3e8dc;
}

.link--nukun:hover {
	color: #1e1a1b;
}

.link--nukun::before,
.link--nukun::after {
	position: absolute;
	bottom: 0;
	left: 35%;

	width: 30%;
	height: 5px;

	content: '';
	transition: transform .5s;
	transition-timing-function: cubic-bezier(.2, 1, .3, 1);

	background: #e3e8dc;
}

.link--nukun::after {
	transform: translate3d(-300%, 0, 0) scale3d(0, 1, 1);

	background: #acd07a;
}

.link--nukun:hover::before {
	transform: translate3d(300%, 0, 0) scale3d(0, 1, 1);
}

.link--nukun:hover::after {
	transform: translate3d(0, 0, 0) scale3d(1, 1, 1);
}

.link--nukun span {
	position: relative;

	display: inline-block;

	transition: transform .5s, color .5s;
	transition-timing-function: cubic-bezier(.2, 1, .3, 1);
	transform: perspective(1000px) rotate3d(0, 1, 0, 0deg);

	color: #e3e8dc;
}

.link--nukun:hover span {
	transform: perspective(1000px) rotate3d(0, 1, 0, 180deg);

	color: #fff;
}

/* Kumya */
.link--kumya {
	font-family: 'Syncopate', sans-serif;
	font-size: 6.5em;
	line-height: 1;

	overflow: hidden;

	padding: 10px 10px 0;

	color: #242424;
}

.link--kumya:hover {
	color: #242424;
}

.link--kumya::after {
	position: absolute;
	z-index: -1;
	top: 0;
	right: 0;

	width: 100%;
	height: 100%;

	content: '';
	transition: transform .5s;
	transition-timing-function: cubic-bezier(.7, 0, .3, 1);
	transform: translate3d(101%, 0, 0);

	background: #242424;
}

.link--kumya:hover::after {
	transform: translate3d(0, 0, 0);
}

.link--kumya span {
	position: relative;

	display: block;
}

.link--kumya span::before {
	position: absolute;
	left: 0;

	overflow: hidden;

	width: 0;

	content: attr(data-letters);
	transition: width .5s;
	transition-timing-function: cubic-bezier(.7, 0, .3, 1);
	white-space: nowrap;

	color: #fff;
}

.link--kumya:hover span::before {
	width: 100%;
}

/* Urpi */
.link--urpi {
	font-family: 'Oswald', sans-serif;
	font-size: 10em;
	font-weight: 700;

	transition: color 0s .5s;
	text-transform: uppercase;

	color: #e78383;
}

.link--urpi:hover {
	transition: none;

	color: transparent;
}

.link--urpi::before,
.link--urpi::after {
	position: absolute;
	top: 0;
	left: 0;

	overflow: hidden;

	content: attr(data-letters);
	transition: color .5s, transform .5s;

	color: #e78383;

	-webkit-backface-visibility: hidden;
}

.link--urpi::before {
	-webkit-clip-path: url(#cp_up);
	clip-path: url(../index.html#cp_up);
}

.link--urpi::after {
	-webkit-clip-path: url(#cp_down);
	clip-path: url(../index.html#cp_down);
}

.link--urpi:hover::before,
.link--urpi:hover::after {
	transition: color .5s, transform .5s;

	color: #fff;
}

.link--urpi:hover::before {
	transform: translate3d(4px, 1px, 0);
}

.link--urpi:hover::after {
	transform: translate3d(-4px, -1px, 0);
}

/* Mallki */
.link--mallki {
	font-family: 'Dosis', sans-serif;
	font-weight: 800;

	overflow: hidden;

	transition: color .5s .25s;

	color: #81a689;
}

.link--mallki:hover {
	transition: none;

	color: transparent;
}

.link--mallki::before {
	position: absolute;
	top: 50%;
	left: 0;

	width: 100%;
	height: 6px;
	margin: -3px 0 0 0;

	content: '';
	transition: transform .4s;
	transition-timing-function: cubic-bezier(.7, 0, .3, 1);
	transform: translate3d(-100%, 0, 0);

	background: #fff;
}

.link--mallki:hover::before {
	transform: translate3d(100%, 0, 0);
}

.link--mallki span {
	position: absolute;
	top: 0;
	left: 0;

	overflow: hidden;

	width: 100%;
	height: 50%;
}

.link--mallki span::before {
	position: absolute;
	left: 0;

	width: 100%;

	content: attr(data-letters);
	transition: transform .5s;

	color: red;
	color: #fff;
}

.link--mallki span:nth-child(2) {
	top: 50%;
}

.link--mallki span:first-child::before {
	top: 0;

	transform: translate3d(0, 100%, 0);
}

.link--mallki span:nth-child(2)::before {
	bottom: 0;

	transform: translate3d(0, -100%, 0);
}

.link--mallki:hover span::before {
	transition-delay: .3s;
	transition-timing-function: cubic-bezier(.2, 1, .3, 1);
	transform: translate3d(0, 0, 0);
}

/* Manko */
.link--manko {
	font-family: 'Playfair Display', serif;
	font-weight: 900;
	font-style: italic;

	padding: .65em 0 .8em;

	transition: color .5s;

	color: #b1c0b2;
}

.link--manko:hover {
	color: #1e1a1b;
}

.link--manko::before,
.link--manko::after {
	position: absolute;

	content: '';
	transition: transform .4s;
	transition-timing-function: cubic-bezier(.2, 1, .3, 1);
	transform: scale3d(0, 1, 1);
	pointer-events: none;

	border-width: 4px 0;
	border-style: solid;
	border-color: #fff;
}

.link--manko::before {
	top: 10%;
	left: 25%;

	width: 50%;
	height: 80%;
}

.link--manko::after {
	top: 0;
	left: 35%;

	width: 30%;
	height: 100%;
}

.link--manko:hover::before,
.link--manko:hover::after {
	transform: scale3d(1, 1, 1);
}

.link--manko span {
	font-size: .2em;
	font-weight: 400;

	position: absolute;
	left: 0;

	width: 100%;

	transition: opacity .5s, transform .5s;
	pointer-events: none;

	opacity: 0;
	color: #60ab64;
}

.link--manko span:first-of-type {
	bottom: 100%;

	margin-bottom: 15px;

	transform: scale3d(.8, .8, 1) translate3d(0, 10px, 0);
}

.link--manko span:last-of-type {
	top: 100%;

	margin-top: 10px;

	transform: scale3d(.8, .8, 1) translate3d(0, -10px, 0);
}

.link--manko:hover span {
	transform: translate3d(0, 0, 0);

	opacity: 1;
}

.link--manko:hover span:first-of-type {
	transition-delay: .15s;
}

.link--manko:hover span:last-of-type {
	transition-delay: .20s;
}

/* Ilin */
.link--ilin {
	font-weight: 900;
	line-height: .8;

	overflow: hidden;

	text-transform: uppercase;

	color: #adaa88;
}

.link--ilin span {
	position: relative;

	display: inline-block;

	transition: color .5s;
}

.link--ilin:hover span:first-of-type {
	color: #fff;
}

.link--ilin:hover span:last-of-type {
	color: #1e1a1b;
}

.link--ilin span::before {
	line-height: .8;

	position: absolute;

	width: 100%;
	height: 100%;

	content: '';
	transition: transform .5s;

	background: #fff;
}

.link--ilin span:last-of-type::before {
	background: #1e1a1b;
}

.link--ilin:hover span:last-of-type::before,
.link--ilin span:first-of-type::before {
	transform: translate3d(0, -150%, 0);
}

.link--ilin:hover span:first-of-type::before,
.link--ilin span:last-of-type::before {
	transform: translate3d(0, 150%, 0);
}

/* Asiri */
.link--asiri {
	position: relative;

	width: 400px;
	height: 200px;
}

.link--asiri .text-fill {
	position: relative;

	overflow: hidden;

	width: 100%;
	height: 100%;
}

.link--asiri canvas {
	width: 100%;
	height: 100%;
}

.link--asiri .svg-inverted-mask {
	position: absolute;
	top: 0;
	left: 0;

	width: 400px;
	height: 200px;

	box-shadow: inset 0 0 0 2px #222;
	/* FF rendering issue */
}

.link--asiri .shape--fill {
	fill: #222;
}

.link--asiri .text--transparent {
	transition: fill .2s;

	fill: #95d384;
}

.link--asiri:hover .text--transparent {
	fill: transparent;
}

.svg--asiri .mask__shape {
	fill: white;
}

.text--asiri {
	font-size: 150px;
	font-weight: 900;

	text-transform: uppercase;

	stroke: #fff;
	stroke-width: 1.5;
}

/* Yaku */
.link--yaku {
	font-family: 'Playfair Display';
	font-size: 10em;
	font-weight: 400;

	overflow: hidden;

	padding: 0 0 10px;

	text-transform: uppercase;

	color: #d3d3d3;
}

.link--yaku::before {
	position: absolute;
	left: 0;

	width: 100%;
	height: 100%;

	content: '';
	transition: transform .5s;
	transform: translate3d(-101%, 0, 0);

	border-width: 2px 0;
	border-style: solid;
	border-color: #282828;
}

.link--yaku:hover::before {
	transform: translate3d(0, 0, 0);
}

.link--yaku span {
	position: relative;

	display: inline-block;

	transition: transform .5s, color .5s;
	transform: perspective(1000px) rotate3d(0, 1, 0, 0deg);
}

.link--yaku:hover span {
	transform: perspective(1000px) rotate3d(0, 1, 0, 360deg);

	color: #1e1a1b;
}

.link--yaku span:nth-child(4),
.link--yaku:hover span:first-child {
	transition-delay: 0s;
}

.link--yaku span:nth-child(3),
.link--yaku:hover span:nth-child(2) {
	transition-delay: .1s;
}

.link--yaku span:nth-child(2),
.link--yaku:hover span:nth-child(3) {
	transition-delay: .2s;
}

.link--yaku span:first-child,
.link--yaku:hover span:nth-child(4) {
	transition-delay: .3s;
}

/* Media Queries */
@media screen and (max-width: 50em) {
	.link--surinami {
		font-size: 3em;
	}
}

@media screen and (max-width: 42em) {
	.link--takiri {
		font-size: 3.5em;
	}

	.link--kukuri {
		font-size: 3.5em;
	}

	.link--nukun {
		font-size: 3.5em;
	}

	.link--kumya {
		font-size: 3em;
	}

	.link--manko {
		font-size: 3.5em;
	}

	.link--urpi {
		font-size: 5em;
	}

	.link--mallki {
		font-size: 3.5em;
	}

	.link--ilin {
		font-size: 5em;
	}

	.link--asiri {
		transform: scale3d(.65, .65, 1);
	}

	.link--yaku {
		font-size: 4em;
	}
}