/* A small living brand emblem, with blue eyes and soft water-like ripples.
   Progressive enhancement: without both CSS and JS, the OS cursor remains. */
.hexa-cursor, .hexa-cursor-ripples { display: none; }
.hexa-cursor[hidden], .hexa-cursor-ripples[hidden] { display: none !important; }

@media (any-hover: hover) and (any-pointer: fine) and (forced-colors: none) {
  .hexa-cursor, .hexa-cursor-ripples {
    --hexa-cursor-ready: 1;
    --cursor-edge: #e4e8dd;
    --cursor-light: #e9f7ff;
    --cursor-blue: #31b7f2;
    --cursor-face: #030c16d9;
    position: fixed;
    top: 0;
    left: 0;
    width: 44px;
    height: 44px;
    z-index: 2147483647;
    display: block;
    pointer-events: none;
    user-select: none;
    contain: layout style;
    will-change: transform;
  }
  .hexa-cursor-ripples { z-index: 2147483646; }
  .hexa-cursor, .hexa-cursor *, .hexa-cursor-ripples, .hexa-cursor-ripples * { pointer-events: none !important; }
  html.hexa-cursor-on, html.hexa-cursor-on * { cursor: none !important; }
  .hexa-cursor svg,
  .hexa-cursor-ripples svg,
  .hexa-cursor__ring {
    position: absolute;
    inset: 0;
    width: 44px;
    height: 44px;
    overflow: visible;
    fill: none;
    transform-origin: center;
  }
  .hexa-cursor__ring {
    transform: scale(1);
    transition: transform 180ms cubic-bezier(.2,.7,.3,1);
  }
  .hexa-cursor__aura {
    position: absolute;
    inset: -16px;
    border-radius: 50%;
    background: radial-gradient(circle, #1ca4df2b 0, #1785bc19 34%, #1379b20b 52%, transparent 72%);
    opacity: .7;
    transition: opacity 220ms ease, transform 220ms ease;
  }
  .hexa-cursor__core { filter: drop-shadow(0 0 1px #02080ee6); }
  .hexa-cursor__shell {
    fill: var(--cursor-face);
    stroke: var(--cursor-edge);
    stroke-width: 2.3;
    stroke-linejoin: round;
    transition: stroke 180ms ease;
  }
  .hexa-cursor__halo {
    stroke: var(--cursor-blue);
    stroke-width: 4;
    filter: blur(5px);
    opacity: .4;
    transition: opacity 180ms ease;
  }
  .hexa-cursor__eyes {
    fill: var(--cursor-blue);
    filter: drop-shadow(0 0 1.7px #27aeed99);
    transform-origin: 24px 24px;
  }
  .hexa-cursor__ripple {
    opacity: 0;
    stroke: var(--cursor-blue);
    stroke-width: 1.05;
    filter: blur(.35px) drop-shadow(0 0 2px #249fda55);
    stroke-linejoin: round;
  }
  .hexa-cursor[data-state="hover"] .hexa-cursor__ring { transform: scale(1.08); }
  .hexa-cursor[data-state="hover"] .hexa-cursor__shell,
  .hexa-cursor[data-state="press"] .hexa-cursor__shell { stroke: var(--cursor-light); }
  .hexa-cursor[data-state="hover"] .hexa-cursor__halo { opacity: .58; }
  .hexa-cursor[data-state="hover"] .hexa-cursor__aura { opacity: 1; transform: scale(1.08); }
  .hexa-cursor[data-state="press"] .hexa-cursor__ring { transform: scale(.96); }
  .hexa-cursor.is-still * { transition: none; }
  .hexa-cursor.is-still .hexa-cursor__ripple { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .hexa-cursor *, .hexa-cursor-ripples * { animation: none !important; transition: none !important; }
  .hexa-cursor-ripples { display: none; }
}
