/* Hero light: a dim panel of light along the right edge (.lr-panel), soft shafts (.lr-shafts.soft) and short streaks that
   travel left and drift back (.lr-trav.slow). Other classes are earlier variants kept for reference. Motion is off for reduced motion. */
.lr{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.lr-src{position:absolute;border-radius:50%;filter:blur(70px);animation:lrBreathe 9s ease-in-out infinite alternate}
.lr-beams{position:absolute;width:2200px;height:2200px;border-radius:50%;filter:blur(9px);opacity:.9;mix-blend-mode:screen;
  background:repeating-conic-gradient(from 0deg,rgba(206,176,255,0) 0deg,rgba(206,176,255,.30) 2.5deg,rgba(206,176,255,0) 6deg,rgba(206,176,255,0) 11deg,rgba(160,120,245,.20) 13.5deg,rgba(160,120,245,0) 17deg,rgba(160,120,245,0) 24deg);
  -webkit-mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.7) 14%,rgba(0,0,0,.25) 30%,transparent 46%);mask-image:radial-gradient(circle,#000 0,rgba(0,0,0,.7) 14%,rgba(0,0,0,.25) 30%,transparent 46%);
  animation:lrSway 18s ease-in-out infinite alternate}
.lr-streak{position:absolute;height:3px;border-radius:2px;background:linear-gradient(90deg,rgba(217,200,255,0),#f3ecff 55%,rgba(217,200,255,0));box-shadow:0 0 8px 1px rgba(168,121,255,.85),0 0 22px 2px rgba(123,69,196,.55);animation:lrDrift 16s ease-in-out infinite alternate,lrTwinkle 6s ease-in-out infinite}
.lr-streak.dim{opacity:.55;height:2px}.lr-streak.s2{animation-duration:21s,8s;animation-delay:-7s,-2s}.lr-streak.s3{animation-duration:13s,5s;animation-delay:-3s,-4s}
@keyframes lrBreathe{from{opacity:.8;transform:scale(1)}to{opacity:1;transform:scale(1.07)}}
@keyframes lrSway{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
@keyframes lrDrift{from{transform:translateX(-24px)}to{transform:translateX(24px)}}
@keyframes lrTwinkle{0%,100%{filter:brightness(1)}50%{filter:brightness(1.4)}}
@media (max-width:900px){.lr-streak{display:none}}
@media (prefers-reduced-motion:reduce){.lr-src,.lr-beams,.lr-streak{animation:none}}
/* light from the right side: a tall, dim panel of light along the right edge; beams fan left from it */
.lr-panel{position:absolute;right:-300px;top:-15%;width:560px;height:130%;border-radius:50%;filter:blur(100px);background:rgba(123,69,196,.42);animation:lrBreathe 10s ease-in-out infinite alternate}
.lr-panel.core{right:-200px;width:300px;top:5%;height:90%;background:rgba(196,160,255,.22);filter:blur(70px);animation-delay:-5s}
/* streaks that travel left from the light and drift back */
.lr-trav{position:absolute;height:3px;border-radius:2px;background:linear-gradient(90deg,rgba(217,200,255,0),#f3ecff 55%,rgba(217,200,255,0));box-shadow:0 0 8px 1px rgba(168,121,255,.8),0 0 22px 2px rgba(123,69,196,.5);animation:lrTravel 18s ease-in-out infinite alternate}
.lr-trav.dim{opacity:.5;height:2px}.lr-trav.t2{animation-duration:24s;animation-delay:-9s}.lr-trav.t3{animation-duration:14s;animation-delay:-4s}.lr-trav.t4{animation-duration:21s;animation-delay:-15s}
@keyframes lrTravel{0%{transform:translateX(0);opacity:.15}20%{opacity:1}80%{opacity:1}100%{transform:translateX(-260px);opacity:.25}}
/* horizontal light shafts, like light through blinds */
.lr-shafts{position:absolute;right:0;top:-10%;width:78%;height:120%;filter:blur(7px);transform:rotate(-5deg);
  background:repeating-linear-gradient(180deg,rgba(206,176,255,0) 0,rgba(206,176,255,0) 34px,rgba(206,176,255,.16) 40px,rgba(206,176,255,0) 48px,rgba(206,176,255,0) 86px,rgba(160,120,245,.11) 92px,rgba(160,120,245,0) 104px);
  -webkit-mask-image:linear-gradient(to left,#000 0,rgba(0,0,0,.5) 45%,transparent 95%);mask-image:linear-gradient(to left,#000 0,rgba(0,0,0,.5) 45%,transparent 95%);
  animation:lrShift 16s ease-in-out infinite alternate}
@keyframes lrShift{from{transform:rotate(-5deg) translateY(-14px)}to{transform:rotate(-3deg) translateY(14px)}}
@media (max-width:900px){.lr-trav{display:none}}
@media (prefers-reduced-motion:reduce){.lr-panel,.lr-trav,.lr-shafts{animation:none}}
/* G3b: fainter, shorter shafts kept to the right edge; streaks a little slower */
.lr-shafts.soft{width:38%;filter:blur(9px);opacity:.6;
  -webkit-mask-image:linear-gradient(to left,#000 0,rgba(0,0,0,.4) 40%,transparent 85%);mask-image:linear-gradient(to left,#000 0,rgba(0,0,0,.4) 40%,transparent 85%)}
.lr-trav.slow{animation-duration:25s}.lr-trav.slow.t2{animation-duration:33s}.lr-trav.slow.t3{animation-duration:20s}.lr-trav.slow.t4{animation-duration:29s}
.lr-trav.slow{opacity:.7;height:2px}.lr-trav.slow.dim{opacity:.4}
@keyframes lrTravelShort{0%{transform:translateX(0);opacity:.1}25%{opacity:.75}75%{opacity:.75}100%{transform:translateX(-170px);opacity:.15}}
.lr-trav.slow{animation-name:lrTravelShort}
@media (max-width:700px){.lr-panel{width:300px;right:-210px;opacity:.7}.lr-panel.core{width:160px;right:-120px}.lr-shafts.soft{width:30%}}

/* fade the light out before the section edge, so it never ends in a hard line */
.lr{-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 40%,transparent 90%);mask-image:linear-gradient(to bottom,#000 0,#000 40%,transparent 90%)}
