/* Deliberately small. The reading surface stays calm, and editable text gets a
   precise vertical line. The orange insertion caret remains a separate native control. */
.cursor { display:none; }
.spark { position:fixed; width:72px; height:72px; z-index:999; pointer-events:none; }
input,textarea,[contenteditable] { caret-color:var(--orange-text); }
@media(any-hover:hover) and (any-pointer:fine) {
  .cursor.is-active { display:block; position:fixed; top:0; left:0; width:0; height:0; margin:0; z-index:1000; pointer-events:none; }
  .cursor > span { position:absolute; display:block; left:0; top:0; translate:-50% -50%; width:9px; height:9px; border-radius:50%; background:var(--orange); opacity:1; transform:scale(1); rotate:var(--cursor-turn,0deg); scale:calc(1 + var(--cursor-stretch,0)) calc(1 / (1 + var(--cursor-stretch,0))); transition:width 140ms var(--ease),height 140ms var(--ease),border-radius 140ms var(--ease),transform 110ms var(--ease),box-shadow 180ms ease; }
  .cursor.is-over > span { width:15px; height:15px; opacity:.8; transform:scale(1); box-shadow:0 0 0 4px rgba(223,111,42,.1); }
  .cursor.is-glass:not(.is-ink) > span { box-shadow:0 0 0 3px rgba(223,111,42,.13),0 0 9px rgba(223,111,42,.12); }
  .cursor.is-ink > span { width:2px; height:19px; border-radius:1px; opacity:1; rotate:0deg; scale:1; box-shadow:0 0 0 1px rgba(246,244,240,.65); }
  .cursor.is-pressed > span { transform:scale(.82); }
  .cursor.is-spark > span { transform:scale(0); rotate:0deg; scale:1; }
  .cursor.is-away { opacity:0; }
  body.has-cursor,body.has-cursor * { cursor:none!important; }
}
@media(prefers-reduced-motion:reduce),(forced-colors:active) {
  .cursor,.spark { display:none!important; }
  body.has-cursor,body.has-cursor * { cursor:auto!important; }
  body.has-cursor :is(input,textarea,[contenteditable]) { cursor:text!important; }
}
@media print { .cursor,.spark { display:none!important; } }
