/* RESET */

abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:0 0}body{line-height:1}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:0 0}ins{background-color:#ff9;color:#121212;text-decoration:none}mark{background-color:#ff9;color:#121212;font-style:italic;font-weight:700}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}input,select{vertical-align:middle}li,ul{list-style:none}* :focus{outline:0}*,* :after,* :before{-webkit-box-sizing:border-box;box-sizing:border-box}

/* STANDARDS */

body, html{
	font: 300 18px/1.6 -apple-system, BlinkMacSystemFont, "Space Grotesk", sans-serif;
	min-height: -webkit-fill-available;
	z-index: -5;
}

a, a:visited{
	color: #121212;
	text-decoration: none;
}

/* HEADER */

header{
	padding: 50px 25px;
}

header p{
	hyphens: auto;
}

header object{
	max-width: 275px;
	max-height: 40px;
	vertical-align: bottom;
}

header object:first-of-type{
	margin-right: 25px;
}

header object.logo-dark{
	display: none;
}

header h1{
	font-size: 35px;
	line-height: 1.2;
	margin: 50px 0 15px 0;
}

/* GALERY */

main ul{
	display: flex;
	width: 100%;
	gap: 25px;
	padding: 25px;
	flex-wrap: wrap;
	justify-content: strech;
	align-content: stretch;
}

main ul > li{
	display: flex;
	width: 30%;
	min-width: 300px;
	position: relative;
	flex-grow: 1;
	aspect-ratio : 1 / 1;
	padding: 0 20px;
	border: 1px solid rgba(0,0,0,.1);
	text-align: left;
	justify-content: left;
	align-items: end;
	font-size: 16px;
	cursor: pointer;
}

main ul li.last{
	border-color: rgba(0,0,0,0);
}

main ul li a{
	padding: 25px 0;
	color: #FFFFFF;
	text-shadow: 2px 2px 2px rgba(0,0,0,.5), 0 0 10px rgba(0,0,0,.3);
	cursor: pointer;
}

main ul li h2{
	font-size: 27px;
	line-height: 1.2;
	font-weight: 400;
	padding-right: 5px;
	overflow: hidden;
	word-break: break-word;
	hyphens: auto;
}

main ul li h3{
	font-size: 16px;
	font-weight: normal;
}



main ul li a > .image-box{
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 1;
	z-index: -1;
	transition: opacity .3s ease-in-out;
	overflow: hidden;
}

main ul li a > .image-box img{
	width: 100%;
	position: absolute;
	top: 0;
	left: 0;
	opacity: 1;
	transition: transform .5s;
}


main ul li:hover a > .image-box img{
	opacity: .9;
	transform: scale(1.2);
}

/* OVERLAY */

main ul li .overlay{
	width: calc(100% - 50px);
	height: calc(100vh - 50px);
	position: fixed;
	z-index: 10;
	top: 25px;
	left: 25px;
	opacity: 0;
	border: 1px solid rgba(0,0,0,.1);
	background-color: #FFF;
	box-shadow: 50px 50px 0 rgba(255,255,255,.9),  -50px -50px 0 rgba(255,255,255,.9), 50px -50px 0 rgba(255,255,255,.9), -50px 50px 0 rgba(255,255,255,.9);
	overflow: scroll;
	display: none;
	flex-wrap: wrap;
	justify-content: strech;
	align-content: stretch;
	text-align: left;
	transition: opacity 0.5s ease;
	cursor: default !important;
}

main ul li .overlay.show {
	display: flex;
	opacity: 1;
}

main ul li .overlay .close{
	width: 50px;
	height: 50px;
	position: fixed;
	z-index: 15;
	right: 50px;
	top: 50px;
	border-radius: 50%;
	background-color: rgba(0,0,0,.2);
	-webkit-backdrop-filter: blur(50px);
	backdrop-filter: blur(50px);
	cursor: pointer;
	font-size: 20px;
	font-weight: light;
	line-height: 48px;
	color: #FFFFFF;
	text-align: center;
	transition: all .1s ease-in-out;
}

main ul li .overlay .close:hover{
	background-color: rgba(0,0,0,.4);
}

main ul li .overlay .information{
	width: 50%;
	padding: 50px 10% 100px 50px;
	flex-grow: 1;
	hyphens: auto;
}

main ul li .overlay .full-width{
	width: 100%;
}

main ul li .overlay .information h2{
	font-size: 75px;
	font-weight: 600;
	line-height: 1.1;
	padding-right: 0 !important;
}

main ul li .overlay .information h3{
	font-size: 20px;
}

main ul li .overlay .information p{
	padding: 25px 0 0 0;
}

main ul li .overlay .information p.quote{
	font-size: 26px;
	font-style: italic;
}

main ul li .overlay .information p.quote .author{
	font-size: 20px;
	line-height: 40px;
	padding-top: 25px;
	display: inline-block;
	width: 100%;
}

main ul li .overlay .information p.quote img{
	display: inline;
	width: 45px !important;
	min-width: auto !important;
	vertical-align: bottom;
}


main ul li .overlay img, main ul li .overlay video{
	display: flex;
	width: calc(50%);
	min-width: 450px;
	flex-grow: 1;
}

main ul li .overlay video{
	max-height: 100%;
	background-color: #000000;
}

/* MOBILE */



@media only screen and (max-width: 1600px){
	
	
	main ul li .overlay .information{
		padding-right: 5%;
	}
	
	main ul li .overlay .information h2{
		font-size: 75px;
	}
	
	main ul li .overlay .information p.quote{
		font-size: 20px;
	}
	
	main ul li .overlay .information p.quote .author{
		font-size: 18px;
	}
}



@media only screen and (max-width: 550px){
	
	body, html{
		font-size: 16px;
	}

	
	header{
		padding-bottom: 25px;
	}
	
	header h1{
		font-size: 28px;
	}
	
	header object{
		max-width: 160px;
		max-height: 36px;
		margin-bottom: 10px;
	}
	
	header object:first-of-type{
		margin-right: 10px;
	}
	
	main ul li .overlay{
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		border-width: 0;
	}
	
	main ul li .overlay .close{
		right: 30px;
		top: 35px;
	}
	
	main ul li .overlay .information h2{
		font-size: 55px;
	}
	
	main ul li .overlay .information h3{
		font-size: 18px;
	}

	
	main ul li .overlay .information{
		padding: 40px 10% 50px 25px;
	}
	
	main ul li .overlay .information p.quote{
		font-size: 24px;
	}
	
	main ul li .overlay .information p.quote .author{
		font-size: 18px;
	}
	
	main ul li .overlay img, main ul li .overlay video{
		min-width: 100%;
		max-width: 100%;
	}
}


/* DARK MODE */

@media (prefers-color-scheme: dark) {
	
	body{
		background: #121212;
		color: #FFF;
	}
	
	a, a:visited{
		color: #FFF;
	}
	
	header object.logo-light{
		display: none;
	}
	
	header object.logo-dark{
		display: inline-block;
	}
	
	main ul li{
	}
	
	main ul li .overlay{
		border-color: rgba(255,255,255,.5);
		background-color: #121212;
		box-shadow: 0 0 250px #121212;
	}
	
	main ul li .overlay .close{
		background-color: #121212;
	}
	
	main ul li .overlay .information p.quote .author{
		display: inline-block;
		width: auto;
		background-color: #FFFFFF;
		color: #000000;
		padding: 2px 10px !important;
		margin-top: 20px;
		border-radius: 15px;
	}
}
