/* 실제 화살표·손 커서는 클릭 위치를 맡고, 팬캐릭터는 바로 옆에 붙습니다. */
.fan-cursor{position:fixed;left:0;top:0;width:46px;height:46px;z-index:2147483646;pointer-events:none!important;visibility:hidden;contain:layout style;will-change:transform}
.fan-cursor.visible{visibility:visible}
.fan-cursor img{display:block;width:46px;height:46px;object-fit:contain;transform-origin:50% 80%;transition:transform .16s ease,filter .16s ease;user-select:none}
.fan-cursor.hover img{transform:translateY(-2px) rotate(-7deg);filter:brightness(1.1)}
.fan-cursor .cursor-star{position:absolute;right:0;top:3px;color:#d1edff;font-size:13px;line-height:1;opacity:0;text-shadow:0 0 4px #a5cfff66}
.fan-cursor.hover .cursor-star{opacity:.75}
.fan-cursor.busy .cursor-star{opacity:.85;animation:cursor-orbit 2.4s linear infinite}
.fan-cursor.pressed img{animation:cursor-tap .26s ease-out}
.fan-dust{position:fixed;left:0;top:0;width:3px;height:3px;border-radius:50%;background:#bddcff;z-index:2147483645;pointer-events:none!important;animation:cursor-dust .65s ease-out forwards}
@keyframes cursor-tap{0%,100%{scale:1}40%{scale:.88;rotate:-5deg}}
@keyframes cursor-orbit{to{transform:rotate(360deg)}}
@keyframes cursor-dust{from{opacity:.38}to{opacity:0;translate:0 7px;scale:.3}}
@media(prefers-reduced-motion:reduce){.fan-cursor img{transition:none}.fan-cursor.pressed img,.fan-cursor.busy .cursor-star{animation:none}.fan-dust{display:none}}
@media(forced-colors:active){.fan-cursor,.fan-dust{display:none}}
