@media (hover:hover) and (pointer:fine) {
  html.pc-enabled,
  html.pc-enabled body,
  html.pc-enabled body *:not(input):not(textarea):not(select):not([contenteditable="true"]) { cursor:none!important }
  html.pc-enabled input,
  html.pc-enabled textarea,
  html.pc-enabled [contenteditable="true"] { cursor:text!important }
  html.pc-enabled select { cursor:default!important }
  html.pc-enabled .cursor-dot { display:none!important }
  html.pc-enabled.pc-native,
  html.pc-enabled.pc-native body,
  html.pc-enabled.pc-native body *:not(input):not(textarea):not(select):not([contenteditable="true"]) { cursor:auto!important }
  html.pc-enabled.pc-native input,
  html.pc-enabled.pc-native textarea { cursor:text!important }
  .project-cursor { position:fixed;left:0;top:0;z-index:2147483647;pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .16s,width .18s,height .18s,background .18s;display:grid;place-items:center;box-sizing:border-box }
  .project-cursor.is-visible { opacity:1 }
  .project-cursor.is-text { opacity:0 }
  .project-cursor span { transition:opacity .15s }

  /* Ink: an imperfect vermilion seal rather than a generic circle. */
  .project-cursor.pc-ink { width:28px;height:28px;color:#e5362c;background:#191715;border:2px solid currentColor;border-radius:1px;box-shadow:2px 2px 0 rgba(25,23,21,.75);transform:translate(-50%,-50%) rotate(-7deg) }
  .project-cursor.pc-ink span { font:700 20px/1 Georgia,serif;opacity:1;transform:translateY(-1px) }
  .project-cursor.pc-ink.is-action { width:43px;height:43px;color:#fff2df;background:#d92d25;border-color:#fff2df;box-shadow:3px 3px 0 #191715 }
  .project-cursor.pc-ink.is-action span { font-size:30px }

  /* Cloth & Curse: the sword tip is the pointer hotspot. */
  .project-cursor.pc-knight { width:44px;height:44px;transform:translate(-5px,-5px) }
  .project-cursor.pc-knight svg { position:absolute;inset:0;width:44px;height:44px;overflow:visible;filter:drop-shadow(1px 2px 2px rgba(0,0,0,.65)) }
  .project-cursor.pc-knight span { position:absolute;left:43px;top:8px;opacity:0;width:max-content;background:#1b1a17;color:#e4d4ab;border:1px solid #b29a66;padding:8px 10px;font:700 10px/1 Georgia,serif;letter-spacing:.12em;transform:translateX(-5px) }
  .project-cursor.pc-knight.is-action span { opacity:1;transform:translateX(0) }

  /* System 003: a drafting crosshair with one signal pixel. */
  .project-cursor.pc-system { width:22px;height:22px;color:#fff;mix-blend-mode:difference;background:linear-gradient(currentColor,currentColor) center/1px 100% no-repeat,linear-gradient(currentColor,currentColor) center/100% 1px no-repeat }
  .project-cursor.pc-system::before { content:'';position:absolute;width:5px;height:5px;background:#ff4f18;box-shadow:0 0 0 1px #f8f8f5 }
  .project-cursor.pc-system span { opacity:0;font:700 16px/1 monospace }
  .project-cursor.pc-system.is-action { width:38px;height:38px;mix-blend-mode:normal;color:#17191b;border:1px solid #17191b;background:#d6effa;box-shadow:2px 2px 0 #17191b }
  .project-cursor.pc-system.is-action::before { opacity:0 }
  .project-cursor.pc-system.is-action span { opacity:1 }
}
@media (prefers-reduced-motion:reduce) { .project-cursor { transition:none!important } }
