:root{
  color-scheme:light;
  --bg:#f8fafd; --band:#e8f0f9; --t:#13243b; --navy:#0f3563; --m:#55657a; --l:rgba(15,53,99,.15); --accent:#0a4a8f;
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --gutter:clamp(20px,5vw,64px);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--t);font:400 clamp(16.5px,1.22vw,18px)/1.52 var(--serif);font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0;padding:0}
ul,ol{list-style:none}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.skip{position:absolute;left:-9999px;top:0;background:var(--navy);color:#fff;padding:10px 16px;font:500 14px var(--sans);z-index:10}
.skip:focus{left:var(--gutter);top:10px}

.wrap{max-width:1180px;margin-inline:auto;padding-inline:var(--gutter)}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,32px)}
.band{background:var(--band)}

.top{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-block:18px;border-bottom:1px solid var(--l)}
.top .name{font:400 21px/1 var(--serif);letter-spacing:.03em;color:var(--navy)}
.top ul{display:flex;gap:clamp(16px,2.4vw,28px)}
.top li a{font:400 13.5px/1 var(--sans);color:var(--m);transition:color .2s}
.top li a:hover{color:var(--accent)}

.intro{padding-block:clamp(36px,4.6vw,64px);align-items:center;row-gap:30px}
.intro .text{grid-column:1/span 7;min-width:0}
.intro .kicker{margin-bottom:clamp(12px,1.4vw,18px);font:500 11.5px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.intro h1{font:300 clamp(46px,5.5vw,76px)/1.02 var(--serif);letter-spacing:-.024em;white-space:nowrap;color:var(--navy)}
.intro .role{margin-top:clamp(16px,1.7vw,22px);max-width:27em;font-size:clamp(19px,1.55vw,21px);line-height:1.36;letter-spacing:-.005em}
.intro .facts{margin-top:clamp(22px,2.6vw,34px);padding-top:clamp(14px,1.4vw,18px);border-top:1px solid var(--l);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;font:400 13px/1.4 var(--sans);color:var(--m)}
.intro .facts b{display:block;margin-bottom:4px;font:400 clamp(20px,1.75vw,24px)/1.12 var(--serif);letter-spacing:-.01em;color:var(--navy)}
.intro figure{grid-column:9/-1;min-width:0}
.intro img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 0;border-radius:2px;box-shadow:0 18px 40px -26px rgba(15,53,99,.55)}

.sec{border-top:1px solid var(--l);padding-block:clamp(32px,3.8vw,52px)}
.band+.wrap .sec:first-child{border-top:0}
.sec h2{grid-column:1/span 3;font:500 11.5px/1.5 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);padding-top:.4em}
.sec .body{grid-column:4/-1;min-width:0}
.prose{max-width:38em}
.prose p+p{margin-top:.75em}
.note{font-style:italic;color:var(--m);margin-bottom:clamp(14px,1.8vw,22px);max-width:38em}

.rows>li,.rows>div{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));column-gap:clamp(16px,2.4vw,32px);align-items:baseline;padding-block:clamp(10px,1.1vw,14px);border-top:1px solid var(--l)}
.rows>li:first-child,.rows>div:first-child{border-top:0;padding-top:0}
.rows>li:last-child,.rows>div:last-child{padding-bottom:0}
.practice dt{grid-column:1/span 3;font:500 14px/1.45 var(--sans);letter-spacing:-.005em;color:var(--navy)}
.practice dd{grid-column:4/-1}
.yr{grid-column:1/span 1;font:400 13px/1.5 var(--sans);color:var(--m);font-variant-numeric:tabular-nums}
.src{grid-column:2/span 2;font:400 13px/1.5 var(--sans);color:var(--m)}
.ttl{grid-column:4/-1}
.press a,.prof a{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .3s,color .2s}
.press a:hover,.prof a:hover{background-size:100% 1px;color:var(--accent)}
.ext::after{content:"\2197";font:400 .72em var(--sans);margin-left:.4em;color:var(--accent)}

.rec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(20px,2.4vw,30px) clamp(20px,3vw,40px)}
.rec h3{margin-bottom:8px;font:500 14px/1.4 var(--sans);color:var(--navy)}
.rec h3 span{font-weight:400;color:var(--m)}
.rec li{padding-block:4px}
.rec b{font-weight:500;color:var(--navy)}

.quotes-title{margin:clamp(24px,2.8vw,36px) 0 12px;padding-top:clamp(18px,2vw,24px);border-top:1px solid var(--l);font:500 14px/1.4 var(--sans);color:var(--navy)}
.quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,24px) clamp(20px,3vw,40px)}
.quotes blockquote{font-size:1.04em;line-height:1.4;letter-spacing:-.003em}
.quotes cite{display:block;margin-top:5px;font:400 12.5px/1.4 var(--sans);color:var(--m)}

.prof{display:flex;flex-wrap:wrap;gap:8px clamp(18px,2.6vw,32px)}
.mail{font-size:clamp(26px,3.2vw,40px);line-height:1.1;font-weight:300;letter-spacing:-.02em;display:inline-block;color:var(--navy);border-bottom:1px solid var(--l);padding-bottom:5px;transition:border-color .2s,color .2s;overflow-wrap:anywhere}
.mail:hover{color:var(--accent);border-color:var(--accent)}

.foot{border-top:1px solid var(--l);padding-block:20px 30px;font:400 12.5px/1.6 var(--sans);color:var(--m);display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 24px}

@media (max-width:860px){
  .intro .text{grid-column:1/-1}
  .intro figure{grid-column:1/-1;grid-row:2}
  .intro img{aspect-ratio:1/1;object-position:50% 0}
  .intro h1{white-space:normal}
  .sec h2{grid-column:1/-1;margin-bottom:14px;padding-top:0}
  .sec .body{grid-column:1/-1}
}
@media (max-width:620px){
  .top ul{gap:16px}
  .top li.opt{display:none}
  .intro .facts{grid-template-columns:minmax(0,1fr);gap:10px}
  .intro .facts li{display:flex;align-items:baseline;gap:10px}
  .intro .facts b{margin:0;white-space:nowrap}
  .rows>li,.rows>div{display:block}
  .practice dt{margin-bottom:4px}
  .yr,.src{display:inline}
  .yr::after{content:"\00a0\00b7\00a0"}
  .ttl{display:block;margin-top:3px}
  .rec,.quotes{grid-template-columns:minmax(0,1fr)}
}
