@font-face{font-family:Geist;src:url('assets/fonts/geist-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Geist;src:url('assets/fonts/geist-500.ttf') format('truetype');font-weight:500;font-display:swap}
@font-face{font-family:Geist;src:url('assets/fonts/geist-600.ttf') format('truetype');font-weight:600;font-display:swap}
:root{color-scheme:light;--paper:#f9f9fb;--ink:#121214;--blue:#304bdb;--muted:#626570;--line:#d8dbe4;--ice:#eff1f8;--gutter:clamp(1.3rem,5vw,6rem);--space:clamp(4.5rem,9vw,9rem);--curve:cubic-bezier(.16,1,.3,1);--transition:all .4s cubic-bezier(.16,1,.3,1);--body:clamp(.95rem,.25vw + .89rem,1.13rem);--small:clamp(.75rem,.2vw + .7rem,.94rem)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:8rem}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Geist,Arial,sans-serif;font-size:var(--body);line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,p,figure{margin:0}
h1,h2,h3{line-height:1.12;letter-spacing:-.045em;font-weight:500;text-wrap:balance}
h1{font-size:clamp(2.5rem,6.5vw,7.2rem);font-weight:400;letter-spacing:-.05em}
h2{font-size:clamp(2.2rem,4.7vw,5rem)}
h3{font-size:clamp(1.1rem,1.65vw,1.8rem)}
a{color:inherit;text-decoration:none}
a,button,summary{touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:var(--transition)}
button{font:inherit;font-size:var(--body);color:inherit;border:0;padding:0;background:none;cursor:pointer}
img{display:block;max-width:100%;height:auto}
svg{width:1.5rem;height:1.5rem;fill:none;stroke:currentColor;stroke-width:1.5}
::selection{background:var(--blue);color:var(--paper)}
[hidden]{display:none!important}
:is(a,button,summary):focus-visible{outline:.15rem solid var(--blue);outline-offset:.35rem}
.dot{color:var(--blue)}
.wrap{width:100%;max-width:100rem;margin-inline:auto;padding-inline:var(--gutter)}
main{width:100%;max-width:100%;overflow-x:clip}
.chapter{padding-block:var(--space);scroll-margin-top:1.5rem}
.skip-link{position:fixed;top:1rem;left:1rem;z-index:20;padding:.7rem 1.2rem;background:var(--blue);color:var(--paper);transform:translateY(-200%)}
.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:10;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 2rem;padding:clamp(1rem,1.9vw,1.8rem) var(--gutter);background:#f9f9fbf5;backdrop-filter:blur(.8rem);border-bottom:.0625rem solid transparent}
.site-header.scrolled{border-color:var(--line)}
.brand{font-size:clamp(1.15rem,1.45vw,1.6rem);font-weight:600;letter-spacing:-.04em;white-space:nowrap}
.site-header nav{display:flex;flex-wrap:wrap;align-items:center;gap:clamp(1.1rem,2.8vw,3rem)}
.site-header nav a{display:inline-flex;align-items:center;min-height:2.75rem;font-size:var(--small);position:relative}
.site-header nav a::after,.text-link::after{content:'';position:absolute;left:0;right:0;bottom:.1rem;height:.0625rem;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--curve)}
.site-header nav a:hover::after,.site-header nav a[aria-current]::after,.text-link:hover::after{transform:scaleX(1)}
.site-header nav a[aria-current]{color:var(--blue)}
.hero{min-height:calc(100svh - 6rem);display:flex;flex-direction:column;justify-content:space-between;padding-block:clamp(4rem,10vh,8rem) clamp(1.5rem,3vh,3rem)}
.hero-body{margin-block:auto;padding-bottom:clamp(3rem,8vh,7rem)}
.hero-line{display:block;width:clamp(2.3rem,4vw,4rem);height:.15rem;background:var(--blue);margin-bottom:clamp(1.5rem,3vw,3rem)}
.hero h1{width:100%;max-width:none}
.hero-role{font-size:clamp(1rem,1.8vw,1.7rem);margin-top:clamp(1.2rem,2vw,2rem);letter-spacing:-.02em}
.hero-role span{color:var(--muted);margin-inline:.25rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:clamp(2rem,3.5vw,3.5rem)}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.3rem;min-height:3.2rem;padding:.85rem 1.4rem;background:var(--blue);color:var(--paper);border:.0625rem solid var(--blue);border-radius:.2rem;font-size:var(--small);font-weight:500}
.button:hover{transform:translateY(-.125rem) scale(1.02);box-shadow:0 .5rem 1.6rem #304bdb20}
.button-outline{background:transparent;color:var(--ink);border-color:#83858c}
.button-outline:hover{background:var(--ice)}
.hero-bottom{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:var(--small)}
.scroll-link{display:grid;place-items:center;width:2.75rem;height:2.75rem;color:var(--ink)}
.scroll-link:hover{transform:translateY(.15rem)}
.profile{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2.5rem,7vw,7rem);align-items:start;border-top:.0625rem solid var(--line)}
.portrait{overflow:hidden;aspect-ratio:4/5;position:sticky;top:8rem}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.profile-intro{margin-top:clamp(1.3rem,2.5vw,2.4rem);font-size:clamp(1rem,1.35vw,1.35rem);max-width:48ch}
.specialty-tabs{display:flex;gap:.4rem;margin-top:clamp(2rem,3.5vw,3.5rem);padding-bottom:1.3rem;border-bottom:.0625rem solid var(--line)}
.specialty-tabs button{flex:1 1 auto;padding:.75rem .65rem;min-height:3rem;font-size:var(--small);border-radius:.2rem;white-space:nowrap}
.specialty-tabs button:hover{background:var(--ice)}
.specialty-tabs button[aria-selected=true]{background:var(--blue);color:var(--paper)}
.specialty-panel{padding-top:1.6rem}
.specialty-panel h3{font-size:clamp(1.5rem,2.5vw,2.6rem);margin-bottom:1.2rem}
.specialty-panel p{margin-bottom:1rem;color:var(--muted);font-size:var(--body)}
.specialty-notes{list-style:none;padding:0;margin:1.5rem 0 0;display:flex;flex-wrap:wrap;gap:.45rem 1rem;font-size:var(--small);color:var(--muted)}
.specialty-notes li:not(:last-child)::after{content:'·';color:var(--blue);margin-left:1rem}
.specialty-controls{display:flex;align-items:center;justify-content:space-between;padding-top:1.5rem;margin-top:1.5rem;border-top:.0625rem solid var(--line)}
.specialty-count{font-size:var(--small);color:var(--muted)}
.specialty-controls>div{display:flex;gap:.6rem}
.specialty-controls button{display:grid;place-items:center;width:2.75rem;height:2.75rem;border:.0625rem solid var(--line);border-radius:50%;font-size:clamp(1.1rem,1.5vw,1.4rem)}
.specialty-controls button:hover{background:var(--blue);color:var(--paper);border-color:var(--blue);transform:scale(1.02)}
.text-link{position:relative;display:inline-flex;gap:.75rem;align-items:center;width:fit-content;font-size:var(--small);padding-block:.5rem}
.specialty-panel>.text-link{color:var(--blue)}
.interests-title{font-size:clamp(.95rem,1.15vw,1.2rem);font-weight:500;line-height:1.4;letter-spacing:-.025em;margin:1.8rem 0 1rem}
.clinical-interests summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem;font-size:var(--body);font-weight:500;letter-spacing:-.02em}
.clinical-interests .expand{width:2rem;height:2rem;font-size:clamp(1rem,1.2vw,1.2rem)}
.clinical-interests .detail-body{padding-bottom:1.2rem}
.approach-tabs{max-width:36rem;margin:0 0 1.5rem;border-bottom:0;padding-bottom:0}
.approach-panel{outline-offset:.5rem}
.interests-intro{font-size:var(--small);color:var(--muted);margin-bottom:1.5rem}
.approach-panel .clinical-interests summary{padding-block:clamp(1.5rem,2.5vw,2.5rem);font-size:clamp(1.15rem,1.7vw,1.8rem)}
.approach-panel .clinical-interests .detail-body{max-width:68ch;padding-bottom:1.8rem}
.approach{background:var(--ice)}
.chapter-heading{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:clamp(2.3rem,4vw,4rem)}
.chapter-heading>p{max-width:37ch;color:var(--muted);font-size:var(--small)}
details{border-top:.0625rem solid var(--line)}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
.approach-item summary{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr) auto;gap:clamp(1.4rem,4vw,4rem);align-items:start;padding-block:clamp(1.5rem,3vw,3rem)}
.approach-item summary h3{max-width:23ch;font-weight:500}
.approach-item summary>p{max-width:45ch;color:var(--muted);font-size:var(--body)}
.expand{display:grid;place-items:center;width:2.5rem;height:2.5rem;flex-shrink:0;border:.0625rem solid var(--line);border-radius:50%;font-size:clamp(1.05rem,1.6vw,1.6rem);line-height:1;color:var(--ink);transition:var(--transition)}
summary:hover .expand,details[open]>summary .expand{background:var(--blue);color:var(--paper);border-color:var(--blue)}
details[open]>summary .expand{transform:rotate(45deg)}
.detail-body{padding-bottom:clamp(1.5rem,2.5vw,2.5rem);color:var(--muted);font-size:var(--body)}
.detail-body p{max-width:65ch;margin-bottom:1rem}
.detail-body p:last-child{margin-bottom:0}
.approach-item .detail-body{max-width:68ch;margin-left:calc(42.5% + .6rem);padding-right:3.5rem}
.cv-group+.cv-group{margin-top:clamp(2.8rem,4.8vw,5rem)}
.cv-group>h3{font-size:clamp(1.25rem,2.05vw,2.2rem);margin-bottom:1.5rem}
.timeline summary{display:grid;grid-template-columns:minmax(7rem,.25fr) minmax(0,1fr) auto;align-items:start;gap:clamp(1rem,2.5vw,3rem);padding-block:1.4rem}
.date{font-size:var(--small);color:var(--muted);padding-top:.25rem}
.position{font-size:clamp(1rem,1.7vw,1.7rem);letter-spacing:-.035em;line-height:1.35}
.position small{display:block;margin-top:.45rem;font-size:var(--small);letter-spacing:0;line-height:1.5;color:var(--muted)}
.timeline .detail-body{margin-left:calc(20% + 1.5rem);padding-right:3rem}
.cv-extras{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:clamp(1.5rem,3vw,3rem);margin-top:clamp(3rem,6vw,6rem)}
.cv-extras summary{display:flex;justify-content:space-between;gap:1rem;align-items:start;padding-block:1.4rem}
.cv-extras summary h3{font-size:clamp(1.05rem,1.55vw,1.6rem);padding-top:.4rem}
.cv-extras ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem;font-size:var(--small)}
.language-list{margin:0;font-size:var(--small)}
.language-list>div{display:flex;justify-content:space-between;gap:1rem;margin-bottom:.6rem}
.language-list dd{margin:0;text-align:right}
.contact{background:var(--ice)}
.contact h2{font-size:clamp(3rem,8.5vw,9rem);font-weight:400;line-height:1.02;letter-spacing:-.055em}
.contact-bottom{display:flex;justify-content:space-between;align-items:center;gap:2rem;margin-top:clamp(2.5rem,4vw,4rem)}
.contact-bottom>p{max-width:45ch;font-size:clamp(1rem,1.4vw,1.4rem);color:var(--muted)}
.contact-arrow{display:grid;place-items:center;background:var(--blue);color:var(--paper);width:clamp(3.5rem,7.5vw,8rem);aspect-ratio:1;border-radius:50%;flex-shrink:0}
.contact-arrow svg{width:40%;height:40%}
.contact-arrow:hover{transform:scale(1.02);box-shadow:0 .8rem 2.4rem #304bdb25}
.contact-links{display:flex;flex-wrap:wrap;align-items:center;gap:1rem clamp(1.5rem,4vw,4rem);margin-top:clamp(2.5rem,5vw,5rem);font-size:var(--small)}
.contact-links>span{color:var(--muted);margin-left:auto}
footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding-block:1.6rem;font-size:var(--small);color:var(--muted)}
.motion-toggle{font-size:var(--small);padding:.6rem;min-height:2.75rem}
.motion-toggle:hover{color:var(--blue)}
@media(width < 52rem){
 .site-header{position:relative;row-gap:.65rem}
 .site-header nav{flex-basis:100%;justify-content:space-between;gap:.6rem}
 .hero{min-height:calc(100svh - 8rem);padding-top:3rem}
 .profile{grid-template-columns:1fr}
 .portrait{position:static;max-width:30rem;width:100%;aspect-ratio:5/4}
 .portrait img{object-position:center 35%}
 .approach-item summary{grid-template-columns:minmax(0,1fr) auto;gap:.8rem 1.2rem}
 .approach-item summary h3{grid-column:1;max-width:100%}
 .approach-item summary>p{grid-column:1;grid-row:2}
 .approach-item summary .expand{grid-column:2;grid-row:1}
 .approach-item .detail-body{margin-left:0;padding-right:0}
 .timeline .detail-body{margin-left:0;padding-right:0}
 .timeline summary{grid-template-columns:1fr auto;gap:.5rem 1rem}
 .timeline .date{grid-column:1}
 .timeline .position{grid-column:1;grid-row:2}
 .timeline .expand{grid-column:2;grid-row:1/3}
 .contact-links>span{margin-left:0}
}
@media(width < 25rem){.specialty-tabs{flex-wrap:wrap}.specialty-tabs button{flex-grow:1}.contact-bottom{align-items:start}.contact-bottom>p{font-size:var(--body)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
.motion-off{scroll-behavior:auto}
.motion-off *, .motion-off *::before,.motion-off *::after{transition:none!important;animation:none!important}
@media print{
 .approach-panel[hidden]{display:block!important}.approach-tabs{display:none!important}
 .site-header{position:static;background:transparent}.site-header nav,.hero-actions,.hero-bottom,.specialty-tabs,.specialty-controls,.motion-toggle,.contact-arrow,.skip-link{display:none!important}
 .chapter,.hero{padding-block:2rem;min-height:0}.portrait{position:static}.specialty-panel[hidden]{display:block!important}
 details{break-inside:avoid}.contact{background:transparent}.detail-body{display:block!important}.wrap{max-width:100%;padding-inline:0}
}
