:root {
	--background: #f8f8f4;
	--text: #2d3138;
	--ocean: #0d3b66;
	--sea-glass: #5b8e7d;
	--coral: #e58c73;
	--surface: #ffffff;
}

/* ----------------------------------------
   Global styles
---------------------------------------- */

html {
	scroll-behavior: smooth;
}

body {
	background: var(--background);
	color: var(--text);
	font-family: "Inter", sans-serif;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--ocean);
	font-family: "Cormorant Garamond", serif;
	font-weight: 600;
	letter-spacing: 0;
}

a {
	color: var(--ocean);
}

a:hover {
	color: var(--coral);
}

.button.primary {
	background-color: var(--ocean);
}

.button.primary:hover {
	background-color: var(--sea-glass);
}

/* Navigation */

#nav {
	background: rgba(248, 248, 244, 0.96);
}

#nav ul li a {
	color: var(--text);
	font-weight: 500;
	border-radius: 8px;
}

#nav ul li a:hover {
	color: #ffffff !important;
	background-color: var(--sea-glass) !important;
}

#nav ul li a.active {
	color: #ffffff !important;
	background-color: var(--ocean) !important;
	box-shadow: none !important;
}

#nav ul li a.active:hover {
	color: #ffffff !important;
	background-color: var(--sea-glass) !important;
}
/* ----------------------------------------
   Main section backgrounds
---------------------------------------- */

#main {
	background: var(--surface);
}

#featured-projects {
	 background: #ffffff;
}
.project-grid {
    background: #f1f4f0;
    padding: 2.5rem;
    border-radius: 1rem;
}
#skills {
	background: #ffffff;
}

#ocean-art {
	background: #eef4f3;
}

#cv {
	background: #f8f3ef;
}

/* ----------------------------------------
   Small section label
---------------------------------------- */

.eyebrow {
	color: var(--sea-glass);
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	margin-bottom: 0.5rem;
	text-transform: uppercase;
}

/* ----------------------------------------
   Hero section
---------------------------------------- */

/* Hero section */

#header.hero {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-end;

	min-height: 88vh;
	padding: 7rem 10vw 5rem 6vw;

	overflow: hidden;

	background-image: url("../../images/hero-snorkelling.webp");
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;

	text-align: left;
}

#header.hero .hero-overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(
			to right,
			rgba(8,31,48,0.18) 0%,
			rgba(8,31,48,0.28) 35%,
			rgba(8,31,48,0.48) 100%
		);
}

#header.hero .hero-content {
	position: absolute;
	z-index: 1;

	top: 50%;
	left: 54%;
	right: 5%;

	width: auto;
	max-width: none;
	margin: 0;

	transform: translateY(-47%);
	color: #ffffff;
	text-align: left;
}

#header.hero h1 {
	color: #ffffff;
	font-size: clamp(3.2rem, 5vw, 5rem);
	line-height: 0.95;
	margin-bottom: 0.45em;
	text-shadow: 0 2px 18px rgba(0, 0, 0, 0.28);
}

#header.hero .role {
	color: #ffffff;
	font-size: 1.15rem;
	font-weight: 600;
	letter-spacing: 0.05em;
	margin-bottom: .35rem;
	text-transform: uppercase;
}

#header.hero .pronouns {
	color: #ffffff;
	font-size: 1.15rem;
	font-weight: 400;
	letter-spacing: .03em;
	margin-bottom: 2rem;
	opacity: .95;
}

#header.hero .tagline {
	color: #ffffff;
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(1.6rem, 2.5vw, 2.3rem);
	line-height: 1.4;
	max-width: none;
	margin: 0;
	text-shadow: 0 2px 14px rgba(0, 0, 0, 0.3);
}

.hero-scroll {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;

	margin-top: 2.75rem;

	color: #ffffff;
	font-size: .95rem;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;

	text-decoration: none !important;
	border: none !important;
	box-shadow: none !important;
}

.hero-scroll:hover,
.hero-scroll:focus {
	color: #ffffff;
	text-decoration: none !important;
	border: none !important;
	box-shadow: none !important;
}

.hero-scroll::after,
.hero-scroll::before {
	display: none !important;
	content: none !important;
}

.hero-arrow {
	font-size: 2rem;
	margin-top: .35rem;
	border: none !important;
	box-shadow: none !important;
	animation: hero-bounce 1.8s ease-in-out infinite;
}

@keyframes hero-bounce {
	0%,
	100% {
		transform: translateY(0);
	}

	50% {
		transform: translateY(7px);
	}
}

.photo-credit,
#header.hero .photo-credit {
	position: absolute;
	right: 0.6rem;
	bottom: 0.45rem;
	z-index: 20;

	margin: 0 !important;
	padding: 0 !important;

	font-family: "Inter", sans-serif !important;
	font-size: 9px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	letter-spacing: 0.04em !important;

	color: rgba(255, 255, 255, 0.48) !important;

	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);

	pointer-events: none;
	user-select: none;
}

.photo-credit-left,
.about-details-image .photo-credit-left {
	left: 0.6rem;
	right: auto;
	bottom: 0.45rem;
}
/* ----------------------------------------
   About section
---------------------------------------- */

#about.about-feature {
	padding: 0;
	background: var(--surface);
}

/* Frigatebird image */

.about-hero {
	position: relative;
	width: 100%;
	height: clamp(30rem, 48vw, 44rem);
	overflow: hidden;
}

.about-hero > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* Blur and darken only the bush area behind the text */

.about-hero-shade {
	position: absolute;

	top: 40%;
	right: 4%;
	bottom: 8%;
	left: 51%;

	background: rgba(8, 31, 48, 0.48);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 0.4rem;

	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);

	box-shadow: 0 1rem 3rem rgba(8, 31, 48, 0.18);
}

/* Position the introduction over the blurred bush */

/* Two blurred text panels over the About image */

.about-hero-shade {
	display: none;
}

/* Shared styling for both About text panels */

.about-hero-text {
	position: absolute;
	z-index: 1;

	padding: 1.5rem 1.8rem;

	background: rgba(8, 31, 48, 0.5);
	border: 1px solid rgba(255, 255, 255, 0.18);
	border-radius: 0.4rem;

	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);

	box-shadow: 0 1rem 3rem rgba(8, 31, 48, 0.14);
}

.about-hero-text p {
	margin: 0;

	color: #ffffff;
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(1.19rem, 1.78vw, 1.69rem);
	line-height: 1.42;

	text-shadow: 0 2px 10px rgba(0, 0, 0, 0.22);
}

/* Wider left box */

.about-hero-text-top {
	top: 5%;
	left: 3%;

	width: min(49rem, 54%);
}

/* Lower right box */

.about-hero-text-right {
	top: 76%;
	right: 3%;

	width: min(36rem, 40%);

	transform: translateY(-50%);
}
/* Detailed About content */

.about-details {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(24rem, 0.75fr);
	align-items: stretch;

	width: 100%;
	max-width: none;
	min-height: 48rem;
	margin: 0;

	background: var(--surface);
}

.about-details-image {
	position: relative;
	min-height: 48rem;
	overflow: hidden;
}

.about-details-image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.about-details-fade {
	position: absolute;
	inset: 0;

	background:
		linear-gradient(
			90deg,
			rgba(255, 255, 255, 0) 58%,
			rgba(255, 255, 255, 0.45) 76%,
			rgba(255, 255, 255, 0.92) 94%,
			#ffffff 100%
		);

	pointer-events: none;
}

.about-details-text {
	position: relative;
	z-index: 2;

	display: flex;
	flex-direction: column;
	justify-content: center;

	margin-left: -5rem;
	padding: 5rem 4rem 5rem 1rem;

	max-width: 38rem;
}

.about-details-text .about-intro {
	color: var(--ocean);
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(1.8rem, 3vw, 2.5rem);
	line-height: 1.35;
}

.about-details-text p {
	line-height: 1.75;
}


/* Tablet */

@media screen and (max-width: 980px) {
	.about-hero-text {
		left: 5%;
		width: 50%;
	}

	.about-details {
		grid-template-columns: minmax(0, 1fr) minmax(22rem, 0.8fr);
		min-height: 42rem;
	}

	.about-details-image {
		min-height: 42rem;
	}

	.about-details-text {
		margin-left: -3rem;
		padding: 4rem 2.5rem 4rem 1rem;
	}
}

/* Mobile */

@media screen and (max-width: 736px) {
	

	/* Mobile About hero */

.about-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;

	width: 100%;
	height: auto;
	min-height: 52rem;

	padding: 3rem 1.25rem 4.5rem;
	overflow: hidden;
}

/* Make the photograph fill the whole mobile section */

.about-hero > img {
	position: absolute;
	inset: 0;

	width: 100%;
	height: 100%;

	object-fit: cover;
	object-position: 43% center;

	z-index: 0;
}

/* Gentle overall shading so both boxes remain readable */

.about-hero::after {
	content: "";
	position: absolute;
	inset: 0;

	background:
		linear-gradient(
			to bottom,
			rgba(8, 31, 48, 0.10) 0%,
			rgba(8, 31, 48, 0.18) 30%,
			rgba(8, 31, 48, 0.42) 100%
		);

	z-index: 0;
	pointer-events: none;
}

/* Stack both boxes rather than positioning them independently */

.about-hero-text {
	position: relative;
	top: auto;
	right: auto;
	bottom: auto;
	left: auto;

	z-index: 2;

	width: 100%;
	max-width: none;
	margin: 0;
	padding: 1.25rem 1.35rem;

	transform: none;

	background: rgba(8, 31, 48, 0.62);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

/* Space between the two panels */

.about-hero-text + .about-hero-text {
	margin-top: 1rem;
}

/* Prevent the desktop positioning classes overriding this */

.about-hero-text-top,
.about-hero-text-right {
	top: auto;
	right: auto;
	bottom: auto;
	left: auto;

	width: 100%;
	transform: none;
}

.about-hero-text p {
	font-size: 1.22rem;
	line-height: 1.42;
}

/* Keep the credit attached to the image corner */

.about-hero > .photo-credit {
	right: 0.75rem;
	bottom: 0.65rem;
	z-index: 3;
}
	
.about-details {
		display: block;
		min-height: auto;
	}

	.about-details-image {
		min-height: 0;
		height: auto;
	}

	.about-details-image img {
		width: 100%;
		height: auto;
		object-fit: contain;
	}

	.about-details-fade {
		display: none;
	}

	.about-details-text {
		margin: 0;
		padding: 3.5rem 1.75rem 4rem;
		max-width: none;
	}
}

/* ----------------------------------------
   Placeholder sections
---------------------------------------- */

.section-placeholder {
	padding: 3rem 1rem;
	border: 1px dashed rgba(13, 59, 102, 0.2);
	border-radius: 0.5rem;
	color: rgba(45, 49, 56, 0.65);
}

/* ----------------------------------------
   Footer and social icons
---------------------------------------- */

#contact {
	color: var(--text);
}

#contact h2 {
	color: var(--ocean);
}

#contact ul.icons li a,
#contact ul.icons li a::before {
	color: var(--ocean) !important;
	border-color: rgba(13, 59, 102, 0.25);
}

#contact ul.icons li a:hover,
#contact ul.icons li a:hover::before {
	color: var(--coral) !important;
	border-color: var(--coral);
}

/* ----------------------------------------
   Tablet layout
---------------------------------------- */

@media screen and (max-width: 980px) {
	#header.hero {
		padding: 5rem 4vw;
		background-position: 40% center;
	}

	#header.hero .hero-content {
		width: min(38rem, 52%);
	}

	#header.hero h1 {
		font-size: clamp(3.2rem, 6vw, 5rem);
	}

	#header.hero .role {
		font-size: 0.95rem;
	}

}

/* ----------------------------------------
   Mobile layout
---------------------------------------- */

@media screen and (max-width: 736px) {
	#header.hero {
		justify-content: flex-end;
		min-height: 82vh;
		padding: 4rem 1.5rem 3rem;

		background-position: 43% center;
		text-align: center;
	}

	#header.hero .hero-overlay {
		background:
			linear-gradient(
				to bottom,
				rgba(5, 28, 47, 0.06) 0%,
				rgba(5, 28, 47, 0.28) 42%,
				rgba(5, 28, 47, 0.84) 100%
			);
	}

	#header.hero .hero-content {
		position: relative;

		top: auto;
		left: auto;
		right: auto;

		width: 100%;
		max-width: none;
		margin-top: auto;

		transform: none;
		text-align: center;
	}


	#header.hero h1 {
		font-size: clamp(3rem, 13vw, 4.5rem);
	}

	#header.hero .role {
		font-size: 0.85rem;
		line-height: 1.5;
	}

	#header.hero .pronouns {
		font-size: 1rem;
	}

	#header.hero .tagline {
		max-width: 34rem;
		margin: 1.25rem auto 0;
	}

	.hero-scroll {
		align-items: center;
	}


}
/* ----------------------------------------
   Contact section
---------------------------------------- */

#contact {
	display: block;
	padding-top: 4rem;
	padding-bottom: 3rem;
	color: var(--text);
}

#contact .contact-intro {
	width: 100%;
	margin: 0;
}

#contact h2 {
	color: var(--ocean);
}

#contact .contact-email {
	margin: 1.75rem 0 2rem;
	font-size: 1.15rem;
}

#contact .contact-email a {
	color: var(--ocean);
	text-decoration: none;
	border-bottom: 1px solid rgba(13, 59, 102, 0.35);
}

#contact .contact-email a:hover {
	color: var(--coral);
	border-bottom-color: var(--coral);
}

#contact .contact-icons {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.85rem;
	margin: 0 0 3rem;
	padding: 0;
}

#contact .contact-icons li {
	display: block;
	margin: 0;
	padding: 0;
}

#contact .contact-icons li a {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	width: 3rem;
	height: 3rem;

	color: var(--ocean) !important;
	border: 1px solid rgba(13, 59, 102, 0.25);
	border-radius: 50%;

	font-size: 1.25rem;
	text-decoration: none;
}

#contact .contact-icons li a::before {
	color: inherit !important;
	font-family: "Font Awesome 6 Brands" !important;
}

#contact .contact-icons li a:hover {
	color: #ffffff !important;
	background: var(--sea-glass);
	border-color: var(--sea-glass);
}

#contact .copyright {
	width: 100%;
	margin: 0;
	font-size: 0.85rem;
}
/* ----------------------------------------
   Footer logo
---------------------------------------- */

.footer-signature {
	text-align: center;
	margin-top: 3rem;
	padding-bottom: 2rem;
}

.footer-logo {
	display: block;
	width: 70px;
	height: auto;

	margin: 0 auto 1rem;

	opacity: 0.95;
	transition: transform 0.25s ease,
	            opacity 0.25s ease;
}

.footer-logo:hover {
	transform: translateY(-2px);
	opacity: 1;
}

.footer-signature .copyright {
	margin-top: 0;
}

/* ----------------------------------------
   Ocean Art & Photography
---------------------------------------- */
.gallery-close,
.gallery-arrow {
	-webkit-appearance: none;
	appearance: none;

	width: auto;
	min-width: 0;
	height: auto;
	min-height: 0;

	margin: 0;
	padding: 0;

	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;

	line-height: 1;
	text-transform: none;
	letter-spacing: normal;
}

/* Remove decorative pseudo-elements added by template styles */

.gallery-close::before,
.gallery-close::after,
.gallery-arrow::before,
.gallery-arrow::after {
	display: none !important;
	content: none !important;
}
.ocean-art-section {
	overflow: hidden;
}

.creative-mediums {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.5rem;

	max-width: 1200px;
	margin: 3rem auto 0;
}

.creative-medium-card {
	position: relative;
	display: block;

	width: 100%;
	min-height: 25rem;
	padding: 0;
	overflow: hidden;

	border: 0;
	border-radius: 0.6rem;
	background: none;
	box-shadow: none;

	cursor: pointer;
	text-align: left;
}

.creative-medium-card > img {
	display: block;
	width: 100%;
	height: 25rem;

	object-fit: cover;
	object-position: center;

	transition: transform 0.5s ease;
}
.creative-medium-card:first-child > img {
	object-position: center 55%;
}
.creative-medium-card:hover img,
.creative-medium-card:focus-visible img {
	transform: scale(1.025);
}

.creative-medium-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 2.5rem;

	color: #ffffff;
	background:
		linear-gradient(
			to top,
			rgba(8, 31, 48, 0.78) 0%,
			rgba(8, 31, 48, 0.18) 55%,
			rgba(8, 31, 48, 0.02) 100%
		);
}
.creative-medium-placeholder {
	cursor: default;
}

.creative-placeholder-background {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;

	width: 100%;
	min-height: 25rem;
	padding: 2rem;

	color: #ffffff;

	background:
		linear-gradient(
			145deg,
			rgba(13, 59, 102, 0.96),
			rgba(91, 142, 125, 0.82)
		);
}
.creative-medium-title {
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(2.6rem, 5vw, 4.25rem);
	font-weight: 600;
	line-height: 1;
}
.creative-medium-name {
	display: block;

	font-family: "Cormorant Garamond", serif;
	font-size: clamp(2rem, 4vw, 3.25rem);
	font-weight: 600;
	line-height: 1;
}

.creative-medium-action {
	display: block;
	margin-top: 0.75rem;

	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.ocean-art-intro {
    max-width: 70rem;
    margin: 0 auto 4rem;
    padding: 0 3rem;

    line-height: 1.65;
}

@media screen and (max-width: 736px) {

    .ocean-art-intro {
        margin-bottom: 2.5rem;
        padding: 0 1rem;
    }

}

.art-gallery {
	grid-column: 1 / -1;

	margin-top: 1.5rem;
	padding-top: 2rem;
	border-top: 1px solid rgba(13, 59, 102, 0.15);
}

.art-gallery-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 2rem;
	margin-bottom: 1.5rem;
	text-align: left;
}

.art-gallery-heading h3 {
	margin: 0;
	font-size: clamp(2rem, 4vw, 3rem);
}

.gallery-close {
	color: var(--ocean);
	font-size: 3rem;
	font-weight: 300;
	cursor: pointer;

	transition:
		transform 0.2s ease,
		opacity 0.2s ease;
}

.gallery-close:hover,
.gallery-close:focus-visible {
	transform: scale(1.08);
	opacity: 0.7;
}

.gallery-scroll-wrapper {
	position: relative;
	padding: 0 4rem;
}

.horizontal-gallery {
	display: flex;
	gap: 1.5rem;

	overflow-x: auto;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;

	padding: 0.5rem 0 1.5rem;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.art-card {
	flex: 0 0 auto;

	display: flex;
	flex-direction: column;
	align-items: flex-start;

	width: fit-content;
	max-width: 85vw;
	margin: 0;

	scroll-snap-align: start;
	text-align: left;
}

.art-card img {
	display: block;

	width: auto;
	height: 28rem;
	max-width: 85vw;

	object-fit: contain;

	border-radius: 0.45rem;
	background: #ecece8;
}

/*
The width: 0 / min-width: 100% combination prevents the
caption text from making the figure wider than its image.
*/
.art-card figcaption {
	width: 0;
	min-width: 100%;
	max-width: 100%;

	padding: 1rem 0.25rem 0;
	box-sizing: border-box;

	white-space: normal;
	overflow-wrap: anywhere;
}

.art-card figcaption span {
	display: block;
	color: rgba(45, 49, 56, 0.78);
	font-size: 0.95rem;
	line-height: 1.55;
}

.gallery-arrow {
	-webkit-appearance: none;
	appearance: none;

	position: absolute;
	top: 14rem;
	z-index: 3;

	width: auto;
	min-width: 0;
	height: auto;
	min-height: 0;

	margin: 0;
	padding: 0;

	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;

	color: var(--ocean);
	font-size: 3.5rem;
	font-weight: 300;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;
	cursor: pointer;

	transition:
		transform 0.2s ease,
		opacity 0.2s ease;
}

.gallery-arrow::before,
.gallery-arrow::after {
	display: none !important;
	content: none !important;
}

.gallery-arrow-left {
	left: 0.35rem;
}

.gallery-arrow-right {
	right: 0.35rem;
}

.gallery-arrow-left:hover,
.gallery-arrow-left:focus-visible {
	transform: translateX(-0.2rem);
	opacity: 0.65;
}

.gallery-arrow-right:hover,
.gallery-arrow-right:focus-visible {
	transform: translateX(0.2rem);
	opacity: 0.65;
}

@media screen and (max-width: 736px) {

	.creative-medium-card,
	.creative-medium-card img {
		min-height: 27rem;
		height: 27rem;
	}

	.creative-medium-overlay {
		padding: 1.75rem;
	}

	.horizontal-gallery {
		padding-right: 1rem;
		padding-left: 1rem;
	}

	.art-card {
		max-width: 88vw;
	}

	.art-card img {
		width: auto;
		height: 22rem;
		max-width: 88vw;
	}
.gallery-scroll-wrapper {
		padding: 0;
	}
	.gallery-arrow {
		display: none;
	}
	.creative-mediums {
		grid-template-columns: 1fr;
	}
}
@media screen and (max-width: 900px) {
	.creative-mediums {
		grid-template-columns: 1fr;
	}
}

/* ----------------------------------------
   Photography gallery
---------------------------------------- */

.photography-panel {
	grid-column: 1 / -1;
	width: 100%;
}

/* Space between the three themed rows */

.photography-panel .gallery-section {
	margin: 0 0 4rem;
}

.photography-panel .gallery-section:last-child {
	margin-bottom: 0;
}

/* Row headings */

.photography-panel .gallery-section h3 {
	margin: 0 0 1.25rem;
	padding-left: 4rem;

	color: var(--ocean);

	font-family: "Cormorant Garamond", serif;
	font-size: clamp(2rem, 4vw, 2.75rem);
	font-weight: 600;
	line-height: 1.1;
	text-align: left;
}

/* Allow the artwork to fill the available gallery width */

.photography-panel .gallery-scroll-wrapper {
	position: relative;
	padding: 0 4rem;
}

/* Each themed row scrolls independently */

.photography-panel .horizontal-gallery {
	display: flex;
	align-items: flex-start;
	gap: 1.5rem;

	overflow-x: auto;
	overflow-y: hidden;

	padding: 0.5rem 0 1.5rem;

	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;

	scrollbar-width: thin;
}

/*
   Landscape photography cards preserve the natural aspect ratio.
   The figure width is established by its image.
*/

.photography-panel .art-card {
	flex: 0 0 auto;

	display: flex;
	flex-direction: column;
	align-items: flex-start;

	width: fit-content;
	max-width: 85vw;
	margin: 0;

	scroll-snap-align: start;
	text-align: left;
}

/* Photography is displayed slightly larger than ceramics */


/*
   Captions inherit the width established by the image rather than
   expanding the figure to fit one long line of text.
*/

.photography-panel .art-card figcaption {
	width: 0;
	min-width: 100%;
	max-width: 100%;

	box-sizing: border-box;
	padding: 1rem 0.25rem 0;

	white-space: normal;
	overflow-wrap: anywhere;
}

/* Hide caption space while captions are empty */

.photography-panel .art-card figcaption span:empty {
	display: none;
}

.photography-panel .art-card figcaption:has(span:empty) {
	display: none;
}

/* Future caption styling */

.photography-panel .art-card figcaption span {
	display: block;

	color: rgba(45, 49, 56, 0.78);

	font-size: 0.95rem;
	line-height: 1.55;
}

/* Photography arrows remain in the outside gutters */

.photography-panel .gallery-arrow {
	position: absolute;
	top: 16rem;
	z-index: 3;

	-webkit-appearance: none;
	appearance: none;

	width: auto;
	min-width: 0;
	height: auto;
	min-height: 0;

	margin: 0;
	padding: 0;

	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;

	color: var(--ocean);

	font-size: 3.5rem;
	font-weight: 300;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;

	cursor: pointer;

	transition:
		transform 0.2s ease,
		opacity 0.2s ease;
}

.photography-panel .gallery-arrow::before,
.photography-panel .gallery-arrow::after {
	display: none !important;
	content: none !important;
}

.photography-panel .gallery-arrow-left {
	left: 0.35rem;
}

.photography-panel .gallery-arrow-right {
	right: 0.35rem;
}

.photography-panel .gallery-arrow-left:hover,
.photography-panel .gallery-arrow-left:focus-visible {
	transform: translateX(-0.2rem);
	opacity: 0.65;
}

.photography-panel .gallery-arrow-right:hover,
.photography-panel .gallery-arrow-right:focus-visible {
	transform: translateX(0.2rem);
	opacity: 0.65;
}

/* Tablet */

@media screen and (max-width: 900px) {

	.photography-panel .photo-frame > img {
		height: 27rem;
	}

	.photography-panel .gallery-arrow {
		top: 13.5rem;
	}
}

/* Mobile */

@media screen and (max-width: 736px) {

	.photography-panel .gallery-section {
		margin-bottom: 3rem;
	}

	.photography-panel .gallery-section h3 {
		padding-left: 0;
		font-size: 2rem;
	}

	.photography-panel .gallery-scroll-wrapper {
		padding: 0;
	}

	.photography-panel .horizontal-gallery {

        padding-left: 1rem;
        padding-right: 3rem;

        scroll-padding-left: 1rem;

    }

    .photography-panel .art-card {

        flex: 0 0 88vw;

    }

	.photography-panel .art-card {
		max-width: 88vw;
	}

	.photography-panel .photo-frame {
		max-width: 88vw;
	}

	.photography-panel .photo-frame > img {
		width: auto;
		height: 22rem;
		max-width: 88vw;
	}

	.photography-panel .photo-frame::after {
		right: 0.65rem;
		bottom: 0.65rem;
		width: 2.75rem;
	}

	.photography-panel .gallery-arrow {
		display: none;
	}
}
/* ----------------------------------------
   Photography watermark
---------------------------------------- */

.photography-panel .photo-frame {
	position: relative;
	display: block;
	width: fit-content;
	max-width: 85vw;
}

/* Keep the main photograph at its natural proportions */

.photography-panel .photo-frame > img {
	display: block;

	width: auto;
	height: 32rem;
	max-width: 85vw;

	object-fit: contain;

	border-radius: 0.45rem;
	background: #ecece8;
}

/* Logo overlay */

.photography-panel .photo-frame::after {
	content: "";

	position: absolute;
	right: 1rem;
	bottom: 1rem;

	width: clamp(3rem, 8%, 5rem);
	aspect-ratio: 1;

	background:
		url("../../images/favicon/logo-primary.svg")
		center / contain
		no-repeat;

	/* Turn the blue SVG white */
	filter:
		brightness(0)
		invert(1);

	opacity: 0.72;

	pointer-events: none;
}
/* ----------------------------------------
   Mobile sticky navigation
---------------------------------------- */

@media screen and (max-width: 736px) {

	#nav,
	#nav.alt {
		display: block;

		position: sticky;
		top: 0;
		z-index: 10000;

		width: 100%;
		max-width: none;

		margin: 0;
		padding: 0.55rem 0.75rem;

		overflow-x: auto;
		overflow-y: hidden;

		background: rgba(248, 248, 244, 0.97);
		border-radius: 0;
		box-shadow: 0 0.2rem 0.8rem rgba(13, 59, 102, 0.10);

		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
	}

	/* Hide the horizontal scrollbar in Chrome/Safari */

	#nav::-webkit-scrollbar {
		display: none;
	}

	#nav ul {
		display: flex;
		flex-wrap: nowrap;
		align-items: center;

		width: max-content;
		min-width: 100%;

		margin: 0;
		padding: 0;
	}

	#nav ul li,
	#nav.alt ul li {
		flex: 0 0 auto;

		margin: 0 0.15rem;
		padding: 0;
	}

	#nav ul li a,
	#nav.alt ul li a {
		display: block;

		height: auto;
		padding: 0.55rem 0.85rem;

		font-size: 0.78rem;
		line-height: 1.2;
		white-space: nowrap;
	}

	/* Remove the template's desktop spacing above the main content */

	#nav + #main {
		padding-top: 0;
	}

	/* Prevent section headings being hidden beneath the sticky nav */

	#about,
	#featured-projects,
	#skills,
	#cv,
	#ocean-art,
	#contact {
		scroll-margin-top: 4.5rem;
	}
}
/* ----------------------------------------
   Mobile gallery scrolling fix
   Keep this at the very end of custom.css
---------------------------------------- */

@media screen and (max-width: 736px) {

	/*
	   Allow the gallery containers to shrink inside the
	   .creative-mediums CSS grid instead of expanding to
	   the combined width of all their images.
	*/

	#ocean-art,
	.ocean-art-section,
	.creative-mediums,
	.art-gallery,
	.gallery-section,
	.gallery-scroll-wrapper,
	.horizontal-gallery {
		min-width: 0;
		max-width: 100%;
	}

	/*
	   Do not clip the swipeable gallery at section level.
	   The individual gallery row will control its own overflow.
	*/

	.ocean-art-section {
		overflow: visible;
	}

	/*
	   Make every ceramics and photography row a true
	   horizontally scrolling touch area.
	*/

	.horizontal-gallery,
	.photography-panel .horizontal-gallery {
		display: flex;
		flex-direction: row;
		flex-wrap: nowrap;
		align-items: flex-start;

		width: 100%;
		max-width: 100%;

		overflow-x: scroll !important;
		overflow-y: hidden !important;

		padding: 0.5rem 1rem 1.5rem;

		scroll-behavior: smooth;
		scroll-snap-type: x proximity;

		-webkit-overflow-scrolling: touch;
		touch-action: pan-x;
		overscroll-behavior-x: contain;
	}

	/*
	   Prevent the cards from shrinking to fit the screen.
	   Their combined width must exceed the gallery width
	   for horizontal scrolling to occur.
	*/

	.horizontal-gallery .art-card,
	.photography-panel .horizontal-gallery .art-card {
		flex: 0 0 auto;
		width: fit-content;
		max-width: 88vw;
	}

	/*
	   Ensure photo wrappers also preserve their width.
	*/

	.photography-panel .photo-frame {
		flex: 0 0 auto;
		width: fit-content;
		max-width: 88vw;
	}

	/*
	   Reapply the intended mobile image sizes.
	   These rules must come after the later desktop
	   watermark/image rules in your existing CSS.
	*/

	.art-card > img {
		width: auto;
		height: 22rem;
		max-width: 88vw;
	}

	.photography-panel .photo-frame > img {
		width: auto;
		height: 22rem;
		max-width: 88vw;
	}

	/*
	   Keep arrows hidden because the rows are now swipeable.
	*/

	.gallery-arrow,
    .photography-panel .gallery-arrow {

        display: flex;

        width: 2.25rem;
        height: 2.25rem;

        font-size: 2rem;

        opacity: 0.45;

        pointer-events: none;

        top: 11rem;
	}
}
/* ----------------------------------------
   Videography gallery
---------------------------------------- */

.videography-panel {
	grid-column: 1 / -1;
	width: 100%;
	min-width: 0;
}

.videography-panel .art-gallery-heading {
	align-items: flex-start;
	margin-bottom: 2rem;
}

.videography-panel .art-gallery-heading h3 {
	margin-bottom: 0.5rem;
}

.videography-intro {
	max-width: 42rem;
	margin: 0;

	color: rgba(45, 49, 56, 0.74);
	line-height: 1.65;
}


/* Two-film layout */

.video-card-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.75rem;

	width: 100%;
}


/* Reset template button styling */

.video-card {
	-webkit-appearance: none;
	appearance: none;

	display: block;

	width: 100%;
	min-width: 0;
	height: auto;
	min-height: 0;

	margin: 0;
	padding: 0;

	overflow: hidden;

	border: 0 !important;
	border-radius: 0.6rem !important;
	background: #ffffff !important;
	box-shadow: 0 0.8rem 2.2rem rgba(13, 59, 102, 0.10) !important;

	color: var(--text);
	text-align: left;
	letter-spacing: normal;
	text-transform: none;

	cursor: pointer;

	transition:
		transform 0.25s ease,
		box-shadow 0.25s ease;
}

.video-card::before,
.video-card::after {
	display: none !important;
	content: none !important;
}

.video-card:hover,
.video-card:focus-visible {
	transform: translateY(-0.3rem);

	box-shadow:
		0 1.2rem 2.8rem rgba(13, 59, 102, 0.16) !important;
}


/* Thumbnail */

.video-card-image {
	position: relative;
	display: block;

	width: 100%;
	aspect-ratio: 16 / 9;

	overflow: hidden;
	background: var(--ocean);
}

.video-card-image > img:first-child {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: cover;

	transition: transform 0.5s ease;
}

.video-card:hover .video-card-image > img:first-child,
.video-card:focus-visible .video-card-image > img:first-child {
	transform: scale(1.025);
}

.video-card-shade {
	position: absolute;
	inset: 0;

	background:
		linear-gradient(
			to top,
			rgba(8, 31, 48, 0.38) 0%,
			rgba(8, 31, 48, 0.05) 55%,
			rgba(8, 31, 48, 0.10) 100%
		);

	pointer-events: none;
}


/* Centred play button */

.video-play-icon {
	position: absolute;
	top: 50%;
	left: 50%;

	display: flex;
	align-items: center;
	justify-content: center;

	width: 5rem;
	height: 5rem;

	border: 1px solid rgba(255, 255, 255, 0.72);
	border-radius: 50%;

	background: rgba(8, 31, 48, 0.62);
	-webkit-backdrop-filter: blur(7px);
	backdrop-filter: blur(7px);

	transform: translate(-50%, -50%);

	transition:
		transform 0.25s ease,
		background 0.25s ease;

	pointer-events: none;
}

.video-card:hover .video-play-icon,
.video-card:focus-visible .video-play-icon {
	background: rgba(91, 142, 125, 0.88);
	transform: translate(-50%, -50%) scale(1.07);
}

.video-play-triangle {
	display: block;

	width: 0;
	height: 0;

	margin-left: 0.3rem;

	border-top: 0.7rem solid transparent;
	border-bottom: 0.7rem solid transparent;
	border-left: 1.05rem solid #ffffff;
}


/* Logo watermark */

.video-card-logo {
	position: absolute;
	right: 1rem;
	bottom: 1rem;

	width: 3.5rem;
	height: auto;

	filter:
		brightness(0)
		invert(1);

	opacity: 0.72;
	pointer-events: none;
}


/* Duration label */

.video-duration {
	position: absolute;
	left: 1rem;
	bottom: 1rem;

	display: block;

	padding: 0.35rem 0.55rem;

	border-radius: 0.25rem;
	background: rgba(8, 31, 48, 0.72);

	color: #ffffff;
	font-size: 0.78rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: 0.05em;

	pointer-events: none;
}


/* Card text */

.video-card-copy {
	display: block;
	padding: 1.6rem 1.7rem 1.8rem;
}

.video-card-location {
	display: block;

	margin-bottom: 0.4rem;

	color: var(--sea-glass);
	font-size: 0.76rem;
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.3;
	text-transform: uppercase;
}

.video-card-title {
	display: block;

	color: var(--ocean);
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(1.7rem, 3vw, 2.25rem);
	font-weight: 600;
	line-height: 1.15;
}

.video-card-action {
	display: block;

	margin-top: 1rem;

	color: var(--ocean);
	font-size: 0.78rem;
	font-weight: 600;
	letter-spacing: 0.11em;
	line-height: 1.3;
	text-transform: uppercase;
}


/* ----------------------------------------
   Video modal
---------------------------------------- */

.video-modal {
	position: fixed;
	inset: 0;
	z-index: 20000;

	display: flex;
	align-items: center;
	justify-content: center;

	padding: 2rem;
}

.video-modal[hidden] {
	display: none;
}

.video-modal-backdrop {
	position: absolute;
	inset: 0;

	background: rgba(5, 20, 31, 0.88);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
}

.video-modal-dialog {
	position: relative;
	z-index: 1;

	width: min(72rem, 94vw);
	max-height: 94vh;

	overflow: auto;

	border-radius: 0.6rem;
	background: #081f30;
	box-shadow: 0 2rem 6rem rgba(0, 0, 0, 0.45);
}

.video-modal-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;

	padding: 1rem 1.25rem;
}

.video-modal-header h2 {
	margin: 0;

	color: #ffffff;
	font-size: clamp(1.35rem, 3vw, 2rem);
	line-height: 1.2;
}


/* Modal close button reset */

.video-modal-close {
	-webkit-appearance: none;
	appearance: none;

	width: auto;
	min-width: 0;
	height: auto;
	min-height: 0;

	margin: 0;
	padding: 0;

	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;

	color: #ffffff;
	font-size: 2.75rem;
	font-weight: 300;
	line-height: 1;
	letter-spacing: normal;
	text-transform: none;

	cursor: pointer;

	transition:
		transform 0.2s ease,
		opacity 0.2s ease;
}

.video-modal-close::before,
.video-modal-close::after {
	display: none !important;
	content: none !important;
}

.video-modal-close:hover,
.video-modal-close:focus-visible {
	transform: scale(1.08);
	opacity: 0.72;
}


/* Responsive YouTube player */

.video-player {
	position: relative;

	width: 100%;
	aspect-ratio: 16 / 9;

	background: #000000;
}

.video-player iframe {
	position: absolute;
	inset: 0;

	display: block;

	width: 100%;
	height: 100%;

	border: 0;
}


/* Prevent page scrolling while modal is open */

body.video-modal-open {
	overflow: hidden;
}


/* Tablet and mobile */

@media screen and (max-width: 900px) {

	.video-card-grid {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 736px) {

	.videography-panel .art-gallery-heading {
		gap: 1rem;
	}

	.videography-intro {
		font-size: 0.95rem;
	}

	.video-card-grid {
		gap: 1.35rem;
	}

	.video-card-copy {
		padding: 1.3rem 1.3rem 1.5rem;
	}

	.video-play-icon {
		width: 4.2rem;
		height: 4.2rem;
	}

	.video-card-logo {
		right: 0.7rem;
		bottom: 0.7rem;
		width: 2.75rem;
	}

	.video-duration {
		left: 0.7rem;
		bottom: 0.7rem;
	}

	.video-modal {
		padding: 0.75rem;
	}

	.video-modal-dialog {
		width: 100%;
		max-height: 96vh;
	}

	.video-modal-header {
		padding: 0.8rem 1rem;
	}
}

/* =========================================================
   Fieldwork & Expertise
========================================================= */

.skills-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
    align-items: center;
    gap: clamp(3rem, 7vw, 6rem);

    width: min(100%, 1050px);
    margin: 0 auto;
}


/* Text column */

.skills-content {
    text-align: left;
}

.skills-intro {
    max-width: 38rem;
    margin: 0 0 2rem;

    font-size: clamp(1.05rem, 1.5vw, 1.18rem);
    line-height: 1.75;
}

.skills-list {
    margin: 0;
    padding: 0;

    list-style: none;
}

.skills-list li {
    position: relative;

    padding: 0.8rem 0 0.8rem 1.5rem;

    border-bottom: 1px solid rgba(45, 49, 56, 0.1);

    line-height: 1.5;
}

.skills-list li::before {
    content: "";

    position: absolute;
    top: 1.35rem;
    left: 0;

    width: 0.45rem;
    height: 0.45rem;

    border-radius: 50%;

    background: #5b8e7d;
}


/* Video column */

.skills-media {
    position: relative;

    padding-bottom: 2.5rem;
}

.skills-video {
    position: relative;

    overflow: hidden;

    border-radius: 1rem;

    box-shadow:
        0 1.5rem 3.5rem rgba(13, 59, 102, 0.2);
}

.skills-video::after {
    content: "";

    position: absolute;
    inset: 0;

    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: inherit;

    pointer-events: none;
}

.skills-video video {
    display:block;

    width:100%;
    height:auto;

    border-radius:inherit;
}


/* Dive counter */

.dive-counter {
    position: absolute;
	right: 1rem;
    bottom: 1rem;
    left: auto;
    z-index: 2;

    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
        "number label"
        "number status";
    column-gap: 0.9rem;
    align-items: center;

    min-width: 10rem;
    padding: 0.65rem 0.9rem;

    border: 1px solid rgba(255, 255, 255, 0.55);
    border-radius: 0.7rem;

    background: rgba(248, 248, 244, 0.92);

    box-shadow:
        0 1rem 2.5rem rgba(13, 59, 102, 0.2);

    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);

    text-align: left;
}

.dive-counter-number {
    grid-area: number;

    color: #0d3b66;

    font-family: "Cormorant Garamond", serif;
    font-size: 2.5rem;
    font-weight: 600;
    line-height: 0.8;
}

.dive-counter-label {
    grid-area: label;

    color: #2d3138;

    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-transform: uppercase;
}
.dive-counter-status {
    grid-area: status;

    margin-top: 0.2rem;

    color: #5b8e7d;

    font-family: "Cormorant Garamond", serif;
    font-size: 1.2rem;
    font-style: italic;
    line-height: 1.2;
}



/* =========================================================
   Fieldwork map
========================================================= */

.fieldwork-map-section {
    width: min(100%, 1100px);
    margin: clamp(5rem, 10vw, 8rem) auto 0;
	margin-bottom: 5rem;
}

.fieldwork-map-heading {
    max-width: 42rem;
    margin: 0 auto 2.5rem;

    text-align: center;
}

.fieldwork-map-heading h3 {
    margin: 0 0 1rem;

    color: #0d3b66;

    font-family: "Cormorant Garamond", serif;
    font-size: clamp(2.2rem, 5vw, 3.5rem);
    font-weight: 600;
}

.section-eyebrow {
    margin: 0 0 0.7rem;

    color: #5b8e7d;

    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.fieldwork-map {
    width: 100%;
    min-height: 500px;

    overflow: hidden;

    border: 1px solid rgba(13, 59, 102, 0.12);
    border-radius: 1rem;

    background: rgba(13, 59, 102, 0.05);

    box-shadow:
        0 1rem 3rem rgba(13, 59, 102, 0.1);
}
@media screen and (max-width: 800px) {

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

    .skills-content {
        order: 1;
    }

    .skills-media {
        order: 2;

        width: min(100%, 420px);
        margin: 0 auto;
        padding-bottom: 2.75rem;
    }

    /* Prevent the credit overlapping the dive counter */
    .skills-video > .photo-credit {
        display: none;
    }

    .dive-counter {
        left: 50%;
        right: auto;
        bottom: 0;

        width: max-content;
        max-width: calc(100% - 1.5rem);

        transform: translateX(-50%);
    }

    .fieldwork-map {
        min-height: 420px;
    }
}


@media screen and (max-width: 480px) {

    .dive-counter {
        min-width: 0;
        width: calc(100% - 1rem);

        padding: 0.9rem 1rem;
    }

    .dive-counter-number {
        font-size: 3.3rem;
    }

    .dive-counter-label {
        font-size: 0.78rem;
    }

    .fieldwork-map {
        min-height: 360px;
    }
}
.skills-block{

    margin-bottom:2.2rem;

}

.skills-block h4{

    margin-bottom:.45rem;

    font-family:"Cormorant Garamond", serif;

    font-size:1.7rem;

    color:#0D3B66;

}

.skills-block p{

    margin:0;

    line-height:1.8;

    max-width:40rem;

}

/* =========================================================
   Interactive fieldwork map
========================================================= */

.fieldwork-map-instruction {
    max-width: 38rem;
    margin: 0 auto;

    color: rgba(45, 49, 56, 0.68);
    font-size: 0.95rem;
    line-height: 1.65;
}


/* Leaflet itself needs an explicit height */

#fieldwork-map {
    position: relative;
    z-index: 1;

    height: clamp(32rem, 58vw, 42rem);
    min-height: 500px;

    font-family: "Inter", sans-serif;
}


/* Map background */

.fieldwork-map .leaflet-container {
    background: #dfe9e7;
}


/* Zoom buttons */

.fieldwork-map .leaflet-bar {
    overflow: hidden;

    border: 0;
    border-radius: 0.5rem;

    box-shadow: 0 0.5rem 1.5rem rgba(13, 59, 102, 0.16);
}

.fieldwork-map .leaflet-bar a {
    color: var(--ocean);
    background: rgba(248, 248, 244, 0.96);
    border-bottom-color: rgba(13, 59, 102, 0.12);
}

.fieldwork-map .leaflet-bar a:hover,
.fieldwork-map .leaflet-bar a:focus {
    color: #ffffff;
    background: var(--sea-glass);
}


/* Custom map markers */

.fieldwork-marker {
    display: grid;
    place-items: center;

    width: 1.75rem;
    height: 1.75rem;

    color: #ffffff;
    background: var(--ocean);

    border: 3px solid rgba(255, 255, 255, 0.95);
    border-radius: 50% 50% 50% 0;

    box-shadow:
        0 0.35rem 0.9rem rgba(8, 31, 48, 0.32);

    transform: rotate(-45deg);

    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.fieldwork-marker:hover {
    background: var(--coral);
    transform: rotate(-45deg) scale(1.08);
}


/*
 * Leaflet creates a wrapper around the custom marker.
 * Remove its default background and border.
 */

.fieldwork-marker-wrapper {
    background: transparent;
    border: 0;
}


/* Popup */

.fieldwork-map .leaflet-popup-content-wrapper {
    overflow: hidden;

    color: var(--text);
    background: #f8f8f4;

    border: 1px solid rgba(13, 59, 102, 0.12);
    border-radius: 0.75rem;

    box-shadow:
        0 1rem 2.5rem rgba(8, 31, 48, 0.22);
}

.fieldwork-map .leaflet-popup-content {
    width: min(19rem, 70vw) !important;
    margin: 0;
}

.fieldwork-map .leaflet-popup-tip {
    background: #f8f8f4;
}


/* Popup content */

.fieldwork-popup {
    padding: 1.25rem 1.3rem 1.35rem;
}

.fieldwork-popup-year {
    display: block;
    margin-bottom: 0.35rem;

    color: var(--sea-glass);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.fieldwork-popup h3 {
    margin: 0 0 0.2rem;

    color: var(--ocean);
    font-size: 1.45rem;
    line-height: 1.1;
}

.fieldwork-popup-location {
    margin: 0 0 0.85rem !important;

    color: rgba(45, 49, 56, 0.6) !important;
    font-size: 0.82rem;
    font-weight: 600;
}

.fieldwork-popup-description {
    margin: 0 !important;

    color: rgba(45, 49, 56, 0.82) !important;
    font-size: 0.88rem;
    line-height: 1.55;
}


/* Popup close button */

.fieldwork-map .leaflet-popup-close-button {
    top: 0.4rem;
    right: 0.45rem;

    width: 1.8rem;
    height: 1.8rem;

    color: var(--ocean) !important;
    font-size: 1.35rem;
    line-height: 1.7rem;

    border: 0 !important;
    box-shadow: none !important;
}

.fieldwork-map .leaflet-popup-close-button:hover,
.fieldwork-map .leaflet-popup-close-button:focus {
    color: var(--coral) !important;
    background: transparent;
}


/* Attribution */

.fieldwork-map .leaflet-control-attribution {
    color: rgba(45, 49, 56, 0.66);
    background: rgba(248, 248, 244, 0.88);
    font-size: 0.65rem;
}


/* Fallback */

.fieldwork-map-fallback {
    margin-top: 1rem;
    text-align: center;
}


/* Mobile */

@media screen and (max-width: 736px) {

    #fieldwork-map {
        height: 72vh;
        min-height: 430px;
        max-height: 620px;
    }

    .fieldwork-map-section {
        width: 100%;
        margin-top: 4.5rem;
		margin-bottom: 5rem;
    }

    .fieldwork-map-heading {
        margin-bottom: 1.75rem;
    }

    .fieldwork-popup {
        padding: 1rem 1.05rem 1.15rem;
    }

    .fieldwork-popup h3 {
        font-size: 1.3rem;
    }

}

/* ==========================================
   Featured Projects
========================================== */

.projects-intro{

    max-width:700px;
    margin:0 auto 3rem;

}


.project-grid{

    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:2rem;

    max-width:900px;
    margin:0 auto;

}


.project-card{

    padding:0;

    border:none;
    border-radius:1rem;

    overflow:hidden;

    background:white;

    cursor:pointer;

    text-align:left;

    transition:.25s;

    box-shadow:
    0 10px 25px rgba(0,0,0,.08);

}


.project-card:hover{

    transform:translateY(-6px);

    box-shadow:
    0 18px 40px rgba(0,0,0,.14);

}


.project-card img{

    display:block;

    width:100%;
    aspect-ratio:16/10;

    object-fit:cover;

}


.project-card-content{

    padding:1.4rem;

}


.project-card h3{

    margin:0 0 .35rem;

    color:#0D3B66;

    font-family:"Cormorant Garamond", serif;

    font-size:1.8rem;

}


.project-card p{

    margin:0;

    color:#666;

}



/* ==========================================
   Expanded content
========================================== */

.project-detail{

    margin-top:4rem;

}


.project-panel{

    display:none;

    animation:fadeProject .35s ease;

}


.project-panel.active{

    display:block;

}


@keyframes fadeProject{

from{

opacity:0;
transform:translateY(12px);

}

to{

opacity:1;
transform:none;

}

}


.project-hero{

    width:100%;

    max-width:950px;

    margin:0 auto 2.5rem;

    display:block;

    border-radius:1rem;

}


.project-text{

    max-width:800px;

    margin:auto;

    text-align:left;

}


.project-buttons{

    display:flex;
    gap:1rem;

    flex-wrap:wrap;

    margin-top:2rem;

}


.video-wrapper{

    aspect-ratio:16/9;

    margin-bottom:2rem;

}


.video-wrapper iframe{

    width:100%;
    height:100%;

    border:none;

    border-radius:1rem;

}

/* Override Stellar's default button dimensions for project cards */

button.project-card {
    display: block;
    width: 100%;
    height: auto;
    min-height: 0;

    padding: 0;

    line-height: normal;
    white-space: normal;

    border: 0;
    border-radius: 1rem;

    box-shadow:
        0 10px 25px rgba(0, 0, 0, 0.08);

    overflow: hidden;
    text-align: left;
}
.project-card img {
    display: block;
    width: 100%;
    height: 260px;
    object-fit: cover;
}

.project-card-content {
    display: block;
    padding: 1.4rem 1.5rem 1.6rem;
}

.project-card-content h3 {
    margin: 0 0 0.35rem;
    line-height: 1.2;
}

.project-card-content p {
    margin: 0;
    line-height: 1.5;
}
@media screen and (max-width: 736px) {
    .project-grid {
        grid-template-columns: 1fr;
    }

    .project-card img {
        height: 220px;
    }
}
.project-hero-wrapper{
    position:relative;

    width:100%;
    max-width:950px;

    margin:0 auto 2.5rem;
}

.project-video-preview img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition:
        transform 0.35s ease,
        filter 0.35s ease;
}

.project-video-preview::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(13, 59, 102, 0.12);
    transition: background 0.35s ease;
}

.project-video-preview:hover img,
.project-video-preview:focus img {
    transform: scale(1.025);
    filter: brightness(0.88);
}

.project-video-preview:hover::after,
.project-video-preview:focus::after {
    background: rgba(13, 59, 102, 0.22);
}



.project-video-preview:hover .project-video-play,
.project-video-preview:focus .project-video-play {
    background: rgba(229, 140, 115, 0.94);
    transform: translate(-50%, -50%) scale(1.08);
}

.project-video-preview:focus-visible {
    outline: 3px solid #e58c73;
    outline-offset: 4px;
}

.project-video-preview iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}
/* Video preview inside an expanded Featured Project panel */

.project-video-card {
    width: min(100%, 950px);
    margin: 0 auto 2.5rem;
    border-radius: 1rem !important;
}

.project-video-card .video-card-image {
    border-radius: 1rem;
}

.project-card-secondary {
    margin-top: 4rem;
}
.project-hero.project-card-secondary {
    margin-top: 4rem;
}

/* =========================================================
   Featured Project and gallery modal
========================================================= */

.content-modal[hidden] {
    display: none;
}

.content-modal {
    position: fixed;
    inset: 0;
    z-index: 20000;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 2rem;
}

.content-modal-backdrop {
    position: absolute;
    inset: 0;

    background: rgba(8, 31, 48, 0.82);
    backdrop-filter: blur(4px);

    opacity: 0;

    animation: modalFade .28s ease forwards;
}

.content-modal-dialog {

    position: relative;
    z-index: 1;

    display: flex;
    flex-direction: column;

    width: min(1200px, 94vw);
    max-height: 90vh;

    overflow: hidden;

    background: #F8F8F4;

    border-radius: 1rem;

    box-shadow:
        0 2rem 6rem rgba(0,0,0,.34);

    opacity: 0;

    transform:
        translateY(24px)
        scale(.985);

    animation:
        modalAppear .34s
        cubic-bezier(.18,.8,.22,1)
        forwards;
}

.content-modal-header {
    flex: 0 0 auto;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;

    padding: 1.25rem 1.5rem;

    border-bottom: 1px solid rgba(13, 59, 102, 0.15);
    background: #F8F8F4;
}

.content-modal-header h2 {
    margin: 0;
    font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.content-modal-close {
    appearance: none;

    width: auto;
    min-width: 0;
    height: auto;
    min-height: 0;

    margin: 0;
    padding: 0;

    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;

    color: var(--ocean);
    font-size: 3rem;
    font-weight: 300;
    line-height: 1;

    cursor: pointer;
}

.content-modal-close::before,
.content-modal-close::after {
    display: none !important;
    content: none !important;
}

.content-modal-close:hover,
.content-modal-close:focus-visible {
    color: var(--coral);
    transform: scale(1.06);
}

.content-modal-body {
    flex: 1 1 auto;

    padding: 2rem;
    overflow-y: auto;
    overscroll-behavior: contain;

    -webkit-overflow-scrolling: touch;
}

/* Stop the page behind the modal from scrolling */

body.content-modal-open {
    overflow: hidden;
}

/* Panels must be visible when placed inside the modal */

.content-modal-body .project-panel {
    display: block;
    animation: none;
}

/* Remove spacing intended for inline expanded content */

.content-modal-body .project-detail,
.content-modal-body .art-gallery {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

/* Galleries should fill the modal */

.content-modal-body .art-gallery {
    display: block;
    width: 100%;
}

/*
The modal already supplies the title and close button,
so hide the gallery's original heading inside it.
*/

.content-modal-body .art-gallery > .art-gallery-heading {
    display: none;
}

/* Keep your video modal above the content modal */

.video-modal {
    z-index: 210000;
}

@media screen and (max-width: 736px) {

    .content-modal {
        align-items: stretch;
        padding: 0;
    }

    .content-modal-dialog {
        width: 100%;
        max-height: 100vh;
        min-height: 100vh;

        border-radius: 0;
    }

    .content-modal-header {
        padding: 1rem 1.25rem;
    }

    .content-modal-body {
        padding: 1.25rem;
    }

}
/* ==========================================
   Always-visible modal scrollbars
========================================== */

.content-modal-body {
    overflow-y: scroll;
    scrollbar-gutter: stable;
}

.content-modal-body::-webkit-scrollbar {
    width: 12px;
}

.content-modal-body::-webkit-scrollbar-track {
    background: #edf2f5;
    border-radius: 6px;
}

.content-modal-body::-webkit-scrollbar-thumb {
    background: #8ea2ad;
    border-radius: 6px;
}

.content-modal-body::-webkit-scrollbar-thumb:hover {
    background: var(--ocean);
}
.content-modal-body {
    scrollbar-width: auto;
    scrollbar-color: #8ea2ad #edf2f5;
}
/* =========================================================
   Buttons inside project and gallery modals
========================================================= */

.content-modal-body a.button,
.content-modal-body .button {
    color: var(--ocean) !important;

    background: transparent !important;
    border: 1px solid var(--ocean) !important;

    box-shadow:
        inset 0 0 0 1px var(--ocean) !important;

    text-decoration: none !important;
}

.content-modal-body a.button:hover,
.content-modal-body a.button:focus-visible,
.content-modal-body .button:hover,
.content-modal-body .button:focus-visible {
    color: #ffffff !important;

    background: var(--ocean) !important;
    border-color: var(--ocean) !important;

    box-shadow:
        inset 0 0 0 1px var(--ocean) !important;
}

.content-modal-body strong,
.content-modal-body b {
    color: var(--ocean) !important;
    font-weight: 600;
}
.content-modal-close {
    color: var(--ocean) !important;
}

.content-modal-close:hover,
.content-modal-close:focus-visible {
    color: var(--coral) !important;
}

@keyframes modalFade {

    from {

        opacity:0;

    }

    to {

        opacity:1;

    }

}

@keyframes modalAppear {

    from {

        opacity:0;

        transform:
            translateY(24px)
            scale(.985);

    }

    to {

        opacity:1;

        transform:
            translateY(0)
            scale(1);

    }

}
.content-modal.closing
.content-modal-backdrop{

    animation:
        modalFadeOut
        .22s
        ease
        forwards;

}

.content-modal.closing
.content-modal-dialog{

    animation:
        modalDisappear
        .22s
        ease
        forwards;

}

@keyframes modalFadeOut{

    to{

        opacity:0;

    }

}

@keyframes modalDisappear{

    to{

        opacity:0;

        transform:
            translateY(18px)
            scale(.99);

    }

}
/* =========================================================
   Photography theme chooser
========================================================= */

.photography-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.5rem;
}


/* Individual card */

.photography-theme-card {
    position: relative;

    display: block;
    width: 100%;
    height: auto;
    padding: 0;

    overflow: hidden;

    border: 0 !important;
    border-radius: 0.9rem;

    background: transparent !important;
    box-shadow: none !important;

    cursor: pointer;
}


/*
 * Prevent Stellar's generic button pseudo-elements
 * from adding borders or backgrounds.
 */

.photography-theme-card::before,
.photography-theme-card::after {
    display: none !important;
}


/* Thumbnail */

.photography-theme-card img {
    display: block;

    width: 100%;
    aspect-ratio: 4 / 3;

    object-fit: cover;

    transition:
        transform 0.35s cubic-bezier(.18, .8, .22, 1);
}


/* Dark image gradient */

.photography-theme-shade {
    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(8, 31, 48, 0.86) 0%,
            rgba(8, 31, 48, 0.18) 52%,
            rgba(8, 31, 48, 0.02) 100%
        );

    pointer-events: none;
}


/* Theme name */

.photography-theme-title {
    position: absolute;
    right: 1.25rem;
    bottom: 1.15rem;
    left: 1.25rem;

    color: #ffffff !important;

    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.45rem, 2.5vw, 2rem);
    font-weight: 600;
    line-height: 1.1;
    text-align: left;

    pointer-events: none;
}


/* Hover */

.photography-theme-card:hover img,
.photography-theme-card:focus-visible img {
    transform: scale(1.045);
}


/* Keyboard focus */

.photography-theme-card:focus-visible {
    outline: 3px solid var(--coral) !important;
    outline-offset: 4px;
}


/* Mobile */

@media screen and (max-width: 736px) {

    .photography-card-grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .photography-theme-card img {
        aspect-ratio: 16 / 10;
    }

}
/* =========================================================
   CV section
========================================================= */

.cv-section {
    padding-right: clamp(1.5rem, 6vw, 5rem);
    padding-left: clamp(1.5rem, 6vw, 5rem);
	 padding-bottom: 3rem;
    background: #f8f3ef;
}

.cv-intro {
    max-width: 760px;
    margin-right: auto;
    margin-bottom: 3rem;
    margin-left: auto;
    text-align: center;
}

.cv-intro p {
    max-width: 680px;
    margin-right: auto;
    margin-left: auto;
    color: rgba(45, 49, 56, 0.76);
    line-height: 1.7;
}

.cv-download-button {
    margin-top: 0.75rem;
}


/* Accordion container */

.cv-accordion {
    width: min(100%, 1100px);
    margin: 0 auto;
}


/* Individual accordion panel */

.cv-panel {
    overflow: hidden;
    margin-bottom: 1rem;

    border: 1px solid rgba(13, 59, 102, 0.15);
    border-radius: 0.75rem;

    background: rgba(255, 255, 255, 0.72);
    box-shadow: 0 0.7rem 2rem rgba(13, 59, 102, 0.045);
}


/* Remove the browser's default disclosure marker */

.cv-panel-summary {
    position: relative;

    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center;
    gap: 1.25rem;

    padding: 1.5rem 1.65rem;

    cursor: pointer;
    list-style: none;
    text-align: left;

    transition:
        background 0.25s ease,
        color 0.25s ease;
}

.cv-panel-summary::-webkit-details-marker {
    display: none;
}

.cv-panel-summary::marker {
    display: none;
    content: "";
}

.cv-panel-summary:hover {
    background: rgba(91, 142, 125, 0.09);
}

.cv-panel[open] > .cv-panel-summary {
    background: rgba(13, 59, 102, 0.055);
    border-bottom: 1px solid rgba(13, 59, 102, 0.12);
}


/* Summary typography */

.cv-panel-heading {
    color: var(--ocean);

    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.55rem, 3vw, 2rem);
    font-weight: 600;
    line-height: 1.1;
}

.cv-panel-meta {
    color: var(--sea-glass);

    font-size: 0.95rem;
    font-weight: 600;

    letter-spacing: 0.03em;
    text-transform: uppercase;
}


/* Plus / minus icon */

.cv-panel-icon {
    position: relative;

    display: block;
    width: 1.25rem;
    height: 1.25rem;
}

.cv-panel-icon::before,
.cv-panel-icon::after {
    content: "";

    position: absolute;
    top: 50%;
    left: 50%;

    width: 1.1rem;
    height: 2px;

    background: var(--ocean);
    border-radius: 999px;

    transform: translate(-50%, -50%);
    transition: transform 0.25s ease;
}

.cv-panel-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.cv-panel[open] .cv-panel-icon::after {
    transform: translate(-50%, -50%) rotate(0deg);
}


/* Expanded content */

.cv-panel-content {
    padding: 2rem 2.25rem 2.5rem;
    text-align: left;
}

.cv-panel-content p,
.cv-panel-content li {
    color: rgba(45, 49, 56, 0.84);
    line-height: 1.7;
}

.cv-panel-content strong {
    color: var(--ocean);
}


/* Publications */

.cv-publication-list {
    margin: 0;
    padding-left: 1.4rem;
}
.cv-publication-list strong {
    color: var(--ocean);
    font-weight: 600;
    background: rgba(229, 140, 115, 0.16);
    padding: 0.05em 0.18em;
    border-radius: 0.18em;
}
.cv-publication-list li {
    padding-left: 0.5rem;
}

.cv-publication-list li + li {
    margin-top: 1.6rem;
}

.cv-publication-list li::marker {
    color: var(--sea-glass);
    font-weight: 600;
}

.cv-doi {
    display: block;
    width: fit-content;
    margin-top: 0.45rem;

    color: var(--sea-glass);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;

    border-bottom: 1px solid rgba(91, 142, 125, 0.4);
    text-decoration: none;
}

.cv-doi:hover,
.cv-doi:focus-visible {
    color: var(--coral);
    border-bottom-color: var(--coral);
}


/* Funding */

.cv-highlight {
    margin: 0 0 1.75rem;
    padding: 0;
    background: none;
    border: 0;
}

.cv-entry-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cv-entry-list li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 1.5rem;

    padding: 0.8rem 0;
    border-bottom: 1px solid rgba(13, 59, 102, 0.09);
}

.cv-entry-list li > span:first-child {
    color: var(--text);
    font-size: 0.96rem;
    font-weight: 500;
}

.cv-entry-list li > span:last-child {
    color: rgba(45, 49, 56, 0.64);
    font-size: 0.96rem;
    text-align: right;
    white-space: nowrap;
}

.cv-note {
    margin: 1.75rem 0 0;
    color: rgba(45, 49, 56, 0.68) !important;
    font-size: 0.96rem;
}


/* Presentation timeline */

.cv-timeline {
    margin: 0;
    padding: 0;
    list-style: none;
}

.cv-timeline li {
    display: grid;
    grid-template-columns: 4.5rem minmax(0, 1fr);
    gap: 1.5rem;

    padding: 1rem 0;
    border-bottom: 1px solid rgba(13, 59, 102, 0.09);
}

.cv-timeline time {
    color: var(--sea-glass);
    font-weight: 600;
}

.cv-distinction {
    display: block;
    margin-top: 0.35rem;

    color: var(--coral);
    font-size: 0.9rem;
    font-weight: 600;
}
.cv-distinction a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid currentColor;
    transition: opacity 0.2s ease;
}

.cv-distinction a:hover,
.cv-distinction a:focus-visible {
    opacity: 0.75;
}

/* Teaching and mentoring */

.cv-two-column-content {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.5rem 3rem;
}

.cv-two-column-content h3,
.cv-subheading {
    margin-bottom: 1rem;
    font-size: 1.65rem;
}

.cv-full-width {
    grid-column: 1 / -1;
}

.cv-simple-list {
    margin: 0;
    padding-left: 1.15rem;
}

.cv-simple-list li + li {
    margin-top: 0.8rem;
}

.cv-simple-list li::marker {
    color: var(--sea-glass);
}

.cv-review-list {
    margin: 0;
}


/* Science communication */

.cv-feature-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;

    margin: 0 0 2.5rem;
    padding: 0;
    list-style: none;
}

.cv-feature-list li {
    padding: 1.4rem;

    background: rgba(91, 142, 125, 0.075);
    border: 1px solid rgba(91, 142, 125, 0.16);
    border-radius: 0.6rem;
}

.cv-feature-list strong,
.cv-feature-list span {
    display: block;
}

.cv-feature-list strong {
    margin-bottom: 0.65rem;
    font-family: "Cormorant Garamond", serif;
    font-size: 1.35rem;
    line-height: 1.15;
}


/* Mobile */

@media screen and (max-width: 736px) {

    .cv-section {
        padding-right: 1.25rem;
        padding-left: 1.25rem;
		 padding-bottom: 3rem;
    }

    .cv-panel-summary {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.75rem;

        padding: 1.25rem;
    }

    .cv-panel-meta {
        grid-column: 1;
        grid-row: 2;
    }

    .cv-panel-icon {
        grid-column: 2;
        grid-row: 1 / 3;
    }

    .cv-panel-content {
        padding: 1.5rem 1.25rem 2rem;
    }

    .cv-entry-list li {
        display: block;
    }

    .cv-entry-list li > span {
        display: block;
    }

    .cv-entry-list li > span:last-child {
        margin-top: 0.2rem;
        text-align: left;
    }

    .cv-timeline li {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }

    .cv-two-column-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .cv-full-width {
        grid-column: auto;
    }

    .cv-feature-list {
        grid-template-columns: 1fr;
    }

}
.cv-entry-list a {
    color: var(--sea-glass);
    text-decoration: none;
    border-bottom: 1px solid rgba(91, 142, 125, 0.4);
    transition: all 0.2s ease;
}

.cv-entry-list a:hover,
.cv-entry-list a:focus-visible {
    color: var(--coral);
    border-bottom-color: var(--coral);
}
.inline-link {
    color: var(--sea-glass);
    text-decoration: none;
    border-bottom: 1px solid rgba(91, 142, 125, 0.45);
    transition:
        color 0.2s ease,
        border-color 0.2s ease;
}

.inline-link:hover,
.inline-link:focus-visible {
    color: var(--coral);
    border-bottom-color: var(--coral);
}
#teaching-mentoring {
    scroll-margin-top: 7rem;
}
@media screen and (max-width: 736px) {

    #teaching-mentoring {
        scroll-margin-top: 8rem;
    }
	#nav {
        scroll-behavior: smooth;
    }

}
/* =========================================================
   Skills & Experience — refined layout
========================================================= */

#skills {
    background: #ffffff;
}


/* Main grid */

.skills-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3rem 4rem;

    width: min(100%, 1050px);
    margin: 4rem auto 0;
}


/* Shared text blocks */

.skills-block {
    min-width: 0;
    text-align: left;
}

.skills-block h3 {
    margin: 0 0 1.25rem;

    color: var(--ocean);
    font-family: "Cormorant Garamond", serif;
    font-size: clamp(1.75rem, 3vw, 2.15rem);
    font-weight: 600;
    line-height: 1.15;
}

.skills-block-compact {
    align-self: start;
}


/* Clean skill lists */

.skills-list {
    margin: 0;
    padding: 0;

    list-style: none;
}

.skills-list li {
    position: relative;

    margin: 0;
    padding: 0.42rem 0 0.42rem 1.2rem;
border-bottom: none;
    color: rgba(45, 49, 56, 0.8);
    font-size: 1rem;
    line-height: 1.55;
}

.skills-list li::before {
    content: "";

    position: absolute;
    top: 1.03rem;
    left: 0;

    width: 0.36rem;
    height: 0.36rem;

    background: var(--sea-glass);
    border-radius: 50%;
}

.skills-list li span {
    color: rgba(45, 49, 56, 0.62);
}


/* Field research introduction */

.skills-intro {
    max-width: 34rem;
    margin: 0 0 2rem;

    color: rgba(45, 49, 56, 0.8);
    font-size: 1rem;
    line-height: 1.7;
}


/* Field subgroups */

.field-skill-groups {
    display: grid;
    gap: 1.6rem;
}

.field-skill-group h4 {
    margin: 0 0 0.45rem;

    color: var(--sea-glass);
    font-family: "Inter", sans-serif;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.14em;
    line-height: 1.3;
    text-transform: uppercase;
}


/* Field block and video align as a pair */

.skills-block-field,
.skills-media {
    align-self: start;
}


/* Media */

.skills-media {
    position: relative;
    width: 100%;
    max-width: 29rem;
    justify-self: end;
}

.skills-video {
    position: relative;

    width: 100%;
    overflow: hidden;

    border-radius: 0.75rem;
    box-shadow: 0 1.2rem 3rem rgba(13, 59, 102, 0.12);
}

.skills-video video {
    display: block;

    width: 100%;
    height: auto;
    aspect-ratio: 405 / 720;

    object-fit: cover;
}


/* Dive counter remains anchored to the video */

.dive-counter {
    right: -1rem;
    bottom: -1.2rem;
}


/* Slightly more breathing room before the map */

.fieldwork-map-section {
    margin-top: 7rem;
}


/* Tablet */

@media screen and (max-width: 980px) {

    .skills-grid {
        gap: 4rem 3.5rem;
        padding: 0 1rem;
    }

    .skills-media {
        max-width: 25rem;
    }

}


/* Mobile */

@media screen and (max-width: 736px) {

    .skills-grid {
        grid-template-columns: 1fr;
        gap: 3.5rem;

        margin-top: 3rem;
        padding: 0;
    }

    .skills-block {
        text-align: left;
    }

    .skills-block h3 {
        font-size: 1.9rem;
    }

    .skills-list li {
        padding-left: 1.1rem;
        font-size: 0.97rem;
    }

    .skills-media {
        max-width: 24rem;
        margin: 0 auto;
        justify-self: center;
    }

    .dive-counter {
        right: 0.75rem;
        bottom: 0.75rem;
    }

    .fieldwork-map-section {
        margin-top: 5rem;
    }

}
/* =========================================================
   Final Skills & Experience spacing adjustments
========================================================= */

/* Slightly tighten the gap beneath the section heading */
#skills .skills-grid {
    margin-top: 3rem;
    column-gap: 4rem;
    row-gap: 3.5rem;
    align-items: start;
}


/* Align the top of the video with Field research */
#skills .skills-media {
    align-self: start;
    padding-bottom: 0;
    margin-top: 0;
}


/* Place the counter inside the bottom-right corner of the video */
#skills .dive-counter {
    right: 0.8rem;
    bottom: 0.8rem;
    left: auto;

    transform: none;
}


/* Give the lower headings a clean amount of space */
#skills .skills-block h3 {
    margin-bottom: 1rem;
}


/* Space between the small Field research groups */
#skills .field-skill-group + .field-skill-group {
    margin-top: 1.4rem;
}


/* Keep list items separated now that the divider lines are gone */
#skills .skills-list li {
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
}


/* Keep a comfortable transition into the map */
#skills .fieldwork-map-section {
    margin-top: 5.5rem;
}
@media screen and (max-width: 736px) {

    #skills .skills-grid {
        margin-top: 2.5rem;
        gap: 3rem;
    }

    #skills .skills-media {
        padding-bottom: 0;
    }

    #skills .dive-counter {
        right: 0.65rem;
        bottom: 0.65rem;
        left: auto;

        width: auto;
        max-width: calc(100% - 1.3rem);

        transform: none;
    }

}
/* =========================================================
   Visible gallery arrows inside modal windows
========================================================= */

.content-modal-body .gallery-arrow,
.content-modal-body .photography-panel .gallery-arrow {
    color: var(--ocean) !important;
}
.content-modal-body .gallery-arrow,
.content-modal-body .photography-panel .gallery-arrow {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 3rem;
    height: 3rem;

    color: var(--ocean) !important;
    background: rgba(248, 248, 244, 0.9) !important;
    border: 1px solid rgba(13, 59, 102, 0.18) !important;
    border-radius: 50% !important;

    box-shadow: 0 0.4rem 1rem rgba(13, 59, 102, 0.12) !important;
}
.content-modal-body .gallery-arrow:hover,
.content-modal-body .gallery-arrow:focus-visible {
    color: #ffffff !important;
    background: var(--sea-glass) !important;
    border-color: var(--sea-glass) !important;
    opacity: 1;
}
.content-modal-body .gallery-arrow,
.content-modal-body .photography-panel .gallery-arrow {

    color: var(--ocean) !important;

    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;

}
/* =========================================================
   Mobile gallery: show a sliver of the next item
   Keep this at the absolute end of custom.css
========================================================= */

@media screen and (max-width: 736px) {

    /* Both ceramics and photography rows */
    .content-modal-body .horizontal-gallery {
        gap: 1rem;

        padding-left: 0;
        padding-right: 3.5rem;

        scroll-padding-left: 0;
    }

    /*
     * Each card occupies less than the available width,
     * leaving the beginning of the next card visible.
     */
    .content-modal-body .horizontal-gallery > .art-card,
    .content-modal-body .photography-panel
        .horizontal-gallery > .art-card {
        flex: 0 0 82vw;
        width: 82vw;
        max-width: 82vw;
    }

    /* Ceramics images */
    .content-modal-body
        .horizontal-gallery > .art-card > img {
        width: 100%;
        max-width: 100%;
        height: 22rem;

        object-fit: contain;
    }

    /* Photography image wrapper */
    .content-modal-body
        .photography-panel .photo-frame {
        width: 100%;
        max-width: 100%;
    }

    /* Photography images */
    .content-modal-body
        .photography-panel .photo-frame > img {
        width: 100%;
        max-width: 100%;
        height: 22rem;

        object-fit: contain;
    }

}
/* =========================================================
   Mobile themed-photography gallery spacing
========================================================= */

@media screen and (max-width: 736px) {

    .content-modal-body
    .photography-theme-gallery
    .horizontal-gallery {
        gap: 1rem !important;
        column-gap: 1rem !important;

        padding-left: 0 !important;
        padding-right: 3rem !important;
    }

    .content-modal-body
    .photography-theme-gallery
    .horizontal-gallery > .art-card {
        flex: 0 0 82vw !important;

        width: 82vw !important;
        max-width: 82vw !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .content-modal-body
    .photography-theme-gallery
    .photo-frame {
        width: 100% !important;
        max-width: 100% !important;
    }

    .content-modal-body
    .photography-theme-gallery
    .photo-frame > img {
        display: block;

        width: 100% !important;
        max-width: 100% !important;
        height: 22rem;

        object-fit: contain;
    }

}