@import url(https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body,html{height:100vh}.about-container{background-color:var(--background);color:var(--text);display:flex;gap:var(--l);height:calc(100vh - var(--s) - var(--xxs)*2);margin:0 auto;max-width:1200px;padding:var(--s) var(--l)}.about-sidebar{flex-shrink:0;min-width:280px;width:280px}.profile-image{border-radius:50%;height:120px;margin-bottom:var(--xs);object-fit:cover;width:120px}.name{color:var(--text);font-family:serif;font-size:var(--l);font-weight:700;margin:0 0 var(--xxs) 0}.interests{margin:0 0 var(--xs) 0;opacity:.9}.interests,.title{color:var(--text);font-size:var(--xs);font-weight:400}.title{margin:0 0 var(--xxxs) 0;opacity:.8}.affiliation,.location{color:var(--text);font-size:var(--xs);font-weight:400;margin:0 0 var(--xxxs) 0;opacity:.8}.contact-links{margin-top:var(--s)}.contact-text{color:var(--text);font-size:var(--xs);line-height:1.5;margin:0 0 var(--s) 0}.social-links{display:flex;flex-direction:column;gap:var(--xxs)}.social-link{color:var(--text);cursor:pointer;font-size:var(--xs);text-decoration:none;transition:color var(--transition-speed) ease-in-out}.social-link:hover{color:var(--link)}.about-main{flex:1 1;padding-left:var(--s);position:relative}.about-section,.work-section{margin-bottom:var(--s)}.about-section h2{color:var(--text);font-size:var(--s);font-weight:600;margin:0 0 var(--s) 0}.work-section h2{color:var(--text);font-size:var(--xsxs);font-weight:600;margin:0 0 var(--xs) 0}.about-description{color:var(--text);font-size:var(--xs);line-height:1.6;margin:0}.work-item{margin-bottom:var(--xs)}.work-item:last-child{margin-bottom:0}.update-text{color:var(--text);font-size:var(--xs);font-weight:400;line-height:1.5;margin:0}.experience-list{list-style:none;margin:0;padding:0}.experience-item{color:var(--text);font-size:var(--xs);font-weight:400;line-height:1.5;margin:0 0 var(--xs) 0;padding-left:var(--s);position:relative}.experience-item:before{color:var(--text);content:"•";left:var(--xxs);opacity:.6;position:absolute}.experience-item:last-child{margin-bottom:0}.link{color:var(--link);text-decoration:none}.link:hover{text-decoration:underline}.link:visited{color:var(--link)}.separator{background-color:var(--border);height:1px;margin:var(--s) 0 var(--xs) 0;width:100%}.footer{align-items:center;display:flex;justify-content:space-between;margin-top:var(--s)}.copyright{color:var(--text);font-size:var(--xs);font-style:italic;opacity:.6}@media (max-width:768px){.about-container{flex-direction:column;gap:var(--s);height:auto;min-height:calc(100vh - var(--s) - var(--xxs)*2);padding:var(--s)}.about-sidebar{min-width:100%;text-align:center;width:100%}.profile-image{height:100px;width:100px}.about-main{display:flex;flex:1 1;flex-direction:column;padding-left:0}.social-links{align-items:center;flex-direction:row;flex-wrap:wrap;gap:var(--s);justify-content:center}.footer{align-items:center;flex-direction:column;gap:var(--xs);margin-top:var(--s)}}:root{--background:#f5f5f5;--text:#1a1a1a;--link:#2563eb;--xxxs:clamp(0.1rem,0.1vw,0.2rem);--xxs:clamp(0.5rem,0.5vw,1rem);--xs:clamp(0.75rem,1vw,1.25rem);--xsxs:clamp(0.85rem,1.35vw,1.35rem);--xss:clamp(1rem,1.5vw,1.5rem);--s:clamp(1.25rem,2vw,2rem);--sm:clamp(1.5rem,3vw,2.5rem);--m:clamp(2rem,4vw,3rem);--ml:clamp(2.5rem,5vw,3.5rem);--l:clamp(3rem,6vw,4rem);--xl:clamp(4rem,8vw,5rem);--xxl:clamp(10rem,20vw,12rem);--transition-speed:0.12s}.dark-mode{--background:#1a1a1a;--text:#f5f5f5;--link:#4a9eff;--border:#ffffff1a}.light-mode{--background:#f5f5f5;--text:#1a1a1a;--link:#2563eb;--border:#0000001a}body{font-family:Noto Sans,sans-serif}.background,.dark-mode-icon,.header,.light-mode-icon,.profile-image,body{transition:background-color .12s ease-in-out,color .12s ease-in-out,fill .12s ease-in-out;transition:background-color var(--transition-speed) ease-in-out,color var(--transition-speed) ease-in-out,fill var(--transition-speed) ease-in-out}.header{align-items:center;background-color:var(--background);display:flex;flex-shrink:0;height:var(--s);justify-content:space-between;margin-bottom:none;padding:var(--xxs);text-align:center}.header,.left{color:var(--text)}.left{font-weight:700;margin-left:var(--s)}.name{cursor:pointer;font-size:var(--s)}.coursework-name{cursor:pointer;font-size:var(--xs)}.coursework-name-active{font-weight:700}.coursework-name-inactive{font-weight:400}.right{display:flex;gap:var(--s)}.projects-name{cursor:pointer;font-size:var(--xs)}.projects-name-active{font-weight:700!important}.projects-name-inactive{font-weight:400!important}.blog-name{cursor:pointer;font-size:var(--xs)}.blog-name-active{font-weight:700!important}.blog-name-inactive{font-weight:400!important}.dark-mode-icon{fill:var(--text);cursor:pointer;height:var(--xs);margin-right:var(--s);width:var(--xs)}.dark-mode-icon:hover{fill:var(--link)}.light-mode-icon{cursor:pointer;height:var(--xs);margin-right:var(--s);width:var(--xs)}.light-mode-icon:hover{fill:var(--link)}.spotify-container{display:inline-block;min-height:var(--xs);min-width:var(--xs);position:relative}.spotify-link{align-items:center;background:none;border:none;color:var(--text);cursor:pointer;display:inline-flex;font-size:var(--xs);justify-content:center;margin:0;padding:0;text-decoration:none;transition:color var(--transition-speed) ease-in-out}.spotify-link:hover{color:var(--link)}.music-icon{color:var(--text);display:block;flex-shrink:0;height:var(--xs);transition:color var(--transition-speed) ease-in-out;width:var(--xs)}.spotify-link:hover .music-icon{color:var(--link)}.spotify-popup{animation:fadeIn .2s ease-in-out;background-color:var(--background);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #0000001a;margin-top:var(--xxs);min-width:280px;padding:var(--s);position:absolute;right:0;top:100%;z-index:1000}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInMobile{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.now-playing-header{align-items:center;display:flex;gap:var(--xxs);margin-bottom:var(--xs)}.now-playing-text,.playing-indicator{font-size:var(--xs)}.now-playing-text{color:var(--text);font-weight:600}.album-art{border-radius:4px;height:80px;object-fit:cover;width:80px}.album-art,.song-info{margin-bottom:var(--xs)}.song-title{font-weight:600;line-height:1.3}.song-artist,.song-title{color:var(--text);font-size:var(--xs);margin-bottom:var(--xxxs)}.song-artist{opacity:.8}.song-album{color:var(--text);font-size:var(--xs);font-style:italic;opacity:.6}.progress-container{margin-top:var(--xs)}.progress-bar{background-color:var(--border);border-radius:2px;height:4px;margin-bottom:var(--xxxs);overflow:hidden;width:100%}.progress-fill{background-color:var(--link);border-radius:2px;height:100%;transition:width .3s ease}.progress-time{color:var(--text);font-size:var(--xs);opacity:.7;text-align:center}.listen-on-spotify{border:1px solid var(--link);border-radius:4px;color:var(--link);display:inline-block;font-size:var(--xs);padding:var(--xxxs) var(--xs);text-decoration:none;transition:all var(--transition-speed) ease-in-out}.listen-on-spotify:hover{background-color:var(--link);color:var(--background)}.not-playing{padding:var(--xs);text-align:center}.not-playing-text{color:var(--text);font-size:var(--xs);font-style:italic;opacity:.6}@media (max-width:768px){.spotify-popup{animation:fadeInMobile .2s ease-in-out;left:50%;margin-top:0;max-width:90vw;position:fixed;right:auto;top:50%;transform:translate(-50%,-50%);z-index:1001}.listen-on-spotify{display:block;text-align:center}.listen-on-spotify,.not-playing .listen-on-spotify{margin-top:var(--xs)}.spotify-link{-webkit-tap-highlight-color:rgba(0,0,0,.1);tap-highlight-color:#0000001a}}@media (prefers-color-scheme:dark){.spotify-popup{box-shadow:0 4px 12px #0000004d}}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_AMS-Regular.73ea273a72f4aca30ca5.woff2) format("woff2"),url(/static/media/KaTeX_AMS-Regular.d562e886c52f12660a41.woff) format("woff"),url(/static/media/KaTeX_AMS-Regular.853be92419a6c3766b9a.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Caligraphic-Bold.a1abf90dfd72792a577a.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Bold.d757c535a2e5902f1325.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Bold.7489a2fbfb9bfe704420.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Caligraphic-Regular.d6484fce1ef428d5bd94.woff2) format("woff2"),url(/static/media/KaTeX_Caligraphic-Regular.db074fa22cf224af93d7.woff) format("woff"),url(/static/media/KaTeX_Caligraphic-Regular.7e873d3833eb108a0758.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Fraktur-Bold.931d67ea207ab37ee693.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Bold.354501bac435c3264834.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Bold.4c761b3711973ab04edf.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Fraktur-Regular.172d3529b26f8cedef6b.woff2) format("woff2"),url(/static/media/KaTeX_Fraktur-Regular.6fdf0ac577be0ba82a4c.woff) format("woff"),url(/static/media/KaTeX_Fraktur-Regular.ed305b5434865e06ffde.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/static/media/KaTeX_Main-Bold.39890742bc957b368704.woff2) format("woff2"),url(/static/media/KaTeX_Main-Bold.0c3b8929d377c0e9b2f3.woff) format("woff"),url(/static/media/KaTeX_Main-Bold.8169508bf58f8bd92ad8.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Main-BoldItalic.20f389c4120be058d80a.woff2) format("woff2"),url(/static/media/KaTeX_Main-BoldItalic.428978dc7837d46de091.woff) format("woff"),url(/static/media/KaTeX_Main-BoldItalic.828abcb200061cffbaae.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Main-Italic.fe2176f79edaa716e621.woff2) format("woff2"),url(/static/media/KaTeX_Main-Italic.fd947498bc16392e76c2.woff) format("woff"),url(/static/media/KaTeX_Main-Italic.fa675e5e4bec9eb250b6.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Main-Regular.f650f111a3b890d116f1.woff2) format("woff2"),url(/static/media/KaTeX_Main-Regular.4f35fbcc9ee8614c2bcc.woff) format("woff"),url(/static/media/KaTeX_Main-Regular.9eba1d77abcf2aa6e94e.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/static/media/KaTeX_Math-BoldItalic.dcbcbd93bac0470b462d.woff2) format("woff2"),url(/static/media/KaTeX_Math-BoldItalic.3f07ed67f06c720120ce.woff) format("woff"),url(/static/media/KaTeX_Math-BoldItalic.bf2d440b3a42ea78a998.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/static/media/KaTeX_Math-Italic.6d3d25f4820d0da8f01f.woff2) format("woff2"),url(/static/media/KaTeX_Math-Italic.96759856b4e70f3a8338.woff) format("woff"),url(/static/media/KaTeX_Math-Italic.8a5f936332e8028c7278.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:700;src:url(/static/media/KaTeX_SansSerif-Bold.95591a929f0d32aa282a.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Bold.b9cd458ac6d5889ff9c3.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Bold.5b49f4993ae22d7975b4.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:italic;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Italic.7d393d382f3e7fb1c637.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Italic.8d593cfaa96238d5e2f8.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Italic.b257a18c016f37ee4543.ttf) format("truetype")}@font-face{font-display:block;font-family:"KaTeX_SansSerif";font-style:normal;font-weight:400;src:url(/static/media/KaTeX_SansSerif-Regular.cd5e231e0cc53b2cb2c0.woff2) format("woff2"),url(/static/media/KaTeX_SansSerif-Regular.02271ec5cb9f5b4588ac.woff) format("woff"),url(/static/media/KaTeX_SansSerif-Regular.2f7bc363fc5424ebda59.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Script-Regular.c81d1b2a4b75d3eded60.woff2) format("woff2"),url(/static/media/KaTeX_Script-Regular.073b3402d036714b4370.woff) format("woff"),url(/static/media/KaTeX_Script-Regular.fc9ba5249878cd8f8d88.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size1-Regular.6eec866c69313624be60.woff2) format("woff2"),url(/static/media/KaTeX_Size1-Regular.0108e89c9003e8c14ea3.woff) format("woff"),url(/static/media/KaTeX_Size1-Regular.6de7d4b539221a49e9e2.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size2-Regular.2960900c4f271311eb36.woff2) format("woff2"),url(/static/media/KaTeX_Size2-Regular.3a99e70aee4076660d38.woff) format("woff"),url(/static/media/KaTeX_Size2-Regular.57f5c1837853986ea1db.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size3-Regular.e1951519f6f0596f7356.woff2) format("woff2"),url(/static/media/KaTeX_Size3-Regular.7947224e8a9914fa332b.woff) format("woff"),url(/static/media/KaTeX_Size3-Regular.8d6b6822586eea3d3b20.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Size4-Regular.e418bf257af1052628d8.woff2) format("woff2"),url(/static/media/KaTeX_Size4-Regular.aeffd8025cba3647f1a6.woff) format("woff"),url(/static/media/KaTeX_Size4-Regular.4ad7c7e8bb8d10a34bb7.ttf) format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/static/media/KaTeX_Typewriter-Regular.c295e7f71970f03c0549.woff2) format("woff2"),url(/static/media/KaTeX_Typewriter-Regular.4c6b94fd1d07f8beff7c.woff) format("woff"),url(/static/media/KaTeX_Typewriter-Regular.c5c02d763c89380dcb4e.ttf) format("truetype")}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important;border-color:currentColor}.katex .katex-version:after{content:"0.16.27"}.katex .katex-mathml{clip:rect(1px,1px,1px,1px);border:0;height:1px;overflow:hidden;padding:0;position:absolute;width:1px}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;position:relative;vertical-align:bottom}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;font-size:1px;min-width:2px;vertical-align:bottom;width:2px}.katex .vbox{align-items:baseline;display:inline-flex;flex-direction:column}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{display:inline-flex;flex-direction:row}.katex .thinbox{max-width:0;width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{position:relative;width:0}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;display:inline-block;width:100%}.katex .hdashline{border-bottom-style:dashed;display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.2777777778em;margin-right:-.5555555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.1666666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.6666666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.4566666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.1466666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.7142857143em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.8571428571em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.1428571429em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.2857142857em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.4285714286em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.7142857143em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.0571428571em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.4685714286em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.9628571429em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.5542857143em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.7777777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.8888888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.1111111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.3333333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.3044444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.7644444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.5833333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.6666666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.7283333333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.0733333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.4166666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.4861111111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.5555555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.4402777778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.7277777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.2893518519em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.3472222222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.4050925926em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462962963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.5208333333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.6944444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.8333333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.2002314815em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.4398148148em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.2410800386em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.2892960463em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512054em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.3857280617em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.4339440694em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.4821600771em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.5785920926em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.6943105111em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.8331726133em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.1996142719em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.2009646302em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.2411575563em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.2813504823em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.3215434084em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.3617363344em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.4019292605em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.4823151125em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778135em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.6945337621em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.8336012862em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;min-width:1px}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;display:block;height:inherit;position:absolute;width:100%}.katex svg path{stroke:none}.katex img{border-style:none;max-height:none;max-width:none;min-height:0;min-width:0}.katex .stretchy{display:block;overflow:hidden;position:relative;width:100%}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{overflow:hidden;position:relative;width:100%}.katex .halfarrow-left{left:0;overflow:hidden;position:absolute;width:50.2%}.katex .halfarrow-right{overflow:hidden;position:absolute;right:0;width:50.2%}.katex .brace-left{left:0;overflow:hidden;position:absolute;width:25.1%}.katex .brace-center{left:25%;overflow:hidden;position:absolute;width:50%}.katex .brace-right{overflow:hidden;position:absolute;right:0;width:25.1%}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{border:.04em solid;box-sizing:border-box}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{border-right:.049em solid;border-top:.049em solid;box-sizing:border-box;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{display:inline-block;position:absolute;right:calc(50% + .3em);text-align:left}.katex .cd-label-right{display:inline-block;left:calc(50% + .3em);position:absolute;text-align:right}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{padding-left:2em;text-align:left}body{counter-reset:katexEqnNo mmlEqnNo}.blog-post-container{background-color:var(--background);box-sizing:border-box;color:var(--text);height:calc(100vh - var(--s) - var(--xxs)*2);overflow-y:auto;padding:0 var(--l) var(--l) var(--l)}.blog-post-content{color:var(--text);font-size:var(--xs);line-height:1.7;margin:0 auto;max-width:780px;padding-bottom:var(--s)}.blog-post-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:var(--xxs);margin:0 0 var(--s) 0;padding-bottom:var(--xs);text-align:center}.blog-post-page-title{color:var(--text);font-family:serif;font-size:var(--ml);font-weight:700;line-height:1.15;margin:0;text-align:center}.blog-post-authors{align-items:center;color:var(--text);display:flex;font-size:15px;font-weight:500;gap:var(--s);justify-content:center;line-height:1.4;margin:0;opacity:.8}.blog-post-meta-item{white-space:nowrap}.blog-post-course{opacity:.7}.blog-post-course,.blog-post-date-header{color:var(--text);font-size:14px;font-weight:400;line-height:1.05;margin:0}.blog-post-date-header{opacity:.6}.blog-post-header>*{line-height:1.05;margin:0;padding:0}.blog-post-content h1{border:none;color:var(--text);font-family:serif;font-size:var(--s);font-weight:600;margin:var(--xs) 0 var(--xs) 0;padding-bottom:0}.blog-post-content h2{color:var(--text);font-size:var(--xsxs);font-weight:600;margin:var(--s) 0 var(--xs) 0}.blog-post-content h3{color:var(--text);font-size:var(--xs);font-weight:600;margin:var(--xs) 0 var(--xxs) 0}.blog-post-content p{margin:0 0 var(--s) 0;opacity:.9}.blog-post-content ol,.blog-post-content ul{font-size:inherit;margin:0 0 var(--s) 0;padding-left:var(--s)}.blog-post-content li{margin-bottom:var(--xs)}.blog-post-content code{background-color:var(--border);border-radius:4px;font-family:monospace;font-size:.9em;padding:3px 8px}.blog-post-content pre{background-color:var(--border);border-radius:8px;margin:var(--s) 0;overflow-x:auto;padding:var(--s)}.blog-post-content pre code{background-color:initial;padding:0}.blog-post-content a{border-bottom:1px solid #0000;color:var(--link);text-decoration:none;transition:border-color var(--transition-speed) ease-in-out}.blog-post-content a:hover{border-bottom-color:var(--link)}.blog-post-content table{border-collapse:collapse;font-size:inherit;margin:var(--s) 0;width:100%}.blog-post-content td,.blog-post-content th{border:1px solid var(--border);padding:12px 16px;text-align:left}.blog-post-content th{background-color:var(--border);font-weight:600}.blog-post-image-container{display:flex;justify-content:center;margin:var(--s) 0}.blog-post-image{border-radius:8px;box-shadow:0 2px 8px #0000001a;height:auto;max-width:90%}.blog-post-content img{border-radius:8px;height:auto;margin:var(--xs) 0;max-width:100%}.blog-post-content blockquote{border-left:4px solid var(--border);font-size:16px;font-style:italic;margin:var(--s) 0;opacity:.8;padding-left:var(--s)}.blog-post-content sup{font-size:.8em;vertical-align:super}.blog-post-content .katex{font-size:1.15em}.blog-post-content .katex-display{margin:var(--s) 0;overflow-x:auto;overflow-y:hidden;padding:var(--xs) 0}@media (max-width:768px){.blog-post-container{padding:var(--s)}}.coursework{align-items:center;background-color:var(--background);box-shadow:inset 0 0 var(--xs) var(--border);color:var(--text);display:flex;flex-direction:column;flex-grow:1;height:calc(100dvh - var(--s) - var(--xxs)*2);justify-content:center;overflow-y:auto;width:100vw}.coursework,body,html{scroll-behavior:smooth}body,html{overflow:hidden}.projects-container{background-color:var(--background);box-sizing:border-box;color:var(--text);height:calc(100vh - var(--s) - var(--xxs)*2);overflow-y:auto;padding:var(--xs) var(--l) var(--l) var(--l)}.projects-content{margin:0 auto;max-width:1200px;padding-bottom:var(--s)}.projects-title{color:var(--text);font-family:serif;font-size:var(--s);font-weight:700;margin:0 0 var(--s) 0;text-align:center}.project-grid{grid-gap:var(--s);display:grid;gap:var(--s);grid-template-columns:1fr}.project-card{background-color:var(--background);border:1px solid var(--border);border-radius:12px;padding:var(--xs);transition:all var(--transition-speed) ease-in-out}.project-card:hover{border-color:var(--link);box-shadow:0 4px 12px #0000001a}.project-video{margin:0;max-width:100%;overflow:hidden}.demo-video,.project-video{border-radius:8px;width:100%}.demo-video{display:block;height:auto;max-height:300px;object-fit:cover}.project-info{padding:0 var(--xs)}.project-title{color:var(--text);font-size:var(--xsxs);font-weight:600;margin:0 0 var(--xs) 0}.project-description{color:var(--text);font-size:var(--xs);line-height:1.5;margin:0 0 var(--s) 0;opacity:.8}.project-links{display:flex;gap:var(--xs)}.project-link{background-color:initial;border:1px solid var(--text);border-radius:6px;color:var(--text);display:inline-block;font-size:var(--xs);font-weight:500;opacity:.7;padding:var(--xxs) var(--s);text-decoration:none;transition:all var(--transition-speed) ease-in-out}.project-link:hover{background-color:var(--text);color:var(--background);opacity:1}.project-content-horizontal{align-items:stretch;display:flex;flex-direction:column;gap:var(--xs)}.project-image,.project-video{flex-shrink:0;max-width:100%;width:100%}.project-info-horizontal{display:flex;flex-direction:column;justify-content:flex-start;padding:0}.demo-video,.project-img{aspect-ratio:16/9;border-radius:8px;display:block;height:auto;object-fit:cover;width:100%}@media (max-width:768px){.projects-container{padding:var(--s)}.project-card{padding:var(--xs)}.project-info{padding:0}.project-content-horizontal{text-align:center}.project-video{margin-bottom:var(--xs);max-width:100%}}@media (min-width:1024px){.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 auto;max-width:1200px}}.not-found{align-items:center;background-color:var(--background);box-shadow:inset 0 0 var(--xs) var(--border);color:var(--text);display:flex;flex-direction:column;flex-grow:1;height:100dvh;justify-content:center;overflow-y:auto;scroll-behavior:smooth;width:100vw}.not-found-title{font-size:var(--sm)}.not-found-text,.not-found-title{padding:var(--xxs);text-align:center}.not-found-text{font-size:var(--xs)}.head-home{border:1px solid var(--text);border-radius:5px;font-size:var(--xss);margin:var(--s);padding:5px;text-align:center}.head-home:hover{border:1px solid var(--link);border-radius:5px;color:var(--link);cursor:pointer}body,html{height:100%;margin:0;overflow-x:hidden;padding:0}.resume,body,html{background-color:var(--background)}.resume{align-items:center;box-shadow:inset 0 0 var(--xs) #ffffff1a;color:var(--text);display:flex;flex-direction:column;flex-grow:1;height:calc(100dvh - var(--s) - var(--xxs)*2);justify-content:center;overflow-y:auto;scroll-behavior:smooth;width:100vw}.resume-title{font-size:var(--s);padding:var(--xxs);text-align:center}.resume-iframe{height:90%;width:60%}
/*# sourceMappingURL=main.9c9f18eb.css.map*/