/* A four-color palette lens for fine pointers. */
.site-cursor {
  --cursor-base: var(--plum, #5c2341);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 2147483647;
  width: 22px;
  height: 22px;
  border: 0;
  border-radius: 50%;
  overflow: hidden;
  background: var(--cursor-base);
  opacity: 0;
  pointer-events: none;
  transform: translate3d(-50px, -50px, 0) translate(-50%, -50%);
  will-change: transform;
  isolation: isolate;
  contain: strict;
}

.site-cursor.is-visible { opacity: 1; }

.site-cursor__lens {
  position: absolute;
  inset: 0;
  overflow: hidden;
  border-radius: inherit;
  pointer-events: none;
}

.site-cursor__sample {
  max-width: none !important;
  min-width: 0 !important;
  max-height: none !important;
  min-height: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  -webkit-filter: url("#site-cursor-palette") !important;
  filter: url("#site-cursor-palette") !important;
}

.site-cursor__sample,
.site-cursor__sample * {
  animation: none !important;
  transition: none !important;
  caret-color: transparent !important;
  pointer-events: none !important;
}

.site-cursor-filters {
  position: fixed;
  width: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}

@media (hover: hover) and (pointer: fine) {
  html.cursor-enhanced,
  html.cursor-enhanced body,
  html.cursor-enhanced a,
  html.cursor-enhanced a *,
  html.cursor-enhanced summary,
  html.cursor-enhanced [role="button"],
  html.cursor-enhanced label[for] { cursor: none; }

  html.cursor-enhanced video,
  html.cursor-enhanced audio,
  html.cursor-enhanced iframe,
  html.cursor-enhanced embed,
  html.cursor-enhanced object,
  html.cursor-enhanced canvas,
  html.cursor-enhanced select { cursor: auto; }

  html.cursor-enhanced input,
  html.cursor-enhanced textarea,
  html.cursor-enhanced [contenteditable="true"] { cursor: text; }

  html.cursor-enhanced button,
  html.cursor-enhanced input[type="checkbox"],
  html.cursor-enhanced input[type="radio"],
  html.cursor-enhanced input[type="submit"],
  html.cursor-enhanced input[type="button"],
  html.cursor-enhanced input[type="reset"],
  html.cursor-enhanced input[type="file"] { cursor: pointer; }
}

/* Tracking has no easing or interpolation; reduced-motion users get the same direct pointer. */
@media (prefers-reduced-motion: reduce) {
  .site-cursor { will-change: auto; }
}

@media (forced-colors: active) {
  .site-cursor { display: none !important; }
  html.cursor-enhanced,
  html.cursor-enhanced body { cursor: auto; }
  html.cursor-enhanced a,
  html.cursor-enhanced a *,
  html.cursor-enhanced summary,
  html.cursor-enhanced [role="button"],
  html.cursor-enhanced label[for] { cursor: pointer; }
}
