/* =================== */
/* کرسر سفارشی */
/* =================== */
body {
  cursor: pointer;
  z-index: 100000000;
  background: linear-gradient(135deg, #0f0f15 0%, #151520 100%);
}

#custom-cursor {
  width: 24px;
  height: 24px;
  border: 2px solid #d946ef;
  border-radius: 50%;
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 9999;
  transition: transform 0.1s ease-out, border-width 0.15s ease, opacity 0.15s ease;
}

.interactable {
  cursor: none;
}

.cursor-on-link {
  transform: scale(1.5);
  border-width: 4px;
  opacity: 0.8;
}


.custom-inside-close {
  position: absolute;
  top: 20px;
  right: 25px;
  background: rgba(0,0,0,0.6);
  color: white;
  border: none;
  border-radius: 50%;
  width: 45px;
  height: 45px;
  font-size: 28px;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 100000000; /* بالاتر از لایه اصلی */
  transition: all 0.3s ease;
}

.custom-inside-close:hover {
  background: #2563eb;
}


  /* Floating Balls Background */
        .background {
            position: fixed;
            top: 0;
            left: 0;
            width: 100vw;
            height: 100vh;
            overflow: hidden;
            z-index: -1;
        }
        @keyframes move {
            100% {
                transform: translate3d(0, 0, 1px) rotate(360deg);
            }
        }
        .ball {
            position: absolute;
            width: 20vmin;
            height: 20vmin;
            border-radius: 50%;
            backface-visibility: hidden;
            animation: move linear infinite;
        }
        .ball:nth-child(odd) {
            color: #3a0742;
        }
        .ball:nth-child(even) {
            color: #370764;
        }
        .ball:nth-child(1) {
            top: 77%;
            left: 88%;
            animation-duration: 40s;
            animation-delay: -3s;
            transform-origin: 16vw -2vh;
            box-shadow: 40vmin 0 5.703076368487546vmin currentColor;
        }
        .ball:nth-child(2) {
            top: 42%;
            left: 2%;
            animation-duration: 53s;
            animation-delay: -29s;
            transform-origin: -19vw 21vh;
            box-shadow: -40vmin 0 5.17594621519026vmin currentColor;
        }
        .ball:nth-child(3) {
            top: 28%;
            left: 18%;
            animation-duration: 49s;
            animation-delay: -8s;
            transform-origin: -22vw 3vh;
            box-shadow: 40vmin 0 5.248179047256236vmin currentColor;
        }
        .ball:nth-child(4) {
            top: 50%;
            left: 79%;
            animation-duration: 26s;
            animation-delay: -21s;
            transform-origin: -17vw -6vh;
            box-shadow: 40vmin 0 5.279749632220298vmin currentColor;
        }
        .ball:nth-child(5) {
            top: 46%;
            left: 15%;
            animation-duration: 36s;
            animation-delay: -40s;
            transform-origin: 4vw 0vh;
            box-shadow: -40vmin 0 5.964309466052033vmin currentColor;
        }
        .ball:nth-child(6) {
            top: 77%;
            left: 16%;
            animation-duration: 31s;
            animation-delay: -10s;
            transform-origin: 18vw 4vh;
            box-shadow: 40vmin 0 5.178483653434181vmin currentColor;
        }
        .ball:nth-child(7) {
            top: 22%;
            left: 17%;
            animation-duration: 55s;
            animation-delay: -6s;
            transform-origin: 1vw -23vh;
            box-shadow: -40vmin 0 5.703026794398318vmin currentColor;
        }
        .ball:nth-child(8) {
            top: 41%;
            left: 47%;
            animation-duration: 43s;
            animation-delay: -28s;
            transform-origin: 25vw -3vh;
            box-shadow: 40vmin 0 5.196265905749415vmin currentColor;
        }

        .name {
            font-size: 1.2rem;
            font-weight: 700;
            background: linear-gradient(90deg, #6366f1, #8b5cf6, #ec4899);
            -webkit-background-clip: text;
            background-clip: text;
            color: transparent;
            letter-spacing: -0.5px;

        }