/* A native CSS cursor plus bounded click decorations; no moving cursor layer. */
@media (hover: hover) and (pointer: fine) {
  body.yb-game-theme {
    --yb-game-cursor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2232%22%20height%3D%2232%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cdefs%3E%3Cfilter%20id%3D%22s%22%20x%3D%22-40%25%22%20y%3D%22-30%25%22%20width%3D%22180%25%22%20height%3D%22190%25%22%3E%3CfeDropShadow%20dx%3D%221%22%20dy%3D%222%22%20stdDeviation%3D%221.2%22%20flood-color%3D%22%2334424e%22%20flood-opacity%3D%22.55%22%2F%3E%3C%2Ffilter%3E%3C%2Fdefs%3E%3Cpath%20d%3D%22M5%203Q3.5%202%204%205L7.5%2026Q8%2028%2010%2026.8L26%2017Q28%2015.8%2025.8%2014.2Z%22%20fill%3D%22%23fff%22%20stroke%3D%22%23aebbc3%22%20stroke-width%3D%221%22%20stroke-linejoin%3D%22round%22%20filter%3D%22url(%23s)%22%2F%3E%3C%2Fsvg%3E") 4 3;
    --yb-game-action-cursor: var(--yb-game-cursor), pointer;
    cursor: var(--yb-game-cursor), default;
  }
  body.yb-game-theme .yb-lobby__scene-controls button:not(:disabled):not([aria-disabled="true"]) {
    cursor: var(--yb-game-action-cursor);
  }
  body.yb-game-theme :is(input:not([type]), input[type="text"], input[type="search"], input[type="email"], input[type="url"], input[type="tel"], input[type="password"], input[type="number"], textarea, [contenteditable]:not([contenteditable="false"]), [role="textbox"]) {
    --yb-game-action-cursor: text;
    cursor: text;
  }
  body.yb-game-theme input[type="range"] { --yb-game-action-cursor: auto; cursor: auto; }
  body.yb-game-theme :is(:disabled, [aria-disabled="true"], .button.disabled, button.disabled),
  body.yb-game-theme :is(:disabled, [aria-disabled="true"], .button.disabled, button.disabled) * {
    --yb-game-action-cursor: not-allowed;
    cursor: not-allowed;
  }
}

.yb-game-pointer-layer,
.yb-game-pointer-layer * { pointer-events: none !important; }
.yb-game-pointer-layer {
  position: fixed;
  z-index: 2147483647;
  inset: 0;
  overflow: hidden;
  contain: strict;
  user-select: none;
}
.yb-game-pointer-layer .yb-pointer-burst {
  position: absolute;
  display: block;
  width: 72px;
  height: 72px;
  margin: -36px 0 0 -36px;
}
.yb-game-pointer-layer .yb-pointer-disc {
  position: absolute;
  inset: 9px;
  border-radius: 50%;
  background: #5595ff;
  box-shadow: 0 0 9px #6abaff80;
  animation: yb-pointer-disc 520ms ease-out both;
}
.yb-game-pointer-layer .yb-pointer-ring {
  position: absolute;
  inset: 7px;
  border: 2px solid #f4fdff;
  border-right-color: #72e8ff;
  border-bottom-color: #92efff;
  border-radius: 50%;
  box-shadow: 0 0 5px #71ddffb3, inset 0 0 3px #c4f7ff80;
  animation: yb-pointer-ring 620ms ease-out both;
}
.yb-game-pointer-layer .yb-pointer-shard {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 8px;
  height: 9px;
  margin: -4px 0 0 -4px;
  background: #f5fdff;
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  animation: yb-pointer-shard 620ms ease-out both;
}
.yb-game-pointer-layer .yb-pointer-shard:nth-of-type(even) { background: #71e5ff; }
@keyframes yb-pointer-disc {
  0% { opacity: .95; transform: scale(.55); }
  20% { opacity: .9; transform: scale(.88); }
  65%, 100% { opacity: 0; transform: scale(1.1); }
}
@keyframes yb-pointer-ring {
  0% { opacity: 0; transform: scale(.3) rotate(-15deg); }
  16% { opacity: 1; transform: scale(.7) rotate(0deg); }
  65% { opacity: .9; transform: scale(1.05) rotate(45deg); }
  100% { opacity: 0; transform: scale(1.16) rotate(90deg); }
}
@keyframes yb-pointer-shard {
  0%, 12% { opacity: 0; transform: translate(0, 0) scale(.3) rotate(var(--shard-turn)); }
  25% { opacity: 1; }
  75% { opacity: .7; }
  100% { opacity: 0; transform: translate(var(--shard-x), var(--shard-y)) scale(.55) rotate(calc(var(--shard-turn) + 75deg)); }
}
@media (prefers-reduced-motion: reduce) {
  .yb-game-pointer-layer { display: none; }
  .yb-game-pointer-layer * { animation: none; }
}

