/* ROWEROWY ODKRYWCA — ekran ładowania */
.ro-loader,.ro-loader *{box-sizing:border-box}
.ro-loader{position:fixed;inset:0;z-index:999999;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100svh;padding:35px 12px 25px;overflow:hidden;isolation:isolate;background:radial-gradient(ellipse at 50% 40%,#1b3050,#0b1426 82%);color:#eaf2ff;font-family:system-ui,Arial,sans-serif;opacity:1;transition:opacity .7s ease-in-out}
.ro-loader.ro-fade-out{opacity:0;pointer-events:none}
.ro-map{width:80%;max-width:none;overflow:visible}
.ro-stop{opacity:.65;transition:opacity .2s}
.ro-stop.visited{opacity:1}
/* transform-origin w SVG podawany w lokalnych współrzędnych viewBox */
#roRider .ro-wheel{animation:ro-wheel-spin .45s linear infinite;animation-play-state:paused;transform-box:view-box}
#roRider.ro-moving .ro-wheel{animation-play-state:running}
@keyframes ro-wheel-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
#roRider .ro-crank{animation:ro-crank-spin .85s linear infinite;animation-play-state:paused;transform-box:view-box}
#roRider.ro-moving .ro-crank{animation-play-state:running}
@keyframes ro-crank-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.ro-brand{margin-top:12px;font-size:clamp(17px,2.5vw,27px);font-weight:850;letter-spacing:2px;text-align:center}
.ro-brand span{color:#91c3ff}
.ro-status{min-height:22px;margin-top:12px;color:#afc2df;font-size:13px;text-align:center;transition:opacity .16s}
.ro-progress{width:175px;height:3px;margin:22px 0;background:#344563;border-radius:8px;overflow:hidden}
.ro-fill{width:0;height:100%;background:#579aff}
#roCamera{pointer-events:none}
#roCamera.ro-camera-shot{animation:ro-camera-shot .75s ease-in-out forwards}
@keyframes ro-camera-shot{0%{opacity:0}15%{opacity:1}75%{opacity:1}100%{opacity:0}}
.ro-camera-rays{opacity:0;transform-box:fill-box;transform-origin:center}
#roCamera.ro-camera-shot .ro-camera-rays{animation:ro-camera-rays .4s ease-out .2s both}
@keyframes ro-camera-rays{0%{opacity:0;transform:scale(.5)}35%{opacity:1;transform:scale(1.15)}100%{opacity:0;transform:scale(1.4)}}
@media(max-width:768px){.ro-map{width:100%;max-width:450px}.ro-loader{padding:20px 8px}.ro-brand{font-size:16px;letter-spacing:1px}.ro-status{padding:0 12px}}
@media(prefers-reduced-motion:reduce){.ro-loader,.ro-stop,#roCamera,.ro-camera-rays{animation:none!important;transition:none!important}#roRider .ro-wheel,#roRider .ro-crank{animation:none!important}}
