
.rev{opacity:1;transform:none}
.js .rev{opacity:0;transform:translateY(20px);
  transition:opacity var(--dur-reveal) var(--ease),
             transform var(--dur-reveal) var(--ease)}
.js .rev.on{opacity:1;transform:none}

.map-desktop .route{transition:stroke-dashoffset var(--dur-scene) var(--ease)}
.map-desktop .node{transition:opacity .3s var(--ease)}
.js .map-desktop:not(.drawn) .route{stroke-dashoffset:var(--len)}
.js .map-desktop:not(.drawn) .node{opacity:0}

.map .pulse{fill:var(--copper)}

.map-box{transition:transform .25s ease-out}
@media (pointer:coarse){.map-box{transition:none}}

.map-box{border-top-color:var(--copper)}

@media (prefers-reduced-motion:reduce){
  .js .rev{opacity:1;transform:none}
  .js .map-desktop:not(.drawn) .route{stroke-dashoffset:0}
  .js .map-desktop:not(.drawn) .node{opacity:1}
  .map .pulse{display:none}
  .map-box{transition:none;transform:none!important}
}
