﻿/*!
 * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */.fa-solid,.fa-brands{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:var(--fa-display,inline-block);font-style:normal;font-variant:normal;line-height:1;text-rendering:auto}.fa-solid{font-family:"Font Awesome 6 Free"}.fa-brands{font-family:"Font Awesome 6 Brands"}.fa-sm{font-size:.875em;line-height:.0714285718em;vertical-align:.0535714295em}@keyframes fa-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--fa-beat-scale,1.25))}}@keyframes fa-bounce{0%{transform:scale(1,1) translateY(0)}10%{transform:scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce-start-scale-y,0.9)) translateY(0)}30%{transform:scale(var(--fa-bounce-jump-scale-x,0.9),var(--fa-bounce-jump-scale-y,1.1)) translateY(var(--fa-bounce-height,-0.5em))}
50%{transform:scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce-land-scale-y,0.95)) translateY(0)}57%{transform:scale(1,1) translateY(var(--fa-bounce-rebound,-0.125em))}64%{transform:scale(1,1) translateY(0)}100%{transform:scale(1,1) translateY(0)}}@keyframes fa-fade{50%{opacity:var(--fa-fade-opacity,0.4)}}@keyframes fa-beat-fade{0%,100%{opacity:var(--fa-beat-fade-opacity,0.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--fa-beat-fade-scale,1.125))}}@keyframes fa-flip{50%{transform:rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-flip-z,0),var(--fa-flip-angle,-180deg))}}@keyframes fa-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,100%{transform:rotate(0)}}@keyframes fa-spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.fa-clipboard::before{content:""}.fa-clipboard-check::before{content:""}.fa-envelope::before{content:""}.fa-calendar::before{content:""}/*!
 * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-brands:"Font Awesome 6 Brands";--fa-font-brands:normal 400 1em/1 "Font Awesome 6 Brands"}@font-face{font-family:"Font Awesome 6 Brands";font-style:normal;font-weight:400;font-display:block;src:url("../webfonts/fa-brands-400.woff2") format("woff2"),url("../webfonts/fa-brands-400.ttf") format("truetype")}.fa-brands{font-weight:400}.fa-linkedin:before{content:""}.fa-github:before{content:""}/*!
 * Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2024 Fonticons, Inc.
 */:root{--fa-style-family-classic:"Font Awesome 6 Free";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Free"}@font-face{font-family:"Font Awesome 6 Free";font-style:normal;font-weight:900;font-display:block;src:url("../webfonts/fa-solid-900.woff2") format("woff2"),url("../webfonts/fa-solid-900.ttf") format("truetype")}.fa-solid{font-weight:900}.home .intro{padding-top:36px}.home .intro h1{font-size:36px;font-weight:700;line-height:1.15;letter-spacing:-0.01em;margin:0 0 20px}.home .intro .me{float:right;width:120px;height:120px;margin:0 0 16px 24px;border-radius:12px;object-fit:cover}.home .intro p{margin:0 0 16px}.home .intro .icons{clear:both}.home .icons{display:flex;gap:18px;margin-top:20px;font-size:20px}.home .icons a{text-decoration:none;opacity:.85}.home .icons a:hover{opacity:1}.home .icons .ai{font-size:1.2em}.home .pubs ol.bibliography{list-style:none;margin:0;padding:0}.home .pub{display:grid;grid-template-columns:112px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.home .pub img{width:112px;height:auto;border-radius:5px}.home .pub .t{font-weight:600;line-height:1.35;font-size:15px}.home .pub .a{font-size:13px;color:var(--muted);line-height:1.45;margin-top:2px}.home .pub .a b{color:var(--ink)}.home .pub .m{font-size:13px;margin-top:4px;display:flex;gap:12px;flex-wrap:wrap}.home .pub .v{font-style:italic}.home .pubs li:first-child .pub{padding-top:0}.home .more-authors{cursor:pointer;border-bottom:1px dashed #9ca3af}.home .more-authors:hover{color:var(--ink);border-bottom-color:var(--ink)}.home .series{display:grid;grid-template-columns:160px 1fr;gap:20px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:16px}.home .series img{width:160px;display:block;border-radius:6px;background:var(--soft)}.home .series .desc{font-size:14px;color:var(--muted)}.home .series ol{margin:8px 0 0;padding-left:18px;font-size:14px}.home .projs{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px}.home .projs:not(.open) .extra{display:none}.home .proj{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;padding:8px;margin:-8px;border-radius:8px;text-decoration:none}.home .proj img{width:64px;height:64px;object-fit:cover;border-radius:6px;background:var(--soft)}.home .proj .t{font-weight:600;font-size:14px}.home .proj .d{font-size:13px;color:var(--muted);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home a.proj:hover{background:var(--soft)}.home .more{display:inline-block;margin-top:18px;padding:0;border:0;background:0;font:inherit;font-size:14px;color:var(--ink);cursor:pointer;text-decoration:underline;text-decoration-color:#d1d5db;text-underline-offset:3px}.home .more:hover{text-decoration-color:var(--ink)}@media(max-width:640px){.home .projs,.home .series{grid-template-columns:1fr}.home .pub{grid-template-columns:88px 1fr}.home .pub img{width:88px}.home .intro .me{width:88px;height:88px}.home .intro h1{font-size:30px}}