.race-series-feature{--series-accent:var(--activity-road-races,var(--story-accent));position:relative;margin:34px 0 10px;padding:34px;border:1px solid color-mix(in srgb,var(--series-accent) 24%,var(--line));border-radius:28px;background:linear-gradient(135deg,color-mix(in srgb,var(--series-accent) 9%,white),rgba(255,255,255,.96) 42%,color-mix(in srgb,var(--story-accent) 5%,white));box-shadow:0 18px 50px rgba(25,35,45,.06);overflow:hidden}.race-series-feature:before{content:'';position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--series-accent),var(--story-accent))}.race-series-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.72fr);gap:34px;align-items:end}.race-series-head h2{margin:6px 0 0;font-size:clamp(2.2rem,5vw,4.7rem);line-height:.93;letter-spacing:-.055em}.race-series-head>p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.65}.race-series-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.race-series-stats article{padding:18px 18px 18px 0;min-width:0}.race-series-stats article+article{padding-left:18px;border-left:1px solid var(--line)}.race-series-stats small{display:block;color:var(--muted);font-size:.61rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.race-series-stats strong{display:block;margin-top:7px;font-size:clamp(1.45rem,2.5vw,2.15rem);line-height:1;letter-spacing:-.045em}.race-series-stats span{display:block;margin-top:7px;color:var(--muted);font-size:.67rem;line-height:1.35}.series-performance{margin-top:34px;padding:26px;border:1px solid color-mix(in srgb,var(--series-accent) 18%,var(--line));border-radius:22px;background:rgba(255,255,255,.72)}.series-performance-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);gap:24px;align-items:end}.series-performance-head h3{margin:4px 0 0;font-size:clamp(1.65rem,3vw,2.55rem);letter-spacing:-.045em}.series-performance-head>p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.55}.series-chart{display:grid;gap:16px;margin-top:24px}.series-chart-row{display:grid;grid-template-columns:104px minmax(120px,1fr) minmax(175px,.72fr);gap:14px;align-items:center}.series-chart-label{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.series-chart-label strong{font-size:1rem}.series-chart-label span{font-size:.72rem;font-weight:800;color:var(--muted)}.series-chart-track{height:12px;border-radius:999px;background:color-mix(in srgb,var(--series-accent) 9%,#e7e9ec);overflow:hidden}.series-chart-track span{display:block;width:var(--series-bar);height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--series-accent) 75%,#fff),var(--series-accent));transition:width .28s ease,filter .18s ease}.series-chart-row:hover .series-chart-track span{filter:saturate(1.18) brightness(.98)}.series-chart-row.is-fastest .series-chart-track{box-shadow:0 0 0 2px color-mix(in srgb,var(--series-accent) 20%,transparent)}.series-chart-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.series-chart-meta span{color:var(--muted);font-size:.66rem;line-height:1.3}.series-chart-meta em{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:var(--series-accent);color:white;font-size:.58rem;font-weight:900;font-style:normal;letter-spacing:.07em;text-transform:uppercase}.series-year-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:30px}.series-year-card{display:flex;flex-direction:column;min-height:210px;padding:20px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.86);color:inherit;text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.series-year-card:hover,.series-year-card:focus-visible{transform:translateY(-3px);border-color:color-mix(in srgb,var(--series-accent) 46%,var(--line));box-shadow:0 14px 30px color-mix(in srgb,var(--series-accent) 12%,transparent)}.series-year-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.series-year-top>span{font-size:1.85rem;font-weight:900;letter-spacing:-.06em;color:var(--series-accent)}.series-year-top em{padding:5px 8px;border:1px solid color-mix(in srgb,var(--series-accent) 25%,var(--line));border-radius:999px;color:var(--muted);font-size:.56rem;font-weight:850;font-style:normal;letter-spacing:.06em;text-transform:uppercase}.series-year-card>small{display:block;margin-top:14px;color:var(--muted);font-size:.61rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.series-year-card>strong{display:block;margin-top:6px;font-size:1.55rem;letter-spacing:-.04em}.series-year-card>p{margin:5px 0 0;color:var(--muted);font-size:.68rem}.series-year-card footer{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:auto;padding-top:22px}.series-year-card footer span{max-width:72%;font-size:.72rem;line-height:1.3}.series-year-card footer b{flex:0 0 auto;color:var(--series-accent);font-size:.63rem}.series-course-callout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(260px,1.2fr);gap:28px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line);align-items:end}.series-course-callout h3{margin:5px 0 0;font-size:clamp(1.5rem,3vw,2.45rem);letter-spacing:-.045em}.series-course-callout>p{margin:0;color:var(--muted);font-size:.78rem;line-height:1.6}.story-race-series-page .detail-route-section{margin-top:20px}.story-race-series-page .story-route-key{border-color:color-mix(in srgb,var(--series-accent,var(--story-accent)) 22%,var(--line))}@media(max-width:900px){.race-series-stats{grid-template-columns:1fr 1fr}.race-series-stats article:nth-child(3){border-left:0}.race-series-stats article:nth-child(n+3){border-top:1px solid var(--line)}.series-year-grid{grid-template-columns:1fr 1fr}.series-chart-row{grid-template-columns:92px minmax(120px,1fr);gap:10px}.series-chart-meta{grid-column:2}.series-chart-meta{justify-content:flex-start}.series-performance-head,.race-series-head,.series-course-callout{grid-template-columns:1fr;gap:12px}}@media(max-width:620px){.race-series-feature{margin-left:-6px;margin-right:-6px;padding:24px 18px;border-radius:22px}.race-series-stats{grid-template-columns:1fr}.race-series-stats article,.race-series-stats article+article{padding:14px 0;border-left:0;border-top:1px solid var(--line)}.race-series-stats article:first-child{border-top:0}.series-performance{padding:18px 14px}.series-chart-row{grid-template-columns:72px minmax(0,1fr)}.series-chart-label{display:block}.series-chart-label span{display:block;margin-top:2px}.series-year-grid{grid-template-columns:1fr}.series-year-card{min-height:180px}.series-course-callout{padding-top:20px}}

/* Event-specific recurring-race identities. These selectors key off verified member-record URLs so the data model remains the source of truth and future unrelated series retain the neutral template. */
.story-race-series-page .race-series-feature:has(.series-year-card[href*="colfax-"]){--series-accent:#1f5da8;--series-secondary:#e0593e;background:linear-gradient(128deg,color-mix(in srgb,var(--series-accent) 12%,white),rgba(255,255,255,.98) 48%,color-mix(in srgb,var(--series-secondary) 10%,white));border-color:color-mix(in srgb,var(--series-accent) 34%,var(--line))}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colfax-"]):after{content:'';position:absolute;z-index:0;right:-55px;top:-86px;width:275px;height:275px;border-radius:50%;border:34px solid color-mix(in srgb,var(--series-secondary) 10%,transparent);box-shadow:0 0 0 22px color-mix(in srgb,var(--series-accent) 5%,transparent);pointer-events:none}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colfax-"])>*{position:relative;z-index:1}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colfax-"]) .race-series-head:before{content:'DENVER · COLFAX RACE WEEKEND';grid-column:1/-1;color:var(--series-accent);font-size:.62rem;font-weight:950;letter-spacing:.15em}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colfax-"]) .race-series-head{padding-top:10px;border-top:5px solid var(--series-secondary)}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colfax-"]) .series-year-card{border-top:4px solid color-mix(in srgb,var(--series-accent) 70%,white)}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colfax-"]) .series-course-callout{background:linear-gradient(90deg,color-mix(in srgb,var(--series-accent) 6%,white),transparent);margin-left:-12px;margin-right:-12px;padding:24px 12px 0}

.story-race-series-page .race-series-feature:has(.series-year-card[href*="colderbolder-"]){--series-accent:#236f92;--series-secondary:#9ed7e6;background:linear-gradient(150deg,#f7fcff,color-mix(in srgb,var(--series-secondary) 18%,white) 50%,rgba(255,255,255,.98));border-color:color-mix(in srgb,var(--series-accent) 28%,var(--line))}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colderbolder-"]):after{content:'';position:absolute;inset:0;z-index:0;background-image:radial-gradient(circle at 14px 14px,color-mix(in srgb,var(--series-accent) 10%,transparent) 0 1.5px,transparent 2px);background-size:34px 34px;pointer-events:none}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colderbolder-"])>*{position:relative;z-index:1}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colderbolder-"]) .race-series-head:before{content:'WINTER 5K · BOULDER';grid-column:1/-1;color:var(--series-accent);font-size:.62rem;font-weight:950;letter-spacing:.15em}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colderbolder-"]) .race-series-head:after{content:'✦';position:absolute;right:12px;top:-20px;color:color-mix(in srgb,var(--series-accent) 24%,transparent);font-size:5rem;line-height:1}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colderbolder-"]) .race-series-head{position:relative;padding-top:8px}.story-race-series-page .race-series-feature:has(.series-year-card[href*="colderbolder-"]) .series-year-card{background:rgba(250,254,255,.9)}

.story-race-series-page .race-series-feature:has(.series-year-card[href*="snowman-shuffle-"]){--series-accent:#386a8a;--series-secondary:#b9d7e7;background:linear-gradient(155deg,#fbfdff,color-mix(in srgb,var(--series-secondary) 20%,white) 55%,#fff);border-color:color-mix(in srgb,var(--series-accent) 28%,var(--line))}.story-race-series-page .race-series-feature:has(.series-year-card[href*="snowman-shuffle-"]):after{content:'';position:absolute;z-index:0;right:38px;top:78px;width:72px;height:72px;border-radius:50%;background:color-mix(in srgb,var(--series-accent) 5%,white);border:1px solid color-mix(in srgb,var(--series-accent) 12%,transparent);box-shadow:0 -52px 0 -11px color-mix(in srgb,var(--series-accent) 5%,white),0 -88px 0 -23px color-mix(in srgb,var(--series-accent) 5%,white);pointer-events:none}.story-race-series-page .race-series-feature:has(.series-year-card[href*="snowman-shuffle-"])>*{position:relative;z-index:1}.story-race-series-page .race-series-feature:has(.series-year-card[href*="snowman-shuffle-"]) .race-series-head:before{content:'JOHN A. LOGAN COLLEGE · CARTERVILLE';grid-column:1/-1;color:var(--series-accent);font-size:.62rem;font-weight:950;letter-spacing:.14em}.story-race-series-page .race-series-feature:has(.series-year-card[href*="snowman-shuffle-"]) .series-year-card[href*="2021"]{border-style:dashed;background:linear-gradient(135deg,#fff,color-mix(in srgb,var(--series-secondary) 11%,white))}.story-race-series-page .race-series-feature:has(.series-year-card[href*="snowman-shuffle-"]) .series-year-card[href*="2021"] .series-year-top:after{content:'VIRTUAL';padding:4px 7px;border-radius:999px;background:var(--series-accent);color:#fff;font-size:.52rem;font-weight:900;letter-spacing:.08em}

.story-race-series-page .race-series-feature:has(.series-year-card[href*="river-to-river-relay-"]){--series-accent:#1f6f78;--series-secondary:#b3653c;background:linear-gradient(112deg,color-mix(in srgb,var(--series-accent) 10%,white),#fff 54%,color-mix(in srgb,var(--series-secondary) 9%,white));border-color:color-mix(in srgb,var(--series-accent) 30%,var(--line))}.story-race-series-page .race-series-feature:has(.series-year-card[href*="river-to-river-relay-"]):after{content:'';position:absolute;z-index:0;left:0;right:0;bottom:18px;height:14px;background:radial-gradient(32px 13px at 32px 0,transparent 29px,color-mix(in srgb,var(--series-accent) 32%,transparent) 30px 31px,transparent 32px);background-size:64px 14px;pointer-events:none}.story-race-series-page .race-series-feature:has(.series-year-card[href*="river-to-river-relay-"])>*{position:relative;z-index:1}.story-race-series-page .race-series-feature:has(.series-year-card[href*="river-to-river-relay-"]) .race-series-head:before{content:'MISSISSIPPI → OHIO · SOUTHERN ILLINOIS';grid-column:1/-1;color:var(--series-accent);font-size:.62rem;font-weight:950;letter-spacing:.14em}.story-race-series-page .race-series-feature:has(.series-year-card[href*="river-to-river-relay-"]) .series-year-grid{position:relative}.story-race-series-page .race-series-feature:has(.series-year-card[href*="river-to-river-relay-"]) .series-year-grid:before{content:'';position:absolute;left:4%;right:4%;top:-12px;height:2px;background:linear-gradient(90deg,var(--series-accent),var(--series-secondary));opacity:.42}.story-race-series-page .race-series-feature:has(.series-year-card[href*="river-to-river-relay-"]) .series-year-card{border-bottom:4px solid color-mix(in srgb,var(--series-secondary) 62%,white)}

.story-race-series-page .race-series-feature:has(.series-year-card[href*="mile-high-turkey-trot-"]){--series-accent:#a5552f;--series-secondary:#d6a138;background:linear-gradient(128deg,#fffaf2,color-mix(in srgb,var(--series-secondary) 14%,white) 44%,color-mix(in srgb,var(--series-accent) 8%,white));border-color:color-mix(in srgb,var(--series-accent) 30%,var(--line))}.story-race-series-page .race-series-feature:has(.series-year-card[href*="mile-high-turkey-trot-"]):after{content:'';position:absolute;z-index:0;right:42px;top:34px;width:132px;height:132px;border-radius:50%;background:repeating-conic-gradient(from -12deg,color-mix(in srgb,var(--series-secondary) 18%,transparent) 0 9deg,transparent 9deg 22deg);opacity:.8;pointer-events:none}.story-race-series-page .race-series-feature:has(.series-year-card[href*="mile-high-turkey-trot-"])>*{position:relative;z-index:1}.story-race-series-page .race-series-feature:has(.series-year-card[href*="mile-high-turkey-trot-"]) .race-series-head:before{content:'THANKSGIVING MORNING · WASHINGTON PARK';grid-column:1/-1;color:var(--series-accent);font-size:.62rem;font-weight:950;letter-spacing:.14em}.story-race-series-page .race-series-feature:has(.series-year-card[href*="mile-high-turkey-trot-"]) .series-year-card{background:rgba(255,252,246,.92)}.story-race-series-page .race-series-feature:has(.series-year-card[href*="mile-high-turkey-trot-"]) .series-year-card:nth-child(2){border-color:color-mix(in srgb,var(--series-secondary) 42%,var(--line))}

@media(max-width:760px){.story-race-series-page .race-series-feature:has(.series-year-card[href*="colderbolder-"]) .race-series-head:after{right:0;top:-8px;font-size:3rem}.story-race-series-page .race-series-feature:has(.series-year-card[href*="snowman-shuffle-"]):after,.story-race-series-page .race-series-feature:has(.series-year-card[href*="mile-high-turkey-trot-"]):after{opacity:.28;right:12px}.story-race-series-page .race-series-feature:has(.series-year-card[href*="river-to-river-relay-"]) .series-year-grid:before{display:none}}
