:root{--font-family-serif: "Spectral", Georgia, Cambria, "Times New Roman", Times, serif;--font-family-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-base: 16px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-base: 1.5;--line-height-tight: 1.3;--line-height-relaxed: 1.6;--font-size-sm: 14px;--font-size-md: 18px;--font-size-lg: 24px;--font-size-xl: 32px;--spacing-unit: 30px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 20px;--spacing-lg: 40px;--spacing-xl: 80px;--color-bg: #fdfdfd;--color-surface: #ffffff;--color-text-primary: #111;--color-text-secondary: #555;--color-text-tertiary: #666;--color-text-muted: #828282;--color-text-light: #aaa;--color-border-light: #e8e8e8;--color-border-medium: #ddd;--color-border-dark: #999;--color-accent: #111;--color-accent-hover: #000;--color-accent-dark: #333;--color-header-text: #424242;--color-code-bg: #f5f5f5;--color-table-stripe: #f9f9f9;--color-table-header-bg: #f0f0f0}body,h1,h2,h3,h4,h5,h6,p,blockquote,pre,hr,dl,dd,ol,ul,figure{margin:0;padding:0}body{font:400 16px/1.5 "Spectral",Georgia,Cambria,"Times New Roman",Times,serif;color:#111;background-color:#fdfdfd;font-feature-settings:"kern" 1;font-kerning:normal;display:flex;min-height:100vh;flex-direction:column}h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,figure,.highlight{margin-bottom:15px}main{display:block}img{max-width:100%;vertical-align:middle}figure>img{display:block}figcaption{font-size:14px}ul,ol{margin-left:30px}li>ul,li>ol{margin-bottom:0}h1,h2,h3,h4,h5,h6{font-weight:400}a{color:#111;text-decoration:underline;text-decoration-color:#ddd;text-underline-offset:2px;transition:text-decoration-color 0.3s ease}a:visited{color:#555}a:hover{color:#111;text-decoration-color:#111}.social-media-list a:hover{text-decoration:none}.social-media-list a:hover .username{text-decoration:underline}blockquote{color:#828282;border-left:4px solid #e8e8e8;padding-left:15px;font-size:18px;letter-spacing:-1px;font-style:italic}blockquote>:last-child{margin-bottom:0}pre,code{font-size:15px;border:1px solid #e8e8e8;background-color:#f5f5f5}code{padding:1px 5px}pre{padding:8px 10px;overflow-x:auto}pre>code{border:0;padding-right:0;padding-left:0}.wrapper{max-width:calc(800px - (30px * 2));margin-right:auto;margin-left:auto;padding-right:30px;padding-left:30px}@media screen and (max-width: 800px){.wrapper{max-width:calc(800px - 30px);padding-right:15px;padding-left:15px}}.svg-icon{width:16px;height:16px;display:inline-block;fill:#828282;padding-right:5px;vertical-align:text-top}.social-media-list li+li{padding-top:5px}table{margin-bottom:30px;width:100%;text-align:left;color:#555;border-collapse:collapse;border:1px solid #e8e8e8}table tr:nth-child(even){background-color:#f9f9f9}table th,table td{padding:10px 15px}table th{background-color:#f0f0f0;border:1px solid #ddd;border-bottom-color:#999}table td{border:1px solid #e8e8e8}.site-header{min-height:55.95px;padding-top:30px;position:relative}.header-content{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:20px}.site-title{font-size:26px;font-weight:400;line-height:54px;letter-spacing:-1px;margin-bottom:0;text-decoration:underline;text-decoration-color:#ddd;text-underline-offset:2px;transition:text-decoration-color 0.3s ease, opacity 0.3s ease}.site-title,.site-title:visited{color:#424242}.site-title:hover{opacity:0.6;text-decoration-color:#424242}.site-nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.site-nav .page-link{color:#424242;line-height:1.5;text-decoration:underline;text-decoration-color:#ddd;text-underline-offset:2px;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;transition:text-decoration-color 0.3s ease, opacity 0.3s ease}.site-nav .page-link:visited{color:#424242}.site-nav .page-link:hover{opacity:0.6;text-decoration-color:#424242}.site-footer{padding:40px 0 30px 0}.footer-links{list-style:none;margin:0;padding:0;display:flex;justify-content:center;gap:30px;flex-wrap:wrap}.footer-links li{margin:0}.footer-links a{display:flex;align-items:center;gap:4px;text-decoration:none;color:var(--color-text-muted);transition:color 0.3s ease}.footer-links a:hover{color:var(--color-text-secondary)}.page-content{padding:30px 0;flex:1}.page-heading{font-size:32px}.post-list-heading{font-size:28px}.post-list{margin-left:0;list-style:none}.post-list>li{margin-bottom:30px}.post-meta{font-size:14px;color:#828282}.post-link{display:block;font-size:24px}.post-header{margin-bottom:30px}.post-title{font-size:42px;letter-spacing:-1px;line-height:1}@media screen and (max-width: 800px){.post-title{font-size:36px}}.post-content{margin-bottom:30px}.post-content h2{font-size:32px}@media screen and (max-width: 800px){.post-content h2{font-size:28px}}.post-content h3{font-size:26px}@media screen and (max-width: 800px){.post-content h3{font-size:22px}}.post-content h4{font-size:20px}@media screen and (max-width: 800px){.post-content h4{font-size:18px}}.projects-container{display:flex;flex-direction:column;gap:60px;margin-top:30px}.project-item{display:flex;flex-direction:row;gap:45px;align-items:center}@media screen and (max-width: 600px){.project-item{flex-direction:column;align-items:flex-start}}.project-info{flex:1;display:flex;flex-direction:column;gap:15px}.project-title{font-size:28px;font-family:var(--font-family-sans);font-weight:500;margin-bottom:0}.project-description{font-size:16px;color:#555;margin-bottom:0;line-height:1.6}.project-meta{display:flex;align-items:center;gap:30px;flex-wrap:wrap}.project-language{display:inline-block;padding:4px 10px;border-radius:12px;font-family:var(--font-family-sans);font-size:14px;font-weight:500;background-color:#e8e8e8;color:#555;border:1px solid #ddd}.project-link{font-family:var(--font-family-sans);color:#424242;text-decoration:underline;text-decoration-color:#ddd;text-underline-offset:2px;font-weight:500;transition:text-decoration-color 0.3s ease, opacity 0.3s ease}.project-link:visited{color:#424242}.project-link:hover{opacity:0.6;text-decoration-color:#424242}.project-image{flex-shrink:0;width:300px;height:180px}@media screen and (max-width: 600px){.project-image{width:100%;height:auto}}.project-image svg,.project-image img{width:100%;height:100%;object-fit:contain}.highlight{background:#fff}.highlighter-rouge .highlight{background:#eef}.highlight .c{color:#998;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{font-weight:bold}.highlight .o{font-weight:bold}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:bold}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-weight:bold;font-style:italic}.highlight .gd{color:#000;background-color:#fdd}.highlight .gd .x{color:#000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000;background-color:#dfd}.highlight .gi .x{color:#000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kp{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .kt{color:#458;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:teal}.highlight .nb{color:#0086B3}.highlight .nc{color:#458;font-weight:bold}.highlight .no{color:teal}.highlight .ni{color:purple}.highlight .ne{color:#900;font-weight:bold}.highlight .nf{color:#900;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.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 .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}h1,h2,h3,h4,h5,h6{font-weight:var(--font-weight-semibold)}.home h2,.posts-section h2{padding-bottom:calc(var(--spacing-md) / 2);border-bottom:1px solid var(--color-border-light)}.resume-details,.coursework-list,.resume-publications,.resume-awards{margin:0;padding:0;list-style:none}.resume-details li,.coursework-list li,.resume-publications li,.resume-awards li{margin-bottom:var(--spacing-xs);padding-left:var(--spacing-md);position:relative}.resume-details li::before,.coursework-list li::before,.resume-publications li::before,.resume-awards li::before{content:"•";position:absolute;left:0;color:var(--color-text-primary)}.resume-details li:last-child,.coursework-list li:last-child,.resume-publications li:last-child,.resume-awards li:last-child{margin-bottom:0}.intro-section,.about-section{margin:0 0 3rem 0;display:flex;flex-wrap:wrap;gap:2rem;align-items:flex-start}.about-section{margin:0 0 1.5rem 0}.home h2{margin-bottom:1.5rem}.featured-image{flex:0 0 450px;max-width:450px}.img-responsive{max-width:100%;height:auto;box-shadow:0 2px 10px rgba(0,0,0,0.1)}.intro-text{flex:1;min-width:300px}.intro-text h2{margin-top:0;margin-bottom:1rem;color:var(--color-text-primary)}.intro-text p{margin-bottom:1.5rem;line-height:var(--line-height-relaxed)}.intro-text p:last-child{margin-bottom:0}.button{display:inline-block;padding:0.5rem 1rem;background-color:transparent;color:var(--color-text-primary);text-decoration:none;border:1px solid var(--color-text-primary);font-weight:var(--font-weight-medium);transition:all 0.3s ease}.button:hover{background-color:var(--color-text-primary);color:var(--color-surface);text-decoration:none}.posts-section{margin:0;margin-top:3rem}.posts-section h2{margin-bottom:1.5rem}.post-list{margin-left:0;list-style:none}.post-list li{margin-bottom:2rem}.post-list li:last-child{margin-bottom:0}.post-meta{font-size:0.8rem;color:var(--color-text-muted)}.post-link{display:block;font-size:1.5rem;margin-bottom:0.5rem}.page-content .intro-section{display:flex;flex-direction:row;flex-wrap:nowrap;width:100%;justify-content:space-between;align-items:flex-start}.page-content .intro-text{flex:1;order:1}.page-content .featured-image{flex:0 0 auto;order:2;max-width:450px}.page-content .featured-image img{width:380px;max-width:100%;height:auto;display:block}@media screen and (max-width: 768px){.intro-section{flex-direction:column}.featured-image,.intro-text{flex-basis:100%}.about-section .featured-image{margin:0 auto;text-align:center}.about-section .featured-image img{margin:0 auto;display:block}.page-content .intro-section{flex-direction:column}.page-content .featured-image,.page-content .intro-text{flex:0 0 100%;order:0;max-width:100%}}.about-link{display:inline-block;color:var(--color-text-primary);text-decoration:none;font-weight:var(--font-weight-medium)}.thesis-cover{width:320px;max-width:100%}.no-bottom-margin{margin-bottom:0}.thesis-section{margin-bottom:30px}.thesis-section .thesis-text{margin-bottom:20px}.thesis-section .thesis-text ul{margin-left:20px}.resume-container{max-width:800px;margin:0 auto;font-size:var(--font-size-sm);line-height:var(--line-height-base)}.resume-contact{text-align:center;margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border-light)}.resume-contact p{margin:0;font-size:var(--font-size-sm)}.resume-contact a{color:var(--color-text-primary);text-decoration:underline;text-decoration-color:var(--color-border-medium);text-underline-offset:2px;transition:text-decoration-color 0.3s ease}.resume-contact a:hover{text-decoration-color:var(--color-text-primary)}.resume-section{margin-bottom:var(--spacing-xl)}.resume-section:last-child{margin-bottom:0}.resume-section h2{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-md) 0;padding:0;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:1px;border:none}.resume-item{margin-bottom:calc(var(--spacing-md) + var(--spacing-xs))}.resume-item:last-child{margin-bottom:0}.resume-header{margin-bottom:var(--spacing-sm)}.resume-top-row{display:flex;align-items:center;gap:var(--spacing-md);white-space:nowrap;overflow:hidden;margin-bottom:2px}.resume-bottom-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);white-space:nowrap;overflow:hidden}.resume-line{flex:1;height:1px;background-image:linear-gradient(to right, var(--color-text-tertiary) 60%, transparent 60%);background-size:12px 1px;background-repeat:repeat-x;opacity:0.25;min-width:20px}.resume-date{font-family:var(--font-family-sans);font-size:calc(var(--font-size-sm) * 0.92);letter-spacing:-0.025em;font-weight:var(--font-weight-normal);font-variant-numeric:tabular-nums;color:var(--color-text-tertiary);flex-shrink:0;white-space:nowrap}.resume-org{font-family:var(--font-family-sans);font-size:var(--font-size-sm);letter-spacing:0.05em;font-weight:var(--font-weight-medium);margin:0;color:var(--color-text-primary);line-height:var(--line-height-tight);flex-shrink:0;white-space:nowrap}.resume-position{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);margin:0;color:var(--color-text-secondary);font-style:italic;flex-shrink:0;white-space:nowrap}.resume-location{color:var(--color-text-tertiary);flex-shrink:0;white-space:nowrap}.resume-details{margin:var(--spacing-sm) 0 0 0}.resume-details li{line-height:var(--line-height-base);font-size:var(--font-size-sm)}.coursework-section{margin-top:var(--spacing-sm);padding-left:var(--spacing-md)}.coursework-title{margin:var(--spacing-sm) 0 var(--spacing-xs) 0;font-size:var(--font-size-sm);color:var(--color-text-primary)}.coursework-title:first-child{margin-top:0}.coursework-list li{font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.4}.course-code{font-family:var(--font-family-sans);font-size:calc(var(--font-size-sm) * 0.92);letter-spacing:-0.025em;font-weight:var(--font-weight-normal);color:var(--color-text-secondary)}.resume-publications li{line-height:var(--line-height-relaxed)}.resume-publications strong{font-weight:var(--font-weight-medium)}.resume-publications a{color:var(--color-text-secondary);text-decoration:underline;text-decoration-color:var(--color-border-medium);text-underline-offset:2px;word-break:break-all;transition:text-decoration-color 0.3s ease}.resume-publications a:hover{color:var(--color-text-primary);text-decoration-color:var(--color-text-primary)}.resume-awards strong{font-weight:var(--font-weight-medium)}@media screen and (max-width: 600px){.resume-container{font-size:var(--font-size-sm)}.resume-top-row{gap:var(--spacing-sm)}.resume-bottom-row{flex-direction:column;align-items:flex-start;gap:2px}.resume-section h2{font-size:calc(var(--font-size-base) - 1px)}.resume-org{font-size:var(--font-size-sm)}}
