@media (pointer: fine) and (prefers-reduced-motion: no-preference) and (forced-colors: none) {
  html.l2-custom-cursor, html.l2-custom-cursor * { cursor: none !important; }
  #cur-ring, #cur-dot {
    position: fixed; top: 0; left: 0; border-radius: 50%; pointer-events: none;
    z-index: 9999; will-change: transform, width, height, opacity;
  }
  #cur-ring {
    width: 34px; height: 34px; background: transparent;
    transform: translate(-50%, -50%);
    transition: width .28s cubic-bezier(.2,.8,.2,1), height .28s cubic-bezier(.2,.8,.2,1);
  }
  #cur-ring-face {
    position: absolute; inset: 0; border-radius: 50%; border: 1.5px solid #525b60;
    background: transparent;
    transition: border-color .25s ease, background .25s ease, border-radius .25s ease,
      border-style .15s ease, opacity .2s ease;
  }
  /* Kept for state compatibility; the normal red dot is intentionally removed. */
  #cur-dot { width: 0; height: 0; opacity: 0; }
  #cur-icon {
    position: fixed; top: 0; left: 0; width: 16px; height: 16px; pointer-events: none;
    z-index: 10000; transform: translate(-50%, -50%); color: #ff2b12;
    opacity: 1; transition: opacity .2s ease, color .2s ease, transform .2s ease;
    will-change: transform, opacity;
  }
  #cur-icon svg { width: 100%; height: 100%; display: block; }
  body.state-link #cur-ring { width: 58px; height: 58px; }
  body.state-link #cur-ring-face { border-color: #ff2b12; background: rgba(255,43,18,.12); }
  body.state-link #cur-icon, body.state-text #cur-icon, body.state-drag #cur-icon { opacity: 0; }
  body.state-text #cur-ring { width: 2px; height: 26px; }
  body.state-text #cur-ring-face { border-radius: 2px; border-color: #ff6147; background: #ff6147; }
  body.state-drag #cur-ring { width: 46px; height: 46px; }
  body.state-drag #cur-ring-face { border-style: dashed; border-color: #ff6147; background: rgba(255,97,71,.08); }
  body.state-press #cur-ring { width: 30px; height: 30px; }
  body.state-loading #cur-ring { width: 40px; height: 40px; }
  body.state-loading #cur-ring-face { border-color: #ff2b12; border-top-color: transparent; animation: cur-spin .85s linear infinite; }
  body.state-loading #cur-icon { opacity: 1; color: #fff; }
  body.state-disabled #cur-ring-face { border-color: #9aa0a4; opacity: .5; }
  body.state-disabled #cur-icon { opacity: 1; color: #9aa0a4; }
  @keyframes cur-spin { to { transform: rotate(360deg); } }
}
@media (pointer: coarse) { #cur-ring, #cur-dot, #cur-icon { display: none !important; } }
@media (prefers-reduced-motion: reduce) {
  #cur-ring, #cur-dot, #cur-icon { display: none !important; }
  #cur-ring, #cur-ring-face, #cur-dot, #cur-icon { transition: none !important; animation: none !important; }
}
@media (forced-colors: active) { #cur-ring, #cur-dot, #cur-icon { display: none !important; } }
