.scroll-cursor{position:fixed;left:0;top:0;width:68px;height:68px;z-index:200;pointer-events:none;color:#fff;mix-blend-mode:difference;opacity:0;will-change:transform;transition:opacity .18s;contain:layout style}
.scroll-cursor.is-visible{opacity:1}
.scroll-cursor svg{width:100%;height:100%;overflow:visible;transform:rotate(-90deg);transition:scale .22s ease}
.scroll-cursor circle{fill:none;stroke:currentColor}
.cursor-track{stroke-width:.7;opacity:.28}
.cursor-progress{stroke-width:1.8;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .14s linear}
.scroll-cursor i{position:absolute;left:32px;top:32px;width:4px;height:4px;border-radius:50%;background:currentColor}
.scroll-cursor span{position:absolute;top:76px;left:50%;transform:translateX(-50%);font:500 10px/1.2 Jost,sans-serif;letter-spacing:1.6px;white-space:nowrap;transition:opacity .18s}
.scroll-cursor.is-link svg{scale:.52}
.scroll-cursor.is-link span,.scroll-cursor.at-end span{opacity:0}
.scroll-cursor.is-text,.loading .scroll-cursor{opacity:0}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  html.custom-cursor:not(.cursor-text),html.custom-cursor:not(.cursor-text) *{cursor:none!important}
  html.custom-cursor input,html.custom-cursor textarea,html.custom-cursor [contenteditable="true"]{cursor:text!important}
}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.scroll-cursor{display:none}}
