@font-face {
	font-family: 'Iosevka Custom Web';
	font-display: swap;
	font-weight: 400;
	font-stretch: normal;
	font-style: normal;
	src: url('/fonts/iosevka-custom-Regular.woff2') format('woff2'), url('/fonts/iosevka-custom-Regular.ttf') format('truetype');
}

/* Container Grid */
.grid-container {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 1.5rem;
	align-items: stretch; /* Forces equal height cards in a row */
}

/* Card Container */
.project-card {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 12px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.project-card:hover {
	border-color: #cbd5e1;
	box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.05);
	transform: translateY(-2px);
}

/* Thumbnail Canvas */
.card-media {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 220px;            /* Fixed uniform canvas height */
	background-color: #f8fafc; /* Neutral background to frame images */
	padding: 1rem;
	border-bottom: 1px solid #f1f5f9;
	text-decoration: none;
}

.card-media img {
	max-height: 100%;
	max-width: 100%;
	object-fit: contain;     /* Prevents stretching or distortion */
	height: auto;
	width: auto;
}

/* Card Body Content */
.card-body {
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	flex-grow: 1; /* Pushes tags to the bottom if content length varies */
}

.card-title {
	margin: 0 0 0.5rem 0;
	font-size: 1.1rem;
	font-weight: 600;
	line-height: 1.3;
}

.card-title a {
	color: #0f172a;
	text-decoration: none;
	transition: color 0.15s ease;
}

.project-card:hover .card-title a {
	color: #2563eb;
}

.card-description {
	margin: 0 0 1rem 0;
	color: #475569;
	font-size: 0.925rem;
	line-height: 1.5;
	flex-grow: 1;
}

/* Tech Tags */
.card-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
	margin-top: auto; /* Anchors tags to the bottom */
}

.card-tags .tag {
	font-family: 'Iosevka Custom Web', monospace;
	font-size: 0.8rem;
	background-color: #f1f5f9;
	color: #334155;
	padding: 0.2rem 0.5rem;
	border-radius: 4px;
}
