/*
	Custom additions on top of the Big Picture template: the cover
	screen, the gallery strip (Parallelism-style fixed-size tiles with
	gutters, in the spirit of html5up.net/parallelism), and the CV
	section/page. Two-color system throughout: a warm beige "paper"
	(#f6f2e9) and navy (#273254), plus mixed tints of the two — no
	other hues.
*/

/* Header — blends with whatever's directly behind it: navy while the
   cover is the topmost section, paper everywhere else. Toggled by
   assets/js/custom.js. */
#header {
	transition: background-color 0.3s ease, border-color 0.3s ease;
}

	#header.over-cover {
		background-color: #273254;
		border-bottom-color: #273254;
	}

		#header.over-cover h1,
		#header.over-cover nav ul li a {
			color: #f6f2e9;
		}

		#header.over-cover nav ul li a:hover {
			color: #ffffff;
		}

/* Cover — first screen, plain navy, "portfolio." top-right, name/role
   bottom-left. */
.cover {
	position: relative;
	height: 100vh;
	width: 100%;
	background: #273254;
	overflow: hidden;
}

	.cover-title {
		position: absolute;
		top: 28%;
		right: 10%;
		margin: 0;
		color: #f6f2e9;
		font-weight: 700;
		font-size: 2.75em;
		letter-spacing: -0.01em;
	}

	.cover-meta {
		position: absolute;
		left: 10%;
		bottom: 9%;
	}

	.cover-name {
		margin: 0 0 0.4em 0;
		color: #f6f2e9;
		font-weight: 300;
		font-size: 1.1em;
		letter-spacing: 0.12em;
	}

	.cover-role {
		margin: 0;
		color: rgba(246,242,233,0.55);
		font-weight: 300;
		font-size: 0.85em;
		letter-spacing: 0.1em;
	}

@media screen and (max-width: 736px) {
	.cover-title {
		top: 24%;
		right: 6%;
		font-size: 2em;
	}

	.cover-meta {
		left: 6%;
		bottom: 7%;
	}

	.cover-name {
		font-size: 0.9em;
	}

	.cover-role {
		font-size: 0.7em;
	}
}

/* Gallery strip */

.gallery-strip {
	position: relative;
	width: 100%;
	padding: 3em 0;
	background: #f6f2e9;
}

.gallery-strip-track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 0 3.5em;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

	.gallery-strip-track::-webkit-scrollbar {
		display: none;
	}

.strip-item {
	position: relative;
	flex: 0 0 auto;
	width: 17em;
	height: 21em;
	margin: 0 0.35em;
	display: block;
	overflow: hidden;
	scroll-snap-align: start;
	background-color: #f2f3f5;
	background-size: cover;
	background-position: center;
	box-shadow: 0 1px 3px rgba(39,50,84,0.15);
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

	.strip-item:hover,
	.strip-item:focus {
		transform: scale(1.18);
		z-index: 5;
		box-shadow: 0 14px 32px rgba(39,50,84,0.35);
	}

	.strip-item::after {
		content: '';
		position: absolute;
		left: 0;
		right: 0;
		bottom: 0;
		height: 45%;
		background: linear-gradient(to top, rgba(20,26,44,0.8), rgba(20,26,44,0));
		opacity: 0;
		transition: opacity 0.35s ease;
		pointer-events: none;
	}

	.strip-item:hover::after,
	.strip-item:focus::after {
		opacity: 1;
	}

.strip-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	display: flex;
	align-items: center;
	gap: 0.6em;
	padding: 1.5em 1.25em;
	color: #f6f2e9;
	opacity: 0;
	transform: translateY(12px);
	transition: opacity 0.35s ease, transform 0.35s ease;
	font-family: 'Open Sans Condensed', system-ui, sans-serif;
}

	.strip-item:hover .strip-caption,
	.strip-item:focus .strip-caption {
		opacity: 1;
		transform: translateY(0);
	}

	.strip-caption h3 {
		margin: 0;
		font-size: 1.05em;
		font-weight: 600;
		letter-spacing: -0.01em;
		color: #f6f2e9;
	}

	.strip-logo {
		display: block;
		flex: 0 0 auto;
		height: 2.25em;
		width: auto;
		max-width: 40%;
		object-fit: contain;
		object-position: left bottom;
	}

	.strip-name {
		flex: 1 1 auto;
		font-size: 0.95em;
		font-weight: 600;
		line-height: 1.2;
		letter-spacing: -0.01em;
		color: #f6f2e9;
	}

/* Arrows — the template's own line-drawn "scroll" arrow icon
   (assets/css/images/dark-arrow.svg), inverted for a light button and
   rotated to point sideways, instead of a generic glyph. */
.strip-arrow {
	position: absolute;
	top: 50%;
	z-index: 10;
	width: 2.75em;
	height: 2.75em;
	margin-top: -1.375em;
	border-radius: 100%;
	border: solid 1px #d8dae0;
	background-color: #f6f2e9;
	box-shadow: 0 1px 4px rgba(39,50,84,0.18);
	cursor: pointer;
	padding: 0;
	transition: background-color 0.2s ease, border-color 0.2s ease;
}

	.strip-arrow::before {
		content: '';
		position: absolute;
		inset: 0;
		background-image: url('images/navy-arrow.svg');
		background-position: center center;
		background-repeat: no-repeat;
		background-size: 32% 32%;
	}

	.strip-arrow-prev::before {
		transform: rotate(90deg);
	}

	.strip-arrow-next::before {
		transform: rotate(-90deg);
	}

	.strip-arrow:hover {
		background-color: #f2f3f5;
		border-color: #273254;
	}

	.strip-arrow-prev {
		left: 1em;
	}

	.strip-arrow-next {
		right: 1em;
	}

@media screen and (max-width: 980px) {
	.strip-item {
		width: 14em;
		height: 17.5em;
	}
}

@media screen and (max-width: 736px) {
	.gallery-strip {
		padding: 2em 0;
	}

	.gallery-strip-track {
		padding: 0 1.5em;
	}

	.strip-item {
		width: 10em;
		height: 12.5em;
		margin: 0 0.25em;
	}

	.strip-caption {
		opacity: 1;
		transform: none;
		padding: 0.85em 0.7em;
		gap: 0.4em;
	}

	.strip-caption h3 {
		font-size: 0.95em;
	}

	.strip-logo {
		height: 1.5em;
		max-width: 35%;
	}

	.strip-name {
		font-size: 0.7em;
		line-height: 1.15;
	}

	.strip-item::after {
		opacity: 1;
	}

	.strip-arrow {
		width: 2.25em;
		height: 2.25em;
		margin-top: -1.125em;
	}
}

/* About — wider content column than the template default, two-column
   bio/skills layout matching the reference design. */
#about .content,
.about-page .content {
	width: 64em;
	text-align: left;
}

.eyebrow {
	margin: 0 0 0.5em 0;
	font-size: 0.75em;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #273254;
}

.about-heading {
	margin: 0 0 1.5em 0;
	font-size: 2.5em;
	line-height: 1.15;
}

.about-body {
	display: flex;
	gap: 4em;
	border-top: solid 1px #d8dae0;
	padding-top: 2em;
}

	.about-bio {
		flex: 1 1 45%;
	}

		.about-bio p {
			margin-bottom: 1.25em;
		}

	.about-skills {
		flex: 1 1 55%;
	}

.skills-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.5em 2em;
	margin: 0 0 2em 0;
}

	.skills-grid h4 {
		margin: 0 0 0.5em 0;
		font-size: 1em;
	}

	.skills-grid ul {
		margin: 0;
		padding: 0;
		list-style: none;
	}

	.skills-grid li {
		font-size: 0.85em;
		color: #7a7f90;
		margin-bottom: 0.25em;
	}

.education-card {
	border: solid 1px #d8dae0;
	border-radius: 2px;
	padding: 1.25em 1.5em;
	margin-bottom: 1em;
}

	.education-card h4 {
		margin: 0 0 0.25em 0;
	}

	.education-card .muted {
		margin: 0 0 0.5em 0;
		font-size: 0.85em;
		color: #7a7f90;
	}

	.education-card .thesis {
		margin: 0;
		font-size: 0.8em;
		color: #7a7f90;
	}

.cv-preview {
	display: block;
}

	.cv-preview img {
		display: block;
		width: 100%;
		height: auto;
		box-shadow: 0 4px 18px rgba(39,50,84,0.2);
	}

@media screen and (max-width: 980px) {
	.about-body {
		flex-direction: column;
		gap: 2em;
	}
}

@media screen and (max-width: 736px) {
	.about-heading {
		font-size: 1.75em;
	}

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

/* Footer — plain text links (copyright + GitHub/LinkedIn/Email),
   no icon set. */
#footer {
	font-family: 'Open Sans Condensed', system-ui, sans-serif;
}

	#footer p {
		margin: 0;
		font-size: 0.85em;
	}

	#footer ul.menu li {
		font-size: 0.85em;
		text-transform: uppercase;
		letter-spacing: 0.05em;
	}

/* Projects — six-tile category grid (2x3): each tile is a workflow
   category rather than a single named project. */
#work .content {
	width: 64em;
}

.project-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1em;
	margin-top: 2em;
	text-align: left;
}

.project-tile {
	position: relative;
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background-color: #f2f3f5;
	background-size: cover;
	background-position: center;
	box-shadow: 0 1px 3px rgba(39,50,84,0.15);
	transition: transform 0.6s ease, opacity 0.6s ease;
}

/* B and C — show the full photo instead of a cropped fill */
.project-grid > :nth-child(2),
.project-grid > :nth-child(3) {
	background-size: contain, cover;
	background-repeat: no-repeat, no-repeat;
	background-position: center, center;
}

/* Scroll-triggered slide-in, matching the template's original
   gallery from-left/from-right pattern: left column slides in from
   the left, right column from the right. Toggled by custom.js. */
.project-grid.inactive > :nth-child(odd) {
	opacity: 0;
	transform: translateX(-3em);
}

.project-grid.inactive > :nth-child(even) {
	opacity: 0;
	transform: translateX(3em);
}

.project-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	gap: 0.75em;
	padding: 1.25em;
	background: linear-gradient(to top, rgba(20,26,44,0.85), rgba(20,26,44,0) 65%);
}

	.project-overlay h3 {
		margin: 0;
		font-size: 1.1em;
		font-weight: 600;
		letter-spacing: -0.01em;
		color: #f6f2e9;
	}

.project-logos {
	display: flex;
	align-items: center;
	gap: 0.9em;
}

	.project-logos img {
		display: block;
		height: 1.75em;
		width: auto;
	}

/* D — BIM + AI: no photo, all tool logos tiled instead */
.project-tile-logos {
	background-color: #f6f2e9;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1em;
}

	.project-tile-logos-grid {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 1.25em;
		padding: 1.5em;
	}

	.project-tile-logos-grid img {
		display: block;
		height: 2.25em;
		width: auto;
		margin: 0 auto;
	}

	.project-tile-logos h3 {
		margin: 0;
		font-size: 1.1em;
		font-weight: 600;
		color: #273254;
	}

/* E — Others: collage of the two projects with no category info */
.project-tile-collage {
	background-color: #f2f3f5;
}

	.project-tile-collage-grid {
		position: absolute;
		inset: 0;
		display: grid;
		grid-template-columns: 47% 53%;
	}

		.project-tile-collage-grid > div {
			background-size: cover;
			background-position: center;
		}

/* F — reserved, no content yet */
.project-tile-empty {
	background-color: #f2f3f5;
	border: 1px dashed #d8dae0;
	box-shadow: none;
}

@media screen and (max-width: 736px) {
	.project-grid {
		grid-template-columns: 1fr;
	}

	.project-grid.inactive > :nth-child(odd),
	.project-grid.inactive > :nth-child(even) {
		transform: translateY(1.5em);
	}
}

/* Intro "Hello" text — static, no scroll-triggered fade-in (overrides
   the template's default .main.style1 inactive/enter transition). */
#intro .main.style1.inactive > .content {
	opacity: 1;
}
