#progress-tutorial::before {
  position: absolute;
  z-index: 0;
  inset: 0;
  background: rgba(3, 7, 18, .78);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  -webkit-mask-image: radial-gradient(
    ellipse var(--tutorial-hole-x, 1px) var(--tutorial-hole-y, 1px)
    at var(--tutorial-x, 50%) var(--tutorial-y, 50%),
    transparent 0 72%, rgba(0, 0, 0, .12) 84%, #000 100%
  );
  mask-image: radial-gradient(
    ellipse var(--tutorial-hole-x, 1px) var(--tutorial-hole-y, 1px)
    at var(--tutorial-x, 50%) var(--tutorial-y, 50%),
    transparent 0 72%, rgba(0, 0, 0, .12) 84%, #000 100%
  );
  content: '';
  pointer-events: none;
}

#game-frame.tutorial-active button,
#game-frame.tutorial-active [role="button"],
#game-frame.tutorial-active a,
#game-frame.tutorial-active input,
#game-frame.tutorial-active select,
#game-frame.tutorial-active textarea,
#game-frame.tutorial-active [tabindex],
#game-frame.spell-tutorial-active button,
#game-frame.spell-tutorial-active [role="button"],
#game-frame.spell-tutorial-active a,
#game-frame.spell-tutorial-active input,
#game-frame.spell-tutorial-active select,
#game-frame.spell-tutorial-active textarea,
#game-frame.spell-tutorial-active [tabindex] {
  pointer-events: none !important;
}

/* The unlock dialog precedes the guided target step. Its Continue button
   must be clickable while the original tutorial's global input lock is on. */
#game-frame.tutorial-active #tutorial-unlock-continue,
#game-frame.spell-tutorial-active #tutorial-unlock-continue,
#game-frame.tutorial-prestige #prestige-open {
  pointer-events: auto !important;
}

#tutorial-unlock-continue > span {
  pointer-events: none;
}

#game-frame.tutorial-soul #soul-open,
#game-frame.tutorial-mine #mine-open,
#game-frame.tutorial-tower #tower-open,
#game-frame.tutorial-shop #shop-open,
#game-frame.tutorial-workshop-tower #tower-open,
#game-frame.tutorial-workshop-buy [data-workshop-card-action],
#game-frame.tutorial-workshop-place [data-workshop-card-action],
#game-frame.tutorial-active #rune-open,
#game-frame.spell-tutorial-active #rune-open,
#game-frame.tutorial-rune #rune-close,
#game-frame.tutorial-rune .rune-drag-handle[data-rune-select="multishot"],
#game-frame.tutorial-rune [data-rune-select="multishot"],
#game-frame.tutorial-rune [data-rune-slot],
#game-frame.spell-tutorial-active.rune-open #rune-screen button { 
  pointer-events: auto !important;
}

@media (prefers-reduced-motion: reduce) {
  #progress-tutorial::before {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
}