
:root{--ink:#20252a;--muted:#68717a;--paper:#fbfaf8;--line:#dedbd6;--accent:#5d315e;--soft:#f1edf1;--max:1080px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65}.wrap{max-width:var(--max);margin:auto;padding:0 28px}.site-header{position:sticky;top:0;z-index:5;background:rgba(251,250,248,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{font-family:Georgia,serif;font-size:19px;letter-spacing:.09em;color:var(--ink);text-decoration:none}.nav nav{display:flex;gap:25px}.nav nav a{font-size:14px;color:#4f555b;text-decoration:none}.nav nav a:hover,.text-link,a{color:var(--accent)}.menu{display:none;background:none;border:1px solid var(--line);padding:7px 10px;border-radius:4px}.hero{padding:92px 0 74px;border-bottom:1px solid var(--line)}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:var(--accent);font-weight:700}.hero h1{font-family:Georgia,serif;font-size:clamp(46px,7vw,76px);font-weight:400;line-height:1.05;margin:12px 0 18px}.dek{font-family:Georgia,serif;font-size:24px;line-height:1.45;max-width:760px;color:#42484e}.actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}.button{display:inline-block;text-decoration:none;border:1px solid var(--accent);padding:10px 16px;border-radius:3px;font-size:14px}.button.primary{background:var(--accent);color:white}.section{padding:62px 0}.section h1,.section h2{font-family:Georgia,serif;font-weight:400}.section h1{font-size:44px;margin:0 0 34px}.section h2{font-size:30px;margin:0 0 24px}.two-col{display:grid;grid-template-columns:1.35fr .65fr;gap:70px}.side-card{border-top:2px solid var(--accent);padding-top:18px}.side-card p{margin:.35em 0}.label{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}.paper{padding:26px 0;border-top:1px solid var(--line)}.paper:first-of-type{border-top:0}.paper h3{font-family:Georgia,serif;font-size:23px;font-weight:400;margin:0 0 5px;line-height:1.3}.meta{color:var(--muted);font-size:14px;margin-bottom:11px}.paper p{max-width:880px;margin:8px 0}.tag{display:inline-block;background:var(--soft);padding:3px 8px;border-radius:12px;font-size:12px;color:var(--accent);margin-left:6px}.pub-list .paper h3{font-size:20px}.compact{padding:18px 0}.year{font-variant-numeric:tabular-nums;color:var(--muted);min-width:54px}.discussion{display:grid;grid-template-columns:70px 1fr;gap:15px;padding:18px 0;border-top:1px solid var(--line)}.discussion h3{font-size:17px;margin:0;font-weight:600}.discussion p{margin:3px 0;color:var(--muted);font-size:14px}.cv-grid{display:grid;grid-template-columns:210px 1fr;gap:22px 42px}.cv-grid h2{font-size:18px;margin:0}.cv-grid p{margin:0 0 8px}.notice{background:var(--soft);border-left:3px solid var(--accent);padding:15px 18px;margin:24px 0}footer{border-top:1px solid var(--line);padding:28px 0;color:var(--muted);font-size:13px}.footer-grid{display:flex;justify-content:space-between;gap:20px}@media(max-width:760px){.menu{display:block}.nav nav{display:none;position:absolute;top:78px;left:0;right:0;background:var(--paper);padding:20px 28px;border-bottom:1px solid var(--line);flex-direction:column}.nav-open .nav nav{display:flex}.hero{padding:60px 0}.two-col,.cv-grid{grid-template-columns:1fr;gap:25px}.section{padding:45px 0}.footer-grid{flex-direction:column}.discussion{grid-template-columns:55px 1fr}}

/* v2 */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.55fr);gap:64px;align-items:center}
.profile-photo{width:100%;max-width:330px;aspect-ratio:1/1;object-fit:cover;border-radius:2px;box-shadow:0 16px 40px rgba(20,20,20,.12)}
.paper{padding:28px 0;border-bottom:1px solid #e7e3dc}
.paper h3{margin:0 0 8px;font-size:1.28rem;line-height:1.3}
.paper-title{color:inherit;text-decoration:none}.paper-title:hover{text-decoration:underline;text-underline-offset:4px}
.paper-links{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 0;align-items:center}
.paper-links a,.abstract-toggle{font:inherit;font-size:.88rem;font-weight:650;letter-spacing:.01em;color:var(--accent,#4f315f);background:none;border:0;padding:0;cursor:pointer;text-decoration:none}
.paper-links a:hover,.abstract-toggle:hover{text-decoration:underline;text-underline-offset:3px}
.paper-links .sep{color:#b5afa6}.abstract{margin-top:16px;max-width:860px;color:#37342f;line-height:1.68}.abstract[hidden]{display:none}.paper-note{font-size:.9rem;font-style:italic;margin-top:12px;color:#686158}
@media(max-width:760px){.hero-grid{grid-template-columns:1fr;gap:28px}.profile-photo{max-width:250px;order:-1}.paper{padding:23px 0}}

/* v2.3 homepage */
.home-section{padding:58px 0 72px}.home-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:64px;align-items:start}.home-sidebar{padding-right:38px;border-right:1px solid var(--line)}.home-photo{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 35%;margin:0 0 24px}.home-sidebar h1{font-family:Georgia,serif;font-size:31px;line-height:1.15;font-weight:400;margin:0 0 8px}.home-title{font-family:Georgia,serif;color:#525b70;font-size:18px;line-height:1.45}.sidebar-rule{width:72px;border-top:2px solid var(--accent);margin:24px 0}.home-sidebar p{color:#525b70}.sidebar-links{display:flex;flex-direction:column;gap:10px;margin-top:22px}.sidebar-links a{text-decoration:none}.home-main{padding-top:2px}.home-main section{margin:0 0 54px}.home-main h2{font-family:Georgia,serif;font-size:38px;font-weight:400;line-height:1.15;margin:0 0 28px;color:#171d48}.home-main h2:after{content:"";display:block;width:58px;border-top:2px solid #7763b0;margin-top:16px}.home-main p{font-family:Georgia,serif;font-size:19px;line-height:1.62;color:#525b70;max-width:760px}.home-main a{font-family:Georgia,serif}@media(max-width:760px){.home-section{padding:34px 0 52px}.home-layout{grid-template-columns:1fr;gap:40px}.home-sidebar{padding-right:0;border-right:0;border-bottom:1px solid var(--line);padding-bottom:35px}.home-photo{width:220px}.home-main h2{font-size:32px}.home-main p{font-size:17px}}
