.scene-explore {
  --explore-fg: #f2eee5;
  --explore-bg: #f2eee5;
  --explore-icon: #0a0b0a;
  --explore-line: rgba(242, 238, 229, .62);
  --explore-shadow: 0 14px 34px rgba(0, 0, 0, .2);
  --explore-enter-x: 0px;
  --explore-enter-y: 20px;
  position: fixed;
  z-index: 92;
  left: var(--explore-left, 5.5vw);
  top: var(--explore-top, 62vh);
  display: inline-flex;
  align-items: center;
  gap: clamp(14px, 1.1vw, 20px);
  width: clamp(220px, 17vw, 292px);
  padding-top: 11px;
  color: var(--explore-fg);
  text-decoration: none;
  pointer-events: none;
  opacity: 0;
  filter: blur(4px);
  transform: translate3d(var(--explore-enter-x), var(--explore-enter-y), 0);
  transition: opacity .22s ease, filter .3s ease, transform .42s cubic-bezier(.16, .8, .2, 1);
  will-change: transform, opacity;
}

.scene-explore[data-theme="ink"] {
  --explore-fg: #0a0b0a;
  --explore-bg: #0a0b0a;
  --explore-icon: #f2eee5;
  --explore-line: rgba(10, 11, 10, .46);
  --explore-shadow: 0 14px 34px rgba(10, 11, 10, .14);
}

.scene-explore::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: var(--explore-line);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .38s cubic-bezier(.16, .8, .2, 1);
}

.scene-explore.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
}

.scene-explore.is-visible::after {
  transform: scaleX(1);
  transition-delay: .01s;
}

.scene-explore-label {
  display: block;
  min-width: 0;
  flex: 1;
  color: inherit;
  font-family: var(--serif);
  font-size: clamp(27px, 2vw, 36px);
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -.035em;
  text-shadow: 0 2px 22px rgba(0, 0, 0, .38);
  opacity: 0;
  clip-path: inset(100% 0 0 0);
  transform: translate3d(calc(var(--explore-enter-x) * .45), calc(var(--explore-enter-y) * .45), 0);
  transition: opacity .22s ease, clip-path .38s cubic-bezier(.16, .8, .2, 1), transform .38s cubic-bezier(.16, .8, .2, 1);
}

.scene-explore[data-theme="ink"] .scene-explore-label { text-shadow: none; }
.scene-explore-label::before { content: none; }

.scene-explore-icon {
  display: grid;
  place-items: center;
  width: clamp(50px, 3.6vw, 60px);
  height: clamp(50px, 3.6vw, 60px);
  flex: none;
  border: 1px solid var(--explore-bg);
  color: var(--explore-icon);
  background: var(--explore-bg);
  box-shadow: var(--explore-shadow);
  font-size: clamp(16px, 1.05vw, 19px);
  opacity: 0;
  transform: translate3d(calc(var(--explore-enter-x) * .55), calc(var(--explore-enter-y) * .55), 0) rotate(-8deg) scale(.9);
  transition: color .28s ease, background .28s ease, opacity .22s ease, transform .42s cubic-bezier(.16, .8, .2, 1);
}

.scene-explore.is-visible .scene-explore-label {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  transform: translate3d(0, 0, 0);
  transition-delay: .02s, 0s, 0s;
}

.scene-explore.is-visible .scene-explore-icon {
  opacity: 1;
  transform: translate3d(0, 0, 0) rotate(0) scale(1);
  transition-delay: .03s, .03s, .03s, .02s;
}

.scene-explore:hover .scene-explore-icon,
.scene-explore:focus-visible .scene-explore-icon {
  color: var(--explore-bg);
  background: transparent;
  transform: translate3d(3px, -3px, 0);
}

.scene-explore:focus-visible { outline: 0; }
.scene-explore:focus-visible .scene-explore-icon { outline: 2px solid var(--explore-fg); outline-offset: 4px; }

.explore-wipe {
  position: fixed;
  z-index: 500;
  inset: 0;
  background: #0a0b0a;
  pointer-events: none;
  transform: translateY(100%);
}

@media (max-width: 760px) {
  .scene-explore { width: min(72vw, 274px); gap: 12px; padding-top: 10px; }
  .scene-explore-label { font-size: clamp(24px, 7.5vw, 31px); }
  .scene-explore-icon { width: 48px; height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  .scene-explore, .scene-explore-label, .scene-explore-icon, .scene-explore::after { transition-duration: .01ms; }
}
