/* ---------- Light streaks (v3 B energy, CSS only: gradients + transforms, no filters, no WebGL) ---------- */
.hero-stage{position:relative;isolation:isolate}
.v6-light{position:absolute;inset:-14% -10% -4%;z-index:-1;pointer-events:none;overflow:hidden;
  background:radial-gradient(70% 60% at 78% 18%,#0e5fd666,transparent 70%),radial-gradient(60% 50% at 10% 85%,#0a6fd033,transparent 70%);
  -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}
.v6-rails{position:absolute;inset:-40% -50%;transform:rotate(-28deg);animation:v6-drift 22s ease-in-out infinite alternate;will-change:transform}
@keyframes v6-drift{to{transform:rotate(-28deg) translate3d(0,-4%,0)}}
.v6-rails i{position:absolute;left:0;right:0;top:var(--y);height:var(--h);
  -webkit-mask-image:linear-gradient(90deg,transparent 18%,#000 42%,#000 62%,transparent 86%);mask-image:linear-gradient(90deg,transparent 18%,#000 42%,#000 62%,transparent 86%)}
/* streak set (CSS, not inline styles: the CSP blocks style attributes) */
.v6-rails i:nth-child(1){--y:30%;--h:220px;--d:9s;--dl:-2s;--c:#2f9dff}
.v6-rails i:nth-child(2){--y:38%;--h:90px;--d:12s;--dl:-8s;--c:#5fd0ff}
.v6-rails i:nth-child(3){--y:45%;--h:300px;--d:15s;--dl:-4s;--c:#1f6bff}
.v6-rails i:nth-child(4){--y:51%;--h:70px;--d:8s;--dl:-5s;--c:#ffe32c}
.v6-rails i:nth-child(5){--y:57%;--h:160px;--d:13s;--dl:-11s;--c:#32baff}
.v6-rails i:nth-child(6){--y:64%;--h:60px;--d:10s;--dl:-3s;--c:#ffd52c}
.v6-rails i:nth-child(7){--y:71%;--h:240px;--d:17s;--dl:-9s;--c:#1f7bff}
/* the soft beam with a bright core (static, painted once) */
.v6-rails i::before{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--c) 22%,transparent) 30%,var(--c) 48%,#ffffffcc 50%,var(--c) 52%,color-mix(in srgb,var(--c) 22%,transparent) 70%,transparent);opacity:.55}
/* the travelling flare along the beam (one transformed layer per streak) */
.v6-rails i::after{content:'';position:absolute;top:0;bottom:0;left:0;width:40%;
  background:radial-gradient(50% 50% at 50% 50%,#ffffffee,var(--c) 18%,color-mix(in srgb,var(--c) 30%,transparent) 45%,transparent 70%);
  transform:translate3d(-100%,0,0);animation:v6-sweep var(--d) cubic-bezier(.45,.05,.55,.95) var(--dl) infinite;will-change:transform}
@keyframes v6-sweep{to{transform:translate3d(260%,0,0)}}
.v6-bloom{position:absolute;width:62vmax;height:62vmax;right:-14vmax;top:-22vmax;border-radius:50%;
  background:radial-gradient(closest-side,#1f7bff5c,#0b4fb52b 45%,transparent 72%);animation:v6-breathe 9s ease-in-out infinite;will-change:opacity}
@keyframes v6-breathe{50%{opacity:.55}}
.v6-light.is-off .v6-rails,.v6-light.is-off .v6-rails i::after,.v6-light.is-off .v6-bloom{animation-play-state:paused}

/* inner pages: the same light, quieter, behind the top of the page */
.page-light{position:absolute;top:0;left:0;right:0;height:820px;overflow:hidden;z-index:-1;pointer-events:none}
.page-light .v6-light{inset:-10% -10% 0;opacity:.55}
@media(max-width:700px){.page-light{height:620px}.page-light .v6-light{opacity:.45}}
@media(prefers-reduced-motion:reduce){.v6-rails,.v6-rails i::after,.v6-bloom{animation:none}.v6-rails i::after{transform:translate3d(90%,0,0)}}
