/* The site cursor, placed and leaned by cursor.js. Ink body, surface halo and
   the accent on anything that acts, all from the palette tokens, so it turns
   with the palette and the light/dark appearance. The system cursor hides only
   once the arrow is drawn, and returns over text fields and frames. */
html.has-site-cursor,html.has-site-cursor *{cursor:none!important}
html.has-site-cursor :is(input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=button],[type=submit],[type=reset],[type=file],[type=image]),textarea,[contenteditable]:not([contenteditable=false])){cursor:text!important}
html.has-site-cursor :is(iframe,[data-cursor=native]){cursor:auto!important}
/* Reset the popover defaults: the arrow is a fixed 32px box at the origin. */
.site-cursor{position:fixed;inset:0 auto auto 0;z-index:2147483647;width:32px;height:32px;margin:0;padding:0;border:0;background:none;color:inherit;overflow:visible;pointer-events:none;opacity:0;transform-origin:5px 5px;will-change:transform;transition:opacity 160ms ease;view-transition-name:site-cursor}
.site-cursor.is-visible{opacity:1}
.site-cursor[data-state=native]{opacity:0}
.site-cursor svg{display:block;width:100%;height:100%;overflow:visible;transform-origin:5px 5px;transition:transform 260ms cubic-bezier(.34,1.56,.64,1)}
.site-cursor path{stroke-linejoin:round;transition:fill 160ms ease,stroke 160ms ease,stroke-width 160ms ease}
.site-cursor-halo{fill:var(--paper);stroke:var(--paper);stroke-width:3}
.site-cursor-body{fill:var(--wine);stroke:none}
.site-cursor[data-state=hover] svg{transform:scale(1.14)}
/* The halo, not the body, takes the accent: on an accent button the ink
   arrow still reads. */
.site-cursor[data-state=hover] .site-cursor-halo{fill:var(--violet);stroke:var(--violet);stroke-width:4}
.site-cursor[data-state=grab] svg{transform:scale(1.08)}
.site-cursor.is-pressed svg{transform:scale(.84);transition-duration:120ms;transition-timing-function:ease-out}
/* Page and theme transitions keep the live arrow on top, never a still copy. */
::view-transition-group(site-cursor){animation:none}
::view-transition-old(site-cursor){display:none}
::view-transition-new(site-cursor){animation:none}
@media(prefers-reduced-motion:reduce){.site-cursor,.site-cursor svg,.site-cursor path{transition:none}}
