@font-face{font-family:PP Neue Montreal;src:url(/fonts/ppneuemontreal-book.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/fonts/ppneuemontreal-medium.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/fonts/ppneuemontreal-bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--color-page:#fcfcfc;--color-text:#1b1b1b;--color-muted:#6b6b6b;--color-subtle:#b5b5b5;--color-line:#e9e9e9;--color-chip:#e6e6e6;--color-chip-hover:#dcdcdc;--color-selection:#d9d6d0;--color-unavailable:#d64545;--color-focus:#2468d8;--space-page:32px;--space-section:32px;--radius-chip:6px;--duration-fast:.15s;--duration-medium:.2s;--ease-out:cubic-bezier(.215, .61, .355, 1);--ease-expo:cubic-bezier(.16, 1, .3, 1);--github-duration:.7s}*,:before,:after{box-sizing:border-box}html{scrollbar-gutter:stable;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--color-page);color:var(--color-text);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;margin:0;font-family:PP Neue Montreal,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px;font-weight:500;line-height:1.7;overflow-x:hidden}::selection{background:var(--color-selection);color:var(--color-text)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}a,button{color:inherit}button{font:inherit}h1,h2,p,ul{margin:0}ul{padding:0;list-style:none}main{max-width:720px;min-height:100dvh;padding-inline:var(--space-page);flex-direction:column;margin:0 auto;display:flex}.page{gap:var(--space-section);animation:page-enter .9s var(--ease-expo) both;flex-direction:column;padding-block:96px 64px;display:flex}.header{justify-content:space-between;align-items:center;gap:16px;display:flex}.header h1{font-size:inherit;font-weight:700;line-height:inherit}.header-cube{width:20px;height:22px;color:var(--color-text);transform-origin:50%;transition:transform .35s var(--ease-expo);flex:none;overflow:visible;transform:rotate(-2deg)}.cube-face--top{fill:#41a85f}.cube-face--left{fill:#f5f2e9}.cube-face--right{fill:#e74a3b}.bio{gap:var(--space-section);flex-direction:column;display:flex}.link-chip{border-radius:var(--radius-chip);background:var(--color-chip);font-size:inherit;transition:background-color .25s var(--ease-out);padding:1px 5px;line-height:1.25;text-decoration:none;display:inline-block}.link-underline{text-decoration:underline;-webkit-text-decoration-color:var(--color-subtle);text-decoration-color:var(--color-subtle);text-underline-offset:2px;transition:text-decoration-color var(--duration-fast) var(--ease-out)}.github-link{cursor:not-allowed;transition:color var(--duration-medium) var(--ease-expo), text-decoration-color var(--duration-medium) var(--ease-expo);background:0 0;border:0;padding:0;display:inline-block}.github-link--animating{animation:github-unavailable var(--github-duration) var(--ease-expo) both}.section-label{border-bottom:1px solid var(--color-line);color:var(--color-muted);font-size:inherit;font-weight:400;line-height:inherit;padding-bottom:12px}.work-item{border-bottom:1px solid var(--color-line);min-height:50px;transition:color var(--duration-fast) var(--ease-out);justify-content:space-between;align-items:center;gap:16px;text-decoration:none;display:flex}.work-year{color:var(--color-muted);flex:none;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.dodge-section{width:100vw;height:120px;margin-top:auto;margin-left:calc(50% - 50vw);overflow:hidden}.dodge-gradient{opacity:0;width:100%;height:120%;transition:opacity .8s var(--ease-expo);background:linear-gradient(90deg,#dd7bbb,#d79f1e,#5a922c,#4c7894,#dd7bbb);-webkit-mask-image:linear-gradient(#0000 20%,#000 100%);mask-image:linear-gradient(#0000 20%,#000 100%)}@media (hover:hover){a,button{cursor:pointer}.header:hover .header-cube{transform:translateY(-1px)rotate(7deg)scale(1.04)}.link-chip:hover{background:var(--color-chip-hover)}.link-underline:hover{text-decoration-color:currentColor}.github-link:hover:not(.github-link--animating){color:var(--color-unavailable);-webkit-text-decoration-color:var(--color-unavailable);text-decoration-color:var(--color-unavailable)}.work-item:hover{color:var(--color-muted)}.dodge-section:hover .dodge-gradient{opacity:1}}@media (hover:none){.dodge-gradient{opacity:.28}}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}}@keyframes github-unavailable{0%,to{color:var(--color-text);-webkit-text-decoration-color:var(--color-subtle);text-decoration-color:var(--color-subtle);transform:translate(0)}29%,71%{color:var(--color-unavailable);-webkit-text-decoration-color:var(--color-unavailable);text-decoration-color:var(--color-unavailable);transform:translate(0)}36%,52%{transform:translate(-3px)}44%,60%{transform:translate(3px)}68%{transform:translate(-2px)}}@media (max-width:640px){:root{--space-page:16px}.page{padding-block:64px 48px}}@media (prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.cube-face{fill:canvastext}.dodge-gradient{display:none}.link-chip{border:1px solid canvastext}}
