.modules-ambient { --ambient-gutter: clamp(96px, calc((100vw - 1280px) / 2), 260px); }
.ambient-rail { mask-image: linear-gradient(90deg, #000 70%, transparent); }
.ambient-rail::before,
.ambient-rail::after {
    content: '';
    position: absolute;
    left: 8px;
    width: clamp(48px, 4vw, 80px);
    aspect-ratio: 1;
    background: #9c7f92;
    opacity: .18;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    animation: ambient-identity-drift 16s ease-in-out infinite alternate;
}
.ambient-rail--left::before { top: 24%; mask-image: url('/assets/symbols/promoter.svg'); }
.ambient-rail--left::after { top: 68%; mask-image: url('/assets/symbols/rbs.svg'); animation-delay: -18s; }
.ambient-rail--right::before { top: 18%; mask-image: url('/assets/symbols/cds.svg'); background: #b21573; animation-delay: -8s; }
.ambient-rail--right::after { top: 72%; mask-image: url('/assets/symbols/primer.svg'); background: #b21573; animation-delay: -25s; }
.modules-ambient[data-state="paused"] .ambient-rail::before,
.modules-ambient[data-state="paused"] .ambient-rail::after { animation-play-state: paused; }
.modules-ambient[data-motion="reduced"] .ambient-rail::before,
.modules-ambient[data-motion="reduced"] .ambient-rail::after { animation: none; }
.modules-ambient[data-motion="slow"] .ambient-rail::before,
.modules-ambient[data-motion="slow"] .ambient-rail::after { animation-duration: 160s; }
@keyframes ambient-identity-drift {
    from { transform: translate3d(0, -48px, 0) rotate(-10deg); }
    to { transform: translate3d(24px, 48px, 0) rotate(12deg); }
}
