@import url('fonts.css');
:root{--ink:#eef3fa;--paper:#101b2c;--muted:#aab8ca;--accent:#74d8d0;--line:#304157;--panel:#18283e;--button-ink:#101b2c}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.7}a{color:inherit;text-underline-offset:5px}a:hover{color:var(--accent)}header{max-width:1360px;margin:auto;padding:28px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-size:18px;font-weight:700}.brand svg{width:52px;height:42px}nav{display:flex;gap:30px}nav a{font-size:14px;text-decoration:none}nav a.active{color:var(--accent)}main{max-width:1240px;margin:auto;padding:64px 32px}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:700;color:var(--muted)}h1,h2,h3{font-family:Manrope,sans-serif;line-height:1.13;letter-spacing:-.04em}h1{font-size:clamp(46px,6.8vw,88px);font-weight:500;margin:26px 0}h2{font-size:32px;margin:42px 0 22px}h3{font-size:24px}p{max-width:740px}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center;padding:18px 0 66px}.hero p{max-width:410px;color:var(--muted);font-size:18px}.hero-visual{position:relative;background:var(--panel);border-radius:3px;min-height:410px;overflow:hidden}.hero-visual img{width:100%;height:430px;object-fit:cover;object-position:center}.caption{position:absolute;bottom:20px;left:20px;background:var(--paper);padding:10px 17px;font-size:12px}.circle{display:inline-flex;width:46px;height:46px;border:1px solid var(--line);border-radius:50%;align-items:center;justify-content:center;margin-left:15px}.button{display:inline-flex;align-items:center;background:var(--ink);color:var(--button-ink);padding:13px 23px;text-decoration:none;font-size:14px;border-radius:2px}.button:hover{background:var(--accent);color:var(--button-ink)}.sectionline{border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:24px 0}.sectionline h2{margin:0;font-size:26px}.paths{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin:12px 0 68px}.path{padding:25px 0;border-bottom:1px solid var(--line);text-decoration:none}.path span{font-size:12px;color:var(--accent)}.path h3{margin:18px 0 12px}.path p{font-size:14px;color:var(--muted)}.content{max-width:100%;overflow-x:auto}.content>div{padding:22px 0;border-bottom:1px solid var(--line)}.content h2:first-child{margin-top:12px}.content em{font-style:normal}.content img{max-width:100%;height:auto;border-radius:3px}.content td img{max-height:130px;width:auto}.content table{border-collapse:collapse;width:100%;font-size:14px}.content td{padding:18px 14px;border-bottom:1px solid var(--line);vertical-align:top}.content tr:first-child{font-weight:600}.content a{color:var(--accent)}.content hr{border:0;border-top:1px solid var(--line);margin:32px 0}footer{max-width:1240px;margin:40px auto 0;padding:30px 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.intro{color:var(--muted);font-size:20px;max-width:700px;margin-bottom:45px}.logo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.logo-card{border:1px solid var(--line);padding:25px}.logo-stage{height:180px;display:flex;align-items:center;justify-content:center;background:var(--panel);margin-bottom:22px}.logo-stage svg{width:105px;height:85px}.logo-card button{cursor:pointer;border:1px solid var(--ink);background:transparent;padding:12px 18px;font:inherit}.logo-card.selected{border:2px solid var(--accent)}.logo-card p{font-size:14px;color:var(--muted)}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:44px}.pagehead h1{font-size:64px;margin-bottom:0}.tag{color:var(--accent)}.archive{margin-top:45px}details>summary{cursor:pointer;font-size:22px;margin:20px 0}.notice{font-size:12px;color:var(--muted)}@media(max-width:760px){header{padding:20px;flex-wrap:wrap}nav{width:100%;justify-content:space-between;gap:8px}nav a{font-size:12px}main{padding:35px 20px}.hero{grid-template-columns:1fr;gap:30px}.hero-visual{min-height:280px}.hero-visual img{height:320px}.paths,.logo-grid{grid-template-columns:1fr;gap:10px}.paths{margin-bottom:35px}.pagehead h1{font-size:48px}.content table{min-width:570px}.content td{padding:12px 8px}footer{padding:25px 20px;gap:20px}.brand{font-size:16px}}

:root[data-palette="light"]{--ink:#172b46;--paper:#f3f6fa;--muted:#536780;--accent:#285ad8;--line:#ced8e7;--panel:#e2e9f4;--button-ink:#fff}
:root[data-palette="wine"]{--ink:#f7f1f4;--paper:#291b29;--muted:#c2aeba;--accent:#e5aac7;--line:#574052;--panel:#382738;--button-ink:#291b29}
header{border-bottom-color:var(--line)}.brand svg{width:65px;height:49px}.brand{gap:16px}.brand:has(.wordmark) .brand-name{display:none}.brand .wordmark{width:130px;height:55px}.logo-stage{height:200px;border-radius:4px}.logo-stage svg{width:140px;height:106px}.logo-stage svg.wordmark{width:215px}.logo-card{border-radius:5px;background:var(--paper)}.logo-card.selected{border:1px solid var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.logo-card button{color:var(--ink);border-color:var(--line);border-radius:3px;font-size:13px}.logo-card.selected button{background:var(--accent);color:var(--button-ink);border-color:var(--accent)}.palette-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:30px 0 65px}.palette-choice{color:var(--ink);text-align:left;border:1px solid var(--line);background:var(--paper);padding:22px;cursor:pointer;font:inherit;border-radius:5px}.palette-choice.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.swatches{display:flex;gap:0;height:55px;border-radius:3px;overflow:hidden;margin-bottom:18px}.swatches i{flex:1}.palette-choice strong{display:block}.palette-choice small{display:block;color:var(--muted);margin-top:5px}.design-section{margin:65px 0 25px}.concept-note{max-width:750px;color:var(--muted)}.brand-name{white-space:nowrap}.logo-card h3{font-size:23px}.hero-visual{box-shadow:0 20px 55px #0002}.hero-visual img{opacity:.94}.caption{color:var(--ink);border:1px solid var(--line);border-radius:3px}.content input,input#race-search{color:var(--ink)}input::placeholder{color:var(--muted)}a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:5px}.button:hover{color:var(--button-ink)}@media(max-width:760px){.palette-grid{grid-template-columns:1fr}.brand svg{width:55px}.logo-card{padding:22px}}

/* Selected identity: Nordic Blue and the Horizon logo. */
:root,:root[data-palette="light"]{--ink:#172b46;--paper:#fff;--muted:#536780;--accent:#285ad8;--line:#ced8e7;--panel:#f0f4fa;--button-ink:#fff}
.content{font-size:28px;line-height:1.6}.content table{font-size:26px;line-height:1.55}.content h2{font-size:38px}.content h3{font-size:32px}.content h2 a:not([href]){color:inherit}.hero p,.intro{font-size:26px;max-width:800px}.hero p{max-width:480px}.path p{font-size:24px}.path h3{font-size:30px}.button{font-size:18px}.content p{max-width:none}.content tr:first-child{font-weight:400}.content td strong{font-weight:700}.content td{overflow-wrap:anywhere}.about-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:64px;align-items:center;padding-bottom:35px}.content>.about-intro{border:0;padding-top:0}.portrait-visual{margin:0;height:430px;overflow:hidden;border-radius:3px;background:var(--panel)}.content .portrait-visual img{display:block;max-height:none;width:100%;height:430px;object-fit:cover;object-position:50% 42%;border-radius:3px}.contact-details{font-size:26px}.contact-details p{margin:0 0 25px}.page-marathon .content table{min-width:1350px}.page-marathon .content td:last-child{min-width:190px}.page-marathon .content td img{max-height:220px;max-width:180px;width:auto;display:block;margin:auto}.page-marathon .content td img[src*="flag_"]{max-width:36px;max-height:25px;display:inline;margin:0}.page-marathon .content table tr:first-child{font-weight:700}.elsewhere-list{display:flex;flex-direction:column;gap:8px;overflow:visible}.elsewhere-item{display:grid;grid-template-columns:405px 1fr;gap:24px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.elsewhere-banner{display:flex;width:405px;max-width:100%;height:120px;align-items:center;justify-content:center;background:var(--paper);overflow:hidden}.content .elsewhere-banner img{display:block;width:100%;height:100%;object-fit:contain;border-radius:0}.elsewhere-item h2{font-size:26px;margin:0 0 8px;letter-spacing:-.02em}.elsewhere-item p{font-size:22px;color:var(--muted);margin:0}.hero-visual{background:var(--paper)}.hero-visual img{opacity:1;object-fit:contain}.concept-note{font-size:24px}.logo-card p{font-size:22px}
@media(max-width:900px){.elsewhere-item{grid-template-columns:1fr;gap:14px}.about-intro{gap:30px}.hero{gap:30px}.contact-details{font-size:24px}}
@media(max-width:760px){.content{font-size:25px}.content table{font-size:24px;min-width:0}.content h2{font-size:34px}.content h3{font-size:29px}.hero p,.intro{font-size:24px}.path p{font-size:23px}.about-intro{grid-template-columns:1fr}.portrait-visual{height:430px}.content .portrait-visual img{height:430px}.elsewhere-banner{height:auto;aspect-ratio:405/120}.elsewhere-item p{font-size:21px}.page-marathon .content table{min-width:1250px}.content td{padding:16px 10px}.page-cv .content td:first-child{width:32%}.page-cv .content table{table-layout:fixed}.contact-details .button{font-size:18px}.hero-visual img{height:390px}}

@media(max-width:1500px){.page-marathon .content{overflow:visible}.page-marathon .content table,.page-marathon .content tbody{display:block;min-width:0}.page-marathon .content .race-column-headings{display:none}.page-marathon .content table tr:not(.race-column-headings){display:grid;grid-template-columns:56px minmax(0,1fr) 220px;gap:6px 25px;padding:30px 0;border-bottom:1px solid var(--line)}.page-marathon .content td{display:block;border:0;padding:4px 0;min-width:0}.page-marathon .content td:first-child{grid-column:1;grid-row:1 / 5;color:var(--muted);font-size:22px}.page-marathon .content td:first-child::before{content:'#'}.page-marathon .content td:nth-child(2){grid-column:2;grid-row:1}.page-marathon .content td:nth-child(3){grid-column:2;grid-row:2}.page-marathon .content td:nth-child(4){grid-column:2;grid-row:3}.page-marathon .content td:nth-child(5){grid-column:2;grid-row:4}.page-marathon .content td:nth-child(6){grid-column:3;grid-row:1 / 5;align-self:center}.page-marathon .content td:nth-child(4):not(:empty)::before{content:'Finish time: ';font-size:18px;color:var(--muted)}.page-marathon .content td p{margin:0}.page-marathon .content td:last-child{min-width:0}.page-marathon .content td img{max-width:210px;max-height:260px}}
@media(max-width:600px){.page-marathon .content table tr:not(.race-column-headings){grid-template-columns:35px minmax(0,1fr);gap:6px 12px}.page-marathon .content td:nth-child(6){grid-column:2;grid-row:5;margin-top:10px}.page-marathon .content td:nth-child(4)::before{display:block}.page-marathon .content td img{max-width:240px;max-height:270px}.page-marathon .content td:first-child{font-size:18px}}

:root[data-palette="night"]{--ink:#eef3fa;--paper:#101b2c;--muted:#aab8ca;--accent:#74d8d0;--line:#304157;--panel:#18283e;--button-ink:#101b2c}

.medal-note{font-size:18px;line-height:1.6;color:var(--muted);margin:0 0 25px;max-width:900px}

/* Journal caption flows below its image; no image overlay. */
.page-index .hero-visual{margin:0;min-height:0;overflow:visible;box-shadow:none;background:transparent}
.page-index .hero-visual img{display:block;width:100%;height:430px;object-fit:contain}
.page-index .hero-visual .caption{position:static;inset:auto;display:block;padding:18px 0 0;margin:0;border:0;border-radius:0;background:transparent;font-size:13px;line-height:1.6;text-align:center}
.page-cv .cv-download{display:inline;background:none;color:var(--accent);padding:0;border:0;border-radius:0;font-size:22px;text-decoration:underline;text-underline-offset:5px}
/* Archive: six fixed columns share 100% of the available width. */
.page-marathon .content{overflow:visible;font-size:22px}
#race-archive{display:table;table-layout:fixed;width:100%;min-width:0;max-width:100%;font-size:18px;line-height:1.5;border-collapse:collapse}
#race-archive tbody{display:table-row-group;min-width:0}
#race-archive tr,#race-archive tr:not(.race-column-headings),#race-archive .race-column-headings{display:table-row;padding:0;border:0}
#race-archive tr[hidden]{display:none!important}
#race-archive td,#race-archive td:first-child,#race-archive td:last-child{display:table-cell;width:auto;min-width:0;max-width:none;padding:20px 10px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:18px;color:var(--ink);overflow-wrap:anywhere}
#race-archive td::before,#race-archive td:first-child::before,#race-archive td:nth-child(4)::before{content:none;display:none}
#race-archive .race-column-headings td{font-size:15px;font-weight:700;vertical-align:bottom;padding-top:16px;padding-bottom:16px}
#race-archive .race-column-headings td p{margin:0}
#race-archive td p{margin:0 0 8px}
#race-archive td p:last-child{margin-bottom:0}
#race-archive td img{display:block;width:auto;height:auto;max-width:100%;max-height:none;margin:0}
#race-archive td img[src*="flag_"]{display:block;width:72px;height:auto;max-width:100%;max-height:50px;margin:0 0 10px;object-fit:contain;object-position:left center}
#race-archive td[data-label="Medal"] a{display:block;width:100%}
#race-archive td[data-label="Medal"] img{display:block;width:100%;height:245px;max-height:none;max-width:100%;object-fit:contain;margin:0 auto}
#race-archive td[data-label="Medal"]{padding:16px 8px}
@media(max-width:900px){
 #race-archive,#race-archive tbody{display:block;width:100%;min-width:0}
 #race-archive colgroup,#race-archive .race-column-headings{display:none}
 #race-archive tr:not(.race-column-headings){display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,35%);gap:5px 16px;padding:22px 0;border-bottom:1px solid var(--line)}
 #race-archive td,#race-archive td:first-child,#race-archive td:last-child{display:block;padding:3px 0;border:0;font-size:18px;min-width:0;width:auto;grid-column:1}
 #race-archive td:nth-child(1){grid-row:1;color:var(--muted);font-size:15px}
 #race-archive td:nth-child(1)::before{content:'#';display:inline}
 #race-archive td:nth-child(2){grid-row:2}
 #race-archive td:nth-child(3){grid-row:3}
 #race-archive td:nth-child(4){grid-row:4}
 #race-archive td:nth-child(5){grid-row:5}
 #race-archive td:nth-child(6){grid-column:2;grid-row:1 / 6;align-self:center}
 #race-archive td[data-label="Medal"] img{width:100%;height:auto;max-height:260px;object-fit:contain}
 #race-archive td img[src*="flag_"]{width:72px;max-height:50px}
 .page-marathon .content{font-size:21px}
}
@media(max-width:760px){.page-index .hero-visual img{height:390px}}

.page-cv .content .portrait-visual img{object-position:50% 12%}.hero-visual,.portrait-visual{min-width:0}

/* Full uncropped portrait, with height determined by the complete image. */
.page-cv .portrait-visual{height:auto;overflow:visible;align-self:start}
.page-cv .content .portrait-visual img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;object-position:center}
#race-archive td img[src*="flag_"]{width:112px;max-height:78px;height:auto;max-width:100%}
#race-archive .race-footnotes td,#race-archive .race-footnotes td:first-child,#race-archive .race-footnotes td:last-child{font-size:12px;line-height:1.6;vertical-align:top;padding-top:14px;padding-bottom:14px;color:var(--muted)}
#race-archive .race-footnotes td::before{display:none;content:none}
#race-archive .race-legend{font-size:12px;line-height:1.6}
@media(max-width:900px){
 #race-archive tr.race-footnotes{grid-template-columns:minmax(0,1fr) minmax(130px,35%);padding:12px 0}
 #race-archive .race-footnotes td:not(:nth-child(5)){display:none}
 #race-archive .race-footnotes td:nth-child(5){display:block;grid-column:1;grid-row:1;font-size:12px;padding:0}
}

/* Consistent career detail pages. */
.experience-details{overflow:visible}
.experience-details .back-link{display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-size:16px;line-height:1.5;text-decoration:none;margin:0 0 24px;padding:4px 0}
.experience-details .back-link:hover{color:var(--accent);text-decoration:underline;text-underline-offset:5px}
.experience-details table{width:100%;min-width:0;table-layout:fixed}
.experience-details .experience-label-col{width:240px}
.experience-details td:first-child{width:240px;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.experience-details td:nth-child(2){overflow-wrap:break-word;word-break:normal}
.experience-details h4{font-family:Manrope,sans-serif;font-size:28px;line-height:1.35;letter-spacing:-.02em;margin:20px 0}
@media(max-width:760px){.experience-details .experience-label-col,.experience-details td:first-child{width:190px}}
@media(max-width:600px){.experience-details .experience-label-col,.experience-details td:first-child{width:145px}.experience-details table,.experience-details td{font-size:18px;line-height:1.6}.experience-details td{padding:16px 8px}.experience-details h4{font-size:25px}}
