.site-loader {
  position: fixed; inset: 0; z-index: 100; display: grid; place-items: center;
  padding: 24px; background: #727a77; visibility: hidden; opacity: 0; pointer-events: none;
  transition: opacity .3s ease, visibility 0s .3s;
}
.is-loading .site-loader { visibility: visible; opacity: 1; pointer-events: auto; transition: none; touch-action: none; }
.site-loader-inner { display: grid; justify-items: center; gap: 13px; }
.site-loader-ring {
  --progress: 0%; position: relative; display: grid; place-items: center;
  width: 136px; height: 136px; border-radius: 50%;
  background: conic-gradient(#fff var(--progress), rgb(255 255 255 / .25) 0);
}
.site-loader-scene { position: absolute; inset: 5px; overflow: hidden; border-radius: 50%; background: #7b8580; }
.site-loader-trees { position: absolute; top: 17px; left: -16px; display: flex; gap: 14px; width: max-content; animation: loader-trees 3s linear infinite; }
.site-loader-trees span { flex: 0 0 28px; width: 28px; height: 50px; background: url("../img/loader-linden.svg") center / contain no-repeat; }
.site-loader-road { position: absolute; left: 0; right: 0; top: 92px; height: 12px; background: #929b95; border-top: 1px solid rgb(255 255 255 / .2); }
.site-loader-road::after { content: ""; position: absolute; top: 5px; left: 0; right: 0; border-top: 1px dashed rgb(255 255 255 / .4); }
.site-loader-car { position: absolute; width: 122px; height: 46px; left: 50%; top: 53px; margin-left: -61px; background: url("../img/loader-car.svg?v=20260928-2") center / contain no-repeat; animation: loader-car 1.3s ease-in-out infinite; }
.site-loader-percent { color: #fff; font: 600 1.05rem/1.2 Manrope, sans-serif; font-variant-numeric: tabular-nums; }
.site-loader-continue { min-height: 44px; margin-top: 12px; padding: 10px 18px; border: 1px solid rgb(255 255 255 / .7); border-radius: 4px; background: transparent; color: #fff; font: 700 .9rem/1.4 Manrope, sans-serif; cursor: pointer; }
.site-loader-continue:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
@keyframes loader-trees { to { transform: translateX(-84px); } }
@keyframes loader-car { 50% { transform: translateY(-1px); } }
@media (prefers-reduced-motion: reduce) { .site-loader-trees, .site-loader-car { animation: none; } .site-loader { transition: none; } }
