/* Radar Nakelasi — préchargeur + /app */
.nk-radar {
    position: relative;
    width: 168px;
    height: 168px;
    margin: 0 auto;
}
.nk-radar__ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.08);
}
.nk-radar__ring--2 { inset: 16px; }
.nk-radar__ring--3 { inset: 32px; }
.nk-radar__sweep {
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    background: conic-gradient(from 0deg, transparent 0 72%, rgba(0,206,201,0) 78%, rgba(162,155,254,.55) 92%, transparent 100%);
    animation: nkRadarSweep 2.2s linear infinite;
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 10px), #000 calc(100% - 9px));
            mask: radial-gradient(farthest-side, transparent calc(100% - 10px), #000 calc(100% - 9px));
}
.nk-radar__pulse {
    position: absolute;
    inset: 28px;
    border-radius: 50%;
    border: 1.5px solid rgba(0,206,201,.45);
    animation: nkRadarPulse 2s ease-out infinite;
}
.nk-radar__core {
    position: absolute;
    inset: 48px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: radial-gradient(circle at 30% 30%, #2a2158, #111318 70%);
    border: 1px solid rgba(255,255,255,.12);
    box-shadow: 0 12px 40px rgba(0,0,0,.45), inset 0 0 24px rgba(108,92,231,.25);
}
.nk-radar__n {
    width: 44px;
    height: 44px;
    object-fit: contain;
    display: block;
}
.nk-radar__dot {
    position: absolute;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #00cec9;
    box-shadow: 0 0 12px #00cec9;
    animation: nkRadarHop 2.2s linear infinite;
}
@keyframes nkRadarSweep { to { transform: rotate(360deg); } }
@keyframes nkRadarPulse {
    0% { transform: scale(.86); opacity: .8; }
    100% { transform: scale(1.28); opacity: 0; }
}
@keyframes nkRadarHop {
    0% { top: 8%; left: 48%; }
    25% { top: 46%; left: 86%; }
    50% { top: 86%; left: 48%; }
    75% { top: 46%; left: 8%; }
    100% { top: 8%; left: 48%; }
}
@keyframes nkRadarOrb {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(18px, -22px) scale(1.08); }
}

.nk-radar-scene {
    position: absolute;
    inset: 0;
    pointer-events: none;
    overflow: hidden;
}
.nk-radar-scene__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(70px);
    opacity: .45;
    animation: nkRadarOrb 14s ease-in-out infinite;
}
.nk-radar-scene__orb--a {
    width: 340px; height: 340px; left: -90px; top: 12%;
    background: #6c5ce7;
}
.nk-radar-scene__orb--b {
    width: 280px; height: 280px; right: -70px; bottom: 8%;
    background: #00cec9;
    animation-delay: -6s;
}
.nk-radar-scene__grain {
    position: absolute;
    inset: 0;
    opacity: .18;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.55'/></svg>");
}

@media (prefers-reduced-motion: reduce) {
    .nk-radar__sweep,
    .nk-radar__pulse,
    .nk-radar__dot,
    .nk-radar-scene__orb { animation: none; }
}
