/* ============================================================================
   BV GUEST CURSOR — Welle 5
   ============================================================================
   Vita's virtueller Cursor: goldener Leuchtpunkt mit weichem Schein.
   Bewegt sich smooth zwischen Zielen, pulsiert beim Klick.
   ---------------------------------------------------------------------------- */

/* --- Cursor-Element ----------------------------------------------------- */
.bv-guest-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 22px;
  height: 22px;
  pointer-events: none;
  z-index: 99998;            /* über dem Portal, unter Dialogen (99999+) */
  transform: translate(-50%, -50%);
  opacity: 0;
  transition: opacity 400ms ease;
  will-change: transform, opacity;
}

.bv-guest-cursor.is-visible {
  opacity: 1;
}

/* Weicher Schein — mehrere Layer für Tiefe */
.bv-guest-cursor::before,
.bv-guest-cursor::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 50%;
  pointer-events: none;
}

/* Äusserer Halo */
.bv-guest-cursor::before {
  background: radial-gradient(
    circle,
    rgba(184, 148, 90, 0.55) 0%,
    rgba(184, 148, 90, 0.25) 30%,
    rgba(184, 148, 90, 0) 70%
  );
  transform: scale(2.6);
  filter: blur(4px);
  animation: bv-cursor-breathe 2400ms ease-in-out infinite;
}

/* Kern-Punkt */
.bv-guest-cursor::after {
  background: radial-gradient(
    circle,
    #f3d99c 0%,
    #d4ab6a 40%,
    #b8945a 80%
  );
  box-shadow:
    0 0 8px rgba(184, 148, 90, 0.8),
    0 0 16px rgba(184, 148, 90, 0.5),
    0 0 28px rgba(184, 148, 90, 0.3);
}

/* Sanftes Atmen im Ruhezustand */
@keyframes bv-cursor-breathe {
  0%, 100% { transform: scale(2.4); opacity: 0.75; }
  50%      { transform: scale(2.9); opacity: 1; }
}

/* --- Klick-Puls --------------------------------------------------------- */
.bv-guest-cursor-pulse {
  position: fixed;
  top: 0;
  left: 0;
  width: 22px;
  height: 22px;
  pointer-events: none;
  z-index: 99997;
  transform: translate(-50%, -50%);
  opacity: 0;
  border-radius: 50%;
  border: 2px solid rgba(184, 148, 90, 0.7);
  background: radial-gradient(circle, rgba(184, 148, 90, 0.3) 0%, transparent 70%);
}

.bv-guest-cursor-pulse.is-pulsing {
  animation: bv-cursor-click-pulse 700ms ease-out forwards;
}

@keyframes bv-cursor-click-pulse {
  0%   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(6); }
}

/* --- Hervorhebung des Ziel-Elements ------------------------------------ */
/* Wird temporär auf das Element gelegt, auf das der Cursor zusteuert */
.bv-guest-highlight {
  position: relative;
  transition: box-shadow 300ms ease, outline 300ms ease;
  outline: 2px solid rgba(184, 148, 90, 0.85);
  outline-offset: 4px;
  box-shadow:
    0 0 0 6px rgba(184, 148, 90, 0.15),
    0 0 24px rgba(184, 148, 90, 0.35);
  border-radius: 4px;
  z-index: 50;
}

/* --- Rollout-Animation beim Erscheinen -------------------------------- */
.bv-guest-cursor.is-entering {
  animation: bv-cursor-enter 600ms cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

@keyframes bv-cursor-enter {
  0%   { opacity: 0; transform: translate(-50%, -50%) scale(0.3); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
