/* Spectra Premium Insect Cursor v2
   Brand colour: #0B8FC3
   Desktop pointer only. No effect on touch devices.
*/
:root { --spectra-blue:#0B8FC3; }

@media (min-width:769px) and (pointer:fine) {
  html.spectra-cursor-on,
  html.spectra-cursor-on body,
  html.spectra-cursor-on body * {
    cursor:none !important;
  }

  #spectra-cursor {
    position:fixed;
    left:0; top:0;
    width:64px; height:64px;
    pointer-events:none;
    z-index:2147483647;
    opacity:0;
    transform:translate3d(-100px,-100px,0);
    will-change:transform;
    transition:opacity .2s ease, width .22s ease, height .22s ease;
  }
  #spectra-cursor.show { opacity:1; }
  #spectra-cursor.hover { width:78px; height:78px; }

  .spectra-bug {
    width:100%; height:100%;
    display:block;
    filter:drop-shadow(0 7px 13px rgba(11,143,195,.28));
    animation:bugFloat 2.4s ease-in-out infinite;
  }
  .spectra-wing {
    transform-box:fill-box;
    transform-origin:center;
    animation:wingBeat .34s ease-in-out infinite alternate;
  }
  .spectra-wing.r { animation-delay:-.17s; }

  .spectra-ring {
    position:fixed;
    width:48px; height:48px;
    border:1.5px solid rgba(11,143,195,.48);
    border-radius:50%;
    pointer-events:none;
    z-index:2147483645;
    transform:translate(-50%,-50%) scale(.65);
    opacity:.75;
    animation:ringOut .7s cubic-bezier(.2,.7,.2,1) forwards;
  }

  .spectra-dot {
    position:fixed;
    width:4px; height:4px;
    border-radius:50%;
    background:#0B8FC3;
    pointer-events:none;
    z-index:2147483645;
    transform:translate(-50%,-50%);
    animation:dotFade .65s ease-out forwards;
  }

  .spectra-spark {
    position:fixed;
    width:6px; height:6px;
    border-radius:50%;
    background:#0B8FC3;
    box-shadow:0 0 10px rgba(11,143,195,.4);
    pointer-events:none;
    z-index:2147483645;
    transform:translate(-50%,-50%);
    animation:sparkFly .72s cubic-bezier(.15,.75,.2,1) forwards;
  }

  .spectra-mini {
    position:fixed;
    width:22px; height:22px;
    pointer-events:none;
    z-index:2147483646;
    transform:translate(-50%,-50%);
    animation:miniFly 1s cubic-bezier(.18,.75,.18,1) forwards;
  }

  @keyframes bugFloat {
    0%,100% { transform:translateY(0) rotate(-3deg); }
    50% { transform:translateY(-4px) rotate(3deg); }
  }
  @keyframes wingBeat {
    from { transform:scaleX(.68) rotate(-5deg); opacity:.55; }
    to { transform:scaleX(1) rotate(5deg); opacity:.95; }
  }
  @keyframes ringOut {
    to { transform:translate(-50%,-50%) scale(1.7); opacity:0; }
  }
  @keyframes dotFade {
    to { transform:translate(-50%,-50%) scale(.1); opacity:0; }
  }
  @keyframes sparkFly {
    to {
      transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(.1);
      opacity:0;
    }
  }
  @keyframes miniFly {
    to {
      transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) rotate(var(--rot)) scale(.35);
      opacity:0;
    }
  }
}

@media (max-width:768px),(pointer:coarse) {
  #spectra-cursor,.spectra-ring,.spectra-dot,.spectra-spark,.spectra-mini { display:none!important; }
}
