/*Projects*/

/*Start Fonts*/
.vt323-regular {
  font-family: "VT323", monospace;
  font-weight: 400;
  font-style: normal;
}

.sixtyfour {
  font-family: "Sixtyfour", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-variation-settings:
    "BLED" 0,
    "SCAN" 0;
}
/*End Fonts*/

.slicknav_menu {
	display: none;
	grid-area: nav_menu;
}

body {
	background-color: black;
	width: 98%;
	max-width: 960px;
	margin: 0 auto;
}

.grid_container {
	display: grid;
	grid-template-columns: 100%;
	grid-template-rows: auto;
	grid-template-areas: 
	"head"
	"nav_menu"
	"main"
	"foot"
	;
	grid-gap: 5px;
}

header {
	font-family: "VT323", monospace;
	font-size: 220%;
	color: #00FF66;
	text-align: center;
	margin-top: 5px;
	max-width: 98%;
	display: grid;
	grid-template-columns: repeat(12, 1fr);
	grid-template-rows: 100%;
}

.header-title {
	grid-row: 1/1;
	grid-column: 3 / span 8;
}

header img {
	float: left;
	margin: 3px;
	border: 3px solid black;
}

header img:hover, img:focus {
	border: 3px solid #00FF66;
}

header h1 {
	margin-top: 10px;
	margin-bottom: 0;
}

main {
	font-family: "VT323", monospace;
	margin: 0;
	padding: 0;
	max-width: 960px;
	display: grid;
	grid-area: main;
	color: #00FF66;
	grid-template-columns: 1fr;
	grid-template-rows: auto auto auto auto auto;
}

/* =====================
   SHARED SECTION STYLES
   ===================== */

/* Every project grid section gets consistent top padding */
.visual-basic-projects,
.hc-projects,
.js-projects,
.\32 75-projects {
	display: grid;
	max-width: 960px;
	grid-template-columns: repeat(12, 1fr);
	grid-template-rows: auto;
	text-align: center;
	padding-top: 1.5%;
}

/* Section heading — fixed double margin-bottom */
.p-head {
	grid-column: 1 / span 12;
	grid-row: 1;
	font-size: 200%;
	text-align: center;
	margin-top: 0;         /* padding-top on parent handles top spacing */
	margin-bottom: 2%;
	border: 1px solid #00FF66;
}

/* All -links rows: standardized bottom margin and separator */
.vb-p1-links,
.vb-p2-links,
.vb-p3-links,
.hc-p1-links,
.hc-p2-links,
.hc-p3-links,
.js-p1-links,
.js-p2-links,
.js-p3-links,
.\32 75-p1-links,
.\32 75-p2-links,
.\32 75-p3-links,
.\32 75-p4-links {
	grid-column: 1 / span 12;
	margin-top: 2%;
	margin-bottom: 3%;
	border-bottom: 2px solid #00FF66;
}

/* Remove border from the very last link row in each section */
.vb-p3-links,
.hc-p3-links,
.js-p3-links,
.\32 75-p4-links {
	border-bottom: none;
}

/* =====================
   CPT-275 SECTION
   ===================== */
.\32 75-container {
	grid-row: 1;
}

.\32 75-p1-code {
	grid-column: 3 / span 8;
	grid-row: 2;
}
img.\32 75-p1-code {
	max-width: 100%;
}
.\32 75-p1-links {
	grid-row: 3;
}

.\32 75-p2-code {
	grid-column: 3 / span 8;
	grid-row: 4;
}
img.\32 75-p2-code {
	max-width: 100%;
}
.\32 75-p2-links {
	grid-row: 5;
}

.\32 75-p3-code {
	grid-column: 3 / span 8;
	grid-row: 6;
}
img.\32 75-p3-code {
	max-width: 100%;
}
.\32 75-p3-links {
	grid-row: 7;
}

/* Slot for a 4th project if needed */
.\32 75-p4-code {
	grid-column: 3 / span 8;
	grid-row: 8;
}
img.\32 75-p4-code {
	max-width: 100%;
}
.\32 75-p4-links {
	grid-row: 9;
}

/* =====================
   VB.NET SECTION
   ===================== */
.vb-p-container {
	grid-row: 2;
}

.vb-p1-ui {
	grid-column: 2 / span 4;
	grid-row: 2;
}
img.vb-p1-ui {
	max-width: 92%;
}

.vb-p1-code {
	grid-column: 6 / span 5;
	grid-row: 2;
}
img.vb-p1-code {
	/* Fixed: was 136% which caused overflow */
	max-width: 100%;
}

.vb-p1-links {
	grid-row: 3;
}

.vb-p2-ui {
	grid-column: 1 / span 3;
	grid-row: 5;
}
img.vb-p2-ui {
	max-width: 100%;
}

.vb-p2-code {
	grid-column: 4 / span 9;
	grid-row: 5;
}
img.vb-p2-code {
	max-width: 100%;
}

.vb-p2-links {
	grid-row: 6;
}

.vb-p3-ui {
	grid-column: 4 / span 6;
	grid-row: 8;
}
img.vb-p3-ui {
	max-width: 100%;
}

.vb-p3-code {
	grid-column: 3 / span 8;
	grid-row: 9;
}
img.vb-p3-code {
	max-width: 100%;
}

.vb-p3-links {
	grid-row: 10;
}

/* =====================
   HTML/CSS SECTION
   ===================== */
.hc-p-container {
	grid-row: 3;
}

.hc-p1-ui {
	grid-column: 1 / span 12;
	grid-row: 2;
}
img.hc-p1-ui {
	max-width: 100%;
	margin: auto;
}

.hc-p1-code {
	grid-column: 3 / span 8;
	grid-row: 3;
}
img.hc-p1-code {
	max-width: 100%;
	margin: auto;
}

.hc-p1-links {
	grid-row: 4;
}

.hc-p2-ui {
	grid-column: 1 / span 12;
	grid-row: 5;
}
img.hc-p2-ui {
	max-width: 100%;
	margin: auto;
}

.hc-p2-code {
	grid-column: 3 / span 8;
	grid-row: 6;
}
img.hc-p2-code {
	max-width: 100%;
	margin: auto;
}

.hc-p2-links {
	grid-row: 7;
}

.hc-p3-ui {
	grid-column: 1 / span 12;
	grid-row: 8;
}
img.hc-p3-ui {
	max-width: 100%;
	margin: auto;
}

.hc-p3-code {
	grid-column: 3 / span 8;
	grid-row: 9;
}
img.hc-p3-code {
	max-width: 100%;
	margin: auto;
}

.hc-p3-links {
	grid-row: 10;
}

/* =====================
   JAVASCRIPT SECTION
   ===================== */
.js-p-container {
	grid-row: 4;
}

.js-p1-ui {
	grid-column: 1 / span 12;
	grid-row: 2;
}
img.js-p1-ui {
	max-width: 100%;
	margin: auto;
}

.js-p1-code {
	grid-column: 1 / span 12;
	grid-row: 3;
}
img.js-p1-code {
	max-width: 100%;
	margin: auto;
}

.js-p1-links {
	grid-row: 4;
}

.js-p2-ui {
	grid-column: 1 / span 12;
	grid-row: 5;
}
img.js-p2-ui {
	max-width: 100%;
	margin: auto;
}

.js-p2-code {
	grid-column: 1 / span 12;
	grid-row: 6;
}
img.js-p2-code {
	max-width: 100%;
	margin: auto;
}

.js-p2-links {
	grid-row: 7;
}

.js-p3-ui {
	grid-column: 1 / span 12;
	grid-row: 8;
}
img.js-p3-ui {
	max-width: 100%;
	margin: auto;
}

.js-p3-code {
	grid-column: 1 / span 12;
	grid-row: 9;
}
img.js-p3-code {
	max-width: 100%;
	margin: auto;
}

.js-p3-links {
	grid-row: 10;
}

/* =====================
   PROJECT LINK STYLES
   ===================== */
.p-link {
	font-family: "Sixtyfour", sans-serif;
	font-size: 100%;
	color: #00FF66;
	padding: .2%;
	text-decoration: none;
}

.p-link:hover, .p-link:focus {
	background-color: #00FF66;
	color: black;
}

.p-link:visited {
	color: #fff333;
}

.link-list {
	list-style-type: none;
}

/* =====================
   NAV
   ===================== */
#nav_menu {
	color: #00FF66;
	font-size: 100%;
	font-family: "Sixtyfour", sans-serif;
	max-width: 960px;
	width: 100%;
	grid-area: nav_menu;
}

#nav_menu ul {
	border-bottom: 1px solid #00FF66;
	padding: 3px 6px 3px 6px;
	text-align: center;
	margin: 0;
}

#nav_menu ul li {
	list-style-type: none;
	margin-top: 5px;
	display: inline;
}

#nav_menu ul li a {
	color: #00FF66;
	padding: 3px;
	text-decoration: none;
}

#nav_menu ul li.active {
	color: #fff333;
	background: #000;
	border-right: 1px solid #00FF66;
	border-left: 1px solid #00FF66;
	border-bottom: 2px solid black;
	border-top-left-radius: 5px;
	border-top-right-radius: 5px;
	padding: 3px 6px 3px 6px;
}

#nav_menu ul li a:hover, a:focus {
	color: black;
	background-color: #00FF66;
}

#nav_menu ul li a:hover, a:focus, a:visited {
	color: black;
}

#nav_menu ul li.active, a.disabled {
	pointer-events: none !important;
	cursor: default !important;
	color: #fff333 !important;
}

/* =====================
   FOOTER
   ===================== */
footer {
	grid-area: foot;
	color: #00FF66;
	font-family: "VT323", monospace;
	border-top: 1px #00FF66 solid;
	max-width: 85%;
	margin: 0 auto;
	font-size: 125%;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-template-rows: auto auto;
	grid-gap: 10px;
}

.footer-grid-col-1, .footer-grid-col-2 {
	grid-row: 1/2;
	margin-top: 10px;
}

.footer-grid-col-1 {
	grid-row: 1 / 2;
	grid-column: 1 / 2;
	text-align: center;
}

.footer-grid-col-1 h3 {
	margin: 0;
}

.footer-grid-col-1 a {
	font-family: "Sixtyfour", sans-serif;
	color: #00FF66;
	font-size: 47%;
	padding: 1%;
	text-decoration: none;
	display: block;
}

.footer-grid-col-1 a:hover, a:focus {
	color: black;
	background: #00FF66;
}

.footer-grid-col-2 h3 {
	margin: 0;
}

.footer-grid-col-2 {
	grid-column: 2 / 3;
	text-align: center;
}

.linkedin {
	margin-bottom: 3px;
}

.linkedin img {
	margin: 3px;
	border: 3px solid black;
}

.footer-grid-col-2 .linkedin img:hover, img:focus {
	border: 3px solid #00FF66;
}

.linkedin a:hover, a:focus {
	background-color: transparent;
}

.github {
	margin-bottom: 3px;
}

.github img {
	margin: 3px;
	border: 3px solid black;
}

.footer-grid-col-2 .github img:hover, img:focus {
	border: 3px solid #00FF66;
}

.github a:hover, a:focus {
	background-color: transparent;
}

.steam-miniprofile-show {
	max-width: 328px;
	margin: auto;
}

.footer-row-2 {
	grid-row: 2;
	grid-column: 1 / 3;
}

/* =====================
   RESPONSIVE — 840px
   ===================== */
@media screen and (max-width: 840px) {

	/* NAV */
	.slicknav_menu {
		display: block;
		font-family: "Sixtyfour", sans-serif !important;
		background-color: black !important;
	}
	#nav_menu {
		display: none;
	}

	.slicknav_menutxt {
		color: #00FF66 !important;
	}

	.slicknav_btn.slicknav_collapsed {
		background-color: black !important;
		border: 1px #00FF66 solid !important;
	}

	.slicknav_menu .slicknav_icon-bar {
		background-color: #00FF66 !important;
	}

	.slicknav_btn.slicknav_open {
		background-color: #00FF66 !important;
	}

	.slicknav_btn.slicknav_open .slicknav_menutxt {
		color: black !important;
	}

	.slicknav_btn.slicknav_open .slicknav_icon-bar {
		background-color: black !important;
	}

	.slicknav_nav a {
		color: #00FF66 !important;
	}

	.slicknav_nav a.active {
		color: #fff333 !important;
	}

	.slicknav_nav a:hover, a:focus {
		color: black !important;
		background-color: #00FF66 !important;
	}

	.slicknav_nav a:hover, a:focus, a:visited {
		color: black;
	}

	.slicknav_nav a.disabled {
		pointer-events: none !important;
		cursor: default !important;
		color: #fff333 !important;
		border-left: 2px #00FF66 solid !important;
	}

	/* 275 mobile — all full width, consistent sizing */
	.\32 75-p1-code,
	.\32 75-p2-code,
	.\32 75-p3-code,
	.\32 75-p4-code {
		grid-column: 1 / span 12;
	}

	img.\32 75-p1-code,
	img.\32 75-p2-code,
	img.\32 75-p3-code,
	img.\32 75-p4-code {
		width: 100%;
		margin: auto;
	}

	/* VB.NET mobile — unified sizing */
	.vb-p1-ui,
	.vb-p2-ui,
	.vb-p3-ui {
		grid-column: 1 / span 12;
	}

	img.vb-p1-ui,
	img.vb-p2-ui,
	img.vb-p3-ui {
		/* Portrait UI screenshots: kept narrower intentionally */
		width: 67%;
		margin: auto;
	}

	.vb-p1-code,
	.vb-p2-code,
	.vb-p3-code {
		grid-column: 1 / span 12;
	}

	img.vb-p1-code,
	img.vb-p2-code,
	img.vb-p3-code {
		width: 100%;
		margin: auto;
	}

	.vb-p1-links { grid-row: 4; }
	.vb-p2-links { grid-row: 7; }
	.vb-p3-links { grid-row: 10; }
}

/* =====================
   RESPONSIVE — 604px (footer)
   ===================== */
@media screen and (max-width: 604px) {
	.footer-grid-col-2 {
		grid-row: 1;
		grid-column: 1 / span 2;
		margin: auto;
	}
	.footer-grid-col-1 {
		grid-row: 2;
		grid-column: 1 / span 2;
		margin: auto;
		width: 75%;
		border-top: 1px solid #00FF66;
		margin-bottom: 5%;
	}
}

/* =====================
   RESPONSIVE — 468px
   ===================== */
@media screen and (max-width: 468px) {
	header {
		font-size: 200%;
	}
}

/* =====================
   RESPONSIVE — 436px
   ===================== */
@media screen and (max-width: 436px) {
	header {
		font-size: 190%;
	}
}

/* Removed global box-sizing override — was causing subtle sizing issues */