/* V9: a fluid event ribbon, clearer route, and stronger type hierarchy. */
.night-page .ticker{background:linear-gradient(110deg,#fff 0%,#fff7fe 45%,#fff 100%);border-block:3px solid #e781f2;box-shadow:0 0 34px #e781f255,inset 0 0 30px #e781f21d}
.night-page .ticker:after{content:"";position:absolute;bottom:0;left:0;width:100%;height:5px;pointer-events:none;background:repeating-linear-gradient(105deg,#e781f2 0 24px,#f7c2fc 24px 45px,transparent 45px 68px);background-size:220px 5px;animation:ribbonDash 6s linear infinite;opacity:.65}
.night-page .ticker .strap-unit{animation:strapWave 5.4s ease-in-out infinite;transform-origin:center;gap:20px}
.night-page .ticker .strap-unit:nth-child(even){animation-delay:-2.7s}
.night-page .ticker .strap-unit:nth-child(even) .strap-copy{color:#a72db6}
.night-page .ticker .strap-copy{font-weight:900;letter-spacing:-.045em;transform:skew(-3deg);text-shadow:0 1px #fff}
.night-page .ticker .strap-logo{filter:drop-shadow(0 2px 2px #1c10202a)}
.night-page .ticker .strap-ring{animation:ringBeat 2.8s ease-in-out infinite}
.night-page .ticker .strap-spark{background:linear-gradient(135deg,#ffb8fc,#d952e9);filter:drop-shadow(0 0 11px #e781f2)}
@keyframes strapWave{0%,100%{transform:translateY(1px) rotate(-1deg)}35%{transform:translateY(-5px) rotate(1deg)}70%{transform:translateY(2px) rotate(-.5deg)}}
@keyframes ringBeat{50%{box-shadow:0 0 0 9px #e781f233,0 0 18px #e781f2}}
@keyframes ribbonDash{to{background-position:220px 0}}

.night-page .route-map-stage{aspect-ratio:1000/900;background:#170d1d;border:1px solid #f6b4fe80;box-shadow:0 20px 75px #d253e62c}
.night-page .route-map-stage .image-button{height:100%;background:#170d1d}
.night-page .route-map-stage .image-button>img{display:block;width:100%;height:100%!important;max-height:none;object-fit:cover;filter:none}
.night-page .route-map-stage .image-button>span{background:linear-gradient(0deg,#160d1be8,#160d1b48);color:#fff}
.night-page .map-pin{width:38px;height:38px;border:2px solid #fff!important;border-radius:50%;background:#221327!important;color:#fff!important;box-shadow:0 0 0 4px #e781f25c,0 0 22px #e781f266!important;font-size:13px;font-weight:800;opacity:1}
.night-page .map-pin[aria-pressed=true],.night-page .map-pin:focus-visible{background:#e781f2!important;color:#241329!important;box-shadow:0 0 0 7px #e781f266,0 0 24px #f4aeff!important}
.night-page .pin-a{left:23.5%;top:32.2%}.night-page .pin-b{left:28.5%;top:74.7%}.night-page .pin-c{left:71.8%;top:80.9%}.night-page .pin-d{left:82.4%;top:54%}.night-page .pin-e{left:43%;top:40%}
.night-page .water-pin{left:60%;top:78%;width:46px;height:46px;display:grid;place-items:center;background:linear-gradient(150deg,#ffdcff,#e781f2);color:#34133c;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 6px #e781f267,0 0 28px #e781f2;transform:translate(-50%,-50%);transition:transform .25s,box-shadow .25s}
.night-page .water-pin:hover,.night-page .water-pin:focus-visible{transform:translate(-50%,-50%) scale(1.12);box-shadow:0 0 0 9px #e781f277,0 0 33px #e781f2}
.night-page .water-pin .water-mark{width:25px;height:25px;fill:none!important;stroke:currentColor;stroke-width:2.2}
.night-page .landmarks li.water-stop b{width:36px;height:36px;background:linear-gradient(150deg,#ffe6ff,#e781f2);color:#301536;border:2px solid white;box-shadow:0 0 14px #e781f26a}
.night-page .landmarks li.water-stop b .water-mark{width:22px;height:22px;fill:none!important}
.image-dialog.route-dialog .expanded-window{aspect-ratio:1000/900}
.image-dialog.route-dialog .expanded-window #expanded-image{height:100%!important;object-fit:cover!important}
.image-dialog.route-dialog .expanded-water{left:60%;top:78%;width:45px;height:45px;background:linear-gradient(150deg,#ffdcff,#e781f2);color:#34133c}
.image-dialog.route-dialog .expanded-water .water-mark{width:25px;height:25px;fill:none!important}

.night-page .night-hero h1{font-size:clamp(72px,7.9vw,124px)}
.night-page .intro h2,.night-page .route h2,.night-page .schedule h2,.night-page .pricing-heading h2,.night-page .faq h2{font-size:clamp(62px,7.25vw,116px)}
.night-page .lineup h2{font-size:clamp(62px,7.5vw,118px)}
.night-page .vibe-caption p{font-size:clamp(15px,1.2vw,19px);line-height:1.5}
.night-page .pricing-heading p{font-size:clamp(16px,1.3vw,20px);line-height:1.5}
.night-page .faq summary{font-size:clamp(17px,1.35vw,21px)}
.night-page .apparel h2 .wear-line{font-size:clamp(32px,4vw,59px)}
.registration-page .registration-intro h1{font-size:clamp(64px,8vw,104px)}
.registration-page .checkout-main h2{font-size:clamp(40px,4.3vw,58px)}
.registration-page .button{font-size:clamp(13px,1.1vw,17px)}
@media(max-width:760px){
 .night-page .night-hero h1{font-size:clamp(42px,12.3vw,73px)}
 .night-page .intro h2,.night-page .route h2,.night-page .schedule h2,.night-page .pricing-heading h2,.night-page .faq h2,.night-page .lineup h2{font-size:clamp(45px,12.3vw,78px);line-height:1.05}
 .night-page .apparel h2 .wear-line{font-size:clamp(29px,7vw,36px)}
 .night-page .ticker .strap-unit{gap:13px;margin-right:29px}
 .night-page .ticker .strap-copy{font-size:17px}
 .night-page .map-pin{width:30px;height:30px;font-size:11px}
 .night-page .water-pin{width:36px;height:36px}
 .night-page .water-pin .water-mark{width:21px;height:21px}
 .night-page .vibe-caption p{font-size:15px}
 .night-page .pricing-heading p{font-size:16px}
 .night-page .faq summary{font-size:17px}
 .registration-page .registration-intro h1{font-size:clamp(48px,12vw,76px)}
 .registration-page .checkout-main h2{font-size:clamp(37px,10vw,53px)}
}
@media(max-width:360px){.night-page .night-hero h1{font-size:42px}.night-page .intro h2,.night-page .route h2,.night-page .schedule h2,.night-page .pricing-heading h2,.night-page .faq h2,.night-page .lineup h2{font-size:43px}.night-page .ticker .strap-copy{font-size:15px}}
@media(prefers-reduced-motion:reduce){.night-page .ticker:after,.night-page .ticker .strap-unit,.night-page .ticker .strap-ring{animation:none!important}}
