:root {
	--bg-0: #06070c;
	--bg-1: #17070a;
	--bg-2: #280a0e;
	--ink: #c8d0d8;
	--date-ink: #98a3b0;
	--muted: #7d8793;
	--line: #4a171d;
	--accent: #d43a40;
	--accent-2: #8f2328;
	--gold: #e7b95a;
	--gold-soft: #f3d388;
	--card: rgba(18, 23, 31, 0.8);
	--card-border: rgba(132, 148, 166, 0.34);
	--glow: 0 0 28px rgba(114, 132, 152, 0.22);
	--timeline-progress: 0px;
}

* {
	box-sizing: border-box;
}

html,
body {
	margin: 0;
	padding: 0;
	scroll-behavior: smooth;
	background: #070708;
	color: var(--ink);
	font-family: "Chakra Petch", "Rajdhani", "Segoe UI", sans-serif;
	min-height: 100%;
}

body {
	overflow-x: hidden;
	position: relative;
	scroll-snap-type: y proximity;
	scroll-padding-top: 8vh;
}

body::before,
body::after {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
}

body::before {
	z-index: 0;
	background: radial-gradient(1250px 720px at 50% -22%, rgba(138, 8, 14, 0.48) 0%, rgba(80, 5, 10, 0.26) 46%, transparent 78%), radial-gradient(900px 520px at 16% -8%, rgba(125, 12, 20, 0.28) 0%, transparent 72%), linear-gradient(180deg, #13070b 0%, #0d090b 40%, #09090a 100%);
}

body::after {
	z-index: 2;
	background: radial-gradient(145% 110% at 50% -2%, transparent 52%, rgba(2, 2, 3, 0.72) 100%), repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.008) 0 1px, transparent 1px 5px), repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.006) 0 1px, transparent 1px 6px);
	opacity: 0.56;
}

.top-anchor {
	position: relative;
	width: 1px;
	height: 1px;
	pointer-events: none;
}

.metaballs-canvas {
	position: fixed;
	inset: -10vmax;
	width: calc(100% + 20vmax);
	height: calc(100% + 20vmax);
	pointer-events: none;
	z-index: 1;
	opacity: 0.05;
	filter: blur(12px) contrast(168%) saturate(118%);
}

.bg-layer {
	position: fixed;
	inset: -20vmax;
	pointer-events: none;
	z-index: 1;
	opacity: 0.38;
	will-change: transform;
	display: none;
}

.bg-layer-a {
	background: radial-gradient(circle at 18% 22%, rgba(140, 20, 24, 0.34) 0%, rgba(140, 20, 24, 0.16) 34%, transparent 62%), radial-gradient(circle at 82% 16%, rgba(92, 8, 12, 0.28) 0%, rgba(92, 8, 12, 0.11) 36%, transparent 64%);
	filter: blur(10px);
	animation: driftA 32s ease-in-out infinite alternate;
}

.bg-layer-b {
	background: radial-gradient(circle at 80% 76%, rgba(124, 16, 20, 0.34) 0%, rgba(124, 16, 20, 0.14) 34%, transparent 64%), radial-gradient(circle at 20% 72%, rgba(74, 6, 10, 0.31) 0%, rgba(74, 6, 10, 0.12) 32%, transparent 62%);
	filter: blur(12px);
	animation: driftB 38s ease-in-out infinite alternate;
}

.bg-layer-c {
	background: radial-gradient(circle at 30% 82%, rgba(154, 24, 20, 0.28) 0%, rgba(154, 24, 20, 0.1) 34%, transparent 64%), radial-gradient(circle at 68% 54%, rgba(92, 10, 10, 0.28) 0%, rgba(92, 10, 10, 0.1) 36%, transparent 68%), radial-gradient(circle at 56% 16%, rgba(112, 16, 16, 0.23) 0%, rgba(112, 16, 16, 0.08) 30%, transparent 60%);
	filter: blur(14px);
	animation: driftC 44s ease-in-out infinite alternate;
	opacity: 0.54;
}

.hero {
	max-width: 1060px;
	margin: 0 auto;
	padding: 96px 20px 44px;
	text-align: center;
	animation: none;
	position: relative;
	z-index: 3;
}

.hero-kicker {
	margin: 0;
	font-size: 14px;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--accent);
}

.hero h1 {
	margin: 10px 0 12px;
	font-size: clamp(34px, 8vw, 88px);
	line-height: 0.92;
	font-family: "Orbitron", "Exo 2", "Rajdhani", sans-serif;
	text-transform: uppercase;
	color: #e6c989;
	text-shadow: 0 0 8px rgba(222, 176, 86, 0.2), 0 0 16px rgba(133, 89, 32, 0.14);
}

.hero-sub {
	margin: 0 auto;
	max-width: 800px;
	color: var(--muted);
	font-size: clamp(16px, 2.3vw, 21px);
}

.hero-stats {
	margin: 24px auto 0;
	display: flex;
	justify-content: center;
	gap: 10px;
	flex-wrap: wrap;
}

.pill {
	padding: 8px 12px;
	border: 1px solid rgba(127, 144, 162, 0.42);
	border-radius: 999px;
	background: rgba(18, 24, 33, 0.76);
	color: #c6d0db;
	font-size: 13px;
	backdrop-filter: blur(5px);
}

.hero-cta {
	display: inline-block;
	margin-top: 24px;
	padding: 10px 18px;
	border: 1px solid rgba(132, 148, 166, 0.5);
	border-radius: 10px;
	text-decoration: none;
	color: var(--ink);
	background: rgba(22, 28, 38, 0.82);
	box-shadow: var(--glow);
	transition: background-color 220ms ease, border-color 220ms ease, box-shadow 220ms ease;
}

.hero-cta:hover {
	background: rgba(28, 36, 48, 0.9);
	border-color: rgba(157, 173, 191, 0.75);
	box-shadow: 0 0 0 1px rgba(135, 151, 170, 0.4), 0 0 16px rgba(112, 131, 152, 0.3);
}

.timeline-wrap {
	position: relative;
	max-width: 1160px;
	margin: 24px auto 72px;
	padding: 0 20px 72px;
	z-index: 3;
}

.timeline-line {
	position: absolute;
	left: 50%;
	top: 0;
	bottom: 0;
	width: 2px;
	transform: translateX(-50%);
	background: linear-gradient(180deg, rgba(117, 93, 56, 0.22), rgba(77, 58, 36, 0.18));
	overflow: hidden;
}

.timeline-progress {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: var(--timeline-progress);
	background: rgba(183, 145, 83, 0.44);
	box-shadow: 0 0 6px rgba(163, 126, 70, 0.14);
	transition: height 80ms linear;
}

.timeline-progress::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 12px;
	height: 56px;
	transform: translateX(-50%);
	background: radial-gradient(ellipse at center bottom, rgba(214, 185, 122, 0.62) 0%, rgba(191, 154, 90, 0.46) 38%, rgba(146, 111, 59, 0.2) 66%, rgba(146, 111, 59, 0) 100%);
	pointer-events: none;
}

.timeline-items {
	display: flex;
	flex-direction: column;
	gap: 0;
	position: relative;
	z-index: 1;
}

.event {
	position: relative;
	min-height: 38vh;
	display: flex;
	align-items: center;
	scroll-snap-align: center;
	scroll-snap-stop: normal;
	opacity: 0;
	transform: translateY(26px) scale(0.98);
	transition: opacity 620ms ease, transform 620ms cubic-bezier(0.2, 0.7, 0.1, 1);
}

.event.visible {
	opacity: 1;
	transform: translateY(0) scale(1);
}

.event.left {
	justify-content: flex-end;
	padding-right: calc(50% + 46px);
	text-align: right;
}

.event.right {
	justify-content: flex-start;
	padding-left: calc(50% + 46px);
	text-align: left;
}

.event-card {
	position: relative;
	width: min(82.5vw, 862px);
	padding: 18px 20px;
	border-radius: 16px;
	border: 1px solid var(--card-border);
	background: var(--card);
	backdrop-filter: blur(8px);
	box-shadow: 0 16px 32px rgba(0, 0, 0, 0.3);
	transition: transform 300ms ease, border-color 280ms ease, box-shadow 280ms ease;
	overflow: hidden;
}

.event.active .event-card {
	transform: translateY(-4px) scale(1.02);
	border-color: rgba(160, 176, 194, 0.6);
	box-shadow: 0 18px 30px rgba(8, 10, 14, 0.6), 0 0 12px rgba(122, 141, 163, 0.22);
}

.event-card::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, transparent 20%, rgba(255, 255, 255, 0.13) 45%, transparent 70%);
	transform: translateX(-120%);
	transition: transform 620ms ease;
	pointer-events: none;
}

.event-card:hover {
	transform: none;
	border-color: rgba(145, 162, 180, 0.56);
	box-shadow: 0 16px 24px rgba(3, 6, 18, 0.44), 0 0 10px rgba(120, 139, 160, 0.16);
}

.event-card:hover::before {
	transform: translateX(130%);
}

.event-dot {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 16px;
	height: 16px;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: radial-gradient(circle at 34% 30%, #e8dcc0 0%, #bda26d 44%, #896c39 100%);
	box-shadow: 0 0 0 3px rgba(154, 121, 60, 0.15), 0 0 8px rgba(170, 137, 76, 0.14);
	z-index: 3;
}

.event.active .event-dot {
	box-shadow: 0 0 0 5px rgba(170, 136, 68, 0.19), 0 0 10px rgba(186, 153, 89, 0.2);
}

.event.left .event-dot {
	left: 50%;
	right: auto;
}

.event.right .event-dot {
	left: 50%;
}


.event-date {
	position: absolute;
	top: 50%;
	left: calc(50% + 22px);
	transform: translateY(-50%);
	font-size: 16px;
	font-weight: 600;
	color: var(--date-ink);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	pointer-events: none;
	display: inline-flex;
	align-items: baseline;
	gap: 6px;
	z-index: 5;
}

.event-date-desktop {
	display: inline;
}

.event-date-mobile {
	display: none;
}

.event.right .event-date {
	left: auto;
	right: calc(50% + 22px);
	transform: translateY(-50%);
	text-align: right;
}

.event h3 {
	margin: 0;
	font-size: clamp(20px, 2.4vw, 30px);
	line-height: 1.06;
	font-family: "Orbitron", "Exo 2", "Rajdhani", sans-serif;
	text-transform: uppercase;
	color: #a8c1d8;
	text-shadow: 0 0 6px rgba(126, 162, 198, 0.2);
}

.event.left h3 {
	color: #bad0e0;
	text-shadow: 0 0 6px rgba(142, 176, 206, 0.22);
}

.event.right h3 {
	color: #8fabca;
	text-shadow: 0 0 5px rgba(102, 145, 186, 0.2);
}

.event.type-release h3,
.event.type-playtest h3 {
	color: #9ec4df;
}

.event.type-systems h3,
.event.type-content h3 {
	color: #95b7d4;
}

.event.left.type-release h3,
.event.left.type-playtest h3 {
	color: #bfd8e9;
	text-shadow: 0 0 6px rgba(150, 182, 208, 0.24);
}

.event.right.type-release h3,
.event.right.type-playtest h3 {
	color: #95b7d4;
	text-shadow: 0 0 5px rgba(113, 153, 190, 0.2);
}

.event.left.type-systems h3,
.event.left.type-content h3 {
	color: #acc9de;
}

.event.right.type-systems h3,
.event.right.type-content h3 {
	color: #89aac8;
}

.event p {
	margin: 10px 0 0;
	font-size: 15px;
	line-height: 1.5;
	color: #bec8d4;
}

@media (min-width: 951px) {
	.event-card {
		padding: 24px 28px;
	}

	.event-date,
	.event.right .event-date {
		font-size: 18px;
	}

	.event h3 {
		font-size: clamp(22px, 2.4vw, 32px);
		line-height: 1.06;
	}

	.event p {
		font-size: 22px;
		line-height: 1.58;
	}
}

.footer {
	max-width: 1060px;
	margin: 0 auto;
	padding: 32px 20px 54px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	color: var(--muted);
	font-size: 14px;
	position: relative;
	z-index: 3;
}

.footer-cta {
	margin-top: 0;
}

@keyframes heroIn {
	from {
		opacity: 0;
		transform: translateY(16px);
		filter: blur(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
		filter: blur(0);
	}
}

@keyframes driftA {
	from {
		transform: translate3d(-0.9%, -0.7%, 0) scale(1);
	}
	to {
		transform: translate3d(1.1%, 0.9%, 0) scale(1.02);
	}
}

@keyframes driftB {
	from {
		transform: translate3d(0.8%, -0.8%, 0) scale(1.01);
	}
	to {
		transform: translate3d(-1.2%, 1.1%, 0) scale(1.02);
	}
}

@keyframes driftC {
	from {
		transform: translate3d(-0.7%, 0.8%, 0) scale(1.01);
		opacity: 0.56;
	}
	to {
		transform: translate3d(1.2%, -1.1%, 0) scale(1.03);
		opacity: 0.76;
	}
}

@media (max-width: 950px) {
	:root {
		--mobile-date-lane: 72px;
	}

	.hero h1 {
		font-size: clamp(44px, 13vw, 108px);
	}

	.hero-kicker {
		font-size: 15px;
	}

	html,
	body {
		scroll-behavior: auto;
	}

	body {
		scroll-snap-type: none;
	}

	.bg-layer {
		display: none;
	}

	body::after {
		opacity: 0.48;
	}

	.metaballs-canvas {
		inset: -6vmax;
		width: calc(100% + 12vmax);
		height: calc(100% + 12vmax);
		filter: blur(10px) contrast(170%) saturate(116%);
		opacity: 0.05;
	}

	.timeline-line {
		display: none;
	}

	.timeline-items {
		gap: 22px;
		padding-left: 0;
	}

	.event,
	.event.left,
	.event.right {
		display: flex;
		align-items: center;
		min-height: 170px;
		scroll-snap-align: none;
		padding-top: 0;
		padding-bottom: 0;
		text-align: left;
	}

	.event.left {
		justify-content: flex-start;
		padding-left: 0;
		padding-right: 0;
		gap: 6px;
	}

	.event.right {
		justify-content: flex-end;
		padding-left: 0;
		padding-right: 0;
		gap: 6px;
	}

	.event.left .event-dot,
	.event.right .event-dot {
		display: none;
	}

	.event-card {
		width: min(calc(100vw - var(--mobile-date-lane)), 620px);
		backdrop-filter: none;
		box-shadow: 0 10px 20px rgba(0, 0, 0, 0.34);
	}

	.event-card::before {
		display: none;
	}

	.event.left .event-card {
		order: 1;
		margin-right: 0;
	}

	.event.right .event-card {
		order: 2;
		margin-left: 0;
	}

	.event-date,
	.event.right .event-date {
		position: static;
		transform: none;
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 1px;
		line-height: 1;
		margin-bottom: 0;
		width: auto;
		min-width: var(--mobile-date-lane);
		flex: 1 1 auto;
		align-items: center;
		text-align: center;
	}

	.event.left .event-date {
		order: 2;
	}

	.event.right .event-date {
		order: 1;
	}

	.event-date-desktop {
		display: none;
	}

	.event-date-mobile {
		display: flex;
		flex-direction: column;
		align-items: inherit;
		gap: 1px;
	}

	.event-date-day,
	.event-date-month,
	.event-date-year {
		display: block;
		font-size: 15px;
		font-weight: 700;
	}

	.event-date-day,
	.event-date-year {
		display: inline-flex;
		justify-content: center;
		align-items: baseline;
		gap: 1px;
	}

	.event-date-sep {
		color: #f1c25e;
	}

	.footer {
		flex-direction: column;
		align-items: center;
	}
}

@media (prefers-reduced-motion: reduce) {
	* {
		animation-duration: 1ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 1ms !important;
		scroll-behavior: auto !important;
	}

	body {
		scroll-snap-type: none;
	}
}
