@import"https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300..600;1,6..72,400..500&family=IBM+Plex+Mono:wght@400;500;600&display=swap";.section-container{width:1300px}.title,.para{font-kerning:none;-webkit-text-rendering:optimizeSpeed;text-rendering:optimizeSpeed;-webkit-transform:translateZ(0);transform:translateZ(0)}@media only screen and (max-width: 1600px){.section-container{width:1200px;max-width:calc(100% - 160px)}}@media only screen and (max-width: 1400px){.section-container{width:900px}}@media only screen and (max-width: 900px){.section-container{width:500px;max-width:var(--cWidth)}}.about-section{padding:clamp(100px,14vw,160px) 0 clamp(60px,8vw,100px);margin:auto}.about-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:20px}.about-card-bio{grid-row:1 / 3}.about-card-toolkit{grid-column:1 / -1}.about-card-bio p{font-size:17px;line-height:1.6;color:var(--text-2);margin:0 0 16px}.about-card-bio p:last-child{margin-bottom:0}.about-role{padding:14px 0;border-top:1px solid var(--border)}.about-role:first-of-type{border-top:none;padding-top:0}.about-role h5{font-size:17px;font-weight:600;margin:0;color:var(--text)}.about-role .about-accent{display:block;font-size:14px;font-style:normal;margin:4px 0}.about-role small{font-family:var(--font-mono);font-size:12px;color:var(--text-3)}@media only screen and (max-width: 900px){.about-grid{grid-template-columns:1fr}.about-card-bio{grid-row:auto}.about-card{padding-top:16px}}.career-section{display:flex;flex-direction:column;align-items:center;place-items:center;justify-content:center;position:relative;opacity:1;height:auto;margin:auto auto 250px;padding:120px 0}.career-section h2{font-family:var(--font-serif);font-size:70px;line-height:1.05;font-weight:500;letter-spacing:var(--track-tight);text-align:center;color:var(--text);max-width:18ch;margin:10px auto 90px}.career-info{position:relative;display:flex;flex-direction:column;margin:0 auto}.career-info-box{display:flex;justify-content:space-between;margin-bottom:50px}.career-info-box p{width:40%;font-size:18px;font-weight:300;line-height:1.55;letter-spacing:var(--track-normal);color:var(--text-2);margin:0}.career-info-box p strong{font-weight:600;color:var(--text)}.career-info-in{display:flex;width:40%;justify-content:space-between;gap:50px}.career-info h3{font-family:var(--font-mono);font-size:22px;margin:0;font-weight:500;line-height:1;letter-spacing:0;color:var(--text-3)}.career-info h4{font-family:var(--font-serif);font-size:33px;line-height:1;letter-spacing:var(--track-tight);font-weight:500;margin:0;color:var(--text)}.career-info h5{font-weight:500;letter-spacing:.01em;font-size:18px;text-transform:capitalize;margin:10px 0;color:var(--accentColor)}.career-timeline{position:absolute;top:-50px;left:50%;transform:translate(-50%);width:2px;height:100%;background-image:linear-gradient(to top,var(--accent-deep) 20%,var(--accentColor) 50%,transparent 95%);max-height:0%}.career-dot{position:absolute;bottom:0;left:50%;transform:translate(-50%,50%);background-color:var(--accent-strong);width:9px;height:9px;border-radius:50px;box-shadow:0 0 5px 1px #1e5f63d9,0 0 16px 4px #1e5f6359;animation:timeline .8s linear infinite forwards}@keyframes timeline{10%,20%,50%,70%,90%{box-shadow:0 0 5px 1px #1e5f63b3}10%,30%,0%,to,64%,80%{box-shadow:0 0 5px 1px #1e5f63d9,0 0 16px 4px #1e5f6359}}@keyframes timeline2{0%{box-shadow:0 0 5px 1px #1e5f63b3}to{box-shadow:0 0 5px 1px #1e5f63d9,0 0 16px 4px #1e5f6359}}@media only screen and (max-width: 1400px){.career-section h2{font-size:50px;line-height:50px}.career-info h4{font-size:22px;line-height:24px;width:180px}.career-info h5{font-size:17px}.career-info h3{font-size:16px;line-height:24px}.career-info-box p{font-size:14px}.career-info-in{width:45%;gap:20px}.career-info-box p{width:45%}}@media only screen and (max-width: 1025px){.career-section{padding:220px 0 70px;margin-top:-200px;margin-bottom:0}}@media only screen and (max-width: 900px){.career-info-box{flex-direction:column;gap:10px;margin-bottom:70px}.career-info-in,.career-info-box p{width:100%;padding-left:10%;box-sizing:border-box}.career-timeline{left:0%}.career-container{width:calc(100% - 25px)}}@media only screen and (max-width: 600px){.career-info{margin:0}.career-section h2{width:100%;font-size:45px;line-height:45px;margin-top:0}.career-info-in{gap:0px}.career-info h3{font-size:14px;line-height:22px}.career-info-in,.career-info-box p{padding-left:5%}.career-section{padding-top:90px;margin-top:-70px;align-items:start;place-items:inherit;justify-content:left}}.contact-section{margin:auto;padding-top:100px;padding-bottom:60px;position:relative;z-index:2;background-color:var(--backgroundColor);box-shadow:0 0 0 100vmax var(--backgroundColor);clip-path:inset(0 -100vmax)}.contact-title{font-family:var(--font-serif);font-size:60px;font-weight:500;letter-spacing:var(--track-tighter);margin:0 0 50px;color:var(--text)}.contact-flex{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:80px}.contact-flex h4{font-family:var(--font-mono);font-weight:500;margin:0 0 14px;font-size:13px;color:var(--text-3)}.contact-box{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.contact-flex p{margin:0 0 10px;color:var(--text-2);line-height:1.55}.contact-flex p strong{font-weight:600;color:var(--text)}a.contact-social{font-size:22px;font-weight:500;letter-spacing:var(--track-tight);padding-bottom:2px;border-bottom:1px solid var(--border-2);overflow-wrap:anywhere;transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease)}a.contact-email{font-family:var(--font-serif);font-size:30px;margin-bottom:10px}a.contact-social:hover{color:var(--accent);border-color:var(--accent)}.contact-credit{display:flex;justify-content:space-between;gap:20px;margin-top:80px;padding-top:18px;border-top:1px solid var(--border);font-size:15px;color:var(--text-3)}.contact-credit span{display:inline-flex;align-items:center;gap:6px}.contact-credit span>span{color:var(--text)}@media only screen and (max-width: 1600px){.contact-title{font-size:50px}}@media only screen and (max-width: 1300px){.contact-title{font-size:40px}a.contact-email{font-size:26px}a.contact-social{font-size:20px}}@media only screen and (max-width: 900px){.contact-flex{grid-template-columns:minmax(0,1fr);gap:50px}.contact-section{padding-top:50px;padding-bottom:40px}.contact-credit{flex-direction:column;gap:6px;margin-top:50px}.contact-container{width:calc(100% - 25px)}a.contact-email{font-size:22px}}.landing-section{width:100%;max-width:var(--cMaxWidth);margin:auto;position:relative;height:var(--vh)}.landing-container{width:var(--cWidth);margin:auto;height:100%;position:relative;max-width:var(--cMaxWidth);z-index:9}.landing-grid{height:100%;display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch;column-gap:clamp(24px,4vw,80px)}.landing-text{align-self:center;justify-self:start;position:relative;z-index:9;max-width:640px}.landing-eyebrow{margin:0 0 12px;color:var(--accentColor);font-weight:500;font-size:clamp(16px,1.4vw,26px);letter-spacing:.01em}.landing-name{margin:0;color:var(--text);font-family:var(--font-serif);font-weight:500;letter-spacing:var(--track-tighter);font-size:clamp(46px,6vw,104px);line-height:1.02}.landing-name span{font-style:italic}.landing-role{margin:22px 0 0;color:var(--text-2);font-weight:500;letter-spacing:var(--track-tight);font-size:clamp(17px,1.7vw,30px)}.landing-role span{color:var(--accent);padding:0 4px}.landing-stats{display:flex;gap:clamp(20px,3vw,44px);margin-top:36px;padding-top:28px;border-top:1px solid var(--border)}.landing-stat{display:flex;flex-direction:column;gap:6px;width:130px;flex-shrink:0}.landing-stat-value{font-family:var(--font-mono);font-size:clamp(20px,2vw,26px);font-weight:500;color:var(--accent)}.landing-stat-label{font-size:13px;color:var(--text-3);line-height:1.35}@media screen and (max-width: 900px){.landing-stats{justify-content:center;gap:clamp(10px,3vw,44px)}.landing-stat{width:auto;min-width:0;flex:1 1 0}}.landing-photo-wrap{position:relative;z-index:6;align-self:end;justify-self:center;width:100%;height:min(calc(var(--vh) * .84),760px);display:flex;align-items:flex-end;justify-content:center}.landing-photo{position:relative;z-index:2;width:auto;height:100%;max-width:100%;object-fit:contain;object-position:bottom center;-webkit-mask-image:linear-gradient(180deg,#000 88%,transparent);mask-image:linear-gradient(180deg,#000 88%,transparent)}.landing-photo-glow{position:absolute;z-index:1;width:116%;height:60%;bottom:8%;left:50%;transform:translate(-50%);background:radial-gradient(closest-side,#1e5f6338,#1e5f6300 72%);filter:blur(70px);border-radius:50%;pointer-events:none}.nav-fade{position:fixed;top:0;width:100%;height:120px;background-image:linear-gradient(180deg,rgba(var(--scrim-rgb),.94) 55%,rgba(var(--scrim-rgb),0));-webkit-backdrop-filter:blur(14px) saturate(150%);backdrop-filter:blur(14px) saturate(150%);-webkit-mask-image:linear-gradient(180deg,#000 65%,transparent);mask-image:linear-gradient(180deg,#000 65%,transparent);pointer-events:none;z-index:12;opacity:0;left:0}@media screen and (max-width: 900px){.landing-grid{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);align-content:center;row-gap:8px}.landing-text{align-self:end;justify-self:center;text-align:center}.landing-photo-wrap{height:min(calc(var(--vh) * .46),420px)}}@media screen and (max-width: 899px){.landing-text{padding-top:90px}}.section-mark{display:flex;align-items:center;gap:3px;margin:0 0 22px;height:9px}.section-mark:before{content:"";flex:1 1 auto;height:1px;background:repeating-linear-gradient(90deg,var(--border-2) 0,var(--border-2) 1px,transparent 1px,transparent 10px)}.section-mark span{font-family:var(--font-mono);font-size:12px;color:var(--text-3);letter-spacing:var(--track-normal);white-space:nowrap}.about-card{border-top:1px solid var(--border);padding-top:20px}.card-eyebrow{font-family:var(--font-mono);font-size:12px;color:var(--text-3);margin:0 0 16px}.about-accent{color:var(--accent)}.section-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:50px}.section-headline{font-family:var(--font-serif);font-weight:500;font-size:clamp(30px,4.2vw,54px);line-height:1.15;letter-spacing:var(--track-tight);color:var(--text);max-width:900px;margin:0}.section-subhead{max-width:32ch;font-size:16px;line-height:1.6;color:var(--text-2);margin:0;flex-shrink:0}@media only screen and (max-width: 900px){.section-hero{flex-direction:column;align-items:flex-start;gap:20px}}.hover-link{position:relative;display:flex;text-wrap:nowrap;overflow:hidden}.hover-in{position:relative;transition:transform var(--dur) var(--ease),color var(--dur) var(--ease)}.hover-in div{display:flex;position:absolute;top:100%;left:0}.hover-link:hover .hover-in{transform:translateY(-100%);color:var(--accentColor)}.header{display:flex;max-width:var(--cMaxWidth);width:var(--cWidth);justify-content:flex-end;padding:20px 0;margin-bottom:-100px;box-sizing:border-box;position:fixed;left:50%;transform:translate(-50%);top:0;z-index:9999}.header ul{font-family:var(--font-mono);font-size:12px;display:flex;flex-direction:row;margin:0;padding:8px 0;list-style:none;column-gap:10px;row-gap:8px;align-items:center}.header ul li{margin-left:0;letter-spacing:.02em;color:var(--text-2);font-weight:500;cursor:pointer;transition:color var(--dur) var(--ease)}.header ul li:hover{color:var(--text)}.theme-toggle{display:flex;align-items:center;padding:0;font-size:15px;line-height:1;color:var(--text-2);background:none;border:none;cursor:pointer;transition:color var(--dur) var(--ease)}.theme-toggle:hover{color:var(--accentColor)}.navbar-connect{position:absolute;display:none;left:50%;top:50%;transform:translate(-50%,-50%);font-size:15px;letter-spacing:.01em;font-weight:500;color:var(--text-2);transition:color var(--dur) var(--ease)}.navbar-connect:hover{color:var(--text)}.navbar-title{font-weight:600;font-size:14px;letter-spacing:var(--track-tight)}@media only screen and (min-width: 500px){.header{padding:20px 0}.header ul{flex-direction:row;align-items:center;column-gap:40px;font-size:14px}.header ul li{color:var(--text-2)}.navbar-title{font-size:16px}}@media only screen and (min-width: 900px){.navbar-connect{display:block}}@media only screen and (min-width: 1200px){.header{padding:35px 0}.header ul{column-gap:80px;font-size:16px}.navbar-connect{font-size:16px}.navbar-title{font-size:18px}}.icons-section{display:flex;align-items:center;gap:24px;margin-top:24px}.social-icons{display:flex;gap:4px;margin-left:-10px}.social-icons a:hover{color:var(--accentColor)}.social-icons span{width:44px;height:44px;position:relative;display:flex}.social-icons a{--siLeft: 50%;--siTop: 50%;position:absolute;left:var(--siLeft, 50%);top:var(--siTop, 50%);transform:translate(-50%,-50%);display:flex;font-size:22px;color:var(--text-2);will-change:left,top;transition:transform .3s ease-out}.resume-button{display:flex;align-items:center;gap:6px;text-wrap:nowrap;font-size:16px;font-weight:500;color:var(--text-2);border-left:1px solid var(--border);padding-left:24px;transition:color var(--dur) var(--ease)}.resume-button:hover{color:var(--text)}.resume-button span{display:flex;font-size:18px}@media only screen and (max-width: 900px){.icons-section{justify-content:center;margin-top:16px}}.research-section{padding:clamp(60px,8vw,100px) 0;margin:auto}.research-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:30px}.research-filter{font-family:var(--font);font-size:14px;font-weight:500;color:var(--text-2);background:transparent;border:1px solid var(--border-2);border-radius:var(--r-pill);padding:9px 16px;cursor:pointer;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.research-filter span{font-family:var(--font-mono);font-size:12px;color:var(--text-3);margin-left:6px}.research-filter:hover{border-color:var(--accent);color:var(--text)}.research-filter-active{background:var(--text);color:var(--bg);border-color:var(--text)}.research-filter-active span{color:var(--bg);opacity:.6}.research-list{display:flex;flex-direction:column}.research-item{display:flex;gap:40px;padding:28px 0;border-top:1px solid var(--border)}.research-item-meta{flex-shrink:0;width:120px;display:flex;flex-direction:column;gap:4px}.research-type{font-family:var(--font-mono);font-size:12px;color:var(--accent)}.research-repo{font-family:var(--font-mono);font-size:13px;color:var(--accent)}.research-year{font-family:var(--font-mono);font-size:13px;color:var(--text-3)}.research-item-body h4{font-family:var(--font-serif);font-weight:500;font-size:24px;line-height:1.3;letter-spacing:var(--track-tight);color:var(--text);margin:0 0 10px}.research-authors{font-size:14px;color:var(--text-2);margin:0 0 4px}.research-authors strong{font-weight:600;color:var(--text)}.research-venue{font-family:var(--font-mono);font-size:12px;color:var(--text-3);margin:0 0 12px}.research-desc{font-size:15px;line-height:1.55;color:var(--text-2);margin:0;max-width:60ch}.research-link{flex-shrink:0;align-self:center;margin-left:auto;width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-2);border:1px solid var(--border-2);border-radius:var(--r-pill);transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease),transform var(--dur) var(--ease)}.research-link:hover{border-color:var(--accent);color:var(--accent);transform:scale(1.06)}.oss-stats{display:flex;flex-wrap:wrap;gap:clamp(24px,4vw,56px);padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid var(--border)}.oss-stat{display:flex;flex-direction:column;gap:6px}.oss-stat-value{font-size:clamp(26px,2.6vw,34px);font-weight:600;letter-spacing:var(--track-tight);line-height:1;color:var(--accent)}.oss-stat-label{font-size:13px;color:var(--text-3)}.oss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-auto-rows:1fr;gap:14px}.oss-card{display:flex;flex-direction:column;gap:10px;padding:20px;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-md);transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.oss-card:hover{border-color:var(--accent);transform:translateY(-2px)}.oss-card .research-repo{display:inline-flex;align-items:center;gap:6px}.oss-card-stats{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--text-3)}.research-own-project{margin-top:40px}.research-own-name{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-serif);font-size:22px;font-weight:500;color:var(--text);margin-bottom:12px}.research-own-name:hover{color:var(--accent)}.research-own-project p{font-size:15px;line-height:1.55;color:var(--text-2);margin:0 0 16px;max-width:70ch}@media only screen and (max-width: 900px){.research-item{flex-direction:column;gap:12px}.research-item-meta{width:auto;flex-direction:row;gap:10px}.research-link{margin-left:0;align-self:flex-start}}.work-section{position:relative;z-index:1;background-color:var(--backgroundColor);padding:80px 0}.work-container{margin:auto}.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:64px}.work-item{display:flex;flex-direction:column;gap:8px;padding:28px 0 36px;border-top:1px solid var(--border)}.work-category{margin:0;font-size:15px;color:var(--accent)}.work-item h4{margin:0;font-family:var(--font-serif);font-size:28px;font-weight:500;line-height:1.2;letter-spacing:var(--track-tight);color:var(--text)}.work-item h4 a{transition:color var(--dur) var(--ease)}.work-item h4 a:hover{color:var(--accent)}.work-highlights{margin:4px 0 0;padding-left:18px;color:var(--text-2);font-size:15px;line-height:1.55}.work-highlights li+li{margin-top:4px}.tool-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tool-tag{font-family:var(--font-mono);font-size:12px;color:var(--text-2);padding:5px 10px;border:1px solid var(--border-2);border-radius:var(--r-pill)}@media only screen and (max-width: 1400px){.work-item h4{font-size:24px}}@media only screen and (max-width: 900px){.work-section{padding:50px 0}.work-grid{grid-template-columns:minmax(0,1fr)}.work-item h4{font-size:21px}}:root{--font: "Newsreader", "Iowan Old Style", "Palatino Linotype", serif;--font-serif: "Newsreader", "Iowan Old Style", "Palatino Linotype", serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--track-tighter: -.02em;--track-tight: -.012em;--track-normal: 0em;--track-eyebrow: .06em;--accentColor: #1e5f63;--backgroundColor: #edf0ee;--accent: #1e5f63;--accent-strong: #2e7a80;--accent-deep: #123f42;--bg: #edf0ee;--bg-deep: #e5e9e6;--text: #14181a;--text-2: #454c4e;--text-3: #7a8285;--surface: rgba(20, 24, 26, .035);--surface-2: rgba(20, 24, 26, .06);--border: rgba(20, 24, 26, .12);--border-2: rgba(20, 24, 26, .22);--ink-rgb: 20, 24, 26;--scrim-rgb: 237, 240, 238;--r-sm: 3px;--r-md: 4px;--r-lg: 6px;--r-pill: 980px;--shadow-sm: none;--shadow-md: none;--shadow-lg: none;--ease: cubic-bezier(.32, .72, 0, 1);--ease-spring: cubic-bezier(.5, 1.5, .4, 1);--dur: .4s;--dur-slow: .7s;font-family:var(--font);font-optical-sizing:auto;font-style:normal;line-height:1.5;scroll-behavior:smooth;color-scheme:light;color:var(--text);background-color:var(--backgroundColor);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;-webkit-user-select:none;-moz-user-select:none;--vh: 100vh;--vh: 100svh}:root[data-theme=dark]{color-scheme:dark;--accentColor: #4fb8be;--backgroundColor: #12171a;--accent: #4fb8be;--accent-strong: #6fd0d5;--accent-deep: #1e5f63;--bg: #12171a;--bg-deep: #0c1012;--text: #e7ecea;--text-2: #a9b2b1;--text-3: #74807e;--surface: rgba(231, 236, 234, .045);--surface-2: rgba(231, 236, 234, .07);--border: rgba(231, 236, 234, .12);--border-2: rgba(231, 236, 234, .22);--ink-rgb: 231, 236, 234;--scrim-rgb: 12, 16, 18}h1,h2,h3,h4,h5,h6{font-family:var(--font);letter-spacing:var(--track-tight)}::selection{background-color:#1e5f632e;color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}body{overflow:hidden}a{color:inherit;text-decoration:inherit;transition:color var(--dur) var(--ease)}a:hover{color:var(--accentColor)}main{opacity:0;transition:.3s}.main-active{opacity:0;animation:fadeIn .4s 1;animation-fill-mode:forwards}@keyframes fadeIn{to{opacity:1}}body{margin:0;height:auto;background-color:var(--bg-deep);flex-grow:1;--cWidth: calc(100% - 30px) ;--cMaxWidth: 1920px;max-width:100vw;overflow-x:hidden}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(var(--ink-rgb),.16);border-radius:var(--r-pill);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:rgba(var(--ink-rgb),.28);background-clip:padding-box}.main-body{max-width:100vw;overflow-x:hidden}.container-main{width:100%;margin:auto;position:relative}.container1{width:var(--cWidth);height:var(--vh);margin:auto;position:relative}.split-line{overflow:hidden}.split-h2{overflow:hidden;display:flex;white-space:nowrap;flex-wrap:nowrap}.techstack{width:100%;position:relative;overflow:clip;height:var(--vh);margin:50px auto -100px}.techstack h2{font-family:var(--font-serif);font-style:italic;font-size:80px;text-align:center;position:absolute;width:100%;top:120px;left:0;z-index:1;pointer-events:none;font-weight:500;letter-spacing:var(--track-tight);color:var(--text)}@media screen and (min-width: 768px){body{--cWidth: 94%}}@media screen and (max-width: 900px){.techstack h2{font-size:40px}}@media (prefers-reduced-motion: reduce){:root{scroll-behavior:auto}.career-dot,.loaderGame-in,.loaderGame-ball,.loading-box{animation:none!important}}
