@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#f2f4f5;--ink:#18232b;--muted:#647079;--line:#dce2e5;--orange:#ff6b35;--navy:#111e27}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Manrope,Arial,sans-serif}a{color:inherit;text-decoration:none}header{height:88px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 max(5%,calc((100vw - 1280px)/2));gap:40px}.brand{display:flex;align-items:center;gap:12px;font-size:18px;letter-spacing:1px;white-space:nowrap}.brand b{font-weight:800}.mark{display:inline-flex;font:bold 21px 'Barlow Condensed',sans-serif;align-items:center;background:var(--navy);color:#fff;padding:7px;border-radius:3px;letter-spacing:-1px}.mark span{color:var(--orange)}nav{display:flex;gap:32px;margin:auto;font-size:14px;font-weight:700}nav a{height:88px;display:flex;align-items:center;border-bottom:3px solid transparent}nav a:hover,nav .active{border-color:var(--orange)}.avatar{width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#e9eef1;font-weight:800}main{max-width:1280px;margin:auto;padding:42px 0 24px}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.7px;margin:0 0 9px}.page-heading .eyebrow{color:#b7471e}h1{font-size:36px;letter-spacing:-1.3px;margin:0 0 5px}p{margin:0;color:var(--muted)}.date{font-size:14px;color:var(--muted)}h2,h3{margin:0}.top-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:22px}.next{padding:28px 32px 0;background:var(--navy);color:#fff;border-radius:12px;overflow:hidden}.section-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.section-top .eyebrow{color:#b8c5ce;margin:0}.pill{font-size:12px;color:#cbd4da;border:1px solid #40505a;border-radius:30px;padding:5px 10px}.next-body{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:225px}.next .accent{font-size:14px;color:#ff946e;font-weight:700;margin-bottom:8px}.next h2{font:600 42px/1.08 'Barlow Condensed',Arial,sans-serif;max-width:340px}.next-body p:not(.accent){color:#b6c3cc;margin-top:8px}.distance{font-size:14px;display:inline-block;margin-top:17px;padding:5px 11px;background:#253640;border-radius:4px}.countdown{text-align:center;flex-shrink:0}.countdown strong{display:block;color:var(--orange);font:600 112px/1 'Barlow Condensed',Arial,sans-serif;letter-spacing:-3px}.countdown span{font-size:11px;letter-spacing:1.1px;color:#d0d9df}.next-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #35444e;padding:17px 0;font-size:14px;font-weight:600}.next-link span{font-size:22px;color:var(--orange)}.destination{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 28px}.destination>.eyebrow{color:var(--muted)}.destination h2{font:600 34px/1.04 'Barlow Condensed',Arial,sans-serif;letter-spacing:.1px;margin-bottom:18px}.country{display:flex;align-items:center;gap:12px;margin:12px 0}.flag{font-size:28px}.country strong,.country div>span{display:block}.country strong{font-size:15px}.country div>span{font-size:13px;color:var(--muted)}.goal-status{margin-left:auto;color:var(--muted);font-size:12px;border:1px solid var(--line);padding:3px 9px;border-radius:5px}.small{font-size:12px;line-height:1.6}.disciplines{display:grid;grid-template-columns:repeat(3,1fr);margin:24px 0 32px;border:1px solid var(--line);border-radius:10px;background:white}.disciplines>div{display:flex;gap:17px;align-items:center;padding:22px;border-right:1px solid var(--line)}.disciplines>div:last-child{border:0}.number{font-size:13px;color:#7c8891}.disciplines h3{font-size:16px}.disciplines p{font-size:12px;margin-top:4px}.sport{margin-left:auto;color:#cb572c;font-size:30px}.bottom-grid{display:grid;grid-template-columns:1.65fr 1fr;gap:22px}.calendar{background:white;border:1px solid var(--line);border-radius:12px;padding:27px 30px}.section-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px}.section-heading h2{font-size:22px;letter-spacing:-.5px}.section-heading .eyebrow{color:var(--muted);font-size:11px}select{background:white;border:1px solid var(--line);border-radius:6px;color:var(--ink);padding:9px;font:14px Manrope,Arial,sans-serif}.race{display:flex;gap:18px;align-items:center;padding:17px 0;border-bottom:1px solid #e9edef}.race:last-child{border:0}.race-date{display:flex;flex-direction:column;text-align:center;min-width:44px}.race-date strong{font:600 30px/1 'Barlow Condensed',sans-serif}.race-date span{font-size:11px;letter-spacing:1px;color:var(--muted);margin-top:3px}.race-info{flex:1}.race-info h3{font-size:14px;font-weight:800}.race-info p{font-size:12px;margin-top:4px}.race-type{font-size:11px;border-radius:4px;background:#edf2f5;color:#526674;padding:4px 8px;white-space:nowrap}.race:first-child .race-date strong{color:#bd4c24}.footnote{font-size:11px;padding-top:18px;border-top:1px solid var(--line);line-height:1.7}aside{display:flex;flex-direction:column;gap:20px}.milestone{padding:26px 28px;background:#e0e9ec;border:1px solid #d4dfe3;border-radius:12px}.milestone .eyebrow{color:#50656f}.milestone h2{font:600 33px/1.08 'Barlow Condensed',Arial,sans-serif}.year-label{font:600 72px/1 'Barlow Condensed',Arial,sans-serif;color:#526f7d;margin:22px 0 12px}.milestone h3{font-size:18px}.milestone>p:not(.eyebrow){font-size:13px;margin-top:5px}.distances{display:flex;gap:20px;padding:17px 0;border-top:1px solid #bdcdd3;margin-top:20px}.distances span{font-size:12px;color:#536871}.distances b{display:block;color:#203641;font-size:24px}.data-note{padding:22px 26px;border:1px dashed #bec9cf;border-radius:10px}.note-icon{float:right;font-size:24px;color:#687e8b}.data-note h3{font-size:15px;margin-bottom:8px}.data-note p{font-size:13px;max-width:310px}footer{display:flex;justify-content:space-between;padding-top:30px;margin-top:20px;border-top:1px solid var(--line);font-size:11px;letter-spacing:.6px;color:var(--muted)}footer b{color:var(--orange);padding:0 8px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}a:focus-visible,select:focus-visible{outline:3px solid var(--orange);outline-offset:4px}@media(max-width:1380px){main{margin:0 5%}}@media(max-width:900px){.top-grid,.bottom-grid{grid-template-columns:1.3fr 1fr}.next{padding:24px 24px 0}.next-body{gap:14px}.countdown strong{font-size:82px}.next h2{font-size:34px}.countdown span{font-size:10px}.pill{display:none}.disciplines>div{padding:18px 12px;gap:9px}.sport{display:none}.calendar{padding:22px}.race-type{display:none}}@media(max-width:700px){header{height:72px;padding:0 5%;gap:12px}.brand{font-size:14px}nav{gap:15px;margin-left:auto;margin-right:0}nav a{height:72px;font-size:12px}nav a:last-child,.avatar{display:none}main{padding-top:28px}.page-heading{display:block}h1{font-size:29px}.page-heading p{font-size:14px}.date{display:block;margin-top:13px;font-size:12px}.top-grid,.bottom-grid{grid-template-columns:1fr}.next-body{min-height:205px}.countdown strong{font-size:92px}.next h2{font-size:36px}.destination h2 br{display:none}.disciplines{grid-template-columns:1fr;margin:22px 0}.disciplines>div{border-right:0;border-bottom:1px solid var(--line);padding:14px 20px;gap:18px}.disciplines p{font-size:13px}.sport{display:block}.section-heading h2{font-size:20px}.section-heading{align-items:flex-end}.section-heading .eyebrow{font-size:10px}select{max-width:105px}footer{gap:18px;flex-direction:column}.race-info h3{font-size:14px}.race-info p{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.vo2-section{background:#fff;border:1px solid var(--line);border-radius:12px;padding:26px 30px;margin-top:24px}.vo2-heading{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px}.vo2-heading .eyebrow{color:var(--muted)}.vo2-heading h2{font-size:24px}.garmin-source{font-size:14px}.vo2-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}.vo2-card{border-left:3px solid var(--orange);padding:4px 20px 9px;background:#f5f7f8}.vo2-card h3{font-size:16px;font-weight:700}.vo2-value{display:flex;align-items:baseline;gap:12px;margin:3px 0;color:var(--ink);flex-wrap:wrap}.vo2-value strong{font:600 64px/1.2 'Barlow Condensed',Arial,sans-serif}.vo2-value span{font-size:14px;color:var(--muted)}.vo2-date,.vo2-note{font-size:14px}.vo2-note{margin-top:18px}.vo2-attribution{font-size:12px;margin-top:5px}@media(max-width:700px){.vo2-section{padding:22px}.vo2-heading{align-items:flex-start;flex-direction:column;gap:8px}.vo2-grid{gap:16px}.vo2-card{padding-left:12px}.vo2-value{gap:3px}.vo2-date{line-height:1.6}.vo2-date time{display:block}}@media(max-width:360px){.vo2-grid{grid-template-columns:1fr}}

/* Dark theme: graphite surfaces, white typography, IRONMAN red. */
:root{color-scheme:dark;--bg:#090b0e;--ink:#f3f5f7;--muted:#a8b1bd;--line:#2b3039;--orange:#e50935;--navy:#101318}
body{background:var(--bg);color:var(--ink)}header{background:#0d1014;border-color:var(--line)}.mark{background:#20242d}.mark span{color:#ff4262}.avatar{background:#282d36;color:#f5f6f8}.page-heading .eyebrow{color:#ff637e}.next{background:#12161d;border:1px solid #343a45}.section-top .eyebrow{color:#bfc7d2}.pill{border-color:#444b59;color:#d0d6df}.next .accent{color:#ff6d87}.next-body p:not(.accent){color:#b8c2cf}.distance{background:#252b35;color:#e4e9f0}.countdown strong{color:#ff345c}.countdown span{color:#bec8d6}.next-link{border-color:#303845}.next-link span{color:#ff637e}.destination{background:#12161d;border-color:var(--line)}.ironman-brand{height:98px;background:#000;border-radius:7px;margin-bottom:23px;overflow:hidden;display:flex;justify-content:center;align-items:center}.ironman-brand img{display:block;width:245px;height:auto;max-width:100%;flex-shrink:0}.goal-status{color:#bac3cf;border-color:#3a414d}.disciplines{background:#12161b;border-color:var(--line)}.disciplines>div{border-color:var(--line)}.number{color:#a9b4c2}.sport{color:#ff637e}.calendar{background:#12161b;border-color:var(--line)}select{background:#1d222b;color:#f3f5f7;border-color:#424a58}.race{border-color:#2b3039}.race-type{background:#252e3b;color:#c5d4e9}.race:first-child .race-date strong{color:#ff637e}.milestone{background:#19202a;border-color:#34404e}.milestone .eyebrow{color:#b4c7dc}.year-label{color:#aabed5}.distances{border-color:#394757}.distances span{color:#b9c7d7}.distances b{color:#f4f7fc}.data-note{background:#11151b;border-color:#414b5a}.note-icon{color:#acbdd2}.vo2-section{background:#12161b;border-color:var(--line)}.vo2-card{background:#1b2029;border-left-color:#e50935}.vo2-value{color:#f4f6f9}.vo2-value strong{color:#fff}footer{border-color:var(--line)}footer b{color:#ff637e}a:focus-visible,select:focus-visible{outline-color:#ff637e}.disciplines p,.race-info p{font-size:14px}.race-type,.footnote{font-size:12px}.data-note p{font-size:14px}.milestone>p:not(.eyebrow){font-size:14px}@media(max-width:700px){.disciplines>div{border-bottom-color:var(--line)}.destination h2 br{display:block}.ironman-brand{height:88px}.race-info p{font-size:14px}}
