@font-face{font-family:Nunito;src:url(/fonts/nunito-var.woff2) format("woff2");font-weight:200 1000;font-style:normal;font-display:swap}:root{--text: #202122;--text-muted: #54595d;--link: #3366cc;--link-visited: #6b4ba1;--rule: #a2a9b1;--rule-light: #c8ccd1;--card-bg: #f8f9fa;--accent-bg: #eaf3ff;--max-width: 52rem;--sans: "Nunito", "Segoe UI", -apple-system, BlinkMacSystemFont, Arial, Helvetica, sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--sans);font-size:1rem;line-height:1.6;color:var(--text);background:#fff}a{color:var(--link);text-decoration:none}a:visited{color:var(--link-visited)}a:hover{text-decoration:underline}h1,h2,h3{font-weight:600;line-height:1.25;margin:0 0 .5rem}h1{font-size:2rem;border-bottom:1px solid var(--rule);padding-bottom:.35rem;margin-bottom:1rem}h2{font-size:1.5rem;border-bottom:1px solid var(--rule-light);padding-bottom:.25rem;margin-top:2rem}h3{font-size:1.2rem;margin-top:1.5rem}.site-header{border-bottom:1px solid var(--rule);background:var(--card-bg)}.site-header-inner{max-width:var(--max-width);margin:0 auto;padding:.6rem 1rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem 1.25rem}.site-name{font-weight:700;font-size:1.1rem}.site-name a,.site-name a:visited{color:var(--text)}.site-nav{display:flex;flex-wrap:wrap;gap:.2rem 1rem;font-size:.92rem}.site-nav a.current{color:var(--text);font-weight:600;pointer-events:none}main{max-width:var(--max-width);margin:0 auto;padding:1.5rem 1rem 3rem}.site-footer{border-top:1px solid var(--rule);background:var(--card-bg);font-size:.88rem;color:var(--text-muted)}.site-footer-inner{max-width:var(--max-width);margin:0 auto;padding:1rem}.lead{font-size:1.08rem}.muted{color:var(--text-muted)}.small{font-size:.88rem}.cards{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.5rem}.card{display:block;border:1px solid var(--rule-light);border-radius:10px;background:var(--card-bg);padding:1.1rem 1.25rem;transition:border-color .15s,background .15s}.card:hover{border-color:var(--link);background:var(--accent-bg);text-decoration:none}.card:hover .card-caption{text-decoration:underline}.card-caption{font-weight:600;font-size:1.3rem;color:var(--link)}.card:visited .card-caption{color:var(--link-visited)}.card-sub{margin-top:.3rem;color:var(--text-muted);font-size:.95rem}.card-wide{grid-column:1 / -1}@media (max-width: 40rem){.cards{grid-template-columns:1fr}.card-wide{grid-column:auto}}.media{display:grid;grid-template-columns:minmax(0,1fr) 20%;gap:1rem;align-items:start}.thumb{width:100%;aspect-ratio:1 / 1;object-fit:cover;border:1px solid var(--rule-light);border-radius:8px;background:#fff;display:block}@media (max-width: 40rem){.media{grid-template-columns:minmax(0,1fr) 28%}}.card.with-img{display:grid;grid-template-columns:minmax(0,1fr) 24%;gap:1rem;align-items:center}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.35rem}.chips a{display:inline-block;border:1px solid var(--rule-light);border-radius:999px;padding:.05rem .65rem;font-size:.85rem;background:#fff;white-space:nowrap}.chips a:hover{border-color:var(--link);background:var(--accent-bg);text-decoration:none}.bib-item{margin:0 0 1.15rem;padding-left:.9rem;border-left:3px solid var(--rule-light)}.bib-authors{color:var(--text-muted);font-size:.92rem}.bib-title{font-weight:600}.bib-venue{font-size:.92rem;color:var(--text-muted)}.bib-note{font-size:.88rem;color:var(--text-muted);font-style:italic}details{margin-top:1rem}details>summary{cursor:pointer;color:var(--link);font-weight:600;font-size:1.15rem;margin-bottom:.75rem}.project{border:1px solid var(--rule-light);border-radius:10px;background:var(--card-bg);padding:1rem 1.25rem;margin:1rem 0}.project h3{margin-top:0}table.plain{border-collapse:collapse;margin:.75rem 0;font-size:.94rem}table.plain th,table.plain td{border:1px solid var(--rule-light);padding:.3rem .7rem;text-align:left}table.plain th{background:var(--card-bg);font-weight:600}ul.spaced>li{margin-bottom:.6rem}.backlink{font-size:.9rem}code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.88em;background:var(--card-bg);border:1px solid var(--rule-light);border-radius:4px;padding:0 .25em}
