/* CONTACT epilogue r43 (contact-epilogue-r43.js): layers added only after SEND reaches 'sent'.
   Values are the approved storyboard job r6 (work/r44/assets/epilogue-spec.json). */
.contact-crossing .epi-r43-group,.contact-crossing .epi-r43-stars{position:absolute;inset:0;pointer-events:none}
.contact-crossing .epi-r43-frame{position:absolute;pointer-events:none}
.contact-crossing .epi-r43-frame>*,.contact-crossing .epi-r43-light>*{position:absolute;pointer-events:none}
.ctl .contact-crossing img.epi-r43-office-img{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none;display:block;pointer-events:none}
/* r52d: the courier's colour grade (filter:url(#epi-r43-actor), set by the module) must not re-raster door-rest softer:
   on its own layer the grade runs on the already drawn image, so his edges stay as the renderer drew them */
.contact-crossing.epi-r43 .crossing-actor img{will-change:filter}
/* only while the renderer keeps .crossing-actor on its own layer (same condition as contact-crossing-motion-r11.css:47):
   without that layer the plain filter path is already exact, and a lone layer at his fractional position would blur him */
@media(prefers-reduced-motion:reduce){:where(html:not([data-motion-mode="full"])) .contact-crossing.epi-r43 .crossing-actor img{will-change:auto}}
/* dusk colour on signals / gates and pedestrians (matrix values animated by the module) */
.contact-crossing.epi-r43-f .crossing-world>.crossing-signal,.contact-crossing.epi-r43-f .crossing-world>.crossing-gate,
.contact-crossing.epi-r43-f .crossing-world>.crossing-far-signal,.contact-crossing.epi-r43-f .crossing-world>.crossing-far-gate,
.contact-crossing.epi-r43-f .crossing-world>.crossing-near-right-signal,.contact-crossing.epi-r43-f .crossing-world>.crossing-near-right-gate,
.contact-crossing.epi-r43-f .crossing-world>.crossing-far-left-signal,.contact-crossing.epi-r43-f .crossing-world>.crossing-far-left-gate{filter:url(#epi-r43-sig)!important}
.contact-crossing.epi-r43-f .crossing-world>.crossing-pedestrian,.contact-crossing.epi-r43-f .crossing-world>.crossing-cyclist{filter:url(#epi-r43-ped)!important}
/* first stars above the lettering */
.contact-crossing .epi-r43-star-slot svg{display:block;width:100%;height:100%;overflow:visible}
.r43-star{filter:drop-shadow(0 0 1.5px rgba(255,240,210,.95)) drop-shadow(0 0 5px rgba(255,214,160,.55));animation:r43-twinkle 2.6s ease-in-out infinite;transform-origin:50% 50%}
@keyframes r43-twinkle{0%,100%{opacity:.62;transform:scale(.78) rotate(0deg)}50%{opacity:1;transform:scale(1) rotate(8deg)}}
.contact-crossing.epi-r43-paused .r43-star{animation-play-state:paused}
.contact-crossing.epi-r43-still .r43-star,html.reduced-motion .r43-star,.ctl.reduced-motion .r43-star{animation:none;opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){:where(html:not([data-motion-mode="full"])) .r43-star{animation:none;opacity:1;transform:none}}
@media(forced-colors:active){.contact-crossing .epi-r43-stars{display:none}}
