@import url('https://fonts.googleapis.com/css2?family=Urbanist&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Raleway&display=swap');

*,
*::after,
*::before {
	box-sizing: border-box;
}

:root {
	font-size: 16px;
	--color-text: #c27e73;
	/*--color-bg: #141418;*/
  --color-bg: #154875;
	--color-link: #a8dbe0;
	--color-link-hover: #fff;
	--color-title: #99dde2;
	--color-title-alt: #e2d2c3;
	--color-border: rgb(91 91 91 / 44%);
	/*--color-menu-item: #393634;*/
  --color-menu-item: #A7D3F9;
	/*--color-menu-item-alt: #e0d2c4;*/
  --color-menu-item-alt: #a44044; 
	/*--color-menu-item-hover: #efafa5;*/
  --color-menu-item-hover:  #FCDCE8;
	--color-menu-item-desc: #f1f1f1;
	--color-desc-cont: #e2d2c3;
  /*--color-desc: #656569;*/
  --color-desc: #f1f1f1;
}

html, body {
	height: 100%;
	/*overflow: hidden;*/
}

body {
	margin: 0;
	color: var(--color-text);
	background-color: var(--color-bg);
	font-family: "Urbanist", sans-serif;
	font-variation-settings: "slnt" 0, "wdth" 98, "wght" 400;
  /*text-transform: uppercase;*/
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Page Loader */
.js .loading::before,
.js .loading::after {
	content: '';
	position: fixed;
	z-index: 1000;
}

.js .loading::before {
	top: 0;
	left: 0;
	width: 100%;
	/*height: 100%;*/
	background: var(--color-bg);
}

.js .loading::after {
	top: 50%;
	left: 50%;
	width: 60px;
	height: 60px;
	margin: -30px 0 0 -30px;
	border-radius: 50%;
	opacity: 0.4;
	background: var(--color-link);
	animation: loaderAnim 0.7s linear infinite alternate forwards;

}

@keyframes loaderAnim {
	to {
		opacity: 1;
		transform: scale3d(0.5,0.5,1);
	}
}

a {
	text-decoration: none;
	color: var(--color-link);
	outline: none;
	cursor: pointer;
}

a:hover {
	color: var(--color-link-hover);
	outline: none;
}

/* Better focus styles from https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible */
a:focus {
	/* Provide a fallback style for browsers
	 that don't support :focus-visible */
	outline: none;
	background: lightgrey;
}

a:focus:not(:focus-visible) {
	/* Remove the focus indicator on mouse-focus for browsers
	 that do support :focus-visible */
	background: transparent;
}

a:focus-visible {
	/* Draw a very noticeable focus style for
	 keyboard-focus on browsers that do support
	 :focus-visible */
	outline: 2px solid red;
	background: transparent;
}

.unbutton {
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	cursor: pointer;
}

.unbutton:focus {
	outline: none;
}

section {
	position: relative;
  display: grid;
	grid-template-areas: 'main';
	width: 100%;
	height: calc(100vh + 80px);
}

.frame {
	grid-area: main;
	z-index: 1000;
	position: relative;
	width: 100%;
	padding: 1.5rem;
	display: grid;
	grid-template-columns: 100%;
	grid-template-areas: 'title' 'prev' 'sponsor';
	grid-gap: 0.5rem;
	justify-items: start;
	align-self: start;
	justify-self: start;
	pointer-events: none;
	align-items: center;
}

body #cdawrap {
    justify-self: start;
}

.frame a {
	pointer-events: auto;
}

.frame a:not(.frame__title-back) {
	white-space: nowrap;
	overflow: hidden;
	position: relative;
}

.frame a:not(.frame__title-back)::before {
	content: '';
	height: 1px;
	width: 100%;
	background: currentColor;
	position: absolute;
	top: 90%;
	transition: transform 0.3s;
	transform-origin: 0% 50%;
}

.frame a:not(.frame__title-back):hover::before {
	transform: scaleX(0);
	transform-origin: 100% 50%;
}

.frame__title {
	grid-area: title;
	display: flex;
}

.frame__title-main {
	font-size: inherit;
	margin: 0;
	font-weight: inherit;
}

.frame__title-back {
	position: relative;
	display: flex;
	align-items: flex-end;
}

.frame__title-back span {
	display: none;
}

.frame__title-back svg {
	fill: currentColor;
}

.frame__prev {
	grid-area: prev;
}

.menu {
	position: relative;
  margin-top: 40px;
	grid-area: main;
	display: flex;
	flex-direction: column;
	justify-content: center;
	max-height: 100vh;
}

.menu--hidden {
	pointer-events: none;
}

.menu__item:not(:last-child) {
	 border-bottom: 1px solid var(--color-border);
}
.menu__item:(:last-child) {
	 line-height: 2.5rem;
}

.menu__item-title {
	white-space: nowrap;
	font-family: "Raleway", serif;
	font-weight: 400;
	text-transform: none;
	font-size: 4vh;
	grid-column: 2;
	color: var(--color-menu-item);
	transform: translateX(50px);
	display: block;
}

.menu__item:hover .menu__item-title,
.menu__item:focus .menu__item-title  {
	color: var(--color-menu-item-hover);
}

.menu__item .menu__item-title i {
	font-style: normal;
}

.menu__item:hover .menu__item-title i,
.menu__item:focus .menu__item-title i {
	color: var(--color-menu-item-alt);
	transition: color 0.2s ease-out;
}

.menu__item-desc {
	opacity: 0;
	line-height: 1.1;
	max-width: 450px;
	font-weight: 500;
	display: none;
	font-size: clamp(0.5rem, 2.5vh, 1rem);
	color: var(--color-menu-item-desc);
}

.thumbgrid-wrap {
	position: relative;
	z-index: -1;
	grid-area: main;
	display: grid;
	pointer-events: none;
}

.thumbgrid {
	grid-area: 1 / -1;
	width: 100%;
	display: grid;
	grid-template-columns: repeat(100, 1%);
	grid-template-rows: repeat(100, 1%);
}

.thumbgrid-wrap .thumbgrid__item {
	opacity: 0;	
	grid-area: var(--grid-row) / var(--grid-column);
	aspect-ratio: 4 / 3;
	width: 18vw;
}

.thumbgrid-wrap .thumbgrid--current .thumbgrid__item {
	opacity: 1;
}

.thumbgrid__item:nth-child(1) {
	--bg-pos-x: 0;
	--bg-pos-y: 0;
}

.thumbgrid__item:nth-child(2) {
	--bg-pos-x: 100%;
	--bg-pos-y: 0;
}

.thumbgrid__item:nth-child(3) {
	--bg-pos-x: 0;
	--bg-pos-y: 100%;
}

.thumbgrid__item:nth-child(4) {	
	--bg-pos-x: 100%;
	--bg-pos-y: 100%;
}

.pos-1 { --grid-row: 10; --grid-column: 1; }
.pos-2 { --grid-row: 30; --grid-column: 50; }
.pos-3 { --grid-row: 55; --grid-column: 75; }
.pos-4 { --grid-row: 70; --grid-column: 5; }
.pos-5 { --grid-row: 5; --grid-column: 75; }
.pos-6 { --grid-row: 34; --grid-column: 3;}
.pos-7 { --grid-row: 10; --grid-column: 47;}
.pos-8 { --grid-row: 67; --grid-column: 17;}
.pos-9 { --grid-row: 36; --grid-column: 11;}
.pos-10 { --grid-row: 12; --grid-column: 70;}
.pos-11 { --grid-row: 46; --grid-column: 75;}
.pos-12 { --grid-row: 75; --grid-column: 16;}
.pos-13 { --grid-row: 25; --grid-column: 1;}
.pos-14 { --grid-row: 60; --grid-column: 60; }
.pos-15 { --grid-row: 15; --grid-column: 75; }
.pos-16 { --grid-row: 53; --grid-column: 6;}
.pos-17 { --grid-row: 70; --grid-column: 5; }
.pos-18 { --grid-row: 70; --grid-column: 50; }
.pos-19 { --grid-row: 10; --grid-column: 20; }
.pos-20 { --grid-row: 35; --grid-column: 70; }
.pos-21 { --grid-row: 55; --grid-column: 75; }
.pos-22 { --grid-row: 75; --grid-column: 50; }
.pos-23 { --grid-row: 10; --grid-column: 70; }
.pos-24 { --grid-row: 20; --grid-column: 5; }
.pos-25 { --grid-row: 45; --grid-column: 60; }
.pos-26 { --grid-row: 70; --grid-column: 1;}
.pos-27 { --grid-row: 70; --grid-column: 85; }
.pos-28 { --grid-row: 5; --grid-column: 19;}
.pos-29 { --grid-row: 25; --grid-column: 75; }
.pos-30 { --grid-row: 45; --grid-column: 10; }
.pos-31 { --grid-row: 60; --grid-column: 55; }
.pos-32 { --grid-row: 80; --grid-column: 25; }
.pos-33 { --grid-row: 57; --grid-column: 62;}
.pos-34 { --grid-row: 13; --grid-column: 10;}
.pos-35 { --grid-row: 5; --grid-column: 55; }
.pos-36 { --grid-row: 74; --grid-column: 3;}

.thumbgrid__item-img {
	width: 100%;
	height: 100%;
	background-size: 200%;
	background-position: var(--bg-pos-x) var(--bg-pos-y);
}

.content-wrap {
	grid-area: main;
  margin-top: -40px;
	display: grid;
	pointer-events: none;
}

.content {
	pointer-events: none;
	opacity: 0;
	grid-area: 1 / -1;
	max-height: 100vh;
	padding: 8rem 1.5rem;
}

.content--current {
	pointer-events: auto;
	opacity: 1;
}

.content__title {
	font-family: "Raleway", serif;
	font-weight: 400;
	text-transform: none;
	font-size: clamp(1rem, 6vw, 5rem);
	margin: 0;
	line-height: 1.5;
	color: var(--color-title);
	grid-column: 2;
}

.content__title i {
	font-style: normal;
	color: var(--color-title-alt);
}

.char-wrap {
	display: inline-block;
	position: relative;
	overflow: hidden;
}

.content__desc {
	grid-column: 2;
	line-height: 1.1;
	font-weight: 500;
	max-width: 550px;
	margin: 0;
	color: var(--color-desc);
}

.pibico {
	color: #D2ECBD;
  margin-bottom: 12px;
}

.content__desc--cont {
	position: relative;
	color: var(--color-desc-cont);
}

.content__images {
	margin: 1rem 0 2rem 0;
}

.content__images .thumbgrid {
	height: auto;
	width: 100%;
	flex: none;
	aspect-ratio: 4 / 3;
	grid-template-columns: repeat(2, 50%);
	grid-template-rows: repeat(2, 50%);
	grid-area: thumbgrid;
}

.content__images .thumbgrid--content {
	grid-template-columns: 100%;
	grid-template-rows: 100%;
}

.thumbgrid--content .thumbgrid__item {
	grid-area: 1 / 1;
	aspect-ratio: 4 / 3;
}

.thumbgrid--content .thumbgrid__item-img {
	background-size: 100%;
	background-position: 0 0;
}

.thumb {
	height: 50vh;
	aspect-ratio: 4 / 3;
	width: auto;
	display: none;
}

.thumb--prev {
	 grid-area: thumbprev;
	 justify-self: end;
}

.thumb--next {
	 grid-area: thumbnext;
}

.thumb__inner {
	width: 100%;
	height: 100%;
	background-size: cover;
	background-position: 50% 50%;
	filter: brightness(0.3);
}

.content__back {
	justify-self: start;
	grid-column: 2;
	color: #fff;
	text-transform: uppercase;
	padding: 0.15rem 0.85rem 0.25rem;
	border: 1px solid rgba(255,255,255,0.3);
	border-radius: 2rem;
}

@media screen and (min-width: 53em) {
	.frame {
		position: fixed;
		height: 100vh;
		grid-template-columns: auto 1fr;
		grid-template-rows: auto auto;
		grid-template-areas: 'title sponsor' 'prev ...';
		align-content: space-between;
		justify-items: start;
		grid-gap: 2rem;
		padding: 0.75rem;
	}
	.menu__item {
		flex: 1;
		align-items: center;
		gap: 1.5rem;
		display: grid;
		grid-template-columns: 20vw auto auto 1fr;
	}
	.menu__item-title {
		font-size: clamp(1rem, 5vh, 2.5rem);
	}
	.menu__item-desc {
		display: block;
	}
	.content {
		padding: 1rem 0 1rem 0;
		align-content: end;
		display: grid;
		column-gap: 2vw;
		grid-template-columns: 20vw 1fr;
		grid-template-rows: auto 12vw auto auto;
	}
	.content__images {
		display: grid;
		gap: 2vw;
		grid-template-columns: 20vw 1fr auto;
		grid-template-areas: 'thumbprev thumbgrid thumbnext';
	}
	.thumb {
		display: block;
	}
	.content__images .thumbgrid {
		height: 50vh;
		width: auto;
	}
	body #cdawrap {
	    justify-self: end;
	}
}

@media screen and (min-width: 1920px) {
  .menu {
    margin-top: 10px;
  }
  .content {
    margin-top: -60px;
  } 
  .content-wrap {
	  margin-top: 0px;
  }   
  .menu__item-title {
	  font-size: 2.5vh;
  }
}
@media screen and (min-width: 992px) and (max-width: 1920px) {
  .menu {
    margin-top: 10px;
  }
  .content {
    margin-top: 0px;
  } 
  .content-wrap {
	  margin-top: 0px;
  }   
  .menu__item-title {
	  font-size: 3vh;
  }
}
@media screen and (max-width: 992px) {
  .menu {
    margin-top: -160px;
  }
  .content {
    margin-top: -100px;
  } 
  .content-wrap {
	  margin-top: 0px;
  }   
  .menu__item-title {
	  font-size: 4.5vh;
  }
}