@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#203b37;--muted:#79847e;--paper:#f6f6ef;--line:#e1e5db;--accent:#d6e99b;--forest:#122c2a;--sans:'DM Sans',system-ui,sans-serif;--display:'Manrope',system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--sans);font-size:13px;background:var(--paper)}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}a{color:inherit}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible{outline:2px solid #78a95a;outline-offset:3px}button{border:0;background:none}input,select{min-width:0;color:inherit}input::placeholder{color:#a0a89e}input[type=number]{appearance:textfield;width:100%}input::-webkit-inner-spin-button{appearance:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-50px;left:20px;z-index:100;background:var(--accent);padding:12px}.skip-link:focus{top:8px}.header{height:76px;padding:0 29px;display:flex;align-items:center;border-bottom:1px solid var(--line);gap:30px;background:#fafaf5}.brand{display:flex;align-items:center;gap:9px;text-decoration:none;font-family:var(--display);font-weight:800;letter-spacing:-1.2px;font-size:22px;white-space:nowrap}.brand svg{width:33px;height:33px}.brand-light{font-weight:500;margin-left:4px}.beta{font-size:9px;font-family:var(--sans);letter-spacing:0;margin-left:3px;border:1px solid #ced6c7;padding:3px 4px;border-radius:3px;align-self:flex-start;margin-top:6px}.header-note{font-size:12px;color:#92998b;padding-left:26px;border-left:1px solid #dfe3d6}.about-button{margin-left:auto;font-size:12px;display:flex;gap:20px;align-items:center}.about-button span{font-size:20px}.workspace{display:grid;grid-template-columns:282px minmax(300px,1fr) 342px;height:calc(100dvh - 76px);min-height:640px}.filters{display:flex;flex-direction:column;overflow:auto;scrollbar-width:thin;scrollbar-color:#cfd6c9 transparent;background:var(--paper);z-index:4}.panel-heading{padding:29px 23px 22px}.eyebrow{font-size:9px;font-weight:650;letter-spacing:1.5px}.panel-heading .eyebrow{color:#87907d;font-size:8px;letter-spacing:1.1px}h1,h2,h3,p{margin:0}h1{font-family:var(--display);font-size:20px;font-weight:650;letter-spacing:-.8px;margin-top:9px;line-height:1.4}#filters-form{padding:0 23px}.search-box{display:flex;align-items:center;gap:8px;border:1px solid #dce1d4;border-radius:6px;background:#fff;height:42px;padding:0 10px}.search-box svg{height:17px;width:17px;fill:none;stroke:#758576;stroke-width:1.5;flex-shrink:0}.search-box input{border:0;background:none;font-size:11px;width:100%;outline:none}.search-box kbd{font-size:11px;color:#9ca597;border:1px solid #e4e7dd;padding:0 4px;border-radius:3px}.filter-section{border-bottom:1px solid var(--line);padding:21px 0}.filter-section h2{font-size:11px;font-weight:650;margin-bottom:12px}.segmented{display:flex;padding:3px;background:#e9ede2;border-radius:6px}.segmented button{font-size:10px;flex:1;padding:7px 1px;border-radius:4px;transition:background .15s}.segmented button[aria-pressed=true]{background:#fff;box-shadow:0 1px 3px #1b34131a}.input-pair{display:flex;align-items:flex-end;gap:9px}.input-pair>label{flex:1;min-width:0;font-size:9px;color:#7b8679}.input-pair>span{padding-bottom:9px;font-size:10px;color:#abb5a5}.input-pair input{display:block;width:100%;height:34px;border:1px solid #dce1d4;background:#fbfcf7;border-radius:5px;padding:7px 9px;font-size:11px;margin-top:5px;color:var(--ink)}.dates{margin-top:12px}.dates input{font-size:9px;padding:6px 5px}.select-label select{width:100%;appearance:none;padding:10px 30px 10px 11px;border:1px solid #dce1d4;border-radius:5px;background:linear-gradient(45deg,transparent 50%,#6d7d69 50%) calc(100% - 13px) 16px/4px 4px no-repeat,linear-gradient(135deg,#6d7d69 50%,transparent 50%) calc(100% - 9px) 16px/4px 4px no-repeat,#fbfcf7;font-size:11px}.country-picker{position:relative;margin-top:9px}.country-picker summary{list-style:none;border:1px solid #dce1d4;border-radius:5px;font-size:11px;padding:10px 11px;cursor:pointer;display:flex;justify-content:space-between;background:#fbfcf7}.country-picker summary::-webkit-details-marker{display:none}.country-menu{position:absolute;top:42px;left:0;right:0;z-index:10;background:#fff;padding:9px;box-shadow:0 9px 30px #14271b25;border:1px solid var(--line);border-radius:6px}.country-menu>input{width:100%;padding:9px;border:1px solid var(--line);border-radius:4px;font-size:11px}.country-menu>button{font-size:10px;text-decoration:underline;margin:7px 0;color:#74896b}#country-options{max-height:190px;overflow:auto}#country-options label{display:flex;gap:7px;align-items:center;padding:6px 2px;font-size:11px;cursor:pointer}input[type=checkbox]{accent-color:#315c47}.label-line{display:flex;align-items:center;justify-content:space-between}.label-line h2{margin-bottom:10px}.unit{font-size:8px;letter-spacing:1px;color:#8f9a86;margin-bottom:9px}.help-label{font-size:9px;border:1px solid #becab3;border-radius:50%;height:13px;width:13px;padding:0;margin-bottom:10px;color:#7e8d70}.category-options{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.category-options button{font-size:10px;border:1px solid #dce1d4;border-radius:5px;padding:9px 2px;background:#fbfcf7;display:flex;align-items:center;justify-content:center;gap:4px}.category-options button[aria-pressed=true]{border-color:#477057;background:#e4eedb;color:#1c492e;box-shadow:inset 0 0 0 1px #477057}.category-options .other-category{grid-column:1/-1;padding:5px;font-size:9px;color:#8c9783;background:transparent;border-style:dashed}.dot{display:inline-block;width:5px;height:5px;border-radius:50%;flex-shrink:0;background:var(--category-color,#b5bca9)}.c20{background:#c5a33f}.c50{background:#e78c50}.c100{background:#72a98f}.c100m{background:#aa83c6}.presets{display:flex;gap:5px;margin-top:9px}.presets button{font-size:9px;border:1px solid #e0e5d7;border-radius:4px;padding:4px 7px;color:#75846c}.presets button:hover{background:#e7eddf}.filter-bottom{display:flex;justify-content:space-between;align-items:center;padding:18px 0}.reset-button{font-size:14px;display:flex;gap:7px;align-items:center;padding:0}.reset-button span{font-size:10px}.filter-bottom>span{font-size:9px;color:#8b987f}.filter-footer{display:flex;gap:7px;align-items:center;font-size:9px;color:#839077;border-top:1px solid var(--line);padding:16px 23px;margin-top:auto}.status-dot{width:5px;height:5px;background:#8fb17d;border-radius:50%;display:inline-block;flex-shrink:0}.field-error{font-size:10px;color:#ac4d36;margin-top:10px;line-height:1.5}.globe-panel{position:relative;overflow:hidden;background:radial-gradient(ellipse at 53% 54%,#22413a 0,#142f2b 48%,#102724 100%);color:#e9efdc;min-width:0;isolation:isolate}.globe-panel:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#b6d1b81a .6px,transparent .6px);background-size:27px 27px;pointer-events:none;z-index:-1}.globe-title{position:absolute;left:33px;top:32px;z-index:1;pointer-events:none}.globe-title .eyebrow{font-size:8px;letter-spacing:1.8px;color:#a3b6a0;display:flex;align-items:center;gap:7px}.globe-title h2{font-family:var(--display);font-size:clamp(30px,3vw,48px);line-height:1.18;letter-spacing:-1.7px;margin-top:15px;font-weight:500}.globe-title h2 em{font-style:normal;color:#cfe29b}.globe-title p{font-size:11px;color:#8aa28f;margin-top:15px}.globe-stat{position:absolute;right:27px;top:32px;display:flex;flex-direction:column;text-align:right;pointer-events:none}.globe-stat strong{font-family:var(--display);font-size:26px;font-weight:500;letter-spacing:-1px;color:#d9e5bf}.globe-stat span{font-size:8px;letter-spacing:.8px;color:#8ca38e;margin-top:4px}#globe-container{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}canvas:active{cursor:grabbing}.globe-controls{position:absolute;right:22px;bottom:88px;display:flex;flex-direction:column;background:#1a3830e6;border:1px solid #48634d77;border-radius:7px;overflow:hidden;backdrop-filter:blur(8px)}.globe-controls button{height:39px;width:39px;color:#dbe6ca;font-size:21px;display:grid;place-items:center}.globe-controls button:hover{background:#49654b66}.globe-controls svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1}.globe-controls>span{height:1px;background:#48634d77;margin:0 8px}.globe-bottom{position:absolute;bottom:23px;left:28px;right:25px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:8px;color:#87a087}.globe-instructions{display:flex;align-items:center;gap:8px}.globe-instructions>span:first-child{font-size:16px;color:#aec19b}.map-attribution{font-size:8px}.map-attribution a{text-decoration:none}.map-attribution a:hover{text-decoration:underline}#clear-location{font-size:10px;color:#d6e99b;border:1px solid #729064;border-radius:5px;padding:6px;background:#17362d}.tooltip{position:absolute;width:260px;background:#f9faf2;color:var(--ink);box-shadow:0 6px 30px #071b2555;border:1px solid #d6dfc9;border-radius:9px;z-index:3;overflow:hidden;pointer-events:none;padding:15px}.tooltip .eyebrow{font-size:8px;color:#7f8e72}.tooltip h3{font-family:var(--display);font-size:14px;line-height:1.4;margin:6px 0}.tooltip p{font-size:10px;color:#75816f;line-height:1.7}.tooltip .tooltip-stats{display:flex;gap:13px;font-size:11px;margin:10px 0;color:#3d5c43}.tooltip small{display:block;font-size:9px;color:#88947c;margin-top:6px}.results-panel{background:#fafaf5;display:flex;flex-direction:column;min-width:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#d5ddcc transparent}.results-heading{padding:29px 22px 18px;position:sticky;top:0;z-index:2;background:#fafaf5;border-bottom:1px solid var(--line)}.results-heading .eyebrow{font-size:8px;color:#8b967f;letter-spacing:1.4px}.results-title{display:flex;justify-content:space-between;align-items:center;margin-top:12px;gap:8px}.results-title h2{font-family:var(--display);font-size:17px;font-weight:650;letter-spacing:-.6px}.result-badge{font-size:9px;border:1px solid #d5dfca;border-radius:5px;padding:4px 6px;background:#eff2e7;color:#6b805a}.results-meta{display:flex;align-items:center;justify-content:space-between;margin-top:17px;gap:6px;color:#929c87;font-size:9px}.results-meta select{border:0;background:none;font-size:9px;color:#647758;max-width:108px}.race-list{flex:1}.race-card{display:block;width:100%;text-align:left;padding:20px 22px 18px;border-bottom:1px solid var(--line);position:relative;background:transparent;transition:background .15s}.race-card:hover,.race-card:focus-visible{background:#eef2e6}.race-card.active{background:#e9efdf;border-left:3px solid #708e56;padding-left:19px}.race-card-top{display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:.6px;color:#8c987f;gap:5px}.race-card-top time{font-size:9px;letter-spacing:.2px;color:#7e8b72}.category-badge{display:inline-flex;align-items:center;gap:5px;font-size:8px;letter-spacing:.4px}.race-card h3{font-family:var(--display);font-size:14px;font-weight:700;letter-spacing:-.3px;line-height:1.5;margin:8px 17px 3px 0}.event-name{font-size:10px;line-height:1.5;color:#8f9988;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.race-place{font-size:10px;color:#819075;margin-top:8px;display:flex;align-items:flex-start;gap:5px;line-height:1.5}.race-place svg{width:11px;height:12px;flex-shrink:0;margin-top:1px;fill:none;stroke:currentColor;stroke-width:1.5}.race-card-stats{display:flex;gap:18px;margin-top:13px;font-size:11px;font-weight:550;color:#4f6b45}.race-card-stats span{display:flex;align-items:center;gap:4px}.race-card-stats small{font-weight:400;color:#929f86;font-size:9px}.card-arrow{position:absolute;right:23px;bottom:20px;font-size:17px;color:#afbc9f}.unmapped-label{font-size:8px;color:#a09d85;display:block;margin-top:8px}.results-footer{padding:18px 22px;font-size:9px;font-style:italic;color:#9ba58e;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line)}.results-footer span{font-size:16px;font-style:normal}.load-more{padding:16px;font-size:11px;background:#eef2e5;border-bottom:1px solid var(--line)}.loading-state,.empty-state,.error-state{text-align:center;padding:80px 24px;color:#89997c;font-size:12px;line-height:1.8}.loading-state small{font-size:10px}.spinner{display:block;width:25px;height:25px;border:2px solid #d6dfca;border-top-color:#668755;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 18px}.empty-state strong,.error-state strong{display:block;font-family:var(--display);font-size:17px;color:var(--ink);margin-bottom:10px}.empty-state button,.error-state button{display:inline-block;background:#dae7c0;padding:10px 15px;border-radius:5px;margin-top:15px;font-size:11px}.mobile-only{display:none}#location-note{padding:10px 22px;font-size:10px;line-height:1.6;color:#8a947e;background:#f0f2e7;border-bottom:1px solid var(--line)}dialog{color:var(--ink);background:#fafbf4;border:1px solid #d6deca;border-radius:12px;padding:35px;box-shadow:0 25px 100px #08190f66;max-width:min(520px,calc(100vw - 32px));width:100%;max-height:85dvh;overflow:auto}dialog::backdrop{background:#0b211b99;backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:12px;top:10px}.icon-button{font-size:25px;line-height:1;width:34px;height:34px;display:grid;place-items:center;color:#829374}.detail-dialog{padding:0;max-width:min(480px,calc(100vw - 32px))}.detail-dialog .dialog-close{background:#f9fbf0e6;border-radius:50%;z-index:2}.detail-top{padding:36px 30px 24px;border-bottom:1px solid var(--line);background:radial-gradient(ellipse at 100% 0,#dae6c5,transparent 70%),#eef3e4}.detail-top h2{font-family:var(--display);font-size:27px;line-height:1.3;letter-spacing:-1px;margin:15px 0 8px}.detail-top p{font-size:12px;color:#7a8d6a;line-height:1.7}.detail-body{padding:24px 30px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px 15px;margin-bottom:24px}.detail-grid dt{font-size:9px;color:#89987b;letter-spacing:1px;margin-bottom:6px;text-transform:uppercase}.detail-grid dd{margin:0;font-size:16px;font-family:var(--display);font-weight:600}.detail-place{font-size:13px;line-height:1.8;padding-top:20px;border-top:1px solid var(--line)}.detail-place small{display:block;font-size:10px;color:#8b967f;margin-top:8px}.detail-links{display:flex;flex-wrap:wrap;gap:9px;margin-top:23px}.detail-links a{display:block;text-decoration:none;background:#234b38;color:#eef4df;font-size:11px;border-radius:5px;padding:12px 15px}.detail-links a.secondary{background:#e9efdd;color:#4b6d3f}.detail-image{width:100%;max-height:180px;object-fit:cover}.detail-source{font-size:9px;color:#939d87;margin-top:20px}.about-dialog .eyebrow{font-size:8px;color:#8a9d76}.about-dialog h2{font-family:var(--display);font-size:30px;line-height:1.3;letter-spacing:-1px;margin:15px 0 20px}.about-dialog p{font-size:12px;line-height:1.9;color:#77866a}.about-dialog h3{font-size:13px;margin:23px 0 7px}.about-footnote{border-top:1px solid var(--line);margin-top:25px;padding-top:15px;font-size:10px!important}#about-stats{border:1px solid var(--line);border-radius:6px;margin:20px 0;padding:12px;font-size:11px;line-height:1.9;color:#5b7849}#about-stats strong{color:#365c2d}.error-banner{position:absolute;bottom:65px;left:20px;right:20px;border:1px solid #b9cd9a44;color:#bacdaa;background:#17362e;padding:13px;border-radius:6px;font-size:11px;z-index:2}.group-header{padding:17px 22px;background:#eaf0df;border-bottom:1px solid var(--line);font-size:11px;line-height:1.6}.group-header button{font-size:10px;text-decoration:underline;padding:0;margin-top:6px}.details-group-list{padding:0 12px}.details-group-list .race-card{padding:16px 18px}.details-group-list .race-card h3{font-size:13px}.group-dialog-title{padding:32px 28px 18px}.group-dialog-title h2{font-family:var(--display);font-size:22px;margin-top:8px}.group-dialog-title p{font-size:11px;margin-top:10px;color:#859278}.group-view-all{padding:18px;display:block;text-align:center;font-size:12px;background:#e1ebce;width:100%}.small-note{font-size:10px;color:#89977b;line-height:1.7}
@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1500px){.workspace{grid-template-columns:304px minmax(300px,1fr) 374px}.panel-heading{padding:32px 28px 25px}#filters-form{padding:0 28px}.filter-section{padding:24px 0}.results-heading{padding:32px 27px 22px}.race-card{padding:23px 27px}.globe-title{left:40px;top:39px}}
@media(max-width:1180px) and (min-width:801px){.workspace{grid-template-columns:250px minmax(260px,1fr) 285px}.panel-heading{padding:24px 18px 20px}#filters-form{padding:0 18px}h1{font-size:18px}.results-heading,.race-card{padding-left:18px;padding-right:18px}.results-title h2{font-size:15px}.globe-title{left:23px;top:28px}.globe-title h2{font-size:31px}.globe-stat{top:auto;bottom:70px;left:24px;right:auto;text-align:left}.header-note{display:none}.globe-stat strong{font-size:23px}.globe-bottom{left:23px}.map-attribution{display:none}.filter-section{padding:18px 0}.results-meta{font-size:8px}}
@media(max-width:800px){.header{height:62px;padding:0 18px;gap:10px}.brand{font-size:20px}.brand svg{width:29px;height:29px}.header-note{display:none}.about-button{font-size:10px;gap:9px}.about-button span{font-size:16px}.workspace{display:block;height:calc(100dvh - 62px);min-height:450px}.globe-panel{height:100%;min-height:450px}.globe-title{top:28px;left:24px}.globe-title h2{font-size:38px}.globe-title p{font-size:11px}.globe-stat{right:23px;top:29px}.globe-stat strong{font-size:24px}.globe-stat span{font-size:7px}.mobile-only{display:flex}.filters{display:none;position:fixed;inset:62px 0 0;z-index:12;max-width:450px;background:#f6f6ef;border-right:1px solid var(--line);box-shadow:20px 0 80px #061b1c55;padding-bottom:78px}.filters.open{display:flex}.filters .panel-heading{display:flex;justify-content:space-between;align-items:center;padding:24px}.filters h1{font-size:23px}#filters-form{padding:0 24px}.filter-section{padding:20px 0}.filter-section h2{font-size:13px}.search-box{height:46px}.search-box input{font-size:13px}.segmented button{font-size:12px;padding:9px}.input-pair input{height:41px;font-size:13px}.input-pair>label{font-size:10px}.dates input{font-size:12px}.select-label select,.country-picker summary{padding:12px;font-size:13px}.country-menu{top:45px}#country-options label{font-size:13px;padding:9px 2px}.category-options button{font-size:12px;padding:12px 2px}.category-options .other-category{font-size:10px;padding:7px}.presets button{font-size:11px;padding:6px 10px}.filter-footer{padding:18px 24px}.apply-button{position:fixed;bottom:0;left:0;width:min(450px,100vw);background:#284d36;color:#edf4dc;padding:20px 24px;justify-content:space-between;align-items:center;font-size:14px;height:65px;z-index:15}.filter-bottom{padding:20px 0}.reset-button span{font-size:12px}.mobile-switch{position:absolute;bottom:23px;left:22px;right:22px;gap:9px}.mobile-switch button{background:#dfecb7;border:1px solid #d4e1b1;color:#233e2d;padding:14px 18px;flex:1;border-radius:7px;font-size:12px;font-weight:550;box-shadow:0 4px 18px #0b271d33}.mobile-switch button:first-child{flex:.65;background:#29483a;color:#e0ebc9;border-color:#536b43}.mobile-switch span{font-size:10px;opacity:.7;margin-left:4px}.globe-controls{bottom:142px;right:19px}.globe-bottom{bottom:93px;left:24px;right:22px}.globe-instructions{font-size:8px}.globe-panel .map-attribution{font-size:7px}.results-panel{display:none;position:fixed;z-index:11;inset:62px 0 0;max-width:500px;margin-left:auto;box-shadow:-20px 0 80px #061b1c55}.results-panel.open{display:flex}.results-heading{padding:23px 24px 18px}.results-title{margin-top:3px}.results-title h2{font-size:21px}.results-heading .eyebrow{font-size:9px}.results-meta,.results-meta select{font-size:11px}.results-meta select{max-width:130px}.race-card{padding:22px 24px}.race-card h3{font-size:17px}.race-card-top,.category-badge{font-size:10px}.race-card-top time{font-size:11px}.event-name,.race-place{font-size:12px}.race-card-stats{font-size:13px}.race-card-stats small{font-size:11px}.unmapped-label{font-size:10px}.tooltip{display:none}.load-more{font-size:13px;padding:20px}.dialog-close{display:grid}.group-dialog-title h2{font-size:22px}.detail-dialog{max-height:85dvh}.filter-footer{margin-top:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.icon-button.mobile-only{display:none}
@media(max-width:800px){.icon-button.mobile-only{display:grid}}
[hidden]{display:none!important}
