.nibl-camera-scene{isolation:isolate}
.nibl-layers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.camera-hit{position:absolute;inset:0;clip-path:polygon(58% 63%,75% 63%,76% 88%,58% 88%);border:0;background:transparent;cursor:pointer;z-index:3;touch-action:pan-y}
.camera-hit:focus-visible{outline:none}
@media(hover:hover){.camera-hit:hover+.camera-sunlight{opacity:1}}
.camera-hit:focus-visible+.camera-sunlight{opacity:1}
.camera-running .camera-sunlight{opacity:0!important}
.camera-sunlight .deck-rays{stroke-width:2.5}
.phone-photo,.phone-flash{opacity:0}
.photo-taken .phone-photo{opacity:1}
.photo-fading .phone-photo{opacity:0;transition:opacity .75s ease}
.camera-running .phone-flash{animation:camera-shutter .48s ease-out both}
.camera-local-flash{opacity:0;pointer-events:none;mix-blend-mode:screen}
.camera-running .camera-local-flash{animation:local-shutter .48s ease-out both}
@keyframes local-shutter{0%{opacity:0}15%{opacity:.95}65%{opacity:.12}100%{opacity:0}}
.tram-out,.tram-in{transform-origin:0 0}
.tram-in{opacity:0}
.cafe-walker{opacity:0;pointer-events:none}
.coffee-steam{opacity:0;pointer-events:none;transition:opacity .6s ease}
.tram-running .coffee-steam{opacity:1}
.steam-wisp{opacity:0}
.steam-wisp path{fill:none;stroke:#fffdf4;stroke-width:8;stroke-linecap:round;filter:blur(.6px) drop-shadow(0 0 2px #62594d88)}
.tram-running .steam-wisp{animation:coffee-rise 2.9s ease-out infinite;animation-delay:var(--steam-delay)}
@keyframes coffee-rise{0%{opacity:0;transform:translate(0,4px)}15%{opacity:.94}55%{opacity:.8}80%{opacity:.42}100%{opacity:0;transform:translate(10px,-34px)}}
.camera-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@keyframes camera-shutter{0%{opacity:0}15%{opacity:1}100%{opacity:0}}
/* Vehicle transforms are updated as SVG attributes to avoid soft compositor upscaling. */
@media(prefers-reduced-motion:reduce){.camera-running .phone-flash,.camera-running .camera-local-flash{animation:none}.photo-fading .phone-photo{transition:none}}
@media(prefers-reduced-motion:reduce){.coffee-steam{display:none;transition:none}.tram-running .steam-wisp{animation:none}}
