/* Isolated visual enhancement for the existing Natural Earth map. */
.kk-network-enhanced { position: relative; isolation: isolate; }
.kk-mobile-map-hint { display: none; color: #bba5ce; font-size: 11px; }
.kk-network-enhanced .network-numbers {
  position: relative; top: auto; left: auto; right: auto; bottom: auto;
  margin: 0; padding: 0; display: block;
}
.kk-network-enhanced .network-numbers > div { display: flex; flex-direction: row; align-items: baseline; gap: 12px; }
.kk-network-enhanced .network-numbers strong { font-size: 38px; line-height: 1; }
.kk-network-enhanced .network-numbers span { display: inline; margin: 0; font-size: 12px; color: #c0b2ce; }
.kk-network-enhanced .world-map {
  width: 100%; margin-left: 0; min-height: 0; overflow: hidden;
  border: 1px solid #8672a82e; border-radius: 22px;
  background: radial-gradient(ellipse at 54% 34%, #36204466, transparent 60%), #101016;
  box-shadow: inset 0 0 70px #05040899, 0 20px 80px #00000020;
}
.kk-network-enhanced .world-map > svg {
  display: block; width: 100%; height: auto; max-height: none;
  aspect-ratio: 1.6 / 1; overflow: hidden;
}
.kk-network-enhanced .country-outline {
  fill: #302b39; stroke: #81778f; stroke-opacity: .74; stroke-width: .65;
  vector-effect: non-scaling-stroke;
}
.kk-map-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 18px 0 14px; }
.kk-map-instruction { color: #b7adca; font-size: 12px; line-height: 1.5; }
.kk-map-graticule { fill: none; stroke: #b7a2d3; stroke-opacity: .085; stroke-width: .6; }
.kk-map-graticule path { vector-effect: non-scaling-stroke; }
.kk-network-edge {
  fill: none; stroke: #c187ff; stroke-opacity: .22; stroke-width: 1.15;
  vector-effect: non-scaling-stroke;
  transition: stroke .2s, stroke-opacity .2s, stroke-width .2s;
}
.kk-network-flow {
  fill: none; stroke: #e1c1ff; stroke-width: 1.2; stroke-linecap: round;
  stroke-dasharray: 1 19; opacity: .16; vector-effect: non-scaling-stroke;
  animation: kk-network-travel 4s linear infinite; animation-delay: var(--kk-flow-delay, 0s);
  animation-play-state: paused;
}
.kk-map-in-view .kk-network-flow { animation-play-state: running; }
.kk-network-art.has-hover .kk-network-edge { stroke-opacity: .14; }
.kk-network-art.has-hover .kk-network-flow { opacity: .1; }
.kk-network-art .kk-network-edge.is-linked { stroke: #e1bbff; stroke-width: 1.5; stroke-opacity: .65; }
.kk-network-art .kk-network-flow.is-linked { opacity: .36; }
.kk-marker-leader { fill: none; stroke: #b19acb; stroke-width: .7; stroke-opacity: .28; stroke-dasharray: 2 3; vector-effect: non-scaling-stroke; }
.kk-true-anchor { fill: #dbbcff; opacity: .85; }
.kk-network-enhanced .map-marker { outline: none; cursor: default; }
.kk-pin-aura { fill: #a34af9; fill-opacity: .12; stroke: none; }
.kk-pin-ring { fill: #181023; stroke: #c790ff; stroke-width: 1.5; vector-effect: non-scaling-stroke; filter: drop-shadow(0 0 2px #a440ed); transition: stroke .16s, stroke-width .16s, fill .16s, filter .16s; }
.kk-pin-flag { font-family: "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif; pointer-events: none; user-select: none; }
.kk-pin-hit { fill: transparent; stroke: transparent; stroke-width: 1; vector-effect: non-scaling-stroke; }
.kk-network-enhanced .map-marker.is-hovered .kk-pin-ring { stroke: #f7dfff; stroke-width: 2.3; fill: #4f286a; filter: drop-shadow(0 0 8px #c785ff); }
.kk-network-enhanced .map-marker.is-hovered .kk-pin-aura { fill-opacity: .3; }
.kk-network-enhanced .map-caption { max-width: 360px; color: #c9bdd4; font-size: 12px; line-height: 1.6; }
.kk-network-enhanced .network-foot { display: flex; margin-top: 12px; border-top: 0; }
.kk-network-enhanced .location-directory { gap: 8px; }
.kk-network-enhanced .location-directory .location-item {
  min-height: 56px; padding: 13px 12px; gap: 9px; border: 1px solid #7761843d;
  border-radius: 12px; background: #19141f; transition: border-color .16s, background .16s;
}
.kk-network-enhanced .location-directory .location-item.is-hovered { border-color: #b56fe5; background: #352047; }
.kk-network-enhanced .country-dot.kk-directory-flag {
  display: grid; place-items: center; width: 25px; height: 25px; flex-shrink: 0;
  border-radius: 50%; border: 1px solid #9561bf; background: #22152f;
  box-shadow: 0 0 9px #a73bed38; font-family: "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
  font-size: 15px; line-height: 1;
}
.kk-network-enhanced .location-directory small { white-space: nowrap; color: #b3a6c0; }
.kk-cursor-field {
  --kk-cursor-x: -600px; --kk-cursor-y: -600px;
  position: fixed; z-index: 5; inset: 0; pointer-events: none; opacity: 0;
  background-image: radial-gradient(circle at center, #cc9aff55 1px, transparent 1.4px),
    repeating-linear-gradient(135deg, transparent 0 80px, #b879f414 80px 81px, transparent 81px 162px);
  background-size: 28px 28px, 162px 162px;
  -webkit-mask-image: radial-gradient(circle 210px at var(--kk-cursor-x) var(--kk-cursor-y), #0009, transparent 90%);
  mask-image: radial-gradient(circle 210px at var(--kk-cursor-x) var(--kk-cursor-y), #0009, transparent 90%);
  transition: opacity .25s ease;
}
.kk-cursor-field.is-visible { opacity: .65; }
@keyframes kk-network-travel { to { stroke-dashoffset: -80; } }
@media (max-width: 700px) {
  .kk-mobile-map-hint { display: block; }
  .kk-map-toolbar { align-items: flex-start; gap: 10px; }
  .kk-map-instruction { font-size: 11px; }
  .kk-network-enhanced .world-map {
    border-radius: 14px; overflow-x: auto; overflow-y: hidden;
    overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch;
    touch-action: pan-x pan-y; scrollbar-width: thin; scrollbar-color: #765099 #141019;
  }
  .kk-network-enhanced .world-map > svg { min-width: 640px; aspect-ratio: 1.6 / 1; }
  .kk-network-enhanced .kk-pin-ring,
  .kk-network-enhanced .map-marker.is-hovered .kk-pin-ring { filter: none; stroke-width: 1.2; }
  .kk-network-enhanced .kk-pin-aura { fill-opacity: .05; }
  .kk-network-enhanced .country-outline { stroke-width: .55; }
  .kk-network-enhanced .network-foot { align-items: flex-start; gap: 14px; }
  .kk-network-enhanced .map-caption { max-width: 205px; text-align: right; font-size: 11px; }
  .kk-network-enhanced .location-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kk-network-enhanced .location-directory .location-item { padding: 11px 8px; gap: 7px; flex-wrap: wrap; }
  .kk-network-enhanced .location-directory strong { font-size: 11px; }
  .kk-network-enhanced .location-directory small { margin-left: 32px; width: calc(100% - 32px); font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .kk-network-flow { animation: none; stroke-dasharray: none; opacity: 0; }
  .kk-cursor-field { display: none; }
  .kk-network-enhanced * { transition: none !important; }
}
@media (pointer: coarse), (hover: none) { .kk-cursor-field { display: none; } }
