@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800;900&display=swap');

/* Color schemes */
.nav {
	--color-text: #edd011;
	--color-bg: #333;
	--color-link: #f6ecb6;
	--color-link-hover: #f6ecb6;
	--color-main-bg: #24262d;
	--path-fill-1: #000000;
	--path-fill-2: #1d1d1f;
	--path-fill-3: #edd011;
	--color-menu: #ffffff;
	--color-menu-hover: #f6ecb6;
	--font-family-menu: 'Archivo Black', sans-serif;
	--font-weight-menu: 400;
	--button-bg: #fff;
	--button-circle: #ada4a4;
	--button-line: #222;
}

a,
a:focus,
a:active {
    border: none;
    outline: none;
    box-shadow: none;
}

.global-menu {
    position: fixed !important;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100dvh; /* Dynamic viewport height adjusts correctly to address/navigation bar presence */
    height: -webkit-fill-available; /* Modern Safari mobile fallback */
    padding-top: calc(15px + env(safe-area-inset-top));
    padding-bottom: calc(15px + env(safe-area-inset-bottom));
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    pointer-events: none;
    z-index: 9997;
    overflow: hidden;
    box-sizing: border-box;
}

.global-menu__header {
    font-family: 'Montserrat', sans-serif;
    color: #ffffff;
    font-size: 1vmax;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 3vh;
    pointer-events: none;
    opacity: 0;
    transform: translateY(100%);
    transition: transform 0.1s ease, opacity 0.1s ease;
}

.global-menu__header.is-opened {
    opacity: 1;
    transform: translateY(0);
	transition: transform 0.8s ease, opacity 0.8s ease;
    transition-delay: 0.5s;
}

.global-menu__wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-height: 80dvh; /* Constrains vertical height to dynamic viewport to prevent cutoff */
}

.global-menu__item {
    color: var(--color-menu);
    font-family: var(--font-family-menu);
    font-size: clamp(2rem, 6vh, 4.5rem);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -0.8px;
	text-shadow: -1px  2px 0 rgba(237, 177, 17, 0.6), 0px  1px 0 rgba(237, 177, 17, 0.6);
    opacity: 0;
    transform: translateY(-100%);
    pointer-events: none;
    display: block;
    margin: 1.5vh 0;
    transition: transform 0.3s, opacity 0.3s;
    transition-timing-function: ease-in;
}

.global-menu__item--link {
	transition: transform 0.1s, opacity 0.1s;
	transform: translateY(100%);
	transition-timing-function: ease-out;
}

.global-menu__item:hover {
	color: var(--color-menu-hover);
}

.global-menu__item.is-opened {
	opacity: 1;
	transform: translateY(0) rotate(0);
	pointer-events: auto;
	transition-timing-function: ease;
}

.global-menu__item--link.is-opened {
	transition-duration: 0.3s;
}

.global-menu__item--link:nth-of-type(1) { transition-delay: 0s; }
.global-menu__item--link.is-opened:nth-of-type(1) { transition-delay: 0.65s; }
.global-menu__item--link:nth-of-type(2) { transition-delay: 0s; }
.global-menu__item--link.is-opened:nth-of-type(2) { transition-delay: 0.7s; }
.global-menu__item--link:nth-of-type(3) { transition-delay: 0s; }
.global-menu__item--link.is-opened:nth-of-type(3) { transition-delay: 0.75s; }
.global-menu__item--link:nth-of-type(4) { transition-delay: 0s; }
.global-menu__item--link.is-opened:nth-of-type(4) { transition-delay: 0.8s; }
.global-menu__item--link:nth-of-type(5) { transition-delay: 0s; }
.global-menu__item--link.is-opened:nth-of-type(5) { transition-delay: 0.85s; }
.global-menu__item--link:nth-of-type(6) { transition-delay: 0s; }
.global-menu__item--link.is-opened:nth-of-type(6) { transition-delay: 0.9s; }

.shape-overlays {
    position: fixed !important;
    top: -10lvh;   /* Overstretches past the top screen boundary to cover status bar fully */
    left: -10lvw;  /* Wide-stretch prevents raw edge exposure on fast responsive changes */
    width: 120lvw;
    height: 120lvh; /* Complete vertical coverage including bottom toolbar bounce-gaps */
    z-index: 9996;
    pointer-events: none;
}

.shape-overlays svg {
    width: 100%;
    height: 100%;
}

.shape-overlays.is-opened {
	pointer-events: auto;
}

.shape-overlays__path {
	width: 100%;
	height: 100%;
}

.shape-overlays__path:nth-of-type(1) { fill: var(--path-fill-1); }
.shape-overlays__path:nth-of-type(2) { fill: var(--path-fill-2); }
.shape-overlays__path:nth-of-type(3) { fill: var(--path-fill-3); }

#hamburger {
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  will-change: opacity;
  transition: opacity 0.6s ease;
}

#hamburger.is-ready {
  opacity: 0.6;
  pointer-events: auto;
}

@media (hover: hover) {
  #hamburger:hover,
  #hamburger.is-ready:hover {
    opacity: 1;
    transition: opacity 0.6s ease;
  }
}

.hamburglar {
  transform: scale(1);
  position: fixed;
  display: block;
  top: 2.25em;
  right: 2.25em;
  z-index: 9998;
  width: 68px;
  height: 68px;
  background: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

body.details-is-active .hamburglar {
	pointer-events: none;
    visibility: hidden;
}

.hamburglar.is-opened-navi .burger-bun-top,
.hamburglar.is-opened-navi .burger-bun-bot,
.hamburglar.is-opened-navi .burger-filling {
  background: #ffffff;
}

.hamburglar.is-opened-navi .path {
  stroke: #ffffff;
}

.path-burger {
  position: absolute;
  top: 0;
  left: 0;
  height: 68px;
  width: 68px;
  -webkit-mask: url(#mask);
          mask: url(#mask);
}

.animate-path {
  position: absolute;
  top: 0;
  left: 0;
  width: 68px;
  height: 68px;
}

.path-rotation {
  height: 34px;
  width: 34px;
  margin: 34px 34px 0 0;
  transform: rotate(0deg);
  transform-origin: 100% 0;
}
.path-rotation:before {
  content: "";
  display: block;
  width: 30px;
  height: 34px;
  margin: 0 4px 0 0;
  background: #fff;
}

@-webkit-keyframes rotate-out {
  0% { transform: rotate(0deg); }
  40% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}

@keyframes rotate-out {
  0% { transform: rotate(0deg); }
  40% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}

@-webkit-keyframes rotate-in {
  0% { transform: rotate(360deg); }
  40% { transform: rotate(180deg); }
  100% { transform: rotate(0deg); }
}

@keyframes rotate-in {
  0% { transform: rotate(360deg); }
  40% { transform: rotate(180deg); }
  100% { transform: rotate(0deg); }
}

.hamburglar.is-open .path {
  -webkit-animation: dash-in 0.6s linear normal;
          animation: dash-in 0.6s linear normal;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.hamburglar.is-open .animate-path {
  -webkit-animation: rotate-in 0.6s linear normal;
          animation: rotate-in 0.6s linear normal;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.hamburglar.is-closed .path {
  -webkit-animation: dash-out 0.6s linear normal;
          animation: dash-out 0.6s linear normal;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.hamburglar.is-closed .animate-path {
  -webkit-animation: rotate-out 0.6s linear normal;
          animation: rotate-out 0.6s linear normal;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.path {
  stroke-dasharray: 240;
  stroke-dashoffset: 240;
  stroke-linejoin: round;
}

@-webkit-keyframes dash-in {
  0% { stroke-dashoffset: 240; }
  40% { stroke-dashoffset: 240; }
  100% { stroke-dashoffset: 0; }
}

@keyframes dash-in {
  0% { stroke-dashoffset: 240; }
  40% { stroke-dashoffset: 240; }
  100% { stroke-dashoffset: 0; }
}

@-webkit-keyframes dash-out {
  0% { stroke-dashoffset: 0; }
  40% { stroke-dashoffset: 240; }
  100% { stroke-dashoffset: 240; }
}

@keyframes dash-out {
  0% { stroke-dashoffset: 0; }
  40% { stroke-dashoffset: 240; }
  100% { stroke-dashoffset: 240; }
}

.burger-icon {
  position: absolute;
  padding: 20px 16px;
  height: 68px;
  width: 68px;
}

.burger-container {
  position: relative;
  height: 28px;
  width: 36px;
}

.burger-bun-top,
.burger-bun-bot,
.burger-filling {
  position: absolute;
  display: block;
  height: 4px;
  width: 36px;
  border-radius: 2px;
  background: #fff;
}

.burger-bun-top {
  top: 0;
  transform-origin: 34px 2px;
}

.burger-bun-bot {
  bottom: 0;
  transform-origin: 34px 2px;
}

.burger-filling {
  top: 12px;
}

.burger-ring {
  position: absolute;
  top: 0;
  left: 0;
  width: 68px;
  height: 68px;
}

.svg-ring {
  width: 68px;
  height: 68px;
}

.hamburglar.is-open .burger-bun-top {
  -webkit-animation: bun-top-out 0.6s linear normal;
          animation: bun-top-out 0.6s linear normal;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.hamburglar.is-open .burger-bun-bot {
  -webkit-animation: bun-bot-out 0.6s linear normal;
          animation: bun-bot-out 0.6s linear normal;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.hamburglar.is-closed .burger-bun-top {
  -webkit-animation: bun-top-in 0.6s linear normal;
          animation: bun-top-in 0.6s linear normal;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.hamburglar.is-closed .burger-bun-bot {
  -webkit-animation: bun-bot-in 0.6s linear normal;
          animation: bun-bot-in 0.6s linear normal;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

@-webkit-keyframes bun-top-out {
  0% { left: 0; top: 0; transform: rotate(0deg); }
  20% { left: 0; top: 0; transform: rotate(15deg); }
  80% { left: -5px; top: 0; transform: rotate(-60deg); }
  100% { left: -5px; top: 1px; transform: rotate(-45deg); }
}

@keyframes bun-top-out {
  0% { left: 0; top: 0; transform: rotate(0deg); }
  20% { left: 0; top: 0; transform: rotate(15deg); }
  80% { left: -5px; top: 0; transform: rotate(-60deg); }
  100% { left: -5px; top: 1px; transform: rotate(-45deg); }
}

@-webkit-keyframes bun-bot-out {
  0% { left: 0; transform: rotate(0deg); }
  20% { left: 0; transform: rotate(-15deg); }
  80% { left: -5px; transform: rotate(60deg); }
  100% { left: -5px; transform: rotate(45deg); }
}

@keyframes bun-bot-out {
  0% { left: 0; transform: rotate(0deg); }
  20% { left: 0; transform: rotate(-15deg); }
  80% { left: -5px; transform: rotate(60deg); }
  100% { left: -5px; transform: rotate(45deg); }
}

@-webkit-keyframes bun-top-in {
  0% { left: -5px; bot: 0; transform: rotate(-45deg); }
  20% { left: -5px; bot: 0; transform: rotate(-60deg); }
  80% { left: 0; bot: 0; transform: rotate(15deg); }
  100% { left: 0; bot: 1px; transform: rotate(0deg); }
}

@keyframes bun-top-in {
  0% { left: -5px; bot: 0; transform: rotate(-45deg); }
  20% { left: -5px; bot: 0; transform: rotate(-60deg); }
  80% { left: 0; bot: 0; transform: rotate(15deg); }
  100% { left: 0; bot: 1px; transform: rotate(0deg); }
}

@-webkit-keyframes bun-bot-in {
  0% { left: -5px; transform: rotate(45deg); }
  20% { left: -5px; bot: 0; transform: rotate(60deg); }
  80% { left: 0; bot: 0; transform: rotate(-15deg); }
  100% { left: 0; transform: rotate(0deg); }
}

@keyframes bun-bot-in {
  0% { left: -5px; transform: rotate(45deg); }
  20% { left: -5px; bot: 0; transform: rotate(60deg); }
  80% { left: 0; bot: 0; transform: rotate(-15deg); }
  100% { left: 0; transform: rotate(0deg); }
}

.hamburglar.is-open .burger-filling {
  -webkit-animation: burger-fill-out 0.6s linear normal;
          animation: burger-fill-out 0.6s linear normal;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

.hamburglar.is-closed .burger-filling {
  -webkit-animation: burger-fill-in 0.6s linear normal;
          animation: burger-fill-in 0.6s linear normal;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
}

@-webkit-keyframes burger-fill-in {
  0% { width: 0; left: 36px; }
  40% { width: 0; left: 40px; }
  80% { width: 36px; left: -6px; }
  100% { width: 36px; left: 0px; }
}

@keyframes burger-fill-in {
  0% { width: 0; left: 36px; }
  40% { width: 0; left: 40px; }
  80% { width: 36px; left: -6px; }
  100% { width: 36px; left: 0px; }
}

@-webkit-keyframes burger-fill-out {
  0% { width: 36px; left: 0px; }
  20% { width: 42px; left: -6px; }
  40% { width: 0; left: 40px; }
  100% { width: 0; left: 36px; }
}

@keyframes burger-fill-out {
  0% { width: 36px; left: 0px; }
  20% { width: 42px; left: -6px; }
  40% { width: 0; left: 40px; }
  100% { width: 0; left: 36px; }
}

@media screen and (max-width: 55em) {
	.hamburglar {
		position: fixed;
		top: calc(0.5em + env(safe-area-inset-top));
		right: calc(0.5em + env(safe-area-inset-right));
		transform: scale(0.75);
	}
}

@media screen and (max-width: 550px) {
	#hamburger.is-ready,
		#hamburger.is-ready:hover,
		#hamburger.is-ready:active,
		#hamburger.is-ready:focus {
			opacity: 0.6;
			transition: none;
	}
	.global-menu__item {
    	font-size: clamp(2rem, 4.5vh, 4.5rem);
	}
}


@media screen and (max-width: 1199px) {
.global-menu__item {
    margin: 1.5vh 0;
}
.global-menu__header {
    font-size: 1.5vmax;
}
}

.splitting .word,
.splitting .char {
  display: inline-block;
}

.splitting .char {
  position: relative;
}