:root{
  --ink:#21172f;
  --purple:#7650aa;
  --deep:#2b1a45;
  --line:#ddd4e8;
  --soft:#f7f4fa;
  --mint:#e5f1ec;
  --gold:#e9c889;
}

body{background:linear-gradient(180deg,#fff 0%,#fff 66%,#fbf9fd 100%);}
.header{border-color:#d7cbe3;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);box-shadow:0 10px 34px rgba(43,26,69,.08)}
.brand{letter-spacing:-.02em}
.brand i{box-shadow:0 0 0 5px rgba(118,80,170,.12)}
.hero{min-height:650px;position:relative;isolation:isolate}
.hero:before{content:"";position:absolute;z-index:-1;right:2%;top:4%;width:43%;height:64%;border-radius:50%;background:radial-gradient(circle,#efe7f8 0%,rgba(239,231,248,0) 70%);pointer-events:none}
.hero-copy{position:relative}
.hero h1>span{font-weight:400}
.hero .lead{max-width:590px}
.hero-panel{border-radius:150px 150px 18px 18px;background:linear-gradient(145deg,#f0eafa,#e5dbf1);box-shadow:0 22px 50px rgba(74,45,103,.14);transform:rotate(1.2deg);transition:transform .35s ease,box-shadow .35s ease}
.hero-panel:hover{transform:rotate(0deg) translateY(-5px);box-shadow:0 28px 60px rgba(74,45,103,.18)}
.portrait-area{background:radial-gradient(circle at 70% 25%,#f3d990 0 3%,transparent 3.5%),linear-gradient(145deg,#ede2f7 5%,#d4bce8 48%,#a77bc7 100%)}
.portrait-area:after{content:"";position:absolute;inset:18px;border:1px solid rgba(43,26,69,.18);border-radius:112px 112px 0 0;pointer-events:none}
.monogram{position:relative;z-index:1;text-shadow:14px 15px 0 rgba(255,255,255,.22)}
.hero-orbit{position:absolute;z-index:1;border:1px solid rgba(43,26,69,.28);border-radius:50%;pointer-events:none}
.orbit-one{width:180px;height:180px;right:-62px;top:35px}
.orbit-two{width:85px;height:85px;left:-27px;bottom:76px;border-color:rgba(255,255,255,.65)}
.panel-caption{letter-spacing:.04em}
.credentials{grid-template-columns:repeat(4,1fr);background:#fff;border-top:1px solid #ded5e7;border-bottom:1px solid #ded5e7}
.credentials>div{min-height:66px}
.credentials strong{color:var(--deep);letter-spacing:-.02em}
.section-head h2{max-width:780px}
.bio .large-copy{color:var(--deep)}
.education,.career{position:relative}
.education:before,.career:before{content:"";display:block;width:42px;height:3px;background:var(--gold);margin-bottom:22px}
.career{padding-top:4px}
.timeline article{transition:transform .2s ease,border-color .2s ease}
.timeline article:hover{transform:translateY(-4px);border-color:var(--purple)}
.assessment{position:relative;overflow:hidden;background:linear-gradient(135deg,#2b1a45 0%,#3b225b 62%,#5c3a7b 100%)}
.assessment:before{content:"";position:absolute;right:-120px;top:-140px;width:420px;height:420px;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 38px rgba(255,255,255,.035),0 0 0 78px rgba(255,255,255,.025);pointer-events:none}
.assessment>.wrap{position:relative;z-index:1}
.assessment-grid article{transition:transform .2s ease,border-color .2s ease}
.assessment-grid article:hover{transform:translateY(-4px);border-color:#d2b8ef}
.qualifications{max-width:920px}
.research-cards article{box-shadow:0 12px 30px rgba(53,33,77,.06);transition:transform .2s ease,box-shadow .2s ease}
.research-cards article:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(53,33,77,.12)}
.research-cards article:nth-child(2){background:linear-gradient(145deg,#f8f4fc,#eee7f8)}
.research-cards article:nth-child(3){background:linear-gradient(145deg,#f5faf7,#e7f1eb)}
.methods{background:linear-gradient(90deg,#fff,#fbf8fd);padding:26px 24px;border:1px solid var(--line);border-radius:10px}
.publications{background:linear-gradient(180deg,#faf8fc 0%,#f7f3fa 100%)}
.filters button{transition:background .2s ease,color .2s ease,transform .2s ease}
.filters button:hover{transform:translateY(-2px)}
.publication{transition:background .2s ease,padding-left .2s ease}
.publication:hover{background:rgba(255,255,255,.62);padding-left:12px}
.contact{position:relative}
.contact:after{content:"";position:absolute;right:8%;bottom:16%;width:170px;height:170px;border:1px solid #d9cbe8;border-radius:50%;box-shadow:0 0 0 26px rgba(118,80,170,.05),0 0 0 52px rgba(118,80,170,.035);pointer-events:none}
.contact>div{position:relative;z-index:1}
.contact-list{display:flex;flex-direction:column;align-items:flex-start;gap:7px;margin-top:18px}
.contact-list .email{margin-top:0}
.email,.phone{font:400 1.25rem/1.3 var(--serif);text-decoration:none;border-bottom:1px solid var(--purple);padding-bottom:3px;overflow-wrap:anywhere}
.phone{color:var(--deep);border-bottom-color:#c79c40;margin-top:5px}
.social-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:27px}
.social-links a{display:flex;flex-direction:column;min-width:170px;padding:13px 15px;border:1px solid var(--line);border-radius:8px;background:#fff;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.social-links a:hover{transform:translateY(-3px);border-color:var(--purple);box-shadow:0 10px 20px rgba(53,33,77,.1)}
.social-links span{font-weight:700;color:var(--deep)}
.social-links small{font-size:.75rem;color:var(--muted);margin-top:3px}
.contact-details>.location{margin-top:28px}
.footer-links{display:flex;gap:18px;align-items:center}
.footer-links a:first-child{color:var(--purple);text-decoration:none}
@media(max-width:1000px){.credentials{grid-template-columns:repeat(2,1fr)}.credentials>div:nth-child(2){border-right:0}.hero{min-height:auto}}
@media(max-width:700px){.hero{min-height:0}.hero:before{width:100%;height:45%;right:-30%;top:20%}.hero-panel{transform:none}.hero-panel:hover{transform:translateY(-3px)}.credentials{grid-template-columns:1fr}.credentials>div{border:0;min-height:0}.methods{padding:20px 17px}.contact:after{right:-70px;bottom:7%}.social-links a{min-width:145px}.footer-links{width:100%;justify-content:space-between}}
.profile-grid{grid-template-columns:1.18fr .72fr 1fr;gap:48px;align-items:start}.profile-portrait{margin:0}.profile-portrait img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center top;border-radius:18px;box-shadow:0 18px 44px #32204e18;filter:saturate(.94)}.profile-portrait figcaption{display:flex;flex-direction:column;gap:3px;padding:14px 2px 0}.profile-portrait figcaption strong{font:400 1.35rem var(--serif)}.profile-portrait figcaption span{font-size:.78rem;color:var(--muted)}.publication{grid-template-columns:1fr 100px}.pub-num{display:none}
@media(max-width:1000px){.profile-grid{grid-template-columns:1.1fr 1fr;gap:40px}.profile-portrait{grid-column:1/-1;max-width:270px}.publication{grid-template-columns:1fr 100px}}
@media(max-width:700px){.profile-grid{grid-template-columns:1fr}.profile-portrait{grid-column:auto;max-width:320px}.publication{grid-template-columns:1fr}.doi-link{grid-column:auto}}

.research-visual{margin:42px 0 48px;padding:24px 26px 18px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(115deg,#fbf8fd 0%,#fff 48%,#f4faf7 100%);box-shadow:0 18px 38px rgba(53,33,77,.07);overflow:hidden}
.research-diagram{display:block;width:100%;height:auto;min-height:210px;color:var(--deep)}
.diagram-grid path{stroke:#d9d0e4;stroke-width:1;stroke-dasharray:3 8;fill:none;opacity:.75}
.diagram-connector path{stroke:url(#diagram-line);stroke-width:2;stroke-dasharray:7 8;fill:none}
.diagram-connector circle{fill:#fff;stroke:#b58bd2;stroke-width:2}
.diagram-group text{font:700 15px/1 Arial,Helvetica,sans-serif;letter-spacing:.14em;fill:var(--deep)}
.diagram-group .diagram-small{font:400 11px/1 Arial,Helvetica,sans-serif;letter-spacing:.01em;fill:#6e6478}
.diagram-feedstock circle{fill:#f8e7bc;stroke:#b5893e;stroke-width:2}
.diagram-feedstock path{stroke:#b5893e;stroke-width:2;fill:none}
.diagram-carbon circle{stroke:#9a67bc;stroke-width:2}.diagram-carbon path{stroke:#7650aa;stroke-width:2;fill:none}.diagram-carbon circle:not(:first-child){fill:#fff}
.diagram-output circle{fill:#dbeee5;stroke:#6ca28a;stroke-width:2}.diagram-output path{stroke:#6ca28a;stroke-width:2;fill:none}.diagram-wave path{stroke:#6ca28a;stroke-width:2;fill:none;opacity:.85}
.visual-labels{display:flex;justify-content:space-between;gap:14px;margin-top:5px;padding-top:14px;border-top:1px solid var(--line);color:var(--muted);font-size:.78rem;letter-spacing:.02em}
.visual-labels b{color:var(--purple);font-family:var(--serif);font-size:1rem;margin-right:6px}
@media(max-width:700px){.research-visual{margin:28px 0 34px;padding:16px 12px 13px}.research-diagram{min-width:640px;max-width:none;transform:translateX(-92px);margin-bottom:-8px}.visual-labels{display:grid;grid-template-columns:1fr;gap:6px;padding-left:4px}.visual-labels span{font-size:.74rem}}
