.challenge-senior{--challenge-brand:#b22d37}
.challenge-intermediate{--challenge-brand:#187347}
.challenge-junior{--challenge-brand:#a7470c}
.challenge-primary{--challenge-brand:#007f9b}
/* Dates form the rail; each Challenge keeps one clear reading position. */
.challenge-grid.challenge-timeline{--rail-width:190px;position:relative;display:grid;grid-template-columns:1fr;gap:24px;align-items:stretch;margin-top:40px;}
.challenge-timeline::before{content:"";position:absolute;inset:26px auto 28px var(--rail-width);width:1px;background:#cbd7e0;}
.challenge-grid.challenge-timeline>.challenge-card{position:relative;display:grid;grid-template-columns:var(--rail-width) minmax(0,1fr);gap:34px;min-height:0;margin:0;padding:0;overflow:visible;background:transparent;border:0;border-radius:0;box-shadow:none;opacity:1;transform:none;transition:none;}
.challenge-grid.challenge-timeline>.challenge-card:hover{transform:none;box-shadow:none;}
.challenge-timeline .challenge-timeline-date{position:relative;padding:28px 24px 24px 0;align-self:start;}
.challenge-timeline-date::after{content:"";position:absolute;top:34px;left:calc(var(--rail-width) - 6px);width:13px;height:13px;border:3px solid #fff;border-radius:50%;background:var(--challenge-brand, #52677a);box-shadow:0 0 0 1px var(--challenge-brand, #a9bbc9);}
.challenge-timeline-date>span{display:block;margin-bottom:6px;color:#536779;font-size:.8rem;font-weight:600;}
.challenge-timeline-date>time{display:block;color:#152e43;font-size:1.1rem;font-weight:650;line-height:1.4;}
.challenge-timeline .challenge-timeline-content{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:28px;align-content:start;padding:28px 32px;background:#fff;border:1px solid var(--challenge-brand, #d1dce5);border-radius:8px;transition:none;}
.challenge-timeline .challenge-timeline-content .card-kicker{grid-column:1/-1;margin:0 0 8px;color:#536779;font-size:.75rem;}
.challenge-grid.challenge-timeline>.challenge-card h3{grid-column:1/-1;margin:0;color:#152e43;font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.2;letter-spacing:-.025em;}
.challenge-timeline .challenge-format{margin:20px 0 0;align-content:start;gap:6px;}
.challenge-timeline .challenge-eligibility{margin:20px 0 0;color:#536779;font-size:.88rem;line-height:1.6;}
.challenge-timeline-content>a{grid-column:1/-1;justify-self:start;display:inline-flex;align-items:center;gap:16px;min-height:44px;margin-top:16px;color:var(--challenge-brand, #005fc9);font-weight:650;text-decoration:none;}
.challenge-timeline-content>a:hover{text-decoration:underline;text-underline-offset:4px;}
.challenge-timeline-content>a:focus-visible{outline:3px solid var(--challenge-brand, #005fc9);outline-offset:5px;border-radius:2px;}
.challenge-timeline .is-current .challenge-timeline-content,.challenge-timeline .challenge-timeline-content:focus-within{border-color:var(--challenge-brand, #005fc9);box-shadow:0 0 0 1px var(--challenge-brand, #005fc9);}
.challenge-timeline .is-current .challenge-timeline-date::after{background:var(--challenge-brand, #005fc9);box-shadow:0 0 0 1px var(--challenge-brand, #005fc9);}
@media(max-width:760px){
 .challenge-grid.challenge-timeline{--rail-width:8px;gap:28px;}
 .challenge-timeline::before{inset-block:24px 28px;}
 .challenge-grid.challenge-timeline>.challenge-card{grid-template-columns:minmax(0,1fr);gap:10px;padding-left:30px;}
 .challenge-timeline .challenge-timeline-date{padding:0;}
 .challenge-timeline-date::after{left:-28px;top:7px;}
 .challenge-timeline-date>span{display:inline;margin-right:8px;}
 .challenge-timeline-date>time{display:inline;font-size:1rem;}
 .challenge-timeline .challenge-timeline-content{grid-template-columns:minmax(0,1fr);padding:24px;}
 .challenge-timeline .challenge-format,.challenge-timeline .challenge-eligibility{margin-top:16px;}
 .challenge-timeline-content>a{line-height:1.4;}
}
@media(max-width:380px){.challenge-timeline .challenge-timeline-content{padding:20px 16px;}.challenge-grid.challenge-timeline>.challenge-card h3{font-size:1.4rem;}}
@media(prefers-reduced-motion:reduce){.challenge-timeline .challenge-timeline-content{transition:none;}}
@media(forced-colors:active){.challenge-timeline::before,.challenge-timeline-date::after{background:CanvasText;}.challenge-timeline .is-current .challenge-timeline-content{outline:2px solid Highlight;}}
