/* Centered Amber × Crimson Ring Pulse cursor.
   The pointer sits completely inside the inner ring; clicks create a visible outward ripple. */
@media (hover: hover) and (pointer: fine) {
  html.yb-ring-cursor-enabled,
  html.yb-ring-cursor-enabled body,
  html.yb-ring-cursor-enabled body * {
    cursor: none !important;
  }

  html.yb-ring-cursor-enabled input:not([type="range"]),
  html.yb-ring-cursor-enabled textarea,
  html.yb-ring-cursor-enabled [contenteditable="true"] {
    cursor: text !important;
  }

  .yb-ring-cursor {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2147483647;
    width: 48px;
    height: 48px;
    opacity: 0;
    pointer-events: none !important;
    user-select: none;
    contain: layout style;
    will-change: transform, opacity;
    transition: opacity 130ms ease;
  }

  html.yb-ring-cursor-visible .yb-ring-cursor { opacity: 1; }
  .yb-ring-cursor__svg { display: block; width: 48px; height: 48px; overflow: visible; }

  .yb-ring-cursor__outer,
  .yb-ring-cursor__inner,
  .yb-ring-cursor__ripple {
    fill: none;
    transform-box: fill-box;
    transform-origin: center;
  }

  .yb-ring-cursor__outer {
    stroke: #D51D3E;
    stroke-width: 1.45;
    opacity: .88;
    filter: drop-shadow(0 0 2.5px rgba(213,29,62,.66));
    animation: yb-amber-crimson-outer 2s ease-in-out infinite;
  }

  .yb-ring-cursor__inner {
    stroke: #FFB52F;
    stroke-width: 1.55;
    opacity: .98;
    filter: drop-shadow(0 0 3px rgba(255,181,47,.68));
    animation: yb-amber-crimson-inner 2s ease-in-out infinite;
  }

  .yb-ring-cursor__core {
    fill: #FFE29A;
    filter: drop-shadow(0 0 2.5px rgba(255,181,47,.82));
  }

  .yb-ring-cursor__pointer-shadow {
    fill: #74142E;
    opacity: .62;
    transform: translate(.4px, .55px);
  }

  .yb-ring-cursor__pointer {
    fill: url(#yb-cursor-amber-crimson);
    stroke: url(#yb-cursor-edge-crimson);
    stroke-width: 1.05;
    stroke-linejoin: round;
    filter: url(#yb-cursor-soft-glow) drop-shadow(0 1px 1.5px rgba(91,9,29,.42));
  }

  .yb-ring-cursor__ripple {
    stroke: #FFB52F;
    stroke-width: 1.35;
    opacity: 0;
  }

  html.yb-ring-cursor-hover .yb-ring-cursor__outer {
    opacity: 1;
    stroke-width: 1.8;
  }
  html.yb-ring-cursor-hover .yb-ring-cursor__inner {
    stroke-width: 1.9;
  }
  html.yb-ring-cursor-pressed .yb-ring-cursor__pointer {
    filter: url(#yb-cursor-soft-glow) drop-shadow(0 0 5px rgba(255,79,65,.72));
  }

  .yb-ring-cursor--click .yb-ring-cursor__ripple--one {
    animation: yb-cursor-ripple 640ms cubic-bezier(.15,.72,.25,1) both;
  }
  .yb-ring-cursor--click .yb-ring-cursor__ripple--two {
    animation: yb-cursor-ripple 720ms cubic-bezier(.15,.72,.25,1) 100ms both;
  }
  .yb-ring-cursor--click .yb-ring-cursor__outer {
    animation: yb-amber-crimson-click 520ms cubic-bezier(.16,.78,.24,1) both;
  }
  .yb-ring-cursor--click .yb-ring-cursor__inner {
    animation: yb-amber-crimson-click-inner 460ms cubic-bezier(.16,.78,.24,1) both;
  }

  @keyframes yb-amber-crimson-outer {
    0%, 100% { transform: scale(.98); opacity: .74; }
    50% { transform: scale(1.035); opacity: 1; }
  }
  @keyframes yb-amber-crimson-inner {
    0%, 100% { transform: scale(1.015); opacity: .95; }
    50% { transform: scale(.96); opacity: .78; }
  }
  @keyframes yb-amber-crimson-click {
    0% { transform: scale(.9); opacity: 1; stroke-width: 2.1; }
    100% { transform: scale(1.38); opacity: 0; stroke-width: .7; }
  }
  @keyframes yb-amber-crimson-click-inner {
    0% { transform: scale(.94); opacity: 1; }
    100% { transform: scale(1.23); opacity: 0; }
  }
  @keyframes yb-cursor-ripple {
    0% { transform: scale(.55); opacity: .88; stroke-width: 1.45; }
    100% { transform: scale(2.5); opacity: 0; stroke-width: .55; }
  }
}

@media (prefers-reduced-motion: reduce) {
  .yb-ring-cursor { transition: none !important; }
  .yb-ring-cursor__outer,
  .yb-ring-cursor__inner { animation: none !important; }
  .yb-ring-cursor--click .yb-ring-cursor__outer,
  .yb-ring-cursor--click .yb-ring-cursor__inner,
  .yb-ring-cursor--click .yb-ring-cursor__ripple { animation: none !important; }
}
