/* Standard cursor elevation — when Magic Cursor is off/standard
   Law: docs/ops/2026-08-04-CURSOR-HUMAN-PATH-DOCTRINE.md
   OS cursor stays visible. Targets still get intent + press silk + residue.
   Never hides cursor. Never paints 4L/ring.
   Colours/durations: os-tokens + ss-motion only (no raw hex/ms). */

html.mm-cursor-standard,
html:not(.mc-on) {
  /* no cursor:none */
}

/* Intent near-target (MC sets data-magic-near; standard intent can share) */
[data-magic-near],
[data-cursor-intent] {
  outline: 1px solid color-mix(in oklch, var(--mc-accent, var(--indigo-ink)) 35%, transparent);
  outline-offset: 3px;
  transition:
    outline-color var(--ss-dur-hover) var(--ss-ease),
    outline-offset var(--ss-dur-hover) var(--ss-ease),
    transform var(--ss-dur-press) var(--ss-ease);
}

/* Press feedback — transform only */
[data-magic-near]:active,
[data-cursor-intent]:active,
a[data-magic-target]:active,
button[data-magic-target]:active {
  transform: scale(0.98);
}

/* Residue after magic exit or self-seat */
.mm-cursor-residue {
  outline: 2px solid color-mix(in oklch, var(--mc-accent, var(--indigo-ink)) 45%, transparent);
  outline-offset: 4px;
  animation: mm-residue-fade var(--ss-dur-in) var(--ss-ease) forwards;
}
@keyframes mm-residue-fade {
  from { outline-color: color-mix(in oklch, var(--mc-accent, var(--indigo-ink)) 45%, transparent); }
  to { outline-color: transparent; outline-offset: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  [data-magic-near],
  [data-cursor-intent],
  .mm-cursor-residue {
    transition: none;
    animation: none;
  }
  [data-magic-near]:active,
  [data-cursor-intent]:active {
    transform: none;
  }
}
