/* Nora Medya - Dünya şehirleri iletişim premium efekt v3
   Ağ, tüm ekran yerine dünya görselinin bulunduğu globe-zone'a kilitlidir. */

.nm-world-network-section {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

.nm-world-network-section::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 34% 78%, rgba(35, 162, 255, .10), transparent 24%),
        radial-gradient(circle at 68% 77%, rgba(255, 120, 28, .075), transparent 22%);
}

.nm-world-network-section .container {
    position: relative;
    z-index: 3;
}

/* Kritik düzeltme:
   Efekt artık ekran genişliğinin tamamını kullanmıyor.
   Dünya görselinin merkezine kilitlenen, max-width'li bir alan içinde çalışıyor. */
.nm-world-network {
    position: absolute;
    left: 50%;
    bottom: 0;
    width: min(76vw, 1420px);
    height: 78%;
    transform: translateX(-50%);
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
    clip-path: inset(0 0 0 0 round 0);
}

.nm-world-network-svg {
    width: 100%;
    height: 100%;
    display: block;
    overflow: hidden;
}

.nm-network-route-base {
    fill: none;
    stroke: rgba(123, 206, 255, .12);
    stroke-width: 1.05;
    vector-effect: non-scaling-stroke;
}

.nm-network-route-active {
    fill: none;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-dasharray: 5 14;
    vector-effect: non-scaling-stroke;
    filter: url(#nmNetworkGlow);
    opacity: .88;
    animation: nmRouteFlow 2.35s linear infinite;
}

.nm-route-blue {
    stroke: rgba(95, 210, 255, .72);
}

.nm-route-orange {
    stroke: rgba(255, 145, 54, .68);
}

.nm-network-node-ring {
    fill: rgba(255,255,255,.06);
    stroke: rgba(166, 226, 255, .58);
    stroke-width: 1;
    vector-effect: non-scaling-stroke;
}

.nm-network-node-core {
    fill: #f4fdff;
    filter: url(#nmNetworkGlow);
}

.nm-network-node-pulse {
    fill: none;
    stroke: rgba(111, 215, 255, .52);
    stroke-width: 1.05;
    vector-effect: non-scaling-stroke;
    transform-box: fill-box;
    transform-origin: center;
}

.nm-pulse-a {
    animation: nmNodePulse 2.7s ease-out infinite;
}

.nm-pulse-b {
    animation: nmNodePulse 2.7s .7s ease-out infinite;
}

.nm-network-particle {
    filter: url(#nmNetworkGlow);
}

.nm-network-particle-halo {
    filter: url(#nmNetworkGlow);
}

.nm-particle-blue.nm-network-particle {
    fill: #ffffff;
}

.nm-particle-blue.nm-network-particle-halo {
    fill: rgba(85, 207, 255, .38);
}

.nm-particle-orange.nm-network-particle {
    fill: #fff4e9;
}

.nm-particle-orange.nm-network-particle-halo {
    fill: rgba(255, 132, 45, .36);
}

.nm-network-hit {
    fill: none;
    stroke: rgba(255,255,255,.9);
    stroke-width: 1.45;
    opacity: 0;
    transform-box: fill-box;
    transform-origin: center;
}

.nm-network-hit.is-hit {
    animation: nmNetworkHit .68s ease-out;
}

@keyframes nmRouteFlow {
    from { stroke-dashoffset: 0; }
    to   { stroke-dashoffset: -38; }
}

@keyframes nmNodePulse {
    0%   { opacity: .58; transform: scale(.62); }
    55%  { opacity: .18; transform: scale(1.55); }
    100% { opacity: 0; transform: scale(2.05); }
}

@keyframes nmNetworkHit {
    0%   { opacity: 0; transform: scale(.65); }
    25%  { opacity: 1; transform: scale(1.22); }
    100% { opacity: 0; transform: scale(2.2); }
}

/* 2K / 4K ekranlarda ağ genişliği büyümez; dünya dışına taşma engellenir. */
@media (min-width: 1800px) {
    .nm-world-network {
        width: min(68vw, 1420px);
        height: 76%;
    }
}

@media (min-width: 2560px) {
    .nm-world-network {
        width: 1420px;
        height: 74%;
    }
}

@media (max-width: 1199.98px) {
    .nm-world-network {
        width: 88vw;
        height: 76%;
    }
}

@media (max-width: 767.98px) {
    .nm-world-network {
        width: 112vw;
        height: 68%;
        opacity: .78;
    }

    .nm-network-route-active {
        stroke-width: 1.25;
    }

    .nm-network-route-base {
        stroke-width: .8;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nm-network-route-active,
    .nm-network-node-pulse,
    .nm-network-hit {
        animation: none !important;
    }
}


/* v3 Soft Background Update
   Arka plan dünya görselini geri plana alır; metin ve network efektleri önde kalır. */
.nm-world-network-section::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    background:
        linear-gradient(rgba(6, 13, 25, .48), rgba(6, 13, 25, .48)),
        radial-gradient(circle at 50% 76%, rgba(6, 13, 25, .12), rgba(6, 13, 25, .36) 72%);
}

.nm-world-network-section .container {
    position: relative;
    z-index: 5;
}

.nm-world-network {
    z-index: 4;
}
