/* Shared marker motions. E combines C's double beat with D's ground ellipse. */
[data-motion] .motion-ripples{position:absolute;left:50%;top:50%;width:80px;height:80px;max-width:none;overflow:visible;transform:translate(-50%,-50%);pointer-events:none}
[data-motion] .motion-ripples circle{fill:none;stroke:currentColor;stroke-width:.85;vector-effect:non-scaling-stroke;opacity:0;r:3px;animation-duration:var(--motion-duration);animation-timing-function:linear;animation-iteration-count:infinite}
[data-motion] .access-site-pulse b,.access-view[data-motion] .access-site-pulse b{animation:motion-core var(--motion-duration) ease-in-out infinite}
[data-motion=a] .motion-ripples circle{animation-name:motion-single;animation-delay:-.55s}
[data-motion=b] .motion-ripples circle{animation-name:motion-double;animation-delay:-.5s;stroke-width:.7}
[data-motion=b] .motion-ripples circle:nth-child(2){animation-delay:-2.5s}
[data-motion=c] .motion-ripples circle{animation-name:motion-echo;animation-delay:-.55s;stroke-width:1}
[data-motion=c] .motion-ripples circle:nth-child(2){animation-delay:-.15s}
[data-motion=d] .motion-ripples{transform:translate(-50%,-50%) rotate(2deg) scaleY(.48)}
[data-motion=d] .motion-ripples circle{animation-name:motion-ground;animation-delay:-.7s;stroke-width:.85}
[data-motion=e] .motion-ripples{transform:translate(-50%,-50%) rotate(2deg) scaleY(.48)}
[data-motion=e] .motion-ripples circle{animation-name:motion-echo-ground;animation-delay:-.55s;stroke-width:1}
[data-motion=e] .motion-ripples circle:nth-child(2){animation-delay:-.15s}
.access-view[data-motion=e]:not(.has-arrived) .motion-ripples circle{animation:none;opacity:0}
.access-view[data-motion=e]:not(.has-arrived) .access-site-pulse b{animation:none;opacity:.7}
.access-view[data-motion=e].has-arrived .motion-ripples circle{animation-delay:.3s}
.access-view[data-motion=e].has-arrived .motion-ripples circle:nth-child(2){animation-delay:.7s}
.access-view[data-motion=e].has-arrived .access-site-pulse b{animation-delay:.3s}
@keyframes motion-core{0%,100%{opacity:.64}40%,55%{opacity:.95}}
@keyframes motion-single{0%{r:3px;opacity:0}10%{r:7px;opacity:.72}40%{r:16px;opacity:.42}78%,100%{r:26px;opacity:0}}
@keyframes motion-double{0%{r:3px;opacity:0}10%{r:8px;opacity:.6}55%{r:23px;opacity:.3}90%,100%{r:30px;opacity:0}}
@keyframes motion-echo{0%{r:3px;opacity:0}7%{r:8px;opacity:.85}25%{r:19px;opacity:.45}45%,100%{r:25px;opacity:0}}
@keyframes motion-ground{0%{r:3px;opacity:0}12%{r:8px;opacity:.7}45%{r:23px;opacity:.4}90%,100%{r:35px;opacity:0}}
@keyframes motion-echo-ground{0%{r:3px;opacity:0}7%{r:10px;opacity:.85}25%{r:26px;opacity:.45}45%,100%{r:35px;opacity:0}}
body[data-paused=true] [data-motion] .motion-ripples circle,body[data-paused=true] [data-motion] .access-site-pulse b,[data-offscreen=true] .motion-ripples circle,[data-offscreen=true] .access-site-pulse b{animation-play-state:paused}
.motion-return{color:inherit;text-decoration:none;display:inline-flex;align-items:center;min-height:44px;gap:12px}
.motion-return:hover{text-decoration:underline;text-underline-offset:5px}
@media(prefers-reduced-motion:reduce){body:not(.motion-study-page) [data-motion] .motion-ripples circle{animation:none;r:18px;opacity:.25}body:not(.motion-study-page) [data-motion] .motion-ripples circle:nth-child(2){r:28px;opacity:.12}body:not(.motion-study-page) .access-view[data-motion] .access-site-pulse b{animation:none;opacity:.75}}
