:root{--font-family-sans:'Geist', ui-sans-serif, system-ui, sans-serif, apple color emoji, segoe ui emoji, segoe ui symbol, noto color emoji;--hl-bg:color-mix(in oklch, var(--color-primary-500) 9%, transparent);--hl-fg:var(--color-gray-800, #1f2937);--hl-radius:0.3rem}.dark{--hl-bg:color-mix(in oklch, var(--color-primary-400) 14%, transparent);--hl-fg:#fff}body,html{font-family:geist,ui-sans-serif,system-ui,sans-serif!important}.resume-biography{padding-top:clamp(.4rem,1.2dvh,1.6rem)!important;padding-bottom:clamp(1rem,3dvh,4rem)!important}.hbb-section.blox-resume-biography-3{padding-top:2.4rem}.resume-biography .bio-section-gap{margin-bottom:clamp(.75rem,2dvh,1.5rem)}.resume-biography .bio-heading-gap{margin-bottom:clamp(.5rem,1.5dvh,1rem)}.resume-biography .bio-column-left{display:flex;flex-direction:column;gap:clamp(.75rem,2dvh,1.25rem)}.resume-biography .bio-timeline-gap{display:flex;flex-direction:column;gap:clamp(.5rem,1.5dvh,1rem)}.bio-timeline-h{--btl-dot:2.25rem;display:flex;align-items:stretch;list-style:none;margin:0;padding:.25rem 0 0}.bio-timeline-h .btl-item{position:relative;display:flex;flex-direction:column;flex:1;min-width:0}.bio-timeline-h .btl-item+.btl-item::before{content:'';position:absolute;top:calc(var(--btl-dot)/2 - 1px);right:calc(50% + var(--btl-dot)/2 + .35rem);width:calc(100% - var(--btl-dot) - .7rem);height:2px;background:color-mix(in oklch,var(--color-primary-500) 35%,transparent)}.bio-timeline-h .btl-head{position:relative}.bio-timeline-h .btl-node{position:relative;display:flex;flex-direction:column;align-items:center;gap:.4rem;width:100%;padding:0 .25rem;background:0 0;border:0;cursor:pointer;text-align:center;color:inherit}.bio-timeline-h .btl-dot{display:flex;align-items:center;justify-content:center;flex:none;width:var(--btl-dot);height:var(--btl-dot);border-radius:9999px;border:2px solid var(--color-primary-500);background:var(--color-white,#fff);color:var(--color-primary-600);transition:transform .18s ease,box-shadow .18s ease}.bio-timeline-h .btl-dot svg{width:55%;height:55%}.bio-timeline-h .btl-dot svg.btl-ico-tam{width:66%;height:66%}.dark .bio-timeline-h .btl-dot{background:var(--color-gray-900,#111827);border-color:var(--color-primary-400);color:var(--color-primary-300)}.dark .bio-timeline-h .btl-item+.btl-item::before{background:color-mix(in oklch,var(--color-primary-400) 70%,transparent)}.bio-timeline-h .btl-head{border-radius:var(--hl-radius);padding-bottom:.15rem;transition:color .16s ease,background .16s ease}.bio-timeline-h .btl-label{font-size:.95rem;font-weight:700;line-height:1.2;color:var(--color-gray-900,#111827)}.bio-timeline-h .btl-org{font-size:.78rem;font-weight:500;line-height:1.25;color:var(--color-primary-600)}.dark .bio-timeline-h .btl-label{color:#fff}.dark .bio-timeline-h .btl-org{color:var(--color-primary-300)}.bio-timeline-h .btl-topics{margin:.85rem .3rem 0;padding:.6rem 0 0;border-top:1px solid color-mix(in oklch,var(--color-primary-500) 15%,transparent);list-style:none;text-align:center}.bio-timeline-h .btl-topic{padding:.26rem .4rem;font-size:.72rem;line-height:1.35;text-wrap:balance;color:var(--color-gray-500,#6b7280)}.dark .bio-timeline-h .btl-topics{border-top-color:color-mix(in oklch,var(--color-primary-400) 22%,transparent)}.dark .bio-timeline-h .btl-topic{color:var(--color-gray-400,#9ca3af)}.rterm{color:var(--color-primary-600);font-weight:500;cursor:default;padding:0 .15rem;margin:0 -.15rem;border-radius:var(--hl-radius);transition:color .16s ease,background .16s ease}.dark .rterm{color:var(--color-primary-300)}.bio-timeline-h .btl-topic[data-topic]{border-radius:.3rem;cursor:default;transition:color .16s ease,background .16s ease}.bio-timeline-h .btl-topic[data-topic]:hover,.rterm:hover,.text-link:hover,.text-link:focus-visible,.bio-timeline-h .btl-head:hover,.bio-timeline-h .btl-head:focus-within,.resume-biography .bio-text a:hover,.resume-biography .bio-text a:focus-visible,.resume-biography .affiliation-line a:hover,.resume-biography .affiliation-line a:focus-visible{color:var(--hl-fg);background:var(--hl-bg)}.resume-biography .bio-text a,.resume-biography .affiliation-line a{color:var(--color-primary-600);font-weight:500;text-decoration:none;padding:0 .15rem;margin:0 -.15rem;border-radius:var(--hl-radius);transition:color .16s ease,background .16s ease}.dark .resume-biography .bio-text a,.dark .resume-biography .affiliation-line a{color:var(--color-primary-300)}.bio-timeline-h .btl-tip{position:absolute;bottom:calc(100% + .6rem);left:50%;transform:translateX(-50%)translateY(.25rem);z-index:40;width:max-content;max-width:min(20rem,70vw);padding:.7rem .85rem;border-radius:.75rem;background:var(--color-white,#fff);border:1px solid color-mix(in oklch,var(--color-primary-500) 20%,transparent);box-shadow:0 12px 28px -8px rgb(0 0 0/.25);text-align:left;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s}.dark .bio-timeline-h .btl-tip{background:var(--color-gray-800,#1f2937);box-shadow:0 12px 28px -8px rgb(0 0 0/.6)}.bio-timeline-h .btl-head:hover .btl-tip,.bio-timeline-h .btl-head:focus-within .btl-tip{opacity:1;visibility:visible;transform:translateX(-50%)translateY(0)}.bio-timeline-h .btl-item:first-child .btl-tip{left:0;transform:translateX(0)translateY(.25rem)}.bio-timeline-h .btl-item:first-child:hover .btl-tip,.bio-timeline-h .btl-item:first-child:focus-within .btl-tip{transform:translateX(0)translateY(0)}.bio-timeline-h .btl-item:last-child .btl-tip{left:auto;right:0;transform:translateX(0)translateY(.25rem)}.bio-timeline-h .btl-item:last-child:hover .btl-tip,.bio-timeline-h .btl-item:last-child:focus-within .btl-tip{transform:translateX(0)translateY(0)}.bio-timeline-h .btl-tip-title{margin:0;font-size:.9rem;font-weight:700;color:var(--color-gray-900,#111827)}.bio-timeline-h .btl-tip-org{margin:.1rem 0 0;font-size:.82rem;font-weight:500;color:var(--color-primary-600)}.bio-timeline-h .btl-tip-date{margin:.25rem 0 0;font-size:.78rem;color:var(--color-gray-500,#6b7280)}.bio-timeline-h .btl-tip-row{margin:.4rem 0 0;font-size:.78rem;line-height:1.45;color:var(--color-gray-600,#4b5563)}.bio-timeline-h .btl-tip-key{display:block;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gray-400,#9ca3af)}.dark .bio-timeline-h .btl-tip-title{color:#fff}.dark .bio-timeline-h .btl-tip-org{color:var(--color-primary-300)}.dark .bio-timeline-h .btl-tip-date,.dark .bio-timeline-h .btl-tip-row{color:var(--color-gray-300,#d1d5db)}@media(max-width:640px){.bio-timeline-h{--btl-dot:1.85rem}.bio-timeline-h .btl-label{font-size:.82rem}.bio-timeline-h .btl-org{font-size:.68rem}}.avatar-wrapper:not(.avatar-rectangle){width:240px!important;height:240px!important}.avatar-wrapper:not(.avatar-rectangle) .avatar{width:240px!important;height:240px!important}.avatar-wrapper.avatar-rectangle{margin-left:0;margin-right:0;width:358px!important;max-width:100%}.avatar-wrapper.avatar-rectangle{position:relative;margin-bottom:.8rem}.avatar-wrapper.avatar-rectangle::before{content:'';position:absolute;inset:0;z-index:0;transform:translate(.6rem,.6rem);border-radius:1.375rem;background:color-mix(in oklch,var(--color-primary-500) 11%,transparent)}.dark .avatar-wrapper.avatar-rectangle::before{background:color-mix(in oklch,var(--color-primary-400) 14%,transparent)}.avatar-wrapper.avatar-rectangle .avatar{position:relative;z-index:1;border:0;border-radius:1.375rem;box-shadow:0 16px 36px -20px rgb(0 0 0/.4)}.dark .avatar-wrapper.avatar-rectangle .avatar{box-shadow:0 16px 36px -18px rgb(0 0 0/.65)}.hb-citation-view{font-size:1.1rem}.hb-citation-view .citation-title{font-size:1.2rem}.blox-collection .mt-16{margin-top:1rem!important}.blox-collection .sm\:mt-20{margin-top:1rem!important}.view-citation{font-size:1.15rem;line-height:1.6}.news-feed-items::-webkit-scrollbar{width:4px}.news-feed-items::-webkit-scrollbar-track{background:0 0}.news-feed-items::-webkit-scrollbar-thumb{background-color:rgba(161,161,170,.3);border-radius:9999px}.news-feed-items::-webkit-scrollbar-thumb:hover{background-color:rgba(161,161,170,.5)}.dark .news-feed-items::-webkit-scrollbar-thumb{background-color:rgba(161,161,170,.2)}.dark .news-feed-items::-webkit-scrollbar-thumb:hover{background-color:rgba(161,161,170,.4)}.news-feed-items{scrollbar-width:thin;scrollbar-color:rgba(161,161,170,.3)transparent}.dark .news-feed-items{scrollbar-color:rgba(161,161,170,.2)transparent}.affiliation-line{font-size:clamp(.55rem,1.1vw,.85rem);line-height:1.4}@media(min-width:768px){.affiliation-line{white-space:nowrap}}.view-citation a{color:var(--color-primary-600);font-weight:500;text-decoration:none;padding:0 .15rem;margin:0 -.15rem;border-radius:var(--hl-radius);transition:color .16s ease,background .16s ease}.dark .view-citation a{color:var(--color-primary-300)}.view-citation a:hover,.view-citation a:focus-visible{color:var(--hl-fg);background:var(--hl-bg)}.view-citation .li-cite-author a{color:inherit;font-weight:inherit;padding:0;margin:0;pointer-events:none;background:0 0}.view-citation em{font-style:italic;color:var(--color-gray-500,#6b7280)}.dark .view-citation em{color:var(--color-gray-400,#9ca3af)}.view-citation .hb-attachment-link{color:var(--color-primary-600)}.dark .view-citation .hb-attachment-link{color:var(--color-primary-300)}.teaching{width:100%}.teaching .tch-heading{margin:2.25rem 0 1rem;font-size:1.25rem;font-weight:700;letter-spacing:-.01em;color:var(--color-gray-900,#111827)}.teaching .tch-heading:first-child{margin-top:0}.dark .teaching .tch-heading{color:#fff}.teaching .tch-group{margin-bottom:1.75rem}.teaching .tch-inst{margin:0 0 .15rem;font-size:1rem;font-weight:600;color:var(--color-primary-600)}.dark .teaching .tch-inst{color:var(--color-primary-300)}.teaching .tch-role{margin:.5rem 0 .35rem;font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gray-500,#6b7280)}.dark .teaching .tch-role{color:var(--color-gray-400,#9ca3af)}.teaching .tch-award{display:inline-block;margin-left:.35rem;padding:.1rem .45rem;border-radius:9999px;border:1px solid color-mix(in oklch,var(--color-primary-500) 25%,transparent);font-size:.66rem;letter-spacing:.04em;text-transform:none;color:var(--color-primary-600)}.dark .teaching .tch-award{color:var(--color-primary-300);border-color:color-mix(in oklch,var(--color-primary-400) 32%,transparent)}.teaching .tch-courses{margin:0;padding:0;list-style:none}.teaching .tch-courses li{display:flex;align-items:baseline;justify-content:space-between;gap:1.25rem;margin:0;padding:.45rem 0;border-top:1px solid color-mix(in oklch,var(--color-primary-500) 14%,transparent)}.dark .teaching .tch-courses li{border-top-color:color-mix(in oklch,var(--color-primary-400) 20%,transparent)}.teaching .tch-course{font-size:.95rem;line-height:1.45;color:var(--color-gray-800,#1f2937)}.dark .teaching .tch-course{color:var(--color-gray-200,#e5e7eb)}.teaching .tch-course em{font-style:normal;font-size:.85em;color:var(--color-gray-500,#6b7280)}.teaching .tch-kind{font-weight:600;color:var(--color-primary-600)}.dark .teaching .tch-kind{color:var(--color-primary-300)}.teaching .tch-term{flex:none;font-size:.8rem;line-height:1.45;white-space:nowrap;color:var(--color-gray-500,#6b7280)}.dark .teaching .tch-term{color:var(--color-gray-400,#9ca3af)}@media(max-width:560px){.teaching .tch-courses li{flex-direction:column;gap:.15rem}}.nav-link.active{position:relative;color:var(--color-primary-700)}.nav-link.active::after{content:'';position:absolute;left:.5rem;right:.5rem;bottom:.55rem;height:1px;background:currentColor;opacity:.5}.dark .nav-link.active{color:var(--color-primary-300)}.jobmarket{margin-top:clamp(1.25rem,3dvh,2rem);padding:1.35rem 1.5rem;border:1px solid color-mix(in oklch,var(--color-primary-500) 12%,transparent);border-radius:.8rem;background:color-mix(in oklch,var(--color-primary-500) 3.5%,transparent);box-shadow:none;text-align:left}.dark .jobmarket{border-color:color-mix(in oklch,var(--color-primary-400) 18%,transparent);background:color-mix(in oklch,var(--color-primary-400) 6%,transparent)}.jm-badge{display:inline-flex;align-items:center;gap:.4rem;font-size:.68rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--color-primary-600)}.jm-badge svg{width:.9rem;height:.9rem}.dark .jm-badge{color:var(--color-primary-300)}.jm-title{margin:.4rem 0 .45rem;font-size:clamp(.98rem,1.15vw,1.12rem);font-weight:600;line-height:1.25;color:var(--color-gray-900,#111827)}.dark .jm-title{color:#fff}.jm-body{margin:0;font-size:.9rem;line-height:1.65;color:var(--color-gray-600,#4b5563)}.dark .jm-body{color:var(--color-gray-300,#d1d5db)}.jm-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.link-row{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:-.45rem}.text-link{display:inline-flex;align-items:center;padding:.32rem .8rem;border-radius:9999px;border:1px solid var(--color-gray-200,#e5e7eb);background:var(--color-white,#fff);box-shadow:0 1px 2px rgb(0 0 0/5%);font-size:.82rem;font-weight:500;line-height:1.2;color:var(--color-gray-700,#374151);text-decoration:none;transition:color .16s ease,background .16s ease,border-color .16s ease}.dark .text-link{background:var(--color-gray-800,#1f2937);border-color:var(--color-gray-700,#374151);color:var(--color-gray-200,#e5e7eb)}.text-link:hover,.text-link:focus-visible{border-color:color-mix(in oklch,var(--color-primary-500) 34%,transparent)}.dark .text-link:hover,.dark .text-link:focus-visible{border-color:color-mix(in oklch,var(--color-primary-400) 42%,transparent)}.hobby-block{width:100%}.hobby-heading{display:block;margin:0 0 .4rem;font-size:.64rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--color-gray-400,#9ca3af)}.dark .hobby-heading{color:var(--color-gray-500,#6b7280)}.hobby-row{position:relative;display:flex;flex-wrap:wrap;gap:.75rem;margin-top:0}.hobby-badge{display:flex;align-items:center;justify-content:center;width:2.875rem;height:2.875rem;border-radius:9999px;cursor:pointer;color:var(--color-primary-600);background:0 0;border:1px solid color-mix(in oklch,var(--color-primary-500) 14%,transparent);box-shadow:none;transition:border-color .16s ease,background .16s ease}.hobby-ico{width:72%;height:72%}.dark .hobby-badge{color:var(--color-primary-300);border-color:color-mix(in oklch,var(--color-primary-400) 18%,transparent)}.hobby-item:hover .hobby-badge,.hobby-item:focus-within .hobby-badge{border-color:color-mix(in oklch,var(--color-primary-500) 34%,transparent);background:var(--hl-bg)}.dark .hobby-item:hover .hobby-badge,.dark .hobby-item:focus-within .hobby-badge{border-color:color-mix(in oklch,var(--color-primary-400) 42%,transparent)}.hobby-badge:focus-visible{outline:none}.hobby-tip{position:absolute;bottom:calc(100% + .6rem);left:0;z-index:40;width:max-content;max-width:min(22rem,78vw);padding:.6rem .8rem;border-radius:.7rem;font-size:.82rem;line-height:1.5;text-align:left;color:var(--color-gray-700,#374151);background:var(--color-white,#fff);border:1px solid color-mix(in oklch,var(--color-primary-500) 20%,transparent);box-shadow:0 12px 28px -8px rgb(0 0 0/.25);opacity:0;visibility:hidden;transform:translateY(.25rem);transition:opacity .18s ease,transform .18s ease,visibility .18s}.dark .hobby-tip{color:var(--color-gray-200,#e5e7eb);background:var(--color-gray-800,#1f2937);border-color:color-mix(in oklch,var(--color-primary-400) 30%,transparent);box-shadow:0 12px 28px -8px rgb(0 0 0/.6)}.hobby-tip a{text-decoration:underline;color:var(--color-primary-600)}.dark .hobby-tip a{color:var(--color-primary-300)}.hobby-item:hover .hobby-tip,.hobby-item:focus-within .hobby-tip{opacity:1;visibility:visible;transform:translateY(0)}.gradient-mesh-global{position:absolute;inset:0;overflow:hidden;pointer-events:none}.gradient-mesh-orb{position:absolute;border-radius:9999px;filter:blur(80px);will-change:transform}.gradient-mesh-orb-1{width:28rem;height:28rem;top:5%;left:15%;background:color-mix(in oklch,var(--color-primary-500) 20%,transparent);animation:mesh-float-1 12s ease-in-out infinite}.gradient-mesh-orb-2{width:24rem;height:24rem;top:40%;right:10%;background:color-mix(in oklch,var(--color-secondary-500) 18%,transparent);animation:mesh-float-2 14s ease-in-out infinite;animation-delay:-4s}.gradient-mesh-orb-3{width:20rem;height:20rem;bottom:10%;left:35%;background:color-mix(in oklch,var(--color-primary-500) 12%,transparent);animation:mesh-float-3 16s ease-in-out infinite;animation-delay:-8s}@keyframes mesh-float-1{0%,100%{transform:translate(0,0)scale(1)}33%{transform:translate(40px,-30px)scale(1.05)}66%{transform:translate(-20px,20px)scale(.95)}}@keyframes mesh-float-2{0%,100%{transform:translate(0,0)scale(1)}33%{transform:translate(-30px,40px)scale(.95)}66%{transform:translate(25px,-25px)scale(1.05)}}@keyframes mesh-float-3{0%,100%{transform:translate(0,0)scale(1)}33%{transform:translate(25px,30px)scale(1.08)}66%{transform:translate(-35px,-15px)scale(.92)}}