/* ============================================================
   U3 — custom cursor (standalone, self-contained)
   Drop on any page: <link href="/cursor.css"> + <script src="/cursor.js">
   No token/theme dependencies. Auto-disables on touch devices.
   ============================================================ */
.has-cursor{ cursor:none; }
.has-cursor a, .has-cursor button, .has-cursor input, .has-cursor textarea,
.has-cursor label, .has-cursor select, .has-cursor [role="button"]{ cursor:none; }

.u3-cursor{ position:fixed; top:0; left:0; width:7px; height:7px; margin:-3.5px 0 0 -3.5px;
  border-radius:50%; background:#6E86FF; z-index:99999; pointer-events:none; }
.u3-cursor-ring{ position:fixed; top:0; left:0; width:34px; height:34px; margin:-17px 0 0 -17px;
  border-radius:50%; border:1.5px solid rgba(242,240,234,.5); z-index:99999; pointer-events:none;
  transition:width .22s ease, height .22s ease, margin .22s ease, background .22s ease, border-color .22s; }
.cursor-active .u3-cursor-ring{ width:56px; height:56px; margin:-28px 0 0 -28px; background:rgba(242,240,234,.10); }
.cursor-down .u3-cursor-ring{ width:24px; height:24px; margin:-12px 0 0 -12px; }

/* touch / coarse pointers: no custom cursor, restore the native one */
@media (pointer:coarse){
  .u3-cursor, .u3-cursor-ring{ display:none; }
  .has-cursor, .has-cursor a, .has-cursor button, .has-cursor input,
  .has-cursor textarea, .has-cursor label, .has-cursor select, .has-cursor [role="button"]{ cursor:auto; }
}
