/* Native cursors remain the fallback until a mouse is detected. */
.swipe-cursor { position: fixed; top: 0; left: 0; pointer-events: none; z-index: 2147483646; opacity: 0; }
.swipe-cursor-dot { width: 7px; height: 7px; border-radius: 50%; background: #2e4232; }
.swipe-cursor-ring { width: 20px; height: 20px; border: 1.5px solid #779b72; border-radius: 50%; background: rgba(160,190,146,.09); transition: width .18s ease, height .18s ease, background .18s ease, border-color .18s ease; }
.swipe-cursor-ring.is-link { width: 25px; height: 25px; background: rgba(183,204,131,.19); border-color: #9fb86e; }
.swipe-cursor-dot.is-link { background: #6e8745; }
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) and (forced-colors: none) {
  html.swipe-cursor-active, html.swipe-cursor-active * { cursor: none !important; }
  html.swipe-cursor-active .swipe-cursor-dot, html.swipe-cursor-active .swipe-cursor-ring { opacity: 1; }

}

@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  :where(a.button, button:not(:disabled):not(.native-app button), summary, .help-entry, [role="button"], [role="tab"]:not(.native-app [role="tab"])) {
    transition: scale 180ms ease, background-color 180ms ease, border-color 180ms ease, color 180ms ease;
  }
  :where(a.button, button:not(:disabled):not(.native-app button), summary, .help-entry, [role="button"], [role="tab"]:not(.native-app [role="tab"])):hover { scale: 1.015; }
  :where(a.button, button:not(:disabled):not(.native-app button), summary, .help-entry, [role="button"], [role="tab"]:not(.native-app [role="tab"])):active { scale: .99; }
}

/* Navigation feedback stays still; the cursor supplies the hover cue. */
.site-header nav a:hover, .site-footer nav a:hover { scale: 1; }
