/* Content pass, not a redesign: preserve approved artwork and light palette.
   DESIGN_VARIANCE 7 / MOTION_INTENSITY 7 in the opening, 2 in content /
   VISUAL_DENSITY 4. Native CSS; no new runtime dependencies or artwork. */
.cv-actions {display:flex;flex-wrap:wrap;align-items:center;gap:0 26px}
.cv-actions .text-link {min-height:44px;align-items:center}
.content-version .header .cv-download {min-height:44px;display:inline-flex;align-items:center;white-space:pre}
@media(max-width:767px){
 .content-version .header nav {gap:14px}
 .content-version .header .cv-format {display:none}
 .content-version .header .cv-download {min-width:28px;justify-content:center}
}
@media(max-width:380px){.content-version .header nav {gap:10px}}
/* The portrait and kaleidoscope share one circle. Only the CSS lid turns;
   the supplied photograph itself is unchanged. */
.profile-copy {opacity:1;top:20%}
@media(min-width:768px){.profile-copy {translate:3vw 0}}
.atlas-copy.copy-fragments {opacity:0}
.atlas-copy.profile-copy h1 {font-size:clamp(64px,7.5vw,108px);font-weight:500;line-height:1.05;letter-spacing:-.055em}
.atlas-copy.profile-copy h1 span {display:block;font-size:28px;line-height:1.5;letter-spacing:.12em;font-weight:450;margin-top:12px}
.profile-interests {font-size:clamp(18px,1.7vw,23px);line-height:1.5;max-width:380px;margin-top:24px}
.profile-affiliation {font-size:17px;line-height:1.6;margin-top:28px}
.profile-affiliation strong,.profile-affiliation span {display:block}
.profile-affiliation strong {font-weight:600}
.profile-copy .research-link {margin-top:28px}
.portrait-hinge {position:absolute;left:50%;top:50%;width:var(--portrait-size,min(48vw,68svh));aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none;opacity:var(--lid-opacity,1)}
.portrait-hinge::after {content:'';position:absolute;left:100%;top:50%;width:11px;height:11px;transform:translate(-50%,-50%);border:2px solid var(--ink);border-radius:50%;background:var(--paper)}
.profile-portrait {width:100%;height:100%;border:1px solid color-mix(in srgb,var(--ink) 18%,var(--paper));border-radius:50%;padding:10%;background:var(--paper);transform-origin:100% 50%;will-change:transform}
.profile-portrait img {width:100%;height:100%;object-fit:cover;object-position:center;border:4px solid color-mix(in srgb,var(--pink) 60%,var(--paper));border-radius:50%}
.profile-portrait img[hidden] {display:none}
.profile-portrait .image-notice {text-align:center;padding:30%;font-size:16px}
@media(max-width:767px){
 .profile-copy {top:96px}
 .atlas-copy.profile-copy h1 {font-size:clamp(54px,12vw,76px)}
 .atlas-copy.profile-copy h1 span {display:inline-block;font-size:21px;margin:0 0 0 10px;vertical-align:middle;letter-spacing:.06em}
 .profile-interests {font-size:18px;max-width:320px;margin-top:18px}
 .profile-affiliation {font-size:15px;margin-top:18px}
 .profile-copy .research-link {font-size:15px;margin-top:20px}
 .atlas-art {top:390px}
}
body[data-static=true] .profile-portrait {will-change:auto}
/* Keep the three story stages on a shared visual center; leave the profile alone. */
@media(min-width:768px){
 .atlas-copy:not(.profile-copy) {top:49.5%;width:38%;translate:3vw -50%}
 .atlas-copy:not(.profile-copy) h2 {font-size:clamp(52px,6.5vw,100px)}
}
@media(max-height:760px) and (min-width:768px){
 .atlas-copy:not(.profile-copy) {top:48%}
}
@media(max-width:767px){
 .atlas-copy:not(.profile-copy) {top:96px;height:290px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}
 .atlas-copy:not(.profile-copy) h2 {font-size:clamp(46px,9.8vw,65px)}
 .copy-world h2 br {display:initial}
 .copy-world h2 span::before {content:none}
 .world-links {width:100%;max-width:400px}
 .world-links a {align-items:center}
}
/* Fit the same four stages on short phones; desktop geometry stays untouched. */
@media(max-width:767px) and (max-height:779px){
 .atlas-version .header {height:56px}
 .atlas-pinned {min-height:560px;top:min(0px,calc(100svh - 560px))}
 body[data-static=true] .atlas-opening {min-height:560px}
 .profile-copy {top:70px}
 .atlas-copy.profile-copy h1 {font-size:42px}
 .atlas-copy.profile-copy h1 span {font-size:19px}
 .profile-interests {font-size:15px;line-height:1.4;margin-top:10px}
 .profile-affiliation {font-size:14px;line-height:1.4;margin-top:10px}
 .profile-copy .research-link {font-size:14px;margin-top:8px;min-height:44px;padding-bottom:0}
 .atlas-copy:not(.profile-copy) {top:66px;height:234px}
 .atlas-copy:not(.profile-copy) h2 {font-size:40px}
 .atlas-copy .eyebrow {margin-bottom:10px}
 .atlas-intro,.index-intro {font-size:14px;line-height:1.4;margin-top:10px}
 .copy-fragments .research-link {min-height:44px;margin-top:8px;padding-bottom:0}
 .world-links {margin-top:8px}
 .world-links a {min-height:44px;justify-content:center}
 .atlas-art {top:308px;bottom:128px;min-height:0}
 .atlas-controls {bottom:8px;gap:4px 10px}
 .phase-buttons button {min-height:44px;padding:10px 6px}
 .atlas-actions {gap:4px;flex-wrap:wrap}
 .atlas-actions button {min-height:32px}
 #art-help {line-height:1.25;margin-top:0}
}
.content-version .research {padding-bottom:76px}
.content-version .research .section-heading {max-width:880px;margin-bottom:40px}
.content-version .research .section-heading>p {max-width:750px;font-size:20px;line-height:1.6}
.research-questions {display:grid;grid-template-columns:1fr 1fr;gap:50px}
.research-questions article {border-left:4px solid var(--mint);padding:4px 0 4px 23px}
.research-questions article:last-child {border-color:var(--pink)}
.research-questions h3 {font-size:23px;line-height:1.2;font-weight:550;letter-spacing:-.02em}
.research-questions p {font-size:18px;line-height:1.6;margin-top:15px;max-width:490px}
.content-heading {font-size:clamp(38px,4.4vw,62px);line-height:1.06;font-weight:450;letter-spacing:-.045em;margin-bottom:48px}
.projects {border-top:1px solid var(--line);padding-top:80px}
.content-version .featured {grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:54px}
.content-version .project-copy>p:not(.project-kind) {max-width:none}
.content-version .project-copy .contribution {font-size:16px}
.contribution strong {display:block;font-size:14px;font-weight:600;margin-bottom:5px}
.content-version .project-visual {border-radius:12px;border:1px solid var(--ink)}
.content-version .project-visual img {height:auto;aspect-ratio:1.45;object-fit:cover;border:1px solid var(--line);border-radius:7px 0 0 7px}
.content-version .research-bottom {margin-top:64px;gap:68px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr)}
.content-version .earlier img {height:auto;aspect-ratio:2;object-fit:cover;border-radius:12px}
.repository-links {display:flex;flex-direction:column;align-items:flex-start;gap:7px;margin-top:26px}
.repository-links a {font-size:16px;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;line-height:1.5;padding:3px 0}
.repository-links a:hover {text-decoration-thickness:2px}
.repository-note {font-size:13px;line-height:1.5;margin-top:-4px;margin-bottom:7px}
.supporting-projects {display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:26px;margin-top:76px}
.supporting-project {padding:34px;border:1px solid var(--ink);border-radius:12px}
.mint-project {background:color-mix(in srgb,var(--mint) 52%,var(--paper))}
.blue-project {background:color-mix(in srgb,var(--blue) 52%,var(--paper))}
.supporting-project h3 {font-size:33px;line-height:1.1;letter-spacing:-.03em;font-weight:550}
.supporting-project p {font-size:17px;line-height:1.6;margin-top:20px}
.supporting-project .project-subtitle {font-size:20px;line-height:1.35;margin-top:12px;max-width:330px}
.supporting-project .project-methods {font-size:14px;margin-top:28px}
.additional-projects {margin-top:32px;border-bottom:1px solid var(--line)}
.content-version summary {display:flex;align-items:center;justify-content:space-between;gap:20px;list-style:none;cursor:pointer;min-height:56px;padding:15px 0;font-size:20px;font-weight:550;line-height:1.3}
.content-version summary::-webkit-details-marker {display:none}
.content-version summary:hover {text-decoration:underline;text-underline-offset:5px}
.disclosure-symbol {display:inline-block;flex-shrink:0;font-size:25px;line-height:1;font-weight:400;transition:transform .18s}
details[open]>summary .disclosure-symbol {transform:rotate(45deg)}
.additional-grid {display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:22px 0 32px}
.additional-grid h3 {font-size:23px;font-weight:550;line-height:1.2;letter-spacing:-.02em}
.additional-grid p {font-size:17px;line-height:1.6;margin-top:12px}
.item-meta {font-size:14px!important;line-height:1.5!important;font-weight:400}
.paper-group {margin-top:42px}
.paper-group-title {font-size:25px;line-height:1.3;letter-spacing:-.025em;font-weight:550}
.manuscript-group {margin-top:46px;padding-top:34px;border-top:1px solid var(--line);scroll-margin-top:110px}
.manuscripts-note {font-size:16px;line-height:1.6;margin-top:10px;max-width:65ch}
.publication-list {list-style:none;margin:12px 0 0;padding:0}
.publication-list li {display:grid;grid-template-columns:72px minmax(0,1fr);gap:28px;padding:30px 0}
.publication-list li+li {border-top:1px solid var(--line)}
.publication-list time {font-size:19px;line-height:1.4;font-variant-numeric:tabular-nums;padding-top:1px}
.publication-venue {font-size:14px;line-height:1.5;margin-bottom:10px;font-weight:600}
.publication-list h4 {margin:0;font-size:24px;line-height:1.3;font-weight:500;letter-spacing:-.02em;max-width:890px;text-wrap:pretty}
.publication-authors {font-size:16px;line-height:1.6;margin-top:13px}
.publication-authors strong {font-weight:650}
.manuscript-list li {grid-template-columns:minmax(0,1fr)}
.paper-link {display:inline-flex;align-items:center;gap:8px;min-height:44px;margin-top:8px;font-size:16px;line-height:1.5;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.paper-link:hover {text-decoration-thickness:2px}
.paper-link:focus-visible {outline:2px solid var(--ink);outline-offset:5px;border-radius:3px}
.content-version .about {grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:60px}
.background-intro {font-size:20px;line-height:1.55;max-width:370px;margin-top:26px}
.subsection-title {font-size:25px;line-height:1.2;letter-spacing:-.025em;font-weight:550;margin:0 0 27px}
.experience-list,.education-list {list-style:none;margin:0;padding:0}
.experience-list li {padding:0 0 0 22px;border-left:3px solid var(--mint)}
.experience-list li+li {margin-top:34px;border-color:var(--blue)}
.experience-list h4,.education-list h4,.teaching-list h4 {font-size:19px;font-weight:600;line-height:1.3;margin:7px 0 0}
.experience-list p:not(.item-meta) {font-size:17px;line-height:1.55;margin-top:12px}
.experience-list .experience-role {font-size:15px!important;margin-top:6px!important}
.background-more {grid-column:1/-1;display:grid;grid-template-columns:1fr 1.1fr;gap:70px;padding-top:20px}
.education-list li+li {margin-top:28px}
.education-list p:not(.item-meta) {font-size:17px;line-height:1.5;margin-top:6px}
.background-extras details+details {margin-top:26px;border-top:1px solid var(--line);padding-top:12px}
.background-extras summary {padding-top:0;min-height:36px;font-size:25px;letter-spacing:-.025em}
.recognition-list {padding:0;list-style:none;margin:20px 0 0;display:grid;gap:20px}
.recognition-list li {display:grid;grid-template-columns:46px minmax(0,1fr);gap:16px;font-size:16px;line-height:1.5}
.recognition-list time {font-size:14px;font-variant-numeric:tabular-nums;padding-top:2px}
.teaching-list article {margin-top:20px}
.teaching-list p {font-size:16px;line-height:1.55;margin-top:8px}
.content-version .personal {border-top:1px solid var(--line);padding-top:85px}
.content-version .personal p {max-width:830px;font-size:24px;line-height:1.6}
.content-version .personal p+p {font-size:19px;margin-top:20px}
.contact-links {display:flex;align-items:center;flex-wrap:wrap;gap:32px;margin-top:30px}
.contact-links a,.contact-links button {padding:6px 0;font-size:17px;text-decoration:underline;text-underline-offset:5px}
.content-version dialog {width:min(750px,calc(100% - 32px));border-radius:12px}
.content-version dialog a {text-decoration:underline;text-underline-offset:3px}
.content-version dialog .close {padding:6px 0;min-height:40px}
.image-notice {font-size:16px;line-height:1.5;padding:30px}
@media(max-width:1100px){
 .content-version .featured {gap:32px}
 .content-version .research-bottom {gap:44px}
 .supporting-project {padding:28px}
 .content-version .about {gap:40px}
 .background-more {gap:45px}
}
@media(max-width:767px){
 .content-version .research {padding-bottom:52px}
 .content-version .research .section-heading>p {font-size:18px}
 .research-questions {grid-template-columns:1fr;gap:30px}
 .research-questions h3 {font-size:22px}
 .research-questions p {font-size:17px}
 .content-heading {font-size:39px;margin-bottom:32px}
 .projects {padding-top:55px}
 .content-version .featured,.content-version .research-bottom {grid-template-columns:1fr;gap:32px}
 .content-version .research-bottom {margin-top:48px;gap:38px}
 .supporting-projects {grid-template-columns:1fr;gap:20px;margin-top:48px}
 .supporting-project {padding:26px}
 .supporting-project h3 {font-size:30px}
 .additional-grid {grid-template-columns:1fr;gap:30px;padding-top:20px}
 .content-version summary {font-size:18px;gap:14px}
 .paper-group {margin-top:32px}
 .paper-group-title {font-size:23px}
 .manuscript-group {margin-top:32px;padding-top:28px}
 .publication-list {margin-top:8px}
 .publication-list li {grid-template-columns:1fr;gap:10px;padding:27px 0}
 .publication-list time {font-size:15px}
 .publication-list h4 {font-size:22px}
 .publication-venue {font-size:13px;margin-bottom:8px}
 .publication-authors {font-size:15px}
 .content-version .about,.background-more {grid-template-columns:1fr;gap:42px}
 .background-more {padding-top:0}
 .background-intro {font-size:19px}
 .background-extras summary {font-size:24px}
 .content-version .personal {padding-top:55px}
 .content-version .personal p {font-size:21px}
 .content-version .personal p+p {font-size:18px}
 .contact-links {gap:27px}
}
@media(prefers-reduced-motion:reduce){.disclosure-symbol {transition:none}}
