@import url("https://fonts.googleapis.com/css?family=Inter:300,regular,500,600,700,800,900&display=swap");@import url("https://fonts.googleapis.com/css2?family=Host+Grotesk:ital,wght@0,300..800;1,300..800&family=IBM+Plex+Mono:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&display=swap");* {
	padding: 0rem;
	margin: 0rem;
	border: 0rem;
}
*,
*::before,
*::after {
	box-sizing: border-box;
}
*::before,
*::after {
	display: inline-block;
}
html,
body {
	height: 100%;
}

body {
  background-color: #000000;
  font-family: "Host Grotesk";
}
p,
a {
  color: #ffffff;
  text-decoration: none;
  text-transform: uppercase;
  font-family: "IBM Plex Mono";
  font-size: 0.6875rem;
}
/* ================= TOGGLE BUTTON ================= */
.menu-toggle-btn {
  position: fixed;
  left: 50%;
  bottom: -6rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  gap: 0.25rem;
  width: 25rem;
  height: 10rem;
  padding-top: 2rem;
  border-radius: 50% 50% 0 0/90% 90% 0 0;
  background-color: #ffffff;
  color: #000000;
  cursor: pointer;
  transform: translateX(-50%);
}
.menu-toggle-btn .hamburger-bar {
  width: 2rem;
  height: 0.125rem;
  background-color: #000000;
}
/* ================= OVERLAY ================= */
.menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  width: 100vw;
  height: 100svh;
  opacity: 0;
  pointer-events: none;
  z-index: 100;
}
.menu-bg {
  position: absolute;
  width: 100%;
  height: 100%;
  background-image: url("./img/menu.jpg");
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-size: cover;
}
.menu-overlay-nav,
.menu-overlay-footer {
  position: absolute;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100vw;
  padding: 1.5rem;
}
.menu-overlay-nav {
  top: 0;
}
.menu-overlay-footer {
  bottom: 0;
}
/* ================= CLOSE BUTTON ================= */
.close-btn {
  position: relative;
  width: 1.5rem;
  height: 1.5rem;
  cursor: pointer;
}
.close-btn .close-btn-bar {
  position: absolute;
  top: 50%;
  width: 1.5rem;
  height: 0.125rem;
  background-color: #ffffff;
}
.close-btn .close-btn-bar:nth-child(1) {
  transform: rotate(45deg);
}
.close-btn .close-btn-bar:nth-child(2) {
  transform: rotate(-45deg);
}
/* ================= NAV ITEMS ================= */
.menu-overlay-items {
  display: flex;
  gap: 1rem;
}
.menu-overlay-nav .menu-overlay-items a {
  font-size: 1.125rem;
}

.menu-overlay-nav .menu-overlay-items a svg,
.menu-overlay-nav .menu-overlay-items a img {
  width: 1.125rem;
  height: 1.125rem;
  display: block;
  fill: currentColor;
}
/* ================= CIRCULAR MENU ================= */
.circular-menu {
  position: relative;
  width: 37.5rem;
  height: 37.5rem;
  z-index: 10;
}
/* ================= JOYSTICK ================= */
.joystick {
  position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  justify-content: center;
  user-select: none;
  width: 6.25rem;
  height: 6.25rem;
  border-radius: 50%;
  background-color: #ffffff;
  cursor: grab;
  z-index: 100;
}
.center-icon {
  position: absolute;
  color: #000000;
  font-size: 0.75rem;
}
.center-main {
  font-size: 1.875rem;
}
.center-up {
  top: 0.75rem;
  left: 50%;
  transform: translateX(-50%);
}
.center-down {
  bottom: 0.75rem;
  left: 50%;
  transform: translateX(-50%);
}
.center-left {
  left: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
}
.center-right {
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
}
/* ================= SEGMENTS ================= */
.menu-segment {
  position: absolute;
  width: 100%;
  height: 100%;
  color: #ffffff;
  background-color: rgba(255, 255, 255, 0.05);
  backdrop-filter: blur(1.25rem);
  cursor: pointer;
}
.segment-content {
  position: absolute;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: 600;
}
.segment-content ion-icon {
  margin-bottom: 0.625rem;
  font-size: 2.5rem;
}
.label {
  text-transform: none;
  font-family: "Host Grotesk";
  font-size: 0.9375rem;
  font-weight: 500;
}
/* ================= RESPONSIVE ================= */
/* ================= ANIMATIONS ================= */
@keyframes flickerHover {
  0% {
    background-color: rgba(255, 255, 255, 0.05);
    backdrop-filter: blur(1.25rem);
  }
  12% {
    background-color: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(0.5rem);
  }
  24% {
    background-color: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(1.125rem);
  }
  36% {
    background-color: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(0.3125rem);
  }
  48% {
    background-color: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(0.9375rem);
  }
  60% {
    background-color: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(0.1875rem);
  }
  72% {
    background-color: rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(0.75rem);
  }
  84% {
    background-color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(0.125rem);
  }
  100% {
    background-color: rgb(255, 255, 255);
    backdrop-filter: blur(0rem);
  }
}
@keyframes contentFlickerHover {
  0% {
    color: #ffffff;
    opacity: 1;
  }
  12% {
    color: #333333;
    opacity: 0.4;
  }
  24% {
    color: #ffffff;
    opacity: 0.9;
  }
  36% {
    color: #333333;
    opacity: 0.3;
  }
  48% {
    color: #ffffff;
    opacity: 0.8;
  }
  60% {
    color: #333333;
    opacity: 0.2;
  }
  72% {
    color: #ffffff;
    opacity: 0.7;
  }
  84% {
    color: #333333;
    opacity: 0.1;
  }
  100% {
    color: #000000;
    opacity: 1;
  }
}/* Generated by vite-plugin-svg-spritemap */@media (max-width: 62.5rem){
  .segment-content ion-icon {
    font-size: 1.25rem;
  }
}@media (any-hover: hover){
  .menu-segment:hover {
    animation: flickerHover 350ms ease-in-out forwards;
    z-index: 10;
  }
  .menu-segment:hover .segment-content {
    animation: contentFlickerHover 350ms ease-in-out forwards;
  }
}
