/* Shared waiting indicator. It occupies no space in the surrounding layout. */
.site-spinner{display:inline-block;box-sizing:border-box;flex:none;width:1.2rem;height:1.2rem;border:.1rem solid currentColor;border-right-color:transparent;border-radius:50%;color:#f39f39;vertical-align:middle;opacity:0;animation:site-spinner-turn .8s linear infinite,site-loader-appear 0s .2s forwards;pointer-events:none}
.site-spinner[hidden],.site-load-error[hidden]{display:none}
.site-loading-marker{position:fixed;z-index:1000;margin:0}
.site-image-waiting{visibility:hidden}
.site-image-arrived{animation:site-image-arrive .15s ease-out}
.site-image-failed{visibility:hidden}
.site-load-error{position:fixed;z-index:1000;display:block;width:1.2rem;height:1.2rem;color:#949ba4;pointer-events:none}
.site-load-error>svg{display:block;width:100%;height:100%}
@keyframes site-spinner-turn{to{transform:rotate(360deg)}}
@keyframes site-loader-appear{to{opacity:1}}
@keyframes site-image-arrive{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.site-spinner{animation:site-spinner-turn 2s linear infinite,site-loader-appear 0s .2s forwards}.site-image-arrived{animation:none}}
