:root{
	--mc: #a78bfa;
	--project-bg: linear-gradient(180deg, #05040a 0%, #0b0920 100%);
	--project-panel: rgba(32, 28, 56, 0.95);
	--project-panel-alt: rgba(13, 12, 26, 0.92);
	--project-surface: rgba(24, 22, 40, 0.96);
	--project-surface-alt: rgba(12, 11, 22, 0.9);
	--project-text: #f5f4ff;
	--project-muted: #c2c0d8;
	--project-border: rgba(167, 139, 250, 0.32);
	--project-alt-border: rgba(255, 255, 255, 0.08);
	--project-shadow: rgba(10, 8, 24, 0.85);
	--project-chip-bg: linear-gradient(135deg, rgba(255,255,255,0.08), rgba(89, 75, 141, 0.16));
	--project-link: #dcd5ff;
	--project-link-hover: #ffffff;
	--project-link-glow: rgba(167, 139, 250, 0.6);
	--project-glow-primary: rgba(167, 139, 250, 0.35);
	--project-glow-secondary: rgba(230, 149, 122, 0.24);
}

*,
*:before,
*:after{
	box-sizing: border-box;
}

html{
	min-height: 100%;
	background-color: #05040a;
	overflow-x: hidden;
}

body.project-page{
	margin: 0;
	min-height: 100vh;
	background-color: #05040a;
	background:
		radial-gradient(120% 120% at 0% 0%, rgba(167, 139, 250, 0.24), rgba(5, 4, 10, 0)),
		radial-gradient(160% 160% at 100% 0%, rgba(230, 149, 122, 0.16), rgba(5, 4, 10, 0)),
		var(--project-bg);
	color: var(--project-text);
	font-family: 'Jost', sans-serif;
	line-height: 1.7;
	position: relative;
	overflow-x: hidden;
	padding-bottom: 32px;
	overscroll-behavior: contain;
}

a{
	color: var(--project-link);
	text-decoration: none;
	transition: color .2s ease, text-shadow .2s ease;
}

a:hover{
	color: var(--project-link-hover);
	text-shadow: 0 0 12px var(--project-link-glow);
}

.project__hero{
	max-width: 1100px;
	margin: 48px auto 0;
	padding: 96px 48px 56px;
	text-align: left;
	border-radius: 32px;
	background: linear-gradient(135deg, var(--project-panel), var(--project-panel-alt));
	border: 1px solid var(--project-border);
	box-shadow: 0 70px 140px -90px var(--project-shadow);
	position: relative;
	overflow: hidden;
}

.project__hero:before,
.project__hero:after{
	content: '';
	position: absolute;
	border-radius: 50%;
	pointer-events: none;
}

.project__hero:before{
	width: 420px;
	height: 420px;
	top: -160px;
	left: -120px;
	background: radial-gradient(60% 60% at 50% 50%, var(--project-glow-primary), rgba(167, 139, 250, 0));
}

.project__hero:after{
	width: 360px;
	height: 360px;
	bottom: -180px;
	right: -140px;
	background: radial-gradient(60% 60% at 50% 50%, var(--project-glow-secondary), rgba(230, 149, 122, 0));
}

.project__hero > *{
	position: relative;
	z-index: 1;
}

.project__back{
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 32px;
	color: rgba(220, 213, 255, 0.8);
	font-weight: 500;
	font-size: 16px;
	background: rgba(255,255,255,0.05);
	padding: 10px 20px;
	border-radius: 999px;
	border: 1px solid var(--project-alt-border);
	backdrop-filter: blur(6px);
	transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.project__back:hover{
	transform: translateX(-4px);
	background: rgba(167, 139, 250, 0.25);
	box-shadow: 0 18px 42px -24px var(--project-glow-primary);
	text-decoration: none;
}

.project__hero h1{
	margin: 0 0 12px;
	font-size: 56px;
	line-height: 1.05;
	letter-spacing: -0.5px;
}

.project__subtitle{
	margin: 0 0 32px;
	max-width: 760px;
	color: var(--project-muted);
	font-size: 20px;
}

.project__meta{
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	color: var(--project-muted);
	font-size: 16px;
}

.project__meta li{
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 12px 18px;
	border-radius: 14px;
	background: var(--project-chip-bg);
	border: 1px solid var(--project-alt-border);
	backdrop-filter: blur(4px);
	letter-spacing: 0.2px;
}

.project__meta strong{
	color: var(--project-text);
	font-weight: 600;
}

.project__content{
	max-width: 1100px;
	margin: -36px auto 0;
	padding: 0 48px 120px;
	display: grid;
	gap: 44px;
	position: relative;
	z-index: 2;
}

.project__content section{
	background: linear-gradient(150deg, var(--project-surface), var(--project-surface-alt));
	border-radius: 28px;
	padding: 40px 44px;
	border: 1px solid var(--project-alt-border);
	box-shadow: 0 48px 110px -80px var(--project-shadow);
	overflow: hidden;
	position: relative;
	color: var(--project-text);
}

.project__content section:before{
	content: '';
	position: absolute;
	inset: 1px;
	border-radius: 26px;
	border: 1px solid rgba(255,255,255,0.05);
	pointer-events: none;
}

.project__content section:nth-of-type(odd):after{
	content: '';
	position: absolute;
	width: 280px;
	height: 280px;
	top: -160px;
	right: -120px;
	border-radius: 50%;
	background: radial-gradient(60% 60% at 50% 50%, var(--project-glow-primary), rgba(167,139,250,0));
	pointer-events: none;
}

.project__content section h2{
	margin: 0 0 20px;
	font-size: 30px;
	color: var(--project-text);
	position: relative;
	padding-left: 18px;
}

.project__content section h2:before{
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 6px;
	height: 32px;
	border-radius: 999px;
	background: linear-gradient(180deg, rgba(167,139,250,0.9), rgba(98,82,159,0.4));
}

.project__content p{
	margin: 0 0 18px;
	color: var(--project-muted);
}

.project__content ul{
	margin: 0;
	padding-left: 22px;
	color: var(--project-muted);
}

.project__content li + li{
	margin-top: 10px;
}

.project__gallery{
	position: relative;
}

.project__gallery-track{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 24px;
}

.project__gallery.is-carousel{
	padding-bottom: 64px;
	overflow: hidden;
}

.project__gallery.is-carousel .project__gallery-track{
	display: flex;
	gap: 0;
	overflow: hidden;
	transition: transform .45s ease;
}

.project__gallery.is-carousel .project__gallery-track figure{
	flex: 0 0 100%;
	max-width: 100%;
}

.project__gallery figure{
	margin: 0;
	background: linear-gradient(145deg, var(--project-surface), var(--project-surface-alt));
	padding: 18px;
	border-radius: 18px;
	border: 1px solid var(--project-alt-border);
	box-shadow: 0 34px 80px -60px var(--project-shadow);
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.project__gallery img{
	display: block;
	width: 100%;
	height: auto;
	border-radius: 12px;
	box-shadow: 0 18px 40px -28px rgba(0,0,0,0.7);
}

.project__gallery figcaption{
	font-size: 15px;
	color: var(--project-muted);
}

.project__gallery-nav{
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 46px;
	height: 46px;
	border-radius: 999px;
	border: 1px solid var(--project-alt-border);
	background: radial-gradient(120% 120% at 30% 30%, rgba(167,139,250,0.22), rgba(5,4,10,0.85));
	color: var(--project-text);
	display: none;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	backdrop-filter: blur(8px);
	box-shadow: 0 20px 45px -30px var(--project-shadow);
	transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.project__gallery-nav span{
	font-size: 20px;
	line-height: 1;
}

.project__gallery-nav:hover{
	transform: translateY(-50%) scale(1.04);
	box-shadow: 0 30px 60px -40px var(--project-shadow);
}

.project__gallery-nav--prev{
	left: 14px;
}

.project__gallery-nav--next{
	right: 14px;
}

.project__gallery.is-carousel.has-multiple .project__gallery-nav{
	display: inline-flex;
}

.project__gallery-dots{
	position: absolute;
	bottom: 12px;
	left: 50%;
	transform: translateX(-50%);
	display: none;
	gap: 10px;
}

.project__gallery.is-carousel.has-multiple .project__gallery-dots{
	display: inline-flex;
}

.project__gallery-dot{
	width: 12px;
	height: 12px;
	border-radius: 999px;
	border: 1px solid var(--project-alt-border);
	background: rgba(255,255,255,0.12);
	box-shadow: 0 10px 20px -12px var(--project-shadow);
	padding: 0;
	cursor: pointer;
	transition: width .2s ease, background .2s ease;
}

.project__gallery-dot[aria-current="true"]{
	width: 30px;
	background: linear-gradient(90deg, rgba(167,139,250,0.9), rgba(230,149,122,0.65));
}

.project__links{
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.project__links li{
	background: linear-gradient(135deg, var(--project-surface), var(--project-surface-alt));
	padding: 18px 20px;
	border-radius: 16px;
	border: 1px solid var(--project-alt-border);
	color: var(--project-muted);
	box-shadow: 0 24px 70px -52px var(--project-shadow);
	transition: transform .25s ease, box-shadow .25s ease;
}

.project__links li:hover{
	transform: translateY(-6px);
	box-shadow: 0 32px 80px -50px var(--project-shadow);
}

.project__links span{
	color: var(--project-text);
	font-weight: 600;
	margin-right: 6px;
}

.project__footer{
	max-width: 1100px;
	margin: 0 auto;
	padding: 36px 48px 64px;
	color: var(--project-muted);
	text-align: center;
	border-top: 1px solid var(--project-alt-border);
}

.project__footer a{
	font-weight: 600;
	color: var(--project-link);
}

.project__footer a:hover{
	color: var(--project-link-hover);
}

@media (max-width: 1024px){
	.project__hero{
		padding: 80px 40px 48px;
		margin: 32px 24px 0;
	}

	.project__content{
		padding: 0 32px 100px;
		margin: -28px auto 0;
	}

	.project__content section{
		padding: 36px 36px;
	}
}

@media (max-width: 768px){
	.project__hero{
		padding: 64px 28px 40px;
		margin: 28px 16px 0;
		border-radius: 26px;
	}

	.project__hero h1{
		font-size: 40px;
	}

	.project__subtitle{
		font-size: 18px;
	}

	.project__meta{
		gap: 10px;
	}

	.project__meta li{
		padding: 10px 14px;
		font-size: 15px;
	}

	.project__content{
		padding: 0 20px 80px;
		gap: 32px;
	}

	.project__content section{
		padding: 28px 24px;
		border-radius: 22px;
	}

	.project__content section:before{
		border-radius: 20px;
	}

	.project__content section h2{
		font-size: 26px;
	}

		.project__gallery-track{
			gap: 18px;
		}

		.project__gallery-nav{
			width: 40px;
			height: 40px;
		}

		.project__gallery-nav--prev{
			left: 8px;
		}

		.project__gallery-nav--next{
			right: 8px;
		}

		.project__gallery figure{
			padding: 16px;
			border-radius: 16px;
		}

	.project__links{
		grid-template-columns: 1fr;
	}

	.project__footer{
		padding: 32px 20px 56px;
	}
}

@media (max-width: 600px){
	.project__gallery-track{
		grid-template-columns: 1fr;
	}
}

@media (max-width: 520px){
	.project__hero{
		padding: 56px 20px 36px;
		margin: 24px 14px 0;
	}
	.project__hero h1{
		font-size: 34px;
	}

	.project__content{
		padding: 0 16px 72px;
	}

	.project__content section{
		padding: 24px 20px;
	}

	.project__content section h2{
		font-size: 24px;
	}

		.project__gallery-track{
			gap: 14px;
		}

		.project__gallery figure{
			padding: 14px;
		}

		.project__gallery-nav{
			width: 36px;
			height: 36px;
		}

		.project__gallery-dot{
			width: 10px;
			height: 10px;
		}

		.project__gallery-dot[aria-current="true"]{
			width: 22px;
		}
	}
