/* Important declarations in this layer outrank Salient's unlayered rules.
   Enable only once JS has positioned the visual. No HTML ID or runtime CSS. */
@layer crida-cursor {
  @media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
    html[data-crida-cursor="enabled"],
    html[data-crida-cursor="enabled"] body,
    html[data-crida-cursor="enabled"] body *,
    html[data-crida-cursor="enabled"] body *::before,
    html[data-crida-cursor="enabled"] body *::after {cursor:none!important}
    html[data-crida-cursor="enabled"] :is(input:not([type]),input[type="text"],input[type="email"],input[type="tel"],input[type="url"],input[type="search"],input[type="password"],input[type="number"],textarea,[contenteditable]:not([contenteditable="false"])),
    html[data-crida-cursor="enabled"] [contenteditable]:not([contenteditable="false"]) * {cursor:text!important}
  }
}
/* crida studio — one global visual cursor */
@media (hover:hover) and (pointer:fine) {
  .crida-cursor-tail,
  .crida-cursor-a,
  .crida-cursor-b,
  .crida-cursor-c,
  .crida-cursor-dot {
    position:fixed;
    left:0;
    top:0;
    pointer-events:none!important;
    opacity:0;
    transform:translate3d(-50%,-50%,0);
    will-change:transform,opacity;
    mix-blend-mode:screen;
  }

  .crida-cursor-tail {
    z-index:2147483000;
    width:min(18vw,230px);
    aspect-ratio:1;
    border-radius:50%;
    background:rgba(205,227,255,.032);
    filter:blur(62px);
  }

  .crida-cursor-a {
    z-index:2147483001;
    width:min(38vw,520px);
    aspect-ratio:1;
    border-radius:50%;
    background:rgba(226,239,255,.045);
    filter:blur(74px);
  }

  .crida-cursor-b {
    z-index:2147483002;
    width:min(20vw,260px);
    aspect-ratio:1;
    border-radius:50%;
    background:rgba(255,255,255,.075);
    filter:blur(52px);
  }

  .crida-cursor-c {
    z-index:2147483003;
    width:min(9vw,120px);
    aspect-ratio:1;
    border-radius:50%;
    background:rgba(235,244,255,.110);
    filter:blur(34px);
  }

  .crida-cursor-dot {
    z-index:2147483004;
    width:18px;
    height:18px;
    border-radius:48% 52% 58% 42% / 54% 46% 54% 46%;
    background:
      radial-gradient(circle at 46% 44%,
        rgba(255,255,255,.64) 0%,
        rgba(239,247,255,.29) 22%,
        rgba(205,231,255,.12) 46%,
        rgba(255,255,255,0) 72%);
    filter:blur(.7px);
    box-shadow:
      0 0 10px rgba(255,255,255,.15),
      0 0 24px rgba(201,229,255,.10),
      0 0 46px rgba(178,212,255,.05);
    animation:cridaCursorMorph 5.8s ease-in-out infinite;
  }

  .crida-cursor-dot::before {
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:7px;
    height:7px;
    border-radius:44% 56% 48% 52% / 58% 42% 56% 44%;
    transform:translate(-50%,-50%);
    background:rgba(255,255,255,.28);
    filter:blur(2px);
    box-shadow:
      0 0 9px rgba(255,255,255,.17),
      0 0 20px rgba(220,237,255,.11);
    animation:cridaCursorCore 3.9s ease-in-out infinite;
  }

  .crida-cursor-dot::after {
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:34px;
    height:34px;
    border-radius:50%;
    transform:translate(-50%,-50%) scale(.82);
    background:rgba(214,234,255,.028);
    filter:blur(7px);
    opacity:.7;
    box-shadow:
      0 0 22px rgba(219,237,255,.06),
      0 0 42px rgba(191,220,255,.035);
    animation:cridaCursorBreath 4.6s ease-in-out infinite;
  }

  /* Keep the visual cursor above every site overlay. Ona's feedback layer also
     reaches the browser z-index ceiling, so it is held one level below while
     the cursor remains non-interactive. DOM order preserves dot-over-glow. */
  .crida-cursor-tail,
  .crida-cursor-a,
  .crida-cursor-b,
  .crida-cursor-c,
  .crida-cursor-dot {
    z-index:2147483647!important;
  }

  .ona-feedback {
    z-index:2147483646!important;
  }

  @keyframes cridaCursorMorph {
    0%,100% {border-radius:48% 52% 58% 42% / 54% 46% 54% 46%;transform:translate3d(-50%,-50%,0) rotate(0deg) scale(.96)}
    33% {border-radius:58% 42% 47% 53% / 44% 56% 43% 57%;transform:translate3d(-50%,-50%,0) rotate(8deg) scale(1.04)}
    66% {border-radius:43% 57% 54% 46% / 58% 42% 55% 45%;transform:translate3d(-50%,-50%,0) rotate(-6deg) scale(.99)}
  }

  @keyframes cridaCursorCore {
    0%,100% {opacity:.42;transform:translate(-50%,-50%) scale(.88)}
    45% {opacity:.72;transform:translate(-50%,-50%) scale(1.08)}
    72% {opacity:.34;transform:translate(-50%,-50%) scale(.95)}
  }

  @keyframes cridaCursorBreath {
    0%,100% {transform:translate(-50%,-50%) scale(.78);opacity:.28}
    48% {transform:translate(-50%,-50%) scale(1.08);opacity:.62}
    72% {transform:translate(-50%,-50%) scale(.92);opacity:.40}
  }
}

html:not([data-crida-cursor="enabled"]) .crida-cursor-dot,
html:not([data-crida-cursor="enabled"]) .crida-cursor-dot::before,
html:not([data-crida-cursor="enabled"]) .crida-cursor-dot::after {animation-play-state:paused}

@media (hover:none), (pointer:coarse), (prefers-reduced-motion:reduce) {
  .crida-cursor-tail,
  .crida-cursor-a,
  .crida-cursor-b,
  .crida-cursor-c,
  .crida-cursor-dot {display:none!important}
}
