body {
	margin: 0;
	font-family: "Inter", sans-serif;
	background: linear-gradient(135deg, #0d0d0d, #1a1a1a, #0f0f0f);
	background-size: 300% 300%;
	animation: gradientMove 12s ease infinite;
	color: #e6e6e6;
	opacity: 0;
	animation: fadeIn 1.5s ease forwards, gradientMove 12s ease infinite;
}

@keyframes gradientMove {
	0% { background-position: 0% 50%; }
	50% { background-position: 100% 50%; }
	100% { background-position: 0% 50%; }
}

@keyframes fadeIn {
	to { opacity: 1; }
}

header {
	text-align: center;
	padding: 80px 20px;
	animation: slideDown 1.2s ease forwards;
	opacity: 0;
}

@keyframes slideDown {
	from { transform: translateY(-20px); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}

h1 {
	font-size: 3rem;
	margin-bottom: 10px;
	background: linear-gradient(90deg, #4da6ff, #9b59ff);
	-webkit-background-clip: text;
	color: transparent;
}

p.subtitle {
	font-size: 1.2rem;
	color: #aaa;
}

.projects {
	max-width: 900px;
	margin: 40px auto;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 20px;
	padding: 0 20px;
}

.card {
	background: rgba(20, 20, 20, 0.8);
	padding: 25px;
	border-radius: 12px;
	border: 1px solid #222;
	transition: 0.3s ease;
	backdrop-filter: blur(6px);
	transform: translateY(0);
}

.card:hover {
	transform: translateY(-8px);
	border-color: #4da6ff;
	box-shadow: 0 0 20px rgba(77, 166, 255, 0.2);
}

.card h3 {
	margin-top: 0;
	background: linear-gradient(90deg, #4da6ff, #9b59ff);
	-webkit-background-clip: text;
	color: transparent;
}

.card p {
	color: #bbb;
	font-size: 0.95rem;
}

.card a {
	display: inline-block;
	margin-top: 10px;
	color: #4da6ff;
	text-decoration: none;
	font-weight: 600;
	transition: 0.2s ease;
}

.card a:hover {
	color: #9b59ff;
}

footer {
	text-align: center;
	padding: 40px;
	color: #666;
	font-size: 0.9rem;
}