 :root{--cp-accent:#fff;--cp-size:28px}
html.cursor-persona-active body *:not(input):not(textarea):not(select):not([contenteditable]){cursor:none}
html.cursor-persona-active input,html.cursor-persona-active textarea,html.cursor-persona-active select,html.cursor-persona-active [contenteditable]{cursor:auto!important}
.cursor-persona,.cursor-persona__trail,.cursor-persona__ripple{position:fixed;top:0;left:0;z-index:99999;pointer-events:none;opacity:0;will-change:transform,opacity}
.cursor-persona{width:var(--cp-size);height:var(--cp-size);margin:calc(var(--cp-size)/-2) 0 0 calc(var(--cp-size)/-2);color:var(--cp-accent);transform-origin:center;transition:opacity .16s ease}.cursor-persona.is-visible{opacity:1}.cursor-persona.is-hidden{opacity:0}
.cursor-persona__core{position:absolute;inset:0;border:1.5px solid currentColor;border-radius:50%;transition:transform .18s ease,opacity .18s ease,background-color .18s ease}
.cursor-persona__orbit{position:absolute;inset:-5px;border:1px solid currentColor;border-radius:50%;opacity:0;transform-origin:center}.cursor-persona__orbit:after{content:"";position:absolute;top:-3px;left:50%;width:6px;height:6px;border-radius:50%;background:currentColor;transform:translateX(-50%)}
.cursor-persona__halo{position:absolute;inset:-9px;border-radius:50%;opacity:0;background:radial-gradient(circle,currentColor 0 12%,transparent 68%);filter:blur(1px);transition:transform .18s ease,opacity .18s ease}.cursor-persona__label{position:absolute;top:calc(100% + 8px);left:calc(100% + 8px);padding:4px 6px;border:1px solid currentColor;border-radius:10px;color:currentColor;background:rgba(0,0,0,.72);font:600 8px/1 Arial,sans-serif;white-space:nowrap;opacity:0;transform:translate3d(0,0,0);transition:opacity .14s ease}.cursor-persona.has-label .cursor-persona__label{opacity:1}
.cursor-persona.is-link .cursor-persona__core,.cursor-persona.is-button .cursor-persona__core{background:var(--cp-accent)}.cursor-persona.is-image .cursor-persona__core{border-radius:5px;transform:rotate(45deg) scale(.78)}.cursor-persona.is-video .cursor-persona__core{transform:scale(1.12)}
.cursor-persona--film .cursor-persona__core{inset:calc(var(--cp-size)/2 - 2px);border:0;background:currentColor}.cursor-persona__corners,.cursor-persona__hud{display:none}.cursor-persona--film .cursor-persona__corners{display:block;position:absolute;inset:0}.cursor-persona--film .cursor-persona__corners i{position:absolute;width:8px;height:8px;border-color:currentColor;border-style:solid}.cursor-persona--film .cursor-persona__corners i:nth-child(1){top:0;left:0;border-width:1px 0 0 1px}.cursor-persona--film .cursor-persona__corners i:nth-child(2){top:0;right:0;border-width:1px 1px 0 0}.cursor-persona--film .cursor-persona__corners i:nth-child(3){right:0;bottom:0;border-width:0 1px 1px 0}.cursor-persona--film .cursor-persona__corners i:nth-child(4){bottom:0;left:0;border-width:0 0 1px 1px}
.cursor-persona--cyberpunk .cursor-persona__core{border-color:var(--cp-accent);box-shadow:0 0 8px var(--cp-accent),0 0 16px var(--cp-accent)}
.cursor-persona--orbit .cursor-persona__core{border:0;background:var(--cp-accent);transform:scale(.32)}.cursor-persona--orbit .cursor-persona__orbit{opacity:1;animation:cp-orbit 1.7s linear infinite}.cursor-persona--orbit.is-link .cursor-persona__orbit,.cursor-persona--orbit.is-button .cursor-persona__orbit{transform:scale(1.15);filter:brightness(1.3)}
.cursor-persona--pulse .cursor-persona__core{animation:cp-breathe 1.8s ease-in-out infinite}.cursor-persona--pulse.is-link .cursor-persona__core,.cursor-persona--pulse.is-button .cursor-persona__core{opacity:1;transform:scale(1.3)}
.cursor-persona--magnet .cursor-persona__core{transform:translate3d(var(--cp-mx,0),var(--cp-my,0),0)}.cursor-persona--magnet.is-link .cursor-persona__core,.cursor-persona--magnet.is-button .cursor-persona__core{transform:translate3d(var(--cp-mx,0),var(--cp-my,0),0) scale(1.2)}
.cursor-persona--halo .cursor-persona__core{inset:10px;width:8px;height:8px;border:0;background:currentColor}.cursor-persona--halo .cursor-persona__halo{opacity:.45}.cursor-persona--halo.is-link .cursor-persona__halo,.cursor-persona--halo.is-image .cursor-persona__halo{transform:scale(1.55);opacity:.8}
.cursor-persona--ripple .cursor-persona__core,.cursor-persona--dotline .cursor-persona__core,.cursor-persona--spark .cursor-persona__core,.cursor-persona--peek .cursor-persona__core{inset:10px;width:8px;height:8px;border:0;background:currentColor}.cursor-persona--dotline .cursor-persona__trail{width:30px;height:2px;margin:-1px 0 0;border-radius:2px;transform-origin:left center;background:currentColor}.cursor-persona--spark .cursor-persona__trail{width:4px;height:4px;margin:-2px;border-radius:50%;background:currentColor}.cursor-persona--peek.is-link .cursor-persona__core,.cursor-persona--peek.is-image .cursor-persona__core{transform:scale(1.35)}
.cursor-persona__ripple{z-index:99998;width:18px;height:18px;margin:-9px 0 0 -9px;border:1px solid var(--cp-accent);border-radius:50%;transform:scale(.3)}.cursor-persona__ripple.is-active{animation:cp-ripple .42s ease-out}.cursor-persona__spark{position:absolute;left:50%;top:50%;width:3px;height:10px;background:currentColor;transform-origin:50% 100%;opacity:0}.cursor-persona.is-sparking .cursor-persona__spark{animation:cp-spark .32s ease-out}.cursor-persona__peek{position:absolute;inset:calc(var(--cp-size)/-2);border:1px solid currentColor;border-radius:50%;opacity:0;transform:scale(.4);transition:opacity .15s ease,transform .18s ease}.cursor-persona--peek.is-link .cursor-persona__peek,.cursor-persona--peek.is-image .cursor-persona__peek{opacity:1;transform:scale(1)}.cursor-persona__peek:after{content:"";position:absolute;left:50%;top:50%;width:35%;height:35%;border-radius:50%;background:currentColor;transform:translate(-50%,-50%) rotate(var(--cp-tilt,0deg)) translateX(18%)}
@keyframes cp-orbit{to{transform:rotate(360deg)}}@keyframes cp-breathe{50%{transform:scale(1.13);opacity:1}}@keyframes cp-ripple{to{opacity:0;transform:scale(2.8)}}@keyframes cp-spark{to{opacity:0;transform:rotate(90deg) translateY(-18px)}}
@media (prefers-reduced-motion:reduce){.cursor-persona,.cursor-persona *{animation:none!important;transition:none!important}}
