* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-smooth: antialiased;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
    /* Reset & base */
html, body {
	margin: 0;
	padding: 0;
	overflow-x: hidden;
	width: 100%;
	font-family: 'Poppins', sans-serif;
	background: #0a0a0a;
	color: #ffddb4;
	min-height: 100vh;
	background: linear-gradient(135deg, #1a1410 0%, #2a1c0f 100%);
}
	
	/* Navbar fixed on top with bottom border and layout */
nav {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	background: rgba(10, 10, 10, 0.3);
	backdrop-filter: blur(8px);
	border-bottom: 1px solid #ff7a00;
	display: flex;
	justify-content: center;
	gap: 2rem;
	padding: 1rem 0;
	z-index: 1000;
	box-shadow: 0 2px 10px rgba(255, 122, 0, 0.3);
	transform: translateY(-20px);
	animation: fadeInUp 1s ease forwards;
	animation-delay: 0.3s;
	opacity: 0;
}


	/* Nav links style from shared styles.css */
nav a {
	font-family: 'Share Tech Mono', monospace;
	font-size: 1.1rem;
	margin: 0 1rem;
	color: #ff6200;
	text-decoration: none;
	transition: color 0.3s ease, text-shadow 0.3s ease;
	position: relative;
	padding-bottom: 4px;
}

nav a::after {
	content: '';
	position: absolute;
	width: 0;
	height: 2px;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	background-color: #ff9500;
	transition: width 0.3s ease;
}

nav a:hover {
	color: #ff9500;
	text-shadow: 0 0 4px #ff9500;
}

nav a:hover::after {
	width: 100%;
}

	/* Mobile styles - merging existing rules for container and nav */
@media (max-width: 600px) {
	.container {
		padding: 20px 15px;
		max-width: 100%;
		min-height: 100vh;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
	}

	nav {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 15px;
		margin-top: 0px;
		padding: 0;
 /* remove fixed nav padding on mobile */
		border-bottom: none;
		position: static;
 /* so nav scrolls with content on mobile */;
	}

	nav a {
		flex: 1 1 45%;
		text-align: center;
		padding: 10px 0;
		font-size: 1.2rem;
		width: auto;
		margin: 0;
 /* override desktop margins */;
	}
}

@keyframes fadeInUp {
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

    /* Container with padding top for fixed navbar */
.container {
	max-width: 1100px;
	margin: 0 auto;
	padding: 6rem 1rem 1rem;
 /* top padding to avoid navbar overlap */
	transform: translateY(20px);
	animation: fadeInUp 1s ease forwards;
	animation-delay: 0.3s;
	opacity: 0;
}

h1 {
	font-family: 'Share Tech Mono', monospace;
	font-size: 3.5rem;
	color: #ff7a00;
	margin-bottom: 1rem;
	text-align: center;
	letter-spacing: 0.06em;
	position: relative;
	text-shadow: 0 0 8px rgba(255, 122, 0, 0.7),
	0 0 20px rgba(255, 122, 0, 0.4);
}

p {
	text-align: center;
	font-size: 1.1rem;
	color: #ffddb4cc;
	margin-bottom: 2rem;
}

    /* Grid for projects: 4 columns max */
.projects-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	grid-auto-rows: auto;
	gap: 1.2rem;
}

.project-status {
	position: absolute;
	top: 10px;
	left: 10px;
	padding: 3px 8px;
	font-size: 0.65rem;
	font-family: 'Share Tech Mono', monospace;
	font-weight: 400;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	border-radius: 4px;
	backdrop-filter: blur(3px);
	border: 1px solid rgba(255, 122, 0, 0.4);
	background: rgba(10, 10, 10, 0.4);
	color: #ffddb4;
	box-shadow: inset 0 0 4px rgba(255, 122, 0, 0.3), 0 0 6px rgba(0, 0, 0, 0.4);
	text-shadow: 0 0 2px #ff7a00;
	z-index: 5;
	user-select: none;
	-webkit-user-select: none; /* iOS Safari */
}

.project-status.ongoing {
	border-color: rgba(255, 149, 0, 0.5);
	color: #ff9500;
	text-shadow: 0 0 3px #ff9500;
}

.project-status.finished {
	border-color: rgba(0, 200, 83, 0.4);
	color: #00c853;
	text-shadow: 0 0 3px #00c853;
}

.project-status.paused {
	border-color: rgba(255, 193, 7, 0.4);
	color: #ffc107;
	text-shadow: 0 0 3px #ffc107;
}

.project-status.abandoned {
	border-color: rgba(211, 47, 47, 0.4);
	color: #d32f2f;
	text-shadow: 0 0 3px #d32f2f;
}

.project-status.unknown {
	border-color: rgba(97, 97, 97, 0.4);
	color: #999999;
	text-shadow: 0 0 2px #999999;
}



    /* Card styling */
.projects-grid li {
	background: rgba(255, 122, 0, 0.12);
	border-radius: 10px;
	box-shadow: 0 0 8px rgba(255, 122, 0, 0.25);
	color: #ffddb4;
	cursor: default;
	display: flex;
	flex-direction: column;
	min-height: 260px;
	transition: box-shadow 0.3s ease;
	overflow: hidden;
	position: relative;
	height: 100%;
	min-height: 260px;
	max-height: 420px;
}

.projects-grid li.has-link {
	cursor: pointer;
}

.projects-grid li.has-link:hover {
	box-shadow: 0 0 18px #ff7a00;
}

.projects-grid li.has-link .project-image {
	filter: brightness(0.8);
	transition: filter 0.3s ease;
}

.projects-grid li.has-link:hover .project-image {
	filter: brightness(1);
}

.project-link {
	display: block;
	color: inherit;
	text-decoration: none;
	height: 100%;
}

.projects-grid li:hover {
	box-shadow: 0 0 18px #ff7a00;
}

.project-image {
	width: 100%;
	height: 140px;
	display: block;
	object-fit: contain;
	border-bottom: 2px solid #ff7a00;
	filter: brightness(0.8);
	transition: filter 0.3s ease;
	background: linear-gradient(
	  360deg,
	  #3a2a23 0%,
	  #5e2c00 100%
	);
}

.projects-grid li:hover .project-image {
	filter: brightness(1);
}

.project-image-wrapper {
	position: relative;
	overflow: hidden;
}

.project-image-wrapper::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0px;
	background: radial-gradient(circle at center, transparent 50%, rgba(0, 0, 0, 0.5) 100%);
	pointer-events: none;
}

.project-title {
	font-weight: 700;
	font-size: 1.2rem;
	margin: 0.8rem 1rem 0.3rem 1rem;
	color: #ff7a00;
	min-height: 3em;
	overflow: hidden;
	text-align: center;
	user-select: none;
	-webkit-user-select: none; /* iOS Safari */
}

.project-desc {
	font-weight: 400;
	font-size: 0.95rem;
	margin: 0 1rem 1rem 1rem;
	color: #ffddb4cc;
	line-height: 1.3;
	flex-grow: 1;
	text-align: left;
	user-select: none;
	-webkit-user-select: none; /* iOS Safari */
}

    /* Pagination */
.pagination {
	margin: 2rem 0 1rem 0;
	text-align: center;
	user-select: none;
}

.pagination button {
	background: transparent;
	border: 1.5px solid #ff7a00;
	color: #ff7a00;
	font-family: 'Share Tech Mono', monospace;
	font-weight: 600;
	font-size: 1rem;
	padding: 0.4rem 1rem;
	margin: 0 0.2rem;
	border-radius: 6px;
	cursor: pointer;
	min-width: 38px;
	transition: background-color 0.3s ease, color 0.3s ease;
}

.pagination button:hover,
    .pagination button.active {
	background-color: #ff7a00;
	color: #0a0a0a;
	box-shadow: 0 0 10px #ff7a00;
}
    /* Responsive */
@media (max-width: 850px) {
	.projects-grid {
		grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	}
}

@media (max-width: 480px) {
	nav {
		gap: 1rem;
	}

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

.pattern {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	pointer-events: none;
	opacity: 0.2;
	filter: blur(0.3px);
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" viewBox="0 0 200 200">\
	<g stroke="%23ff7a00" stroke-width="1" fill="none" opacity="0.25">\
	<path d="M10 0 V200 M0 10 H200 M50 0 V200 M0 50 H200 M90 0 V200 M0 90 H200 M130 0 V200 M0 130 H200 M170 0 V200 M0 170 H200"/>\
	<circle cx="50" cy="50" r="6" fill="%23ff7a00" opacity="0.2">\
	<animate attributeName="r" values="6;8;6" dur="3s" repeatCount="indefinite" />\
	</circle>\
	<circle cx="130" cy="90" r="4" fill="%23ff7a00" opacity="0.2">\
	<animate attributeName="opacity" values="0.2;0.4;0.2" dur="2.5s" repeatCount="indefinite" />\
	</circle>\
	<rect x="90" y="130" width="6" height="3" fill="%23ff7a00" opacity="0.2" rx="1"/>\
	<line x1="140" y1="140" x2="160" y2="160" stroke="%23ff7a00" stroke-width="0.7" opacity="0.15"/>\
	<line x1="160" y1="140" x2="140" y2="160" stroke="%23ff7a00" stroke-width="0.7" opacity="0.15"/>\
	<path d="M20 100 H80 V120 H140" stroke="%23ff7a00" stroke-width="0.8" opacity="0.15">\
	<animate attributeName="opacity" values="0.15;0.3;0.15" dur="4s" repeatCount="indefinite" />\
	</path>\
	</g>\
	</svg>');
	background-repeat: repeat;
}

.noise {
	position: fixed;
	top: 0;
	left: 0;
	width: 100vw;
	height: 100vh;
	pointer-events: none;
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><filter id="noise"><feTurbulence type="fractalNoise" baseFrequency="0.6" numOctaves="2" stitchTiles="stitch"/></filter><rect width="100" height="100" filter="url(%23noise)" /></svg>');
	opacity: 0.08;
	z-index: 1;
}