/* Lightweight map life: one compositor-driven travelling spark plus a few ambient motes. */
.m3j-map{isolation:isolate}
.m3j-path-spark{position:absolute;z-index:1;top:24px;left:50%;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff,0 0 20px var(--map-accent),0 0 34px var(--map-accent-2);opacity:0;pointer-events:none;transform:translate3d(-50%,0,0);will-change:transform,opacity}
.m3j-chapter.is-map-active.is-map-visible .m3j-path-spark{opacity:.78;animation:m3j-path-spark-travel 16s linear infinite}
.m3j-chapter:not(.is-map-active) .m3j-atmosphere *,
.m3j-chapter:not(.is-map-visible) .m3j-atmosphere *,
.m3j-chapter:not(.is-map-visible) .m3j-node *,
.m3j-chapter:not(.is-map-visible) .m3j-path-spark,
.m3j-document-hidden .m3j-page *{animation-play-state:paused!important}
.m3j-route.traversed:after{content:"";position:absolute;inset:-2px;border:0;border-radius:inherit;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--map-accent) 75%,white),transparent) 0 100%/42% 2px no-repeat;opacity:.55;animation:m3j-route-soft-flow 4.8s linear infinite;pointer-events:none}
@keyframes m3j-path-spark-travel{0%{transform:translate3d(-50%,0,0);opacity:0}5%,92%{opacity:.78}100%{transform:translate3d(-50%,var(--m3j-spark-travel),0);opacity:0}}
@keyframes m3j-route-soft-flow{to{background-position:190% 100%}}
@media(max-width:760px),(pointer:coarse){
 .m3j-atmosphere:before,.m3j-atmosphere:after{display:none!important}
 .m3j-atmosphere i:nth-child(n+3){display:none!important}
 .m3j-node-copy,.m3j-chapter>header{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 .m3j-node.current>a{animation:none!important}
 .m3j-route.traversed{filter:none!important}
 .m3j-route.traversed:after{animation-duration:7s;opacity:.4}
 .m3j-chapter.is-map-active.is-map-visible .m3j-path-spark{animation-duration:22s;opacity:.62}
}
@media(prefers-reduced-motion:reduce){.m3j-path-spark,.m3j-route.traversed:after{display:none!important}.m3j-page *{animation:none!important}}
