.transport-motion{position:absolute;inset:0;pointer-events:none;overflow:hidden;--transport-ink:.7}
.transport-routes{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}
.transport-route{stroke:#242723;stroke-width:.6;opacity:calc(var(--transport-ink)*.38);vector-effect:non-scaling-stroke}
.transport-route-ferry{stroke-dasharray:3 5}
.transport-route-tram{opacity:calc(var(--transport-ink)*.24)}
.transport-route-train{opacity:calc(var(--transport-ink)*.22);stroke-dasharray:7 2}
.transport-vehicle{position:absolute;left:0;top:0;width:44px;height:44px;padding:9px;border:0;background:none;color:#242723;pointer-events:auto;will-change:transform;opacity:var(--transport-ink);cursor:default}
.transport-vehicle>svg{display:block;width:26px;height:26px;overflow:visible;transform-origin:50% 50%;fill:var(--paper,#f3f0e9);stroke:currentColor;stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.transport-vehicle>span{position:absolute;left:50%;bottom:calc(100% - 5px);transform:translateX(-50%);padding:6px 8px;border:1px solid #24272325;background:var(--paper,#f3f0e9);font:9px/1.4 Geist,monospace;white-space:nowrap;opacity:0;pointer-events:none}
.transport-vehicle:is(:hover,:focus-visible){z-index:3;opacity:1}
.transport-vehicle:is(:hover,:focus-visible)>span{opacity:1}
.transport-vehicle:focus-visible{outline:1px solid currentColor;outline-offset:-7px}
.transport-motion[hidden],.transport-route[hidden],.transport-vehicle[hidden]{display:none!important}
@media(max-width:760px){.transport-vehicle>span{font-size:8px;max-width:230px;white-space:normal}}
@media(prefers-reduced-motion:reduce){.transport-vehicle{will-change:auto}}
/* Aircraft are authored airport illustrations; their path is intentionally not
   styled as an OSM route. Hidden rest periods are handled by the controller. */
.transport-aircraft>svg{stroke-width:.9}
