.vehicle-light-overlay{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .6s ease-in-out;z-index:2}.london-scene[data-force-night=true] .vehicle-light-overlay,html[data-theme=dark] .vehicle-light-overlay{opacity:1}.vehicle-light{position:absolute;display:block;pointer-events:none;opacity:calc(var(--light-intensity, .7) * 1);transform:translate(-50%,-50%)}.vehicle-light--ellipse{border-radius:50%}.vehicle-light--rect{border-radius:2px}.vehicle-light--strip{border-radius:999px}.vehicle-light--headlight{background:radial-gradient(ellipse at center,rgba(255,250,230,.95) 0,rgba(255,235,180,.55) 40%,rgba(255,220,140,.15) 70%,transparent 100%);box-shadow:0 0 6px rgba(255,240,200,.35);mix-blend-mode:screen}.vehicle-light--taillight{background:linear-gradient(180deg,rgba(255,90,70,.85),rgba(220,40,40,.75) 55%,rgba(180,20,30,.55));box-shadow:0 0 4px rgba(255,60,50,.35);mix-blend-mode:screen}.vehicle-light--interior,.vehicle-light--window{background:linear-gradient(180deg,rgba(255,230,170,.35),rgba(255,210,130,.18) 60%,rgba(255,200,110,.08));border-radius:2px;mix-blend-mode:soft-light;transform:none}.vehicle-light--roof{background:rgba(255,180,70,.7);border-radius:2px;box-shadow:0 0 3px rgba(255,170,60,.35);mix-blend-mode:screen}.vehicle-light--sensor{background:radial-gradient(circle,rgba(90,150,220,.35) 0,rgba(60,120,200,.12) 55%,transparent 100%);mix-blend-mode:screen}.vehicle-light--running{background:rgba(255,245,210,.75);border-radius:2px;box-shadow:0 0 3px rgba(255,230,160,.3);mix-blend-mode:screen}.vehicle-light--road-front{background:radial-gradient(ellipse at center,rgba(255,245,210,.35) 0,rgba(255,230,170,.1) 45%,transparent 75%);mix-blend-mode:soft-light;filter:none}.vehicle-light--road-rear{background:radial-gradient(ellipse at center,rgba(255,70,60,.22) 0,rgba(200,30,30,.08) 45%,transparent 75%);mix-blend-mode:soft-light}.vehicle-light-overlay--tube .vehicle-light--window{opacity:calc(var(--light-intensity, .35) * 1.05)}.vehicle-light-overlay--tube .vehicle-light--road-front{background:radial-gradient(ellipse at center,rgba(255,220,150,.2) 0,rgba(200,180,120,.06) 50%,transparent 75%)}.vehicle-light-overlay--debug .vehicle-light{outline:1px solid rgba(0,255,200,.85);outline-offset:1px;opacity:1!important}.vehicle-light-overlay--debug{opacity:1!important}@media (prefers-reduced-motion:reduce){.vehicle-light-overlay{transition-duration:.01ms}}.london-scene__vehicle-stack{position:relative;display:block;width:100%;line-height:0}.london-scene__vehicle-image--body{position:relative;z-index:2}.london-scene__wheel-anchor{position:absolute;z-index:1;aspect-ratio:1/1;line-height:0;transform:translate(-50%,-50%);pointer-events:none;overflow:visible}.london-scene__wheel-spin{display:block;width:100%;height:100%;transform-origin:50% 50%;will-change:transform;animation-name:london-wheel-spin;animation-timing-function:linear;animation-iteration-count:infinite;animation-duration:calc(var(--wheel-duration, 1.2s) / var(--wheel-speed, 1) / var(--traffic-rate, 1));animation-play-state:paused}.london-scene__wheel{display:block;width:100%;height:100%;max-width:none;object-fit:contain;user-select:none;pointer-events:none}@keyframes london-wheel-spin{0%{transform:rotate(0deg)}to{transform:rotate(calc(var(--wheel-spin-dir, 1) * 1turn))}}.london-scene[data-transport=animated][data-transport-playing=true] .london-scene__vehicle--articulated[data-wheels=on][data-transport-active=true] .london-scene__wheel-spin{animation-play-state:running}@media (prefers-reduced-motion:reduce){.london-scene__wheel-spin{animation:none!important}}