.difference-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 7%;
  align-items: center;
}
.difference-map { margin: 0; }
.difference-map svg {
  display: block;
  width: 100%;
  max-width: 550px;
  height: auto;
  margin: auto;
}
.difference-map text {
  text-anchor: middle;
  fill: var(--ink);
  font: 600 16px Montserrat, Arial, sans-serif;
}
.difference-map .difference-detail {
  fill: var(--muted);
  font-size: 12.5px;
  font-weight: 500;
}
.difference-inputs rect,
.difference-core rect,
.difference-result rect {
  fill: none;
  stroke: var(--line);
  stroke-width: 1.3;
}
.difference-core rect,
.difference-result rect { stroke: var(--pgf-orange); }
.difference-core text:not(.difference-detail) { font-size: 22px; }
.difference-result text:not(.difference-detail) { font-size: 18px; }
.difference-halo {
  fill: none;
  stroke: var(--pgf-orange);
  opacity: .25;
  animation: difference-breathe 4s ease-in-out infinite;
}
.difference-wires,
.difference-flow {
  fill: none;
  stroke: var(--line);
  stroke-width: 2;
  stroke-linecap: round;
}
.difference-flow path {
  stroke: var(--pgf-orange);
  stroke-width: 2.5;
  stroke-dasharray: 13 41;
  animation: difference-travel 2.8s linear infinite;
}
.difference-flow path:nth-child(2) { animation-delay: -.8s; }
.difference-flow path:nth-child(3) { animation-delay: -1.5s; }
.difference-map:not(.visible) .difference-flow path,
.difference-map:not(.visible) .difference-halo { animation-play-state: paused; }
@keyframes difference-travel { to { stroke-dashoffset: -108; } }
@keyframes difference-breathe { 50% { opacity: .62; } }
@media (width > 900px) {
  .difference-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
  .difference-grid > .story { grid-area: 1 / 2; }
  .difference-grid > .difference-map { grid-area: 1 / 1; }
}
@media (max-width: 900px) {
  .difference-grid { grid-template-columns: 1fr; gap: 36px; }
  .difference-map { width: min(100%, 650px); }
}
@media (prefers-reduced-motion: reduce) {
  .difference-flow path, .difference-halo { animation: none; }
}
