@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#081321;--paper:#12243a;--ink:#f2f6fc;--muted:#bdcbdc;--line:#2e4059;--blue:#7ce5cf;--pale:#0d1c2e;--navy:#12243a;--secondary:#a8baff;--on-accent:#081321;--head:'Space Grotesk',Arial,sans-serif;--body:'DM Sans',Arial,sans-serif;--width:1200px;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:2rem}body{margin:0;background:var(--bg);color:var(--ink);font:400 1rem/1.7 var(--body)}a{color:inherit;text-decoration:none}a:hover{color:var(--blue)}a:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:6px}img{display:block;max-width:100%}p{margin:0 0 1.3rem}h1,h2,h3{font-family:var(--head);line-height:1.1;letter-spacing:-.05em;font-weight:600;margin:0}h1{font-size:clamp(3.25rem,5.8vw,5.6rem);line-height:1.03}h2{font-size:clamp(2.2rem,3.4vw,3.35rem)}h3{font-size:1.6rem;letter-spacing:-.035em}h1 span{color:var(--blue)}.wrap{width:min(calc(100% - 4rem),var(--width));margin-inline:auto}.skip{position:absolute;left:1rem;top:-100px;z-index:20;background:var(--blue);color:white;padding:1rem}.skip:focus{top:1rem}.kicker{font:600 .78rem/1.5 var(--head);letter-spacing:.12em;color:var(--blue);margin:0 0 1.2rem}.kicker.light{color:#b8c8ff}.index{display:block;font:500 .75rem/1.6 var(--head);letter-spacing:.06em;color:var(--muted)}.section{padding-block:6.5rem}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:3rem;margin-bottom:3rem}.section-description{max-width:370px;color:var(--muted);margin:0}.large-copy{font:500 clamp(1.4rem,2.1vw,1.8rem)/1.5 var(--head);letter-spacing:-.025em}.text-link{display:inline-flex;gap:.7rem;align-items:center;font-weight:600;color:var(--blue);border-bottom:1px solid currentColor;line-height:1.5;padding-bottom:.2rem}.text-link:hover{color:var(--secondary)}.button{display:inline-flex;align-items:center;justify-content:center;gap:1.2rem;padding:.9rem 1.35rem;min-height:50px;line-height:1.4;font-weight:600;font-size:1rem;color:white;background:var(--blue);border:1px solid var(--blue);border-radius:3px;}.button:hover{color:white;background:var(--secondary)}.button.white{background:var(--paper);border-color:white;color:var(--ink)}.button.white:hover{background:#dce5ff;border-color:#dce5ff}.button.outline{background:transparent;border-color:#8998b8;color:white}.button.outline:hover{background:#ffffff12;border-color:white}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.7rem;margin:2rem 0 2.7rem}header{border-bottom:1px solid var(--line);background:var(--paper)}.nav-bar{min-height:92px;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:flex;align-items:center;gap:.8rem;font:700 1.2rem/1.1 var(--head);letter-spacing:-.035em;flex-shrink:0}.brand small{display:block;font:500 .75rem/1.7 var(--head);letter-spacing:.11em;margin-top:.4rem;color:var(--muted)}.brand-icon{width:38px;height:38px;background:var(--blue);color:white;display:grid;place-items:center;font-size:1.8rem;font-weight:600;transform:rotate(-7deg);border-radius:3px}.nav-bar nav{display:flex;align-items:center;gap:2rem;font-size:.9rem;font-weight:500}.nav-bar nav a[aria-current=page]{color:var(--blue)}.nav-contact{padding:.55rem 1rem;border:1px solid var(--line);border-radius:3px}
.home-hero{padding:5.5rem 0 5rem;display:grid;grid-template-columns:1.2fr .8fr;gap:5rem;align-items:center}.hero-intro{font-size:1.16rem;color:var(--muted);max-width:680px;margin:1.6rem 0 0;line-height:1.7}.current{display:flex;gap:1.4rem;align-items:flex-start;border-top:1px solid var(--line);padding-top:1.25rem}.current>span{font:.75rem/1.9 var(--head);letter-spacing:.1em;color:var(--muted)}.current p{margin:0;font-size:.92rem;font-weight:600}.current small{font-weight:400;color:var(--muted);font-size:.875rem}.current i{padding:0 .6rem;font-style:normal;color:#9ba6ba}.portrait{margin:0;background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden}.portrait img{width:100%;height:auto;aspect-ratio:1/1.18;object-fit:cover;object-position:center top}.portrait figcaption{background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:end;padding:1.4rem 1.6rem;gap:1rem;font:500 1rem/1.5 var(--head)}.caption-index{font-size:.75rem;letter-spacing:.07em;color:#b7c3dc;white-space:nowrap}.proof-section{background:var(--pale);border-block:1px solid var(--line);padding:5rem 0}.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.proof{display:flex;flex-direction:column;min-height:330px;padding:1.7rem;background:var(--paper);border:1px solid var(--line);border-radius:3px;}.proof:hover{border-color:var(--blue);color:var(--ink)}.proof h3{font-size:1.95rem;margin:2rem 0 1rem;max-width:280px}.proof p{color:var(--muted);font-size:1rem}.proof-bottom{margin-top:auto;border-top:1px solid var(--line);padding-top:1.1rem;display:flex;justify-content:space-between;font-size:.875rem;font-weight:600;color:var(--blue)}.proof-bottom b{font-size:1.1rem}.ambition,.lab-grid,.coaching-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem}.ambition>div:last-child>p:not(.large-copy),.lab-grid>div:last-child>p:not(.large-copy),.coaching-grid>div:last-child>p:not(.large-copy){color:var(--muted)}.athlete-teaser{background:var(--navy);color:white;border-bottom:5px solid var(--blue);padding:5rem 0}.athlete-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:center}.athlete-grid>div:first-child p:not(.kicker){max-width:460px;color:#bbc6dd;margin:1.5rem 0 2rem}.athlete-stat{display:flex;align-items:center;justify-content:center;gap:2rem;border-left:1px solid #44516d}.athlete-stat>span{font:500 clamp(7rem,16vw,14rem)/1 var(--head);letter-spacing:-.08em;color:#b6c7ff}.athlete-stat p{font:500 .8rem/1.8 var(--head);letter-spacing:.07em;color:#bac6de;margin:0}.athlete-stat strong{font-size:1.1rem;letter-spacing:0;color:white}.small-note{font-size:.875rem;margin-top:1.2rem!important}.small-note a{text-decoration:underline;text-underline-offset:3px}.contact-section{padding:5rem 0;background:var(--blue);color:white}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}.contact-grid h2{font-size:clamp(2.3rem,4vw,3.7rem)}.contact-grid>div:last-child>p{color:#e1e8ff;max-width:470px}.email-text{display:block;font-size:.88rem;margin-top:1.1rem;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.email-text:hover{color:white}.contact-section a:focus-visible{outline-color:white}footer{background:var(--navy);color:#d0d8e7;padding:3rem 0}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2rem;align-items:start}.footer-wordmark{font:600 1.3rem var(--head);letter-spacing:-.035em;color:white}.footer-wordmark span{display:block;font:400 .82rem var(--body);letter-spacing:0;color:#a6b3ca;margin-top:.8rem}.footer-links{display:flex;gap:.6rem 1.5rem;flex-wrap:wrap}.footer-links .text-link{font-size:.875rem;color:#d0d8e7;border:0}.footer-links a:hover{color:white}.footer-grid>p{margin:0;font-size:.8rem;text-align:right;color:#a6b3ca}
.page-hero{padding:5rem 0 0}.page-hero h1{font-size:clamp(3.2rem,5.5vw,5.3rem)}.section-nav{display:flex;flex-wrap:wrap;gap:1rem 2rem;border-block:1px solid var(--line);margin-top:3rem;padding:1rem 0;font-size:.88rem;font-weight:600}.section-nav a:hover{text-decoration:underline;text-underline-offset:5px}.case{display:grid;grid-template-columns:.8fr 1.2fr;gap:5rem;border-top:1px solid var(--line);padding:3.2rem 0;scroll-margin-top:2rem}.case:last-child{padding-bottom:0}.case-heading h3{font-size:clamp(1.9rem,3vw,2.55rem);line-height:1.15}.case-subtitle{margin:1rem 0;color:var(--muted)}.tags{display:flex;gap:.5rem;flex-wrap:wrap}.tags span{background:var(--pale);color:var(--muted);font-size:.76rem;padding:.25rem .75rem;border-radius:3px}.case-context{font-size:1.14rem;line-height:1.6;font-weight:500}.case-body dl{margin:1.5rem 0 0}.case-body dt{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem;color:var(--blue)}.case-body dd{margin:0 0 1.3rem;color:var(--muted)}.result-band{display:flex;align-items:center;gap:1.3rem;border-block:1px solid var(--line);padding:1rem 0;margin:1.5rem 0;color:var(--muted);font-size:.875rem}.result-band strong{font:500 2.1rem var(--head);letter-spacing:-.045em;color:var(--blue)}.research-section{background:var(--navy);color:white}.research-section .section-description{color:#bac6de}.research-current{padding:2.5rem 0;border-block:1px solid #44516d;display:grid;grid-template-columns:1fr 1fr;gap:5rem}.status-label{color:#b8c8ff;border:1px solid #556788;padding:.35rem .75rem;font-size:.75rem;letter-spacing:.08em;display:inline-block;margin-bottom:1.5rem}.research-current h3{font-size:2.25rem;line-height:1.2;max-width:380px}.research-current>div:last-child{color:#c8d2e6}.research-meta{font-size:.82rem;color:#a6b3ca;margin-bottom:0}.research-past{display:grid;grid-template-columns:1fr 1fr;gap:5rem;margin-top:3rem}.research-past .index{color:#b8c8ff}.research-past h3{margin:1rem 0;font-size:1.6rem}.research-past p{color:#c8d2e6}.research-past .text-link{color:#b8c8ff;font-size:.9rem}.experience-list{border-top:1px solid var(--line)}.experience-row{display:grid;grid-template-columns:135px 1fr 1.3fr;gap:2rem;padding:1.8rem 0;border-bottom:1px solid var(--line);align-items:start}.experience-row h3{font-size:1.3rem}.years{font:500 .85rem/1.7 var(--head);color:var(--muted)}.experience-row p{margin:0;font-size:1rem;color:var(--muted)}.experience-row .role{font-size:.86rem;margin-top:.5rem}.experience-row .text-link{font-size:.875rem;margin-top:.6rem}.education{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:3rem}.education h3{font-size:1.35rem;margin-bottom:.7rem}.education p:not(.kicker){font-size:.9rem;color:var(--muted);margin:0}.archive-section{background:var(--pale);border-block:1px solid var(--line)}.project-archive{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}.project-archive details{border:1px solid var(--line);background:var(--paper);border-radius:3px}.project-archive summary{list-style:none;cursor:pointer;padding:1.3rem 1.4rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;font:500 1.2rem/1.3 var(--head);letter-spacing:-.02em}.project-archive summary::-webkit-details-marker{display:none}.project-archive summary small{display:block;color:var(--muted);font:500 .75rem/1.7 var(--head);letter-spacing:.06em;margin-bottom:.4rem}.expand{font:400 1.6rem var(--head);color:var(--blue);}.project-archive details[open] .expand{transform:rotate(45deg)}.details-body{padding:0 1.4rem 1.4rem}.details-body p{font-size:1rem;color:var(--muted);margin:0}.details-body .text-link{font-size:.875rem;margin-top:1rem}.community-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.community-grid article{border-top:2px solid var(--blue);padding-top:1.5rem}.community-grid h3{margin:1.1rem 0;font-size:1.55rem}.community-grid p{color:var(--muted);font-size:1rem}.community-grid .text-link{font-size:.875rem}
.sport-hero{background:var(--bg);color:white;padding:5rem 0}.sport-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:5rem;align-items:center}.sport-hero h1{font-size:clamp(3.6rem,7vw,6.4rem)}.sport-hero h1 span{color:#eac477}.sport-hero .kicker{color:#eac477}.sport-intro>div:first-child>p:last-child{color:#c6ccda;max-width:580px;font-size:1.16rem;line-height:1.7;margin:2rem 0 0}.sport-record{border:1px solid #4b5464;padding:1.5rem 2rem}.record-label{font:500 .75rem var(--head);letter-spacing:.1em;color:#b9c1d1}.sport-record>div{display:flex;align-items:center;gap:1.5rem;padding:1.5rem 0;border-bottom:1px solid #4b5464}.sport-record>div:last-child{padding-bottom:.4rem;border:0}.sport-record strong{font:500 3.1rem var(--head);color:#eac477;letter-spacing:-.05em;min-width:90px}.sport-record>div span{font-size:.9rem;line-height:1.7;color:#e0e4eb}.competition-list{border-top:1px solid var(--line)}.competition-list article{display:grid;grid-template-columns:100px 1fr 180px;gap:2rem;padding:2.2rem 1.25rem;border-bottom:1px solid var(--line);align-items:start}.competition-list time{font:500 1.6rem var(--head);letter-spacing:-.04em}.competition-list h3{font-size:1.75rem;margin:.6rem 0 .9rem}.competition-list p{color:var(--muted);margin:0}.competition-list .text-link{font-size:.875rem;margin-top:1rem}.competition-tag{font:600 .75rem/1.6 var(--head);letter-spacing:.05em;border:1px solid var(--line);padding:.4rem .75rem;width:fit-content}.gold-row{background:#182a3a}.gold-row .competition-tag{border-color:#c49a42;color:#eac477}.coaching-section{background:var(--pale);border-block:1px solid var(--line)}.sport-follow{background:var(--navy);color:white;padding:4.5rem 0}.sport-follow .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem}.sport-follow .kicker{width:100%;margin:0}.sport-follow h2{font-size:2.4rem}
@media(max-width:1020px){.home-hero{gap:2.5rem;grid-template-columns:1.25fr .75fr}.home-hero h1{font-size:4.3rem}.nav-bar nav{gap:1.1rem}.portrait figcaption{padding:1rem;font-size:.9rem}.caption-index{display:none}.case{gap:3rem}.athlete-grid,.ambition,.lab-grid,.contact-grid,.research-current,.research-past,.sport-intro,.coaching-grid{gap:3rem}.competition-list article{grid-template-columns:80px 1fr}.competition-tag{grid-column:2}.experience-row{grid-template-columns:105px 1fr 1.2fr;gap:1.5rem}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>p{grid-column:1/-1;text-align:left}}
@media(max-width:760px){.wrap{width:calc(100% - 2.5rem)}.nav-bar{flex-wrap:wrap;gap:1.2rem;padding:1.2rem 0}.nav-bar nav{width:100%;justify-content:space-between;font-size:.875rem;gap:.7rem}.nav-contact{padding:.35rem .7rem}.home-hero{grid-template-columns:1fr;gap:2.5rem;padding:3.5rem 0}.home-hero h1{font-size:clamp(3.25rem,9.5vw,4.75rem);max-width:620px}.hero-intro{font-size:1.05rem}.portrait{max-width:390px;width:100%;margin:auto}.portrait img{aspect-ratio:1/1;object-fit:cover}.caption-index{display:block}.portrait figcaption{padding:1.3rem}.section{padding-block:4rem}.section-heading{display:block;margin-bottom:2rem}.section-description{margin-top:1.3rem;max-width:100%}.proof-grid{grid-template-columns:1fr}.proof{min-height:auto;padding:1.5rem}.proof h3{max-width:none;font-size:1.75rem;margin:1.2rem 0 .8rem}.proof-bottom{margin-top:.5rem}.proof-section{padding:3.5rem 0}.ambition,.lab-grid,.athlete-grid,.contact-grid,.case,.research-current,.research-past,.coaching-grid,.sport-intro{grid-template-columns:1fr;gap:2rem}.athlete-stat{border-left:0;border-top:1px solid #44516d;padding-top:1.5rem;justify-content:flex-start}.athlete-stat>span{font-size:8rem}.athlete-teaser{padding:3.5rem 0}.contact-section{padding:3.5rem 0}.footer-grid{grid-template-columns:1fr;gap:1.8rem}.footer-grid>p{grid-column:auto}.page-hero{padding-top:3.5rem}.page-hero h1{font-size:clamp(2.9rem,8.5vw,4.7rem)}.section-nav{gap:.7rem 1.2rem;font-size:.8rem;margin-top:2rem}.case{padding:2.4rem 0}.case-heading h3{font-size:2rem}.experience-row{grid-template-columns:1fr;gap:.4rem;padding:1.5rem 0}.experience-row>div:last-child{margin-top:.5rem}.experience-row .role{margin-top:.3rem}.education{grid-template-columns:1fr;gap:2rem}.project-archive{grid-template-columns:1fr}.community-grid{grid-template-columns:1fr;gap:2rem}.sport-hero{padding:3.5rem 0}.sport-hero h1{font-size:clamp(3.5rem,12vw,5.5rem)}.competition-list article{grid-template-columns:1fr;gap:.8rem;padding:1.7rem 1rem}.competition-tag{grid-column:1;margin-top:.5rem}.sport-record{padding:1.5rem}.sport-follow{padding:3.5rem 0}.sport-follow h2{font-size:2rem}.current{gap:1rem}.current i{padding:0 .3rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{}}

.lab-photo{margin:2rem 0 0;max-width:420px}.lab-photo img{display:block;width:100%;height:auto;border-radius:4px}.lab-photo figcaption{font-size:.85rem;line-height:1.6;color:var(--muted);margin-top:.8rem}.lab-photo figcaption a{color:var(--blue);text-underline-offset:3px}

/* Midnight Aurora: explicit contrast pairs across all three pages. */
h1,h2,h3{color:var(--ink)}
.skip,.brand-icon,.button{color:var(--on-accent)}
.skip:hover,.button:hover{color:var(--on-accent)}
.button.white{background:var(--ink);border-color:var(--ink);color:var(--on-accent)}
.button.white:hover{background:var(--secondary);border-color:var(--secondary);color:var(--on-accent)}
.button.outline,.button.outline:hover{color:var(--ink)}
.contact-section{background:var(--paper);color:var(--ink);border-top:1px solid var(--line)}
.contact-grid>div:last-child>p{color:var(--muted)}
.contact-section .button.white{background:var(--blue);border-color:var(--blue);color:var(--on-accent)}
.contact-section .button.white:hover{background:var(--secondary);border-color:var(--secondary)}
.contact-section a:focus-visible{outline-color:var(--blue)}
.kicker.light,.research-past .index,.research-past .text-link,.status-label,.athlete-stat>span{color:var(--secondary)}
.portrait img{background:#fff}
