/* Events page — "the next night": poster pop-out, stage light, date reveal, interactive card.
   Only transform and opacity animate. The official flyer image itself is never altered. */
.event-card:not(.event-past){--ease:cubic-bezier(.16,1,.3,1)}
/* ---- date reveal ---- */
.date-reveal{position:relative;display:flex;align-items:flex-end;gap:16px;margin:0 0 20px;padding-bottom:14px}
.date-reveal:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#f0b36acc,#f0b36a00);transform-origin:left;transform:scaleX(0)}
.dr-day{display:block;overflow:hidden;font:800 clamp(88px,12vw,150px)/.82 Display;letter-spacing:-.02em;padding-top:4px}
.dr-day b{display:block;font-weight:800;background:linear-gradient(180deg,#ffe9c8 10%,#e0a25f 100%);-webkit-background-clip:text;background-clip:text;color:transparent;transform:translateY(0)}
.dr-meta{display:flex;flex-direction:column;gap:7px;padding-bottom:8px;font:700 13px/1 Body;letter-spacing:.22em;text-transform:uppercase;color:#d9b890}
.dr-meta i{font-style:normal}
.dr-count{margin-left:auto;align-self:center;padding:8px 13px;border:1px solid #f0b36a66;border-radius:999px;font:650 11px/1 Body;letter-spacing:.12em;text-transform:uppercase;color:#f3d4ac;background:#f0b36a14;white-space:nowrap}
html.stage-js .event-card:not(.stage-ready) .date-reveal .dr-day b{transform:translateY(105%)}
html.stage-js .event-card:not(.stage-ready) .dr-meta,html.stage-js .event-card:not(.stage-ready) .dr-count,html.stage-js .event-card:not(.stage-ready) .lineup-row>div span{opacity:0}
.event-card.stage-ready .dr-day b{animation:dr-up .9s var(--ease) both}
.event-card.stage-ready .dr-meta{animation:dr-fade .8s .25s ease-out both}
.event-card.stage-ready .dr-count{animation:dr-fade .8s .45s ease-out both}
.event-card.stage-ready .date-reveal:after{animation:dr-line 1.1s .3s var(--ease) both}
@keyframes dr-up{from{transform:translateY(105%)}to{transform:translateY(0)}}
@keyframes dr-fade{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
@keyframes dr-line{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---- poster pop-out + stage light ---- */
.event-card:not(.event-past) .poster-surround{perspective:1300px}
.event-card:not(.event-past) .event-poster{transform:rotateX(var(--rx,0deg)) rotateY(calc(-2deg + var(--ry,0deg)));transform-style:preserve-3d;box-shadow:0 0 0 1px #f0b36a40,0 40px 70px -24px #000f,0 14px 30px -10px #000b,0 0 40px -10px #f0a04e59;will-change:transform}
.event-card:not(.event-past) .poster-surround:after{content:"";position:absolute;inset:0;z-index:-1;border-radius:6px;border:1px solid #f0b36a40;background:#0b1013;box-shadow:0 26px 40px -18px #000;transform:translate3d(-14px,14px,0) rotate(-3deg)}
html.stage-js .event-card:not(.event-past):not(.stage-ready) .event-poster{opacity:0;transform:translate3d(0,56px,0) rotateX(12deg) scale(.92)}
.event-card.stage-ready:not(.event-past) .event-poster{animation:poster-rise 1.15s var(--ease) both}
@keyframes poster-rise{from{opacity:0;transform:translate3d(0,56px,0) rotateX(12deg) scale(.92)}60%{opacity:1}}
.stage-lights{position:absolute;left:-8%;right:-8%;top:-14%;height:78%;z-index:-1;pointer-events:none}
.stage-lights i{position:absolute;top:0;width:46%;height:100%;transform-origin:50% 0;background:linear-gradient(to bottom,#ffc47a38,#ffc47a00 82%);clip-path:polygon(40% 0,60% 0,100% 100%,0 100%);opacity:.7}
.stage-lights i:first-child{left:2%;transform:rotate(-14deg);animation:beam-a 9s ease-in-out infinite alternate}
.stage-lights i:last-child{right:2%;transform:rotate(14deg);background:linear-gradient(to bottom,#9ad2d62e,#9ad2d600 82%);animation:beam-b 11s ease-in-out infinite alternate}
@keyframes beam-a{from{transform:rotate(-17deg);opacity:.45}to{transform:rotate(-8deg);opacity:.85}}
@keyframes beam-b{from{transform:rotate(9deg);opacity:.8}to{transform:rotate(17deg);opacity:.4}}
.event-card:not(.event-visible) .stage-lights i,.backgrounded .stage-lights i{animation-play-state:paused}

/* ---- interactive card ---- */
.event-card:not(.event-past):after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .5s ease;background:radial-gradient(520px circle at var(--cx,70%) var(--cy,30%),#ffd9a014,transparent 60%)}
.event-card:not(.event-past):hover:after{opacity:1}
.event-card.stage-ready .lineup-row>div span{animation:dr-fade .7s ease-out both}
.event-card.stage-ready .lineup-row>div span:nth-child(1){animation-delay:.5s}.event-card.stage-ready .lineup-row>div span:nth-child(2){animation-delay:.62s}.event-card.stage-ready .lineup-row>div span:nth-child(3){animation-delay:.74s}
.event-card:not(.event-past) .event-facts div{transition:transform .3s var(--ease)}
@media(hover:hover){.event-card:not(.event-past) .event-facts div:hover{transform:translateX(5px)}}

@media(max-width:750px){
 .date-reveal{margin-bottom:16px;gap:12px}
 .dr-day{font-size:clamp(84px,25vw,118px)}
 .dr-meta{font-size:11px;gap:6px}
 .dr-count{font-size:10px;padding:7px 10px}
 .stage-lights i{width:56%}
 .event-card:not(.event-past) .event-poster{will-change:auto}
}
@media(prefers-reduced-motion:reduce){
 .event-card .dr-day b,.event-card .dr-meta,.event-card .dr-count,.event-card .date-reveal:after,.event-card .event-poster,.event-card .lineup-row>div span,.stage-lights i{animation:none!important}
 .event-card .dr-day b{transform:none!important}.event-card .dr-meta,.event-card .dr-count{opacity:1!important}.event-card .date-reveal:after{transform:none!important}.event-card .event-poster{opacity:1!important;transform:rotateY(-2deg)!important}
}
html.still .event-card .dr-day b,html.still .event-card .dr-meta,html.still .event-card .dr-count,html.still .event-card .date-reveal:after,html.still .event-card .event-poster,html.still .event-card .lineup-row>div span,html.still .stage-lights i{animation:none!important}
html.still .event-card .dr-day b{transform:none!important}html.still .event-card .dr-meta,html.still .event-card .dr-count{opacity:1!important}html.still .event-card .date-reveal:after{transform:none!important}html.still .event-card:not(.event-past) .event-poster{opacity:1!important;transform:rotateY(-2deg)!important}
