.root {
  position: absolute;
  z-index: 2;
  background: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  /* Must match DotSphere canvas size so eye projection coordinates align */
  width: 160%;
  height: 160%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.eyesGroup {
  position: absolute;
  inset: 0;
}

.eyeL,
.eyeR {
  position: absolute;
  width: 40px;
  height: 40px;
  transform-origin: 0 0;
  visibility: hidden;
}

.eyeCore {
  width: 100%;
  height: 100%;
  background: var(--h-eye-bg);
  border-radius: inherit;
  box-shadow:
    0 0 10px 3px var(--h-eye-glow),
    0 0 30px 8px var(--h-eye-glow-outer);
  animation: eye-blink 5s infinite ease-in-out;
  transform-origin: center;
  transition: transform 0.18s cubic-bezier(0.18, 0.82, 0.22, 1);
}

.eyeR .eyeCore {
  animation-delay: 0.12s;
}

.eyeSquint {
  animation: none;
  transform: scaleY(0.34) scaleX(1.04);
}

@keyframes eye-blink {
  0%, 44%, 100% { transform: scaleY(1); }
  46%           { transform: scaleY(0.07); }
  48%           { transform: scaleY(1); }
  50%           { transform: scaleY(0.07); }
  52%           { transform: scaleY(1); }
}
