/* Dashboard GIS terrain, digital-twin texture, coastline, and ward material layers. */

.tech-map__backdrop {
  fill: var(--alpha-deep-011234-18);
}

.tech-map__digital-twin {
  pointer-events: none;
  isolation: isolate;
  opacity: 0.62;
  mix-blend-mode: screen;
}

.tech-map__digital-river,
.tech-map__digital-canal,
.tech-map__digital-highway,
.tech-map__digital-road,
.tech-map__digital-bridge {
  fill: transparent;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.tech-map__digital-river {
  stroke: color-mix(in srgb, var(--color-map-digital-river) 15%, transparent);
  stroke-width: 7.5;
  filter: blur(2.4px);
}

.tech-map__digital-canal {
  stroke: color-mix(in srgb, var(--color-map-digital-river) 11%, transparent);
  stroke-width: 2.8;
  filter: blur(1.2px);
}

.tech-map__digital-highway {
  stroke: color-mix(in srgb, var(--color-map-digital-highway) 14%, transparent);
  stroke-width: 1.12;
  filter: drop-shadow(0 0 5px color-mix(in srgb, var(--color-map-digital-highway) 8%, transparent));
}

.tech-map__digital-road {
  stroke: color-mix(in srgb, var(--color-map-digital-road) 8%, transparent);
  stroke-width: 0.42;
  filter: drop-shadow(0 0 4px color-mix(in srgb, var(--color-map-digital-road) 5%, transparent));
}

.tech-map__digital-bridge {
  stroke: color-mix(in srgb, var(--color-map-digital-bridge) 15%, transparent);
  stroke-width: 1.35;
  filter: drop-shadow(0 0 4px color-mix(in srgb, var(--color-map-digital-bridge) 7%, transparent));
}

.tech-map__ward-halo {
  fill: transparent;
  stroke: color-mix(in srgb, var(--color-map-coast-main) 16%, transparent);
  stroke-width: 2.4;
  stroke-linejoin: round;
  opacity: 0.18;
  filter: drop-shadow(0 0 8px color-mix(in srgb, var(--color-map-coast-glow) 12%, transparent));
}

.tech-map__ward-readability {
  fill: var(--color-map-ward-readability);
  opacity: 0.62;
  stroke: transparent;
}

.tech-map__ward-surface {
  fill: url(#wardDeepSurface);
  stroke: transparent;
}

.tech-map__ward-luminous-base {
  fill: url(#wardLuminousBase);
  stroke: transparent;
  opacity: 0.34;
  mix-blend-mode: screen;
  filter: drop-shadow(0 0 16px color-mix(in srgb, var(--color-map-land-lumen) 10%, transparent));
}

.tech-map__ward-glass {
  fill: url(#wardSurfaceGlow);
  stroke: transparent;
  mix-blend-mode: screen;
}

.tech-map__coast-fog,
.tech-map__coast-shadow,
.tech-map__coast-glow,
.tech-map__coast-rim,
.tech-map__coast-trace,
.tech-map__coast-highlight,
.tech-map__coast-energy {
  fill: transparent;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
  vector-effect: non-scaling-stroke;
}

.tech-map__coast-fog {
  stroke: var(--color-map-coast-fog-stroke);
  stroke-width: 14;
  stroke-dasharray: 220 24 68 18 146 34 92 26;
  stroke-dashoffset: 17;
  opacity: 0.32;
  filter: url(#ionizedOuterBloom);
  mix-blend-mode: screen;
}

.tech-map__coast-shadow {
  display: none;
}

.tech-map__coast-glow {
  stroke: var(--color-map-coast-bloom);
  stroke-width: 4.2;
  stroke-dasharray: 128 18 72 16 104 26 46 14;
  stroke-dashoffset: 29;
  opacity: 0.52;
  filter: url(#ionizedSoftHalo);
  mix-blend-mode: screen;
}

.tech-map__coast-energy {
  stroke: var(--color-map-coast-core);
  stroke-width: 1.05;
  opacity: 0.62;
  filter: url(#ionizedCore) drop-shadow(0 0 6px color-mix(in srgb, var(--color-map-coast-inner) 52%, transparent)) drop-shadow(0 0 14px color-mix(in srgb, var(--color-map-coast-glow) 32%, transparent));
  mix-blend-mode: screen;
  animation: coastEnergyPulse 4.8s ease-in-out infinite;
}

.tech-map__coast-energy--soft {
  stroke: var(--color-map-coast-soft);
  stroke-width: 1.35;
  opacity: 0.56;
  filter: url(#ionizedSoftHalo) drop-shadow(0 0 10px color-mix(in srgb, var(--color-map-coast-soft) 34%, transparent));
  animation-duration: 6.4s;
}

.tech-map__coast-energy--primary {
  stroke-width: 1.45;
  opacity: 0.76;
}

.tech-map__coast-energy--peak {
  stroke: var(--color-map-coast-inner);
  stroke-width: 1.75;
  opacity: 0.88;
  filter: url(#ionizedCore) drop-shadow(0 0 7px color-mix(in srgb, var(--color-map-coast-inner) 66%, transparent)) drop-shadow(0 0 18px color-mix(in srgb, var(--color-map-coast-glow) 44%, transparent));
  animation-duration: 3.8s;
}

.tech-map__coast-rim {
  stroke: var(--color-map-coast-rim);
  stroke-width: 1.04;
  stroke-dasharray: 136 18 78 16 52 14 158 22;
  stroke-dashoffset: 11;
  opacity: 0.68;
  filter: url(#ionizedCore) drop-shadow(0 0 6px color-mix(in srgb, var(--color-map-coast-main) 48%, transparent));
  mix-blend-mode: screen;
}

.tech-map__coast-trace {
  stroke: var(--color-map-coast-main);
  stroke-width: 1.8;
  stroke-dasharray: 22 18 46 20 74 28 18 14;
  stroke-dashoffset: 7;
  opacity: 0.06;
  filter: url(#ionizedMicroTurbulence);
  mix-blend-mode: screen;
}

.tech-map__coast-highlight {
  stroke: var(--color-map-coast-core);
  stroke-width: 0.62;
  stroke-dasharray: 46 16 84 24 32 14 108 26;
  stroke-dashoffset: 23;
  opacity: 0.48;
  filter: url(#ionizedCore) drop-shadow(0 0 4px color-mix(in srgb, var(--color-map-coast-inner) 48%, transparent));
  mix-blend-mode: screen;
}

@keyframes coastEnergyPulse {
  0%, 100% {
    opacity: 0.52;
  }
  42% {
    opacity: 0.9;
  }
  58% {
    opacity: 0.68;
  }
}

.tech-map__ward-base {
  display: none;
}

.tech-map__ward-core {
  display: none;
}

.tech-map__ward-outline {
  display: none;
}

.tech-map__ward-sweep {
  fill: transparent;
  stroke: transparent;
  opacity: 0;
  transform-origin: center;
}

.tech-map__ward-material {
  pointer-events: none;
  opacity: 0.78;
  mix-blend-mode: screen;
}

.tech-map__ward-noise {
  fill: var(--color-map-land-texture);
  opacity: 0.16;
  filter: url(#wardTerrainNoise);
}

.tech-map__ward-lumen {
  fill: color-mix(in srgb, var(--color-map-land-texture-soft) 12%, transparent);
  opacity: 0.24;
  filter: blur(20px);
}

.tech-map__ward-lumen--two {
  opacity: 0.18;
}
