
/* VARIABLES */

:root {

	/* colour themes */
	--c-peach: #FEBC9D;
	--c-peach-alt: #F06565;
	
	--c-purple: #A68EFC;
	--c-purple-alt: #626FE3;

	--c-green: #27CEB0;
	--c-green-alt: #0087B2;

	 /* base colours */
	--c-high: var(--c-purple);
	--c-diff: var(--c-purple-alt);
	--c-base: #2D2D2D;
	--c-medi: #595959;
	--c-lite-medi: #D8D8D8;
	--c-lite: #E7E7E7;
	--c-white: #FFFFFF;

	/* sizes */
	--l-super: 960px;
	--l-base: 720px;
	--l-cozy: 480px;
	--l-half: 360px;
	--l-part: 120px;

	/* vertical nuggets */
	--v-cozy: 8px;
	--v-half: 12px;
	--v-base: 16px;
	--v-base-plus: 20px;
	--v-spacious: 24px;
	--v-spacious-plus: 32px;
	--v-headspace: 40px;
	--v-headspace-plus: 64px;
	--v-chunky: 80px;
	--v-fat: 160px;
}

/* RESETS */

html {
	margin: 0;
	padding: 0;
}

a {
	text-decoration: none;
	color: inherit;
}

a:hover {
	cursor: pointer;
}

h4, h5 {
	margin: 0;
}

/* COMMONS */

::selection {
	background: #CFFFF6;
	color: #00463A;
}

body {
	margin: 0;
	color: var(--c-base);
	padding-top: var(--v-chunky);
	display: grid;
	font-family: 'PT Sans', 'Helvetica', 'Arial', sans-serif;
}

.inline-link {
	font-weight: 700;
	position: relative;
	text-decoration-color: var(--c-diff);
	text-decoration-thickness: 2px;
	text-decoration-style: solid;
	text-decoration-line: underline;
}

.inline-link:hover,
.inline-link:focus {
	color: var(--c-high);
	outline: none;
	text-decoration-color: var(--c-high);
	text-decoration-thickness: 2px;
	text-decoration-style: wavy;
}

.util-crosshair {
	position: fixed;
	top: 40%;
	height: 100px;
	/* background: rgba(255,0,0,0.5); */
	z-index: 9999;
	left: 0;
	right: 0;
}


/* case study type, etc */

.cs h1 {
	text-align: center;
	padding: 0 var(--v-base);
}

.cs h3 {
	justify-self: unset;
	margin: var(--v-spacious) 0;
	font-weight: 700;
}

.cs .visual {
	margin-top: var(--v-chunky);
	margin-right: -24px;
}

.cs img {
	margin-bottom: var(--v-headspace);
}

.cs p + svg,
.cs p + img {
	margin-bottom: var(--v-chunky);
}

.cs .cozy {
	grid-column: cozy;
	max-width: 100%;
}

.cs .full {
	grid-column: full;
	max-width: 100%;
}

.cs .super {
	grid-column: super;
	max-width: 100%;
}

nav.cs-nav {
	text-align: left;
}

nav.cs-nav > span {
	opacity: 0.8;
}

.cs p,
.cs ul,
.cs ol,
.cs h1,
.cs h2,
.cs h3 {
	grid-column: full;
}

.cs p,
.cs ul,
.cs ol {
	margin-bottom: var(--v-base-plus);
}

.cs .duration-preview {
	text-align: center;
	/*font-weight: 700;*/
	color: var(--c-medi);
}

/* zoom  */

.zoomable:hover {
	cursor: zoom-in;
}

.image-zoomed {
	position: relative;
	max-width: unset;
	width: 80vw;
	transform: translateX(-50%);
	left: 50%;
}

.image-zoomed:hover {
	cursor: zoom-out;
}



h1 {
	font-family: 'PT Serif', 'Helvetica', 'Arial', sans-serif;
	font-weight: 700;
	font-size: var(--v-headspace);
	margin: var(--v-spacious) 0;
}

h2 {
	font-family: 'PT Serif', 'Helvetica', 'Arial', sans-serif;
	font-weight: 400;
	font-size: var(--v-spacious-plus);
	margin: var(--v-chunky) 0 var(--v-base) 0;
}

h3 {
	font-weight: 400;
	font-size: var(--v-base-plus);
	color: var(--c-base);
	margin: var(--v-spacious);
	font-family: 'PT Serif', 'Helvetica', 'Arial', sans-serif;
	text-align: center;
}

p, ul, li {
	font-weight: 400;
	font-size: var(--v-base-plus);
	margin: 0;
	line-height: 1.6;
}

svg:active * {
	fill: var(--c-white);
	stroke: var(--c-medi);
	cursor: zoom-in;
}

/* NAVIGATION */

nav {
	height: var(--v-chunky);
    margin-top: var(--v-base-plus);
	grid-column: full;
	width: 840px;
    border: 1px dotted var(--c-lite);
	background: var(--c-white);
	position: fixed;
    left: 50%;
	top: 0;
	text-align: left;
	padding-left: var(--v-headspace-plus);
    transform: translateX(-50%);
	z-index: 1000;
	box-shadow: 0px 12px 18px rgba(0, 0, 0, 0.04);
	transition: 0.3s;
	border-radius: var(--v-spacious);

}

nav:hover {
    transform: translateX(-50%) scale(1.01) translateY(2px);
	border: 1px dotted var(--c-lite-medi);
}

nav a {
	font-size: var(--v-base-plus);
	line-height: var(--v-chunky);
	height: var(--v-chunky);
	padding: 0 var(--v-headspace);
	position: relative;
	display: inline-block;
	font-weight: 700;
}

nav a::after {
	content: '';
	background: var(--c-high);
	width: var(--v-base);
	height: var(--v-base);
	display: block;
	position: absolute;
	border-radius: 50%;
	bottom: 50%;
	left: 16px;
	transition: 0.3s;
	transform: translateY(50%) scale(0);
	opacity: 0;
}

nav a.nav-link-active::after {
	background: var(--c-high);
}

nav a:hover {
	cursor: pointer;
	color: var(--c-high);
	outline: none;
}


nav a:focus {
	/* STYLES TBA */
	outline: none;
}

.nav-link-active::after {
	transform: translateY(50%) scale(1);
	opacity: 1;
}

/* themes */

.themes {
	display: inline-block;
	position: absolute;
	top: calc(var(--v-chunky) / 2);
	transform: translateY(-50%);
	right: var(--v-headspace);
}

.themes > div {
	display: inline-block;
	padding: var(--v-half);
	position: relative;
}

.themes > div:hover {
	cursor: pointer;
}

.themes .dot {
	width: var(--v-half);
	height: var(--v-half);
	display: inline-block;
	margin: 0 auto;
	border-radius: 5px;
	transition: 0.3s;
	transform: rotate(45deg);
}

.themes > div:hover .dot {
	transform: scale(1.25);
	cursor: pointer;
}

.themes > div:hover .label {
	opacity: 1;
	transform: translateY(0px);
}

.themes > div.theme-active .dot {
	transform: scale(1.75)
}

.label {
	position: absolute;
	bottom: -42px;
	display: block;
	background: rgba(0,0,0,0.5);
	color: #fff;
	padding: 12px;
	border-radius: 12px;
	opacity: 0;
	transition: 0.3s;
	transform: translateY(12px);
}

.peach-container .dot {
	background: var(--c-peach);
}

.peach-container .label {
	left: -16px;
}

.purple-container .dot {
	background: var(--c-purple);
}

.purple-container .label {
	left: -17px;
}

.mono-container .dot {
	background: #DBDBDB;
}

.mono-container .label {
	left: -12px;
}

.dark-mono-container .dot {
	background: #000000;
}

.dark-mono-container .label {
	left: -62px;
}

/* LAYOUT */

section, footer {
	width: var(--l-super);
	display: grid;
	grid-template-columns: var(--l-part) var(--l-part) var(--l-part) var(--l-part) var(--l-part) var(--l-part) var(--l-part) var(--l-part);
	justify-self: center;
	grid-template-areas: ". . cozy cozy cozy cozy . ." ". full full full full full full ." "super super super super super super super super";
	margin-bottom: var(--v-fat);
}

#hello {
	margin-top: var(--v-chunky);
}

#work > p {
	justify-self: center;
}

.visual {
	width: 120px;
	grid-column: cozy;
	justify-self: center;
	border-radius: 50%;
	text-align: center;
	overflow: visible;
}

.visual svg {
	overflow: visible;
}

#cup {
	animation: hover 3s infinite;
}

#cup-shadow {
	opacity: 0.4;
	transform: scale(1);
	transform-origin: bottom;
	animation: cup-shadow 3s infinite;
}

#cup-stop {
	animation: stop-color 3s infinite;
}

#f1, #f2, #f3 {
	transform: scaleY(0);
	transform-origin: 0px 35px;
	animation: fume infinite;
	opacity: 1;
}

#f1 {
	animation-delay: 0.2s;
	animation-duration: 2s;
}

#f2 {
	animation-delay: 0.8s;
	animation-duration: 3s;
}

#f3 {
	animation-duration: 1s;
}

#cup-tri {
	animation: spin-out 4s infinite linear;
	opacity: 0;
	transform: translate(32px, 32px) rotate(0deg);
}

#cup-oval-big {
	animation: oval-big 6s infinite linear;
	transform: translate(0px, 0px) rotate(0deg);
	opacity: 0;
	animation-delay: 1.2s;
}

#cup-oval-small {
	animation: oval-small 3s infinite linear;
}

#bubble-oval1 {
	animation: bubble-up 2s infinite ease-out;
	animation-delay: 0s;
}

#bubble-oval2 {
	animation: bubble-up 2s infinite ease-out;
	animation-delay: 0.35s;
}

#bubble-oval3 {
	animation: bubble-up 2s infinite ease-out;
	animation-delay: 0.75s;
}

#bubble-head {
	animation: bubble-head 5s infinite;
	transform-origin: 67px 75px;
}

#bubble-joint2 {
	animation: bubble-head 4s infinite;
	animation-delay: 0.5s;
	transform-origin: 67px 75px;
	animation-direction: reverse;
}

#bubble-joint1 {
	animation: bubble-head 3s infinite;
	animation-delay: 1s;
	transform-origin: 67px 75px;
}

#bubble-f1 {
	animation: bubble-f1 3.1s infinite;
	animation-delay: 0.5s;
	transform-origin: top left;
	transform: translate(5px, 5px) rotate(0deg);

}

@keyframes bubble-f1 {
	0% {
		transform: translate(5px, 5px) rotate(0deg);
		opacity: 0;
	}

	50% {
		opacity: 1;
	}

	100% {
		transform: translate(-20px, -10px) rotate(106deg);
		opacity: 0;
	}
}

#bubble-f2 {
	animation: bubble-f2 2.2s infinite;
	animation-delay: 0.7s;
	transform-origin: top right;
	transform: translate(0px, 0px) rotate(0deg);
}

@keyframes bubble-f2 {
	0% {
		transform: translate(0px, 0px) rotate(0deg);
		opacity: 0;
	}

	50% {
		opacity: 1;
	}

	100% {
		transform: translate(30px, 40px) rotate(40deg);
		opacity: 0;
	}
}

#bubble-f3 {
	animation: bubble-f3 3.6s infinite;
	animation-delay: 0.2s;
	transform-origin: top right;
	transform: translate(0px, 0px) rotate(0deg);
}

@keyframes bubble-f3 {
	0% {
		transform: translate(0px, 0px) rotate(0deg);
		opacity: 0;
	}

	50% {
		opacity: 1;
	}

	100% {
		transform: translate(-20px, 10px) rotate(-10deg);
		opacity: 0;
	}
}


@keyframes bubble-head {
	0% {
		transform: translate(0px, 0px) rotate(0deg);
	}

	33% {
		transform: translate(2px, -2px) rotate(6deg);
	}

	66% {
		transform: translate(2px, -2px) rotate(-6deg);
	}

	100% {
		transform: translate(0px, 0px) rotate(0deg);
	}
}

@keyframes bubble-up {
	0% {
		transform: translateY(0px);
	}

	25% {
		transform: translateY(-8px);
	}

	50% {
		transform: translateY(0px);
	}

	100% {
		transform: translateY(0px);
	}
}

@keyframes oval-small {
	0% {
		opacity: 0;
		transform: translate(0px, 0px) rotate(0deg);
	}

	50% {
		opacity: 1;
	}

	100% {
		opacity: 0;
		transform: translate(-6px, -32px) rotate(0deg);	
	}
}

@keyframes oval-big {
	0% {
		opacity: 0;
		transform: translate(0px, 0px) rotate(0deg);
	}

	50% {
		opacity: 1;
	}

	100% {
		opacity: 0;
		transform: translate(32px, -32px) rotate(0deg);

	}
}

@keyframes spin-out {
	0% {
		opacity: 0;
		transform: translate(32px, 32px) rotate(0deg);
	}

	60% {
		opacity: 0.6;
		transform: translate(-8px, -8px) rotate(-40deg);
	}

	100% {
		opacity: 0;
		transform: translate(-16px, -16px) rotate(-80deg);
	}
}

@keyframes stop-color {
	0% {
		stop-color: #DCDCDC;
	}

	50% {
		stop-color: #BCBCBC;
	}

	100% {
		stop-color: #DCDCDC;
	}
}

@keyframes fume {
	0% {
		opacity: 1;
		transform: scaleY(0);
	}
	60% {
		opacity: 1;
	}

	100% {
		transform: scaleY(1);
		opacity: 0;

	}
}

@keyframes cup-shadow {
	0% {
		opacity: 0.4;
		transform: scale(1);
	}
	50% {
		opacity: 1;
		transform: scale(1.2);
	}
	100% {
		opacity: 0.4;
		transform: scale(1);
	}
}

@keyframes hover {
	0% {
		transform: translateY(0px);
	}
	50% {
		transform: translateY(8px);
	}
	100% {
		transform: translateY(0px);
	}
}


#rocket {
	animation: rocket-moves 8s infinite;
}

@keyframes rocket-moves {
	0% {
		transform: translate(0px, 0px);
	}

	25% {
		transform: translate(-4px, 8px);
	}

	50% {
		transform: translate(12px, 16px);
	}

	75% {
		transform: translate(-12px, 8px);
	}

	100% {
		transform: translate(0px, 0px);
	}
}

#rocket-beam-1-1 {
	animation: rocket-beam-1-1 2s infinite linear;
	transform-origin: 0px 90px;
}

@keyframes rocket-beam-1-1 {
	0% {
		transform: scaleY(1);
	}

	50% {
		transform: scaleY(0.5);
	}

	100% {
		transform: scaleY(1);
	}
}

#rocket-beam-1-2 {
	animation: rocket-beam-1-2 2s infinite linear;
	transform-origin: 0px 115px;
	/*animation-delay: 1s;*/
	opacity: 1;
}

@keyframes rocket-beam-1-2 {
	0% {
		transform: scaleY(1) translateY(0px);
		opacity: 0.3;
	}

	50% {
		transform: scaleY(2) translateY(-5px);
		opacity: 1;
	}

	100% {
		transform: scaleY(1) translateY(0px);
		opacity: 0.3;
	}
}

#rocket-beam-2-1 {
	animation: rocket-beam-1-2 2s infinite linear;
	transform-origin: 0px 90px;		
}

#rocket-beam-2-2 {
	animation: rocket-beam-1-1 2s infinite linear;
	transform-origin: 0px 120px;		
}

#rocket-beam-3-1 {
	animation: rocket-beam-1-1 2s infinite linear;
	transform-origin: 0px 90px;		
	animation-delay: 0.4s;	
}

#rocket-beam-3-2 {
	animation: rocket-beam-1-2 2s infinite linear;
	transform-origin: 0px 110px;
	animation-delay: 0.4s;	
}

#rocket-oval-large {
	animation: rocket-oval-1 4s infinite linear;
	animation-delay: 0.2s;
}
#rocket-oval-medium {
	animation: rocket-oval-1 6s infinite linear;
	animation-delay: 0.8s;
}
#rocket-oval-small {
	animation: rocket-oval-1 7s infinite linear;
}

@keyframes rocket-oval-1 {
	0% {
		transform: translateY(0px) scale(1);
		opacity: 0.2;
	}

	50% {
		transform: translateY(60px) scale(1);
		opacity: 1;
	}

	100% {
		transform: translateY(120px) scale(1);
		opacity: 0.2;
	}
}

#mag {
	transform: translate(0px, 0px) scale(1);
	animation: mag-moves 4s infinite;
}

#z1 {animation: z1-moves 4s infinite;}
#z2 {animation: z2-moves 4s infinite;}
#z3 {animation: z3-moves 4s infinite;}

#z1, #z2, #z3 {
	transform-origin: center;
	transform: translate(0px, 0px) scale(1);
}


@keyframes mag-moves {
	0% {
		transform: translate(-8px, 0px) scale(1.0);
	}

	33% {
		transform: translate(-36px, -2px) scale(1.1);
	}

	66% {
		transform: translate(-4px, -25px) scale(1.0);
	}

	100% {
		transform: translate(-8px, 0px) scale(1.0);
	}
}

@keyframes z3-moves {
	0% {
		transform: scale(1.2);
	}

	30% {
		transform: scale(1.0);
	}

	63% {
		transform: scale(1.0);
	}

	97% {
		transform: scale(1.2);
	}

	100% {
		transform: scale(1.2);
	}
}

@keyframes z2-moves {
	0% {
		transform: scale(1.0);
	}

	30% {
		transform: scale(1.3);
	}

	63% {
		transform: scale(1.0);
	}

	97% {
		transform: scale(1.0);
	}
}

@keyframes z1-moves {
	0% {
		transform: scale(1.0);
	}

	30% {
		transform: scale(1.0);
	}

	63% {
		transform: scale(1.2);
	}

	97% {
		transform: scale(1.0);
	}
}

section h1 {
	grid-column: cozy;
	justify-self: center;
}

section h3 {
    grid-column: 4 / 6;
    justify-self: center;
}

section p {
	grid-column: cozy;
}

/* HELLO SECTION */

.hello-separator {
	grid-column: full;
	margin: var(--v-spacious) 0;
}


hr {
    border-style: dashed none none none;
    margin-top: var(--v-spacious);
    color: var(--c-lite-medi);
}

.hello-intro {
	grid-column: cozy;
}

.hello-intro p.highlight {
	opacity: 1;
	transform: scale(1);
}

.hello-intro p {
	opacity: 0.8;
	transform: scale(.98);
	transition: 0.5s;
	position: relative;
	margin-bottom: var(--v-spacious);
}

.hello-intro p:last-child {
	margin: 0;
}

.hello-intro p i {
	font-style: normal;
	position: absolute;
	left: -36px;
	font-size: 24px;
}

.more-about {
	grid-column: cozy;
	height: 256px;
	overflow: hidden;
	transition: 0.5s;
	position: relative;
}

.more-about::before {
	content: '';
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	background: linear-gradient(360deg, #FFFFFF 0.26%, rgba(255, 255, 255, 0.825708) 13.1%, rgba(255, 255, 255, 0) 100%);
}

.more-about p {
	margin-top: var(--v-spacious);
}

.hello-section-active .more-about {
	height: 720px;
}

.hello-section-active .more-about::before {
	display: none;
}


.hello-section-active .hello-separator path {
	stroke: var(--c-diff);
}

.hello-section-active .more-about p {
	animation: appear 1.5s;
}

.ribbon-left {
	grid-column: 2 / span 2;
	align-self: center;
	justify-self: end;
}

.ribbon-right {
    grid-column: 6 / span 2;
	align-self: center;
	justify-self: auto;
}


.button-text {
	grid-column: cozy;
	justify-self: center;
	font-size: var(--v-base-plus);
	text-transform: uppercase;
	font-weight: 700;
	color: var(--c-diff);
	transition: 0.25s;
}

.button-text:hover {
	outline: none;
	color: var(--c-high);
}

/* WORK SECTION */

#work p {
	margin-bottom: var(--v-headspace);
}

.work-list {
	grid-column: full;
	list-style: none;
	margin-top: 0;
	padding: 0;
	display: grid;
	grid-template-columns: var(--l-part) var(--l-part) var(--l-part) var(--l-part) var(--l-part) var(--l-part);
	column-gap: 20px;
	margin-left: -50px;
	margin-bottom: var(--v-headspace);
}

.work-list li {
	background: #fff;
	box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);
	border-radius: var(--v-base);
	border: 1px solid rgba(0,0,0,0);
	position: relative;
	grid-column: span 3;
	margin-bottom: var(--v-base);
	display: block;
	transition: 0.3s;
	transform-origin: center;
	align-self: start;
}

.work-list.personal-projects li:after,
.work-list.articles li:after {
	content: '';
	position: absolute;
	background-image: url('../img/arrow-ext.svg');
	background-repeat: no-repeat;
	background-position: 50%;
	transition: 0.3s;
	transform: scale(0) rotate(45deg);
	opacity: 0;
	top: -8px;
	right: -8px;
	width: 24px;
	height: 24px;
	border-radius: 30%;
	background-color: var(--c-diff);
	z-index: 999;
	box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);
}

.work-list.case-studies li:after {
	content: '';
	position: absolute;
	background-image: url('../img/eye.svg');
	background-repeat: no-repeat;
	background-position: 50%;
	transition: 0.3s;
	transform: scale(0) rotate(45deg);
	opacity: 0;
	top: -8px;
	right: -8px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background-color: var(--c-high);
	z-index: 999;
	box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);	
}


.work-list a {
	display: grid;
	grid-template-columns: 48px 1fr;
	grid-template-rows: repeat(2, auto);
	grid-column-gap: 0px;
	grid-row-gap: 0px;
	padding: 20px;
	width: 100%;
	box-sizing: border-box;
}

.work-list a .button-arrow {
	opacity: 0;
}

.work-list li.inactive {
	opacity: 0.5;
	cursor: not-allowed!important;
}

.work-list li.inactive * {
	cursor: not-allowed!important;
}

.inactive .label {
	opacity: 0;
	bottom: 50%;
	left: 50%;
	transform: translate(-50%, 90%) scale(0.8);
	background: rgba(0,0,0,0.95);
	z-index: 9999;
	width: 80%;
	text-align: center;
}

.inactive:hover .label {
	opacity: 1;
	transform: translate(-50%, 50%) scale(0.8);

}

/* STYLES TBA */
/*.work-list a:focus {
	background: var(--c-high);
	opacity: 0.08;
}*/

.work-list header {
	height: 48px;
	vertical-align: middle;
}

.work-list .thumbnail {
	width: 48px;
	height: 48px;
	font-size: 32px;
	line-height: 48px;
	display: inline-block;
	background: var(--c-lite);
	border-radius: 50%;
	transition: 0.5s;
	position: relative;
	z-index: 0;
	text-align: center;
	border: 2px dashed rgba(255, 255, 255, 0);
	grid-area: 1 / 1 / 3 / 2;
}

.thumbnail svg {
	transition: 0.25s;
}

.work-list.personal-projects .thumbnail {
	background: var(--c-lite);
}

.svg-box-shadow {
	box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.16);
}

.work-list.personal-projects .button-text {
	color: var(--c-diff);
}

.work-list h4 {
	display: inline-block;
	font-family: 'PT Serif', 'Helvetica', 'Arial', sans-serif;
	font-size: var(--v-base-plus);
	font-weight: 700;
	vertical-align: top;
	width: 70%;
	margin-left: var(--v-base-plus);
	transition: 0.3s;
	position: relative;
	z-index: 5;
	box-sizing: border-box;
	grid-area: 1 / 2 / 2 / 3;
}

.work-list h4 em {
	font-style: normal;
	color: var(--c-high);
	display: block;
	font-size: 0.75em;
}

.work-list .description {
	display: block;
	margin-left: var(--v-base-plus);
	color: var(--c-medi);
	font-weight: 500;
	font-size: var(--v-base);
	margin-top: 4px;
	grid-area: 2 / 2 / 3 / 3;
}


/* list item hover state */

.nothing-to-see-here {
	opacity: 0;
	visibility: hidden;
}

.work-list li:hover {
	transform: translateY(-4px) scale(1.01);
	box-shadow: 0px 4px 20px rgba(0, 0, 0, 0.10);
	background: #FFF;
	border: 1px dotted var(--c-high);
}

.work-list li:hover .thumbnail svg {
	transform: scale(1.1);
}

.work-list li:hover .button-text {
	transform: translateY(0px);
	opacity: 1;
}

.work-list li:hover .thumbnail {
	border: 2px dashed rgba(255, 255, 255, 1)
}

.work-list li:hover .thumbnail {
	background: var(--c-high);
}


.work-list li:hover h4 {
	color: var(--c-high);
}

.work-list.case-studies li:hover:after {
	opacity: 1;
	transform: scale(1) rotate(0deg);
}

.work-list.personal-projects li:hover:after,
.work-list.articles li:hover:after {
	opacity: 1;
	transform: scale(1) rotate(0deg);
}

/* CONTACT SECTION */

#contact p {
	margin-bottom: var(--v-chunky);
}

.socials {
	grid-column: cozy;
	text-align: center;
	padding: 0;
}

.socials li {
	width: var(--v-headspace);
	height: var(--v-headspace);
	display: inline-block;
	vertical-align: top;
	margin: 0px var(--v-base);
	position: relative;
}

.socials li a {
	position: absolute;
	top: 0; left: 0; bottom: 0; right: 0;	
}

.socials li a span {
	opacity: 0;
	position: absolute;
}

.socials li svg {
	margin-top: 50%;
	transform: translateY(-50%);
}

.socials li:hover svg path,
.socials li a:focus svg path {
	fill: var(--c-high);
}

.socials li a:focus {
	outline: none;
}


footer {
	text-align: center;
	margin-top: var(--v-chunky);
	margin-bottom: 400px;
	font-size: var(--v-base);
}

.copy {
	color: var(--c-base);
	margin-bottom: var(--v-cozy);
	grid-column: cozy;
}

.weekday-greeting {
	grid-column: cozy;
	color: var(--c-medi);
}

/* ANIMATIONS */

@keyframes appear {
	0% {
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

/* ZENCASTR  */

.zencastr {
	cursor: url('../img/zencastr/cursor.svg'), pointer;
	background: #000;
	min-height: 100vh;
	text-align: center;
	color: rgb(204, 204, 204);
}

.zencastr h1 {
	color: #fff;
	height: auto;
	font-size: var(--v-chunky);
}

.zencastr h1 span {
	color: #007bff;
}

.zencastr p {
	max-width: 720px;
	text-align: left;
	margin: 0 auto var(--v-base-plus) auto;
}

.zencastr a {
	height: 48px;
	border-radius: 12px;
	color: #fff;
	display: inline-block;
	text-align: center;
	line-height: 48px;
	margin: 12px;
	width: 180px;
	font-weight: 700;
}

.zencastr-blue {
	background: #007bff;
}

.zencastr-purple {
	background: #6f42c1;
}

.zencastr-pink {
	background: #e83e8c
}

.zencastr .cta-wrapper {
	margin-bottom: var(--v-fat);
}

.zencastr-player {
	width: 480px;
	height: 480px;
	transition: 0.5s;
	margin: var(--v-chunky) auto;
}

.zencastr-player iframe {
	transition: 0.3s;
	animation: player-appear 2s;
}



@keyframes player-appear {
	0% {
		transform: rotateX(90deg);
		opacity: 0;
	}

	100% {
		transform: rotateX(0deg);
		opacity: 1;
	}
}



/* RWD */

@media screen and (max-width: 740px) {
	:root {
		/* sizes */
		--l-base: 100vw;
		--l-cozy: 100vw;
		--l-part: 100vw;
		--l-super: 100vw;
	}

	.hello-separator,
	.ribbon-right,
	.ribbon-left,
	.themes {
		display: none;
	}

	.cs p + svg, .cs p + img {
		margin-bottom: var(--v-base);
	}

	.cs h3 {
		margin: var(--v-spacious);
	}

	nav {
		width: 100vw;
		margin-top: 0;
		bottom: 0;
		top: unset;
		text-align: center;
		padding: 0;
		border-top: 1px dashed var(--c-lite-medi);
		border-radius: 0;
	}

	nav a {
		padding: 0 var(--v-base-plus);
	}

	nav.cs-nav > span {
		display: none;
	}

	nav a::after {
		width: var(--v-cozy);
		height: var(--v-cozy);
		left: var(--v-cozy);
	}

	section {
		display: grid;
		margin-bottom: var(--v-chunky);
		grid-template-columns: 100vw;
		grid-template-areas: "cozy" "full" "super";
	}

	section p {
		padding: 0 var(--v-spacious);
		margin-bottom: var(--v-base);
	}

	section h2 {
		padding: 0 var(--v-spacious);
	}

	section h3 {
		grid-column: 1 / 1;
	}

	section .button-text {
		margin-top: var(--v-headspace)
	}

	.hello-section-active .more-about {
		height: 880px;
	}

	@media screen and (max-width: 320px) {
		.hello-section-active .more-about { height: 860px; }
	}

	@media screen and (min-width: 424px) {
		.hello-section-active .more-about { height: 640px; }
	}

	.work-list {
		grid-template-columns: 90vw;
		column-gap: 0;
		margin: 0;
		box-sizing: border-box;
		justify-content: center;
	}

	.work-list li {
		background: #fff;
		grid-template-rows: 40% 60%;
		grid-column: span 1;
		margin: 0 0 var(--v-base) 0;
	}

	.work-list li h4 {
		grid-column: 2 / 4;
		align-self: center;
	}

	.work-list li h5 {
		grid-column: 2 / 5;
		align-self: start;
	}

	.work-list .button-text {
		opacity: 1;
		transform: none;
		grid-row: 2 / 3;
		grid-column: 2 / 3;
		justify-self: start;
	}

	#hello {
		margin-top: var(--v-headspace);
	}

	.more-about p {
		margin-top: var(--v-base);
	}

	.weekday-greeting {
		padding: 0 var(--v-headspace);
	}

	footer {
		display: block;
	}

	.zencastr {
		text-align: center;
	}

	.zencastr p {
		width: 90%;
		padding: 0 16px;
	}

	.zencastr h1 {
		font-size: var(--v-headspace);
	}

	.zencastr iframe,
	.zencastr-player {
		width: 90%!important;
		height: 375px!important;
	}

}

@media (prefers-reduced-motion: reduce) {
  *, ::before, ::after {
  	animation: none!important;
    animation-delay: -1ms !important;
    animation-duration: 1ms !important;
    animation-iteration-count: 1 !important;
    background-attachment: initial !important;
    scroll-behavior: auto !important;
    transition-duration: 0s !important;
    transition-delay: 0s !important;
  }
}
