/* Reuse the existing physical coastlines; geographic clips add no border lines. */
.market-map__continent {
  fill: var(--orange);
  fill-rule: evenodd;
  fill-opacity: .24;
  stroke: var(--orange);
  stroke-opacity: .65;
  stroke-width: 1.25;
  stroke-linejoin: round;
  opacity: 0;
  pointer-events: none;
}

.market-map.is-connected .market-map__continent {
  opacity: 1;
}

.market-map__market {
  min-height: 0;
  cursor: default;
  pointer-events: none;
}

.market-map__market span {
  background: transparent;
  transition: none;
}

/* SVG user-space strokes and measured dashes scale together in every engine. */
.market-map #marketLand path,
.market-map__routes path {
  vector-effect: none;
}

/* Dashes exist only as inline styles during the single drawing sequence. */
.market-map__routes path {
  stroke-dasharray: none;
  stroke-dashoffset: 0;
  transition: none;
}

.market-map__routes path.is-drawing {
  stroke: var(--orange);
  stroke-width: 1.25;
  opacity: .85;
}

.market-map.is-connected .market-map__routes path {
  stroke: var(--orange);
  stroke-width: 1.25;
  opacity: .85;
}

.market-map.is-connected .market-map__nodes {
  fill: var(--orange);
}

.market-map__nodes circle {
  transition: none;
}

.market-map__ripple {
  fill: none;
  stroke: var(--orange);
  stroke-width: 1.4;
  vector-effect: none;
  opacity: 0;
  pointer-events: none;
}

/* Keep mobile labels on the same 1200 × 480 drawing, not in a legend below it. */
@media (max-width: 820px) {
  .market-map__markets {
    position: absolute;
    inset: 0;
    display: block;
    margin: 0;
  }

  .market-map__market {
    position: absolute;
    left: var(--x);
    top: var(--y);
    min-height: 0;
    padding: 0;
    font-size: clamp(10px, 2.6vw, 14px);
    line-height: 1.2;
    transform: translate(-50%, 3px);
  }

  .market-map__market span {
    padding: 0;
    border: 0;
  }

  .market-map__origin {
    position: absolute;
    display: block;
    left: 83.2%;
    top: 45%;
    margin: 0;
    padding: 0;
    background: transparent;
    font-size: clamp(10px, 2.6vw, 13px);
    line-height: 1.2;
    text-align: right;
    white-space: nowrap;
    transform: translateX(-100%);
  }

  .market-map__origin span {
    display: block;
  }

  .market-map__origin span::before {
    content: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .market-map__continent {
    transition: none;
  }

  .market-map__routes path {
    stroke-dasharray: none;
    stroke-dashoffset: 0;
  }

  .market-map__ripple {
    display: none;
  }
}
