@font-face{font-family:'Noto Sans';font-weight:400;font-style:normal;src:url("../fonts/Noto-Sans-regular/Noto-Sans-regular.eot");src:url("../fonts/Noto-Sans-regular/Noto-Sans-regular.eot?#iefix") format("embedded-opentype"),local("Noto Sans"),local("Noto-Sans-regular"),url("../fonts/Noto-Sans-regular/Noto-Sans-regular.woff2") format("woff2"),url("../fonts/Noto-Sans-regular/Noto-Sans-regular.woff") format("woff"),url("../fonts/Noto-Sans-regular/Noto-Sans-regular.ttf") format("truetype"),url("../fonts/Noto-Sans-regular/Noto-Sans-regular.svg#NotoSans") format("svg")}@font-face{font-family:'Noto Sans';font-weight:700;font-style:normal;src:url("../fonts/Noto-Sans-700/Noto-Sans-700.eot");src:url("../fonts/Noto-Sans-700/Noto-Sans-700.eot?#iefix") format("embedded-opentype"),local("Noto Sans Bold"),local("Noto-Sans-700"),url("../fonts/Noto-Sans-700/Noto-Sans-700.woff2") format("woff2"),url("../fonts/Noto-Sans-700/Noto-Sans-700.woff") format("woff"),url("../fonts/Noto-Sans-700/Noto-Sans-700.ttf") format("truetype"),url("../fonts/Noto-Sans-700/Noto-Sans-700.svg#NotoSans") format("svg")}@font-face{font-family:'Noto Sans';font-weight:400;font-style:italic;src:url("../fonts/Noto-Sans-italic/Noto-Sans-italic.eot");src:url("../fonts/Noto-Sans-italic/Noto-Sans-italic.eot?#iefix") format("embedded-opentype"),local("Noto Sans Italic"),local("Noto-Sans-italic"),url("../fonts/Noto-Sans-italic/Noto-Sans-italic.woff2") format("woff2"),url("../fonts/Noto-Sans-italic/Noto-Sans-italic.woff") format("woff"),url("../fonts/Noto-Sans-italic/Noto-Sans-italic.ttf") format("truetype"),url("../fonts/Noto-Sans-italic/Noto-Sans-italic.svg#NotoSans") format("svg")}@font-face{font-family:'Noto Sans';font-weight:700;font-style:italic;src:url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.eot");src:url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.eot?#iefix") format("embedded-opentype"),local("Noto Sans Bold Italic"),local("Noto-Sans-700italic"),url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.woff2") format("woff2"),url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.woff") format("woff"),url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.ttf") format("truetype"),url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.svg#NotoSans") format("svg")}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999;font-weight:bold}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-weight:bold;font-style:italic}.highlight .c,.highlight .cd{color:#999988;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .gd{color:#000000;background-color:#ffdddd}.highlight .ge{color:#000000;font-style:italic}.highlight .gr{color:#aa0000}.highlight .gh{color:#999999}.highlight .gi{color:#000000;background-color:#ddffdd}.highlight .go{color:#888888}.highlight .gp{color:#555555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaaaaa}.highlight .gt{color:#aa0000}.highlight .kc{color:#000000;font-weight:bold}.highlight .kd{color:#000000;font-weight:bold}.highlight .kn{color:#000000;font-weight:bold}.highlight .kp{color:#000000;font-weight:bold}.highlight .kr{color:#000000;font-weight:bold}.highlight .kt{color:#445588;font-weight:bold}.highlight .k,.highlight .kv{color:#000000;font-weight:bold}.highlight .mf{color:#009999}.highlight .mh{color:#009999}.highlight .il{color:#009999}.highlight .mi{color:#009999}.highlight .mo{color:#009999}.highlight .m,.highlight .mb,.highlight .mx{color:#009999}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .s{color:#d14}.highlight .na{color:#008080}.highlight .bp{color:#999999}.highlight .nb{color:#0086B3}.highlight .nc{color:#445588;font-weight:bold}.highlight .no{color:#008080}.highlight .nd{color:#3c5d5d;font-weight:bold}.highlight .ni{color:#800080}.highlight .ne{color:#990000;font-weight:bold}.highlight .nf{color:#990000;font-weight:bold}.highlight .nl{color:#990000;font-weight:bold}.highlight .nn{color:#555555}.highlight .nt{color:#000080}.highlight .vc{color:#008080}.highlight .vg{color:#008080}.highlight .vi{color:#008080}.highlight .nv{color:#008080}.highlight .ow{color:#000000;font-weight:bold}.highlight .o{color:#000000;font-weight:bold}.highlight .w{color:#bbbbbb}.highlight{background-color:#f8f8f8}body{background-color:#fff;padding:50px;font:14px/1.5 "Noto Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;color:#727272;font-weight:400}h1,h2,h3,h4,h5,h6{color:#222;margin:0 0 20px}p,ul,ol,table,pre,dl{margin:0 0 20px}h1,h2,h3{line-height:1.1}h1{font-size:28px}h2{color:#393939}h3,h4,h5,h6{color:#494949}a{color:#267CB9;text-decoration:none}a:hover,a:focus{color:#069;font-weight:bold}a small{font-size:11px;color:#777;margin-top:-0.3em;display:block}a:hover small{color:#777}.wrapper{width:860px;margin:0 auto}blockquote{border-left:1px solid #e5e5e5;margin:0;padding:0 0 0 20px;font-style:italic}code,pre{font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal, Consolas, Liberation Mono, DejaVu Sans Mono, Courier New, monospace;color:#333}pre{padding:8px 15px;background:#f8f8f8;border-radius:5px;border:1px solid #e5e5e5;overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:5px 10px;border-bottom:1px solid #e5e5e5}dt{color:#444;font-weight:700}th{color:#444}img{max-width:100%}kbd{background-color:#fafbfc;border:1px solid #c6cbd1;border-bottom-color:#959da5;border-radius:3px;box-shadow:inset 0 -1px 0 #959da5;color:#444d56;display:inline-block;font-size:11px;line-height:10px;padding:3px 5px;vertical-align:middle}header{width:270px;float:left;position:fixed;-webkit-font-smoothing:subpixel-antialiased}ul.downloads{list-style:none;height:40px;padding:0;background:#f4f4f4;border-radius:5px;border:1px solid #e0e0e0;width:270px}.downloads li{width:89px;float:left;border-right:1px solid #e0e0e0;height:40px}.downloads li:first-child a{border-radius:5px 0 0 5px}.downloads li:last-child a{border-radius:0 5px 5px 0}.downloads a{line-height:1;font-size:11px;color:#676767;display:block;text-align:center;padding-top:6px;height:34px}.downloads a:hover,.downloads a:focus{color:#675C5C;font-weight:bold}.downloads ul a:active{background-color:#f0f0f0}strong{color:#222;font-weight:700}.downloads li+li+li{border-right:none;width:89px}.downloads a strong{font-size:14px;display:block;color:#222}section{width:500px;float:right;padding-bottom:50px}small{font-size:11px}hr{border:0;background:#e5e5e5;height:1px;margin:0 0 20px}footer{width:270px;float:left;position:fixed;bottom:50px;-webkit-font-smoothing:subpixel-antialiased}@media print, screen and (max-width: 960px){div.wrapper{width:auto;margin:0}header,section,footer{float:none;position:static;width:auto}header{padding-right:320px}section{border:1px solid #e5e5e5;border-width:1px 0;padding:20px 0;margin:0 0 20px}header a small{display:inline}header ul{position:absolute;right:50px;top:52px}}@media print, screen and (max-width: 720px){body{word-wrap:break-word}header{padding:0}header ul,header p.view{position:static}pre,code{word-wrap:normal}}@media print, screen and (max-width: 480px){body{padding:15px}.downloads{width:99%}.downloads li,.downloads li+li+li{width:33%}}@media print{body{padding:0.4in;font-size:12pt;color:#444}}@font-face{font-family:'Noto Sans';font-weight:400;font-style:normal;src:url("../fonts/Noto-Sans-regular/Noto-Sans-regular.eot");src:url("../fonts/Noto-Sans-regular/Noto-Sans-regular.eot?#iefix") format("embedded-opentype"),local("Noto Sans"),local("Noto-Sans-regular"),url("../fonts/Noto-Sans-regular/Noto-Sans-regular.woff2") format("woff2"),url("../fonts/Noto-Sans-regular/Noto-Sans-regular.woff") format("woff"),url("../fonts/Noto-Sans-regular/Noto-Sans-regular.ttf") format("truetype"),url("../fonts/Noto-Sans-regular/Noto-Sans-regular.svg#NotoSans") format("svg")}@font-face{font-family:'Noto Sans';font-weight:700;font-style:normal;src:url("../fonts/Noto-Sans-700/Noto-Sans-700.eot");src:url("../fonts/Noto-Sans-700/Noto-Sans-700.eot?#iefix") format("embedded-opentype"),local("Noto Sans Bold"),local("Noto-Sans-700"),url("../fonts/Noto-Sans-700/Noto-Sans-700.woff2") format("woff2"),url("../fonts/Noto-Sans-700/Noto-Sans-700.woff") format("woff"),url("../fonts/Noto-Sans-700/Noto-Sans-700.ttf") format("truetype"),url("../fonts/Noto-Sans-700/Noto-Sans-700.svg#NotoSans") format("svg")}@font-face{font-family:'Noto Sans';font-weight:400;font-style:italic;src:url("../fonts/Noto-Sans-italic/Noto-Sans-italic.eot");src:url("../fonts/Noto-Sans-italic/Noto-Sans-italic.eot?#iefix") format("embedded-opentype"),local("Noto Sans Italic"),local("Noto-Sans-italic"),url("../fonts/Noto-Sans-italic/Noto-Sans-italic.woff2") format("woff2"),url("../fonts/Noto-Sans-italic/Noto-Sans-italic.woff") format("woff"),url("../fonts/Noto-Sans-italic/Noto-Sans-italic.ttf") format("truetype"),url("../fonts/Noto-Sans-italic/Noto-Sans-italic.svg#NotoSans") format("svg")}@font-face{font-family:'Noto Sans';font-weight:700;font-style:italic;src:url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.eot");src:url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.eot?#iefix") format("embedded-opentype"),local("Noto Sans Bold Italic"),local("Noto-Sans-700italic"),url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.woff2") format("woff2"),url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.woff") format("woff"),url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.ttf") format("truetype"),url("../fonts/Noto-Sans-700italic/Noto-Sans-700italic.svg#NotoSans") format("svg")}.highlight table td{padding:5px}.highlight table pre{margin:0}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999;font-weight:bold}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-weight:bold;font-style:italic}.highlight .c,.highlight .cd{color:#999988;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .gd{color:#000000;background-color:#ffdddd}.highlight .ge{color:#000000;font-style:italic}.highlight .gr{color:#aa0000}.highlight .gh{color:#999999}.highlight .gi{color:#000000;background-color:#ddffdd}.highlight .go{color:#888888}.highlight .gp{color:#555555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaaaaa}.highlight .gt{color:#aa0000}.highlight .kc{color:#000000;font-weight:bold}.highlight .kd{color:#000000;font-weight:bold}.highlight .kn{color:#000000;font-weight:bold}.highlight .kp{color:#000000;font-weight:bold}.highlight .kr{color:#000000;font-weight:bold}.highlight .kt{color:#445588;font-weight:bold}.highlight .k,.highlight .kv{color:#000000;font-weight:bold}.highlight .mf{color:#009999}.highlight .mh{color:#009999}.highlight .il{color:#009999}.highlight .mi{color:#009999}.highlight .mo{color:#009999}.highlight .m,.highlight .mb,.highlight .mx{color:#009999}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .s{color:#d14}.highlight .na{color:#008080}.highlight .bp{color:#999999}.highlight .nb{color:#0086B3}.highlight .nc{color:#445588;font-weight:bold}.highlight .no{color:#008080}.highlight .nd{color:#3c5d5d;font-weight:bold}.highlight .ni{color:#800080}.highlight .ne{color:#990000;font-weight:bold}.highlight .nf{color:#990000;font-weight:bold}.highlight .nl{color:#990000;font-weight:bold}.highlight .nn{color:#555555}.highlight .nt{color:#000080}.highlight .vc{color:#008080}.highlight .vg{color:#008080}.highlight .vi{color:#008080}.highlight .nv{color:#008080}.highlight .ow{color:#000000;font-weight:bold}.highlight .o{color:#000000;font-weight:bold}.highlight .w{color:#bbbbbb}.highlight{background-color:#f8f8f8}body{background-color:#fff;padding:0;margin:0;font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;font-size:16px;line-height:1.6;color:#333;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.container{max-width:800px;margin:0 auto;padding:40px 24px 60px}.site-wrapper{max-width:1180px;margin:0 auto;padding:40px 32px 60px;display:flex;align-items:flex-start;gap:56px}.sidebar{flex:0 0 240px;width:240px;position:sticky;top:40px;align-self:flex-start}.main-content{flex:1;min-width:0;max-width:760px}.main-content h1:first-child,.main-content h2:first-child,.main-content>article>*:first-child{margin-top:0}.author-profile{display:block}.author__avatar{margin-bottom:1rem}.author__avatar img{display:block;width:100%;max-width:200px;aspect-ratio:1 / 1;object-fit:cover;border-radius:50%;padding:4px;border:1px solid #e5e7eb;background:#fff}.author__name{font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;font-size:1.35rem;font-weight:700;color:#1f2937;margin:0.4rem 0 0.4rem;line-height:1.25}.author__bio{font-size:0.92rem;color:#6b7280;line-height:1.5;margin:0 0 1rem}.author__urls{list-style:none;padding:0;margin:1rem 0 0}.author__urls li{margin:0 0 8px}.author__urls a{display:inline-flex;align-items:center;color:#4b5563;text-decoration:none;font-size:0.93rem;transition:color 0.15s ease}.author__urls a:hover{color:#2563eb;font-weight:400}.author__urls i{width:22px;margin-right:10px;text-align:center;color:#6b7280;font-size:1rem;transition:color 0.15s ease}.author__urls a:hover i{color:#2563eb}@media screen and (max-width: 1023px){.site-wrapper{flex-direction:column;gap:32px;padding:32px 24px 48px}.sidebar{position:static;width:100%;max-width:100%;flex:0 0 auto}.author-profile{display:flex;align-items:center;gap:1.4rem}.author__avatar{flex:0 0 130px;margin:0}.author__avatar img{max-width:130px}.author__name{margin-top:0}.author__urls{display:flex;flex-wrap:wrap;gap:0.4rem 1.1rem;margin-top:0.6rem}.author__urls li{margin:0}.main-content{max-width:100%}}@media screen and (max-width: 600px){.site-wrapper{padding:24px 16px 40px}.author-profile{flex-direction:column;align-items:flex-start;gap:1rem}.author__urls{gap:0.3rem 1rem}}h1,h2,h3,h4,h5,h6{color:#222;margin:0 0 20px}p,ul,ol,table,pre,dl{margin:0 0 20px}h1,h2,h3{line-height:1.1}h1{font-size:28px}h2{color:#393939}h3,h4,h5,h6{color:#494949}a{color:#267CB9;text-decoration:none}a:hover,a:focus{color:#069;font-weight:bold}a small{font-size:11px;color:#777;margin-top:-0.3em;display:block}a:hover small{color:#777}h2 ~ ul,h2 ~ p{font-size:0.95rem;line-height:1.65}.education-list{list-style:disc;padding-left:1.4rem}.education-list li{margin-bottom:0.9rem;line-height:1.6}.education-list li:last-child{margin-bottom:0}.education-list em{color:#4b5563;font-style:italic}blockquote{border-left:1px solid #e5e5e5;margin:0;padding:0 0 0 20px;font-style:italic}code,pre{font-family:Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal, Consolas, Liberation Mono, DejaVu Sans Mono, Courier New, monospace;color:#333}pre{padding:8px 15px;background:#f8f8f8;border-radius:5px;border:1px solid #e5e5e5;overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:5px 10px;border-bottom:1px solid #e5e5e5}dt{color:#444;font-weight:700}th{color:#444}img{max-width:100%}strong{color:#222;font-weight:700}small{font-size:11px}hr{border:0;background:#e5e5e5;height:1px;margin:0 0 20px}@media screen and (max-width: 600px){.container{padding:24px 16px 40px}}@media print{body{font-size:12pt;color:#444}}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.view-toggle{display:flex;gap:0.5rem}.view-toggle button{padding:0.35rem 0.85rem;border:1px solid #e5e7eb;background:#fff;border-radius:6px;cursor:pointer;font-size:0.85rem;font-weight:500;font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;transition:all 0.2s;color:#5a5a5a}.view-toggle button.active{background:#2563eb;color:white;border-color:#2563eb}.view-toggle button:hover:not(.active){background:#f3f4f6}.publication-item{display:grid;grid-template-columns:0.8fr 1.2fr;gap:1.5rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #eee;font-size:0.93em}.publication-item:last-child{border-bottom:none}.publication-image{width:100%;height:0;padding-bottom:56.25%;position:relative;overflow:hidden;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.1);transition:transform 0.2s ease, box-shadow 0.2s ease}.publication-image img{position:absolute;top:50%;left:50%;width:100%;height:100%;object-fit:contain;border-radius:8px;transform:translate(-50%, -50%)}.publication-image.image-cover img{object-fit:cover;transform:translate(-50%, -50%) scale(1.005)}.publication-image:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,0.15)}.publication-video{position:relative;width:100%;padding-bottom:56.25%;height:0;overflow:hidden;border-radius:8px;box-shadow:0 2px 8px rgba(0,0,0,0.1)}.publication-video iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;border-radius:8px}.publication-content{display:flex;flex-direction:column;gap:0.5rem}.publication-title{font-size:1rem;font-weight:600;color:#222;line-height:1.4;font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif}.publication-title a{color:inherit;text-decoration:none}.publication-title a:hover{color:#2563eb}.publication-authors{font-size:0.9rem;color:#555;line-height:1.5;font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif}.publication-authors strong{color:#1f2937;font-weight:600}.publication-venue{font-size:0.9rem;color:#555;font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif}.publication-venue strong{font-weight:600;color:#1f2937}.announcement-banner{color:#b91c1c;font-size:0.9rem;margin:0 0 1.5rem;padding:0;font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif}.announcement-banner a{color:#b91c1c;text-decoration:underline}.announcement-banner a:hover{color:#991b1b}.publication-links{display:flex;gap:0.5rem;flex-wrap:wrap;margin-top:0.5rem}.publication-links a{display:inline-flex;align-items:center;gap:0.25rem;padding:0.25rem 0.65rem;background:#f9fafb;border-radius:16px;color:#1f2937;text-decoration:none;font-size:0.85rem;font-weight:500;font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;transition:all 0.2s ease;line-height:1.2}.publication-links a:hover{background:#2563eb;color:white;transform:translateY(-2px);box-shadow:0 3px 8px rgba(37,99,235,0.2)}.publication-tldr{font-size:0.9rem;color:#5a5a5a;line-height:1.6;padding:0.75rem;background:#f9fafb;border-radius:5px;margin-top:0.3rem;font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;position:relative}.publication-tldr strong{color:#1f2937;font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif}.tldr-content{position:relative;overflow:hidden;transition:max-height 0.3s ease}.publication-tldr.collapsed .tldr-content{max-height:1.6em;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.publication-tldr.expanded .tldr-content{max-height:none}.publication-tldr.collapsed .tldr-content::after{content:'';position:absolute;bottom:0;right:0;width:60px;height:1.6em;background:linear-gradient(to right, transparent, #f9fafb 50%);pointer-events:none}.tldr-toggle{position:absolute;bottom:0.75rem;right:0.75rem;background:#fff;border:1px solid #e5e7eb;border-radius:4px;padding:2px 8px;font-size:0.85rem;font-family:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;color:#2563eb;cursor:pointer;display:inline-flex;align-items:center;gap:3px;transition:all 0.2s}.tldr-toggle:hover{background:#f3f4f6;transform:translateY(-1px)}.toggle-icon{transition:transform 0.3s ease}@media screen and (max-width: 600px){.section-header{flex-direction:column;align-items:flex-start;gap:0.75rem}.publication-item{grid-template-columns:1fr;gap:1rem}.publication-image{max-width:100%;margin:0 auto}.publication-tldr{padding-bottom:2.5rem}.tldr-toggle{bottom:0.5rem;right:0.5rem}}
