:root{--navy:#102c3c;--mint:#a8f0d4;--green:#21634e;--paper:#f5f7f8;--text:#183747;--muted:#536a77;--line:#d0dce1;--white:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-synthesis:none;color:var(--text);background:var(--paper);scroll-behavior:smooth}*{box-sizing:border-box}body{margin:0;font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}p{margin:0 0 1.2rem}h1,h2,h3,h4{margin:0;font-weight:550;line-height:1.15;letter-spacing:-.035em}h1{font-size:clamp(2.6rem,5vw,4.8rem)}h2{font-size:clamp(2rem,3.4vw,3rem)}h3{font-size:1.35rem;line-height:1.35;letter-spacing:-.025em}img{display:block;max-width:100%}button{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #257eb0;outline-offset:5px}a,button,summary{-webkit-tap-highlight-color:transparent}section[id],article[id]{scroll-margin-top:35px}.skip-link{position:absolute;top:-100px;left:20px;padding:12px 18px;background:var(--mint);z-index:10}.skip-link:focus{top:12px}.wrap{width:min(1128px,86%);margin-inline:auto}.wide{width:min(1224px,92%);margin-inline:auto}.site-header{max-width:1320px;padding:26px 48px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:25px}.brand{display:flex;align-items:center;gap:13px;white-space:nowrap;font-weight:650;font-size:1.1rem}.monogram{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--navy);font-size:.85rem;letter-spacing:-.08em}.main-nav{display:flex;gap:29px;align-items:center}.main-nav a{font-size:.875rem;padding:9px 0;border-bottom:1px solid transparent}.main-nav a:hover,.main-nav [aria-current=page]{border-color:var(--green);color:var(--green)}.menu-toggle{display:none;background:transparent;border:1px solid var(--navy);padding:7px 12px;min-height:42px;color:var(--navy)}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:650;line-height:1.5;color:var(--green);margin-bottom:22px;text-transform:uppercase}.lede{font-size:1.15rem;line-height:1.75;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;background:var(--mint);color:var(--navy);padding:12px 20px;font-weight:650;font-size:.9rem;min-height:46px;border:1px solid transparent;line-height:1.4;transition:background .15s}.button:hover{background:#c6fae5}.button.dark{background:var(--navy);color:white}.button.dark:hover{background:#23495e}.button.outline{background:transparent;border-color:var(--line);color:var(--navy)}.button.outline:hover{background:#e7edef}.text-link{display:inline-block;border-bottom:1px solid currentColor;color:var(--green);font-size:.95rem;padding-bottom:3px;font-weight:550}.actions{display:flex;flex-wrap:wrap;gap:13px;align-items:center;margin-top:25px}.hero{background:var(--navy);color:white;display:grid;grid-template-columns:1.65fr 1fr}.hero-copy{padding:47px 52px 48px}.hero .eyebrow{color:var(--mint);font-size:.72rem;margin-bottom:22px}.hero h1{font-size:clamp(2.9rem,5.1vw,4.5rem);line-height:1.07;letter-spacing:-.055em}.hero h1 span{color:var(--mint)}.hero-description{max-width:540px;color:#c7d8df;font-size:1rem;line-height:1.7;margin:27px 0 0}.hero .hero-email{font-size:.9rem;color:var(--mint);border-bottom:1px solid #6a9e96;padding-bottom:3px}.hero-aside{border-left:1px solid #355261;padding:27px;display:flex;flex-direction:column}.hero-meta{display:flex;justify-content:space-between;gap:20px;font-size:.7rem;letter-spacing:.1em;color:#b6cbd4;margin-bottom:26px}.hero figure{margin:0}.hero-photo{width:100%;height:252px;object-fit:cover;object-position:50% 58%;filter:grayscale(1);opacity:.95}.hero figcaption{font-size:.75rem;color:#adc3ce;margin-top:10px;line-height:1.6}.hero-aside .location-label{margin:29px 0 0;font-size:1.7rem;letter-spacing:-.035em;line-height:1.2;color:white}.hero-aside .affiliation{font-size:.85rem;color:#b5cbd5;line-height:1.65;margin:12px 0 0}.about-grid{display:grid;grid-template-columns:1fr 2fr;gap:65px;padding:63px 0}.about-grid .eyebrow{padding-top:5px}.about-grid .lead{font-size:1.75rem;line-height:1.4;font-weight:500;letter-spacing:-.025em;color:var(--navy)}.about-grid p{color:var(--muted)}.about-grid p:last-child{margin-bottom:0}.section{border-top:1px solid var(--line);padding:59px 0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:32px}.section-heading h2{max-width:670px}.section-heading .eyebrow{margin-bottom:17px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.project-card{border:1px solid var(--line);background:white;padding:30px;display:flex;flex-direction:column}.project-card .label{font-size:.75rem;font-weight:650;color:var(--green);letter-spacing:.075em;margin-bottom:17px;text-transform:uppercase}.project-card h3{font-size:1.65rem;margin-bottom:8px}.project-subtitle{color:var(--muted);font-size:.98rem;line-height:1.5;margin-bottom:24px}.project-card .project-description{color:var(--muted);font-size:.95rem;line-height:1.8;flex:1}.project-card .text-link{align-self:flex-start;margin-top:6px}.update-row{display:grid;grid-template-columns:170px 1fr;gap:25px;margin-top:27px;border-top:1px solid var(--line);padding-top:24px}.update-row p{margin-bottom:0;color:var(--muted);font-size:.95rem}.update-row strong{color:var(--navy);font-weight:550}.teaching-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:80px}.teaching-grid p{color:var(--muted)}.course-list{list-style:none;margin:0;padding:0}.course-list li{border-top:1px solid var(--line);padding:20px 0}.course-list li:first-child{border:0;padding-top:0}.course-list small{display:block;color:var(--muted);font-size:.85rem;margin-top:5px}.course-list .course-title{font-size:1.13rem;font-weight:550;line-height:1.4}.teaching-grid h2{margin-bottom:25px}.cv-preview{display:grid;grid-template-columns:1fr 1.15fr;gap:80px}.cv-preview .credential{border-bottom:1px solid var(--line);padding:0 0 20px;margin-bottom:20px}.credential p{margin:5px 0 0;color:var(--muted);font-size:.95rem}.credential span{font-size:.82rem;color:var(--green)}.contact-band{background:var(--mint);padding:58px 0;margin-top:15px}.contact-inner{display:grid;grid-template-columns:1.3fr 1fr;gap:80px}.contact-band h2{font-size:clamp(2.2rem,3.5vw,3.3rem)}.contact-band .eyebrow{color:#255c47}.contact-band p{color:#2b5646}.contact-band .contact-email{font-size:clamp(1.3rem,2.5vw,1.8rem);font-weight:550;letter-spacing:-.025em;border-bottom:1px solid #729f8c;display:inline-block;margin:3px 0 15px}.contact-band address{font-style:normal;font-size:.95rem;color:#285342}.footer{padding:25px 0;display:flex;gap:25px;align-items:start;justify-content:space-between;font-size:.75rem;color:var(--muted)}.footer a{text-decoration:underline;text-underline-offset:3px}.photo-credit{max-width:640px;text-align:right;line-height:1.6}.page-heading{padding:50px 0 48px;border-bottom:1px solid var(--line)}.page-heading h1{max-width:980px;margin-bottom:20px}.page-heading .lede{max-width:800px;margin:0}.page-heading .actions{margin-top:28px}.page-heading .eyebrow{margin-bottom:16px}.jump-nav{display:flex;gap:25px;flex-wrap:wrap;padding:22px 0;border-bottom:1px solid var(--line);font-size:.875rem;color:var(--green)}.jump-nav a:hover{text-decoration:underline}.article-section{display:grid;grid-template-columns:230px 1fr;gap:65px;border-bottom:1px solid var(--line);padding:58px 0}.article-side .eyebrow{margin-bottom:14px}.article-side p{font-size:.85rem;line-height:1.7;color:var(--muted)}.article-body{min-width:0}.article-body h2{font-size:2.45rem;margin-bottom:10px}.article-body h3{margin:28px 0 14px}.article-body p{color:var(--muted)}.article-body .subtitle{color:var(--navy);font-size:1.15rem;margin-bottom:28px}.article-body em{color:var(--navy)}.source-topics{border-left:2px solid #76b49a;margin:26px 0 0;padding:0 0 0 21px;color:var(--muted);font-size:.9rem}.source-topics strong{display:block;color:var(--green);font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:9px}.publication{background:white;border:1px solid var(--line);padding:29px;margin-top:10px}.publication h3{font-size:1.4rem;margin:9px 0 12px}.publication p{font-size:.95rem;color:var(--muted)}.publication .eyebrow{margin:0}.publication .text-link{overflow-wrap:anywhere}.talk-list{padding:0;margin:0;list-style:none}.talk-list li{display:grid;grid-template-columns:170px 1fr;gap:26px;border-bottom:1px solid var(--line);padding:25px 0}.talk-list li:first-child{padding-top:0}.talk-date{font-size:.875rem;color:var(--green)}.talk-date small{display:block;font-size:.75rem;margin-top:6px;color:var(--muted)}.talk-list h3{font-size:1.1rem;line-height:1.5;margin-bottom:8px}.talk-list p{font-size:.9rem;color:var(--muted);margin:0 0 8px}.prose{max-width:800px}.prose h2{margin:0 0 22px}.prose p{color:var(--muted)}.practice-list details{border-top:1px solid var(--line)}.practice-list details:last-child{border-bottom:1px solid var(--line)}.practice-list summary{list-style:none;padding:22px 0;display:flex;justify-content:space-between;gap:25px;font-weight:550;font-size:1.1rem;cursor:pointer;line-height:1.5}.practice-list summary::-webkit-details-marker{display:none}.practice-list summary:after{content:'+';font-size:1.3rem;color:var(--green)}.practice-list details[open] summary:after{content:'−'}.practice-list details p{padding-right:35px;color:var(--muted);font-size:1rem}.rating-grid{display:grid;grid-template-columns:1fr 1fr 1fr;background:var(--navy);color:white}.rating{padding:30px;border-right:1px solid #365365}.rating:last-child{border:0}.rating-number{color:var(--mint);display:block;font-size:2.7rem;line-height:1.2;letter-spacing:-.045em}.rating-label{display:block;font-size:.875rem;margin-top:12px;line-height:1.5;color:#c2d3dc}.rating-notes{font-size:.85rem;color:var(--muted);margin-top:19px;max-width:940px}.student-quote{padding:22px 0 0;margin:0;max-width:900px}.student-quote p{font-size:1.4rem;line-height:1.5;color:var(--navy);margin-bottom:12px}.student-quote cite{font-size:.85rem;font-style:normal;color:var(--muted)}.cv-block{display:grid;grid-template-columns:245px 1fr;gap:65px;padding:43px 0;border-bottom:1px solid var(--line)}.cv-block h2{font-size:1.5rem;line-height:1.3}.cv-entry{margin-bottom:28px}.cv-entry:last-child{margin:0}.cv-entry .date{font-size:.85rem;color:var(--green);margin-bottom:6px}.cv-entry h3{font-size:1.13rem;margin-bottom:5px}.cv-entry p{font-size:.95rem;color:var(--muted);margin:4px 0}.cv-entry .institution{color:var(--navy)}.cv-tags{display:flex;flex-wrap:wrap;gap:9px;list-style:none;margin:0;padding:0}.cv-tags li{border:1px solid var(--line);padding:6px 11px;font-size:.9rem;background:white}.language-list{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:16px 35px}.language-list div{border-bottom:1px solid var(--line);padding-bottom:12px}.language-list dt{font-weight:550}.language-list dd{margin:2px 0 0;font-size:.9rem;color:var(--muted)}.simple-list{margin:0;padding-left:19px;color:var(--muted)}.simple-list li{padding:3px 0}.updated{color:var(--muted);font-size:.85rem;margin:20px 0}.error-page{padding:90px 0 150px}.error-page p{margin-top:25px}.error-page .button{margin-top:12px}
@media(max-width:1050px){.site-header{padding:24px 4%}.hero-copy{padding:40px 35px}.hero-aside{padding:25px}.hero-photo{height:235px}.hero h1{font-size:3.3rem}.main-nav{gap:22px}.about-grid,.teaching-grid,.cv-preview,.contact-inner{gap:45px}.article-section{grid-template-columns:180px 1fr;gap:45px}.cv-block{grid-template-columns:190px 1fr;gap:40px}.hero-aside .location-label{font-size:1.5rem}.rating{padding:25px}.talk-list li{grid-template-columns:140px 1fr}}
@media(max-width:760px){.hero{grid-template-columns:1.4fr 1fr}.hero-copy{padding:32px 26px}.hero h1{font-size:2.7rem}.hero .eyebrow{font-size:.65rem}.hero-aside{padding:22px 18px}.hero-photo{height:205px}.hero-description{font-size:.95rem}.hero .actions{gap:18px}.hero .hero-email{font-size:.8rem}.main-nav{gap:16px}.main-nav a{font-size:.875rem}.brand{font-size:1rem}.section-heading{display:block}.section-heading>.text-link{margin-top:20px}.project-card{padding:24px}.project-card h3{font-size:1.5rem}.article-section{grid-template-columns:1fr;gap:16px}.article-side p{max-width:620px}.article-side .eyebrow{margin-bottom:8px}.teaching-grid,.cv-preview{gap:35px}.cv-block{grid-template-columns:1fr;gap:24px}.about-grid{grid-template-columns:1fr;gap:0}.about-grid .lead{font-size:1.65rem}.contact-inner{gap:30px}.photo-credit{max-width:55%}}
@media(max-width:600px){.wide{width:100%}.wrap{width:86%}.site-header{padding:21px 7%;flex-wrap:wrap;gap:17px}.menu-toggle{display:block}.main-nav{display:flex;width:100%;flex-wrap:wrap;gap:9px 22px;order:3}.js .main-nav{display:none}.js .main-nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0;border-top:1px solid var(--line);padding-top:8px}.main-nav a{padding:9px 0;font-size:1rem}.hero{grid-template-columns:1fr}.hero-copy{padding:36px 7%}.hero h1{font-size:clamp(2.65rem,10.5vw,3.7rem)}.hero .eyebrow{font-size:.68rem;max-width:270px}.hero-description{font-size:1rem}.hero .hero-email{font-size:.9rem}.hero-aside{border-left:0;border-top:1px solid #355261;padding:23px 7% 28px;display:grid;grid-template-columns:1.2fr 1fr;gap:0 24px}.hero-meta{grid-column:1 / -1;margin-bottom:18px}.hero-photo{height:180px}.hero-aside .location-label{margin:3px 0 0;font-size:1.4rem}.hero-aside .affiliation{font-size:.85rem}.hero-aside .aside-text{padding-top:3px}.hero figcaption{font-size:.7rem}.about-grid{padding:39px 0}.about-grid .lead{font-size:1.5rem}.section{padding:40px 0}.section-heading{margin-bottom:24px}h2{font-size:2.1rem}.project-grid{grid-template-columns:1fr;gap:20px}.project-card{padding:25px}.project-card h3{font-size:1.6rem}.update-row{grid-template-columns:1fr;gap:8px}.update-row .eyebrow{margin-bottom:0}.teaching-grid,.cv-preview{grid-template-columns:1fr;gap:29px}.teaching-grid h2{margin-bottom:21px}.cv-preview .actions{margin-top:20px}.contact-band{padding:40px 0}.contact-inner{grid-template-columns:1fr;gap:25px}.contact-band h2{font-size:2.25rem}.contact-band .eyebrow{margin-bottom:18px}.contact-band .contact-email{font-size:1.6rem}.footer{display:block;font-size:.75rem}.photo-credit{max-width:none;text-align:left;margin-top:12px}.page-heading{padding:29px 0 32px}.page-heading h1{font-size:2.6rem}.page-heading .lede{font-size:1.05rem}.page-heading .eyebrow{font-size:.72rem}.jump-nav{gap:13px 20px;font-size:.9rem;padding:18px 0}.article-section{padding:37px 0;gap:13px}.article-body h2{font-size:2rem}.article-body .subtitle{font-size:1.1rem;margin-bottom:22px}.article-body h3{font-size:1.22rem}.publication{padding:24px}.talk-list li{grid-template-columns:1fr;gap:11px;padding:24px 0}.talk-date small{display:inline;margin-left:10px}.talk-list h3{font-size:1.12rem}.rating-grid{grid-template-columns:1fr}.rating{display:grid;grid-template-columns:120px 1fr;align-items:center;gap:15px;border-right:0;border-bottom:1px solid #365365;padding:22px 25px}.rating-number{font-size:2.45rem}.rating-label{margin:0}.student-quote p{font-size:1.25rem}.cv-block{padding:32px 0;gap:22px}.cv-entry h3{font-size:1.12rem}.language-list{gap:18px 25px}.section .lede{font-size:1.08rem}.error-page{padding:55px 0 95px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*{transition:none!important}}
@media print{.site-header,.footer,.contact-band,.button,.jump-nav,.actions,.skip-link{display:none!important}body{color:#111;background:white;font-size:10pt}.wrap{width:100%}.page-heading{padding:0 0 16px}.page-heading h1{font-size:25pt}.cv-block{display:block;padding:15px 0;break-inside:avoid}.cv-block h2{font-size:15pt;margin-bottom:15px}.cv-entry{margin-bottom:14px}.cv-entry h3{font-size:11pt}.cv-entry p,.cv-entry .date{font-size:10pt}a{color:#111}.cv-tags li{border:0;padding:0 10px 0 0}.language-list{grid-template-columns:repeat(3,1fr)}}
