:root{--ink:#22252a;--muted:#646970;--blue:#0a66c2;--line:#dedfe2;--bg:#f3f4f6;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans KR','Malgun Gothic',sans-serif;--mono:'SFMono-Regular',Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.65;word-break:keep-all;overflow-wrap:break-word}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{line-height:1.45;letter-spacing:-.025em}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--blue);outline-offset:4px}::selection{color:#fff;background:var(--blue)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:1rem;top:1rem;z-index:200;padding:.7rem 1rem;color:#fff;background:var(--blue);transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}.topbar-inner{max-width:1128px;width:calc(100% - 3rem);min-height:66px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:2rem}.brand{display:flex;align-items:center;gap:.65rem;font-size:1.15rem;font-weight:700;letter-spacing:-.04em}.brand-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:5px;background:#245a92;color:#fff;font-weight:750;font-size:1.45rem;letter-spacing:-.07em;padding-right:2px}.top-nav{display:flex;align-self:stretch;align-items:stretch;gap:1.1rem}.top-nav a{display:flex;min-width:70px;flex-direction:column;gap:2px;justify-content:center;align-items:center;color:#64676c;font-size:.75rem;border-bottom:2px solid transparent;padding:.3rem .5rem .25rem}.top-nav a:hover{color:#24282e;border-color:#687988}.top-nav a.nav-about{color:#313944;border-bottom-color:#313944}.nav-icon{display:block;width:23px;height:23px}.page-layout{display:grid;grid-template-columns:minmax(0,804px) 300px;gap:24px;max-width:1128px;width:calc(100% - 3rem);margin:24px auto 0;align-items:start}.main-column,.sections{min-width:0}.profile-card,.section,.side-card{border:1px solid var(--line);background:#fff;border-radius:10px;overflow:hidden}.profile-card{margin-bottom:12px;scroll-margin-top:80px}.cover{height:200px;overflow:hidden;background:#dbe6f7}.cover img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 59%}.profile-content{padding:0 24px 24px}.profile-avatar{position:relative;display:flex;justify-content:center;align-items:center;width:132px;height:132px;margin:-70px 0 12px;border:5px solid #fff;border-radius:50%;background:linear-gradient(150deg,#edf4fb 0%,#dce0f4 100%);font-size:3.7rem;line-height:1;font-weight:650;letter-spacing:-.08em;color:#4d5f82;padding-right:7px}.profile-avatar span{color:#9290b4}.identity-grid{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:20px}.identity h1{font-size:1.9rem;line-height:1.25;font-weight:700;letter-spacing:-.035em}.headline{font-size:1rem;margin-top:.4rem;color:#2d323a;line-height:1.6}.headline>span{display:block;font-size:1rem}.profile-summary{font-size:.875rem;color:var(--muted);margin:.6rem 0 .2rem;line-height:1.7}.profile-domain{color:var(--blue);font-size:.875rem;font-weight:600}.profile-domain:hover{text-decoration:underline}.affiliations{display:flex;flex-direction:column;gap:.85rem;padding-top:.2rem}.affiliations>a{display:flex;gap:.65rem;align-items:center;font-size:.875rem;font-weight:600;line-height:1.5}.affiliation-mark{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;background:#e9edf2;color:#566377;border-radius:3px;font-weight:650;font-size:.75rem}.bob-mark{background:#ecf1fb!important;color:#375e9a!important}.club-mark{background:#f3edf0;color:#916578}.affiliations small{display:block;font-size:.75rem;color:var(--muted);font-weight:400;margin-top:1px}.affiliations>a:hover>span:last-child{text-decoration:underline}.profile-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1.2rem}.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:24px;min-height:36px;padding:.3rem 1.15rem;font-size:.875rem;font-weight:650;border:1px solid transparent;line-height:1.5}.pill-primary{background:var(--blue);color:#fff}.pill-primary:hover{background:#064b92}.pill-outline{border-color:var(--blue);color:var(--blue)}.pill-outline:hover{background:#eaf3fb;box-shadow:inset 0 0 0 1px var(--blue)}.plain-link{font-size:.875rem;font-weight:600;color:#555e69;padding:.35rem .6rem}.plain-link span{margin-left:.35rem}.plain-link:hover{background:#f1f3f5;border-radius:24px}
.section{padding:24px;margin-bottom:12px;scroll-margin-top:82px}.section h2{font-size:1.25rem;font-weight:650;margin-bottom:14px;line-height:1.5}.section>p{font-size:1rem;line-height:1.85;margin:0 0 .9rem}.about-section>p:last-of-type{margin-bottom:0}.top-skills{display:flex;align-items:center;gap:14px;border:1px solid #dfe4e8;border-radius:8px;padding:12px 14px;margin-top:20px}.skill-icon{font-size:1.7rem;color:#596c80;line-height:1}.top-skills h3{font-size:.875rem;font-weight:650;margin-bottom:2px}.top-skills p{font-size:.875rem;line-height:1.6;color:#444c56}.section .section-description{font-size:.875rem;color:var(--muted);margin-top:-7px;margin-bottom:18px}.project-group-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:8px 0 12px;border-bottom:1px solid #e4e6e8;margin-top:10px}.project-group-heading h3{font-size:1rem;font-weight:600}.project-group-heading>span{font-size:.8125rem;color:var(--muted)}.project{display:grid;grid-template-columns:44px minmax(0,1fr);gap:14px;padding:20px 0;border-bottom:1px solid #e9eaec}.project:last-child{border-bottom:0}.project-list:last-child .project:last-child{padding-bottom:0}.experience-mark{display:grid;place-items:center;width:44px;height:44px;background:#eef0f2;color:#7a828d;border-radius:3px;font-size:1.25rem;font-weight:650;line-height:1}.experience-mark.bob-mark{font-size:.875rem}.project-body h4{font-size:1rem;font-weight:650;line-height:1.6;letter-spacing:-.015em}.project-org{display:block;font-size:.875rem;line-height:1.65;margin-top:2px;color:#454b53}.project-date{font-size:.8125rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:2px 0 10px}.small-badge{font-size:.75rem;color:#536c8e}.small-badge:before{content:'·';padding-right:.5rem}.project-body>p{font-size:1rem;line-height:1.85;margin-top:.65rem;color:#40464f}.tags{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:12px}.tags>span{display:inline-block;font-size:.75rem;color:#5c6672;background:#f1f3f5;padding:2px 7px;border-radius:4px;line-height:1.7;overflow-wrap:anywhere}.text-link{display:inline-flex;align-items:center;gap:.4rem;color:var(--blue);font-size:.875rem;font-weight:550;line-height:1.6;margin-top:10px}.text-link:hover{text-decoration:underline;text-underline-offset:3px}
.education-item{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid #e9eaec}.education-item:last-child{border:0;padding-bottom:0}.education-mark{flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;background:#f0f2f4;color:#79818b;font-size:1.1rem;font-weight:650;border-radius:3px}.education-mark.bob-mark{font-size:.875rem}.education-item h3{font-size:1rem;font-weight:650;margin-bottom:3px}.education-item p{font-size:.875rem;line-height:1.75;color:#434b54}.education-date{display:block;font-size:.8125rem;color:var(--muted);margin-top:3px}.education-item .education-detail{margin-top:8px;font-size:.875rem;color:#5b636e}.paper-list{list-style:none;padding:0;margin:0}.paper-list li{display:flex;gap:14px;align-items:baseline;padding:15px 0;border-bottom:1px solid #e9eaec}.paper-list li:last-child{border:0;padding-bottom:0}.paper-no{font-size:.8125rem;color:#757d87;font-family:var(--mono);flex-shrink:0;width:28px}.paper-list h3{font-size:1rem;font-weight:550;line-height:1.7;letter-spacing:-.02em}.paper-list li>div>span{display:block;font-size:.8125rem;color:var(--muted);margin-top:4px}.subsection-heading{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;flex-wrap:wrap;margin:20px 0 6px}.subsection-heading h3{font-size:1rem;font-weight:600}.subsection-heading>span{font-size:.8125rem;color:var(--muted)}.cve-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}.cve-card{padding:15px 0;border-bottom:1px solid #e9eaec}.cve-platform{font-size:.75rem;color:#6e7887;letter-spacing:.025em}.cve-card h4{font-size:.9375rem;font-family:var(--mono);font-weight:550;margin:3px 0 7px;letter-spacing:-.03em}.cve-card>div{display:flex;flex-wrap:wrap;gap:.3rem 1rem}.cve-card a{font-size:.8125rem;color:var(--blue)}.cve-card a:hover{text-decoration:underline;text-underline-offset:3px}.honors-heading{margin-top:28px}.honors-list{margin:0}.honors-list>div{display:grid;grid-template-columns:200px 1fr;gap:14px;border-bottom:1px solid #e9eaec;padding:13px 0}.honors-list>div:last-child{border:0;padding-bottom:0}.honors-list dt{font-size:.875rem;color:var(--muted)}.honors-list dd{margin:0;font-size:.9375rem;line-height:1.7}.inline-note{font-size:.8125rem;color:var(--muted);margin-left:.4rem}.community-item{position:relative;padding:18px 0 18px 58px;border-bottom:1px solid #e9eaec}.community-item:last-child{border:0;padding-bottom:0}.community-mark{display:grid;place-items:center;width:44px;height:44px;position:absolute;top:18px;left:0;background:#edf0f6;color:#63718b;font-size:1.2rem;font-weight:600;border-radius:3px}.community-meta{display:flex;flex-wrap:wrap;gap:.3rem 1rem;align-items:center;justify-content:space-between;font-size:.8125rem;color:var(--muted);margin-bottom:4px}.community-meta .text-link{margin:0;font-size:.8125rem}.community-meta>span+span{font-size:.75rem}.community-item h3{font-size:1rem;font-weight:600;line-height:1.6}.community-item ul{padding-left:19px;margin:12px 0 0;font-size:1rem;line-height:1.85;color:#444b55}.community-item li{margin:3px 0}.community-item>p{font-size:1rem;line-height:1.8;color:#444b55;margin-top:8px}
.sidebar{min-width:0}.side-card{padding:18px 20px;margin-bottom:12px}.side-card h2{font-size:1rem;font-weight:600;margin-bottom:8px}.side-nav{display:flex;flex-direction:column}.side-nav a{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.875rem;padding:9px 0;color:#505a66}.side-nav a:hover{color:var(--blue)}.side-nav a>span{font-size:1.2rem;color:#8c949e;line-height:1}.side-description{font-size:.8125rem;color:var(--muted);margin-top:-4px;margin-bottom:9px}.repo-link{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:9px;align-items:start;padding:14px 0;border-bottom:1px solid #e9eaec}.repo-link:last-child{border:0;padding-bottom:2px}.repo-icon{display:grid;place-items:center;width:32px;height:32px;background:#eef2f6;color:#6d7a8c;font-size:.875rem;border-radius:3px}.repo-link strong{display:block;font-size:.875rem;font-weight:600;line-height:1.5;word-break:normal;overflow-wrap:anywhere}.repo-link small{display:block;font-size:.75rem;color:var(--muted);margin-top:4px;line-height:1.6}.repo-link>span:nth-child(3){font-size:.875rem;color:#657790}.repo-link:hover strong{color:var(--blue);text-decoration:underline}.skill-pills{display:flex;flex-wrap:wrap;gap:7px;padding-top:5px}.skill-pills span{font-size:.8125rem;color:#4f5d6e;border:1px solid #dde3e9;border-radius:20px;padding:3px 9px;line-height:1.6}.sidebar-footer{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;color:#76808c;font-size:.75rem}.sidebar-footer a:hover{color:var(--blue)}.footer{max-width:1128px;width:calc(100% - 3rem);margin:18px auto 28px;display:flex;gap:16px;align-items:center;font-size:.75rem;color:#78818b}.footer a{font-size:.9375rem;font-weight:700;color:#647386;letter-spacing:-.03em}
@media(max-width:1100px){.page-layout{grid-template-columns:minmax(0,1fr) 270px;gap:18px}.identity-grid{grid-template-columns:1fr}.affiliations{flex-direction:row;gap:24px;padding-top:10px}.identity h1{font-size:1.75rem}.headline>span{display:inline;margin-left:.3rem}.side-card{padding:18px 16px}.honors-list>div{grid-template-columns:1fr;gap:3px}.cve-grid{gap:0 14px}}
@media(max-width:850px){.page-layout{grid-template-columns:1fr;max-width:760px;margin-top:18px;width:calc(100% - 2rem)}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}.sidebar .side-card:first-child{display:none}.side-card{margin:0}.sidebar-footer{grid-column:1/-1}.topbar-inner{max-width:760px;width:calc(100% - 2rem);gap:1rem}.top-nav{gap:.2rem}.top-nav a{min-width:58px}.brand>span:last-child{display:none}.cover{height:200px}.identity-grid{grid-template-columns:minmax(0,1fr) 210px;gap:14px}.affiliations{flex-direction:column;gap:12px;padding-top:0}.headline>span{display:block;margin-left:0}.footer{max-width:760px;width:calc(100% - 2rem)}}
@media(max-width:600px){html{scroll-padding-top:80px}.topbar-inner{width:calc(100% - 1.5rem);min-height:62px;gap:.8rem}.brand-icon{width:32px;height:32px;font-size:1.3rem}.top-nav{gap:0;flex:1;justify-content:space-between}.top-nav a{min-width:0;padding:.4rem .2rem .3rem;font-size:.75rem}.nav-icon{width:21px;height:21px}.page-layout{width:100%;margin-top:10px;gap:0}.profile-card,.section{border-radius:0;border-left:0;border-right:0;margin-bottom:9px}.cover{height:160px}.cover img{object-position:65% 61%}.profile-content{padding:0 20px 20px}.profile-avatar{width:112px;height:112px;margin-top:-58px;border-width:4px;font-size:3.2rem;margin-bottom:10px}.identity-grid{grid-template-columns:1fr;gap:12px}.identity h1{font-size:1.6rem}.headline{font-size:1rem;margin-top:5px}.headline>span{font-size:.9375rem;display:block;margin:0}.profile-summary{font-size:.875rem}.affiliations{flex-direction:row;gap:20px;flex-wrap:wrap}.affiliations>a{font-size:.8125rem;gap:8px}.affiliation-mark{width:27px;height:27px;font-size:.75rem}.affiliations small{font-size:.75rem;max-width:140px}.profile-actions{margin-top:17px;gap:7px}.pill{font-size:.875rem;padding:.3rem 1rem;min-height:36px}.section{padding:20px}.section h2{font-size:1.2rem;margin-bottom:13px}.top-skills{padding:12px;gap:10px}.top-skills p{font-size:.8125rem;line-height:1.7}.project{grid-template-columns:36px minmax(0,1fr);gap:12px;padding:18px 0}.experience-mark{width:36px;height:36px;font-size:1rem}.experience-mark.bob-mark{font-size:.75rem}.project-body h4{font-size:1rem;line-height:1.65}.project-org{font-size:.8125rem}.project-date{font-size:.8125rem;line-height:1.65}.project-body>p{font-size:1rem;line-height:1.85}.project-group-heading{padding-bottom:10px}.project-group-heading h3{font-size:.9375rem}.project-group-heading>span{font-size:.75rem}.education-mark{width:36px;height:36px;font-size:1rem}.education-mark.bob-mark{font-size:.75rem}.education-item{gap:12px}.education-item h3{font-size:1rem}.paper-list li{gap:8px}.paper-no{width:24px;font-size:.75rem}.paper-list h3{font-size:1rem}.subsection-heading{gap:.4rem}.subsection-heading>span{font-size:.75rem}.cve-grid{grid-template-columns:1fr}.cve-card{padding:13px 0}.cve-card h4{font-size:.9375rem}.cve-card>div{gap:.5rem 1.2rem}.honors-list dd{font-size:.9375rem}.community-item{padding-left:48px}.community-mark{width:36px;height:36px;font-size:1rem}.community-meta{font-size:.8125rem}.sidebar{padding:0 12px;grid-template-columns:1fr;gap:9px}.side-card{padding:20px;border-radius:10px}.sidebar-footer{grid-column:auto}.footer{margin-top:16px;font-size:.75rem;gap:10px;flex-wrap:wrap}.footer span{font-size:.75rem}}
@media(max-width:360px){.top-nav a{font-size:.75rem}.topbar-inner{width:calc(100% - 1rem);gap:.5rem}.profile-content,.section{padding-inline:16px}.affiliations{gap:12px}.plain-link{padding:.35rem .3rem}.profile-actions{gap:5px}.pill{padding:.3rem .8rem}.project{grid-template-columns:30px minmax(0,1fr);gap:10px}.experience-mark{width:30px;height:30px}.project-group-heading>span{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{html{scroll-behavior:auto}body{background:#fff;font-size:11pt}.topbar{position:static}.top-nav,.sidebar,.profile-actions,.cover{display:none}.topbar-inner{width:100%;min-height:40px}.brand>span:last-child{display:block}.page-layout{display:block;width:100%;margin:10px 0}.profile-card,.section{border:0;border-bottom:1px solid #ddd;border-radius:0}.profile-content{padding:0}.profile-avatar{display:none}.identity-grid{grid-template-columns:1fr 200px}.identity h1{font-size:24pt}.affiliations{flex-direction:column}.section{padding:16px 0}.section h2{font-size:16pt}.project,.education-item,.paper-list li,.cve-card,.community-item{break-inside:avoid}.footer{width:100%;margin:10px 0}.profile-card{padding-bottom:16px}.brand-icon{background:#444!important}}

/* Current employment and education take priority in the profile. */
.profile-alias{display:inline-block;font-size:.875rem;color:#69717d;font-weight:400;letter-spacing:0;margin-left:.4rem;vertical-align:middle}.lig-mark{background:#edf3f9!important;color:#275b8d!important;font-size:.875rem!important;letter-spacing:-.04em}.khu-mark{background:#f7edef!important;color:#8e4053!important;font-size:.8125rem!important;letter-spacing:-.055em}.current-role{display:flex;gap:14px;align-items:flex-start;padding:8px 0 4px}.current-role>.experience-mark{flex-shrink:0}.role-content{min-width:0}.role-content h3{font-size:1rem;font-weight:650;line-height:1.65}.role-content h3 a:hover{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.external-mark{font-size:.8125rem;font-weight:400;color:#68798b;margin-left:.25rem}.role-team{font-size:1rem;margin-top:3px;line-height:1.65}.role-period{font-size:.875rem;color:var(--muted);margin-top:4px}.education-item .degree{font-size:1rem;color:#303740}.additional-education{margin-top:17px;border-top:1px solid #e9eaec;padding-top:14px}.additional-education summary{cursor:pointer;font-size:.875rem;color:#596776;padding:4px 0;line-height:1.7}.additional-education>div{font-size:.875rem;padding:9px 0 0 17px;color:#626a76;line-height:1.8}.additional-education p{margin:3px 0}.community-section summary{font-size:1rem;font-weight:550;cursor:pointer;line-height:1.7;color:#5e6773}.community-section summary>span{display:inline-block;font-size:.8125rem;color:#707984;font-weight:400;margin-left:.6rem}.community-section[open] summary{margin-bottom:12px}.additional-education summary:focus-visible,.community-section summary:focus-visible{outline:3px solid var(--blue);outline-offset:4px}.community-section:not([open]){padding-block:17px}.affiliations>a>span:last-child{min-width:0}
@media(max-width:600px){.profile-alias{font-size:.8125rem}.current-role{gap:12px}.current-role>.experience-mark{width:36px;height:36px}.role-content h3{font-size:1rem}.role-team{font-size:.9375rem}.community-section summary>span{font-size:.75rem}.affiliations{column-gap:18px;row-gap:10px}.affiliations>a:first-child{max-width:230px}.lig-mark.affiliation-mark{font-size:.75rem!important}.khu-mark.affiliation-mark{font-size:.75rem!important}}
