:root{--paper:#f3ebda;--ink:#2c2118;--body:#4d4135;--muted:#7d6f5a;--quiet:#a08f74;--line:#e3d6bd;--line-strong:#d8c8ab;--accent:#c0572f;--accent-tint:color-mix(in srgb, var(--accent) 16%, transparent);--sans:"Hanken Grotesk", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--serif:"Newsreader", Georgia, serif}*{box-sizing:border-box}html{background:var(--paper);min-width:320px;color:var(--ink);font-family:var(--sans);scroll-behavior:smooth}body{background:radial-gradient(circle at 15% -10%, #ffffff3d, transparent 30rem), var(--paper);min-height:100vh;margin:0}::selection{color:var(--paper);background:var(--ink)}a{color:inherit;text-underline-offset:.18em}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.site-shell{flex-direction:column;min-height:100vh;display:flex}.page-wrap,.header-inner,.footer-inner{width:min(100%,800px);margin-inline:auto;padding-inline:28px}.page-wrap{flex:1;padding-top:72px;padding-bottom:40px;animation:.35s ease-out both page-in}@keyframes page-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.page-wrap{animation:none}}.skip-link{z-index:100;color:var(--paper);background:var(--ink);border-radius:3px;padding:9px 12px;transition:transform .15s;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:20;backdrop-filter:blur(12px);background:#f3ebdae0;border-bottom:1px solid #e3d6bdeb;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;gap:28px;min-height:61px;display:flex}.brand{font-family:var(--serif);letter-spacing:-.005em;flex:none;font-size:19px;font-weight:500;text-decoration:none}.header-inner nav{gap:clamp(16px,4vw,26px);font-size:14px;display:flex}.header-inner nav a{color:var(--quiet);padding-block:21px 18px;text-decoration:none;transition:color .15s;position:relative}.header-inner nav a:after{content:"";background:var(--accent);transform-origin:50%;height:1px;transition:transform .15s;position:absolute;bottom:12px;left:0;right:0;transform:scaleX(0)}.header-inner nav a:hover,.header-inner nav a.active{color:var(--ink)}.header-inner nav a.active:after{transform:scaleX(1)}.site-footer{border-top:1px solid var(--line);margin-top:80px}.footer-inner{color:var(--quiet);justify-content:space-between;align-items:center;gap:14px;padding-top:30px;padding-bottom:30px;font-size:13px;display:flex}.social-links{align-items:center;gap:18px;display:flex}.social-links a{color:var(--muted);transition:color .15s,transform .15s;display:inline-flex}.social-links a:hover{color:var(--accent);transform:translateY(-1px)}.social-links svg{fill:currentColor;display:block}.page-title{font-family:var(--serif);letter-spacing:-.01em;margin:0 0 10px;font-size:clamp(36px,7vw,40px);font-weight:500;line-height:1.05}.page-intro{max-width:60ch;color:var(--body);margin:0;font-size:17px;line-height:1.7}.eyebrow{color:var(--quiet);letter-spacing:.14em;text-transform:uppercase;margin:0 0 22px;font-size:13px;font-weight:500}.rule-section{margin-top:56px}.home-title{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 14px;font-size:clamp(48px,10vw,64px);font-weight:500;line-height:1}.pronounce{border:1px solid var(--line-strong);color:var(--muted);letter-spacing:.01em;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:8px;margin:2px 0 16px;padding:5px 12px 5px 10px;font-family:inherit;font-size:16px;transition:color .14s,border-color .14s,background .14s;display:inline-flex}.pronounce:hover,.pronounce.is-playing{border-color:var(--accent);background:var(--accent-tint);color:var(--accent)}.pronounce-icon{fill:currentColor;flex:none}@media (prefers-reduced-motion:reduce){.pronounce{transition:none}}.home-role{max-width:62ch;color:var(--muted);margin:0 0 22px;line-height:1.55}.home-header{justify-content:space-between;align-items:flex-start;gap:36px;display:flex}.home-header-text{min-width:0}.home-photo{object-fit:cover;border-radius:50%;flex:none;width:168px;height:168px;margin-top:6px}.home-socials{margin-bottom:34px}.lead{max-width:60ch;color:var(--body);margin:0;font-size:clamp(18px,2.8vw,19px);line-height:1.7}.highlight{background:var(--accent-tint);box-decoration-break:clone;border-radius:3px;padding:1px 6px}.home-contact{color:var(--muted);margin:56px 0 0;font-size:15px;line-height:1.7}.home-contact a{color:var(--accent)}.research-copy{max-width:64ch;color:var(--body);font-size:17px;line-height:1.75}.research-copy p{margin:0 0 16px}.research-copy p:last-child{margin-bottom:0}.research-copy a{color:var(--accent)}.news-list{flex-direction:column;gap:16px;font-size:17px;line-height:1.6;display:flex}.news-item{grid-template-columns:88px 1fr;align-items:baseline;gap:20px;display:grid}.news-item time{color:var(--accent);font-variant-numeric:tabular-nums}.news-item p{color:var(--body);margin:0}.news-item a{color:var(--body);text-decoration-color:var(--line-strong)}.news-item a:hover{color:var(--accent);text-decoration-color:var(--accent)}.post-list,.publication-list{border-top:1px solid var(--line);margin-top:24px}.post-card{border-bottom:1px solid var(--line);grid-template-columns:96px 1fr;align-items:baseline;gap:22px;padding:30px 0;display:grid}.post-card time{color:var(--accent);font-variant-numeric:tabular-nums;align-self:start;padding-top:5px;font-size:13px}.post-card h2{margin:0 0 8px;font-size:21px;font-weight:600;line-height:1.35}.post-card h2 a{text-decoration:none;transition:color .15s}.post-card h2 a:hover{color:var(--accent)}.post-card p{max-width:62ch;color:var(--muted);margin:0;font-size:16px;line-height:1.65}.tag-list,.badge-list{flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.tag-list li,.badge{border:1px solid var(--line-strong);color:#8f7d61;letter-spacing:.04em;border-radius:999px;padding:4px 10px;font-size:11px}.empty-state{border-top:1px solid var(--line);color:var(--muted);margin-top:24px;padding:30px 0;font-size:16px}.empty-state p{margin:0}.publication{border-bottom:1px solid var(--line);grid-template-columns:60px 1fr;gap:22px;padding:30px 0 26px;display:grid}.publication-year{color:var(--accent);padding-top:4px;font-size:13px}.publication h2{margin:0 0 8px;font-size:20px;font-weight:600;line-height:1.35}.publication h2 a{text-decoration:none;transition:color .15s}.publication h2 a:hover{color:var(--accent)}.publication-authors{color:var(--muted);margin:0 0 6px;font-size:13px}.publication-authors strong{color:var(--ink)}.publication-authors a:hover{color:var(--accent)}.publication-venue{color:var(--muted);margin:0;font-size:15px}.badge.accent{border-color:var(--accent);color:var(--accent)}.badge.solid{border-color:var(--accent);color:var(--paper);background:var(--accent)}.cv-heading-row{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.download-button{border:1px solid var(--accent);color:var(--accent);border-radius:4px;flex:none;padding:9px 16px;font-size:13px;text-decoration:none;transition:color .15s,background .15s}.download-button:hover{color:var(--paper);background:var(--accent)}.cv-section{margin-top:48px}.cv-section-title{color:var(--quiet);letter-spacing:.14em;text-transform:uppercase;margin:0 0 8px;font-size:12px;font-weight:500}.cv-item{border-top:1px solid var(--line);padding:20px 0}.cv-item-row{justify-content:space-between;gap:24px;display:flex}.cv-item h3{margin:0;font-size:17px;font-weight:600;display:inline}.cv-item-meta{flex-direction:column;flex:none;align-items:flex-end;gap:4px;display:flex}.cv-grade{color:var(--accent);white-space:nowrap;font-size:13px}.cv-org{color:var(--muted);font-size:15px}.cv-date{color:#9c8a6b;white-space:nowrap;flex:none;font-size:13px}.cv-item ul{color:var(--body);margin:8px 0 0;padding-left:18px;font-size:15px;line-height:1.65}.skills-grid{gap:18px;margin-top:18px;display:grid}.skills-row{grid-template-columns:120px 1fr;gap:18px;display:grid}.skills-label{color:#9c8a6b;font-size:13px}.skills-value{color:var(--body);font-size:15px;line-height:1.6}.post-header{max-width:680px;margin-bottom:46px}.post-header .back-link{color:var(--muted);margin-bottom:36px;font-size:14px;text-decoration:none;display:inline-block}.post-header .back-link:hover{color:var(--accent)}.post-header h1{font-family:var(--serif);letter-spacing:-.02em;margin:0 0 18px;font-size:clamp(38px,8vw,52px);font-weight:500;line-height:1.05}.post-description{color:var(--body);margin:0 0 20px;font-size:19px;line-height:1.6}.post-meta{color:var(--quiet);align-items:center;gap:10px;font-size:13px;display:flex}.prose{max-width:68ch;color:var(--body);font-family:var(--serif);font-size:19px;line-height:1.75}.prose h2,.prose h3{color:var(--ink);font-family:var(--sans);line-height:1.25}.prose h2{margin:2.4em 0 .7em;font-size:25px}.prose h3{margin:2em 0 .6em;font-size:20px}.prose p{margin:0 0 1.25em}.prose a{color:var(--accent)}.prose img{border-radius:3px;max-width:100%;height:auto}.prose blockquote{border-left:2px solid var(--accent);color:var(--muted);margin:1.8em 0;padding-left:22px;font-style:italic}.prose code{background:#2c211812;border-radius:3px;padding:.12em .3em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8em}.prose pre{border:1px solid var(--line);background:#ffffff38;border-radius:4px;padding:18px;font-size:14px;line-height:1.6;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose hr{border:0;border-top:1px solid var(--line);margin:3em 0}.not-found{text-align:center;padding-block:60px}.not-found .code{color:var(--accent);letter-spacing:.14em;margin-bottom:12px;font-size:13px}.not-found p{color:var(--muted)}.not-found a{color:var(--accent)}@media (width<=620px){.header-inner{flex-direction:column;align-items:flex-start;gap:0;padding-top:16px}.header-inner nav{justify-content:space-between;width:100%}.header-inner nav a{padding-block:13px 12px}.header-inner nav a:after{bottom:7px}.page-wrap{padding-top:50px}.news-item,.post-card,.publication{grid-template-columns:1fr;gap:6px}.post-card time,.publication-year{padding-top:0}.home-header{flex-direction:column-reverse;align-items:flex-start;gap:22px}.home-photo{margin-top:0}.cv-heading-row,.cv-item-row{flex-direction:column;align-items:flex-start;gap:7px}.cv-item-meta{flex-direction:row;align-items:baseline;gap:10px}.skills-row{grid-template-columns:1fr;gap:4px}.footer-inner{flex-direction:column;align-items:flex-start;gap:18px}}@media print{.site-header,.site-footer,.download-button{display:none}body{background:#fff}.page-wrap{width:100%;max-width:none;padding:0}}
