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

:root {
  --font: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --ink: #1a1a1a;
  --ui-size: 0.68rem;
  --ui-tracking: 0.06em;
}

html,
body {
  width: 100%;
  height: 100%;
  overflow: hidden;
  font-family: var(--font);
  background: #111;
  color: #fff;
}

/* ── Background layer ── */
#vg-bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  background-size: cover;
  background-position: center;
  background-color: #111;
  transition: opacity 0.15s ease;
}

#vg-bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse at center,
    transparent 40%,
    rgba(0, 0, 0, 0.3) 100%
  );
  pointer-events: none;
}

/* ── Video layer ── */
#vg-video-wrap {
  position: fixed;
  inset: 0;
  z-index: 0;
  display: none;
  pointer-events: none;
}

#vg-video-wrap.active {
  display: block;
}

#vg-video-wrap video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── Invisible hover grid ── */
#vg-grid {
  position: fixed;
  inset: 0;
  z-index: 1;
  display: grid;
}

/* .vg-cell {
  cursor: none;
} */

/* ── Nav ── */
#vg-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 10;
  padding: 1.4rem 1.8rem;
  display: flex;
  align-items: center;
  gap: 2rem;
}

.vg-wordmark {
  font-family: var(--font);
  font-size: var(--ui-size);
  font-weight: 400;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: #fff;
  text-decoration: none;
  margin-right: 1rem;
}

.vg-nav-links {
  display: flex;
  gap: 1.6rem;
}

.vg-nav-links a {
  font-family: var(--font);
  font-size: var(--ui-size);
  font-weight: 400;
  letter-spacing: var(--ui-tracking);
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  transition: color 0.2s ease;
}

.vg-nav-links a:hover,
.vg-nav-links a.active {
  color: #fff;
}

/* ── Project label (bottom left) ── */
#vg-label {
  position: fixed;
  bottom: 1.6rem;
  left: 1.8rem;
  z-index: 10;
  pointer-events: none;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

#vg-label-title {
  font-family: var(--font);
  font-size: clamp(0.85rem, 1.3vw, 1rem);
  font-weight: 400;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #fff;
  opacity: 0;
  transform: translateY(5px);
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

#vg-label-cat {
  font-family: var(--font);
  font-size: 0.58rem;
  font-weight: 300;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  opacity: 0;
  transform: translateY(5px);
  transition:
    opacity 0.2s ease 0.03s,
    transform 0.2s ease 0.03s;
}

#vg-label.visible #vg-label-title,
#vg-label.visible #vg-label-cat {
  opacity: 1;
  transform: translateY(0);
}

/* ── Mobile ── */
@media (max-width: 768px) {
  html,
  body {
    overflow: auto;
  }

  #vg-cursor {
    display: none;
  }
  #vg-grid {
    display: none;
  }

  /* On mobile show a static full-bleed first image */
  #vg-bg {
    position: relative;
    height: 100vh;
    background-attachment: scroll;
  }

  #vg-nav {
    position: fixed;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), transparent);
    padding: 1rem 1.2rem;
  }

  .vg-nav-links {
    gap: 1rem;
  }

  #vg-label {
    position: fixed;
    bottom: 1.2rem;
    left: 1.2rem;
  }

  #vg-label-title,
  #vg-label-cat {
    opacity: 1;
    transform: translateY(0);
  }
}
