/* ========================================================================
   site cursor + extras
   ======================================================================== */

.site-cursor {
  position: fixed;
  top: 0; left: 0;
  pointer-events: none;
  z-index: 9999;
  mix-blend-mode: difference;
}
@media (hover: none) { .site-cursor { display: none; } }

.site-cursor .dot,
.site-cursor .ring {
  position: fixed;
  top: 0; left: 0;
  border-radius: 50%;
  pointer-events: none;
}
.site-cursor .dot {
  width: 6px; height: 6px;
  background: #C9A96E;
  transform: translate(-50%, -50%);
}
.site-cursor .ring {
  width: 32px; height: 32px;
  border: 1px solid rgba(245, 242, 236, 0.6);
  transform: translate(-50%, -50%);
  transition: width .25s, height .25s, border-color .25s, background .25s;
}
.site-cursor.hover .ring {
  width: 56px; height: 56px;
  border-color: #C9A96E;
  background: rgba(201, 169, 110, 0.1);
}
.site-cursor.hide { opacity: 0; }
* { cursor: auto; } /* keep native cursor visible alongside (more usable than hiding) */

/* override on big interactive heroes */
[data-cursor-hide] * { cursor: none !important; }

/* SVG line draw animation */
@keyframes draw-line {
  to { stroke-dashoffset: 0; }
}
.draw {
  stroke-dasharray: var(--len, 1000);
  stroke-dashoffset: var(--len, 1000);
}
.reveal.in .draw,
.draw.in {
  animation: draw-line 2s cubic-bezier(.7,0,.2,1) forwards;
  animation-delay: var(--reveal-delay, 0ms);
}

/* image-slot tweaks for our site */
image-slot {
  --slot-bg: rgba(10, 31, 61, 0.06);
  --slot-fg: var(--navy);
}
