/* Cursor branded with the lightning stroke from the GIFTOS wordmark. */
.giftos-lightning-cursor {
  position: fixed;
  z-index: 2147483000;
  left: 0;
  top: 0;
  width: 26px;
  height: 38px;
  background: url('cursor-bolt.svg') center / contain no-repeat;
  pointer-events: none;
  user-select: none;
  opacity: 0;
  transform: translate3d(-100px, -100px, 0);
  will-change: transform;
  filter: drop-shadow(1px 1px 0 rgba(0, 0, 0, .25));
  transition: opacity 100ms ease, filter 130ms ease;
}
.giftos-lightning-cursor.is-visible { opacity: 1; }
.giftos-lightning-cursor.is-hover { filter: drop-shadow(0 0 3px #dfff00) drop-shadow(1px 1px 0 #111); }
.giftos-lightning-cursor.is-clicking { filter: drop-shadow(0 0 6px #dfff00) drop-shadow(0 0 2px #111); }

@media (hover: hover) and (pointer: fine) {
  html.giftos-cursor-on, html.giftos-cursor-on body,
  html.giftos-cursor-on body a,
  html.giftos-cursor-on body button,
  html.giftos-cursor-on body label,
  html.giftos-cursor-on body summary,
  html.giftos-cursor-on body [role="button"] { cursor: none !important; }

  /* Editing text, selecting options and dragging elements retain native cursors. */
  html.giftos-cursor-on body input,
  html.giftos-cursor-on body textarea,
  html.giftos-cursor-on body select,
  html.giftos-cursor-on body [contenteditable="true"],
  html.giftos-cursor-on body #wpadminbar,
  html.giftos-cursor-on body #wpadminbar * { cursor: auto !important; }
}

.giftos-click-burst {
  position: fixed;
  z-index: 2147482999;
  left: 0;
  top: 0;
  width: 0;
  height: 0;
  pointer-events: none;
  user-select: none;
}
.giftos-click-burst::before {
  content: '';
  position: absolute;
  width: 13px;
  height: 13px;
  top: -7px;
  left: -7px;
  border: 2px solid #dfff00;
  border-radius: 50%;
  box-shadow: 0 0 0 1px #111, 0 0 7px rgba(223,255,0,.65);
  animation: giftos-electric-ring .39s ease-out forwards;
}
.giftos-click-burst .giftos-electric-ray {
  position: absolute;
  left: 0;
  top: -7px;
  width: 29px;
  height: 14px;
  filter: drop-shadow(0 0 2px rgba(223, 255, 0, .7));
  transform-origin: 0 50%;
  animation: giftos-electric-ray .39s cubic-bezier(.11,.71,.25,1) forwards;
  animation-delay: var(--delay, 0ms);
}
.giftos-electric-ray svg { display: block; width: 100%; height: 100%; overflow: visible; }
.giftos-electric-ray .giftos-ray-outline { fill: none; stroke: #11110f; stroke-width: 7; stroke-linecap: round; stroke-linejoin: round; }
.giftos-electric-ray .giftos-ray-core { fill: none; stroke: #dfff00; stroke-width: 3.8; stroke-linecap: round; stroke-linejoin: round; }
@keyframes giftos-electric-ring {
  0% { opacity: .95; transform: scale(.45); }
  70% { opacity: .75; }
  100% { opacity: 0; transform: scale(2.2); }
}
@keyframes giftos-electric-ray {
  0% { opacity: 0; transform: rotate(var(--angle)) translateX(0) scale(.22); }
  14% { opacity: 1; }
  56% { opacity: 1; }
  100% { opacity: 0; transform: rotate(var(--angle)) translateX(18px) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .giftos-lightning-cursor { transition: none; }
  .giftos-click-burst { display: none !important; }
}
