:root {
	--color-bg: rgb(251, 251, 249);
	--color-bg-semi-transparent: rgba(251, 251, 249, 0.9);
	--color-bg-full-transparent: rgba(251, 251, 249, 0);

	--color-bg-secondary:rgba(200, 200, 190, 0.15);

	
	--color-text: rgba(0, 0, 0, 0.85);
	--color-text-secondary: rgba(0, 0, 0, 0.65);
	--color-text-hilight: rgba(255, 0, 0, 0.85);
}

* { 
	margin:0;
	padding:0;
	-webkit-margin-before:0;
	-webkit-margin-after:0;
	font-family: 'Hanken Grotesk', sans-serif;
	line-height:1.5;
}
html {
	font-size: clamp(15px, calc(11px + 0.7vw), 21px);
	scroll-behavior: smooth;
}
body {
	font-size: 100%;
	background-color: var(--color-bg); 
	color: var(--color-text);
	font-weight: 400;
}
p {
	padding-bottom:0.75rem;
}
b {
	font-weight: 550;
	color:var(--color-text);
}
figure + p {
	padding-top: 2rem;
}
a, a:visited {
	text-decoration:underline;
	text-underline-offset: 15%;
	text-decoration-style: dashed;
	text-decoration-thickness: 1px;
	color: var(--color-text);
}
a:hover {
	color: var(--color-text);
	text-decoration-style: solid;
}
.nowrap {
	white-space: nowrap;
}
blockquote {
	text-indent: -0.4rem;
}
blockquote p::before {
	content: '\201C';
}
blockquote p::after {
	content: '\201D';
}
ul, ol {
	text-align: left;
	position: relative;
	padding-left: 1.5rem;
	padding-bottom: 1rem;
}
li {
	padding-bottom: 0.25rem;
}

h1 {
	font-size: 2.25rem;
	line-height: 1.3;
	padding-top:1rem;
	padding-bottom:0.5rem;
	font-weight: 400;
	color: var(--color-text);
}
h2 {
	font-size: 2.25rem;
	font-weight: 400;
	padding-bottom: 0;
	color: var(--color-text);
}
h3 {
	font-size: 1.25rem;
	padding-top:1.5rem;
	padding-bottom:0.75rem;
	font-weight: 400;
}
figure + h3 {
	padding-top: 3rem;
}
h2 + h3 {
	padding-top:0;
}
p:has(+ h2) {
	padding-bottom: 0;
}
h4 {
	font-weight: 400;
	font-size: 1.15rem;
	padding-top:1rem;
}
figure + h4 {
	padding-top:2rem;
}

.redd {
	color: var(--color-text-hilight);
}


/* top navigation */
.navigation, .navigation-back {
	top:0;
	z-index:10;
	padding-bottom:1rem;
	padding-top:1rem;
}
.header {
	position:fixed;
	top: 0;
	width:100%;
	background-image: linear-gradient( var(--color-bg-semi-transparent) 90%, var(--color-bg-full-transparent));	
}

.navigation {
	display: grid;
	grid-template-columns: 1fr 1fr;
}
.navigation-back {
	position: sticky;
}
.navigation-back h1, .navigation-back h2 {
	font-size: 1rem;
	line-height: 1.25rem;
	padding-top:0;
}
.navigation-back h1 {
	padding-bottom: 0.125rem;
}
.navigation-back a {
	text-decoration: none;
}
.navigation-left {
	text-align: left;
}
.navigation-right {
	text-align: right;
}
.navigation-item {
	margin-left:1.5rem;
}
.navigation-item a {
	text-decoration: none;
}
.navigation-item a:hover {
	text-decoration: underline;
	text-decoration-thickness: 1px;
}
.navigation-item:first-of-type {
	margin-left:0;
}



.show-xs {
	display:none !important;
}
@media only screen and (max-width: 480px) {
	.show-xs {
		display:block !important;
	}
	.hide-xs {
		display:none !important;
	}	
}

.footer {
	text-align: center;
	padding-top: 4rem;
	padding-bottom: 4rem;
}
.footer a:hover, .footer a:hover .title {
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

.contain {
	justify-self: center;
	max-width:1400px;
	width: 100%;
}
@media only screen and (max-width: 1500px) {
	.contain {
		padding-left: 3vw;
		padding-right: 3vw;
		width: 92vw;
	}
}

.main-home {
	margin-top:4rem;
}
.main-about {
	margin-top: 5rem;
}
.main-work {
	margin-top: 6rem;
}
.main-project {
	margin-top: 5rem;
}
.main-grid {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	column-gap:5%;
	row-gap: .5rem;
}
.main-work.main-grid {
	row-gap: 3.5rem;
	column-gap: 10%;

}

/* common projects */
.project-content {
	max-width: 65ch;
}

.project-thumb {
	grid-column: span 2;
	transition: transform 0.2s; /* Animation */
	padding: 0;
}
.project-thumb-work {
	overflow:hidden;
	white-space: nowrap;
}
.project-thumb .title {
	padding-top:0.5rem;
	font-weight: 500;
	font-size: 1rem;
}
.project-thumb a {
	text-decoration: none;
}
.project-thumb a:hover {
	xcolor:inherit;
}
.project-thumb:hover {
	transform:scale(1.05);	
}
.project-thumb img {
	margin:0;
}
.project-thumb .subtitle {
	line-height: 1.3rem;
	color: var(--color-text-secondary);
}
.project-thumb .tldr {
	color: var(--color-text-secondary);	
}




/* hidden next/prev navigation */
.left, .right {
	position: fixed;
	width:10%;
	visibility: visible;
	top:100px;
	bottom:100px;
	z-index: 10;
}
.left {
	left:0;
	text-align: left;
}
.right {
	right:0;
	text-align: right;
}
.side-nav-title {
	color:var(--color-text);
	font-weight: 500;
}
.side-nav-subtitle {
	color: var(--color-text-secondary);
}
.left-nav, .right-nav, .left-nav-info, .right-nav-info {
	position: fixed;
	display: none;
	top:47%;
	padding-top:0.75rem;
	padding-bottom:0.75rem;
	z-index:10;
}
@media only screen and (max-width: 480px) {
	.left-nav, .right-nav {
		display:none;
	}
}
.left-nav-info, .right-nav-info {
	display:none;
	background-color: var(--color-bg-secondary);
}
.left-nav, .right-nav {
	width:3%;
	text-align: center;
}
.left-nav {
	left:1%;
}
.left-nav-info {
	left:4%;
	padding-right:1rem;
}
.right-nav {
	right:1%;
}
.right-nav-info {
	right:4%;
	padding-left:1rem;
}
.left:hover .left-nav, .right:hover .right-nav {
	display:block;
	background-color: var(--color-bg-secondary);
}
.left-nav:hover + .left-nav-info, .right-nav:hover + .right-nav-info {
	display: block;
}
.left:hover .title, .right:hover .title {
	color: var(--color-text)
}
.left:hover .subtitle, .right:hover .subtitle {
	color: var(--color-text-secondary);
}

/* images & captions */
img {
	display: inline-block;
	vertical-align: middle;
	max-width: 100%;
	width: 100%;
	height: auto;
	-ms-interpolation-mode: bicubic; 
	border-radius: 2px;
}
img, .item-html {
	margin-top:1rem;
	margin-bottom:1rem;
}

figure:not(:first-child) {
    padding-top: 1rem;
}
figure {
	justify-self: center;
}
.project-hero > figure {
	margin-left: 4vw;
	margin-right: 4vw;
	max-width:65ch;

}
figcaption {
	color: var(--color-text-secondary);
	font-size:0.6rem;
	margin-top: -0.75rem;
	margin-left:0.25rem;
	text-align: right;
	margin-right:0.5rem;
	text-transform: capitalize;
}

.title, .subtitle, .sidenav-title, .sidenav-subtitle {
	overflow:hidden;
	text-overflow:ellipsis;
	text-decoration: none;
	font-size:1rem;
}


/* home page */
.home-text {
	grid-column: 1 / span 5;
	padding-bottom: clamp(6rem, 25vh, 14rem);
	padding-top:1rem;
}

.home-recent-header {
	grid-column: 1 / -1;
}
.home-text a:hover {
	color:inherit;
	text-decoration: underline;
	text-decoration-thickness: 1px;
}
.home-recent a {
	text-decoration:none; 
	border-bottom: 0; 
}

.home-recent-projects {
	transition: transform 0.2s; /* Animation */
	padding-bottom: 1.5rem;
}

.home-recent-projects > div {
	align-self: center;
}
.home-recent-projects a {
	text-decoration: none;
}
.home-recent-projects:hover {
	transform:scale(1.02);	
}
.home-recent-projects .title, .home-recent-projects .subtitle {
	line-height: 1.3;
}	
.home-recent-projects .title {
	font-weight: 500;
}
.home-recent-projects .subtitle {
	margin-bottom:0.25rem;
	color: var(--color-text-secondary);
}


/* work page */


.thumb {
	overflow:hidden;
	white-space: nowrap;
	padding-right: 10%;
	padding-left: 10%;
	transition: transform 0.2s; /* Animation */
}



/* about page */
.about-header {
	text-align: center;
	margin-bottom: 1rem;
}


/* project and about page */
.center-grid {
	display: grid;
	grid-template-columns: 1fr min(65ch, 100%) 1fr;
}
.center-grid > * {
	grid-column: 2;
}
.project-hero {
	grid-column: 1 / -1;
}

@media only screen and (min-width: 95ch) {
	/* images slightly wider than copy */
	.project-content > figure {
		width: 85ch;
		max-width: 92vw;
	}

	/* hero image */
	.project-hero > figure {
		xmax-width:65ch;
	}
}

.project-header {
	text-align: center;
	grid-column:1 / -1;
}
.project-info {
	text-align: center;
	padding-top: 1rem;
	padding-bottom: 2rem;
	color:var(--color-text-secondary);
	line-height: 1.4rem;
}
.project-hero {
	margin-bottom: 2rem;
	background-color: var(--color-bg-secondary);
}
.project-hero  img {
	xmargin-top:0;
	xmargin-bottom:0;
}
.info-short {
	color: var(--color-text);
	font-size:1rem;
	padding-bottom:1rem;
}
.info-long {
	padding-bottom: 1rem;
}
.info-long + .info-long {
	padding-bottom: 0;
}
.project-header h1 {
	padding-bottom:0;
}
.project-content h2 {
	text-align: center;
	margin-bottom:2.5rem;
}
.project-content h2::before {
	content: "";
	background-color:var(--color-bg-secondary);
	height: 0.5rem;
	margin-bottom: 3rem;
	margin-top: 3rem;

	width: 100%;
	position: relative;
	display: block;
	border-radius: 1rem;
}
.project-content h3 {
	xfont-size: 1.5rem;
}

.project-footer-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
}
.project-footer-grid a {
	text-decoration: none;
	border-bottom: 0;
}
.project-footer .title {
	xcolor:rgba(0, 0, 0, 0.9);
	xfont-weight: 400;
}
.project-footer-left {
	text-align: left;
}
.project-footer-center {
	text-align: center;
}
.project-footer-right {
	text-align: right;
}


/* md */
@media only screen and (max-width: 1024px) {
	.home-text {
		grid-column: 1 / -1;
	}
}

/* xs */
@media only screen and (max-width: 480px) {
	.navigation  {
		xmargin-bottom: 0;
		xpadding-top:0;
	}
	.navigation-back {
		padding-bottom:0.5rem;

	}
	.contain {
		padding-left: 4vw;
		padding-right: 4vw;
		width: 92vw; 
	}
	.navigation, .navigation-back {
		padding-top:0.5rem;
	}
	.main-work, .main-about {
		margin-top:4rem;
	}
	.main-project {
		margin-top: 2.75rem;
	}
	.main-home {
		margin-top: 3rem;
	}
	h1, h1 .redd {
		font-size:1.5rem;
	}
	h2 {
		font-size: 1.75rem;
	}
	.project-thumb {
		grid-column: span 3;
	}
	
	.thumb-image {
		padding-left:10%;
		padding-right: 10%;
	}

	.project-thumb .title {
		font-size: 1.1rem;
	}
	.project-hero {
		xpadding: 0 1rem 0 1rem;
	}
	
	.main-grid-work {
		row-gap: 0.5rem;
		padding-top: 1rem;
	}
	.main-home .project-thumb {
		grid-column: span 6;
		padding-bottom: 1.5rem;
	}
	.project-info {
		text-align: left;
		padding-top: 1rem;
		padding-bottom: 1rem;
	}
	.project-content h2::before {
		margin-bottom: 1.75rem;
		margin-top: 1.75rem;
	}
	.project-content h2 {
		text-align: left;
		margin-bottom: 1rem;
	}
	h3 {
		padding-top:1rem;
	}
	figure + h3 {
		padding-top: 2rem;
	}
	.left, .right {
		display:none;
	}
	.footer {
		padding-top: 2rem;
		padding-bottom: 2rem;
	}
}

.zoom-source {
	cursor: -moz-zoom-in; 
    cursor: -webkit-zoom-in; 
    cursor: zoom-in;
}
.image-zoom {
	position: fixed;
	visibility: hidden;
	z-index: 100;

	background-image: none; 
	background-repeat: no-repeat;
	background-size: contain;
	background-position: center;
	left:2vw;
	top:2vh;
	width:96vw;
	height:96vh;

	cursor: -moz-zoom-out; 
    cursor: -webkit-zoom-out; 
    cursor: zoom-out;
}

