/* 그랜드체이스 톤의 금색 커서 (기본 / 클릭 가능) */
html, body, * { cursor: url(../assets/cursor/arrow.svg) 3 3, auto !important; }
a, button, select, summary, label.switch, label.check, input[type=checkbox], [role=button] {
  cursor: url(../assets/cursor/pointer.svg) 3 3, pointer !important;
}
button:disabled, input:disabled, select:disabled { cursor: url(../assets/cursor/arrow.svg) 3 3, not-allowed !important; }
input[type=text], input[type=number], input[type=password], textarea { cursor: text !important; }

/* 클릭 이펙트: 마법진 링 + 별 가루 */
.cfx { position: fixed; left: 0; top: 0; z-index: 9999; pointer-events: none; }
.cfx-ring {
  width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%;
  border: 2px solid #ffd84a;
  box-shadow: 0 0 14px rgba(255, 179, 0, .9), inset 0 0 10px rgba(255, 179, 0, .6);
  animation: cfx-ring .6s ease-out forwards;
}
.cfx-ring::after {
  content: ''; position: absolute; inset: 9px; border-radius: 50%;
  border: 1.5px dashed rgba(197, 140, 255, .95);
  animation: cfx-spin .6s linear forwards;
}
.cfx-spark, .cfx-trail {
  width: 12px; height: 12px; margin: -6px 0 0 -6px;
  background: radial-gradient(circle, #fff 0%, #ffe46b 45%, #ffb300 100%);
  clip-path: polygon(50% 0, 62% 38%, 100% 50%, 62% 62%, 50% 100%, 38% 62%, 0 50%, 38% 38%);
  filter: drop-shadow(0 0 3px rgba(255, 200, 60, .9));
}
.cfx-spark { animation: cfx-spark .55s ease-out forwards; }
.cfx-trail { width: 8px; height: 8px; margin: -4px 0 0 -4px; animation: cfx-trail .6s ease-out forwards; }
.cfx-trail.p { background: radial-gradient(circle, #fff 0%, #d4b0ff 50%, #7b3cf0 100%); }

@keyframes cfx-ring { from { transform: scale(.15); opacity: 1; } to { transform: scale(1.35); opacity: 0; } }
@keyframes cfx-spin { to { transform: rotate(120deg); } }
@keyframes cfx-spark { from { transform: translate(0, 0) scale(1); opacity: 1; } to { transform: translate(var(--dx), var(--dy)) scale(.2) rotate(90deg); opacity: 0; } }
@keyframes cfx-trail { from { transform: scale(1); opacity: .95; } to { transform: translateY(14px) scale(.2) rotate(90deg); opacity: 0; } }
