/* Compact, evidence-led portfolio: overview first, full collections on demand. */
.section-space{padding-block:clamp(3rem,5.4vw,5rem)}
.section-heading{margin-bottom:1.7rem}
.narrative-heading{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:end;gap:2.5rem}
.narrative-heading h2,.intro .profile-intro h2{font-size:clamp(1.85rem,2.7vw,2.75rem);line-height:1.45;letter-spacing:-.02em}
.narrative-heading h2 strong{color:#1875b6;font-weight:700}
.narrative-heading>p{max-width:34rem;margin:0 0 .25rem;color:#4f6c83;font-size:.95rem;line-height:1.85}
.hero-visual{min-height:590px}
.hero-copy{padding-block:3rem}
.hero h1{font-size:clamp(2.7rem,4vw,4.5rem)}
.hero-proof{margin-top:2rem}
.hero-portrait{height:450px;max-height:76%;width:min(72%,370px)}
.profile-intro{margin-bottom:1.6rem;padding-bottom:1rem;gap:2rem}
.profile-intro>p{font-size:.87rem;max-width:33rem}
.profile-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2.5rem;align-items:start}
.profile-education>h3,.capability-panel>h3{margin:0 0 1rem;font-size:1.1rem;font-weight:600}
.profile-education>h3 span{margin-left:1rem;color:#54728a;font-size:.8rem;font-weight:400}
.education-grid{gap:.75rem}
.education-card{padding:1.1rem;min-height:0;border-radius:10px}
.education-card::before{display:none}
.education-card>span{margin:0 0 .6rem;padding:.1rem .4rem;font-size:.73rem}
.education-card time{font-size:.76rem;color:#526f85}
.education-card h4{font-size:1.25rem;margin:.5rem 0 .3rem}
.education-card p{font-size:.87rem}
.education-card small{font-size:.72rem;margin-top:.45rem}
.capability-panel{min-width:0}
.capability-list{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem 1.5rem}
.capability-list strong{color:#1875b6;font-size:clamp(1.45rem,2.1vw,2.1rem);line-height:1.2;font-weight:700}
.capability-list p{margin:.4rem 0 0;max-width:19em;color:#486981;font-size:.84rem;line-height:1.7}
.compact-proofs{gap:0;margin-top:1.7rem;border-block:1px solid #c2dff3;background:#fff}
.compact-proofs article,.compact-proofs article+article,.compact-proofs article:first-child,.compact-proofs article:nth-child(3){padding:1.1rem 1.35rem;border:0;border-radius:0;background:transparent}
.compact-proofs article+article{border-left:1px solid #d6e7f3}
.compact-proofs strong,.compact-proofs article:first-child strong{font-size:clamp(1.45rem,2vw,2rem);color:#1a6fa9;line-height:1.25}
.compact-proofs strong small{font-size:.6em}
.compact-proofs span,.compact-proofs article:first-child span{color:#264d6a;font-size:.85rem;margin:.45rem 0 0;font-weight:600}
.compact-proofs p,.compact-proofs article:first-child p{margin:.15rem 0 0;font-size:.75rem;color:#526f85}
.achievement-ribbon{display:flex;align-items:center;justify-content:space-between;gap:1rem 2rem;margin-top:1rem;padding:.8rem 1.1rem;background:#e4f2fe;color:#375c78;font-size:.85rem}
.achievement-ribbon p{margin:0}.achievement-ribbon strong{color:#1767a2;margin-right:.4rem;font-size:1rem}
.achievement-ribbon a{text-decoration:none}.achievement-ribbon a:hover{text-decoration:underline}
.course-record{margin-top:2rem}
.academic-heading{padding-bottom:.6rem;margin-bottom:1rem;gap:1.3rem}
.academic-heading h3{font-size:1.3rem}.academic-heading p{font-size:.9rem}
.academic-layout{gap:.75rem}.rank-card{padding:1rem;min-height:0;border-radius:10px}
.rank-card h4{font-size:.88rem}.rank-card .rank-value{font-size:3.1rem;margin:.8rem 0}
.rank-card>p:not(.rank-value){font-size:.76rem}.rank-card>span{font-size:.72rem}
.course-table-panel{padding:1rem;border-radius:10px}.course-tables{gap:1.2rem}
.course-tables table{font-size:.8rem}.course-tables th,.course-tables td{padding:.3rem 0}
.course-tables td{font-size:.85rem}.course-table-panel h4{margin-bottom:.6rem;font-size:.95rem}
.course-disclosure summary{cursor:pointer;color:#2276b4;font-size:.95rem;line-height:1.7}
.course-disclosure summary span{font-size:.73rem;font-weight:400;color:#52748d;margin-left:.65rem}
.course-disclosure[open] summary{margin-bottom:.6rem}
.course-disclosure:not([open]){align-self:start}
.academic-notes{margin-top:.8rem}.academic-extension{margin-top:.7rem;padding-top:.7rem}

.works-overview{background:#fff;border-bottom:1px solid #d5e6f3}
.work-path{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem;margin-top:2rem}
.work-path a{padding-top:1rem;border-top:2px solid #6dadd8;text-decoration:none}
.work-path strong{font-size:1.5rem;color:#1875b6}.work-path p{margin:.5rem 0;color:#254c6d;font-size:.95rem}
.work-path span{display:block;color:#57748a;font-size:.8rem}.work-path a:hover strong{text-decoration:underline;text-underline-offset:.25em}
.collection-heading{display:flex;justify-content:space-between;align-items:baseline;gap:1.5rem;margin:2.5rem 0 1.2rem;padding-bottom:.8rem;border-bottom:1px solid #cce1f1;scroll-margin-top:6rem}
.collection-heading h3{margin:0;color:#204f73;font-size:1.3rem;line-height:1.5}
.collection-heading p{margin:0;max-width:38rem;color:#526f85;font-size:.85rem}
.collection-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem}
.collection-grid.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}
.collection-card{min-width:0;background:transparent}
.collection-cover{position:relative;display:block;width:100%;padding:0;border:1px solid #c8dfef;border-radius:12px;overflow:hidden;background:#f7fbff;cursor:zoom-in;aspect-ratio:16/9}
.collection-cover img{display:block;width:100%;height:100%;object-fit:contain;transition:filter .25s ease}
.collection-cover:hover img{filter:brightness(.96)}
.collection-cover .collection-count{position:absolute;bottom:.7rem;right:.7rem;padding:.3rem .6rem;background:#fff;color:#195e90;border:1px solid #bbd9ec;border-radius:5px;font-size:.72rem;font-weight:600;line-height:1.5}
.collection-copy{padding:.85rem .1rem 0}
.collection-copy h3{margin:0;color:#244f70;font-size:1.22rem;line-height:1.5}
.collection-copy p{margin:.4rem 0 0;color:#526f85;font-size:.85rem;line-height:1.8}
.collection-tag{display:block;margin-top:.55rem;color:#246b9d;font-size:.74rem}
.tool-grid{gap:1rem}.tool-card{grid-template-columns:minmax(280px,.65fr) minmax(0,1.35fr);align-items:center;background:#f6fbff;border-radius:12px}
.tool-gallery .field-gallery-track{aspect-ratio:8/5}.tool-gallery .field-gallery-controls{padding:.35rem .7rem;min-height:49px}
.tool-copy{padding:1.2rem 1.7rem}.tool-copy h3{margin:0 0 .6rem;font-size:1.5rem}
.tool-copy p{font-size:.88rem;margin:0 0 .75rem;max-width:42rem;line-height:1.8}
.tool-copy small{border:0;padding:0;font-size:.74rem}.tool-launch{margin-top:.8rem;padding:.4rem .85rem;font-size:.8rem}
.tool-gallery .field-gallery-slide figcaption{font-size:.7rem;padding:.7rem .75rem;padding-top:1.8rem}
.tools-note{font-size:.76rem}
.section-label{font-size:1rem;font-weight:700;color:#2379b5;margin:0 0 .7rem;letter-spacing:.12em}
.teaching-subnav{display:flex;gap:1.6rem;border-bottom:1px solid #c3dced;padding:0 0 1rem;margin-bottom:1.3rem}
.teaching-subnav a{color:#236b9d;font-size:.9rem;text-decoration:none}.teaching-subnav a:hover{text-decoration:underline;text-underline-offset:.3em}
.teaching-achievements{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:2.6rem;scroll-margin-top:6rem}
.teaching-record{padding:1.25rem 1.5rem;background:#e1f1ff;border-left:3px solid #3b94d0}
.teaching-record>p{font-size:.8rem;margin:0 0 .5rem;color:#3b6583}
.teaching-record>strong{font-size:1.1rem;color:#216697;font-weight:500}.teaching-record b{font-size:3.8rem;font-weight:600;line-height:1.1;margin:0 .15rem}
.teaching-record h3{margin:.6rem 0 .3rem;font-size:1.4rem;color:#19659b}.teaching-record>span{font-size:.8rem;color:#446781}
.teaching-record .evidence-link{display:block;margin-top:.8rem;font-size:.8rem}
.teaching-awards dl{margin:0}.teaching-awards dl>div{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.8rem 0;border-bottom:1px solid #cddfec}
.teaching-awards dt{font-size:.88rem;color:#3f607b}.teaching-awards dd{margin:0;text-align:right;flex-shrink:0;font-size:.92rem;font-weight:600;color:#2078b4}
.teaching-awards>a{display:inline-block;margin-top:.8rem;font-size:.8rem;color:#236b9d;text-decoration:none}
.teaching-projects,.teaching-projects .collection-heading{scroll-margin-top:6rem}.project-award-link{margin-top:.7rem}

.experience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.experience-card{position:relative;isolation:isolate;min-width:0;height:340px;border-radius:14px;overflow:hidden;background:#173c5d;color:#fff}
.experience-card>img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.22,1,.36,1)}
.experience-card::after{content:'';position:absolute;z-index:0;inset:0;background:linear-gradient(180deg,rgba(9,32,50,.03) 12%,rgba(9,32,50,.48) 49%,rgba(9,32,50,.94) 100%);pointer-events:none}
.experience-copy{position:absolute;z-index:1;inset:auto 1.7rem 1.45rem;pointer-events:none}
.experience-time{margin:0 0 .4rem;font-size:.76rem;color:#e2effb}
.experience-copy h3{margin:0;color:#fff;font-size:clamp(1.35rem,2.1vw,2rem);line-height:1.4}
.experience-summary{margin:.45rem 0 0;font-size:.88rem;color:#f1f8ff;font-weight:500}
.experience-reveal{max-height:0;opacity:0;overflow:hidden;transition:max-height .35s cubic-bezier(.22,1,.36,1),opacity .25s ease}
.experience-reveal p{margin:.65rem 0 .4rem;font-size:.86rem;line-height:1.75;color:#f2f8ff}
.experience-reveal span{font-size:.74rem;color:#dceeff;text-decoration:underline;text-underline-offset:.25em}
.experience-card:hover .experience-reveal,.experience-card:focus-within .experience-reveal{max-height:165px;opacity:1}
.experience-card:hover>img,.experience-card:focus-within>img{transform:scale(1.035)}
.experience-open{position:absolute;z-index:2;inset:0;width:100%;border:0;background:transparent;cursor:zoom-in;border-radius:14px}
.experience-open:focus-visible{outline:3px solid #fff;outline-offset:-6px}
.experience-notes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-top:1.4rem}
.experience-notes article{border-top:1px solid #b9d7ec;padding-top:1rem}
.experience-notes h3{font-size:1rem;line-height:1.6;margin:0 0 .3rem}
.experience-notes span{font-size:.75rem;color:#486c87}.experience-notes p{font-size:.84rem;line-height:1.8;color:#4c6d86;margin:.4rem 0 0}
.experience-notes .evidence-link{margin-top:.6rem;font-size:.78rem}
.practice-projects{margin-top:2.4rem}.support-notes{grid-template-columns:repeat(2,minmax(0,1fr))}
.project-feature{display:grid;grid-template-columns:240px minmax(0,1fr);margin-top:0;min-height:0}
.project-feature figure{position:relative;margin:0;min-height:0;max-height:370px;padding:.8rem}
.project-feature figure img{width:100%;height:100%;object-fit:contain;padding:0}
.project-feature figcaption{position:absolute;bottom:1rem;left:1rem;font-size:.68rem;padding:.2rem .4rem}
.project-feature-copy{padding:1.5rem 1.8rem}
.project-feature-copy .eyebrow{display:none}.project-feature-copy h3{font-size:1.55rem;line-height:1.5;margin:0 0 .6rem}
.project-feature-copy>p{font-size:.85rem;margin:0;line-height:1.8}
.project-metrics{display:flex;gap:2rem;margin:.75rem 0 0;padding:.6rem 0}
.project-metrics span{display:flex;align-items:baseline;gap:.5rem;font-size:.75rem}.project-metrics strong{font-size:1.1rem;margin:0}
.project-document-links{margin-top:.65rem;gap:.5rem}.project-document-links a{min-height:34px;font-size:.74rem;padding:.3rem .6rem}
.project-feature .project-evidence{margin-top:.6rem;font-size:.78rem}

.research-summary{display:flex;align-items:center;gap:2rem;border-block:1px solid #c9deee;padding:1rem 0;margin-bottom:1.5rem}
.research-summary p{display:flex;gap:.65rem;align-items:baseline;margin:0;font-size:.88rem;color:#456c89}
.research-summary strong{font:600 2.5rem/1 var(--display);color:#1875b6}.research-summary strong span{font:500 .85rem var(--body);margin-left:.25rem}
.research-summary>span{margin-left:auto;color:#56758c;font-size:.82rem}
.research-layout{display:grid;grid-template-columns:minmax(250px,.6fr) minmax(0,1.4fr);gap:2rem;align-items:center}
.research-photo{margin:0;position:relative;min-height:0;height:auto;background:transparent}
.research-photo img{width:100%;height:230px;object-fit:cover;border-radius:12px}
.research-photo figcaption{position:static;color:#506f87;background:transparent;padding:.45rem 0;font-size:.74rem}
.research-entry{padding:.9rem 0;border-bottom:1px solid #d7e6f2}.research-entry:first-child{padding-top:0}
.research-entry>span{font-size:.74rem}.research-entry h3{font-size:1.02rem;line-height:1.6;margin:.3rem 0}
.research-entry p{font-size:.82rem;margin:0;color:#506f87}
.research-continuation{margin-top:1.7rem;border-top:1px solid #d1e4f1;color:#446c8a;font-size:.85rem}
.research-continuation summary,.video-drawer summary{padding:.9rem 0;cursor:pointer;font-weight:600}
.research-slot-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}
.research-slot{min-height:0;padding:1rem}.research-slot::after{display:none}
.research-slot h4{margin:.5rem 0;font-size:1rem}.research-slot p{font-size:.78rem}.research-slot small{padding-top:.5rem}
.map-shell{min-height:0}.map-stage{padding:1rem 1.2rem .8rem}
.field-evidence{display:block;margin-top:1.8rem;padding-top:0;border:0}
.field-evidence .collection-heading{margin-top:0}.field-evidence .collection-card{background:transparent}
.field-evidence .collection-cover img{height:100%;object-fit:contain}
.field-evidence .collection-grid{align-items:start}
.video-drawer{margin-top:1.5rem;border-block:1px solid #c7dfef;color:#225e8b}
.video-drawer summary span{margin-left:.6rem;font-size:.75rem;font-weight:400}
.video-drawer video{display:block;width:min(100%,960px);max-height:70vh;margin:.5rem auto 1.5rem;background:#142e43;border-radius:10px}
.honor-group{padding:1.7rem 0;gap:2rem}.honor-list li{padding:.55rem 0}
.honors-directory{padding:.6rem 0 1rem}.honors .section-heading h2{font-size:2.3rem}
.contact.section-space{padding-block:3.5rem}.contact h2{font-size:clamp(1.7rem,3vw,3rem)}
.contact-orbit{display:none}.contact-actions{margin-top:1.3rem}.contact-details{margin-top:1.2rem}
.evidence-dialog.evidence-collection{width:min(1200px,94vw);height:min(900px,92dvh)}
.evidence-dialog.evidence-expanded{width:100vw;height:100dvh;max-height:100dvh}

@media(max-width:1100px){
 .profile-overview{grid-template-columns:1fr;gap:1.6rem}
 .capability-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
 .academic-layout{grid-template-columns:repeat(3,minmax(0,1fr))}.course-table-panel{grid-column:1/-1}
 .rank-card{min-height:150px}.rank-card .rank-value{font-size:2.8rem}
 .tool-card{grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr)}
 .achievement-ribbon{flex-wrap:wrap}.narrative-heading{gap:1.5rem}
 .research-layout{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr)}
}
@media(max-width:800px){
 .teaching-achievements{gap:1.25rem;grid-template-columns:1fr}.teaching-record{padding:1.2rem 1.4rem}
 .narrative-heading{grid-template-columns:1fr;gap:.85rem}
 .section-heading.narrative-heading h2{font-size:2rem}.narrative-heading p{max-width:none;font-size:.9rem}
 .collection-heading{display:block}.collection-heading p{margin-top:.5rem}
 .collection-grid.three-columns{grid-template-columns:repeat(2,minmax(0,1fr))}
 .collection-grid.three-columns>.collection-card:last-child:nth-child(odd){grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:center}
 .experience-card{height:330px}.experience-copy{inset:auto 1.1rem 1.1rem}
 .experience-notes{grid-template-columns:1fr}.support-notes{grid-template-columns:1fr 1fr}
 .project-feature{grid-template-columns:180px minmax(0,1fr)}.project-feature-copy{padding:1.1rem}
 .project-feature-copy h3{font-size:1.2rem}.project-metrics{flex-wrap:wrap;gap:.8rem}
 .research-summary>span{display:none}.research-layout{grid-template-columns:1fr}
 .research-photo{max-width:440px}.research-photo img{height:220px}
 .research-slot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
 .teaching-awards dl>div{display:block}.teaching-awards dd{text-align:left;margin-top:.3rem}.teaching-subnav{gap:1.3rem}.teaching-subnav a{font-size:.86rem}
 .hero-visual{min-height:380px}.hero-portrait{height:290px;margin-bottom:4.5rem}
 .hero-copy{padding:2rem 1.25rem}.hero h1{font-size:2.5rem}
 .section-space{padding-block:2.7rem}.profile-intro{display:block}.profile-intro>p{margin-top:.65rem}
 .profile-education>h3 span{display:block;margin:.2rem 0 0}.education-grid{grid-template-columns:1fr;gap:.55rem}
 .education-card{padding:.8rem 1rem;display:grid;grid-template-columns:1fr auto;column-gap:.5rem}
 .education-card>span{grid-column:2;grid-row:1/3;align-self:start}.education-card time{grid-column:1;grid-row:1}
 .education-card h4{grid-column:1;grid-row:2;margin:.2rem 0;font-size:1.2rem}
 .education-card p,.education-card small{grid-column:1/-1}
 .capability-list{grid-template-columns:1fr 1fr;gap:1.25rem 1rem}.capability-list strong{font-size:1.65rem}
 .capability-list p{font-size:.82rem}
 .compact-proofs{grid-template-columns:1fr 1fr;margin-top:1.3rem}
 .compact-proofs article,.compact-proofs article+article{padding:.9rem .75rem}
 .compact-proofs article:nth-child(3){border-left:0;border-top:1px solid #d6e7f3}.compact-proofs article:nth-child(4){border-top:1px solid #d6e7f3}
 .compact-proofs strong,.compact-proofs article:first-child strong{font-size:1.4rem}.compact-proofs span{font-size:.8rem}
 .achievement-ribbon{padding:.85rem;font-size:.8rem;gap:.6rem}.achievement-ribbon strong{font-size:.9rem}
 .academic-layout{grid-template-columns:1fr}.rank-card{min-height:0;padding:.8rem 1rem}
 .rank-card .rank-value{font-size:2.4rem}.academic-heading p{margin-top:.3rem}
 .course-tables{grid-template-columns:1fr;gap:1rem}.course-tables table{font-size:.85rem}
 .course-disclosure summary::after{content:'展开';float:right;font-size:.75rem}.course-disclosure[open] summary::after{content:'收起'}
 .work-path{grid-template-columns:1fr;gap:1.1rem;margin-top:1.2rem}.work-path a{padding-top:.75rem}
 .work-path strong{font-size:1.35rem}.work-path p{margin:.3rem 0;font-size:.88rem}
 .collection-grid,.collection-grid.three-columns{grid-template-columns:1fr;gap:1.4rem}
 .collection-grid.three-columns>.collection-card:last-child:nth-child(odd){display:block;grid-column:auto}
 .collection-copy h3{font-size:1.2rem}.collection-copy p{font-size:.86rem}
 .tool-card{grid-template-columns:1fr}.tool-copy{padding:1.1rem 1.2rem}.tool-copy h3{font-size:1.35rem}
 .experience-grid{grid-template-columns:1fr;gap:1rem}.experience-card{height:360px}
 .experience-copy h3{font-size:1.6rem}.experience-reveal{max-height:200px;opacity:1}
 .experience-reveal p{font-size:.84rem}.experience-notes{gap:1rem}
 .support-notes{grid-template-columns:1fr}.project-feature{grid-template-columns:1fr}
 .project-feature figure{height:180px;max-height:180px;padding:.65rem}.project-feature figcaption{left:auto;right:.75rem;font-size:.66rem;bottom:.75rem}
 .project-feature-copy{padding:1.2rem}.project-feature-copy h3{font-size:1.3rem}
 .research-summary{gap:1.5rem;padding:.8rem 0}.research-summary strong{font-size:2rem}
 .research-summary p{display:block;font-size:.8rem}.research-summary strong{display:block;margin-bottom:.3rem}
 .research-photo{max-width:none}.research-slot-grid{grid-template-columns:1fr}
 .map-stage{padding:1rem .6rem .7rem}
 .honor-group{padding:1.5rem 0}.honor-list li{padding:.65rem 0}
 .evidence-dialog.evidence-collection{height:90dvh}
}
@media(hover:none){.experience-reveal{max-height:200px;opacity:1}.experience-card{min-height:360px}}
@media(prefers-reduced-motion:reduce){.experience-card>img,.experience-reveal,.collection-cover img{transition:none}}
