@charset "UTF-8";@font-face{font-family:Mono;font-display:fallback;src:url(/assets/Mono-CtT1rUce.woff) format("woff"),url(/assets/Mono-GZp0-pHm.woff2) format("woff2");font-style:normal;font-weight:400}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:300;src:url(/assets/space-grotesk-v21-latin-300-D2JxK3UW.woff2) format("woff2")}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:400;src:url(/assets/space-grotesk-v21-latin-regular-C_H9aji2.woff2) format("woff2")}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:500;src:url(/assets/space-grotesk-v21-latin-500-KYfcXlvK.woff2) format("woff2")}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:600;src:url(/assets/space-grotesk-v21-latin-600-0SbvWzVy.woff2) format("woff2")}@font-face{font-display:swap;font-family:Space Grotesk;font-style:normal;font-weight:700;src:url(/assets/space-grotesk-v21-latin-700-B7Rq4K4l.woff2) format("woff2")}:root{--background: #fff;--background-alpha: 255, 255, 255;--foreground: #000;--foreground-alpha: 0, 0, 0;--subdued: #6c6c6c;--extra-subdued: #dcdcdc;--accent: #f52a2a;--accent-alpha: 245, 42, 42;--font-sans: "Space Grotesk", "Text", system, -apple-system, "Helvetica Neue", Helvetica, "Segoe UI", "Roboto", sans-serif;--font-mono: "Mono", SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace}::-moz-selection{background-color:var(--accent);color:var(--foreground)}::selection{background-color:var(--accent);color:var(--foreground)}.isDarkMode{display:none}.isClearMode{display:block}.dark-theme{--background: #000;--background-alpha: 0, 0, 0;--foreground: #fff;--foreground-alpha: 255, 255, 255;--subdued: #a8a8a8;--extra-subdued: #1e1e1e}.dark-theme .isDarkMode{display:block}.dark-theme .isClearMode{display:none}.light-theme{--background: #fff;--background-alpha: 255, 255, 255;--foreground: #000;--foreground-alpha: 0, 0, 0;--subdued: #4C4C4C;--extra-subdued: #dcdcdc}.light-theme .isDarkMode{display:none}.light-theme .isClearMode{display:block}@media (prefers-color-scheme: dark){:root:not(.light-theme):not(.dark-theme){--background: #000;--background-alpha: 0, 0, 0;--foreground: #fff;--foreground-alpha: 255, 255, 255;--subdued: #a8a8a8;--extra-subdued: #1e1e1e}::-moz-selection{color:var(--foreground)}::selection{color:var(--foreground)}:root:not(.light-theme):not(.dark-theme) .isDarkMode{display:block}:root:not(.light-theme):not(.dark-theme) .isClearMode{display:none}}*,:after,:before{box-sizing:border-box}#app,#herohi,body,html{height:100%}body{padding:0;font-family:var(--font-sans);font-size:14px;line-height:1.4;color:var(--foreground);background-color:var(--background);cursor:crosshair}body,h1,h2,h3,h4,p,ul{margin:0}h1{font-size:1.1em!important;font-weight:400;line-height:1;margin-bottom:.25em}h1 a,h1 a:hover{text-decoration:none;color:var(--foreground);transition:opacity .15s ease}h1 a:hover{opacity:.64}h2{font-family:var(--font-mono);font-size:1.5em}h2,h3{font-weight:400}h3{font-size:1em;color:var(--subdued)}h4+p{margin-top:.125em}h1+p,h2+p,h3+p,h3+ul,p+p,p+ul{margin-top:.5em}p+h4{margin-top:1em}p+h3,ul+h3{margin-top:2em}.m0{margin:0}a{color:inherit;-webkit-text-decoration-color:rgba(var(--foreground-alpha),.4);text-decoration-color:rgba(var(--foreground-alpha),.4);transition:color .15s ease,-webkit-text-decoration-color .15s ease;transition:color .15s ease,text-decoration-color .15s ease;transition:color .15s ease,text-decoration-color .15s ease,-webkit-text-decoration-color .15s ease}a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);cursor:crosshair}a:focus-visible{-webkit-text-decoration-color:var(--foreground);text-decoration-color:var(--foreground);outline:none}ul:not(.text-list){padding:0 0 0 1.5em}ul:not(.text-list) li+li{margin-top:.25em}hr{border:none;background:var(--extra-subdued);width:100%;height:1px;margin:1.8em 0}.wrapper{min-height:100%;display:flex;flex-direction:column;padding:4em 1em}header{padding-right:2em}header h1{font-size:1.2em;margin-bottom:20px}header h1 img{max-width:100px;margin-bottom:10px}footer{margin-top:4em}.top-nav ul{list-style:none;padding:0}.top-nav a{display:inline-flex;align-items:flex-start;gap:.6em;color:var(--subdued);-webkit-text-decoration-color:rgba(var(--foreground-alpha),.4);text-decoration-color:rgba(var(--foreground-alpha),.4)}.top-nav a:focus-visible,.top-nav a:hover{color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.top-nav a.active,.top-nav a.active:focus-visible,.top-nav a.active:hover{color:var(--foreground);-webkit-text-decoration-color:rgba(var(--foreground-alpha),.4);text-decoration-color:rgba(var(--foreground-alpha),.4)}.content{flex:1 1}.subdued{color:var(--subdued)}.error{color:var(--accent)}.mono{font-family:var(--font-mono)}.small{font-size:.875em}.underline{text-decoration:underline;-webkit-text-decoration-color:rgba(var(--foreground-alpha),.4);text-decoration-color:rgba(var(--foreground-alpha),.4)}.intro-lists{display:flex;-moz-column-gap:4rem;column-gap:4rem;row-gap:2rem;margin:2rem 0;flex-wrap:wrap}.intro-lists .text-list{font-size:13px;line-height:1.6em}.projects,.text-list{list-style:none;padding:0}.projects{overflow-x:hidden;counter-reset:li;border-top:2px dotted var(--extra-subdued)}.projects li{padding:.5em 2em .5em 0;position:relative;border-bottom:2px dotted var(--extra-subdued)}.projects li:before{position:absolute;right:0;counter-increment:li;content:"0" counter(li,decimal-leading-zero);color:var(--subdued);font-family:var(--font-mono)}.projects .title{flex-grow:1}.projects .description{color:var(--subdued)}.projects+h3{margin-top:2rem}.pfp{display:block;line-height:0;cursor:inherit;position:relative;z-index:1;display:flex;justify-content:center;align-items:center;padding:2em}.pfp,.tldr{margin:2em 0;background:var(--foreground)}.tldr{color:var(--background);padding:1em}.contact-form{display:grid;grid-template-columns:1fr;grid-gap:2em}.contact-form-footer{display:flex;flex-direction:column}.input-group{display:grid;grid-template-columns:1fr;grid-gap:.5em}.input-group label{display:block;margin-bottom:.1em}.radio-group{display:grid;grid-template-columns:1fr;grid-gap:.5em}input,input[type=radio],textarea{border:none;background:none;box-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;appearance:none;-moz-appearance:none;-webkit-appearance:none}input:not([type=radio]),textarea{padding:.5em 1em;font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--subdued);background:rgba(var(--foreground-alpha),.04);box-shadow:inset 0 0 0 1px rgba(var(--foreground-alpha),.1);border-radius:.5em;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease}input:not([type=radio])::-moz-placeholder,textarea::-moz-placeholder{color:var(--extra-subdued)}input:not([type=radio]):-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--extra-subdued)}input:not([type=radio])::placeholder,textarea::placeholder{color:var(--extra-subdued)}input:not([type=radio]):focus-visible,input:not([type=radio]):hover,textarea:focus-visible,textarea:hover{outline:none;color:var(--foreground);background:rgba(var(--foreground-alpha),0)}input:not([type=radio]):focus-visible,textarea:focus-visible{box-shadow:inset 0 0 0 1px rgba(var(--foreground-alpha),.4)}textarea{min-height:8em;resize:none}input[type=radio]{opacity:0;width:0;position:fixed;pointer-events:none}input[type=radio]+label{display:flex;align-items:flex-start;gap:.6em;position:relative;font-family:var(--font-sans);font-size:16px;line-height:1.5;color:var(--subdued);margin:0;padding:.5em 1em;background:rgba(var(--foreground-alpha),.04);box-shadow:inset 0 0 0 1px rgba(var(--foreground-alpha),.1);border-radius:.5em;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease}input[type=radio]:checked+label{color:var(--foreground)}input[type=radio]:focus+label,input[type=radio]:focus-visible+label,input[type=radio]:hover+label{cursor:pointer;background:rgba(var(--foreground-alpha),0)}input[type=radio]:focus+label{box-shadow:inset 0 0 0 1px rgba(var(--foreground-alpha),.4)}input[type=radio]+label:before{content:"";display:block;border:1px solid rgba(var(--foreground-alpha),.1);width:.6em;height:.6em;border-radius:1em;margin:.45em 0;transition:border-color .15s ease,background-color .15s ease}input[type=radio]:focus-visible+label:before,input[type=radio]:hover+label:before{border:1px solid rgba(var(--foreground-alpha),.4)}input[type=radio]:checked+label:before{background:var(--foreground);border-color:var(--foreground)}.button,button{position:relative;display:inline-flex;padding:.5em 1em;font-family:var(--font-sans);font-size:16px;line-height:1.5;text-align:center;justify-content:center;color:var(--background);background:var(--foreground);border-radius:.5em;transition:background-color .15s ease;border:none;appearance:none;-moz-appearance:none;-webkit-appearance:none}.block{display:block;width:100%}.button:focus-visible,.button:hover,button:focus-visible,button:hover{background:rgba(var(--foreground-alpha),.8);cursor:pointer;text-decoration:none}.button:focus-visible,button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent)}button:disabled,button:disabled:hover{cursor:inherit;background:rgba(var(--foreground-alpha),.3);color:var(--background)}button .loading-wrapper{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;color:var(--background)}button.loading{color:transparent}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.loading-indicator{width:1em;height:1em;display:inline-block;position:relative}.loading-indicator:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;border-radius:100%;border:2px solid transparent;border-top-color:currentcolor;animation:rotate .65s ease-in-out infinite}header{display:flex}section{padding:1em 0;display:flex}.col-title{min-width:250px;flex-shrink:0}.col-title h2{font-size:1.1rem;line-height:1.2rem}.col-content{flex:1}.col-content>ul>li{margin-bottom:1em}.col-content .block{margin-bottom:1em}@media (max-width: 768px){section{flex-direction:column}header .col-title{min-width:180px;flex-shrink:1}}@media (min-width: 40rem){.wrapper{padding:6em 8vw}.wrapper>*{max-width:40em}.tldr{padding:2em}.projects li{display:flex;padding-left:2.5em;padding-right:0}.projects li:before{left:0;right:auto}.projects .description{text-align:right;padding-left:.5em}.contact-form-footer{display:block}}@media (prefers-color-scheme: light){.pfp,.tldr{background:rgba(var(--foreground-alpha),.05);color:var(--foreground)}}.footer-content[data-v-acd2144b]{display:flex;justify-content:space-between;align-items:center}.theme-toggle-container[data-v-acd2144b]{margin-left:20px}.theme-toggle[data-v-d011757d]{background:none;border:none;cursor:pointer;opacity:.7;transition:opacity .3s;padding:5px;font-size:1.2em;color:var(--foreground)}.theme-toggle[data-v-d011757d]:hover{opacity:1}.theme-icon[data-v-d011757d]{display:inline-block}
