:root{--ink:#1b1b1b;--mut:#6e6e6e;--acc:#2f2f2f;--bg:#fff;--rule:#e4e4e4;--link:#3a5e8c}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 Inter,sans-serif}
.wrap{max-width:760px;margin:0 auto;padding:4.5rem 1.5rem}
h1{font:700 3.9rem/1.05 "Space Grotesk",sans-serif;margin:0;letter-spacing:-.02em}
.tag{font:400 1.15rem Inter,sans-serif;color:var(--mut);margin:.8rem 0 1.2rem}
.contact a{color:var(--link);text-decoration:none;margin-right:1.4rem;font-weight:500;border-bottom:1px solid var(--rule)}
h2{font:600 .85rem Inter;letter-spacing:.22em;text-transform:uppercase;color:var(--acc);margin:3.2rem 0 1rem;display:flex;align-items:center;gap:1rem}
h2:after{content:"";flex:1;height:1px;background:var(--rule)}
.about{font:400 1.15rem/1.7 Inter,sans-serif}
.hob{color:var(--mut);font-size:.95rem}
.pill{display:inline-block;border:1px solid var(--rule);border-radius:999px;padding:.25rem .8rem;margin:0 .4rem .5rem 0;font-size:.85rem;color:#444;background:#fafafa}
.job{margin-bottom:2.2rem}.jobhead{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.job h3{font:700 1.25rem "Space Grotesk",sans-serif;margin:0}
.dates{color:var(--mut);font-size:.85rem;white-space:nowrap}
.jobmeta{margin:.15rem 0 0;font-weight:600;font-size:.9rem}
.jobdesc{margin:.15rem 0 .5rem;color:var(--mut);font-style:italic;font-size:.95rem}
ul{padding-left:1.2rem;margin:.4rem 0}li{margin-bottom:.55rem}li::marker{color:var(--acc)}
li b{color:var(--acc);font-weight:600}
a{color:var(--link)}
.talks li{margin-bottom:.7rem}.venue{color:var(--mut);font-size:.85rem}
.cert,.edu p{margin:.2rem 0}footer{margin-top:4rem;color:var(--mut);font-size:.85rem;text-align:center}

.certrow{display:flex;flex-wrap:wrap;gap:1.1rem 1.4rem;align-items:flex-start}
.cert{display:flex;flex-direction:column;align-items:center;width:100px;text-decoration:none}
.cert img{width:88px;height:88px;display:block;transition:transform .12s ease}
.cert:hover img{transform:scale(1.06)}
.cert span{margin-top:.4rem;font-size:.7rem;line-height:1.3;text-align:center;color:#444;font-weight:500}

.talks{padding-left:0;list-style:none}
.talks li{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.1rem}
.thumb{flex:none;border:none}
.thumb img{width:132px;height:74px;object-fit:cover;display:block;border-radius:6px;border:1px solid var(--rule)}
.talkinfo{padding-top:.2rem}
.talkinfo .venue{display:block;margin-top:.15rem}
@media (max-width:560px){h1{font-size:2.5rem}}

/* print */
@media print{
 body{background:#fff;color:#000;font-size:11pt}
 .wrap{padding:0;max-width:none}
 .contact a,a{color:#000;border:none;text-decoration:underline}
 h1,h2,.job h3,li b{color:#000}
 .pill{border:1px solid #999;background:#fff}
 .cert img{width:60px;height:60px}
 .thumb{display:none}
 .talks li{display:block}
 .job{break-inside:avoid}
 footer{display:none}
}
