:root{--cursor-primary-color:#6366f1;--cursor-secondary-color:#818cf8;--cursor-hover-color:var(--cursor-primary-color);--cursor-size:40px;--cursor-dot-size:8px;--cursor-border-width:2px;--cursor-opacity:0.8;--cursor-blend-mode:normal;--cursor-scale-hover:1.5}.keystone-cursor{position:fixed;top:0;left:0;pointer-events:none;z-index:999999;mix-blend-mode:var(--cursor-blend-mode)}.keystone-cursor__outer{position:absolute;width:var(--cursor-size);height:var(--cursor-size);border-radius:50%;transform:translate(-50%,-50%);transition:transform 0.15s ease-out,opacity 0.15s ease-out,background-color 0.2s ease,border-color 0.2s ease;will-change:transform}.keystone-cursor__inner{position:absolute;width:var(--cursor-dot-size);height:var(--cursor-dot-size);background-color:var(--cursor-secondary-color);border-radius:50%;transform:translate(-50%,-50%);transition:transform 0.1s ease-out,opacity 0.15s ease-out;will-change:transform}.keystone-cursor--circle-follower .keystone-cursor__outer{border:var(--cursor-border-width) solid var(--cursor-primary-color);background-color:#fff0;opacity:var(--cursor-opacity)}.keystone-cursor--circle-follower.is-hovering .keystone-cursor__outer{transform:translate(-50%,-50%) scale(var(--cursor-scale-hover));border-color:var(--cursor-hover-color);background-color:color-mix(in srgb,var(--cursor-hover-color) 10%,transparent)}.keystone-cursor--circle-follower.is-clicking .keystone-cursor__outer{transform:translate(-50%,-50%) scale(.9)}.keystone-cursor--dot-outline .keystone-cursor__outer{border:var(--cursor-border-width) solid var(--cursor-primary-color);background-color:#fff0;opacity:var(--cursor-opacity)}.keystone-cursor--dot-outline .keystone-cursor__inner{background-color:var(--cursor-secondary-color);opacity:1}.keystone-cursor--dot-outline.is-hovering .keystone-cursor__outer{transform:translate(-50%,-50%) scale(var(--cursor-scale-hover));border-color:var(--cursor-hover-color)}.keystone-cursor--dot-outline.is-hovering .keystone-cursor__inner{transform:translate(-50%,-50%) scale(1)}.keystone-cursor--dot-outline.is-clicking .keystone-cursor__outer{transform:translate(-50%,-50%) scale(.8)}.keystone-cursor--dot-outline.is-clicking .keystone-cursor__inner{transform:translate(-50%,-50%) scale(1.5)}.keystone-cursor--magnetic .keystone-cursor__outer{border:var(--cursor-border-width) solid var(--cursor-primary-color);background-color:#fff0;opacity:var(--cursor-opacity);transition:transform 0.2s cubic-bezier(.175,.885,.32,1.275),border-color 0.2s ease,background-color 0.2s ease}.keystone-cursor--magnetic .keystone-cursor__inner{background-color:var(--cursor-secondary-color);opacity:1;transition:transform 0.15s cubic-bezier(.175,.885,.32,1.275)}.keystone-cursor--magnetic.is-hovering .keystone-cursor__outer{transform:translate(-50%,-50%) scale(var(--cursor-scale-hover));border-color:var(--cursor-hover-color);background-color:color-mix(in srgb,var(--cursor-hover-color) 10%,transparent)}.keystone-cursor--magnetic.is-hovering .keystone-cursor__inner{transform:translate(-50%,-50%) scale(0)}.keystone-cursor--magnetic.is-magnetic .keystone-cursor__outer{transform:translate(-50%,-50%) scale(1.8)}.keystone-cursor.is-hidden{opacity:0;visibility:hidden}.keystone-cursor.is-clicking .keystone-cursor__outer{transition-duration:0.05s}.keystone-cursor.is-link-hover .keystone-cursor__outer{border-color:var(--cursor-hover-color)}.keystone-cursor.is-text .keystone-cursor__outer{width:4px;height:calc(var(--cursor-size) * 0.6);border-radius:2px;border:none;background-color:var(--cursor-primary-color);opacity:.6}.keystone-cursor.is-text .keystone-cursor__inner{opacity:0}@media (prefers-reduced-motion:reduce){.keystone-cursor,.keystone-cursor__outer,.keystone-cursor__inner{transition:none!important}}@media (hover:none) and (pointer:coarse){.keystone-cursor{display:none!important}}@keyframes cursor-pulse{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:var(--cursor-opacity)}50%{transform:translate(-50%,-50%) scale(1.1);opacity:calc(var(--cursor-opacity) * 0.8)}}@keyframes cursor-dot-pulse{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.3)}}.keystone-cursor.is-idle .keystone-cursor__outer{animation:cursor-pulse 2s ease-in-out infinite}@supports not (color:color-mix(in srgb,red,blue)){.keystone-cursor--circle-follower.is-hovering .keystone-cursor__outer,.keystone-cursor--magnetic.is-hovering .keystone-cursor__outer{background-color:rgb(99 102 241 / .1)}}