html,
body
{
    width:100%;
    height:100%;
    margin:0;
    font-family:-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen-Sans, Cantarell, Ubuntu, Helvetica Neue, Arial, Noto Color Emoji, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
}

html
{
    overflow:hidden;
	background-color:var(--bg);
    scroll-behavior:smooth;
}

body
{
	--bannerHeight:100vh;

	position:relative;
	background-color:var(--theme1);
    box-shadow:0 0 10px rgba(0, 0, 0, .6);
}
img {
	display:block;
}
p {
    margin:0;
}


header {
    z-index:100;
	position:absolute;
	top:0;
	left:0;
	right:0;
	/* background-color:#2424243B;
	box-shadow:0 0 10px rgba(0, 0, 0, .6); */
	transition:background-color .5s;
}
header.blend {
	background-color:#5F5B5BAA;
	mix-blend-mode:hard-light;
}
header.start,
header.small {
	/* background-color:#0D0D2A99; */
	background-color:#242424AB;
	box-shadow:0 0 10px rgba(0, 0, 0, .6);
}
/* header.blend.small {
	background-color:#5F5B5BAA;
	box-shadow:0 0 10px rgba(0, 0, 0, .6);
} */
header:hover {
	background-color:#156BA8;
	box-shadow:0 0 10px rgba(0, 0, 0, .6);
	mix-blend-mode:unset;
}
header.blend:hover {
	/* background-color:#AAAA; */
	background-color:#444040;
	mix-blend-mode:hard-light;
}
header > .flex {
	display:flex;
	padding:20px 36px;
}
header .logo {
	width:fit-content;
	height:96px;
	transition:height .5s;
	overflow:hidden;
}
header.small .logo {
	height:46px;
}
header .logo > img {
	height:100%;
	min-height:64px;
	/* filter:drop-shadow(2px 4px 6px #000A); */
	filter:drop-shadow(1px 1px 2px #000A);
}
#menu {
	position:absolute;
	left:0;
	right:0;
	top:0;
	bottom:0;
	
}
#menu > .menu {
	position:absolute;
	left:50%;
	bottom:calc(100% + 20px);
	transform:translateX(-50%);
	transition:bottom .4s ease-in, transform .4s;
}
#menu > .icon {
	opacity:.7;
	position:absolute;
	left:50%;
	bottom:calc(100% - 54px);
	transform:translateX(-50%);
	height:30px;
	font-size:1.2em;
	font-weight:200;
	text-shadow:1px 0 5px #000;
	color:#FFF;
	transition:bottom .3s .7s ease-in-out;
}
header.start #menu > .menu,
header.small #menu > .menu,
header:hover #menu > .menu {
	bottom:25px;
	transition:bottom .4s .2s, transform .4s;
}
header.small #menu > .menu {
	bottom:50%;
	transform:translate(-50%, 50%);
}
header.start #menu > .icon,
header.small #menu > .icon,
header:hover #menu > .icon {
	bottom:100%;
	transition:bottom .3s ease-in;
}

header a {
	color:#FFF;
	text-decoration:none;
	text-transform:uppercase;
	font-weight:200;
	text-shadow:1px 0 5px #000;
}
header a.login {
	z-index:3;
	margin:-3px -2px auto auto;
	padding:6px 4px;
	font-size:.95em;
	height: fit-content;
}
#menu > .menu > a {
	margin-right:15px;
	font-size:1.2em;
	white-space:nowrap;
	transition:color .4s;
}
#menu > .menu > a:last-child {
	margin-right:0;
}

header a:hover {
	color:var(--color1);
}
#menu > .menu > a.current {
	/* color:#0099F4; */
    font-size:1.3em;
    font-weight:400;
	color:black;
    text-shadow:none;
}
header.small #menu > .menu > a.current {
	color:var(--color1);
}
header:hover #menu > .menu > a.current {
	color:black;
}


/* .banner_image,
.banner_gallery {
    position:absolute;
	width:100%;
	max-height:1100px;
	aspect-ratio:1.7777777778;
	overflow:hidden;
}
.banner_image > img {
	width:100%;
	height:100%;
	object-position:center;
	object-fit:cover;
} */
/* .banner_gallery::after
{
	content:'';
	position:absolute;
	bottom:-16px;
	left:0;
	right:0;
	height:16px;
	box-shadow:0 0 12px #000E;
} */
/* .banner_gallery > .gallery {
	position:relative;
	width:100%;
	height:100%;
}
.banner_gallery > .gallery > img {
	position:absolute;
	display:none;
	width:100%;
	height:100%;
	object-position:top;
	object-fit:cover;
	opacity:0;
}
.banner_gallery > .gallery > :last-child,
.banner_gallery > .gallery > :nth-last-child(2) {
	display:block;
}
.banner_gallery > .gallery > :nth-last-child(2) {
	opacity:1;
}
.banner_gallery > .gallery > :last-child
{
	transition:opacity 2.5s ease-in-out;
} */


#banner {
    z-index:2;
    position:absolute;
    width:100%;
    min-height:450px;
    height:var(--bannerHeight);
    overflow:hidden;
}
#banner > * {
    position:absolute;
    left:0;
    top:0;
    width:100%;
    height:100%;
    object-fit:cover;
}





body > main {
	z-index:3;
	position:relative;
    width:100%;
    height:100%;
	overflow-x:hidden;
	overflow-y:auto;
}

#page {
    position:relative;
	z-index:1;
	box-sizing:border-box;
    width:100%;
	min-height:100%;
	padding-bottom:100px;
}

#page > .banner {
    position:relative;
    height:var(--bannerHeight);
    overflow:hidden;
}



#page > .down {
	opacity:0.5;
	position:fixed;
	left:50%;
	bottom:10%;
	transform:translateX(-50%);
    z-index:2;
	width:85px;
	height:60px;
	border-radius:3px;
	background-color:var(--color1);
	cursor:pointer;
}
body.project #page > .down {
    display:none;
}
#page > .down:hover {
	opacity:1;
	filter:drop-shadow(0 0 2px #0006);
}

#page > .down > img {
    position:relative;
	left:50%;
    top:50%;
	transform:translate(-50%, -50%) rotate(90deg);
    height:42px;
	transition:top .3s;
}
#page > .down:hover > img {
    top:65%;
}

#page > .background {
    position:absolute;
    left:0;
    right:0;
    top:var(--bannerHeight);
    bottom:0;
    z-index:3;
	min-height:calc(100vh - 100px);
	background-color:var(--theme1);
	box-shadow:0 0 12px #000E;
}

#page > .content {
    position:relative;
    z-index:4;
	box-sizing:border-box;
	padding:50px 0;
    /* min-height:calc((100% - 100px) - min(max(33.3vw, 400px), 600px)); */
	min-height:calc(100vh - 100px);
}





#gallery {
    z-index:999;
    opacity:0;
    position:fixed;
    inset:0;
    display:flex;
    /* padding-top:200px; */
    padding:100px 0 40px;
    background-color:#000C;
    transition:opacity .3s ease-out;
    pointer-events:none;
}
#gallery.show {
    opacity:1;
    pointer-events:unset;
}
#gallery > .floater {
    display:flex;
    box-sizing:border-box;
    width:80%;
    margin:0 auto;
    filter:drop-shadow(0 0 10px #000);
    flex-direction:column;
    justify-content:center;
    gap:30px;
}
#gallery > .floater > .display {
    position:relative;
    min-height:0;
    flex-shrink:1;
    flex-grow:0;
}
#gallery > .floater .close {
    position:absolute;
    top:0px;
    right:-80px;
    box-sizing:border-box;
    width:64px;
    height:64px;
    padding:14px;
    background-color:#333;
    border-radius:999px;
    cursor:pointer;
}
#gallery > .floater .nav {
    position:absolute;
    top:50%;
    box-sizing:border-box;
    width:64px;
    height:64px;
    padding:12px;
    transform:translateY(-50%);
    cursor:pointer;
    background-color:#333;
    border-radius:999px;
    object-position:0 0;
    object-fit:cover;
}
#gallery > .floater .nav.left {
    left:-80px;
    transform:translateY(-50%) rotate(180deg);
}
#gallery > .floater .nav.right {
    right:-80px;
}
#gallery > .floater > .close {
	right:0;
	display:none;
}
#gallery > .floater > .nav {
	top:unset;
	bottom:0;
	display:none;
}
#gallery > .floater > .nav.left {
	left:calc(50% - 10px);
	transform:translate(-100%, -50%) rotate(180deg);
}
#gallery > .floater > .nav.right {
	right:calc(50% - 10px);
	transform:translate(100%, -50%);
}




#gallery > .floater > .display > .image {
    width:100%;
    max-width:100%;
    max-height:100%;
    margin:0 auto;
    object-fit:contain;
}
#gallery > .floater > .display > .video {
    z-index:2;
    inset:0;
    width:100%;
    height:100%;
	background-color:#333;
	object-fit:cover;
}
#gallery.video > .floater > .display > .image,
#gallery > .floater > .display > .video {
    display:none;
}
#gallery.video > .floater > .display > .video {
    display:block;
}
#gallery > .floater > .medias {
    display:flex;
    box-sizing:border-box;
    width:fit-content;
    max-width:100%;
    height:120px;
    flex-shrink:0;
    margin:0 auto;
    gap:8px;
    overflow-x:auto;
}


/* #project > .medias > .media {
    position:relative;
    height:100%;
    aspect-ratio:6/4;
    background-color:#FFF;
    cursor:pointer;
}
#project > .medias > .media > img {
    width:100%;
    height:100%;
    object-position:top;
    object-fit:cover;
} */

#gallery > .floater > .medias > .media {
    position:relative;
    height:100%;
    aspect-ratio:6/4;
    object-position:top;
    object-fit:cover;
	background-color:#333;
    cursor:pointer;
}
#gallery > .floater > .medias > .media > img {
    width:100%;
    height:100%;
	background-color:#333;
    object-position:top;
    object-fit:cover;
}
#gallery > .floater > .medias > .media > .play {
    opacity:.75;
    position:absolute;
    left:50%;
    top:calc(50% + 5px);
    transform:translate(-50%, -50%);
    width:52px;
    height:52px;
    border-radius:50%;
    background-color:#000;
    background-image:url("/Assets/Images/play.webp");
    background-size:26px 26px;
    background-repeat:no-repeat;
    background-position:15px 13px;
}
#gallery > .floater > .medias > .media:hover > .play {
    opacity:1;
}



footer {
	position:absolute;
	bottom:0;
	z-index:99;
	box-sizing:border-box;
	width:100%;
    padding:40px;
    background-color:var(--color1Alt1);
    text-align:center;
    color:#FFF;
}
footer > p {
    margin:0;
}


@media only screen and (max-width: 480px), (max-height: 480px) {
	header .logo {
		height:46px;
	}
	#menu > .icon {
		height:24px;
	}

	#gallery > .floater {
		width:100vw;
		padding:0 20px;
	}
}
@media only screen and (max-width: 815px) {
	header {
		height:86px;
		transition:height .5s, background-color .5s;
	}
	header:hover {
		height:280px;
	}
	#menu > .menu > a {
		display:block;
		margin-right:0;
		padding:8px;
		text-align:center;
	}
}
@media only screen and (max-width: 480px) {
    #gallery > .floater > .medias {
		height:60px
    }
	#gallery > .floater > .close {
		right:20px;
		display:block;
	}
	#gallery > .floater > .nav {
		display:block;
	}
	#gallery > .floater > .display > .close,
	#gallery > .floater > .display > .nav {
		display:none;
	}
}
@media only screen and (max-height: 480px) {
	#gallery {
		padding: 30px 0;
	}
    #gallery > .floater > .medias {
        display:none;
    }
	#gallery > .floater > .display > .nav.left {
		left:0px
	}
	#gallery > .floater > .display > .close,
	#gallery > .floater > .display > .nav.right {
		right:0px;
	}
}