.casual-only{display:revert}.formal-only{display:none}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;display:flex;flex-direction:column}img,svg{max-width:100%}img{height:auto;display:block}ul,ol{margin:0;padding:0}button{font:inherit;color:inherit}main{flex:1 0 auto}.wrap{width:100%;max-width:var(--page-max);margin-inline:auto;padding-inline:var(--gutter)}.wrap .wrap{max-width:none;padding-inline:0}.hero{display:flex;gap:var(--hero-gap);align-items:flex-start}.hero__photo{flex:none;width:var(--photo-w)}.hero__photo img{width:100%;aspect-ratio:var(--photo-ratio);object-fit:cover;border-radius:var(--radius)}.hero__text{flex:1;min-width:0}@media(max-width:560px){.hero{display:flex;flex-direction:column;gap:12px}.hero__photo{width:108px}}.hero__aside{font-size:var(--small);color:var(--ink-muted);margin-block-end:0}.research-lead{font-size:var(--h3);line-height:1.35;margin-block-end:var(--rhythm-para)}.kw{font-weight:var(--weight-heading);color:inherit}.research-content h3.research-topic{font-size:inherit;color:var(--ink);margin-block:var(--rhythm-entry)var(--rhythm-line)}.cite{font-size:var(--small);white-space:nowrap}.cite+.cite{margin-inline-start:.15em}main section{margin-block-start:0}body{font-family:var(--face);font-size:var(--base);line-height:var(--lh);font-weight:var(--weight-body);color:var(--ink);background:var(--canvas)}h1,h2,h3,h4{font-weight:var(--weight-heading);color:var(--ink);margin-block-start:var(--rhythm-heading-above);margin-block-end:var(--rhythm-heading-below);line-height:1.25}h1{font-size:var(--h1);line-height:1.15;letter-spacing:-.01em}h2{font-size:var(--h2)}h3{font-size:var(--h3)}h2{color:var(--heading)}p{margin-block:0 var(--rhythm-para)}small,.small{font-size:var(--small)}strong,b{font-weight:var(--weight-heading)}a{color:var(--accent);text-decoration:underline;text-underline-offset:var(--underline-offset);text-decoration-thickness:var(--underline-thickness)}a:hover{text-decoration-thickness:calc(var(--underline-thickness) * 2)}.no-underline-link{color:var(--ink);text-decoration:none}.no-underline-link:hover{text-decoration:underline}:focus-visible{outline:var(--focus-width)solid var(--accent);outline-offset:var(--focus-offset);border-radius:1px}.icon{vertical-align:-.125em;flex:none}.page-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--hero-gap);flex-wrap:wrap}.page-head h1{margin-block-end:0}.cv-pdf{font-size:var(--small);margin:0}.cv-qual,.cv-meta{font-size:var(--small);color:var(--ink-muted)}.cv-label{font-weight:var(--weight-body);color:var(--ink-muted)}.cv-table{table-layout:fixed;width:100%;border-collapse:collapse}.cv-table tr+tr>*{padding-block-start:10px}.cv-table td{vertical-align:baseline;padding:0;line-height:1.25}.cv-table td+td{padding-inline-start:var(--hero-gap)}.cv-date{width:8ch;font-size:var(--small);color:var(--ink-muted)}.publication-item{position:relative;margin-bottom:var(--rhythm-entry)}.publication-title,.cv-entry__title{font-weight:var(--weight-heading);line-height:1.25}.cv-entry__field{line-height:1.25;margin-block-start:var(--rhythm-line)}.publication-authors{line-height:1.25;margin-block-start:var(--rhythm-line)}.publication-venue{line-height:1.25;font-style:italic;font-size:var(--small);color:var(--ink-muted)}.publication-location{font-size:var(--small);color:var(--ink-muted)}.pub-table-scroll{overflow-x:auto}.pub-table{table-layout:fixed;width:100%;border-collapse:collapse}.pub-table td{vertical-align:baseline;padding:0}.pub-table td+td{padding-inline-start:var(--hero-gap)}.pub-table__year{width:8ch;font-size:var(--small);color:var(--ink-muted);white-space:nowrap}.publication-meta{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 14px;margin-block-start:var(--rhythm-line)}.publication-extend{margin-top:var(--rhythm-para)}.peek{max-height:3.4em;overflow:hidden;-webkit-mask-image:linear-gradient(to bottom,#000 30%,transparent);mask-image:linear-gradient(to bottom,#000 30%,transparent)}.peek .publication-item{position:relative;margin-bottom:0}.pub-table tr:last-child .publication-item{position:relative;margin-bottom:0}.pub-list:has(.pub-more[open]) .peek{display:none}.pub-more>summary{display:inline-flex;align-items:center;gap:.3em;cursor:pointer;list-style:none;font-size:var(--small);color:var(--accent);margin-top:var(--rhythm-para)}.pub-more>summary::-webkit-details-marker{display:none}.pub-more>summary:hover{text-decoration:underline}.pub-more[open]{display:flex;flex-direction:column}.pub-more[open]>summary{order:1;margin-top:0}.pub-more>summary .read-more-icon{transform:rotate(90deg);display:inline-flex}.pub-more[open]>summary .read-more-icon{transform:rotate(-90deg)}.pub-more:not([open]) .pub-more__close,.pub-more[open] .pub-more__open{display:none}.publication-links{display:flex;gap:18px;flex-wrap:wrap;align-items:center;font-size:var(--small)}.research-more>summary{display:inline-flex;align-items:center;gap:.3em;cursor:pointer;list-style:none;font-size:var(--small);color:var(--accent)}.research-more>summary::-webkit-details-marker{display:none}.research-more>summary:hover{text-decoration:underline}.research-more>summary .read-more-icon{transform:rotate(90deg);display:inline-flex}.research-more[open]>summary .read-more-icon{transform:rotate(-90deg)}.research-more:not([open]) .research-more__close,.research-more[open] .research-more__open{display:none}.research-more[open]{display:flex;flex-direction:column}.research-more[open]>summary{order:1}.text-action{display:inline-flex;align-items:center;gap:.3em;padding:0;border:none;background:0 0;font:inherit;font-size:var(--small);color:var(--accent);cursor:pointer;text-decoration:none;text-underline-offset:var(--underline-offset);text-decoration-thickness:var(--underline-thickness)}.text-action:hover{text-decoration:underline}.pub-abstract{margin-block-start:var(--rhythm-line)}.pub-anchor{position:absolute;top:0;left:0;width:0;height:0;scroll-margin-top:calc(49px + var(--rhythm-para))}.pub-abstract>summary{display:inline-flex;align-items:center;gap:.3em;cursor:pointer;list-style:none;font-size:var(--small);color:var(--accent)}.pub-abstract>summary::-webkit-details-marker{display:none}.pub-abstract>summary:hover{text-decoration:underline}.pub-abstract>summary .icon{transition:transform .15s ease}.pub-abstract[open]>summary .icon{transform:rotate(180deg)}.abstract-container{background:var(--surface);padding:var(--rhythm-para)calc(var(--rhythm-para) * 1.4);margin-top:var(--rhythm-para);border-radius:var(--radius)}.abstract-text{color:var(--ink);line-height:var(--lh);text-align:start;font-size:var(--small);margin-bottom:0}main table{border-collapse:separate;border-spacing:0 var(--rhythm-para)}main table td{vertical-align:top}main{padding-top:var(--header-gap)}main h1{margin-block-start:0}main h2+h3{margin-block-start:0}header{position:sticky;top:0;z-index:20}.nav{background:var(--canvas);border-bottom:1px solid var(--surface)}.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--hero-gap);padding-block:8px}.nav__brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;line-height:1}.nav__brand svg{height:32px;width:auto}.nav__name{font-family:var(--wordmark-stack);font-weight:var(--wordmark-weight);font-size:var(--wordmark-size);white-space:nowrap}.nav__brand{flex:none}.nav__links{font-size:var(--small)}.nav__links{display:flex;align-items:center;gap:18px;list-style:none}.nav__links a{color:var(--ink);text-decoration:none}.nav__links a:hover,.nav__links a:focus-visible{text-decoration:underline}.nav__burger,#nav-open{display:none}@media(max-width:640px){.nav__burger{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;cursor:pointer;border:1px solid var(--surface);border-radius:3px}.nav__burger span,.nav__burger span::before,.nav__burger span::after{content:'';display:block;width:18px;height:1.5px;background:var(--ink)}.nav__burger span::before{transform:translateY(-6px)}.nav__burger span::after{transform:translateY(4.5px)}.nav__links{display:none;position:absolute;inset-inline:0;top:100%;flex-direction:column;align-items:flex-start;gap:0;background:var(--canvas);border-bottom:1px solid var(--surface);padding:var(--rhythm-para)var(--gutter);box-shadow:0 8px 16px -8px rgb(22 24 29/.18)}.nav:has(#nav-open:checked) .nav__links{display:flex}.nav__links li{width:100%;padding-block:6px}#nav-open:focus-visible+.nav__burger{outline:var(--focus-width)solid var(--accent);outline-offset:var(--focus-offset)}}.mode{display:inline-flex;border:1px solid var(--surface);border-radius:4px;padding:2px}.mode input{position:absolute;width:1px;height:1px;opacity:0}.mode label{display:inline-grid;justify-items:center;align-content:center;padding:3px 9px;border-radius:2px;cursor:pointer;font-size:var(--mode-label);color:var(--ink-muted);line-height:1.35;white-space:nowrap}.mode label[for=mode-casual]{font-family:var(--face-casual)}.mode label[for=mode-formal]{font-family:var(--face-formal)}.mode label::after{content:attr(data-label);font-weight:var(--weight-heading);height:0;overflow:hidden;visibility:hidden;pointer-events:none}.mode input:checked+label{background:var(--surface);color:var(--ink);font-weight:var(--weight-heading)}.mode input:focus-visible+label{outline:var(--focus-width)solid var(--accent);outline-offset:var(--focus-offset)}html.mode-formal .casual-only,body:has(#mode-formal:checked) .casual-only{display:none}html.mode-formal .formal-only,body:has(#mode-formal:checked) .formal-only{display:revert}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.mode{border:1px solid var(--surface);margin:0}.nav__links a[aria-current=page]{text-decoration:underline;text-underline-offset:var(--underline-offset)}.d-none{display:none}.d-inline{display:inline}@media(min-width:768px){.d-md-inline{display:inline}.d-md-none{display:none}.d-none.d-md-inline{display:inline}.d-inline.d-md-none{display:none}}#footer{margin-top:var(--rhythm-section);border-top:1px solid var(--surface)}.footer__inner{padding-block:var(--rhythm-para);text-align:center;font-size:var(--small);color:var(--ink-muted)}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}