/* VARIABLES */
:root {
	--charcoal: #161616;
	--beige: #E8E2CE;
	--brown: #B17A49;

	--red: #781800;
	--red-light: #CF342E;
	--blue: #003B87;
	--blue-light: #006BBD;
	--green: #3C7034;
}


/* FONT */
@font-face {
    font-family: 'KNOCK';
    src: url("../font/KNOCK-Bold.eot");
    src: url("../font/KNOCK-Bold.eot?#iefix") format('embedded-opentype'),
         url("../font/KNOCK-Bold.woff") format('woff'),
         url("../font/KNOCK-Bold.ttf") format('truetype'); /* Safari, Android, iOS */
    font-style: normal;
    font-weight: bold;
    text-rendering: optimizeLegibility; 
}
@font-face {
    font-family: 'KNOCK';
    src: url("../font/KNOCK-Regular.eot");
    src: url("../font/KNOCK-Regular.eot?#iefix") format('embedded-opentype'),
         url("../font/KNOCK-Regular.woff") format('woff'),
         url("../font/KNOCK-Regular.ttf") format('truetype'); /* Safari, Android, iOS */
    font-style: normal;
    font-weight: normal;
    text-rendering: optimizeLegibility; 
}
@font-face {
    font-family: 'KNOCK';
    src: url("../font/KNOCK-Light.eot");
    src: url("../font/KNOCK-Light.eot?#iefix") format('embedded-opentype'),
         url("../font/KNOCK-Light.woff") format('woff'), /* Modern Browsers */
         url("../font/KNOCK-Light.ttf") format('truetype'); /* Safari, Android, iOS */
    font-style: normal;
    font-weight: 100;
    text-rendering: optimizeLegibility; 
}

@font-face {
  font-family: 'Noe Display';
  src: url("../font/Noe_Display_Medium.eot");
  src: url("../font/Noe_Display_Medium?#iefix") format("embedded-opentype"), 
  		url("../font/Noe_Display_Medium.woff") format("woff"), 
  		url("../font/Noe_Display_Medium.ttf") format("truetype");
  font-style: normal;
  font-weight: 100;
  text-rendering: optimizeLegibility; 
}



/* GLOBAL */
* {
	-webkit-font-smoothing: antialiased;
	box-sizing: border-box;
}

body {
	background: var(--charcoal);
    font-family: "KNOCK", sans-serif;	
    font-weight: 100;
    /*cursor: url('img/shapes/circle.svg'), auto;	*/
}

h1, h2, h3 {
	font-family: "Noe Display", serif;	
    font-weight: 500;		
}
h1 {
	font-size: 8em;
    line-height: 1em;
} 
h2 {
	font-size: 2em;
}

a {
	text-decoration: none;
	color: inherit;
	font-family: "KNOCK", sans-serif;
	font-weight: bold;
}
.button {
	background: var(--charcoal);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--beige);
	font-size: 0.75em;
	padding: 17px 40px;
	border-radius: 50px;
}
.button.arrow {
	background: var(--beige);
	color: var(--charcoal);
	position: relative;
	padding-right: 70px;
}
.button.arrow::after {
	position: absolute;
	content: url(../img/arrow.svg);
	transform: scale(0.75) rotate(-90deg);
    right: 30px;
    top: 5px;
}

a:hover {
	opacity: 0.8 !important;
}
.text-link-caps {
	text-transform: uppercase;
	font-size: 0.75em;
	letter-spacing: 1px;
}
.text-link-caps.light {
	filter: invert(0.9);
}

.container {
	padding: 0 100px;
}

.nav {
	position: absolute;
	width: 100%;
	z-index: 999;
	display: flex;
	justify-content: space-between;
	padding: 50px;
	opacity: 0;
	animation: 1s forwards ease fadein;
	animation-delay: 1s;
}
.nav.fixed {
	position: fixed;
}
.nav.scrolled {
	filter: invert(0.9);
}
.nav .logo {
	width: 90px;
}
.nav-return {
	transform: rotate(90deg);
}


/* LANDING PAGE SPECIFIC */
.section-landing {
	background: var(--beige);
	height: 90vh;
	min-height: 700px;
	position: relative;
}
.section-landing .text-group {
	position: absolute;
	top: 50%;
	transform: translateY(-25%);
}
.section-landing .text-group h1 {
	opacity: 0;
	color: #161616;
	animation: 1s forwards ease fadein;
}
.section-landing .text-group p {
	margin-top: 20px;
	width: 60ch;
	opacity: 0;
	animation: 1s forwards ease fadein;
	animation-delay: 1s;
}

.scroll-arrow {
	position: absolute;
    bottom: 50px;
    right: 50px;
    opacity: 0;
    animation: 1s forwards ease fadein, 1.5s infinite ease-out bounce;
	animation-delay: 1s;
}

.line-one, .line-two, .line-two-word {
	position: relative;
}
.line-one-dia, .line-two-square, .line-two-word-star {
	position: absolute;
}
.line-one-dia {
	right: -20px;
    bottom: 25px;
    animation: 4s infinite linear reverse rotate;
}
.line-two-square {
	right: -8px;
    bottom: 30px;
    animation: 3s infinite linear rotate;
}
.line-two-word-star {
    left: 150px;
    top: 2px;
    width: 28px;
    animation: 5s infinite linear rotate;
}
.line-two-word:before {
	position: absolute;
	content: "";
	background: var(--beige);
	height: 20px;
	width: 20px;
	left: 154px;
    top: 6px;
}

.section-cards {
	padding: 150px 0;
	min-height: 100vh;
}
.direction {
	color: var(--beige);
	position: relative;
	margin: auto;
	width: 400px; /** TODO update **/
	text-align: center;
}
.direction-star, .direction-circle {
	position: absolute;
}
.direction-star {
	left: 0;
	top: 13px;
	width: 15px;
}
.direction-circle {
	right: 0;
	top: 16px;
	width: 10px;
}


/* CARD DETAIL PAGE SPECIFIC */
.section-card-detail {
	display: grid;
	grid-template-columns: 0.5fr 1fr;
	grid-template-rows: 1fr;
	min-height: 100vh;
	position: relative;
}
.section-card-detail .container {
	padding-top: 150px;
	padding-bottom: 150px;
}
.section-card-detail h4 {
	font-family: "KNOCK", sans-serif;
    font-weight: bold;
    text-transform: uppercase;
    font-size: 0.9em;
    margin-bottom: 10px;
}

.card-detail-card {
	background: var(--beige);
	width: 100%;
	text-align: center;
}
.card-detail-card .card-wallpaper-download {
	visibility: hidden;
	opacity: 0;
	animation: 1s forwards ease fadein;
	animation-delay: 2.5s;
}
.card-detail-card .card-wallpaper-download h4 {
    margin-bottom: 15px;
}
.card-detail-card .card-wallpaper-download .button {
    padding: 12px 25px;
    margin: 0 2px;
    display: inline-block;
}

.card-detail-text {
	color: var(--beige);
	opacity: 0;
	animation: 1s forwards ease fadein;
	animation-delay: 2.5s;
	position: relative;
}
.card-detail-text .container {
	max-width: 820px;
}
.card-detail-text .sublabel {
	text-transform: uppercase;
	color: var(--brown);
	letter-spacing: 0.1em;
	font-family: "KNOCK", sans-serif;
	font-weight: bold;
	margin-bottom: 15px;
}
.card-detail-text h1 {
	font-size: 4em;
	display: inline-block;
}
.card-detail-text .pronounciation-group {
	display: inline-block;
	margin-left: 20px;
}
.card-detail-text .phonetic {
	display: inline-block;
	font-weight: bold;
}
.card-detail-text .audio {
	display: inline-block;
	position: relative;
    left: 15px;
    top: 5px;
}
.card-detail-text .audio:hover {
	opacity: 0.8;
	cursor: pointer;
}
.card-detail-text .audio .play-audio {
    width: 20px;
    filter: invert(0.9);
}
.card-detail-text .source-group {
	font-size: 0.75em;
	margin-top: 100px;
}
.card-detail-text .source {
	list-style: none;
	padding: 0;
}
.card-detail-text .source li {
	display: inline-block;
	margin-right: 20px;
}
.card-detail-text .text-group {
	margin: 40px 0;
}

.card-detail-text .text-group a {
	position: relative;
	padding-right: 30px;
}
.card-detail-text .text-group a::after {
	position: absolute;
	content: url(../img/arrow.svg);
	transform: scale(0.5) rotate(-135deg);
	right: 0;
    bottom: -11px;
}
.card-detail-text .text-group ul {
	list-style: none;
	padding-left: 35px;
}
.card-detail-text .text-group li {
	position: relative;
    margin: 8px 0;
}
.card-detail-text .text-group li::before {
	position: absolute;
	content: url(../img/shapes/dia.svg);
	left: -40px;
    top: -4px;
    transform: scale(0.5);
}
.card-detail-text .button.arrow {
	display: inline-block;
	margin-top: 50px;
}

/* BACKGROUND */
.bg-country {
	position: absolute;
	z-index: -1;
	top: 200px;
	right: 100px;	
}
.bg-country.gentileza {
	width: 40%;
}
.bg-country.meraki {
	width:	50%;
}
.bg-country.wuwei {
	width: 45%;
}
.bg-country.sisu {
	width: 25%;
	right: 200px;
}
.bg-country.ubuntu {
	width: 40%;
}

/* TEASER (NEXT CARD) */
.section-card-detail.teaser {
    height: 350px;
    min-height: initial;
    overflow: hidden;
}
.section-card-detail.teaser .card-detail-card {
	background: var(--brown);
}


/* CARDS */
.card-list-container {
	list-style: none;
	display: flex;
	flex-flow: row wrap;
	justify-content: center;
	padding: 0;
	max-width: 1300px;
	margin: 50px auto 0 auto;
}
.card {
	max-width: 300px;
	margin: 25px;
	box-shadow: 0 5px 0 0 #000000;
	border-radius: 25px;
	transition: all ease 0.2s;
}
.card:hover {
	box-shadow: 0 15px 0 0 #000000;
	transform: translateY(-10px);
	cursor: pointer;
}

/* CARD FRONT & BACK */
.card-group {
	width: 300px;	
	perspective: 1000px;
	height: 427px;
	opacity: 0;
	margin: 0 auto 80px auto;
	animation: 1s forwards ease slide, 1s forwards ease fadein;
}
.card-group-inner {
	position: relative;
	width: 100%;
  	height: 100%;
  	text-align: center;
  	transform-style: preserve-3d;
  	animation: 1s forwards ease flip;
  	animation-delay: 1s;	
}

.card-front, .card-back {
	position: absolute;
	width: 100%;
	height: 100%;
	-webkit-backface-visibility: hidden; /* Safari */
  	backface-visibility: hidden;
  	box-shadow: 0 5px 0 0 #000000;
  	border-radius: 25px;
	overflow: hidden;
}

.card-back {
	padding: 35px 30px 60px 30px;
	color: #fff;
	transform: rotateY(180deg);
}
.card-back h3 { 
    font-size: 3em;
    line-height: 1em;
    margin: 30px 0 25px 0;
}
.card-back h3.extra-space {
	margin: 50px 0 40px 0;
}
.card-back mark {
	color: #fff;
	background: transparent;
	position: relative;
}
.card-back mark::after {
	background: #ffffff;
	opacity: 0.3;
	content: "";
	position: absolute;
	height: 22px;
    top: 25px;
	left: -5px;
	z-index: -1;
	animation: 1s forwards ease grow;
	animation-delay: 2.5s;
}
.card-back mark span {
	position: relative;
	z-index: 1;
}
.card-back .card-logo {
    filter: invert(1);
    width: 45px;
    position: absolute;
    bottom: 25px;
    left: 50%;
    transform: translateX(-50%);
}
.card-back p {
	padding: 0 20px;
	font-size: 0.75em;
	line-height: 1.1em;
	font-family: "KNOCK", sans-serif;
	margin-bottom: 10px;
	font-weight: normal;
}
.card-back p b {
	font-family: "KNOCK", sans-serif;
	font-weight: bold;
}
.card-back p.sublabel {
	text-transform: uppercase;
	font-size: 0.5em;
	font-family: "KNOCK", sans-serif;
	font-weight: bold;
	letter-spacing: 0.1em;
}

/* COLOR PER CARD */
.card-back.gentileza {
	background: var(--green);
}
.card-back.meraki {
	background: var(--blue-light);
}
.card-back.wuwei {
	background: var(--red);
}
.card-back.sisu {
	background: var(--blue);
}
.card-back.ubuntu {
	background: var(--red-light);
}


.smaller-mobile-only {
	display: none;
}


/* 1440 AND SMALLER */
@media only screen and (max-width: 1440px) {
	.container {
		padding: 0 50px;
	}

	.section-card-detail {
		grid-template-columns: 0.25fr 1fr;
	}
}


/* 1024 AND SMALLER */
@media only screen and (max-width: 1024px) {
	h1 {
		font-size: 6em;
	}
	.line-one-dia {
		width: 20px;
	    right: -15px;
    	bottom: 20px;
	}
	.line-two-word::before {
		left: 114px;
    	top: 3px;
	}
	.line-two-word-star {
	    left: 112px;
    	top: 1px;
    	width: 22px;
	}
	.line-two-square {
		right: -10px;
	    bottom: 25px;
	    width: 13px;
	}

	.card-detail-text h1 {
		margin-bottom: 0;
	}
	.card-detail-text .pronounciation-group {
		display: block;
	    margin: 0px 0 20px 0;
	}

	.bg-country {
		top: 150px;
		right: 50px;
	}
	.bg-country.gentileza {
		width: 45%;
	}
	.bg-country.meraki {
		width: 60%;
	}
	.bg-country.wuwei {
		width: 50%;
	}
	.bg-country.sisu {
		width: 30%;
	    right: 100px;
	}
	.bg-country.ubuntu {
		width: 50%;
	}
}


/* 768 AND SMALLER */
@media only screen and (max-width: 768px) {
	.nav {
		padding: 20px;
	}
	.text-link-caps.light {
		color: var(--charcoal);
		filter: none;
		margin-top: 10px;
	}
	.container {
		padding: 0 20px;
	}
	h1 {
		font-size: 4em;
	}
	h2 {
		font-size: 1.5em;
	}
	.line-one-dia {
	    width: 15px;
	    right: -12px;
	    bottom: 12px;
	}
	.line-two-word::before {
	    left: 71px;
	    top: -6px;
	}
	.line-two-word-star {
	    left: 74px;
	    top: 0;
	    width: 16px;
	}
	.line-two-square {
	    right: -7px;
	    bottom: 15px;
	    width: 10px;
	}
	.section-landing .text-group p {
		width: 80%;
	}

	.direction {
		width: 300px;
	}
	.direction-star {
	    top: 10px;
	    width: 13px;
	}
	.direction-circle {
	    top: 13px;
    	width: 8px;
	}
	.scroll-arrow {
		right: 30px;
		bottom: 30px;
		width: 20px;
	}

	.section-card-detail {
		display: block;
	}
	.section-card-detail .container {
		padding-bottom: 100px;
		padding-top: 100px;
	}
	.card-detail-text .source {
		margin-top: 50px;
	}

	.bg-country {
		top: 100px;
	}

	.button.arrow {
		padding-right: 40px;
	}
	.button.arrow::after {
		display: none;
	}
	.smaller-mobile-only {
		display: inline-block;
		opacity: 1 !important;
		animation: none !important;
		margin-bottom: 50px;
	}

}


/* 480 AND SMALLER */
@media only screen and (max-width: 480px) {
	h1 {
		font-size: 3em;
	}

	.section-landing .text-group {
		padding-right: 20px;
	}

	.line-one-dia {
	    width: 13px;
	    right: -10px;
	    bottom: 9px;
	}
	.line-two-word::before {
	    display: none;
	}
	.line-two-word-star {
		display: none;
	}
	.line-two-square {
	    right: -6px;
	    bottom: 12px;
	    width: 8px;
	}
	.section-landing .text-group p {
		width: 100%;
	}

	.direction {
		width: auto;
    	padding: 0 30px;
	}

	.section-card-detail .container {
		padding-bottom: 70px;
		padding-top: 80px;
	}
	.card-detail-text .container {
		padding-top: 50px;
	}
	.card-detail-text .source {
		margin-top: 50px;
	}
	.card-group {
		margin-bottom: 50px;
	}

	.bg-country {
		right: 20px;
	}
	.bg-country.gentileza {
		width: 65%;
	}
	.bg-country.meraki {
		width: 80%;
	}
	.bg-country.wuwei {
		width: 80%;
	}
	.bg-country.sisu {
	    width: 40%;
	    right: 70px;
	}
	.bg-country.ubuntu {
		width: 60%;
	}
}

/* 480 AND SMALLER */
@media only screen and (max-width: 340px) {
	.card-group {
		width: 100%;
		animation: 2s forwards slide, 1s forwards ease fadein;
	}
	.card-group-inner {
		animation: 0s forwards flip;
	}
	.card-back {
		height: auto;
	}
	.card-back h3 {
		margin: 30px 0 20px 0;
	}
}





@keyframes rotate {
	0% { transform: rotate(0); }
	100% { transform: rotate(360deg); }
}
@keyframes bounce { 
	0% { transform: translateY(0); }
	50% { transform: translateY(-20px); }
	100% { transform: translateY(0); }
}
@keyframes fadein {
	0% { visibility: visible; opacity: 0; }
	100% { visibility: visible; opacity: 1; }	
}
@keyframes slide {
	0% { transform: translateY(150px); }
	100% { transform: translateY(0); }
}
@keyframes flip {
	0% { transform: rotateY(0); }
	100% { transform: rotateY(-180deg); }
}
@keyframes grow {
	0% { width: 0; }
	100% { width: calc(100% + 10px); }
}