@font-face{font-family:'Anton';src:url(fonts/Anton.woff2?v=s2) format('woff2'),url(fonts/Anton.ttf) format('truetype');font-weight:400;font-display:swap}@font-face{font-family:'Inter Tight';src:url(fonts/InterTight.woff2?v=s2) format('woff2'),url(fonts/InterTight.ttf) format('truetype');font-weight:100 900;font-display:swap}
:root{--bg:#121214;--ink:#dcdce4;--muted:#898994;--line:#232328;--blue:#334bff;--open:#83f9df;--lottery:#7147d8;--upcoming:#ffba55;--closed:#90909c;--soldout:#c63d52;--unknown:#777783}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:25px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Inter Tight',Arial,sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,summary{cursor:pointer}button{color:inherit}button,a,summary{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--blue);outline-offset:4px}header{height:88px;max-width:1320px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:29px;font-weight:700;letter-spacing:-1.7px}.brand span{display:inline-block;background:var(--blue);color:#1f1f1f;line-height:1;margin-left:7px;padding:0 5px;font-size:28px;transform:skew(-8deg)}nav{display:flex;gap:30px;align-items:center;font-size:13px}nav button{border:1px solid var(--line);background:transparent;border-radius:5px;padding:10px 14px}nav b{background:var(--ink);color:#1f1f1f;margin-left:8px;padding:2px 6px;border-radius:3px}main{max-width:1320px;margin:auto}.hero{padding:42px 5% 44px;display:flex;justify-content:space-between;align-items:center;overflow:hidden}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.6px}h1,h2,h3,p{margin:0}h1{font-family:'Anton','Arial Narrow',Impact,sans-serif;text-transform:uppercase;font-size:clamp(76px,9.3vw,124px);font-weight:800;line-height:.88;letter-spacing:-2px;margin:20px 0}h1 span{color:var(--blue-hi,#6f80ff)}p{color:var(--muted);line-height:1.65}.hero p{margin-top:24px;font-size:15px}.hero-side{width:35%;display:flex;align-items:flex-end;flex-direction:column}.speed-mark{font-size:245px;font-weight:700;color:var(--blue-hi,#6f80ff);line-height:.8;transform:skew(-12deg);margin:0 45px 26px 0;letter-spacing:-20px;position:relative}.speed-mark:before{content:'//';position:absolute;font-size:95px;left:-98px;top:85px;letter-spacing:-16px;color:#cacfff}.primary{display:inline-flex;justify-content:space-between;gap:35px;background:var(--blue);color:#1f1f1f;border:0;border-radius:4px;padding:15px 20px;font-size:13px;font-weight:600}.section{padding:0 5%;margin-bottom:65px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}h2{font-size:29px;letter-spacing:-1px;font-weight:600}.slash{color:var(--blue-hi,#6f80ff)}.snapshot{font-size:9px;letter-spacing:1px;color:var(--muted)}.status-board{display:grid;grid-template-columns:repeat(6,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:7px;overflow:hidden}.board-item{padding:18px;background:#0b0b0b;text-align:left;border:0;position:relative;--status-color:var(--unknown);transition:background .15s}.direct{--status-color:var(--open)}.lottery{--status-color:var(--lottery)}.upcoming{--status-color:var(--upcoming)}.closed{--status-color:var(--closed)}.soldout{--status-color:var(--soldout)}.board-item:hover{background:#0c0d19}.board-item.selected{background:#0e101d;box-shadow:inset 0 -3px 0 var(--blue)}.board-label{font-size:11px;display:flex;gap:7px;align-items:center;white-space:nowrap}.board-label i{width:7px;height:7px;border-radius:50%;background:var(--status-color)}.board-item strong{font-family:'Anton',Impact,sans-serif;font-size:48px;font-weight:600;display:block;line-height:1.2;margin:12px 0 8px}.bar{display:block;height:3px;background:#16161b;margin-bottom:12px}.bar span{display:block;height:100%;background:var(--status-color)}.board-item small{font-size:9px;color:var(--muted)}.board-note{font-size:10px;margin:10px 0 27px}.filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:17px}.filters button{background:transparent;border:1px solid var(--line);border-radius:30px;padding:9px 15px;font-size:12px}.filters .active,#savedFilter.active{background:var(--ink);color:#1f1f1f;border-color:var(--ink)}.controls{display:flex;gap:8px;flex-wrap:wrap}.search{background:#0b0b0b;border:1px solid var(--line);border-radius:4px;display:flex;align-items:center;gap:10px;padding:10px 13px;flex:1;min-width:190px}.search span{font-size:22px}.search input{background:none;border:0;outline:0;width:100%;font-size:12px}.controls select,.controls button{background:#0b0b0b;border:1px solid var(--line);border-radius:4px;padding:10px 12px;font-size:11px;max-width:100%}.result-line{display:flex;align-items:center;justify-content:space-between;margin:20px 0 12px;font-size:11px;color:var(--muted)}.result-line button{border:0;background:none;color:var(--muted);font-size:11px;text-decoration:underline}.race-list{display:flex;flex-direction:column;gap:9px}.race{border:1px solid var(--line);background:#0b0b0b;border-radius:5px;overflow:hidden}.race-row{display:flex;align-items:center;gap:20px;padding:20px 22px}.race-number{font-family:'Anton',Impact,sans-serif;font-size:28px;color:#1c1c21;width:32px;flex-shrink:0}.race-name{flex:1;min-width:0}.race-label{display:block;font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.9px}.race-name h3{font-size:19px;letter-spacing:-.5px;margin:5px 0}.race-meta{font-size:10px;color:var(--muted)}.route-badges{display:flex;align-items:flex-end;flex-direction:column;gap:7px;max-width:240px}.status{font-size:10px;font-weight:600;border-radius:4px;padding:7px 10px;color:var(--status-color,var(--unknown));background:#151519;white-space:nowrap;display:inline-block}.status.direct{background:#132720}.status.lottery{background:#130f1f}.status.upcoming{background:#282113}.status.soldout{background:#200f13}.save{border:0;background:none;font-size:24px;width:32px;flex-shrink:0}.save[aria-pressed=true]{color:var(--blue-hi,#6f80ff)}.remind{border:1px solid var(--line);background:#0b0b0b;padding:11px 14px;border-radius:4px;white-space:nowrap;font-size:11px}.race-details{border-top:1px solid #13131c}.race-details summary{padding:10px 22px 10px 74px;list-style:none;font-size:10px;color:var(--muted);display:flex;justify-content:space-between}.race-details summary::-webkit-details-marker{display:none}.race-details[open]{background:#0a0a14}.entry-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;padding:10px 22px 12px 74px}.entry-option{border-top:1px solid var(--line);padding-top:13px}.route-title{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.entry-option p{font-size:12px;margin:10px 0}.entry-option a,.official-link{font-size:10px;text-decoration:underline;text-underline-offset:3px}.official-link{display:block;margin:0 22px 20px 74px}.how{margin-top:20px;font-size:11px;color:var(--muted)}.how p{max-width:950px;margin-top:12px}.empty{border:1px dashed var(--line);padding:35px}.empty h3{font-size:20px;margin-bottom:10px}.empty button{margin-top:15px;background:var(--blue);color:#1f1f1f;border:0;padding:10px 14px;border-radius:4px}.europe-banner{background:var(--ink);color:#1f1f1f;border-radius:6px;padding:30px;display:grid;grid-template-columns:1fr 1fr;position:relative;overflow:hidden;gap:15px}.europe-banner .eyebrow{color:#aab5ff}.europe-banner h3{font-family:'Anton',Impact,sans-serif;font-size:49px;line-height:1;margin:14px 0;letter-spacing:-.5px;text-transform:uppercase}.europe-banner p{color:#1b1b22;font-size:13px;line-height:1.8}.europe-action{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-end;gap:12px;position:relative}.europe-action button{border:0;background:var(--blue);color:#1f1f1f;padding:13px 18px;border-radius:4px;z-index:1}.europe-action a{font-size:10px;color:#bfc7ff;z-index:1}.big-eight{font-family:'Anton',Impact,sans-serif;color:#bebfcd;font-size:150px;position:absolute;right:0;top:-45px;font-weight:800;line-height:1}.europe-banner small{grid-column:1/-1;font-size:10px;color:#1c1c22;border-top:1px solid #c5c5cb;padding-top:17px;margin-top:4px}.trio-intro{margin:35px 0 20px}.trio-intro h3{font-size:24px;letter-spacing:-.7px;margin-bottom:8px}.trio-intro p{font-size:12px}.medal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.medal-card{border:1px solid var(--line);border-radius:5px;background:#0b0b0b;padding:21px;display:flex;flex-direction:column;align-items:flex-start}.tag{font-size:8px;letter-spacing:.5px;background:#0d0e1b;color:#4152ac;padding:5px 6px;border-radius:2px}.city-code{font-family:'Anton',Impact,sans-serif;font-size:58px;color:var(--blue-hi,#6f80ff);font-weight:700;line-height:1;margin:22px 0 14px;letter-spacing:-1.5px}.medal-card h3{font-size:18px;letter-spacing:-.4px;margin-bottom:5px}.medal-card p{font-size:11px;line-height:1.75}.medal-card .challenge-name{color:var(--ink);font-weight:600;margin-bottom:12px}.challenge-state{font-size:9px;color:#898999;padding-top:16px;margin-top:auto;line-height:1.5}.medal-card a{display:inline-block;margin-top:17px;border-top:1px solid var(--line);padding-top:12px;font-size:10px;width:100%;color:var(--blue-hi,#6f80ff)}.more-challenges{border-bottom:1px solid var(--line);padding:17px 0;font-size:12px}.more-challenges summary{display:flex;justify-content:space-between;gap:20px;list-style:none}.more-challenges p{font-size:12px;max-width:850px;margin:15px 0}.more-challenges a{font-size:11px;color:var(--blue-hi,#6f80ff);margin-right:20px;text-decoration:underline}.paris-note{display:flex;align-items:center;gap:18px;padding:20px 0;border-bottom:1px solid var(--line);font-size:12px}.paris-note p{flex:1;font-size:11px}.paris-note button{border:0;background:none;color:var(--blue-hi,#6f80ff);font-size:11px;white-space:nowrap}.reminder-strip{margin:0 5% 45px;border-top:1px solid var(--line);padding-top:30px;display:flex;justify-content:space-between;align-items:center;gap:20px}.reminder-strip h2{font-size:24px}.reminder-strip p{font-size:12px;margin-top:7px}footer{padding:25px 5% 35px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:25px}footer p{font-size:10px}footer small{color:var(--muted);font-size:9px;line-height:1.7}#toast{display:none;position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:#1f1f1f;border-radius:5px;padding:13px 20px;font-size:12px;z-index:5;max-width:90vw}@media(min-width:1450px){header{border-left:1px solid var(--line);border-right:1px solid var(--line)}main{border-left:1px solid var(--line);border-right:1px solid var(--line)}}@media(max-width:1000px){.medal-grid{grid-template-columns:repeat(2,1fr)}.status-board{grid-template-columns:repeat(3,1fr)}.board-item{padding:15px}.board-item strong{font-size:38px;margin:8px 0}.board-item small{font-size:10px}.speed-mark{font-size:180px;margin-right:20px}.speed-mark:before{font-size:70px;left:-70px;top:60px}.race-row{gap:12px}.race-number{display:none}.race-details summary{padding-left:22px}.entry-options{padding-left:22px}.official-link{margin-left:22px}.race-name h3{font-size:17px}.route-badges{max-width:195px}}@media(max-width:650px){header{height:76px}.brand{font-size:25px}nav{gap:13px;font-size:11px}nav a:first-child{display:none}.hero{padding-top:32px;padding-bottom:32px;align-items:flex-end}.hero .eyebrow{font-size:8px}h1{font-size:76px;letter-spacing:-1px}.hero p{font-size:12px;max-width:240px}.hero-side{width:auto}.speed-mark{font-size:100px;margin:0 8px 12px}.speed-mark:before{display:none}.hero-side .primary{display:none}.section-heading h2{font-size:25px}.snapshot{font-size:8px}.board-item{padding:12px}.board-label{font-size:10px;gap:5px}.board-item small{font-size:8px}.board-item strong{font-size:35px}.board-note{line-height:1.5;font-size:9px}.filters{gap:6px}.filters button{font-size:10px;padding:8px 11px}.controls select{flex:1;min-width:120px}.search{flex-basis:100%}.race-row{display:grid;grid-template-columns:1fr auto;gap:12px;padding:17px}.race-name{grid-column:1;grid-row:1}.save{grid-column:2;grid-row:1}.route-badges{grid-column:1;grid-row:2;align-items:flex-start;max-width:none}.remind{grid-column:2;grid-row:2;font-size:10px;padding:10px}.race-details summary{padding:10px 17px}.entry-options{padding:10px 17px}.route-title{flex-wrap:wrap}.medal-grid{gap:10px}.medal-card{padding:16px}.medal-card h3{font-size:16px}.tag{font-size:7px}.city-code{font-size:48px}.europe-banner{padding:23px;grid-template-columns:1fr}.europe-banner h3{font-size:42px}.europe-action{align-items:flex-start}.big-eight{right:0;top:-115px;font-size:110px;opacity:.6;pointer-events:none}.europe-action button{font-size:12px}.europe-banner small{line-height:1.6}.paris-note{flex-wrap:wrap;gap:10px}.paris-note p{flex-basis:75%}.reminder-strip{align-items:flex-start;flex-direction:column}.reminder-strip h2{font-size:22px}footer{flex-wrap:wrap;gap:15px}footer small{flex-basis:100%}.section{margin-bottom:45px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Category-first discovery */
[hidden]{display:none!important}.category-lead{color:#919191;margin:0 0 26px}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.category-tile{padding:25px;text-align:left;background:#191915;color:#e6e6e6;border:1px solid #2a2a2a;min-width:0;cursor:pointer;transition:transform .2s,background .2s}.category-tile:hover,.category-tile:focus-visible{background:#101321;transform:translateY(-4px);outline:2px solid #2849ff}.category-tile:nth-child(4){background:#2345ff;color:#ffffff;border-color:#2345ff}.tile-top{display:flex;justify-content:space-between;font-size:12px;font-weight:800}.tile-top span{font-size:24px}.tile-distance{display:block;font-family:Impact,'Arial Narrow',sans-serif;font-size:clamp(52px,7vw,95px);line-height:1.2;letter-spacing:-3px;margin:25px 0 17px}.category-tile h3{font-size:24px;margin:0 0 7px;letter-spacing:-.7px}.category-tile p{font-size:13px;opacity:.7;margin:0 0 24px}.tile-count{display:block;border-top:1px solid currentColor;padding-top:14px;font-size:12px;font-weight:700}.back-categories{border:0;background:none;padding:0;margin:8px 0 25px;font-weight:700;cursor:pointer}#directory{scroll-margin-top:100px}#directoryTitle{font-size:clamp(35px,5vw,64px);margin:0 0 15px;letter-spacing:-2px}.coverage{font-size:13px;max-width:850px;color:#9d9d9d;line-height:1.6;margin:0 0 28px}.coverage a{color:inherit}.controls{display:flex;flex-wrap:wrap}.controls .search{flex:1 1 240px}.controls select{flex:1 1 150px;min-width:0;max-width:100%}.race-date{display:block;font-size:12px;font-weight:700;margin:7px 0}.eligibility{background:#0c0e19;padding:20px;margin:0 0 20px;font-size:13px;line-height:1.6}.eligibility a{color:#6f80ff}#stoneControls{padding:18px 20px;background:#0c0e19;margin:15px 0;font-size:13px}#stoneControls select{padding:10px;border:1px solid #393939;background:#0b0b0b;max-width:100%}#stoneControls p{margin:10px 0 0;color:#acacac}.race-name{min-width:0}.race h3{overflow-wrap:anywhere}.race-meta{display:block}.category-grid button{font-family:inherit}.hero{padding-top:55px;padding-bottom:55px}.hero h1{font-size:clamp(62px,8vw,112px)}
@media(max-width:800px){.category-grid{grid-template-columns:repeat(2,1fr)}.category-tile{padding:20px}.category-tile h3{font-size:21px}.hero-side .speed-mark{display:none}.status-board{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.category-grid{gap:9px}.category-tile{padding:16px 12px}.tile-distance{font-size:54px;letter-spacing:-2px;margin:19px 0}.category-tile h3{font-size:18px}.category-tile p{font-size:11px;min-height:30px}.tile-count{font-size:11px}.hero{padding:36px 0}.hero h1{font-size:65px}#stoneControls label{display:grid;gap:8px}.controls select{flex-basis:44%}}
.stone-hint{display:block;color:#6f80ff;font-size:11px;font-weight:700;margin-top:9px}

.category-tile p{color:inherit}.category-tile:nth-child(4) p{opacity:.9}
/* Individual race pages */
.race-name h3 a{color:inherit;text-decoration:none}.race-name h3 a:hover{text-decoration:underline;text-underline-offset:4px}.race-detail-link{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #232323;padding:16px 24px;text-decoration:none;color:#d8d8d8;font-size:12px;font-weight:700}.race-detail-link span{color:#9d9d9d;font-weight:400}.race-detail-link:hover{background:#0c0e19;color:#6f80ff}#eventPage{max-width:1280px;margin:auto;padding:36px 5% 60px}.event-hero{background:#dcdcdf;color:#1f1f1f;padding:44px;border-radius:3px}.event-hero .eyebrow{color:#a6b1ff}.event-hero h1{font-size:clamp(42px,6vw,82px);line-height:1.02;letter-spacing:-2px;max-width:1000px;margin:25px 0 20px;text-transform:uppercase}.event-hero p{color:#1d1d20;font-size:16px}.event-date{font-size:18px;font-weight:700;margin-top:14px}.event-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin-top:32px}.event-actions a{color:#1f1f1f;font-size:13px}.event-save{background:transparent;color:#1f1f1f;border:1px solid #a6a6a6;padding:15px 20px;border-radius:4px;cursor:pointer}.event-tabs{display:flex;gap:30px;padding:24px 0;border-bottom:1px solid #2a2a2a;overflow:auto}.event-tabs a{font-size:13px;font-weight:700;color:#c9c9c9;text-decoration:none}.event-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:44px}.event-block{padding:38px 0;border-bottom:1px solid #2a2a2a;scroll-margin-top:30px}.event-block h2,.event-costs h2{font-size:31px;letter-spacing:-1px;margin:12px 0 20px}.event-block p,.event-costs p{font-size:14px;line-height:1.7;color:#9797a1}.event-block a,.event-costs a{font-size:13px;color:#6f80ff;font-weight:600}.event-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:28px 0}.event-facts small{display:block;color:#8e8e8e;font-size:11px;margin-bottom:9px}.event-facts strong{font-size:15px;line-height:1.6}.event-costs{align-self:start;background:#0b0b0b;border:1px solid #252529;padding:28px;margin-top:38px;scroll-margin-top:25px}.fee-value{font-size:clamp(25px,3vw,36px);font-weight:800;letter-spacing:-1px;color:#6f80ff}.cost-inclusions{border-top:1px solid #2a2a2a;margin-top:26px;padding-top:20px}.cost-inclusions h3{font-size:16px}.event-block .fineprint,.event-costs .fineprint{font-size:11px;color:#7b7b85}.course-stages{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:24px 0}.course-stages>div{padding:20px 12px;background:#0c0e1a}.course-stages span{display:block;font-size:10px;font-weight:700;color:#6f80ff;margin-bottom:12px}.course-stages strong{font-size:24px;letter-spacing:-1px}.terrain-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin:25px 0}.terrain-facts>div{border-left:2px solid #2345ff;padding-left:12px}.terrain-facts dt{font-size:11px;color:#8e8e8e}.terrain-facts dd{font-size:14px;font-weight:600;margin:8px 0 0}.event-footer{font-size:11px;color:#8e8e8e;margin-top:35px}.event-footer a{color:inherit}.event-block .entry-options{display:block}.event-block .entry-option{margin-bottom:12px}#eventTitle:focus{outline:none}
@media(max-width:800px){.event-layout{grid-template-columns:1fr;gap:0}.event-costs{grid-row:2;margin-top:28px}.event-hero{padding:28px}.event-hero h1{font-size:46px}.event-facts{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){#eventPage{padding:25px 20px}.event-hero{padding:25px 20px}.event-hero h1{font-size:38px;overflow-wrap:anywhere;letter-spacing:-1px}.event-tabs{gap:25px}.event-actions{gap:14px}.event-actions .primary{width:100%}.event-costs{padding:23px}.race-detail-link{padding:15px}.course-stages strong{font-size:20px}.event-facts strong{font-size:14px}.terrain-facts{grid-template-columns:1fr}}

.category-tile{container-type:inline-size}.tile-distance{font-size:clamp(32px,24cqw,86px);letter-spacing:-.04em}.category-tile[data-category="sprint"] .tile-distance,.category-tile[data-category="hyrox"] .tile-distance,.category-tile[data-category="utmb"] .tile-distance{font-size:clamp(27px,20cqw,72px)}

/* Stacked discovery filters */
.directory-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:30px;align-items:start;margin-top:26px}.filter-sidebar{position:sticky;top:24px;border:1px solid var(--line);background:#17171b;border-radius:5px;padding:20px}.filter-sidebar summary{font-size:16px;font-weight:700;list-style:none;display:flex;justify-content:space-between;align-items:center}.filter-sidebar summary::-webkit-details-marker{display:none}.filter-sidebar details[open] summary span{transform:rotate(45deg)}.filter-stack{display:flex;flex-direction:column;gap:18px;padding-top:24px}.filter-field{display:flex;flex-direction:column;gap:8px;font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase}.filter-field select,.filter-field input{width:100%;min-width:0;background:#0b0b0b;border:1px solid #28282d;border-radius:4px;padding:12px 10px;color:var(--ink);font-size:12px;font-weight:400;letter-spacing:0;text-transform:none}.filter-field input::placeholder{color:var(--muted)}.filter-actions{display:grid;gap:13px;border-top:1px solid var(--line);padding-top:18px}.filter-actions button{padding:11px;border:1px solid var(--line);border-radius:4px;background:#0b0b0b;font-size:12px}.filter-actions #resetFilters{padding:0;background:none;border:0;color:var(--muted);text-decoration:underline;font-size:11px}.filter-sidebar #stoneControls{padding:0;margin:0;background:none;font-size:10px}.directory-results{min-width:0}.directory-results .result-line{margin:0 0 14px;min-height:20px}.directory-results .race-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 20px}.directory-results .race-number{display:none}.directory-results .race-name{grid-column:1;grid-row:1}.directory-results .save{grid-column:2;grid-row:1;justify-self:end}.directory-results .route-badges{grid-column:1;grid-row:2;align-items:flex-start;max-width:100%;flex-direction:row;flex-wrap:wrap}.directory-results .status{white-space:normal}.directory-results .remind{grid-column:2;grid-row:2;align-self:end}.directory-results .race-name h3{font-size:21px}.filter-sidebar select:focus-visible,.filter-sidebar input:focus-visible{outline-offset:2px}
@media(max-width:1000px){.directory-layout{grid-template-columns:210px minmax(0,1fr);gap:20px}.filter-sidebar{padding:17px}}
@media(max-width:760px){.directory-layout{grid-template-columns:1fr;gap:22px;margin-top:20px}.filter-sidebar{position:static}.filter-stack{gap:15px}.directory-results .race-name h3{font-size:18px}.directory-results .race-row{gap:12px}.filter-field select,.filter-field input{font-size:16px}.filter-sidebar summary{min-height:24px}}
@media(min-width:761px){.filter-sidebar{max-height:calc(100dvh - 48px);overflow-y:auto;scrollbar-width:thin}}

/* Event imagery stays secondary to names and entry availability. */
.event-visual{position:relative;isolation:isolate;margin:0;overflow:hidden;background:#222640}.visual-art{position:absolute;inset:0;background:linear-gradient(135deg,#242e67,#334bff);color:#ffffff;overflow:hidden}.visual-art span{position:absolute;left:14%;top:20%;font-family:'Anton',Impact,sans-serif;font-size:44px;font-weight:700}.visual-art small{position:absolute;left:14%;right:8%;bottom:15%;font-size:8px;letter-spacing:1px;text-transform:uppercase}.card-visual{height:120px;border-radius:3px}.race-image-link{grid-column:1;grid-row:1/3;align-self:stretch}.directory-results .race-row{grid-template-columns:130px minmax(0,1fr) auto}.directory-results .race-name,.directory-results .route-badges{grid-column:2}.directory-results .save,.directory-results .remind{grid-column:3}
@media(min-width:761px) and (max-width:1050px){.directory-results .race-row{grid-template-columns:95px minmax(0,1fr) auto;gap:12px}.card-visual{height:105px}.directory-results .remind{grid-column:2/4;justify-self:end;grid-row:3}.race-image-link{grid-row:1/3}}
@media(max-width:760px){.directory-results .race-row{grid-template-columns:90px minmax(0,1fr) auto;gap:12px}.directory-results .race-name{grid-column:2/4;padding-right:28px}.directory-results .save{grid-column:3;align-self:start}.directory-results .route-badges{grid-column:1/3;grid-row:2}.directory-results .remind{grid-column:3;grid-row:2}.race-image-link{grid-row:1}.card-visual{height:100px}.visual-art span{font-size:30px}.visual-art small{font-size:6px}}

.explore-map{background:var(--ink);border:0;color:#1f1f1f;padding:12px 18px;border-radius:4px;margin:-6px 0 25px;font-size:12px}.view-switch{display:flex;background:#1a1a1f;padding:3px;border-radius:5px;gap:3px}.view-switch button{border:0;background:none;border-radius:3px;padding:7px 16px;color:var(--ink);text-decoration:none;font-weight:600;font-size:12px}.view-switch button[aria-pressed=true]{background:#0b0b0b;box-shadow:0 1px 4px #0001}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 12px}.map-toolbar p{font-size:11px}.map-toolbar button{flex-shrink:0;background:#0b0b0b;border:1px solid var(--line);padding:9px 12px;border-radius:4px;font-size:11px}#raceMap{height:560px;width:100%;border:1px solid var(--line);border-radius:6px;z-index:0;background:#1c1f20}.map-help,#tileNotice{font-size:11px;margin:10px 0}.map-help a{text-decoration:underline}.map-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:15px;font-size:10px;color:var(--muted)}.map-legend span{display:flex;align-items:center;gap:6px}.map-legend i{width:8px;height:8px;border-radius:50%}.map-legend .open,.pin-open span{background:#067c62}.map-legend .draw,.pin-draw span{background:#7147d8}.map-legend .other,.pin-other span{background:#a9a9ad}.race-pin span{display:block;width:100%;height:100%;border:3px solid #0b0b0b;border-radius:50%;box-shadow:0 2px 8px #0005}.race-cluster{display:grid;place-items:center;background:#334bff;color:#ffffff;border:3px solid #0b0b0b;border-radius:50%;box-shadow:0 2px 10px #1d28754a;font-family:'Inter Tight',sans-serif;font-weight:700;font-size:13px}.map-preview,.map-popup{font-family:'Inter Tight',sans-serif}.map-preview strong,.map-popup strong{display:block;font-size:13px;white-space:normal;max-width:250px}.map-preview span,.map-popup>span{display:block;font-size:11px;margin-top:6px}.map-popup .card-visual{height:110px;margin:0 0 12px}.map-popup>p{font-size:11px;margin:10px 0}.map-popup small{display:block;font-size:10px;color:#8e8e8e}.map-popup>a{display:block;color:#334bff!important;font-weight:700;margin-top:13px;font-size:12px}.leaflet-tooltip{border:0;padding:12px;border-radius:5px;box-shadow:0 3px 16px #0002}.leaflet-popup-content{margin:18px}.leaflet-container{font-family:inherit}.leaflet-control-attribution a{color:#899eca}.race-pin:focus-visible,.race-cluster:focus-visible{outline:3px solid #334bff;outline-offset:4px}
@media(max-width:760px){#raceMap{height:460px}.map-toolbar{align-items:flex-start;flex-direction:column;gap:8px}.map-legend{gap:12px}.view-switch button{padding:8px 16px}}

.map-list-header{margin:28px 0 18px}.map-list-header h3{font-size:22px;margin:0 0 6px}.map-list-header p{font-size:13px;color:var(--muted,#88919c);margin:0}
/* Dedicated World Majors, Medal Missions and entry-alert pages. */
header nav [aria-current=page]{color:var(--blue-hi,#6f80ff);text-decoration:underline;text-underline-offset:8px}#hubContent{padding-top:38px}.hub-heading{padding:15px 0 30px}.hub-heading h1{font-size:clamp(48px,7vw,90px);line-height:.98;letter-spacing:-2px;margin:20px 0}.hub-heading h1 span{color:var(--blue-hi,#6f80ff)}.hub-heading>p{font-size:17px;max-width:670px;line-height:1.6}.hub-actions{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin-top:24px}.hub-actions a{font-weight:700}.hub-note,.delivery-notice{background:#0e111d;border-left:3px solid var(--blue);padding:20px 24px;line-height:1.7;margin-bottom:28px}.hub-note strong{margin-right:7px}.major-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.major-card{background:#0b0b0b;border:1px solid var(--line);overflow:hidden;border-radius:7px}.major-card>.event-visual{width:100%;height:190px;border-radius:0}.major-body{padding:25px}.major-body h2{font-size:38px;letter-spacing:-1px;margin:17px 0 6px}.major-top{display:flex;justify-content:space-between;gap:10px;align-items:center}.major-body h3{margin:23px 0 5px;font-size:14px}.major-body p{font-size:13px;line-height:1.65}.major-body .window-date{font-weight:700;color:var(--ink)}.major-body>small{display:block;font-size:10px;color:var(--muted);margin-top:12px}.major-links{display:flex;gap:12px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.major-links a,.text-link{color:var(--blue-hi,#6f80ff);font-size:12px;font-weight:700}.major-links button{background:#0d0f1a;border:0;padding:10px 14px;border-radius:4px;font-weight:700}.text-link{display:inline-block;background:none;border:0;padding:0;margin-top:16px}.hub-footnote{margin:28px 0;color:var(--muted);font-size:12px}.hub-footnote .text-link{margin-top:0}.mission-jumps{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 0}.mission-jumps a{background:#0b0b0b;border:1px solid var(--line);padding:10px 17px;border-radius:24px;font-size:13px}.mission-feature{display:grid;grid-template-columns:1fr 1fr;gap:35px;background:#0b0b0b;padding:30px;border:1px solid var(--line);border-radius:6px}.mission-copy h2{font-size:34px;line-height:1.05;letter-spacing:-1px;margin:16px 0}.mission-copy p{font-size:13px;line-height:1.75}.mission-copy .text-link{margin-right:20px}.mission-progress{align-self:center;background:var(--bg);padding:24px;border-radius:6px}.mission-progress>div:first-child{display:flex;flex-direction:column;gap:7px}.mission-progress span{color:var(--muted);font-size:11px}.mission-progress progress{width:100%;height:7px;accent-color:var(--blue);margin:20px 0}.mission-checklist{display:grid;grid-template-columns:1fr 1fr;gap:15px}.mission-checklist>div{display:flex;align-items:center;justify-content:space-between;gap:5px}.mission-checklist label{display:flex;align-items:center;gap:8px;font-size:12px;cursor:pointer}.mission-checklist input,.alert-layout input[type=checkbox]{accent-color:var(--blue);width:17px;height:17px;flex-shrink:0}.mission-checklist a{color:var(--blue-hi,#6f80ff);font-size:18px;padding:0 5px}.mission-section-title{margin:45px 0 22px}.mission-section-title h2{font-size:30px;margin:10px 0}.mission-section-title p{max-width:720px;line-height:1.7}.mission-pair,.trio-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.mission-pair .mission-feature{grid-template-columns:1fr;gap:24px}.trio-grid .medal-card{padding:28px}.trio-grid .medal-card p,.trio-grid li{font-size:13px;line-height:1.7}.trio-grid ol{padding-left:18px}.delivery-notice{background:#231d11;border-color:#b67e00}.delivery-notice p{margin:7px 0 0;max-width:800px}.alert-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:35px}.alert-layout fieldset{border:1px solid var(--line);border-radius:6px;padding:24px;margin:0 0 24px;background:#0b0b0b}.alert-layout legend{font-weight:700;padding:0 10px}.alert-layout fieldset>.text-link{margin:0 0 18px}.alert-races{display:grid;grid-template-columns:1fr 1fr;gap:20px}.alert-races label,.check-row,.alert-days label{display:flex;gap:10px;align-items:center;cursor:pointer}.alert-races small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.check-row{margin:12px 0}.alert-days{display:flex;gap:18px;flex-wrap:wrap;margin:20px 0;font-size:12px}.alert-layout fieldset p{font-size:12px;line-height:1.6;color:var(--muted)}.alert-preview{padding:28px;background:#0e111d;border-radius:6px;align-self:start}.alert-preview h2{font-size:28px;margin:12px 0 24px}.preview-item{border-top:1px solid #1b1f39;padding:18px 0;display:grid;gap:8px}.preview-item span,.preview-item small{font-size:11px;line-height:1.5}.alert-preview button:disabled{opacity:.5;cursor:default}#alertSaveStatus{font-size:13px;line-height:1.5}.next-window{color:var(--muted)}
@media(max-width:760px){header{height:auto;min-height:76px;flex-wrap:wrap;padding-top:18px;padding-bottom:18px;gap:18px}header nav{width:100%;justify-content:space-between;gap:10px;flex-wrap:wrap}header nav a:first-child{display:block}.hub-heading>p{font-size:14px}.major-grid,.mission-feature,.mission-pair,.trio-grid,.alert-layout{grid-template-columns:1fr}.major-card>.event-visual{height:160px}.major-body,.mission-feature{padding:22px}.hub-heading h1{font-size:54px}.mission-copy h2{font-size:30px}.hub-note,.delivery-notice{padding:17px}.mission-checklist{gap:15px 10px}.major-top{flex-wrap:wrap}.alert-races{gap:18px 12px}#hubContent{padding-top:15px}.hub-actions{gap:17px}.major-links{flex-wrap:wrap}}
@media(max-width:650px){.mission-jumps a:first-child{display:block}}

/* Compact homepage intro: bring the race finder into view. */
.hero{padding:15px 5% 16px;align-items:center;min-height:0}.hero h1{font-size:clamp(34px,4vw,52px);line-height:1;margin:4px 0;letter-spacing:-.6px}.hero p{font-size:12px;margin-top:3px}.hero-side{width:auto;justify-content:center;align-items:flex-end}.hero-side .speed-mark{display:none}.hero-side .primary{padding:10px 14px;gap:12px;font-size:11px}.hero .eyebrow{font-size:9px;letter-spacing:1px}
@media(max-width:800px){.hero{padding-top:18px;padding-bottom:18px}.hero-side .primary{display:inline-flex}}
@media(max-width:650px){.hero{padding:12px 5% 13px;align-items:center;gap:12px}.hero h1{font-size:clamp(31px,8vw,40px);white-space:nowrap;letter-spacing:-.8px;margin:4px 0}.hero p{font-size:10px;margin-top:3px}.hero-side{width:auto}.hero-side .primary{display:inline-flex;font-size:9px;padding:9px 10px;gap:6px;white-space:nowrap}}
.picker-actions{display:flex;gap:22px;flex-wrap:wrap}.picker-actions .text-link{margin-top:12px}.selected-races{margin-top:20px;border-top:1px solid var(--line);padding-top:14px}.selected-races summary{font-size:12px;font-weight:700}.selected-races>div{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px;max-height:230px;overflow:auto}.selected-race{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#0c0c15;border-radius:20px;padding:5px 9px;font-size:10px}.selected-race button{border:0;background:none;color:var(--muted);font-size:16px;padding:0 2px}.source-note{border-top:1px solid #1b1f39;padding-top:18px;margin-top:22px}.source-note strong{font-size:12px}.source-note p{font-size:11px;line-height:1.6;margin:7px 0}.source-note a{font-size:11px;font-weight:700;color:var(--blue-hi,#6f80ff)}#alertEventPicker{width:100%;max-width:100%;margin-top:8px;background:#0b0b0b;border:1px solid var(--line);border-radius:4px;padding:11px;color:var(--ink)}
.show-all{align-self:center;margin-top:6px;background:#0b0b0b;border:1px solid var(--line);border-radius:4px;padding:12px 18px;font-size:12px;font-weight:600}
@media(max-width:760px){header nav{flex-wrap:nowrap;gap:8px;font-size:11px;white-space:nowrap;overflow-x:auto}header nav button{padding:7px 9px}nav b{margin-left:5px}}
/* ===== UX pass (Oct 2026): bolder type, one accent, mobile-first nav, filter sheet, scannable cards ===== */
:root{--blue:#2f3fff;--radius:14px}
/* Chunky, consistent headings */
#directoryTitle,.section-heading h2,.event-block h2,.event-costs h2,.alert-preview h2,.mission-copy h2,.mission-section-title h2,.major-body h2,.reminder-strip h2{font-family:'Anton','Arial Narrow',Impact,sans-serif;text-transform:uppercase;font-weight:800;letter-spacing:-.5px;line-height:.95}
#directoryTitle{font-size:clamp(44px,7vw,84px);margin:4px 0 0}
.section-heading h2{font-size:34px}.event-block h2,.event-costs h2{font-size:38px}
/* Confident buttons: pill shape, heavier weight, one accent */
.primary{border-radius:999px;font-weight:700;font-size:14px;padding:15px 24px;gap:14px;align-items:center;justify-content:center;transition:transform .12s,background .12s}
.primary:hover{background:#1b28d6}.primary:active{transform:scale(.98)}
.remind,.event-save,.event-remind,.show-all,.filter-actions button,.view-switch button,.explore-map{border-radius:999px}
.event-remind{background:#0b0b0b;color:var(--ink);border:0;padding:15px 22px;font-weight:700;cursor:pointer}
.event-save{border-radius:999px}
/* Browsing a category or the watchlist: drop the home hero so the list starts at the top */
#browseContent:has(#directory:not([hidden])) .hero,#browseContent:has(#directory:not([hidden])) #discover>.section-heading{display:none}
#browseContent:has(#directory:not([hidden])) #discover{padding-top:28px}
/* Event cards: one clear tap target (title/image), date + status first, no duplicate footer link */
.race{border-radius:var(--radius);transition:border-color .12s,box-shadow .12s}
.race:hover{border-color:var(--blue);box-shadow:0 6px 20px #2f3fff14}
.race-detail-link{display:none}
.race-name h3 a:hover{color:var(--blue-hi,#6f80ff)}
.race-date{display:block;font-weight:700;color:var(--ink);font-size:13px;margin:2px 0 4px}
.card-visual{border-radius:10px}
.status{border-radius:999px}
/* Event page: status + price visible in the hero, entry before course */
.hero-status{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:18px}
.hero-status .status{font-size:12px;padding:8px 12px}
.hero-fee{font-size:13px;color:#1d1d20;font-weight:600;margin-left:4px}
.event-hero{border-radius:0 0 var(--radius) var(--radius)}
.event-costs{border-radius:var(--radius)}
.nav-short{display:none}
header nav a i,header nav button i{display:none;font-style:normal}
#filterCount{font-style:normal;font-size:11px;background:var(--blue);color:#1f1f1f;border-radius:999px;padding:2px 8px;margin-left:8px}
.filter-sidebar summary span{margin-left:auto}
#applyFilters{display:none}
/* ===== Mobile first: bottom tab bar + filter sheet ===== */
@media(max-width:760px){
 body{padding-bottom:78px}
 header{flex-wrap:nowrap;min-height:60px;padding-top:12px;padding-bottom:12px}
 header nav{position:fixed;left:0;right:0;bottom:0;z-index:40;width:auto;background:#ffffffee;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);gap:0;padding:6px 4px calc(6px + env(safe-area-inset-bottom));overflow:visible}
 header nav>a,header nav>button{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;font-size:11px;font-weight:600;color:var(--muted);border:0;background:none;border-radius:12px;padding:4px 2px;text-decoration:none!important;position:relative}
 header nav a i,header nav button i{display:block;font-size:19px;line-height:1.1}
 header nav [aria-current=page]{color:var(--blue-hi,#6f80ff);background:#0c0e1a}
 header nav b{position:absolute;top:2px;right:calc(50% - 22px);margin:0;font-size:9px;padding:1px 5px;border-radius:999px;background:var(--blue)}
 .nav-long{display:none}.nav-short{display:inline}
 #toast{bottom:92px}
 /* Filters: compact pill that opens as a bottom sheet */
 .filter-sidebar{background:none;border:0;padding:0}
 .filter-sidebar summary{display:inline-flex;gap:6px;border:1px solid var(--ink);border-radius:999px;padding:10px 18px;font-size:14px;min-height:0;background:#0b0b0b}
 .filter-sidebar summary span{margin-left:4px}
 #filterPanel[open]{position:fixed;left:0;right:0;bottom:0;z-index:60;max-height:86dvh;overflow-y:auto;background:var(--bg);border-radius:20px 20px 0 0;padding:18px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:0 0 0 100vmax #11112680}
 #filterPanel[open] summary{border:0;background:none;padding:4px 0 12px;font-size:20px;font-weight:800;display:flex}
 #filterPanel[open] .filter-actions{position:sticky;bottom:calc(-20px - env(safe-area-inset-bottom));background:var(--bg);padding:12px 0 4px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
 #applyFilters{display:flex;grid-column:1/-1}
 .race-row{padding:14px;gap:10px}
 .race-name h3{font-size:17px}
}
@media(max-width:650px){
 .race-row{grid-template-columns:76px 1fr auto}
 .race-image-link{grid-column:1;grid-row:1/3}
 .card-visual{height:76px;width:76px}
 .race-name{grid-column:2;grid-row:1}
 .save{grid-column:3;grid-row:1;align-self:start}
 .route-badges{grid-column:2/4;grid-row:2;flex-direction:row;flex-wrap:wrap;align-items:center}
 .remind{grid-column:2/4;grid-row:3;justify-self:start;padding:8px 14px}
 .race-label{font-size:8px}
 .event-actions .primary,.event-remind{width:100%}
 .mission-jumps{gap:8px}.mission-jumps a{padding:9px 13px;font-size:12px}

 .hub-heading h1{font-size:46px;overflow-wrap:anywhere}
}
@media(max-width:760px){header nav b.zero{display:none}}
.filter-actions #applyFilters{background:var(--blue);color:#1f1f1f;border:0;font-weight:700;padding:14px;justify-content:center}
@media(min-width:761px){header{position:sticky;top:0;z-index:40;background:#f6f6f8ee;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
 header nav{gap:6px}header nav>a{font-size:14px;font-weight:600;padding:9px 14px;border-radius:999px;text-decoration:none!important;border:0!important}
 header nav>a[aria-current=page]{background:var(--blue);color:#1f1f1f}header nav>a:not([aria-current]):hover{background:#0e101d}
 #watchNav{border-radius:999px;font-weight:600;font-size:14px}}
.event-block,.event-costs,#results,#discover{scroll-margin-top:100px}
#discover>.section-heading h2{font-size:26px}
.tile-distance{font-family:'Anton','Arial Narrow',Impact,sans-serif;font-weight:800;letter-spacing:-1px}
.category-tile{border-radius:var(--radius)}
@media(max-width:760px){.hero .hero-side{display:none}#discover>.section-heading h2{font-size:24px;white-space:nowrap}}
/* ===== Colour blocks (Oct 2026): one strong colour per sport on a neutral off-white base ===== */
:root{--bg:#1c190f;--blue:#15151b;--line:#312c22;--cat:#15151b;--cat-ink:#fff;--cat-soft:#21211d}
/* One colour family per discipline, shades step by distance (longer = deeper).
   --cat = block colour, --cat-ink = AA text on it, --cat-glow = lighter shade of the same family for dark backgrounds (race header). */
.cat-marathon{--cat:#0b4f55;--cat-ink:#fff;--cat-glow:#2fb8a8;--cat-soft:#1d2f2f}
.cat-half{--cat:#0e7f79;--cat-ink:#fff;--cat-glow:#3cc4b3;--cat-soft:#162d2b}
.cat-10k{--cat:#2db5a4;--cat-ink:#15151b;--cat-glow:#2db5a4;--cat-soft:#132825}
.cat-ironman{--cat:#a86a0a;--cat-ink:#fff;--cat-glow:#f5a524;--cat-soft:#1f1709}
.cat-703{--cat:#d48a12;--cat-ink:#15151b;--cat-glow:#f7bb55;--cat-soft:#1e170c}
.cat-olympic{--cat:#f2b44a;--cat-ink:#15151b;--cat-glow:#f9cf86;--cat-soft:#1c160d}
.cat-sprint{--cat:#f8d9a0;--cat-ink:#15151b;--cat-glow:#fbe2b6;--cat-soft:#19140c}
.cat-utmb{--cat:#1f7a44;--cat-ink:#fff;--cat-glow:#3daa66;--cat-soft:#152c1d}
.cat-xtri{--cat:#6b4205;--cat-ink:#fff;--cat-glow:#c97f0c;--cat-soft:#1d1408}
/* Gravel & Cycling: orange family (orange tile, burnt orange for off-road cards, light apricot soft) */
.cat-cycling{--cat:#8a847c;--cat-ink:#fff;--cat-glow:#a9a39b;--cat-soft:#1e1d1b}
.cat-cycling.cat-offroad{--cat:#5f5a54;--cat-ink:#fff}
/* Swimrun & Open Water: blue family (ocean tile, deep navy for swimrun cards, light sky soft), kept apart from the #2f3fff logo blue */
.cat-swimrun{--cat:#0b6aa8;--cat-ink:#fff;--cat-glow:#5fb0e8;--cat-soft:#131f28}
.cat-swimrun.cat-swimrun-race{--cat:#0b2a5b;--cat-ink:#fff}
.cat-hyrox,.cat-deka{--cat:#d9c9a0;--cat-ink:#15151b;--cat-glow:#d9c9a0;--cat-soft:#22201a}
.cat-mission{--cat:#15151b;--cat-ink:#fff;--cat-glow:#fff;--cat-soft:#21211d}
body{background:var(--bg)}
.brand span{background:#2f3fff}
.primary{background:#dddde1;color:#1f1f1f}.primary:hover{background:#ededed}
header nav>a[aria-current=page]{background:#dddde1;color:#1f1f1f}
@media(min-width:761px){header{background:#f7f5f0ee}header nav>a:not([aria-current]):hover{background:#29251b}}
@media(max-width:760px){header nav{background:#f7f5f0f2}header nav [aria-current=page]{color:#dcdce4;background:#2e281d}header nav b{background:#0e7f79}}
.hero h1 span{color:#80f1eb}
/* Home: big rounded colour tiles */
.category-grid,#categoryTiles{gap:14px}
.category-tile,.category-tile:nth-child(4){background:var(--cat);color:var(--cat-ink);border:0;border-radius:24px;padding:24px;min-height:220px;display:flex;flex-direction:column;box-shadow:0 1px 0 #0000000d}
.category-tile:hover,.category-tile:focus-visible{background:var(--cat);transform:translateY(-4px) rotate(-.4deg);outline:3px solid #dddde1;outline-offset:3px}
.category-tile p,.category-tile:nth-child(4) p{opacity:.85;color:inherit}
.category-tile .tile-distance{font-size:clamp(56px,7vw,96px);line-height:.9;margin:auto 0 10px}
.category-tile h3{font-family:'Anton','Arial Narrow',Impact,sans-serif;text-transform:uppercase;font-weight:800;font-size:26px;letter-spacing:0}
.category-tile .tile-count{border-top:2px solid currentColor;padding-top:12px;font-weight:800;font-size:15px;margin-top:auto}
.category-tile .tile-top{font-weight:800}
/* Ballot dates strip */
.ballot-strip{display:flex;align-items:center;gap:10px 22px;flex-wrap:wrap;margin:18px 0 6px;padding:12px 18px;border-radius:999px;background:#dddde1;color:#1f1f1f;text-decoration:none;font-size:13px}
.ballot-strip b{font-family:'Anton','Arial Narrow',Impact,sans-serif;text-transform:uppercase;font-size:17px;letter-spacing:.3px;color:#ffd000}
.ballot-strip time{font-weight:800;margin-right:4px}
.ballot-strip em{font-style:normal;font-weight:700;margin-left:auto;text-decoration:underline;text-underline-offset:3px}
.ballot-strip:hover{background:#ededed}
#browseContent:has(#directory:not([hidden])) .ballot-strip{display:none}
/* Cards: colour edge, colour chip, coloured illustration */
.race{box-shadow:inset 7px 0 0 var(--cat);border-color:var(--line);background:#0b0b0b}
.race:hover{border-color:var(--cat);box-shadow:inset 7px 0 0 var(--cat),0 8px 22px #15151b14}
.cat-chip{display:inline-block;background:var(--cat);color:var(--cat-ink);font-weight:800;font-size:11px;letter-spacing:.4px;text-transform:uppercase;border-radius:999px;padding:3px 10px;margin:0 8px 6px 0;vertical-align:middle}
.visual-art{background:var(--cat);color:var(--cat-ink)}
#directoryTitle[class*="cat-"]::after{content:"";display:block;width:84px;height:10px;border-radius:999px;background:var(--cat);margin-top:12px}
/* Race page: colour header strip */
#eventPage .event-hero{border-top:14px solid var(--cat)}
#eventPage .event-hero .eyebrow{color:#1c1c21}
#eventPage .event-hero .cat-chip{font-size:12px;margin-right:10px}
#eventPage .event-tabs a:hover{color:var(--cat)}
#eventPage .event-block{border-radius:18px}
#eventPage .event-costs{border-top:8px solid var(--cat)}
/* Map pins: fill = sport, small dot = entry status */
.race-pin span{background:var(--cat)!important;position:relative}
.race-pin span::after{content:'';position:absolute;right:-5px;top:-5px;width:10px;height:10px;border-radius:50%;border:2px solid #0b0b0b;background:#a9a9ad}
.pin-open span::after{background:#067c62}.pin-draw span::after{background:#7147d8}
.race-cluster{background:#dddde1!important;color:#1f1f1f}
@media(max-width:760px){
 .category-tile,.category-tile:nth-child(4){min-height:170px;padding:16px;border-radius:20px}
 .category-tile .tile-distance{font-size:clamp(40px,13vw,60px)}
 .category-tile h3{font-size:20px}
 .category-tile p{display:none}
 .category-tile .tile-count{font-size:13px}
 .ballot-strip{border-radius:18px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 16px}
 .ballot-strip em{margin-left:0}
 .race{box-shadow:inset 6px 0 0 var(--cat)}
}
.ballot-strip{margin:16px 5% 4px}
@media(max-width:760px){.ballot-strip{margin:12px 5% 2px;font-size:12.5px}}
#eventPage .event-hero .primary{background:var(--cat-glow);color:#dcdce4}
#eventPage .event-hero .primary:hover{filter:brightness(1.08)}
#directory:has(#directoryTitle[class*="cat-"]) .race .cat-chip{display:none}
/* Hubs (Majors, Missions, Alerts) are running pages: running teal accents, warm neutral panels */
.hub-heading h1 span{color:#80f1eb}
.delivery-notice,.hub-note{background:#282217;border-left:4px solid #0e7f79;border-radius:0 14px 14px 0}
.alert-preview{background:#282217;border-radius:18px;border-top:8px solid #0e7f79}
.major-card,.medal-card,.mission-feature{border-radius:18px}
.major-links button,.course-stages>div,.eligibility,#stoneControls,.board-item.selected{background:var(--cat-soft,#282217)}
.tag{background:#162d2b;color:#aaeef4}
@media(min-width:1100px){.category-grid{grid-template-columns:repeat(4,1fr)}.category-tile .tile-distance{font-size:clamp(56px,5.4vw,84px)}}
.category-tile p,.category-tile:nth-child(4) p{opacity:1}
/* Race header strip: block colour plus a bright line of the same family so deep shades (140.6) stay visible on the dark header */
#eventPage .event-hero{border-top:12px solid var(--cat);box-shadow:inset 0 5px 0 var(--cat-glow)}
#eventPage .event-hero .cat-chip{background:var(--cat-glow);color:#dcdce4}
/* Sport page tint: ~8-12% of the sport's bright shade (--cat-glow; deep shades went grey) over the off-white, on category lists and race pages only */
body.tint-on{--tint-amt:8%;background:color-mix(in srgb,var(--cat-glow) var(--tint-amt),#1c190f)}
body.tint-on.cat-hyrox,.cat-deka{--tint-amt:12%}body.tint-on.cat-sprint,body.tint-on.cat-10k,body.tint-on.cat-olympic{--tint-amt:10%}
body.tint-on.cat-utmb{--tint-amt:8%}
body.tint-on main{border-color:transparent}
/* Keep the header and phone tab bar neutral */
body.tint-on header{background:#1c190f;border-color:var(--line)}
/* desktop header is max-width: paint neutral full-bleed behind it (not on phones, where clip-path would hide the fixed tab bar) */
@media(min-width:761px){body.tint-on header{box-shadow:0 0 0 100vmax #1c190f;clip-path:inset(0 -100vmax)}}
@media(max-width:760px){body.tint-on header nav{background:#f7f5f0f5}}
/* Readable surfaces on top of the tint */
body.tint-on .race{background:#0b0b0b}
body.tint-on .filter-sidebar{background:#ffffffb3;border-color:#0000000f}
@media(max-width:760px){body.tint-on .filter-sidebar{background:none}body.tint-on #filterPanel[open]{background:#1c190f}}
body.tint-on .view-switch{background:#ffffff99}
body.tint-on{--muted:#a3a3ac}
/* Race pages: same sport tint, a notch lighter */
body.tint-on.tint-race{--tint-amt:5%}body.tint-on.tint-race.cat-hyrox,.cat-deka{--tint-amt:8%}

/* No photos (user decision): type-and-colour blocks only */
.visual-art{display:flex;flex-direction:column;justify-content:space-between;padding:10px;box-sizing:border-box}
.visual-art span{position:static;font-family:'Anton',Impact,sans-serif;font-weight:800;font-size:34px;line-height:.85;letter-spacing:-.5px}
.visual-art small{position:static;font-size:8px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.visual-art.vis-word span{font-size:22px}
.major-card>.event-visual .visual-art span,.map-popup .visual-art span{font-size:64px}
.major-card>.event-visual .visual-art small,.map-popup .visual-art small{font-size:11px}
.major-card>.event-visual .visual-art{padding:18px}
/* Race page header = the sport's colour block, big distance plus big race name */
#eventPage .event-hero{background:var(--cat);color:var(--cat-ink);border-top:0;box-shadow:none;border-radius:var(--radius);position:relative}
#eventPage .event-hero :is(.eyebrow,p,.event-date,.hero-fee,h1){color:var(--cat-ink)}
#eventPage .event-hero .hero-num{font-family:'Anton',Impact,sans-serif;font-weight:800;font-size:clamp(96px,15vw,190px);line-height:.82;letter-spacing:-3px;margin:18px 0 0}
#eventPage .event-hero h1{margin-top:14px}
#eventPage .event-hero .primary{background:var(--cat-ink);color:var(--cat)}
#eventPage .event-hero :is(.event-save,.event-remind,a:not(.primary)){color:var(--cat-ink);border-color:currentColor;background:transparent}
@media(max-width:760px){#eventPage .event-hero .hero-num{font-size:96px}}
@media(min-width:761px){.race .visual-art span{font-size:46px}.race .visual-art.vis-word span{font-size:32px}}

/* Alerts v2: all sports, colour-block cards in each sport's colours */
.alerts-honest{background:#0b0b0b;border-left:6px solid var(--ink);border-radius:4px;padding:12px 16px;font-size:14px;line-height:1.5;margin:0 0 26px;color:var(--ink)}
.alerts-v2{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:32px;align-items:start}
.alerts-v2 h2{font-family:'Anton',Impact,sans-serif;text-transform:uppercase;font-size:30px;letter-spacing:0;margin:0 0 14px;display:flex;align-items:center;gap:10px}
.alerts-v2 h2 span{font-family:'Inter Tight',sans-serif;font-size:11px;font-weight:800;background:var(--ink);color:#1f1f1f;border-radius:999px;padding:4px 8px}
.alerts-v2 h2 em{font-style:normal;font-family:'Inter Tight',sans-serif;font-size:13px;font-weight:800;background:var(--ink);color:#1f1f1f;border-radius:999px;min-width:24px;text-align:center;padding:3px 8px}
.alerts-v2 h2 em:empty{display:none}
.finder-controls{display:grid;grid-template-columns:1fr auto;gap:8px}
.finder-controls input,.finder-controls select{font:inherit;font-size:16px;min-height:50px;border:2px solid var(--ink);border-radius:12px;padding:0 14px;background:#0b0b0b;color:var(--ink);min-width:0}
.finder-hint,.finder-count{font-size:13px;color:var(--muted);margin:12px 2px}
.alert-hit{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:12px;align-items:center;background:#0b0b0b;border-radius:14px;padding:10px 12px 10px 10px;margin-top:8px}
.hit-block{align-self:stretch;background:var(--cat,var(--ink));border-radius:6px}
.hit-text{display:grid;gap:2px;min-width:0}
.hit-text strong{font-size:15px;line-height:1.25}
.hit-text small{font-size:12px;color:var(--muted)}
.hit-text .tone-open{color:var(--open);font-weight:700}.hit-text .tone-soon{color:var(--upcoming);font-weight:700}
.hit-alert,.remind[data-alert-me],.major-alert{font:inherit;font-weight:800;font-size:12px;border:2px solid var(--ink);background:#0b0b0b;color:var(--ink);border-radius:999px;padding:8px 14px;white-space:nowrap;cursor:pointer}
.hit-alert.is-on,.remind.is-on,.major-alert.is-on,.event-remind.is-on{background:var(--ink);color:#1f1f1f;border-color:var(--ink)}
.my-alerts-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.my-alerts-head .primary{display:inline-flex;width:auto;gap:12px;border-radius:999px;padding:12px 18px}
.my-alerts-head .primary:disabled{opacity:.4;cursor:not-allowed}
.alert-card{background:var(--cat,var(--ink));color:var(--cat-ink,#1f1f1f);border-radius:20px;padding:18px 20px 20px;margin-top:12px}
.alert-card-top{display:flex;justify-content:space-between;align-items:center}
.alert-sport{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.alert-remove{background:none;border:0;color:inherit;font:inherit;font-size:12px;font-weight:700;text-decoration:underline;cursor:pointer;padding:6px 0}
.alert-card h3{font-family:'Anton',Impact,sans-serif;text-transform:uppercase;font-size:30px;line-height:1;margin:8px 0 4px}
.alert-card h3 a{color:inherit;text-decoration:none}
.alert-where{font-size:13px;opacity:.85;margin:0}
.alert-status{font-size:19px;font-weight:800;margin:12px 0 2px}
.alert-next{font-size:13px;margin:4px 0 0;opacity:.9}
.alert-types{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.alert-type{font:inherit;font-size:12px;font-weight:700;border:1.5px solid currentColor;background:transparent;color:inherit;border-radius:999px;padding:6px 11px;cursor:pointer}
.alert-type.is-on{background:var(--cat-ink,#0b0b0b);color:var(--cat,var(--ink));border-color:var(--cat-ink,#0b0b0b)}
.alert-type.is-na{border-style:dashed;opacity:.7;cursor:default;font-weight:600}
.alerts-empty{border:2px dashed var(--line);border-radius:20px;padding:30px 22px;text-align:center;margin-top:12px;background:#0b0b0b}
.alerts-empty strong{font-family:'Anton',Impact,sans-serif;text-transform:uppercase;font-size:28px}
.alerts-empty p{font-size:14px;color:var(--muted);margin:8px 0 0}
.email-soon{margin-top:24px;border-radius:16px;background:#21211d;padding:16px}
.email-soon label{font-weight:800;font-size:14px;display:flex;gap:8px;align-items:center}
.email-soon label em{font-style:normal;font-size:10px;letter-spacing:.06em;text-transform:uppercase;background:var(--ink);color:#1f1f1f;border-radius:999px;padding:3px 8px}
.email-soon div{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}
.email-soon input,.email-soon button{font:inherit;font-size:14px;border:1.5px solid #42413d;border-radius:10px;padding:10px 12px;background:#1b1911;color:var(--muted)}
.email-soon p{font-size:12px;color:var(--muted);margin:8px 0 0}
@media(max-width:860px){.alerts-v2{grid-template-columns:1fr;gap:28px}.alert-card h3{font-size:26px}}
@media(max-width:420px){.finder-controls{grid-template-columns:1fr}.alert-hit{grid-template-columns:8px minmax(0,1fr)}.alert-hit .hit-alert{grid-column:2;justify-self:start}}
.primary[data-alert-me].is-on{background:var(--ink);color:#1f1f1f}
.alert-card p,.alert-card .alert-status,.alert-card .alert-next,.alert-card .alert-where{color:inherit}

/* Tiles have no numbers: the arrow sits top-right on its own. */
.category-tile .tile-top{justify-content:flex-end}

/* Home tile groups: big translucent panels (see-through tint over the off-white) with a bold label. */
#categoryTiles.tile-groups{display:flex;flex-direction:column;gap:18px}
.tile-group{--panel:rgba(180,174,168,.11);--panel-edge:rgba(180,174,168,.22);--label:#dddde1;position:relative;background:var(--panel);border:1px solid var(--panel-edge);border-radius:34px;padding:22px 22px 22px;-webkit-backdrop-filter:saturate(1.2);backdrop-filter:saturate(1.2)}
.group-run{--panel:rgba(14,127,121,.13);--panel-edge:rgba(14,127,121,.24);--label:#0b4f55}
.group-tri{--panel:rgba(212,138,18,.10);--panel-edge:rgba(212,138,18,.20);--label:#a86a0a}
.group-other{--panel:rgba(177,171,165,.12);--panel-edge:rgba(177,171,165,.22);--label:#dddde1}
.tile-group .group-label{font-family:'Anton','Arial Narrow',Impact,sans-serif;font-weight:800;text-transform:uppercase;font-size:clamp(46px,6.4vw,92px);line-height:.82;letter-spacing:-1px;color:var(--label);margin:2px 0 18px 4px}
.tile-group .category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.tile-group .category-tile,.tile-group .category-tile:nth-child(4){min-height:200px}
.tile-group .category-tile .tile-distance{font-size:clamp(40px,24cqw,84px)}
.tile-group .category-tile[data-category] .tile-distance{font-size:clamp(34px,21cqw,84px)}
@media(min-width:761px){.tile-group .category-grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1000px){.tile-group .category-grid{grid-template-columns:repeat(var(--n,4),1fr)}.tile-group{padding:26px}}
@media(max-width:760px){#categoryTiles.tile-groups{gap:14px}.tile-group{border-radius:26px;padding:16px 12px 12px}.tile-group .group-label{font-size:clamp(42px,13vw,60px);margin:0 0 12px 4px}.tile-group .category-grid{gap:9px}.tile-group .category-tile,.tile-group .category-tile:nth-child(4){min-height:160px}}
/* My alerts: status hierarchy. Open = full sport colour + filled badge with a pulse; coming up = soft tint + outlined badge; closed / not announced = muted grey. */
.alert-card{position:relative}
.alert-card h3{margin:6px 0 4px}
.alert-card h3 a{color:inherit;text-decoration:none}
.alert-remove{font-size:22px;line-height:1;text-decoration:none;opacity:.75;padding:2px 4px}
.alert-remove:hover{opacity:1}
.alert-key{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin-top:14px}
.alert-badge{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:7px 13px;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border:2px solid currentColor}
.alert-key-line{font-size:15px;font-weight:800}
.alert-card.is-open .alert-badge{background:var(--cat-ink,#0b0b0b);color:var(--cat,#dcdce4);border-color:var(--cat-ink,#0b0b0b);font-size:15px;padding:8px 15px}
.alert-card.is-open .alert-badge i{width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:alertPulse 1.8s ease-out infinite}
.alert-card.is-open .alert-key-line{font-size:17px}
@keyframes alertPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,currentColor 55%,transparent)}100%{box-shadow:0 0 0 9px transparent}}
@media(prefers-reduced-motion:reduce){.alert-card.is-open .alert-badge i{animation:none}}
.alert-card.is-soon{background:var(--cat-soft,#21211d);color:#dcdce4;box-shadow:inset 6px 0 0 var(--cat)}
.alert-card.is-soon .alert-badge{color:var(--cat);background:transparent}
.alert-card.is-soon.cat-hyrox,.cat-deka .alert-badge,.alert-card.is-soon.cat-sprint .alert-badge,.alert-card.is-soon.cat-10k .alert-badge{color:#dcdce4}
.alert-card.is-soon .alert-key-line{font-weight:700}
.alert-card.is-muted{background:#0b0b0b;color:#8d8d96;box-shadow:inset 6px 0 0 #383632;border:1px solid #2a2823}
.alert-card.is-muted h3{color:#bbbbc3;font-size:.95em}
.alert-card.is-muted .alert-badge{color:#75757f;border:1.5px solid #42413d;background:transparent;font-size:11px;padding:5px 10px}
.alert-hit .alert-key{margin-top:4px;gap:4px 8px}
.alert-hit .alert-badge{font-size:10px;padding:3px 8px;border-width:1.5px}
.alert-hit .alert-key-line{font-size:12px;font-weight:700}
.alert-hit .alert-key.is-open .alert-badge{background:var(--cat);color:var(--cat-ink);border-color:var(--cat)}
.alert-hit .alert-key.is-soon .alert-badge{color:#dcdce4}
.alert-hit .alert-key.is-muted .alert-badge{color:#75757f;border-color:#3c3b37}

/* Medal missions: one vertical list, one block per mission */
.mission-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.mission-filter button{border:2px solid #dfdfdf;background:#0b0b0b;color:#e1e1e1;border-radius:999px;padding:8px 16px;font-weight:800;font-size:14px;cursor:pointer}
.mission-filter button[aria-pressed="true"]{background:#dfdfdf;color:#1f1f1f}
.mission-list{display:flex;flex-direction:column;gap:22px;max-width:980px}
.mission-block{background:#0b0b0b;border-radius:28px;overflow:hidden;border:2px solid var(--cat);box-shadow:0 1px 0 rgba(237,237,237,.04)}
.mission-head{background:var(--cat);color:var(--cat-ink);padding:22px 26px 20px}
.mission-where{display:block;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;opacity:.92}
.mission-head h2{font-family:'Anton',sans-serif;font-size:clamp(32px,4.4vw,48px);line-height:.95;margin:8px 0 8px;text-transform:uppercase}
.mission-what{margin:0;font-size:17px;line-height:1.4;max-width:62ch}
.mission-body{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:22px;padding:22px 26px 24px;position:relative}
.mission-reward{background:var(--cat-soft);border-radius:18px;padding:16px 18px;align-self:start}
.mission-reward span{display:block;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#acacac}
.mission-reward strong{display:block;font-size:17px;line-height:1.35;margin-top:4px}
.mission-reward p{margin:10px 0 0;font-size:14px;color:#c0c0c0;line-height:1.4}
.mission-hint{margin:0 0 10px;font-size:14px;color:#acacac}
.mission-races{list-style:none;margin:0 0 14px;padding:0;display:flex;flex-direction:column;gap:8px}
.mission-races li{display:flex;align-items:center;gap:10px;border:2px solid #2f2c27;border-radius:14px;padding:10px 12px;transition:background .15s,border-color .15s}
.mission-races a{font-size:13px;font-weight:800;color:#e1e1e1;white-space:nowrap}
@media (max-width:760px){.mission-body{grid-template-columns:1fr;padding:18px}.mission-head{padding:18px}.mission-block{border-radius:22px}}
.mission-block .mission-head{display:block;position:static;height:auto;border:0;box-shadow:none;backdrop-filter:none}
.mission-block .mission-head h2{color:inherit}
.mission-block .mission-what{color:inherit;opacity:.94}
.mission-track>.text-link{display:inline-block}
/* UTMB race facts + HYROX divisions */
.sport-line{display:block;margin-top:6px;font-size:11px;font-weight:600;color:var(--ink)}.sport-line b{color:var(--cat,var(--ink))}.sport-line.na{color:var(--muted);font-weight:500}
.status.reg-full{background:#18181c;color:#a3a3ac;border:1px solid #2a2a2f}
.utmb-kind{display:inline-block;margin:6px 0 14px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;background:var(--cat-soft,#0c0c1a);color:var(--cat,var(--ink));padding:6px 10px;border-radius:999px}
.sport-races{display:grid;gap:12px;margin-top:14px}.sport-race{border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:#0b0b0b}.sport-race-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px}.sport-race-head h3{font-size:17px;letter-spacing:-.3px}
.stat-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0}.stat-chips div{background:var(--cat-soft,#151519);border-radius:10px;padding:6px 10px;min-width:0}.stat-chips dt{font-size:9px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted)}.stat-chips dd{margin:2px 0 0;font-size:13px;font-weight:700;color:var(--ink)}.stat-chips .na dd{font-weight:500;color:var(--muted)}
.sport-race-link{display:inline-block;margin-top:10px;font-size:11px;text-decoration:underline;text-underline-offset:3px}
.division-groups{display:grid;gap:12px;margin-top:12px}.division-group small{display:block;font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.division-group div{display:flex;flex-wrap:wrap;gap:6px}.division-chip{font-size:12px;font-weight:700;padding:7px 12px;border-radius:999px;background:var(--cat-soft,#151519);color:var(--cat,var(--ink))}.division-chip.sold{background:#18181c;color:#909099;text-decoration:line-through}.sport-na{font-weight:600}
.utmb-explainer{margin-top:14px;border:1px solid var(--line);border-radius:20px;background:#0b0b0b;padding:16px 18px;color:var(--ink)}.utmb-explainer p{font-size:13px;color:var(--ink)}.utmb-explainer ul{list-style:none;margin:12px 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.utmb-explainer li{display:flex;gap:10px;align-items:baseline;background:var(--cat-soft,#131316);border-radius:12px;padding:8px 10px;font-size:12px;line-height:1.4}.utmb-explainer li b{flex:0 0 auto;min-width:52px;text-align:center;background:var(--cat,var(--ink));color:#1f1f1f;border-radius:999px;padding:3px 8px;font-size:11px}.utmb-explainer a{font-size:11px;text-decoration:underline}
@media(max-width:650px){.sport-race{padding:12px}.stat-chips dd{font-size:12px}.utmb-explainer{padding:14px}}
#catExplainer:empty{display:none}#catExplainer .utmb-explainer{margin:0 0 18px}
@media(max-width:650px){.utmb-explainer ul{grid-template-columns:1fr;gap:6px}.utmb-explainer li{padding:7px 9px}}
/* Distance options: every official distance an event offers, as chips (cards + race page). */
.dist-chips{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0 2px}.dist-chip{display:inline-block;font-size:11px;font-weight:700;line-height:1;padding:6px 9px;border-radius:999px;background:var(--cat-soft,#21211d);color:var(--ink);border:1.5px solid transparent;white-space:nowrap}.dist-chip.cur{background:var(--cat,#dddde1);color:var(--cat-ink,#1f1f1f)}a.dist-chip{border-color:var(--cat,#dddde1);background:transparent}a.dist-chip:hover{background:var(--cat-soft,#21211d)}.dist-chip.more{background:transparent;border-color:var(--line);color:var(--muted)}.fact-distance strong .dist-chips{margin:4px 0 0}.fact-distance strong .dist-chip{font-size:12px}
/* "Didn't get the ballot?" routes */
.ways .ways-season{margin:6px 0 14px;font-size:13px}.way{border-top:2px solid var(--ink);padding:0}.way:last-of-type{border-bottom:2px solid var(--ink)}.way summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 2px;font-weight:700;font-size:15px}.way summary::-webkit-details-marker{display:none}.way summary:after{content:'+';font-size:20px;font-weight:700;margin-left:auto}.way[open] summary:after{content:'–'}.way-tag{font-size:10px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:5px 8px;border-radius:4px;background:var(--cat,#dddde1);color:var(--cat-ink,#1f1f1f);white-space:nowrap}.way-body{padding:0 2px 16px}.way-body>a{display:inline-block;margin-top:8px;font-size:12px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.q-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:4px 0 10px}.q-table{border-collapse:collapse;width:100%;min-width:280px;font-size:13px;font-variant-numeric:tabular-nums}.q-table caption{text-align:left;font-weight:700;font-size:12px;letter-spacing:.4px;text-transform:uppercase;padding-bottom:8px}.q-table th,.q-table td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.q-table thead th{background:var(--cat,#dddde1);color:var(--cat-ink,#1f1f1f);font-size:11px;letter-spacing:.4px;text-transform:uppercase}.q-table tbody tr:nth-child(even){background:var(--cat-soft,#151519)}.q-table tbody th{font-weight:700}
@media(max-width:650px){.q-table{font-size:12px}.q-table th,.q-table td{padding:6px 7px}.way summary{font-size:14px}}
.status.partial{--status-color:var(--soldout);background:#200f13}.status.partialoff{--status-color:var(--soldout);background:#1b1618}.status.offsale{--status-color:var(--closed)}.status.notyet{--status-color:var(--unknown)}.partial,.partialoff{--status-color:var(--soldout)}.division-chip.avail-offsale{text-decoration:none;background:#151518;color:#83838c}.division-chip.avail-soldout{text-decoration:none;background:#18181c;color:#909099}
.brand-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.brand-chip{font-size:10px;font-weight:700;letter-spacing:.2px;border:1px solid var(--cat,var(--line));color:var(--cat,var(--ink));background:transparent;border-radius:999px;padding:3px 9px;line-height:1.4}.brand-chip:hover,.brand-chip.on{background:var(--cat,var(--ink));color:#1f1f1f}

/* Cleanup: Medal Missions list races (no ticks): name first, then race date and entry status */
.mission-races li{flex-wrap:wrap;row-gap:4px}.mission-races .mr-name{flex:1 1 220px;font-size:17px;font-weight:800;color:#f1f1f1;text-decoration:none;white-space:normal}.mission-races .mr-name small{display:block;font-size:12px;font-weight:500;color:#a9a6a0}.mission-races .mr-when{font-size:14px;font-weight:700;color:#e1e1e1;white-space:nowrap}.mission-races .rl-pill{font-size:12px}
/* Cleanup: Saved view — no filter panel, one search bar over all races */
.directory-layout.is-saved-view{grid-template-columns:minmax(0,1fr)}.directory-layout.is-saved-view>.filter-sidebar{display:none}.saved-search{margin:0 0 22px}.saved-search[hidden]{display:none}.saved-search .ss-row{display:flex;align-items:center;gap:10px}.saved-search .ss-row>a{flex:1;min-width:0}.saved-search .ss-row .save{flex:none;margin-right:12px;min-width:40px;min-height:40px}

/* cleanup: Majors entry window + results line in mission rows */
.mission-races .mr-entry{flex:1 1 100%;font-size:12px;color:#a9a9a9;line-height:1.4}

/* Round 53: My races (combined Saved + Alerts) */
.mine-hub.alerts-v2{grid-template-columns:1fr;gap:28px}
.mine-saved{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.mine-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--card) 92%,transparent)}
.mine-row a{color:inherit;text-decoration:none;min-width:0}
.mine-row a b{display:block;font-size:1rem}
.mine-row a small{display:block;color:var(--muted);font-size:.82rem;margin-top:2px}
.mine-acts{display:flex;gap:6px;flex-shrink:0}
.mine-acts button{min-width:2.25rem}
#watchNav #count{margin-left:4px}
#watchNav #count.zero{display:none}

/* Round 53 hub race rows */
.mission-races .mr-compact{display:grid;grid-template-columns:minmax(0,1.4fr) 6.5rem minmax(0,1fr);gap:.35rem .75rem;align-items:center;padding:.55rem 0;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.mission-races .mr-compact .mp-brief{display:flex;flex-wrap:wrap;gap:.3rem .45rem;align-items:center}
.mission-races .mr-compact .mr-more{grid-column:1/-1}
.mission-races .mr-compact .mp-keydate{font-size:.8rem;color:var(--muted);font-weight:600}
@media(max-width:760px){.mission-races .mr-compact{grid-template-columns:1fr}}

#mineSavedCal,.mine-saved-sec{max-width:100%;overflow-x:auto}
#mineSavedCal .saved-cal,#mineSavedCal .scal-scroll{max-width:100%}
