*, ::after, ::before {
    box-sizing: border-box;
}

body {
	margin: 0;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	font-family: 'Press-Start';
	color: #14303e;
	background-color: #ebecf0;
	background-image: url("/assets/img/bg-grain.png");
	background-repeat: repeat;
	transition: all ease 0.3s;
}

body.dark {
	color: #ebecf0;
	background-color: #14303f;
	background-image: url("/assets/img/bg-grain-dark.png");
}

a {
	text-decoration: none;
	transition: all ease 0.3s;
}

.mobile {
	display: none !important;
}

header {
	transition: ease-in 0.3s;
    color: #14303e;
    background-color: #ebecf0;
    background-image: url(/assets/img/bg-grain.png);
    background-repeat: repeat;
    box-shadow: 0 0 10px 0 #00000073;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 2;
}

body.dark header {
	color: #ebecf0;
	background-color: #14303f;
	background-image: url("/assets/img/bg-grain-dark.png");
    box-shadow: 0 0 10px 0 #00000073;
}

.header-inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
    height: 70px;
}

h1 {
	font-size: 26px;
	margin: 0;
}

#modeSwitch {
	width: 66px;
	height: 44px;
	background: transparent;
	border: none;
	padding: 0;
}

#modeSwitch::after {
	background-image: url('/assets/img/lights-on.png');
	background-size: 66px 44px;
	background-repeat: no-repeat;
	display: inline-block;
	width: 66px;
	height: 44px;
	content: "";
}

#modeSwitch.dark::after {
	background-image: url('/assets/img/lights-off.png');
}

#headerSpace {
    height: 70px;
	background-color: #ff5f5f;
}

#hero {
	background-image: url('/assets/img/hero-bg.png');
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center;
	height: 60vh;
}

.hero-inner {
	height: 60vh;
	display: flex;
	align-items: start;
	justify-content: center;
}

#heroImage {
	margin-top: 130px;
	position: relative;
	animation: float 2s ease-in-out infinite;
}

#heroImage img {
	width: 400px;
}

#heroImage p {
	position: absolute;
	top: 80px;
	left: calc(50% - 130px);
	color: #ebecf0;
	font-size: 20px;
	margin: 0;
}

@keyframes float {
	0% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(-12px);
	}

	100% {
		transform: translateY(0);
	}
}

#title {
    padding: 150px 0;
    text-align: center;
}

#title p {
    font-size: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#tools img {
    max-width: 100px;
    max-height: 100px;
}

#projects {
    position: relative;
    background: #000;
	overflow-x: hidden;
}

video {
    width: 100%;
}

#projectsWrap {
    position: absolute;
    top: 0;
    width: 100%;
    padding-top: 80px;
}

h2 {
    text-align: center;
    margin-bottom: 80px;
    -webkit-text-stroke: thin;
    -webkit-text-stroke-color: white;
    color: #14303e;
}

#projectsInner {
	display: grid;
	font-size: 0;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: auto;
	grid-gap: 22px 22px;
	justify-content: center;
}

#projectsInner a {
	border-image: url("/assets/img/projects-border.png") 30 stretch;
	border-width: 20px;
	border-style: solid;
	border-radius: 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 285 / 107;
}

#projectsInner a.bg-light {
	background-color: #ebecf0 !important;
}

#projectsInner a.bg-dark {
	background-color: #14303f !important;
}

#projectsInner a:hover {
	transform: scale(1.03);
}

#projectsInner img {
	max-width: 100%;
	max-height: 100%;
}

footer {
    padding-bottom: 50px;
	background: #000;
}

#footer-top {
	display: flex;
	justify-content: center;
}

#footer-image {
	position: relative;
}

#monkeySmoke {
	position: absolute;
	top: 180px;
	right: 3px;
}

#footer-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 80px;
    padding: 0 40px;
	border-radius: 30px;
	background-color: #ebecf0;
	background-image: url("/assets/img/bg-grain.png");
	background-repeat: repeat;
}

body.dark #footer-bottom {
	color: #ebecf0;
	background-color: #14303f;
	background-image: url("/assets/img/bg-grain-dark.png");
}

#footer-bottom p,
#footer-bottom a {
	margin: 0;
	color: #14303e;
}

body.dark #footer-bottom p,
body.dark #footer-bottom a {
	color: #ebecf0;
}

#socials img {
    width: 25px;
    aspect-ratio: 1;
}

.cube-wrap {
    width: 50px;
    height: 50px;
    display: flex;
    margin-left: 25px;
}

.cube {
	width: 100%;
	height: 100%;
	position: relative;
	transform-style: preserve-3d;
	transition: transform 0.2s ease-in-out;
}

.face {
	position: absolute;
	width: 50px;
	height: 50px;
	background-color: #ebecf0;
	background-image: url("/assets/img/bg-grain.png");
	display: flex;
	justify-content: center;
	align-items: center;
	transition: all ease 0.3s;
}

body.dark .face {
	background-color: #14303f;
	background-image: url("/assets/img/bg-grain-dark.png");
}

.cube-wrap img {
	max-width: 100%;
	max-height: 100%;
}

.front {
	transform: rotateY(0deg) translateZ(25px);
}

.back {
	transform: rotateY(180deg) translateZ(25px);
}

.right {
	transform: rotateY(90deg) translateZ(25px);
}

.left {
	transform: rotateY(-90deg) translateZ(25px);
}

.top {
	transform: rotateX(90deg) translateZ(25px);
}

.bottom {
	transform: rotateX(-90deg) translateZ(25px);
}

