:root{--accent:#659c37;--ink:#132937;--paper:#f6f8f7;--line:#d8e2e0;--surface:#fff;--muted:#52666f}
.cursor-network{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
body > main,body > footer{position:relative;z-index:1}
body > header{z-index:30}
html{scroll-padding-top:110px}
header{position:sticky;top:0;z-index:30;background:rgba(246,248,247,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transition:background .3s,border-color .3s}
header .wrap{gap:18px}
header nav{margin-left:auto}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:94px;padding:10px 12px;border:1px solid #bdcfc6;border-radius:100px;background:rgba(255,255,255,.64);color:#284639;font:700 .84rem Inter,"Segoe UI",Arial,sans-serif;cursor:pointer;transition:background .25s,color .25s,transform .25s,border-color .25s}
.theme-toggle:hover{background:#e5eedf;transform:translateY(-2px);border-color:var(--accent)}
.theme-toggle span:first-child{font-size:1.15rem;line-height:1}
.theme-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.reading-progress{height:3px;background:transparent;overflow:hidden}
.reading-progress span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#78aa49,#c7db83);transform:scaleX(0);transform-origin:left;will-change:transform}
.hero{position:relative;isolation:isolate}
.hero::before{content:"";position:absolute;z-index:-1;left:-14%;top:10%;width:60%;height:70%;border-radius:50%;background:radial-gradient(circle,rgba(177,217,131,.25),rgba(177,217,131,0) 68%);pointer-events:none;filter:blur(12px)}
.hero h1{position:relative}
.hero h1 span{background:linear-gradient(120deg,#4d812e,#90b85a 55%,#436d2b);background-size:180% 100%;background-clip:text;-webkit-background-clip:text;color:transparent;animation:shine 7s ease-in-out infinite alternate}
@keyframes shine{from{background-position:0% 50%}to{background-position:100% 50%}}
.portrait{transform:translate3d(var(--portrait-x,0px),var(--portrait-y,0px),0);transition:transform .35s ease;will-change:transform}
.portrait img{box-shadow:22px 22px 0 #dceacb,0 28px 60px rgba(31,62,47,.13);transition:box-shadow .3s,filter .3s}
.portrait:hover img{box-shadow:24px 24px 0 #c6ddaa,0 35px 70px rgba(31,62,47,.19)}
.action{transition:transform .22s,background .22s,border-color .22s,box-shadow .22s}
.action:hover{transform:translateY(-3px);box-shadow:0 10px 20px rgba(19,41,55,.12)}
.research-card{transition:transform .25s,box-shadow .25s,border-color .25s}
.research-card:hover{transform:translateY(-6px);border-color:#b7d3a2;box-shadow:0 16px 28px rgba(19,41,55,.09)}
.cover-card{transform:perspective(850px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(var(--lift,0px));transform-style:preserve-3d;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;will-change:transform}
.cover-card:hover{--lift:-7px;transform:perspective(850px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(var(--lift));box-shadow:0 24px 40px rgba(19,41,55,.18);border-color:#98bb81}
.cover-card .cover-art img{transition:transform .45s ease}
.cover-card:hover .cover-art img{transform:scale(1.035)}
.motion-ready .hero .eyebrow,.motion-ready .hero h1,.motion-ready .hero p,.motion-ready .hero .actions,.motion-ready .hero .portrait{animation:hero-enter .85s cubic-bezier(.2,.7,.15,1) both}
.motion-ready .hero h1{animation-delay:.09s}.motion-ready .hero p{animation-delay:.18s}.motion-ready .hero .actions{animation-delay:.27s}.motion-ready .hero .portrait{animation-delay:.16s}
@keyframes hero-enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
.motion-ready .hero .portrait{animation-name:photo-enter}
@keyframes photo-enter{from{opacity:0;clip-path:inset(5% 0 0 0)}to{opacity:1;clip-path:inset(0)}}
.motion-ready .reveal{opacity:0;transform:translateY(25px);transition:opacity .68s ease,transform .68s cubic-bezier(.2,.7,.15,1)}
.motion-ready .reveal.in-view{opacity:1;transform:translateY(0)}
.motion-ready .reveal:nth-child(2n){transition-delay:.07s}
.motion-ready .reveal:nth-child(3n){transition-delay:.12s}
html[data-theme="dark"]{color:#e9f0ed;background:#101b23;--ink:#e9f0ed;--paper:#101b23;--line:#2c4246;--surface:#182a30;--muted:#bdcec9}
html[data-theme="dark"] body{background:#101b23;color:#e9f0ed}
html[data-theme="dark"] header{background:rgba(16,27,35,.9);border-color:#2c4246}
html[data-theme="dark"] .brand,html[data-theme="dark"] .hero aside strong{color:#e9f0ed}
html[data-theme="dark"] nav a{color:#c2d3cf}html[data-theme="dark"] nav a:hover{color:#b7dc8f}
html[data-theme="dark"] .theme-toggle{background:#263d43;border-color:#526d66;color:#f1f7ef}html[data-theme="dark"] .theme-toggle:hover{background:#355549}
html[data-theme="dark"] .hero p,html[data-theme="dark"] .hero aside,html[data-theme="dark"] .section p,html[data-theme="dark"] .research-card span,html[data-theme="dark"] .pub-feature span,html[data-theme="dark"] .pub-list span,html[data-theme="dark"] .contact small,html[data-theme="dark"] .portrait figcaption,html[data-theme="dark"] .cover-copy span{color:#b8c9c5}
html[data-theme="dark"] .hero h1,html[data-theme="dark"] .section h3,html[data-theme="dark"] .contact p,html[data-theme="dark"] .portrait figcaption strong,html[data-theme="dark"] .cover-copy strong{color:#f0f5f1}
html[data-theme="dark"] .hero .eyebrow,html[data-theme="dark"] .section h2,html[data-theme="dark"] .contact h2{color:#a8d284}
html[data-theme="dark"] .hero h1 span{background-image:linear-gradient(120deg,#8abb63,#d5e9ab 55%,#8bbb65)}
html[data-theme="dark"] .band{background:#1c3437}html[data-theme="dark"] .band small{color:#bdcec9}
html[data-theme="dark"] .section,html[data-theme="dark"] .pub-feature,html[data-theme="dark"] .pub-list li{border-color:#2c4246}
html[data-theme="dark"] .research-card,html[data-theme="dark"] .cover-card{background:#182a30;border-color:#34504c}
html[data-theme="dark"] .cover-art{background:#24393c}
html[data-theme="dark"] .action{border-color:#9eb8ad;color:#f0f5f1}html[data-theme="dark"] .action.primary{background:#b3d78e;border-color:#b3d78e;color:#17291f}html[data-theme="dark"] .action:hover{background:#cce6aa;border-color:#cce6aa;color:#17291f}
html[data-theme="dark"] .portrait img{box-shadow:22px 22px 0 #2c4840,0 28px 60px rgba(0,0,0,.25)}
html[data-theme="dark"] footer{background:#0b151b;color:#d0ddd6}
@media(max-width:900px){header .wrap{flex-wrap:wrap;padding:17px 0}header nav{order:3;width:100%;margin:0;justify-content:space-between;gap:12px}.theme-toggle{margin-left:auto}.hero{padding-top:75px}}
@media(max-width:760px){header .wrap{flex-direction:row;align-items:center}.portrait{will-change:auto}.motion-ready .hero .portrait{animation-delay:.12s}}
@media(max-width:500px){header nav{font-size:.83rem;overflow-x:auto;white-space:nowrap;justify-content:flex-start;gap:20px;padding-bottom:3px}.theme-toggle{min-width:44px;padding:9px}.theme-label{display:none}.cover-card:hover{--lift:0px}}
@media(hover:none),(pointer:coarse){.cursor-network{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.motion-ready .hero .eyebrow,.motion-ready .hero h1,.motion-ready .hero p,.motion-ready .hero .actions,.motion-ready .hero .portrait{animation:none!important}.motion-ready .reveal{opacity:1!important;transform:none!important;transition:none!important}.hero h1 span{animation:none}.portrait,.research-card,.cover-card,.cover-card .cover-art img,.action,.theme-toggle{transition:none!important;transform:none!important}}
@media(prefers-reduced-motion:reduce){.cursor-network{display:none}}
