:root{--bg:#fff;--surface:#fff;--ink:#787878;--muted:#a2a2a2;--line:#efefef;--accent:#49bf9d;--accent-hover:#5cc6a7;--accent-soft:#49bf9d1a;--header-bg:#1f1815;--header-text:#ffffff80;--nav-link:#333;--nav-height:56px;--btn-top:#3498db;--btn-bottom:#2980b9;--btn-hover-top:#3cb0fd;--shadow:0 1px 2px #0000000a, 0 8px 24px #0000000f;--radius:14px;--serif:"Source Serif 4", Georgia, "Times New Roman", serif;--sans:"Inter", system-ui, -apple-system, sans-serif;--sidebar:340px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--serif);overflow-wrap:break-word;-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.7}.page{animation:.45s both page-in}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.page{animation:none}}h1,h2,h3{font-family:var(--serif);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.25}p{margin:0 0 1em}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}ul{margin:0;padding:0;list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}#main:focus-visible{outline:none}.skip-link{z-index:200;background:var(--surface);box-shadow:var(--shadow);font-family:var(--sans);color:var(--nav-link);border-radius:0 0 10px 10px;padding:10px 18px;font-size:.9rem;position:absolute;top:-100px;left:8px}.skip-link:focus{text-decoration:none;top:0}.icon:before{-webkit-font-smoothing:antialiased;font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;line-height:1;display:inline-block}.icon.solid:before{font-weight:900}.icon.brands:before{font-family:"Font Awesome 5 Brands"}#menu{z-index:100;height:var(--nav-height);background:var(--surface);border-bottom:1px solid var(--line);align-items:center;padding:0 32px;transition:box-shadow .2s;display:flex;position:sticky;top:0}#menu.is-scrolled{box-shadow:0 4px 16px #0000000f}#menu ul.nav-links{flex:1;align-items:center;gap:4px;display:flex}#menu a{font-family:var(--sans);color:var(--nav-link);padding:8px 14px;font-size:.95rem;font-weight:500;display:block;position:relative}#menu a:hover{color:#000;text-decoration:none}#menu a.active:after{content:"";background:var(--accent);border-radius:2px;height:2px;position:absolute;bottom:2px;left:14px;right:14px}#menu .cv-item{margin-left:auto}#menu a.cv-button{background:var(--accent);color:#1f1815;border-radius:999px;padding:8px 18px;font-weight:600;transition:background .2s}#menu a.cv-button:hover{background:var(--accent-hover)}#menu .menu-toggle{display:none}.layout{padding:48px 32px}#main{min-width:0;max-width:960px}#header{background-color:var(--header-bg);color:var(--header-text);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;background-image:linear-gradient(170deg,#1f1815b8,#1f1815e6),url(/images/overlay.png),url(/images/bg.jpg);background-position:50%,0 0,50%;background-repeat:no-repeat,repeat,no-repeat;background-size:cover,auto,cover;padding:32px 28px}#header .avatar{object-fit:cover;border:4px solid #ffffff26;border-radius:50%;width:200px;max-width:100%;height:200px;margin:0 auto 20px;display:block}#header h1{color:#fff;font-size:1.6rem}#header .role{color:#ffffffd9;margin:8px 0 4px;font-weight:500}#header .role span{color:var(--header-text);font-weight:400}#header .pronouns{color:var(--header-text);font-size:.9rem;font-style:italic}#header .education{text-align:left;border-top:1px solid #ffffff26;margin-top:24px;padding-top:24px}#header .education h2{font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--header-text);margin-bottom:12px;font-size:.75rem;font-weight:600}#header .education li{color:#ffffffd9;align-items:baseline;gap:10px;padding:4px 0;font-size:.95rem;display:flex}#header .education i{color:var(--accent);width:18px}@media (width>=981px){#menu{margin-left:var(--sidebar);padding:0 56px}#menu ul.nav-links{margin-left:-14px}.layout{padding:48px 56px 56px calc(var(--sidebar) + 56px)}#header{width:var(--sidebar);box-shadow:none;border-radius:0;flex-direction:column;justify-content:safe center;padding:40px 32px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}}@media (width>=737px) and (width<=980px){#header{text-align:left;flex-wrap:wrap;align-items:center;gap:10px 28px;padding:28px 32px;display:flex}#header .avatar{width:150px;height:150px;margin:0}#header .identity{flex:1;min-width:240px}#header .education{flex-basis:100%;margin-top:8px}}#main section{scroll-margin-top:calc(var(--nav-height) + 24px);border-bottom:1px solid var(--line);margin-bottom:56px;padding-bottom:56px}#main section:last-child{border-bottom:0;margin-bottom:0}.eyebrow{font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;font-size:.75rem;font-weight:600;display:inline-block}#main h2{margin-bottom:24px;font-size:2.1rem}.lead{color:var(--ink);font-size:1.15rem}#about p{color:var(--muted);max-width:68ch}#about p.lead{color:var(--ink)}.cards{gap:20px;display:grid}@media (width>=737px){.cards.two-up{grid-template-columns:1fr 1fr}}.work-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;padding:24px;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.work-item:hover{box-shadow:var(--shadow);border-color:color-mix(in srgb, var(--accent) 30%, var(--line));transform:translateY(-2px)}.work-item .year{font-family:var(--sans);color:var(--accent);background:var(--accent-soft);border-radius:999px;align-self:flex-start;margin-bottom:14px;padding:2px 10px;font-size:.8rem;font-weight:600}.work-item .citation{flex:1;font-size:.95rem}.work-item .citation strong{color:var(--ink)}.work-item h3{margin-bottom:12px;font-size:1.35rem}.work-item .meta{font-family:var(--sans);color:var(--muted);flex-wrap:wrap;gap:6px 16px;margin-bottom:16px;font-size:.9rem;display:flex}.work-item .meta b{color:var(--ink);font-weight:600}.work-item .description{color:var(--muted)}.btn{font-family:var(--sans);background:linear-gradient(to bottom, var(--btn-top), var(--btn-bottom));color:#fff;border-radius:28px;align-self:flex-start;align-items:center;gap:8px;margin-top:8px;padding:8px 16px;font-size:.9rem;font-weight:500;display:inline-flex}.btn:hover{background:linear-gradient(to bottom, var(--btn-hover-top), var(--btn-top));text-decoration:none}.work-item .note{color:var(--muted);font-size:.85rem;font-style:italic}.contact-links{flex-wrap:wrap;gap:12px;display:flex}.contact-links a{border:1px solid var(--line);font-family:var(--sans);color:var(--ink);border-radius:999px;align-items:center;gap:10px;padding:10px 18px;font-size:.95rem;transition:color .2s,border-color .2s,background .2s;display:inline-flex}.contact-links a:hover{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, var(--line));background:var(--accent-soft);text-decoration:none}.contact-links i{color:var(--accent)}#footer{border-top:1px solid var(--line);text-align:center;font-family:var(--sans);color:var(--muted);margin-top:24px;padding-top:24px;font-size:.85rem}#header #footer{color:var(--header-text);border-top-color:#ffffff26}#footer .copyright li{display:inline}#footer .copyright li+li:before{content:"·";margin:0 8px}@media (width<=980px){.layout{padding:32px 20px}#header{margin-bottom:48px}#menu{padding:0 20px}#menu ul.nav-links{margin-left:-14px}}@media (width<=736px){#menu{justify-content:flex-end;padding:0 16px}#menu .menu-toggle{width:40px;height:40px;color:var(--nav-link);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;font-size:1.4rem;display:flex}#menu .menu-toggle:before{content:"☰"}#menu.is-open .menu-toggle:before{content:"✕"}#menu ul.nav-links{top:var(--nav-height);background:var(--surface);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;margin-left:0;padding:8px 16px 16px;display:none;position:absolute;left:0;right:0;box-shadow:0 8px 16px #0000000f}#menu.is-open ul.nav-links{display:flex}#menu ul.nav-links a{padding:12px 14px}#menu a.active:after{width:24px;right:auto}#menu .cv-item{margin:8px 0 0}#menu a.cv-button{text-align:center}#main h2{font-size:1.7rem}}
