/* The original JAW route art remains intact; its printed legend is outside the visible crop. */
.night-page .route-map-stage{aspect-ratio:1080/960;overflow:hidden;isolation:isolate;background:#1d1124}
.night-page .route-map-stage .image-button{height:100%;overflow:hidden;background:#1d1124}
.night-page .route-map-stage .image-button>img{display:block;width:100%;height:auto!important;max-height:none;object-fit:unset;filter:saturate(1.08) contrast(1.04)}
.night-page .route-map-stage .image-button>span{position:absolute;bottom:0;left:0;right:0;z-index:2;background:linear-gradient(0deg,#180c20f5,#180c2080);color:#fff;padding:19px 23px;font-size:12px;letter-spacing:.08em}
.night-page .map-pin{width:38px;height:38px;background:transparent!important;border:2px solid transparent!important;color:transparent!important;box-shadow:none!important;opacity:1}
.night-page .map-pin[aria-pressed=true],.night-page .map-pin:focus-visible{border-color:#fff!important;box-shadow:0 0 0 6px #de70eb88,0 0 22px #de70eb!important;animation:none}
.night-page .pin-a{left:23.3%;top:43.9%}.night-page .pin-b{left:29.2%;top:75.9%}.night-page .pin-c{left:71.8%;top:82.7%}.night-page .pin-d{left:82.4%;top:62.9%}.night-page .pin-e{left:43.1%;top:50.4%}
.night-page .water-pin{left:57%;top:79%;width:36px;height:36px;background:#f5a3fb;color:#211724;border:2px solid #fff;box-shadow:0 0 0 5px #f5a3fb66,0 0 24px #de70eb}
.night-page .water-pin svg{width:17px;height:20px}
.image-dialog.route-dialog .expanded-window{width:100%;max-width:900px;aspect-ratio:1080/960;overflow:hidden;position:relative;margin:auto;border-radius:16px;background:#1d1124}
.image-dialog.route-dialog .expanded-window #expanded-image{display:block;width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:auto!important;object-fit:unset!important;margin:0}
.image-dialog .expanded-water{display:none}.image-dialog.route-dialog .expanded-water{position:absolute;left:57%;top:79%;transform:translate(-50%,-50%);display:grid;place-items:center;width:39px;height:39px;border:2px solid white;border-radius:50%;background:#e781f2;color:#35133c;box-shadow:0 0 0 6px #e781f27a,0 0 22px #e781f2;font-size:22px;line-height:1}

/* A white ribbon with alternating JAW marks, moving words, and pink signals. */
.night-page .ticker{position:relative;overflow:hidden;background:linear-gradient(100deg,#fff,#fef8ff 45%,#fff);padding:16px 0;border-block:3px solid #e781f2;box-shadow:0 0 40px #e781f24a;isolation:isolate}
.night-page .ticker:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(105deg,transparent 5%,#e781f21e 35%,transparent 55%,#e781f214 80%,transparent);background-size:220% 100%;animation:strapLight 9s linear infinite}
.night-page .ticker>.ticker-track{animation-duration:16s;align-items:center}
.night-page .ticker .ticker-group{display:inline-flex;align-items:center;flex-shrink:0}
.night-page .ticker .strap-unit{display:inline-flex;align-items:center;gap:20px;margin-right:45px;animation:strapFloat 4.5s ease-in-out infinite alternate}
.night-page .ticker .strap-unit:nth-child(2n){animation-delay:-2.25s}
.night-page .ticker .strap-logo{display:block;width:150px;height:52px;object-fit:contain;filter:none;opacity:1;margin:0}
.strap-spark{display:block;flex:none;width:33px;height:33px;background:#de70eb;clip-path:polygon(50% 0,59% 37%,100% 50%,59% 61%,50% 100%,41% 61%,0 50%,41% 37%);filter:drop-shadow(0 0 12px #de70eb);animation:strapSpin 8s linear infinite}
.strap-copy{font-family:Outfit,Arial,sans-serif;font-size:23px;font-weight:800;letter-spacing:-.055em;color:#201522;white-space:nowrap}
.strap-copy em{font-style:normal;color:#d35bdf;margin:0 6px;font-weight:900}
.strap-ring{display:block;flex:none;width:24px;height:24px;border:3px solid #de70eb;border-radius:50%;box-shadow:0 0 0 6px #de70eb25}
@keyframes strapFloat{to{transform:translateY(-5px)}}@keyframes strapSpin{to{transform:rotate(360deg)}}@keyframes strapLight{to{background-position:-220% 0}}

/* The supplied crowd photograph sits inside the existing night palette. */
.night-page .vibe-party>img{object-position:center 33%;filter:saturate(.82) contrast(1.14)}
.night-page .vibe-party:after{background:linear-gradient(0deg,#120b17f5 2%,#4a1b5699 42%,#3c174066 100%)}
.night-page .vibe-party .photo-label{background:#f4a8fc;color:#241329;font-weight:800;font-size:10px;padding:8px 11px;border-radius:20px;box-shadow:0 0 25px #e781f288}
.night-page .vibe-party{box-shadow:0 22px 80px #d761e51f,inset 0 0 0 1px #f3a3ff55}

.night-page .hero-intro{font-size:clamp(18px,1.55vw,22px);line-height:1.65;max-width:450px}
.night-page .hero-offer>b{font-size:clamp(27px,2.7vw,36px)}
.night-page .event-bar strong{font-size:clamp(18px,1.55vw,23px);font-weight:700;line-height:1.3}
.night-page .lineup-heading p{font-size:clamp(18px,1.4vw,22px);line-height:1.55}
.night-page .route-copy>p:not(.distance){font-size:clamp(18px,1.35vw,22px);line-height:1.65;max-width:540px}
.night-page .price-ticket h3{font-size:clamp(38px,3.6vw,53px);font-weight:800}
.night-page .button{font-size:clamp(14px,1vw,17px)}
.night-page .mobile-cta>span{font-size:14px}

@media(max-width:760px){
 .night-page .ticker{padding:12px 0}.night-page .ticker>.ticker-track{animation-duration:12s}.night-page .ticker .strap-unit{gap:12px;margin-right:27px}.night-page .ticker .strap-logo{width:112px;height:39px}.strap-spark{width:25px;height:25px}.strap-copy{font-size:16px}.strap-copy em{margin:0 3px}.strap-ring{width:15px;height:15px;border-width:2px;box-shadow:0 0 0 4px #de70eb25}
 .night-page .route-map-stage .image-button>span{padding:12px 15px;font-size:9px}.night-page .map-pin{width:30px;height:30px}.night-page .water-pin{width:29px;height:29px}.night-page .water-pin svg{width:14px;height:16px}
 .night-page .hero-intro{font-size:15px;max-width:345px}.night-page .hero-offer>b{font-size:25px}.night-page .event-bar strong{font-size:15px}.night-page .lineup-heading p{font-size:17px}.night-page .route-copy>p:not(.distance){font-size:16px}.night-page .price-ticket h3{font-size:36px}.night-page .button{font-size:13px}.night-page .mobile-cta>span{font-size:12px}
}
@media(max-width:360px){.night-page .event-bar strong{font-size:14px}.night-page .hero-intro{font-size:14px}.night-page .route-copy>p:not(.distance){font-size:15px}.night-page .button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.night-page .ticker:before,.night-page .ticker .strap-unit,.strap-spark{animation:none!important}}
