/* SARIE_CURSOR_CUSTOMIZER_V1 */
.sarie-custom-cursor,
.sarie-custom-cursor-fx {
  display: none;
}

@media (hover: hover) and (pointer: fine) {
  html.sarie-custom-cursor-active:not(.sarie-custom-cursor-native),
  html.sarie-custom-cursor-active:not(.sarie-custom-cursor-native) body,
  html.sarie-custom-cursor-active:not(.sarie-custom-cursor-native) body * {
    cursor: none !important;
  }

  .sarie-custom-cursor {
    --sarie-cursor-width: 58px;
    --sarie-cursor-offset-x: -10px;
    --sarie-cursor-offset-y: -10px;
    --sarie-cursor-scale: 1;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2147483645;
    display: block;
    width: var(--sarie-cursor-width);
    height: var(--sarie-cursor-width);
    opacity: 0;
    pointer-events: none;
    user-select: none;
    transform: translate3d(-120px, -120px, 0);
    transition: opacity 150ms ease;
    contain: layout style;
    will-change: transform, opacity;
  }

  html.sarie-custom-cursor-ready.sarie-custom-cursor-visible:not(.sarie-custom-cursor-native) .sarie-custom-cursor {
    opacity: 1;
  }

  .sarie-custom-cursor__halo {
    position: absolute;
    inset: 12%;
    border-radius: 999px;
    background: radial-gradient(circle, rgba(255, 218, 236, .45) 0 24%, rgba(239, 134, 162, .22) 45%, rgba(239, 134, 162, 0) 74%);
    opacity: .7;
    transform: scale(.8);
    transition: transform 180ms ease, opacity 180ms ease;
  }

  .sarie-custom-cursor__img {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 9px 13px rgba(170, 55, 96, .18));
    transform: scale(var(--sarie-cursor-scale));
    transform-origin: 35% 25%;
    transition: transform 120ms ease, filter 160ms ease;
  }

  .sarie-custom-cursor.is-pressed .sarie-custom-cursor__img,
  .sarie-custom-cursor.is-grabbing .sarie-custom-cursor__img {
    --sarie-cursor-scale: .92;
    filter: drop-shadow(0 4px 7px rgba(170, 55, 96, .22));
  }

  .sarie-custom-cursor.is-image-zoom .sarie-custom-cursor__halo,
  .sarie-custom-cursor.is-clickable .sarie-custom-cursor__halo {
    opacity: .94;
    transform: scale(1.05);
  }

  .sarie-custom-cursor-fx {
    position: fixed;
    inset: 0;
    z-index: 2147483644;
    display: block;
    overflow: hidden;
    pointer-events: none;
    user-select: none;
    contain: strict;
  }

  .sarie-custom-cursor-fx__ring,
  .sarie-custom-cursor-fx__spark {
    position: fixed;
    top: var(--sarie-fx-y, -100px);
    left: var(--sarie-fx-x, -100px);
    pointer-events: none;
    will-change: transform, opacity;
  }

  .sarie-custom-cursor-fx__ring {
    width: 16px;
    height: 16px;
    border: 2px solid rgba(239, 134, 162, .9);
    border-radius: 999px;
    box-shadow: 0 0 0 5px rgba(255, 231, 137, .18), 0 0 18px rgba(239, 134, 162, .32);
    transform: translate(-50%, -50%) scale(.35);
    opacity: 0;
    animation: sarieCursorRing 520ms cubic-bezier(.16,1,.3,1) forwards;
  }

  .sarie-custom-cursor-fx__spark {
    width: 12px;
    height: 12px;
    color: var(--sarie-fx-color, #ffe789);
    font: 900 12px/1 Arial, sans-serif;
    text-shadow: 0 0 8px rgba(239, 134, 162, .35);
    transform: translate(-50%, -50%) scale(.2) rotate(0deg);
    opacity: 0;
    animation: sarieCursorSpark 560ms cubic-bezier(.16,1,.3,1) forwards;
  }

  @keyframes sarieCursorRing {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.3); }
    18% { opacity: .9; }
    100% { opacity: 0; transform: translate(-50%, -50%) scale(2.15); }
  }

  @keyframes sarieCursorSpark {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(.2) rotate(0deg); }
    16% { opacity: 1; }
    100% { opacity: 0; transform: translate(calc(-50% + var(--sarie-fx-tx, 0px)), calc(-50% + var(--sarie-fx-ty, -22px))) scale(1.08) rotate(var(--sarie-fx-rotate, 95deg)); }
  }
}

@media (prefers-reduced-motion: reduce), (forced-colors: active) {
  html.sarie-custom-cursor-active,
  html.sarie-custom-cursor-active body,
  html.sarie-custom-cursor-active body * {
    cursor: auto !important;
  }
  .sarie-custom-cursor,
  .sarie-custom-cursor-fx {
    display: none !important;
  }
}
