* {
	margin: 0;
	box-sizing: border-box;
}

:root {
	--bg: #020617;
	--c1: #38bdf8;
	--c2: #a855f7;
	--c3: #22c55e;
	--noise: rgba(255, 255, 255, 0.05);
}

body {
	font-family: system-ui, sans-serif;
	background: radial-gradient(circle at 20% 10%, #1e293b, transparent 60%),
		radial-gradient(circle at 80% 90%, #020617, transparent 70%), var(--bg);
	color: white;
	overflow-x: hidden;
}

/* grain */
body::after {
	content: "";
	position: fixed;
	inset: 0;
	background: repeating-radial-gradient(
		circle,
		var(--noise) 0 1px,
		transparent 1px 2px
	);
	mix-blend-mode: overlay;
	pointer-events: none;
	opacity: 0.35;
	animation: grain 0.25s steps(2) infinite;
}
@keyframes grain {
	to {
		transform: translate(2px, -2px);
	}
}

/* layout */
section {
	min-height: 100vh;
	display: grid;
	place-items: center;
	padding: 5rem 2rem;
	perspective: 1000px;
}

/* glitch title */
.glitch {
	position: relative;
	font-size: clamp(3rem, 9vw, 6rem);
	font-weight: 900;
	letter-spacing: 0.08em;
	margin-bottom: 4rem;
}
.glitch::before,
.glitch::after {
	content: attr(data-text);
	position: absolute;
	inset: 0;
	opacity: 0.8;
}
.glitch::before {
	color: var(--c1);
	transform: translate(3px, -2px);
	mix-blend-mode: screen;
	animation: glitch 2s infinite alternate;
}
.glitch::after {
	color: var(--c2);
	transform: translate(-3px, 2px);
	mix-blend-mode: screen;
	animation: glitch 1.5s infinite alternate-reverse;
}
@keyframes glitch {
	0% {
		clip-path: inset(0 0 70% 0);
	}
	25% {
		clip-path: inset(20% 0 40% 0);
	}
	50% {
		clip-path: inset(40% 0 20% 0);
	}
	75% {
		clip-path: inset(10% 0 60% 0);
	}
	100% {
		clip-path: inset(0 0 0 0);
	}
}

/* holographic card */
.card {
	width: min(420px, 90vw);
	padding: 2.5rem;
	border-radius: 28px;
	background: linear-gradient(
		120deg,
		rgba(255, 255, 255, 0.08),
		rgba(255, 255, 255, 0.02)
	);
	backdrop-filter: blur(16px);
	box-shadow: 0 0 50px rgba(56, 189, 248, 0.35),
		inset 0 0 35px rgba(255, 255, 255, 0.15);
	transform-style: preserve-3d;
	animation: float 6s ease-in-out infinite;
	position: relative;
}

.card::before {
	content: "";
	position: absolute;
	inset: -2px;
	background: linear-gradient(
		120deg,
		transparent 20%,
		var(--c1),
		var(--c2),
		var(--c3),
		transparent 80%
	);
	filter: blur(25px);
	opacity: 0.4;
	z-index: -1;
	animation: holo 4s linear infinite;
	background-size: 400% 100%;
}

@keyframes holo {
	to {
		background-position: 400% 0;
	}
}
@keyframes float {
	0%,
	100% {
		transform: rotateX(12deg) rotateY(-10deg) translateY(0);
	}
	50% {
		transform: rotateX(18deg) rotateY(12deg) translateY(-25px);
	}
}

.card h2 {
	font-size: 1.7rem;
	margin-bottom: 1rem;
}
.card p {
	line-height: 1.6;
	opacity: 0.85;
}

/* holographic button */
.btn {
	display: inline-block;
	margin-top: 2rem;
	padding: 0.9rem 1.8rem;
	border-radius: 999px;
	font-weight: 600;
	letter-spacing: 0.08em;
	color: white;
	text-decoration: none;
	background: linear-gradient(90deg, var(--c1), var(--c2), var(--c3));
	background-size: 300% 100%;
	animation: holo 3s linear infinite;
	box-shadow: 0 0 25px rgba(168, 85, 247, 0.6);
}
