/*!
* Styles Version: 3.0.0 - v10 Migration
* Name: Styles
*/

/* ===[ CSS Variables ]=== */
:root {
	--color-primary: #FF535A;
	--color-text: #1A2732;
	--color-bg: #E0E6E6;
	--color-text-muted: #4D5A65;
	--color-white: #FFFFFF;

	--font-base: 'Open Sans', sans-serif;
	--font-heading: 'Ubuntu', sans-serif;

	--font-size-base: 1.375rem; /* 22px */
	--font-size-h1: 3.125rem; /* 50px */
	--font-size-icon-lg: 3.125rem; /* 50px */
	--font-size-icon-md: 2.5rem; /* 40px */
	--font-size-small: 1.25rem; /* 20px */
	--font-size-footer: 1.125rem; /* 18px */

	--transition-fast: 0.3s ease;
	--transition-medium: 0.5s ease;
	--transition-slow: 1s ease;

	--z-canvas: -1;
	--z-overlay: 10;
	--z-pageload: 15;
	--z-pageload-dots: 16;
}

/* ===[ BS3 Utility Classes (removed in BS5) ]=== */
.show {
	display: block !important;
}

.hidden {
	display: none !important;
}

/* ===[ Base Styles ]=== */
html {
	font-size: 16px;
}

html, body {
	height: 100%;
	min-height: 100%;
	margin: 0;
	padding: 0;
}

body {
	color: var(--color-text);
	font-size: var(--font-size-base);
	font-weight: 400;
	background: var(--color-bg);
	font-family: var(--font-base);
	overflow-x: hidden;
}

a {
	color: var(--color-text);
	text-decoration: none;
	outline: none;
	cursor: pointer;
}

a:hover, a:focus {
	color: var(--color-primary);
	text-decoration: none;
}

h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
	font-family: var(--font-heading);
}

h1, .h1 {
	font-size: var(--font-size-h1);
	font-weight: 700;
}

canvas {
	position: absolute;
	margin: 0;
	width: 100%;
	height: 100%;
	z-index: var(--z-canvas);
}

ol, ul {
	padding-left: 0;
}

/* ===[ Bootstrap Buttons ]=== */
.btn-spacer {
	margin-right: 0.9375rem;
}

.btn-stretch {
	width: 100%;
	margin-bottom: 0.9375rem;
}

/* ===[ Top Navigation Bar ]=== */
.navigation-top {
	width: 100%;
}

.navigation-top .navigation-logo {
	float: left;
	transition: all var(--transition-slow);
}

.navigation-top .navigation-logo-text {
	float: left;
	margin-left: 1.25rem;
}

.navigation-top .overlay-close {
	transition: all var(--transition-slow);
	cursor: pointer;
}

.navigation-top .overlay-close:hover {
	color: var(--color-primary);
}

.navigation-top .overlay-open {
	top: 0;
	right: 0;
	transition: all var(--transition-slow);
	cursor: pointer;
}

.navigation-top .fa-nav-size {
	font-size: var(--font-size-icon-lg);
}

.navigation-top a {
	display: block;
	padding: 1.25rem;
}

/* ===[ Overlay ]=== */
.overlay {
	position: fixed;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	background: var(--color-bg);
}

.overlay .overlay-close {
	color: var(--color-bg);
}

.overlay nav {
	position: relative;
	top: 45%;
	height: 60%;
	text-align: center;
	transform: translateY(-50%);
}

.overlay ul {
	display: inline-block;
	position: relative;
	height: 100%;
	margin: 0 auto;
	padding: 0;
	list-style: none;
}

.overlay ul li {
	display: block;
	height: 20%;
	height: calc(100% / 5);
	min-height: 3.375rem;
	backface-visibility: hidden;
}

.overlay ul li a {
	display: block;
	color: var(--color-bg);
	cursor: pointer;
	font-family: var(--font-heading);
	font-size: var(--font-size-h1);
	font-weight: 700;
	transition: color var(--transition-medium);
}

.overlay ul li a:hover,
.overlay ul li a:focus {
	color: var(--color-primary);
	text-decoration: none;
}

@media (max-width: 48rem) {
	.overlay nav {
		top: 40%;
	}
}

/* ===[ Page Layout ]=== */
.container {
	display: none;
	width: 100%;
	max-width: none;
	padding-left: 0;
	padding-right: 0;
	overflow: hidden;
	transition: transform var(--transition-medium);
}

.container-inner {
	width: 64rem;
	margin: 0 auto;
}

.container .curve {
	margin-top: -0.4em;
	background: var(--color-primary);
}

.container .curve a:hover,
.container .curve a:active,
.container .curve a:focus {
	color: var(--color-bg);
	cursor: pointer;
}

.container .curve-up,
.container .curve-down {
	min-width: 62.5rem;
	overflow-x: hidden;
}

.container .curve-up path,
.container .curve-down path {
	fill: var(--color-primary);
	stroke: var(--color-primary);
}

.container.overlay-open {
	transform: translateX(100%);
}

.container.overlay-open::after {
	transition: opacity var(--transition-medium);
	opacity: 1;
	visibility: visible;
}

.overlay-contentpush {
	backface-visibility: hidden;
	transform: translateX(-100%);
	transition: transform var(--transition-medium), visibility 0s 0.5s;
	background: var(--color-text);
	visibility: hidden;
}

.overlay-contentpush.open {
	transform: translateX(0%);
	transition: transform var(--transition-medium);
	visibility: visible;
	z-index: var(--z-overlay);
}

@media (max-width: 68.75rem) {
	.container-inner {
		width: 80%;
		margin: 0 auto;
	}
}

/* ===[ Pages, Home ]=== */
.home-me {
	border-radius: 50%;
	margin-top: 5%;
	margin-bottom: 1.25rem;
	width: 18.75rem;
	height: 18.75rem;
}

.home-me-text-h1,
.home-me-text-h2 {
	text-align: center;
}

.home-me-text-h2 {
	color: var(--color-text-muted);
	font-family: var(--font-base);
}

.home-me-social {
	list-style: none;
	display: flex;
	justify-content: center;
	gap: 1.25rem;
	margin: 1.875rem auto;
	width: 16.25rem;
}

.home-me-social li {
	font-size: var(--font-size-icon-lg);
	padding: 1.25rem;
}

@media (max-width: 48rem) {
	.home-me {
		width: 12.5rem;
		height: 12.5rem;
	}
	.home-me-social {
		margin: 1.25rem auto;
		width: 8.125rem;
	}
	.home-me-social li {
		font-size: 1.5625rem;
		padding: 0.625rem;
	}
}

@media (max-width: 31.25rem) {
	.home-me-text-h1 {
		font-size: 1.875rem;
	}
	.home-me-text-h2 {
		font-size: var(--font-size-small);
	}
}

/* ===[ Pages, About ]=== */
.about-resume {
	margin-top: 1.25rem;
	margin-bottom: 0.625rem;
}

.about-me-social {
	list-style: none;
	display: flex;
	gap: 0.625rem;
}

.about-me-social li {
	font-size: var(--font-size-icon-md);
	padding: 0.625rem 1.25rem 0.625rem 0;
}

.about-me-picture {
	border-radius: 50%;
	margin-top: 5%;
	width: 13.75rem;
	height: 13.75rem;
}

.about-me-list {
	list-style: none;
	margin-left: 0;
}

.about-me-list2 {
	margin-left: 1.5625rem;
}

.about-me-sub-listing {
	font-size: var(--font-size-small);
}

.about-me-message {
	margin-left: 0.9375rem;
}

@media (max-width: 48rem) {
	.about-me-social li {
		font-size: 1.875rem;
	}
}

/* ===[ Pages, Portfolio ]=== */
.image-source-link {
	color: var(--color-primary);
}

.half-space {
	padding-bottom: 0.5rem;
}

.full-space {
	padding-bottom: 1rem;
}

.text-gallery {
	float: left;
	margin-left: 0;
	margin-right: 0.625rem;
}

.text-gallery .hidden {
	display: none;
}

.portfolio-me-list {
	list-style: none;
	margin-left: 0;
}

.thumbnail {
	padding: 0.25rem;
	margin-bottom: 1.25rem;
	background-color: var(--color-white);
	border: 1px solid #DDD;
	border-radius: 0.25rem;
}

.portfolio-img-games {
	padding: 0.9375rem;
}

.portfolio-img-games img {
	border-radius: 0.3125rem;
}

/* ===[ Development ]=== */
.development-logo {
	display: block;
	position: absolute;
	top: 25%;
	left: 50%;
	margin-left: -15.625rem; /* Half of max-width for centering */
	max-width: 31.25rem;
}

.development-img img {
	display: block;
	margin: 0 auto;
}

.development-text {
	display: block;
	text-align: center;
}

#development-page .col-6,
#development-page .col-md-3,
#development-page .col-lg-2 {
	margin-top: 1.25rem;
	margin-bottom: 1.875rem;
}

/* ===[ GLightbox Overrides ]=== */
.glightbox-clean .gslide-title {
	font-family: var(--font-heading);
	color: var(--color-text);
}

.glightbox-clean .gslide-description {
	font-family: var(--font-base);
}

.glightbox-clean .gnext,
.glightbox-clean .gprev {
	background-color: rgba(26, 39, 50, 0.6);
}

.glightbox-clean .gclose {
	background-color: rgba(26, 39, 50, 0.6);
}

/* ===[ Page Transition Overlay ]=== */
.pageload-overlay {
	position: fixed;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	background: var(--color-white);
	visibility: hidden;
	opacity: 0;
	z-index: var(--z-pageload);
}

.pageload-overlay.show {
	visibility: visible;
}

.pageload-spinner {
	position: absolute;
	left: 50%;
	top: 50%;
	display: flex;
	gap: 1rem;
	transform: translate(-50%, -50%);
	opacity: 0;
	transition: opacity 0.15s;
}

.pageload-dot {
	width: 1.25rem;
	height: 1.25rem;
	border-radius: 50%;
}

.pageload-dot:first-child {
	background: var(--color-primary);
	animation: moveLeft 0.6s linear infinite alternate;
}

.pageload-dot:last-child {
	background: var(--color-text);
	animation: moveRight 0.6s linear infinite alternate;
}

@keyframes moveRight {
	to {
		transform: translateX(1.25rem);
	}
}

@keyframes moveLeft {
	to {
		transform: translateX(-1.25rem);
	}
}

.pageload-loading .pageload-spinner {
	opacity: 1;
}

/* ===[ Button to Top ]=== */
.button-top {
	color: var(--color-text);
	border-radius: 0.3125rem;
	bottom: 0;
	display: block;
	font-size: var(--font-size-icon-lg);
	padding: 0.625rem 1.25rem;
	position: fixed;
	right: 0;
	cursor: pointer;
	transition: all var(--transition-slow);
}

.button-top:hover,
.button-top:focus {
	color: var(--color-primary);
}

/* ===[ Footer ]=== */
.footer-text {
	font-size: var(--font-size-footer);
	padding: 3.75rem 0 1.25rem 0;
	text-align: center;
}

@media (max-width: 48rem) {
	.footer-text {
		padding: 3.75rem 0.625rem;
	}
}

/* ===[ Effects ]=== */
.barrel_roll {
	transition: transform 4s ease;
	transform: rotate(360deg);
}
