:root{--yale:#00356b;--dark:#00264d;--ink:#202934;--muted:#5d6874;--bg:#f2f3f5;--paper:#fff;--line:#d6dbe1;--max:1120px}*{box-sizing:border-box}body{margin:0;min-height:100vh;display:flex;flex-direction:column;color:var(--ink);background:var(--bg);font:17px/1.65 Arial,Helvetica,sans-serif}a{color:var(--yale);text-decoration-thickness:1px;text-underline-offset:3px}a:hover,a:focus{color:var(--dark);text-decoration-thickness:2px}.skip-link{position:absolute;top:-60px;left:16px;z-index:100;background:#fff;padding:10px 14px;border:2px solid var(--yale)}.skip-link:focus{top:12px}.site-header{background:var(--yale);}.header-inner{width:min(calc(100% - 48px),var(--max));margin:auto;display:flex;flex-direction:column;padding-top:20px}.brand{color:#fff;text-decoration:none;font:700 clamp(1.6rem,3.2vw,2.45rem)/1.2 Georgia,serif;white-space:nowrap}.brand:hover,.brand:focus{color:#fff}.site-nav{border-bottom:1px solid #b6bfc9}
.site-nav ul{display:flex;flex-wrap:nowrap;margin:0;padding:0 4px;list-style:none;overflow-x:auto;scrollbar-width:none}
.site-nav ul::-webkit-scrollbar{display:none}
.site-nav li{flex:0 0 auto;position:relative;margin-left:-10px}
.site-nav li:first-child{margin-left:0}.site-nav a{--tab:#e2e7ec;--tab-deep:#c6cfd8;display:block;position:relative;padding:9px 20px 10px;background:var(--tab);color:#2c3844;font-size:.88rem;font-weight:700;text-decoration:none;white-space:nowrap;border:1px solid rgba(24,39,56,.2);border-bottom:none;border-radius:10px 10px 0 0;box-shadow:inset 0 -10px 12px -10px rgba(24,39,56,.5)}
.site-nav a[data-nav=home]{--tab:#dbe7f4;--tab-deep:#a9c6e3}
.site-nav a[data-nav=about]{--tab:#dfe3e8;--tab-deep:#b3bdc8}
.site-nav a[data-nav=practice]{--tab:#d2dce7;--tab-deep:#9cb0c5}
.site-nav a[data-nav=research]{--tab:#cedeee;--tab-deep:#97bad8}
.site-nav a[data-nav=contact]{--tab:#dbdce0;--tab-deep:#a8aab2}
.site-nav a:not([aria-current=page]):hover,.site-nav a:not([aria-current=page]):focus{background:var(--tab-deep);color:#1d2731}
.site-nav a:focus-visible{outline:3px solid var(--yale);outline-offset:-3px}
.site-nav a[aria-current=page]{z-index:3;margin-bottom:-1px;padding-top:7px;padding-bottom:13px;background:var(--bg);color:var(--ink);border:1px solid rgba(24,39,56,.24);border-top:3px solid var(--tab-deep);border-bottom:1px solid var(--bg);box-shadow:none}
body[data-page=home]{--bg:#eef3f9}
body[data-page=about]{--bg:#f1f3f5}
body[data-page=practice]{--bg:#edf1f5}
body[data-page=research]{--bg:#eaf0f7}
body[data-page=contact]{--bg:#f2f2f4}
.site-header .brand{margin-bottom:15px}main{flex:1}.hero{width:min(calc(100% - 48px),var(--max));margin:64px auto 70px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:72px;align-items:center}.eyebrow{color:var(--yale);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;margin:0 0 12px}h1,h2,h3{color:var(--yale);font-family:Georgia,'Times New Roman',serif;line-height:1.18}h1{margin:0 0 24px;font-size:clamp(2.6rem,5vw,4.65rem);font-weight:600;letter-spacing:-.025em}h2{margin:0 0 22px;font-size:clamp(1.3rem,2.1vw,1.7rem);font-weight:600}h3{margin:0 0 8px;font-size:1.28rem}.lede{max-width:760px;margin:0 0 28px;font-size:1rem;line-height:1.55;color:#34414d}.hero-actions,.link-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}.button{display:inline-block;min-height:48px;padding:10px 19px;background:var(--yale);color:#fff;border:2px solid var(--yale);border-radius:2px;font-weight:700;text-decoration:none}.button:hover,.button:focus{background:var(--dark);border-color:var(--dark);color:#fff}.button.secondary{background:transparent;color:var(--yale)}.button.secondary:hover,.button.secondary:focus{color:#fff;background:var(--yale)}.portrait-wrap{background:#24201f;box-shadow:0 18px 46px rgba(24,39,56,.13);aspect-ratio:2/2.55;overflow:hidden}.portrait{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 28%}.section{padding:70px 0;border-top:1px solid var(--line)}.section.paper{background:#fff}.container{width:min(calc(100% - 48px),var(--max));margin:auto}.narrow{max-width:820px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 48px}.card{padding:28px;background:#fff;border-top:4px solid var(--yale);box-shadow:0 8px 28px rgba(24,39,56,.06)}.card p{margin:0}.page-heading{padding:66px 0 46px}.page-heading h1{max-width:900px;font-size:clamp(1.6rem,3.2vw,2.45rem)}.content{padding-bottom:78px}.content p{max-width:850px}.credentials{margin:32px 0 0;padding:24px 28px;border-left:4px solid var(--yale);background:#fff}.credentials p{margin:5px 0}.contact-panel{max-width:780px;background:#fff;border-top:4px solid var(--yale);padding:34px;box-shadow:0 10px 35px rgba(24,39,56,.07)}.contact-list{margin:26px 0;padding:0;list-style:none}.contact-list li{margin:9px 0;font-size:1rem}.notice{margin-top:30px;padding-top:24px;border-top:1px solid var(--line);color:var(--muted);font-size:.92rem}.site-footer{background:#e6e9ed;border-top:1px solid #cbd1d8}.footer-inner{width:min(calc(100% - 48px),var(--max));margin:auto;padding:32px 0}.footer-inner p{margin:4px 0;color:#505b66;font-size:.84rem;line-height:1.5}.footer-name{color:var(--yale)!important;font:700 1rem Georgia,serif!important}@media(max-width:850px){.header-inner{padding-top:16px}.hero{grid-template-columns:1fr;gap:38px;margin-top:48px}.portrait-wrap{max-width:500px}.grid-2{grid-template-columns:1fr}}@media(max-width:520px){body{font-size:16px}.header-inner,.hero,.container,.footer-inner{width:min(calc(100% - 32px),var(--max))}.site-nav a{padding:8px 15px 10px;font-size:.82rem}.hero{margin-bottom:50px}.page-heading{padding:46px 0 30px}.section{padding:52px 0}.content{padding-bottom:56px}.card,.contact-panel{padding:24px}}
/* Keep the full professional name and degrees together across screen sizes. */
.hero{grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:48px}
.hero h1{font-size:clamp(1rem,5.1vw,3.5rem);white-space:nowrap;letter-spacing:-.035em}
@media(max-width:850px){.hero{grid-template-columns:1fr}.hero h1{font-size:clamp(.9rem,3.7vw,2.1rem)}}

/* Responsive hero: size the unbroken name to its own column, never the viewport. */
.hero-copy{container-type:inline-size;min-width:0}
.hero h1{font-size:clamp(.85rem,4.7cqi,2.45rem);white-space:nowrap;letter-spacing:-.035em;max-width:100%}
@supports not (font-size:1cqi){.hero h1{font-size:clamp(.85rem,2.3vw,2.45rem)}}
@media(max-width:1100px){.hero{grid-template-columns:1fr;gap:36px}.portrait-wrap{max-width:430px}.hero h1{font-size:clamp(.85rem,4.7cqi,2.45rem)}}


