/* ========================================================================== 
   BEARS NET — Custom cursor
   Fine-pointer desktops only. JavaScript adds .has-custom-cursor after the
   same capability and reduced-motion checks have passed.
   ========================================================================== */
.custom-cursor__dot,
.custom-cursor__ring {
  display: none;
}

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

  /* Keep the native cursor where precise text/form interaction matters. */
  html.has-custom-cursor :is(
    input,
    textarea,
    select,
    option,
    [contenteditable]:not([contenteditable="false"]),
    [contenteditable]:not([contenteditable="false"]) *,
    [data-cursor-native],
    [data-cursor-native] *
  ) {
    cursor: auto !important;
  }

  .custom-cursor__dot,
  .custom-cursor__ring {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2147483646;
    display: block;
    pointer-events: none;
    opacity: 0;
    transform: translate3d(-100px, -100px, 0) translate(-50%, -50%);
    transition: opacity .18s ease;
    will-change: transform, opacity;
  }

  .custom-cursor__dot.is-visible,
  .custom-cursor__ring.is-visible {
    opacity: 1;
  }

  .custom-cursor__dot {
    width: 4px;
    height: 4px;
  }

  .custom-cursor__dot-mark {
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--c-text, #111b2e);
    box-shadow: 0 0 0 .5px rgba(255, 255, 255, .45);
    transform: scale(1);
    transition: background-color .2s ease, box-shadow .2s ease, opacity .2s ease, transform .24s cubic-bezier(.22, 1, .36, 1);
  }

  .custom-cursor__ring {
    width: 62px;
    height: 30px;
  }

  .custom-cursor__ring-visual {
    position: relative;
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    border-radius: 999px;
    background: var(--c-blue, #1a56db);
    box-shadow: 0 5px 16px rgba(26, 86, 219, .18);
    opacity: 0;
    transform: scale(.68);
    transition: opacity .18s ease, transform .28s cubic-bezier(.22, 1, .36, 1);
    will-change: transform, opacity;
  }

  .custom-cursor__label {
    display: block;
    max-width: 56px;
    overflow: hidden;
    color: #fff;
    font-family: var(--f-en, 'Inter', sans-serif);
    font-size: 9px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .1em;
    text-align: center;
    text-overflow: ellipsis;
    text-transform: uppercase;
    white-space: nowrap;
    transform: translateY(-.25px);
  }

  .custom-cursor__dot.is-hovering .custom-cursor__dot-mark {
    background: var(--c-blue, #1a56db);
    box-shadow: none;
    transform: scale(3);
  }

  .custom-cursor__dot.has-label .custom-cursor__dot-mark {
    opacity: 0;
    transform: scale(.5);
  }

  .custom-cursor__ring.has-label .custom-cursor__ring-visual {
    opacity: 1;
    transform: scale(1);
  }

  .custom-cursor__label::after {
    content: "\2197";
    display: inline-block;
    margin-left: 4px;
    font-size: 10px;
    transform: translateY(-.25px);
  }

  .custom-cursor__dot.is-pressed .custom-cursor__dot-mark {
    transform: scale(.72);
    transition-duration: .12s;
  }

  .custom-cursor__dot.is-hovering.is-pressed .custom-cursor__dot-mark {
    transform: scale(2.2);
  }

  .custom-cursor__ring.has-label.is-pressed .custom-cursor__ring-visual {
    transform: scale(.86);
    transition-duration: .12s;
  }
}

@media (prefers-reduced-motion: reduce) {
  .custom-cursor__dot,
  .custom-cursor__ring {
    display: none !important;
  }

  html.has-custom-cursor,
  html.has-custom-cursor body,
  html.has-custom-cursor body * {
    cursor: revert !important;
  }
}
