/* Luz de escenario y movimiento contenidos: acompañan, no compiten. */
.hero-lights{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:paint}
.hero-lights::before,.hero-lights::after{content:"";position:absolute;top:-35%;left:40%;width:30%;height:145%;transform-origin:50% 0;background:linear-gradient(180deg,#efdcb01a,transparent 70%);clip-path:polygon(48% 0,52% 0,100% 100%,0 100%);filter:blur(14px);animation:stage-sweep 18s ease-in-out infinite alternate}
.hero-lights::after{left:66%;width:22%;background:linear-gradient(180deg,#a78bfa18,transparent 75%);animation-delay:-9s;animation-duration:23s}
@keyframes stage-sweep{from{transform:rotate(-24deg);opacity:.35}to{transform:rotate(20deg);opacity:.9}}
.hero-ambient{animation:ambient-drift 30s ease-in-out infinite alternate}
@keyframes ambient-drift{from{transform:scale(1.02)}to{transform:scale(1.07)}}
@media(prefers-reduced-motion:no-preference){
  .js .hero-content>*{animation:hero-arrival 1.4s var(--ease) both}
  .js .hero-content>:nth-child(2){animation-delay:.15s}
  .js .hero-content>:nth-child(3){animation-delay:.3s}
  .js .hero-content>:nth-child(4){animation-delay:.45s}
  @keyframes hero-arrival{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
  .js .kicker::before,.js .kicker::after{animation:rule-draw 1.6s var(--ease) .3s both}
  @keyframes rule-draw{from{width:0}}
  .js .motion-heading{opacity:0;transform:translateY(24px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
  .js .motion-heading.is-visible{opacity:1;transform:none}
  .js .event-row.reveal{transition-delay:var(--reveal-delay,0ms)}
  .js .section-photo.reveal{transform:translateY(32px);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
  .js .section-photo.reveal.is-visible{transform:none}
  .section-photo img{transform:translateY(var(--photo-y,0px)) scale(1.1)}
}
.section-photo{position:relative;isolation:isolate}
.section-photo::after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px #06050866}
@media(max-width:820px){.hero-lights{height:var(--hero-image-height)}.hero-lights::before{left:28%;width:50%}.hero-lights::after{left:62%;width:35%}}
@media(prefers-reduced-motion:reduce){
  .hero-lights{display:none}
  .hero-ambient{animation:none}
  .section-photo img{transform:none}
  .event-row h3{translate:none!important}
}
