/* Connected steps: horizontal on desktop, vertical on mobile. */
.route{--step-size:64px;--step-gap:32px;gap:var(--step-gap);isolation:isolate}
.route .route-step{position:relative;display:flex;flex-direction:column;gap:14px;padding:0 18px 0 0}
.route .step-number{position:relative;z-index:2;width:var(--step-size);height:var(--step-size);flex:none;background:#ED3434;color:white;animation:none!important;box-shadow:none;font-size:32px;transform:none;transition:none}
.route-step b{margin:8px 0 0}.route-step p{margin:0}
.route .route-step:not(:last-child)::before,.route .route-step:not(:last-child)::after{content:'';display:block!important;position:absolute;top:calc(var(--step-size)/2 - 1px);left:calc(var(--step-size)/2);right:auto;bottom:auto;width:calc(100% + var(--step-gap));height:2px;border-radius:0;pointer-events:none;z-index:0}
.route .route-step:not(:last-child)::before{background:#ed343425}
.route .route-step:not(:last-child)::after{background:#ED3434;transform-origin:left;transform:scaleX(1)}
.route .route-step:last-child::before,.route .route-step:last-child::after{display:none!important}
.route .route-step:nth-child(1){--step-delay:0s;--line-delay:.25s}
.route .route-step:nth-child(2){--step-delay:.65s;--line-delay:.9s}
.route .route-step:nth-child(3){--step-delay:1.3s}
@media(prefers-reduced-motion:no-preference){
 .route.is-waiting .route-step{opacity:0}
 .route.is-waiting .route-step::after{transform:scaleX(0)}
 .route.is-visible .route-step{animation:step-unfold .7s cubic-bezier(.2,.7,.2,1) var(--step-delay) both}
 .route.is-visible .route-step:not(:last-child)::after{animation:step-connect .7s ease var(--line-delay) both}
}
@keyframes step-unfold{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes step-connect{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:820px){
 .route{--step-size:56px}
 .route .route-step{display:grid;grid-template-columns:var(--step-size) 1fr;gap:8px 18px;padding:0}
 .route .step-number{grid-column:1;grid-row:1/3;font-size:30px}
 .route-step b{grid-column:2;margin:0}.route-step p{grid-column:2}
 .route .route-step:not(:last-child)::before,.route .route-step:not(:last-child)::after{left:calc(var(--step-size)/2 - 1px);top:calc(var(--step-size)/2);width:2px;height:calc(100% + var(--step-gap));transform-origin:top}
 .route.is-waiting .route-step::after{transform:scaleY(0)}
 @media(prefers-reduced-motion:no-preference){.route.is-visible .route-step:not(:last-child)::after{animation-name:step-connect-vertical}}
}
@keyframes step-connect-vertical{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.route .route-step{opacity:1;transform:none;animation:none}.route .route-step::after{transform:none!important;animation:none}}
.participation{padding:clamp(28px,5vw,60px);border-radius:36px;background:linear-gradient(125deg,#ffd2e2,#ffb8ce 48%,#ffd7b8);background-size:180% 180%;animation:step-gradient 15s ease-in-out infinite}.participation .section-head{display:block;max-width:780px;margin-bottom:38px}.participation .section-head h2{font-size:clamp(32px,4vw,52px);text-wrap:balance}.participation .section-head p{margin-top:16px;max-width:600px}.participation .route{margin:0}.participation .route-step p{color:var(--ink);line-height:1.5}.participation-terms{margin:32px 0 0;padding-top:24px;border-top:1px solid #66344130;font-size:15px;line-height:1.6;color:var(--ink);text-wrap:pretty}.participation-link{display:inline-flex;gap:14px;align-items:center;min-height:48px;margin-top:14px;font-weight:700;color:var(--ink);text-underline-offset:5px}@media(max-width:600px){.participation{width:calc(100% - 28px);margin-inline:auto;padding:28px 22px;border-radius:28px}.participation .section-head{margin-bottom:28px}.participation .route{--step-gap:28px}.participation-terms{font-size:14px}}@media(prefers-reduced-motion:reduce){.participation{animation:none}}
.participation .participation-link.button{color:var(--white);margin-top:24px;min-height:54px;text-decoration:none}@media(max-width:600px){.participation .participation-link.button{width:100%}}
.participation{background:linear-gradient(125deg,#ff3f72 0%,#ff6f69 42%,#ff9a42 100%);background-size:200% 200%;animation:gradient-shift 12s ease-in-out infinite}.participation .route .step-number{background:#fff;color:var(--ink);box-shadow:0 5px 15px #83283b12}.participation .route .route-step:not(:last-child)::before{background:#ffffff50}.participation .route .route-step:not(:last-child)::after{background:#fff}.participation-terms{border-color:#66344140}@media(prefers-reduced-motion:reduce){.participation{animation:none}}
.participation,.participation .section-head h2,.participation .section-head p,.participation .route-step b,.participation .route-step p,.participation .participation-terms{color:#fff}.participation .participation-terms{border-color:#ffffff60}
