@charset "utf-8";
/* itweb2 커서 - 점만, 자석효과. 클래스 고유화로 충돌 방지 */

body.has-custom-cursor,
body.has-custom-cursor *,
body.has-custom-cursor a,
body.has-custom-cursor button { cursor: none !important; }
body.has-custom-cursor a:hover,
body.has-custom-cursor button:hover,
body.has-custom-cursor [role="button"]:hover { cursor: none !important; }

/* 기본: indicator-dot 스타일(흰색). hover 시 accent */
#itweb-cursor-dot {
  display: block !important;
  position: fixed !important;
  left: var(--cursor-x, 0) !important;
  top: var(--cursor-y, 0) !important;
  width: 14px !important;
  height: 14px !important;
  margin: -7px 0 0 -7px !important;
  border-radius: 50% !important;
  background: var(--color-accent, #3d7abe) !important;
  pointer-events: none !important;
  z-index: 99999 !important;
  opacity: 0.9;
  transition: background 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
}
body.has-custom-cursor.cursor-link-invert #itweb-cursor-dot {
  background: #fff !important;
  mix-blend-mode: difference;
}
body.has-custom-cursor.cursor-link-invert #itweb-cursor-dot::before,
body.has-custom-cursor.cursor-link-invert #itweb-cursor-dot::after {
  border-color: rgba(255,255,255,0.95);
}
#itweb-cursor-dot::before,
#itweb-cursor-dot::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 3px solid var(--color-accent, #3d7abe);
  opacity: 0;
  transform: translate(-50%, -50%) scale(1);
  pointer-events: none;
  will-change: transform, opacity;
}
#itweb-cursor-dot::before {
  animation: cursor-ripple 2.5s ease-out infinite;
}
#itweb-cursor-dot::after {
  animation: cursor-ripple 2.5s ease-out 1.25s infinite;
}
@keyframes cursor-ripple {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.8;
  }
  100% {
    transform: translate(-50%, -50%) scale(3.5);
    opacity: 0;
  }
}
body.has-custom-cursor #itweb-cursor-dot.is-hover {
  background: var(--color-accent, #3d7abe) !important;
  opacity: 1;
  transform: scale(0.85);
}

/* 메인 히어로 섹션: 어두운 배경이므로 커서 흰색 */
body.has-custom-cursor.cursor-in-hero #itweb-cursor-dot {
  background: rgba(255, 255, 255, 0.95) !important;
}
body.has-custom-cursor.cursor-in-hero #itweb-cursor-dot::before,
body.has-custom-cursor.cursor-in-hero #itweb-cursor-dot::after {
  border-color: rgba(255, 255, 255, 0.8);
}
body.has-custom-cursor.cursor-in-hero #itweb-cursor-dot.is-hover {
  background: #fff !important;
  border-color: #fff;
}
body.has-custom-cursor #itweb-cursor-dot.is-hover::before,
body.has-custom-cursor #itweb-cursor-dot.is-hover::after {
  animation: cursor-ripple-hover 1.8s ease-out infinite;
}
@keyframes cursor-ripple-hover {
  0% {
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.9;
  }
  100% {
    transform: translate(-50%, -50%) scale(2.5);
    opacity: 0;
  }
}
/* 터치 기기에서는 JS에서 비활성화. pointer:coarse 제거(하이브리드 PC에서 숨김 방지) */

/* 모바일·태블릿(가로 포함)·순수 터치: 커서 점 완전 비표시 + 시스템 커서 */
@media (max-width: 1366px), (hover: none) and (pointer: coarse) {
  #itweb-cursor-dot,
  #itweb-cursor-dot::before,
  #itweb-cursor-dot::after {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    animation: none !important;
  }
  body.has-custom-cursor,
  body.has-custom-cursor *,
  body.has-custom-cursor a,
  body.has-custom-cursor button {
    cursor: auto !important;
  }
}
