@font-face {
  font-family: 'Recoleta';
  src: url('./fonts/Recoleta-Regular.woff2') format('woff2'),
       url('./fonts/Recoleta-Regular.woff') format('woff'),
       url('./fonts/Recoleta-Regular.ttf') format('truetype');
  font-weight: 400;
  font-style: normal;
}

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

body {
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background: #000;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", sans-serif;
}

/* ── Content area (only this dissolves) ── */
#content {
  position: absolute;
  inset: 0;
  z-index: 5;
  opacity: 1;
  transition: opacity 0.3s ease-in-out;
}

/* ── Background ── */
.bg {
  position: absolute;
  top: 0;
  left: -5.31%;
  width: 110.62%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

.overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.18);
  z-index: 1;
  pointer-events: none;
}

/* ── Navigation ── */
nav {
  position: absolute;
  top: 30px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px;
  border-radius: 40px;
  border: none;
  background: rgba(185, 217, 252, 0.10);
  backdrop-filter: blur(23.793px);
  -webkit-backdrop-filter: blur(23.793px);
  box-shadow: 0px 1.983px 47.585px 0px rgba(0, 0, 0, 0.18);
}

nav::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 40px;
  padding: 1px;
  background: linear-gradient(
    160deg,
    rgba(210, 210, 210, 0.8) 0%,
    rgba(255, 255, 255, 0.30) 45%,
    rgba(255, 255, 255, 0.05) 100%
  );
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.nav-item {
  position: relative;
  padding: 12px 24px;
  border-radius: 40px;
  border: none;
  background: rgba(255, 255, 255, 0);
  cursor: pointer;
  color: #fff;
  font-size: calc(20px + var(--fa-px));
  font-weight: 400;
  letter-spacing: -0.35px;
  line-height: 1.2;
  text-transform: capitalize;
  white-space: nowrap;
  transition: opacity 0.2s;
  text-decoration: none;
}

.nav-item:nth-child(1),
.nav-item:nth-child(2) {
  border-radius: 46.39px;
}




.nav-item:not(.active)::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  backdrop-filter: blur(11.597px);
  -webkit-backdrop-filter: blur(11.597px);
  opacity: 0;
  transition: opacity 0.3s ease;
  pointer-events: none;
}

.nav-item:not(.active):hover::before {
  opacity: 1;
}

.nav-item.active {
  background: linear-gradient(0deg, rgba(210, 223, 255, 0.30) 0%, rgba(210, 223, 255, 0.30) 100%), rgba(111, 111, 111, 0.10);
  background-blend-mode: screen, normal;
  backdrop-filter: blur(11.597px);
  -webkit-backdrop-filter: blur(11.597px);
  font-weight: 500;
}

.nav-layer-1,
.nav-layer-2 {
  display: none;
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
}

.nav-layer-1 {
  background: rgba(111, 111, 111, 0.10);
}

.nav-layer-2 {
  background: rgba(210, 223, 255, 0.30);
  backdrop-filter: blur(11.597px);
  -webkit-backdrop-filter: blur(11.597px);
  mix-blend-mode: screen;
}

.nav-item span {
  position: relative;
  z-index: 1;
}

/* ── Accessibility Button ── */
.a11y-btn {
  position: absolute;
  bottom: 30px;
  right: 30px;
  z-index: 10;
  width: 42px;
  height: 42px;
  border-radius: 40px;
  border: none;
  background: rgba(255, 255, 255, 0.20);
  backdrop-filter: blur(50px);
  -webkit-backdrop-filter: blur(50px);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.2s;
}

.a11y-btn::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(132deg, rgba(255, 255, 255, 0.20) 14.14%, rgba(0, 0, 0, 0.00) 47.67%, rgba(255, 255, 255, 0.20) 82.63%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.a11y-btn:hover { opacity: 0.8; }

.a11y-btn img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}
