/* The light itself. It sits BEHIND the media and is blurred far past any edge,
   so what reaches the eye is a wash on the page around the frame - never a
   visible copy of the picture. */
.rl-stage { position: relative; }

.rl-stage::before {
  content: "";
  position: absolute;
  inset: -9%;
  z-index: -1;
  pointer-events: none;
  border-radius: inherit;
  background:
    radial-gradient(46% 52% at 8% 6%, var(--rl-tl, transparent), transparent 68%),
    radial-gradient(46% 52% at 92% 6%, var(--rl-tr, transparent), transparent 68%),
    radial-gradient(46% 52% at 8% 94%, var(--rl-bl, transparent), transparent 68%),
    radial-gradient(46% 52% at 92% 94%, var(--rl-br, transparent), transparent 68%);
  filter: blur(42px) saturate(1.15);
  /* Self-fading, so a clipping ancestor never lands on a visible edge. The
     rail sits inside `overflow: hidden`, and a glow that is still bright where
     it gets cut reads as a hard band - which is exactly the "section breaker
     under the logos" Giovani flagged. It is transparent well before any
     boundary can reach it. */
  -webkit-mask-image: radial-gradient(closest-side, #000 40%, rgba(0,0,0,0.35) 72%, transparent 100%);
  mask-image: radial-gradient(closest-side, #000 40%, rgba(0,0,0,0.35) 72%, transparent 100%);
  opacity: 0;
  transition: opacity 1200ms var(--def-ease, cubic-bezier(0.2, 0.7, 0.2, 1));
}

.rl-stage.is-lit::before { opacity: 0.42; }

/* The rail carries more of it, because there the media is the whole subject
   and the page around it is flat black. */
/* Outside the card, not inside it. The line Giovani reads as a section breaker
   under the logos is the card's own top edge starting hard against dead black:
   measured in the gutter columns, that band is flat at 6-7 luminance and then
   steps 40.7 in one row where the card begins. A glow trapped INSIDE the card
   cannot touch that edge - which is what `inset: 2%` did. It sits outside now,
   and the self-fading mask is what makes that safe against the rail's clip. */
.def-film-stage.rl-stage::before {
  inset: -5%;
  filter: blur(64px) saturate(1.18);
}

.def-film-stage.rl-stage.is-lit::before { opacity: 0.52; }

@media (prefers-reduced-motion: reduce) {
  .rl-stage::before { display: none; }
}
