@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600&family=Noto+Serif+SC:wght@400;500;600&family=Playfair+Display:wght@400;500;600&display=swap');
:root{--navy:#132d42;--ink:#203442;--muted:#586873;--paper:#f8f7f3;--white:#fff;--line:#d8dedf;--gold:#946d3e;--serif:'Playfair Display','Noto Serif SC',Georgia,serif;--sans:'DM Sans','Noto Sans SC',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.75 var(--sans)}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}a:hover{color:var(--gold)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #b58a4f;outline-offset:5px}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif)}h2{font-size:clamp(2rem,3.8vw,3rem);line-height:1.2;letter-spacing:-.035em}p{margin-bottom:1.2rem}.site-header{height:99px;padding:0 5.5%;display:flex;align-items:center;gap:36px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(248,247,243,.97);z-index:20}.wordmark{font:500 25px/1.2 var(--serif);margin-right:auto;white-space:nowrap}.wordmark span{display:block;font:500 10px/1.7 var(--sans);letter-spacing:.16em;margin-top:6px}nav{display:flex;gap:27px;font-size:14px}nav a{padding:8px 0}.language{background:transparent;border:1px solid #aebac3;border-radius:2px;font-size:14px;padding:5px 12px;cursor:pointer;color:var(--navy);white-space:nowrap}.language:hover{background:var(--navy);color:white}.skip-link{position:fixed;top:-100px;background:white;padding:12px;z-index:50}.skip-link:focus{top:0}.wrap{max-width:1320px;margin:auto;padding:0 6%}.hero{display:grid;grid-template-columns:1.12fr 1fr;min-height:690px;align-items:center;gap:7%;padding-top:65px;padding-bottom:70px}.eyebrow{text-transform:uppercase;font-size:12px;letter-spacing:.17em;font-weight:600;color:var(--gold);margin-bottom:22px}.hero h1{font-size:clamp(3.5rem,6.3vw,5.8rem);letter-spacing:-.055em;line-height:1.04;margin-bottom:25px}.hero .role{font-size:17px;line-height:1.65;margin-bottom:24px}.hero .intro{color:var(--muted);font-size:18px;line-height:1.85;max-width:590px}.hero-portrait{position:relative;padding:0 20px 25px 0}.hero-portrait:after{content:'';position:absolute;inset:24px 0 0 24px;border:1px solid #a9b4bc;z-index:-1}.hero-portrait img{width:100%;height:475px;object-fit:cover;object-position:51% 47%}.portrait-caption{position:absolute;left:0;bottom:25px;background:var(--navy);color:#fff;padding:10px 20px;font-size:12px;letter-spacing:.09em}.actions{display:flex;gap:13px;flex-wrap:wrap;align-items:center;margin-top:29px}.button{display:inline-flex;align-items:center;justify-content:center;padding:11px 21px;border:1px solid var(--navy);font-size:14px;font-weight:500;background:var(--navy);color:white;line-height:1.6}.button:hover{background:#264a65;color:white}.button.outline{background:transparent;color:var(--navy)}.button.outline:hover{background:#e8ecec}.profile-links{display:flex;gap:24px;font-size:14px;margin-top:25px}.text-link{border-bottom:1px solid #8a9da9;padding-bottom:2px}.research-strip{background:var(--navy);color:#f5f5f0}.strip-inner{padding-top:27px;padding-bottom:27px;display:flex;justify-content:space-between;gap:24px;align-items:center;font-size:14px;line-height:1.5}.strip-inner span:first-child{font-size:11px;letter-spacing:.15em;color:#c3cbd2}.strip-inner span:not(:first-child){border-left:1px solid #4a6071;padding-left:24px}.section{padding-top:95px;padding-bottom:100px;border-bottom:1px solid var(--line)}.section-heading{display:grid;grid-template-columns:.65fr 1fr;gap:10%;margin-bottom:45px}.section-heading .eyebrow{margin-bottom:12px}.section-heading p{color:var(--muted);max-width:630px;margin:28px 0 0}.group-heading{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:18px 0;border-bottom:1px solid var(--line);margin:30px 0 0}.paper{display:grid;grid-template-columns:65px 1fr;gap:10px;padding:29px 0;border-bottom:1px solid var(--line)}.paper-number{font:20px var(--serif);color:#8998a2;padding-top:3px}.paper h3{font:400 23px/1.45 var(--serif);margin:0 0 8px;max-width:950px}.paper-meta{color:var(--muted);font-size:14px;margin-bottom:10px}.paper-summary{font-size:15px;max-width:930px;color:var(--muted);margin:0 0 12px}.paper-links{display:flex;gap:20px;font-size:13px}.paper .translated{font-size:15px;color:var(--muted);margin-bottom:10px}.paper-authors{font-size:14px;margin:0 0 7px}.paper details{font-size:14px;color:var(--muted);max-width:900px}.paper summary{cursor:pointer;width:max-content;font-size:13px;color:var(--navy);margin-bottom:8px}.paper details p{margin-top:8px}.subtle{color:var(--muted);font-size:14px}.experience-layout{display:grid;grid-template-columns:1fr .75fr;gap:9%;align-items:start}.experience-item{padding:0 0 28px 22px;margin-bottom:26px;border-left:1px solid #adb9c0}.experience-item h3{font:23px/1.4 var(--serif);margin:5px 0}.date{font-size:12px;font-weight:500;letter-spacing:.07em;color:var(--gold)}.position{font-size:14px;margin-bottom:12px;color:var(--muted)}.experience-item p:last-child{font-size:15px;color:var(--muted);margin-bottom:0}.practice-image img{width:100%;height:440px;object-fit:cover;object-position:50% 68%}.caption{font-size:12px;color:var(--muted);margin:12px 0 0;line-height:1.7}.practice-note{padding:25px 0;margin-top:28px;border-top:1px solid var(--line)}.practice-note strong{font:32px var(--serif);display:block}.practice-note p{font-size:14px;color:var(--muted)}.engagement{background:#edf0f0}.conference-grid{display:grid;grid-template-columns:1fr 1fr;gap:36px}.conference img{height:310px;width:100%;object-fit:cover}.conference.naep img{object-position:50% 42%}.conference h3{font:25px/1.3 var(--serif);margin:17px 0 9px}.conference p{font-size:15px;color:var(--muted);margin:10px 0 14px}.conference .date{display:block;margin-top:21px}.event-list{margin-top:35px}.event{display:grid;grid-template-columns:140px 1fr;gap:28px;border-top:1px solid #cbd4d9;padding:24px 0}.event h3{font-size:18px;font-weight:500;margin:0 0 5px}.event p{font-size:14px;color:var(--muted);margin:0}.event .tag{font-size:11px;text-transform:uppercase;letter-spacing:.08em;background:white;color:var(--navy);display:inline-block;padding:2px 8px;margin-top:8px}.about-layout{display:grid;grid-template-columns:1fr 1fr;gap:9%}.about-copy>p{color:var(--muted)}.education{padding:0;margin:25px 0;list-style:none}.education li{padding:20px 0;border-bottom:1px solid var(--line)}.education h3{font-size:17px;font-weight:500;margin:3px 0}.education p{font-size:14px;color:var(--muted);margin:0}.personal-photos{display:grid;grid-template-columns:1fr 1fr;gap:17px;align-items:start}.personal-photos figure{margin:0}.personal-photos figure:nth-child(2){margin-top:65px}.personal-photos img{width:100%;height:350px;object-fit:cover}.personal-photos figure:nth-child(2) img{object-position:50% 65%}.photo-details{margin-top:32px;border-top:1px solid var(--line);padding-top:20px}.photo-details summary{cursor:pointer;font-size:14px}.extra-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:25px}.extra-gallery figure{margin:0}.extra-gallery img{height:225px;width:100%;object-fit:cover}.extra-gallery .discussion{object-position:50% 30%;clip-path:inset(0 0 3% 0)}.contact{background:var(--navy);color:white;padding:65px 0}.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:35px}.contact h2{font-size:38px;margin:0 0 15px}.contact p{color:#c8d2db;margin:0;font-size:15px}.contact .email{font:clamp(19px,2.6vw,31px) var(--serif);border-bottom:1px solid #8b9eac;padding-bottom:7px}.contact .profile-links{color:#d1dbe3;margin-top:18px}footer{background:var(--navy);border-top:1px solid #365064;padding:22px 6%;display:flex;justify-content:space-between;color:#bdcad3;font-size:12px;gap:20px}html[lang=zh-CN] .hero h1{font-size:clamp(3.4rem,6vw,5.4rem)}html[lang=zh-CN] h2{letter-spacing:.01em}html[lang=zh-CN] .eyebrow{letter-spacing:.15em}html[lang=zh-CN] .hero .intro{line-height:2}html[lang=zh-CN] .paper h3{font-family:var(--serif)}
@media(min-width:1550px){.hero{min-height:760px}.hero-portrait img{height:530px}}@media(max-width:1050px){.site-header{gap:20px;padding:0 4%}nav{gap:17px}.wordmark{font-size:22px}.wordmark span{font-size:9px}.hero{gap:5%;min-height:620px}.hero-portrait img{height:410px}.strip-inner{flex-wrap:wrap}.strip-inner span:first-child{width:100%}.strip-inner span:not(:first-child){padding-left:0;border-left:0}.experience-layout{gap:5%}.practice-image img{height:400px}.personal-photos img{height:300px}}@media(max-width:760px){html{scroll-padding-top:132px}.site-header{height:auto;min-height:110px;flex-wrap:wrap;padding:16px 6% 12px;gap:12px;justify-content:space-between}.wordmark{font-size:22px}.wordmark span{font-size:8px}nav{order:3;width:100%;justify-content:space-between;gap:12px;font-size:12px;overflow:auto}.language{font-size:13px}.hero{display:flex;flex-direction:column;align-items:stretch;padding-top:43px;gap:36px;padding-bottom:45px}.hero h1{font-size:56px}.hero .intro{font-size:17px}.hero-portrait{max-width:520px;width:100%;align-self:center}.hero-portrait img{height:420px;object-position:50% 43%}.eyebrow{font-size:11px;margin-bottom:16px}.strip-inner{gap:16px;font-size:13px;padding-top:23px;padding-bottom:23px}.strip-inner span:not(:first-child){flex-basis:calc(50% - 16px)}.section{padding-top:58px;padding-bottom:58px}.section-heading{display:block;margin-bottom:25px}.section-heading h2{margin-bottom:20px}.section-heading p{margin-top:0;font-size:15px}.paper{grid-template-columns:32px 1fr;padding:23px 0}.paper h3{font-size:20px}.paper-summary{font-size:14px}.paper-meta{font-size:13px}.experience-layout,.about-layout{grid-template-columns:1fr;gap:30px}.practice-image img{height:410px;object-position:50% 64%}.conference-grid{grid-template-columns:1fr;gap:34px}.conference img{height:290px}.event{grid-template-columns:90px 1fr;gap:18px}.personal-photos img{height:320px}.extra-gallery{grid-template-columns:1fr 1fr}.extra-gallery img{height:200px}.contact-inner{display:block}.contact h2{font-size:32px}.contact-inner>div:last-child{margin-top:27px}.contact .email{font-size:26px}footer{flex-direction:column;gap:4px}.profile-links{font-size:13px}html[lang=zh-CN] .hero h1{font-size:49px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.llm-memories{margin-top:35px}.llm-photos{display:grid;grid-template-columns:.7fr 1.3fr;gap:24px;margin-top:25px;align-items:start}.llm-photos figure{margin:0}.llm-photos img{width:100%;height:370px;object-fit:contain;background:#e9eceb}@media(max-width:760px){.llm-photos{grid-template-columns:1fr}.llm-photos img{height:auto;max-height:430px}}

.hangley-memories{margin-top:30px}.hangley-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:25px}.hangley-photos figure{margin:0}.hangley-photos img{width:100%;height:300px;object-fit:contain;background:#e9eceb}@media(max-width:760px){.hangley-photos{grid-template-columns:1fr}.hangley-photos img{height:auto;max-height:460px}}

.extra-gallery img{object-fit:contain;background:#e9eceb}

.naep-group{margin:22px 0}.naep-group figure{margin:0}.conference .naep-group img{height:auto;width:100%;object-fit:contain}.naep-group .caption{margin-top:10px}

.section h1{font:400 clamp(2rem,3.8vw,3rem)/1.2 var(--serif);letter-spacing:-.035em;margin:0 0 25px}nav a[aria-current="page"]{color:var(--gold);border-bottom:2px solid var(--gold)}@media(max-width:760px){nav{gap:10px;font-size:12px}.section h1{font-size:32px}}

.hero{align-items:start}.hero-portrait{margin-top:55px}.hero-biography{font-size:16px;line-height:1.85;color:var(--muted)}.hero-biography p{margin-bottom:20px}.hero .intro{color:var(--navy);font-size:19px;line-height:1.75}@media(max-width:760px){.hero-portrait{margin-top:0;order:-1}.hero-portrait img{height:340px}.hero-biography{font-size:16px}.hero .intro{font-size:18px}}

.hero-biography .bio-closing{border-top:1px solid var(--line);padding-top:22px;margin-top:26px;color:var(--navy)}.hero-biography strong{font-weight:600}
