/* One connected itinerary, read from right to left and top to bottom on mobile. */
.gathering-v15 .hackathon-roadmap{margin-top:43px;padding-top:33px;scroll-margin-top:100px}
.gathering-v15 .hackathon-roadmap .program-heading{margin-bottom:20px}
.roadmap-map{position:relative;isolation:isolate;padding-top:10px}
.roadmap-route{position:absolute;z-index:0;inset:10px 0 auto;width:100%;height:130px;overflow:visible;pointer-events:none}
.roadmap-steps{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none}
.roadmap-step{--stop-y:55px;position:relative;min-width:0;margin:0;padding:0}
.roadmap-step:nth-child(even){--stop-y:85px}
.roadmap-stop{position:relative;height:132px}
.roadmap-stop:after{content:'';position:absolute;left:50%;top:calc(var(--stop-y) + 14px);bottom:10px;width:1px;background:linear-gradient(#a5c7ff3d,#a5c7ff08)}
.roadmap-stop time{position:absolute;left:50%;top:calc(var(--stop-y) - 49px);transform:translateX(-50%);display:flex;align-items:baseline;gap:7px;white-space:nowrap;color:#a7bdde;font-size:11px;line-height:1.4}
.roadmap-stop time>span{font:400 30px/1.1 Inter,sans-serif;letter-spacing:-1.7px;color:#e5f1ff}
.roadmap-node{position:absolute;top:calc(var(--stop-y) - 8px);left:calc(50% - 8px);display:block;width:16px;height:16px;border:1px solid #c6e0ff9c;border-radius:50%;background:radial-gradient(circle at 32% 24%,#edfbffb0,transparent 47%),linear-gradient(145deg,#7aa7ee55,#071a44eb 70%);box-shadow:inset 0 1px 2px #f0faff8c,inset 0 -2px 4px #122b6680,0 0 0 5px #0a1434}
.roadmap-node:after{content:'';position:absolute;inset:5px;border-radius:50%;background:#c8e7ff;box-shadow:0 0 7px #6bafff70}
.roadmap-copy{padding:0 clamp(13px,1.6vw,25px) 5px;text-align:center}
.roadmap-copy h4{margin:0 0 10px;font-size:17px;line-height:1.7;font-weight:600;color:#e5efff}
.roadmap-copy p{margin:0 auto;max-width:235px;font-size:12px;line-height:1.95;color:#a6b9d8}
.roadmap-step:last-child .roadmap-copy h4{color:#d0e3ff}
.roadmap-current{stroke-dasharray:.075 .925;stroke-dashoffset:1;opacity:0;animation:roadmap-light 10s linear infinite;animation-play-state:paused}
.event-program.is-active .roadmap-current{animation-play-state:running}
@keyframes roadmap-light{0%{stroke-dashoffset:1;opacity:0}9%{opacity:.75}88%{opacity:.75}100%{stroke-dashoffset:0;opacity:0}}
@media(min-width:761px) and (max-width:1000px){.roadmap-copy{padding-inline:13px}.roadmap-copy h4{font-size:15px}.roadmap-copy p{font-size:11px}}
@media(max-width:760px){
 .gathering-v15 .hackathon-roadmap{margin-top:31px;padding-top:29px;scroll-margin-top:90px}
 .gathering-v15 .hackathon-roadmap .program-heading{margin-bottom:28px}
 .roadmap-map{padding:0}
 .roadmap-route{display:none}
 .roadmap-steps{display:block}
 .roadmap-step{padding:0 58px 32px 0;min-height:155px}
 .roadmap-step:last-child{padding-bottom:0;min-height:0}
 .roadmap-step:not(:last-child):after{content:'';position:absolute;z-index:-1;right:20px;top:19px;bottom:-19px;width:3px;border-radius:3px;background:linear-gradient(90deg,#608fe93b,#d0e7ff70 48%,#537bc12e);box-shadow:0 0 0 3px #4175d00b}
 .roadmap-stop{position:static;height:auto;margin-bottom:10px}
 .roadmap-stop:after{display:none}
 .roadmap-stop time{position:static;transform:none;min-height:33px;align-items:baseline;gap:8px;font-size:11px}
 .roadmap-stop time>span{font-size:28px}
 .roadmap-node{top:11px;right:13px;left:auto}
 .roadmap-copy{padding:0;text-align:right}
 .roadmap-copy h4{margin-bottom:7px;font-size:17px;line-height:1.65}
 .roadmap-copy p{margin:0;max-width:430px;font-size:12px;line-height:1.95}
}
@media(max-width:359px){.roadmap-step{padding-right:49px;padding-bottom:29px}.roadmap-copy h4{font-size:16px}.roadmap-copy p{font-size:11.5px}.roadmap-step:not(:last-child):after{right:16px}.roadmap-node{right:9px}}
@media(prefers-reduced-motion:reduce){.roadmap-current{animation:none;stroke-dashoffset:.45;opacity:.4}}

/* Only the tiny traveler and ping rings animate; the glass route stays cached. */
.roadmap-enhanced .roadmap-route{inset:0;display:block;width:100%;height:100%}
.roadmap-enhanced .roadmap-current{display:none;animation:none}
.roadmap-enhanced .roadmap-step:not(:last-child):after{display:none}
.roadmap-traveler{position:absolute;z-index:2;left:0;top:0;width:6px;height:6px;border:1px solid #76c4ff;border-radius:50%;background:#edfbff;box-shadow:0 0 5px #338dff99;opacity:0;pointer-events:none}
.event-program.is-active .roadmap-traveler{will-change:transform}
.roadmap-ping{position:absolute;inset:-6px;border:1.5px solid #4aa7ff;border-radius:50%;background:radial-gradient(circle,#70c9ff44,transparent 65%);box-shadow:0 0 4px #227cff33;opacity:0;pointer-events:none;transform:scale(.6);transform-origin:center}
@media(prefers-reduced-motion:reduce){.roadmap-traveler,.roadmap-ping{display:none}}
