/* Shunshun Zhang — an editorial academic portfolio. All colors live in :root for easy editing. */
:root{--paper:#fbfaf8;--white:#fff;--ink:#29292b;--muted:#66686c;--subtle:#898b90;--line:#e9e5e3;--accent:#963f53;--accent-dark:#762d40;--accent-light:#f9edf0;--serif:Georgia,"Times New Roman",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}img{max-width:100%}.wrap{width:min(calc(100% - 88px),1170px);margin-inline:auto}.skip{position:fixed;top:-120px;left:12px;padding:12px;background:#fff;z-index:100}.skip:focus{top:12px}.site-header{height:78px;position:sticky;top:0;z-index:30;background:#fbfaf8f3;backdrop-filter:blur(18px);border-bottom:1px solid #e8e4e0}.nav{height:100%;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:inline-flex;align-items:center;gap:14px;font-size:14px;font-weight:670;letter-spacing:-.025em}.brand-symbol{font-family:var(--serif);font-size:24px;font-weight:bold;color:var(--accent);letter-spacing:-.095em}.nav-links{display:flex;align-items:center;gap:32px}.nav-links>a{font-size:12px;font-weight:610;color:#595b61;transition:color .2s}.nav-links>a:hover{color:var(--accent)}.nav-links .nav-pill{background:var(--accent);color:#fff;padding:11px 18px;border-radius:100px}.nav-links .nav-pill:hover{background:var(--accent-dark);color:#fff}.nav-pill span{margin-left:7px}.menu-toggle{display:none}
.overview{padding:74px 0 97px;background:radial-gradient(circle at 80% 14%,#f9edef 0,transparent 31%),var(--paper)}.hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);align-items:center;gap:76px;min-height:505px}.eyebrow,.section-kicker{font-size:10px;font-weight:730;letter-spacing:.19em;color:var(--accent)}.eyebrow span{margin:0 7px;color:#be9da6}.hero h1{font-size:clamp(47px,5.35vw,77px);font-weight:680;letter-spacing:-.072em;line-height:1.075;margin:27px 0 28px}.hero h1 em{font-family:var(--serif);font-weight:400;color:var(--accent);letter-spacing:-.06em}.hero-description{font-size:15.5px;color:#5e5f64;line-height:1.88;max-width:650px;margin:0 0 27px}.hero-description strong{color:var(--ink);font-weight:690}.hero-detail{font-size:13px;line-height:1.9;color:#777077;max-width:600px;margin:-11px 0 26px}.hero-actions{display:flex;align-items:center;gap:11px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:14px 20px;border-radius:9px;font-size:12px;font-weight:690;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-main{color:#fff;background:var(--accent)}.button-main:hover{background:var(--accent-dark)}.button-quiet{background:#fff;border:1px solid #e6dfdf;color:#4c4749}.profile-links{display:flex;flex-wrap:wrap;gap:16px;margin:31px 0 18px}.profile-links a{font-size:12px;font-weight:700;color:#7b3c4d;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#dfc5cd}.profile-links a:hover{text-decoration-color:var(--accent)}.hero-meta{font-size:11px;color:#8b8989;margin:0}.meta-separator{margin:0 9px;color:#c4babb}
.portrait-panel{position:relative;isolation:isolate;aspect-ratio:.92;min-height:420px;border-radius:24px;background:linear-gradient(147deg,#e3d5d6,#f4edeb 45%,#dbc3c5);box-shadow:0 19px 54px #44222913;overflow:hidden}.portrait-art{position:absolute;inset:0;overflow:hidden}.portrait-art:before{content:"";position:absolute;width:69%;aspect-ratio:1;left:-16%;top:-23%;border-radius:50%;background:#bd929a40;filter:blur(2px)}.portrait-art:after{content:"";position:absolute;width:62%;aspect-ratio:1;right:-26%;bottom:-32%;border-radius:50%;background:#b56a7b46}.art-ring{position:absolute;left:50%;top:48%;width:63%;aspect-ratio:1;border:1px solid #fff9;border-radius:50%;transform:translate(-50%,-50%) rotate(-30deg)}.ring-two{width:90%;border-color:#f7e5e6bd;transform:translate(-50%,-50%) rotate(35deg) scaleY(.71)}.art-letter{position:absolute;top:44%;left:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:clamp(90px,13vw,175px);font-weight:bold;letter-spacing:-.14em;white-space:nowrap;color:#813d50ab}.art-letter span{color:#fffaf0ab}.art-grid{position:absolute;inset:0;background-image:linear-gradient(#fff4 1px,transparent 1px),linear-gradient(90deg,#fff4 1px,transparent 1px);background-size:55px 55px;mask-image:linear-gradient(120deg,transparent 25%,#000 100%);opacity:.5}.portrait-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 29%}.portrait-photo[hidden]{display:none!important}.portrait-caption{position:absolute;left:19px;right:19px;bottom:20px;display:flex;justify-content:space-between;gap:10px;align-items:center;background:#fffffff0;border:1px solid #fff;border-radius:9px;padding:15px 17px;box-shadow:0 6px 17px #2e1b2620;color:#824056;font-size:10px;font-weight:800;letter-spacing:.105em}.caption-arrow{margin:0 7px;color:#be96a2}.portrait-caption>span:last-child{color:#aaa2a3;font-size:9px;white-space:nowrap}
.about-inline{border-top:1px solid #e4dddc;padding-top:54px;margin-top:64px;display:grid;grid-template-columns:.62fr 1fr;gap:80px}.about-label h2,.interests h2,.section-heading h2{font-size:clamp(34px,3.4vw,49px);line-height:1.2;letter-spacing:-.06em;font-weight:670;margin:20px 0 0}.about-body{max-width:675px}.about-body p{color:#6b6769;font-size:14px;line-height:1.95;margin:0 0 16px}.about-body .about-lead{font-size:20px;line-height:1.62;letter-spacing:-.023em;color:#383337;margin-bottom:18px}.about-body strong{color:#3a3234}.interests{padding-top:78px}.interests-header{display:flex;align-items:end;justify-content:space-between;gap:26px;margin-bottom:27px}.interests-header>p{font-size:12px;line-height:1.8;max-width:260px;color:#858082;margin-bottom:0}.interests-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.interest-card{border:1px solid #e8e2e1;background:#fff;border-radius:13px;padding:27px 27px 23px;min-height:210px;display:flex;flex-direction:column}.interest-num{color:#bc9da7;font-size:10px;font-weight:720}.interest-card h3{font-size:19px;letter-spacing:-.04em;margin:22px 0 9px}.interest-card p{color:#797578;font-size:12px;line-height:1.78;margin:0 0 18px}.interest-tag{margin-top:auto;color:#92566a;font-size:9px;font-weight:790;letter-spacing:.105em}
.section{padding:102px 0}.research{background:#fff;border-top:1px solid var(--line)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:39px}.section-heading h2{margin:17px 0 0;font-size:clamp(43px,4.7vw,62px)}.section-description{font-size:13px;color:#818084;line-height:1.8;max-width:370px;margin:0}.section-description a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.publication-list{border-top:1px solid var(--line)}.publication{display:grid;grid-template-columns:59px 1fr;gap:28px;padding:30px 0 35px;border-bottom:1px solid var(--line)}.paper-index{font-family:var(--serif);color:#b98d9b;font-size:23px;line-height:1.4}.paper-meta{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin:13px 0 10px}.publication-type{display:inline-flex;align-items:center;border-radius:7px;padding:6px 11px;font-size:12px;font-weight:755;letter-spacing:.015em;line-height:1.4;border:1px solid #e6d9dd;background:#f9f2f3;color:#824255}.publication-type.status-published{background:var(--accent);border-color:var(--accent);color:#fff}.publication-type.status-rr{background:#f6e8ed;border-color:#e0bec9;color:#803149}.publication-type.status-working{background:#f4eef0;border-color:#e8dde1;color:#845464}.publication-type.status-research{background:#f6f5f4;border-color:#ebe9e7;color:#777276}.publication-type[hidden],.publication-venue[hidden]{display:none!important}.publication-venue{font-size:12px;font-weight:650;color:#61555b}.paper-content h3{max-width:900px;font-size:clamp(21px,2.3vw,27px);line-height:1.4;letter-spacing:-.036em;font-weight:660;margin:0}.paper-authors{font-size:12.5px;color:#66616a;margin:0 0 12px}.paper-summary{color:#868083;font-size:13px;line-height:1.82;max-width:850px;margin:0 0 16px}.paper-links{display:flex;gap:23px;flex-wrap:wrap}.paper-link{font-size:12px;color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#dcb7c0}.paper-link.secondary-link{color:#6f6d70;text-decoration-color:#d9d6d5}.paper-links:empty{display:none}.research-note{font-size:11px;color:#a39da0;margin-top:23px}
.teaching{background:var(--paper);border-top:1px solid var(--line)}.teaching-grid{display:grid;grid-template-columns:.93fr 1.07fr;gap:18px;align-items:start}.teaching-feature,.teaching-modules{border-radius:17px;border:1px solid #ece3e2;background:#fff;padding:34px;min-height:395px}.teaching-feature{position:relative;overflow:hidden;background:linear-gradient(160deg,#853e51,#6f2d3f);color:#fff}.teaching-feature:after{position:absolute;content:"";width:220px;height:220px;right:-98px;top:-80px;border:1px solid #ffffff4d;border-radius:50%}.feature-kicker{font-size:10px;letter-spacing:.16em;font-weight:750;color:#f4dce2;margin:0 0 50px}.teaching-feature h3{font-size:clamp(26px,2.8vw,37px);font-weight:570;letter-spacing:-.052em;line-height:1.22;margin:0 0 9px}.teaching-coauthor{color:#e4c4cb;font-size:12px;margin:0 0 27px}.teaching-description{font-size:13px;color:#f3e5e9;line-height:1.92;max-width:490px}.feature-line{display:block;margin-top:23px;height:1px;width:82px;background:#dfb0bd}.modules-top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:22px}.modules-top h3{font-size:22px;letter-spacing:-.045em;margin:0}.modules-top>span{font-size:10px;color:#9b9093}.teaching-modules ul{list-style:none;margin:0;padding:0}.teaching-modules li{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:13px 0;border-bottom:1px solid #f0ebea;font-size:12px;font-weight:625;line-height:1.4}.teaching-modules li span{color:#988d91;font-size:10px;font-weight:500;white-space:nowrap}.more-modules summary{list-style:none;font-size:12px;color:var(--accent);font-weight:720;cursor:pointer;padding-top:20px}.more-modules summary::-webkit-details-marker{display:none}.more-modules summary span{padding-left:7px}.more-modules[open] summary span{display:inline-block;transform:rotate(45deg)}
.contact-section{background:#f4e9ec;padding:93px 0 104px;border-top:1px solid #eddee2}.contact-inner{text-align:center;max-width:840px}.contact-inner h2{font-size:clamp(48px,6vw,76px);letter-spacing:-.07em;line-height:1.1;margin:19px 0 18px}.contact-copy{font-size:14px;color:#7b6a72;line-height:1.75;margin:0 auto 25px;max-width:575px}.contact-email{display:inline-flex;align-items:center;gap:18px;border-bottom:1px solid #b97585;color:#85384a;font-size:clamp(14px,2vw,19px);padding-bottom:7px;font-weight:680}.footer{background:#fff}.footer-inner{min-height:87px;display:flex;align-items:center;justify-content:space-between;gap:25px}.footer-inner p,.footer-inner a{font-size:11px;color:#8e8a8c}.footer-inner>div{display:flex;gap:26px;flex-wrap:wrap}.footer-inner a:hover{color:var(--accent)}
@media(max-width:980px){.wrap{width:min(calc(100% - 55px),1170px)}.hero{gap:35px;grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr)}.portrait-panel{min-height:330px}.about-inline{gap:34px}.teaching-feature,.teaching-modules{padding:27px}.teaching-modules li{display:block}.teaching-modules li span{display:block;margin-top:5px}.art-letter{font-size:126px}}
@media(max-width:720px){.wrap{width:calc(100% - 38px)}.site-header{height:68px}.nav-links{display:none;position:absolute;left:0;right:0;top:68px;padding:20px 23px 24px;flex-direction:column;align-items:flex-start;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 15px 30px #35212812;gap:23px}.nav-links.open{display:flex}.nav-links>a{font-size:14px}.menu-toggle{width:40px;height:40px;display:flex;flex-direction:column;justify-content:center;gap:6px;background:transparent;border:0;cursor:pointer}.menu-toggle span{display:block;height:2px;width:22px;background:var(--ink)}.overview{padding:41px 0 70px}.hero{grid-template-columns:1fr;gap:35px}.hero h1{font-size:clamp(45px,10vw,66px)}.hero-description{font-size:15px}.portrait-panel{width:100%;max-width:465px;min-height:auto;aspect-ratio:1.16;margin:0 auto}.about-inline{margin-top:52px;padding-top:38px;grid-template-columns:1fr;gap:23px}.about-label h2{margin:13px 0 0}.interests{padding-top:62px}.interests-header{display:block}.interests-header>p{margin-top:14px}.interests-grid,.teaching-grid{grid-template-columns:1fr}.interest-card{min-height:0}.section{padding:72px 0}.section-heading{display:block}.section-description{margin-top:20px}.publication{grid-template-columns:35px 1fr;gap:12px;padding:28px 0}.paper-index{font-size:18px}.publication-type{font-size:9px}.paper-content h3{font-size:21px}.teaching-feature,.teaching-modules{min-height:auto}.teaching-modules li{display:flex}.teaching-modules li span{display:block;flex-shrink:0}.contact-section{padding:76px 0}.footer-inner{flex-direction:column;align-items:start;justify-content:center;padding:26px 0;gap:12px}.footer-inner>div{gap:14px}}
@media(max-width:400px){.brand{font-size:13px}.hero h1{font-size:43px}.portrait-caption{left:11px;right:11px;bottom:12px;padding:12px 10px;font-size:9px}.portrait-caption>span:last-child{font-size:8px}.teaching-modules li{display:block}.teaching-modules li span{margin-top:5px}.profile-links{gap:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* v4 — quiet academic editorial composition. */
.nav-links>a{font-weight:560}.nav-links>a[href="#contact"]{font-weight:560;color:#595b61}.nav-links>a[href="#contact"]:hover{color:var(--accent)}
.overview{background:radial-gradient(circle at 83% 5%,#f9f0ef 0,transparent 34%),var(--paper);padding:82px 0 104px}
.hero{grid-template-columns:minmax(0,1.22fr) minmax(315px,.78fr);gap:66px;min-height:485px;align-items:center}
.hero h1{font-size:clamp(56px,5.6vw,80px);margin:26px 0 30px}.hero-detail{margin:-12px 0 27px}
.profile-panel{align-self:center;border:1px solid #e8e0dd;border-radius:20px;background:#fff;min-height:417px;padding:27px;box-shadow:0 18px 40px #3a20270a;display:flex;flex-direction:column}
.profile-panel-top{display:grid;grid-template-columns:132px minmax(0,1fr);gap:20px;align-items:start}
.profile-panel .portrait-photo{display:block;position:static;width:132px;height:155px;object-fit:cover;object-position:center 40%;border-radius:12px;box-shadow:0 6px 22px #45312613}
.profile-identity{padding-top:5px}.profile-overline{font-size:10px;font-weight:750;letter-spacing:.14em;color:#a26c7d;margin:0 0 18px}
.profile-name{font-size:clamp(23px,2.2vw,29px);line-height:1.18;font-weight:650;letter-spacing:-.055em;margin:0 0 10px}
.profile-role{font-size:12px;line-height:1.6;color:#72666a;margin:0 0 10px}.profile-location{font-size:11px;color:#9a9193;margin:0}
.profile-rule{height:1px;background:#eee7e5;margin:30px 0 27px}
.profile-featured{margin-top:auto}.profile-featured .profile-overline{margin-bottom:12px}
.profile-paper{display:flex;align-items:baseline;gap:10px;color:#353035;font-size:23px;font-weight:660;letter-spacing:-.045em;line-height:1.35;transition:color .18s}.profile-paper span{color:var(--accent);font-size:15px}.profile-paper:hover{color:var(--accent)}
.profile-paper-sub{color:#837b7d;line-height:1.73;font-size:12px;margin:8px 0 17px}.profile-featured-status{font-size:11px;font-weight:690;color:#854d5e}.profile-status-dot{width:7px;height:7px;display:inline-block;border-radius:50%;background:#ba8292;margin-right:5px;vertical-align:1px}
.publication{scroll-margin-top:115px}.paper-media{margin-top:17px;display:flex;flex-wrap:wrap;gap:12px 20px;align-items:baseline}.media-label{font-size:11px;font-weight:735;color:#75666c;white-space:nowrap}.media-links{display:flex;flex-direction:column;gap:7px}.media-links a{font-size:12px;line-height:1.6;color:var(--accent);text-decoration:underline;text-decoration-color:#dec0c7;text-underline-offset:3px}.media-links a:hover{text-decoration-color:var(--accent)}
.paper-details{margin-top:17px;max-width:860px;border-top:1px solid #f2edeb;padding-top:14px}.paper-details summary{display:inline-flex;align-items:center;gap:13px;list-style:none;cursor:pointer;font-size:12px;color:#76636a;font-weight:650;min-height:24px}.paper-details summary::-webkit-details-marker{display:none}.paper-details summary span{font-size:16px;color:#a27382;font-weight:400;display:inline-block;transition:transform .2s}.paper-details[open] summary span{transform:rotate(45deg)}.paper-details summary:hover{color:var(--accent)}.paper-details ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 28px;list-style:none;margin:17px 0 4px;padding:0}.paper-details li{font-size:11.5px;line-height:1.58;color:#787074;position:relative;padding-left:13px}.paper-details li:before{content:"·";position:absolute;left:0;font-weight:800;color:#b78897}
.teaching-feature{background:linear-gradient(140deg,#fbf3f2,#f5e8e9);border:1px solid #ebdbdf;color:#363037}.teaching-feature:after{border-color:#dec2c8}.feature-kicker{color:#9c6273;margin-bottom:50px}.teaching-feature h3{color:#4d3440}.teaching-coauthor{color:#916e79}.teaching-description{color:#6e656a}.feature-line{background:#d3b2bd}
@media(max-width:980px){.hero{gap:32px;grid-template-columns:minmax(0,1.05fr) minmax(310px,.95fr)}.profile-panel{padding:22px}.profile-panel-top{grid-template-columns:116px minmax(0,1fr);gap:15px}.profile-panel .portrait-photo{width:116px;height:143px}.profile-name{font-size:23px}}
@media(max-width:720px){.overview{padding:45px 0 76px}.hero{grid-template-columns:1fr;gap:37px;min-height:0}.hero h1{font-size:clamp(53px,10vw,72px)}.profile-panel{width:100%;max-width:500px;margin:0 auto;min-height:0;padding:23px}.profile-panel-top{grid-template-columns:112px minmax(0,1fr)}.profile-panel .portrait-photo{width:112px;height:132px}.profile-rule{margin:22px 0}.profile-name{font-size:24px}.paper-details ul{grid-template-columns:1fr}.paper-media{display:block}.media-label{display:block;margin-bottom:9px}.media-links{gap:8px}}
@media(max-width:400px){.profile-panel{padding:17px}.profile-panel-top{grid-template-columns:97px minmax(0,1fr);gap:13px}.profile-panel .portrait-photo{width:97px;height:123px}.profile-name{font-size:22px}.profile-overline{font-size:9px}.hero h1{font-size:47px}}

/* v5 — portrait-led About: one concise introduction, no duplicate identity or featured-paper card. */
.brand-simple{gap:0;font-size:14px;font-weight:665;letter-spacing:-.026em}
.overview{padding:90px 0 100px;background:radial-gradient(circle at 8% 25%,#f8f0ef 0,transparent 28%),var(--paper)}
.hero{display:grid;grid-template-columns:190px minmax(0,1fr);gap:70px;align-items:center;min-height:0}
.hero-copy{max-width:780px;min-width:0}
.hero-portrait{margin:0;align-self:start;margin-top:49px;width:190px;height:248px;border:1px solid #eadfdc;padding:5px;border-radius:13px;background:#fff;box-shadow:0 12px 32px #44232d0b;overflow:hidden}
.hero-portrait .portrait-photo{display:block;position:static;inset:auto;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 40%;border-radius:8px;box-shadow:none}
.hero-heading-block{margin:0}
.hero h1{margin:22px 0 27px;font-size:clamp(54px,5.4vw,77px);letter-spacing:-.071em}
.hero-description{max-width:725px;margin-bottom:26px}
.hero-detail{max-width:725px;margin:-11px 0 27px}
@media(max-width:980px){
 .hero{grid-template-columns:164px minmax(0,1fr);gap:42px}
 .hero-portrait{width:164px;height:220px;margin-top:43px}
 .hero h1{font-size:clamp(50px,6vw,69px)}
}
@media(max-width:720px){
 .overview{padding:40px 0 69px}
 .hero{grid-template-columns:120px minmax(0,1fr);column-gap:19px;row-gap:18px;align-items:center}
 .hero-portrait{grid-column:1;grid-row:1;width:120px;height:153px;margin:0;align-self:center;padding:4px;border-radius:10px}
 .hero-copy{display:contents}
 .hero-heading-block{grid-column:2;grid-row:1;min-width:0}
 .hero-body{grid-column:1/-1;grid-row:2}
 .hero .eyebrow{font-size:9px;letter-spacing:.105em;line-height:1.8;margin:0}
 .eyebrow span{margin:0 4px}
 .hero h1{font-size:clamp(34px,7.8vw,50px);line-height:1.14;letter-spacing:-.063em;margin:12px 0 0}
 .hero-description{font-size:15px;line-height:1.82;margin-bottom:23px}
 .hero-detail{margin:-10px 0 26px}
 .profile-links{margin-top:26px}
}
@media(max-width:400px){
 .hero{grid-template-columns:105px minmax(0,1fr);column-gap:15px;row-gap:17px}
 .hero-portrait{width:105px;height:136px}
 .hero h1{font-size:clamp(32px,7.6vw,42px)}
 .hero .eyebrow{font-size:8px;letter-spacing:.045em}
 .eyebrow span{margin:0 3px}
}

/* v6 — compact portrait at top-left, editorial text flowing around it. */
.overview{padding:68px 0 93px}
.hero{display:block;min-height:0}
.hero-copy{display:flow-root;max-width:1080px;min-width:0}
.hero-portrait,.portrait-float{float:left;display:block;position:relative;width:150px;height:158px;margin:0 28px 16px 0;padding:4px;align-self:auto;border:1px solid #eadfdc;border-radius:11px;box-shadow:0 8px 26px #44232d0b;background:#fff;overflow:hidden}
.hero-portrait .portrait-photo{display:block;width:100%;height:100%;position:static;max-width:none;object-fit:cover;object-position:center 38%;border-radius:7px;box-shadow:none}
.hero-heading-block,.hero-body{display:block;grid-column:auto;grid-row:auto}
.hero-heading-block{margin:0}
.hero .eyebrow{margin:0;font-size:11px;line-height:1.6;letter-spacing:.11em}
.hero h1{font-size:clamp(46px,4.9vw,64px);line-height:1.045;letter-spacing:-.067em;margin:12px 0 17px;max-width:none}
.hero h1 em{white-space:normal}
.hero-description{font-size:15.5px;line-height:1.85;max-width:1010px;margin:0 0 19px}
.hero-detail{max-width:1010px;margin:0 0 27px}
.hero-actions{clear:both}
@media(max-width:980px){
 .overview{padding:60px 0 83px}
 .hero{display:block}
 .hero-copy{display:flow-root;max-width:100%}
 .hero-portrait,.portrait-float{width:142px;height:151px;margin:0 23px 15px 0}
 .hero h1{font-size:clamp(44px,5.45vw,59px);margin:12px 0 16px}
}
@media(max-width:720px){
 .overview{padding:37px 0 68px}
 .hero{display:block;min-height:0}
 .hero-copy{display:flow-root}
 .hero-portrait,.portrait-float{float:left;grid-column:auto;grid-row:auto;width:108px;height:118px;margin:0 17px 13px 0;padding:3px;border-radius:9px}
 .hero-portrait .portrait-photo{border-radius:6px}
 .hero-heading-block,.hero-body{display:block;grid-column:auto;grid-row:auto}
 .hero .eyebrow{font-size:9px;letter-spacing:.065em;line-height:1.75}
 .eyebrow span{margin:0 3px}
 .hero h1{font-size:clamp(32px,7.9vw,43px);line-height:1.08;letter-spacing:-.066em;margin:9px 0 15px;max-width:none}
 .hero-description{font-size:15px;line-height:1.82;margin:0 0 16px;max-width:none}
 .hero-detail{margin:0 0 24px;max-width:none}
 .hero-actions{clear:both}
 .profile-links{margin-top:26px}
}
@media(max-width:400px){
 .hero-portrait,.portrait-float{width:96px;height:107px;margin-right:13px;margin-bottom:12px}
 .hero .eyebrow{font-size:8px;letter-spacing:0}
 .hero h1{font-size:clamp(29px,7.7vw,34px);margin:7px 0 12px}
}

/* v7 — quieter academic editorial layout. A centered reading column and a small portrait. */
.overview{
  padding:112px 0 116px;
  background:radial-gradient(ellipse at 55% 9%,#f9f2f1 0,transparent 50%),var(--paper);
}
.overview>.wrap{max-width:1080px}
.hero{display:block;max-width:970px;min-height:0;margin-inline:auto}
.hero-copy{display:flow-root;max-width:970px;min-width:0}
.hero-portrait,.portrait-float{
  float:left;display:block;position:relative;
  width:128px;height:128px;margin:5px 40px 18px 0;padding:4px;
  background:#fff;border:1px solid #e9ddda;border-radius:12px;
  box-shadow:0 8px 28px #39212a0b;overflow:hidden;
}
.hero-portrait .portrait-photo{
  display:block;position:static;width:100%;height:100%;
  object-fit:cover;object-position:center 38%;border-radius:8px;
}
.hero-heading-block,.hero-body{display:block;grid-column:auto;grid-row:auto}
/* Put the original biography on a full-width line below the portrait-title row, avoiding orphaned float lines. */
.hero-body{clear:both}
.hero-heading-block{margin:0}
.hero .eyebrow{margin:0;font-size:11px;line-height:1.7;letter-spacing:.13em}
.hero h1{
  font-size:clamp(55px,5.2vw,70px);line-height:1.09;letter-spacing:-.067em;
  max-width:none;margin:14px 0 25px;
}
.hero-description,.hero-detail{max-width:910px;letter-spacing:-.006em}
.hero-description{font-size:16.5px;line-height:1.92;color:#47434a;margin:0 0 20px}
.hero-detail{font-size:15.6px;line-height:1.95;color:#68616a;margin:0 0 32px}
.hero-actions{clear:both;gap:13px;margin-top:35px}
.button-main{
  color:#75394b;background:#ecd5db;border:1px solid #dfbcc6;
  box-shadow:0 2px 3px #59303e04;
}
.button-main:hover{background:#e6c8d0;color:#672e41}
.profile-links{margin:28px 0 19px;gap:22px}
.publication-type.status-published{
  background:#e9ccd4;border-color:#dcb5c0;color:#73364b;
}
@media(max-width:980px){
  .overview{padding:83px 0 91px}
  .overview>.wrap{max-width:900px}
  .hero{max-width:850px}
  .hero-copy{max-width:100%}
  .hero-portrait,.portrait-float{width:122px;height:122px;margin:5px 32px 17px 0}
  .hero h1{font-size:clamp(51px,5.9vw,64px);margin:12px 0 23px}
  .hero-description{font-size:16px}
}
@media(max-width:720px){
  .overview{padding:58px 0 77px}
  .overview>.wrap{width:min(calc(100% - 46px),570px)}
  .hero,.hero-copy{display:flow-root;max-width:100%;min-height:0}
  .hero-portrait,.portrait-float{
    float:left;width:112px;height:116px;margin:3px 19px 11px 0;padding:3px;
    border-radius:10px;
  }
  .hero-portrait .portrait-photo{border-radius:7px}
  .hero-heading-block,.hero-body{display:block;min-width:0}
  .hero .eyebrow{font-size:9px;letter-spacing:.075em;line-height:1.75}
  .eyebrow span{margin:0 3px}
  .hero h1{font-size:clamp(34px,7.7vw,47px);line-height:1.12;margin:11px 0 19px}
  .hero-description{font-size:15.3px;line-height:1.9;margin:0 0 17px;max-width:none}
  .hero-detail{font-size:14.8px;line-height:1.9;margin:0 0 28px;max-width:none}
  .hero-actions{clear:both;margin-top:27px}
  .profile-links{margin:26px 0 19px}
}
@media(max-width:400px){
  .overview>.wrap{width:calc(100% - 36px)}
  .hero-portrait,.portrait-float{width:99px;height:106px;margin:3px 14px 12px 0}
  .hero h1{font-size:clamp(32px,8.1vw,36px);line-height:1.1;margin:9px 0 17px}
  .hero .eyebrow{font-size:8px;letter-spacing:.015em}
  .hero-description{font-size:15px}
}

/* v8 — slightly larger portrait, user-adjustable via hero CSS variables; more considered page margins. */
.wrap{width:min(calc(100% - 108px),1120px)}
.overview>.wrap{max-width:1050px}
.hero{max-width:970px}
.hero-portrait,.portrait-float{
  width:var(--portrait-size,148px);
  height:var(--portrait-height,148px);
  margin:4px 39px 17px 0;
  transition:width .18s ease,height .18s ease;
}
.hero-portrait .portrait-photo{object-position:center var(--portrait-crop,38%)}
.hero-description{line-height:1.84;margin-bottom:18px}
.hero-detail{line-height:1.88;margin-bottom:29px}
@media(max-width:980px){
  .wrap{width:min(calc(100% - 68px),1120px)}
  .hero-portrait,.portrait-float{
    width:clamp(106px,calc(var(--portrait-size,148px) * .87),190px);
    height:clamp(106px,calc(var(--portrait-height,148px) * .87),220px);
    margin:4px 31px 16px 0;
  }
}
@media(max-width:720px){
  .wrap{width:calc(100% - 46px)}
  .overview>.wrap{width:min(calc(100% - 52px),570px)}
  .hero-portrait,.portrait-float{
    width:clamp(96px,calc(var(--portrait-size,148px) * .76),150px);
    height:clamp(96px,calc(var(--portrait-height,148px) * .76),185px);
    margin:3px 19px 12px 0;
  }
  .hero-description{line-height:1.85;margin-bottom:16px}
  .hero-detail{line-height:1.86}
}
@media(max-width:400px){
  .wrap{width:calc(100% - 38px)}
  .overview>.wrap{width:calc(100% - 40px)}
  .hero-portrait,.portrait-float{
    width:clamp(90px,calc(var(--portrait-size,148px) * .68),133px);
    height:clamp(90px,calc(var(--portrait-height,148px) * .68),166px);
    margin-right:14px;
  }
}
@media(prefers-reduced-motion:reduce){.hero-portrait,.portrait-float{transition:none}}
