@layer sections{@media screen and (max-width:675px){.mobile-break{display:block}}header{padding-top:var(--xxxl)}.header--image{width:75px;height:75px;background:var(--tagBg);padding-top:10px;padding-left:5px;border-radius:100px;overflow:hidden;margin-bottom:var(--xs)}.header--image img{width:75px;height:auto;object-position:center bottom;object-fit:contain;opacity:1;margin:auto}.header--container{display:block;margin:auto;gap:var(--md) var(--xl);z-index:2}.header--hero .container>div{position:sticky;top:calc(var(--xxxl) + var(--sm))}.header--container>div{padding:var(--md) 0 0 0}.header--container .top-section{min-height:80vh;display:flex;flex-direction:column;justify-content:center;padding-bottom:var(--xxxl)}@media screen and (min-width:700px){.header--container .top-section{min-height:unset;display:block;padding-bottom:0}header .align-center{text-align:center}header .align-center,header .button-section,header .header--image,header .top-section{margin-left:auto;margin-right:auto}.header--container>div{padding:var(--xl) 0 var(--lg) 0}}@media screen and (min-width:800px){@media (prefers-reduced-motion:no-preference){.js-sticky.header--hero{--stickyHeaderPosition:0;--stickyHeaderOpacity:1;transition:all linear(0, .2, .4, .6, .8, 1);transform:translateY(var(--stickyHeaderPosition));opacity:var(--stickyHeaderOpacity)}}}.skills{margin-top:var(--md)}.skills--container{display:flex;flex-direction:column;gap:var(--lg)}.skills .two-up{gap:0}@media screen and (min-width:1010px){.skills .two-up{gap:var(--md) var(--xl)}}section.experience{position:relative;z-index:0;background:0 0;margin-bottom:var(--lg);padding-top:var(--xl)}.timeline--progress{content:"";width:2px;height:91%;position:absolute;top:32px;left:-4px;font-size:12px}.timeline--item:last-child:before{content:"";display:block;background:var(--cardBackground);height:216%;width:33px;position:absolute;z-index:9;left:-20px;top:20px}.timeline--item:last-child:after{z-index:10}@supports (hanging-punctuation:first) and (font:-apple-system-body) and (-webkit-appearance:none){.timeline--progress{left:-2px}}.timeline--progress-marker{display:none}.timeline--progress-bar{--timelineProgressHeight:10%;transform-origin:top;height:100%;background:var(--surfaceColor);width:2px}@media (prefers-reduced-motion:no-preference){.timeline--progress-bar{height:var(--timelineProgressHeight);margin-bottom:4px;background:linear-gradient(to bottom,var(--surfaceColor) 95%,var(--cardBackground))}}.timeline--item{padding-left:var(--lg)}@keyframes timeline-progress{0%{height:10%}100%{height:100%}}@media screen and (max-width:780px){button.timeline--button span{display:block}.js-mobile-collapsed li:nth-child(n+5){display:none}.js-mobile-collapsed .timeline--items:before{height:100%}.timeline--button{position:relative;background:var(--cardBackground);color:var(--copyColor);z-index:9;font-weight:500;margin-left:calc(var(--sm) * -1);margin-top:var(--xl)}.js-mobile-collapsed .timeline--items{padding-bottom:var(--xl)}.js-mobile-collapsed .timeline--button{margin-top:0}.js-mobile-collapsed button.timeline--button .js-open,.js-mobile-open button.timeline--button .js-closed{display:none}}@media screen and (min-width:780px) and (max-width:1000px){.polaroid--sticky{flex:var(--flex-33)}.flex--50{flex:var(--flex--66)}}@media screen and (min-width:780px){button.timeline--button,button.timeline--button span{display:none}section.experience{padding-top:var(--xxl)}.two-up{flex-wrap:nowrap;flex-direction:row;width:fit-content}.experience .two-up{margin-top:var(--xxl)}.timeline--item{padding-left:var(--lg)}}@media screen and (min-width:1000px){.experience .two-up{transform:translate(calc(var(--xxl) * -1),0)}}.timeline--items{display:flex;flex-direction:column;gap:var(--lg);position:relative}.timeline--item p{max-width:50ch;text-wrap:balance;margin-bottom:0}.timeline--item h3{margin-bottom:0;text-wrap:balance}.timeline--item{position:relative}.timeline--item:after{content:"⬤";display:block;line-height:0;font-size:12px;color:var(--copyColor);position:absolute}.timeline--progress:after{top:100%;transform:unset;animation:none;left:-4px;height:100%!important}.timeline--item:after{top:calc((var(--xl) + -7px) * -1);position:absolute;top:16px;left:-8px}.timeline--container{position:relative;margin-left:var(--sm)}@media screen and (min-width:780px){.timeline--container{margin-left:0}}.timeline--text-container{position:relative;z-index:1}@media (prefers-reduced-motion:no-preference){.timeline--text-container{opacity:.25;transition:opacity .75s ease-in,transform 1s cubic-bezier(.23, 1, .32, 1);transform:translate(-2em,0) scale(.85)}.timeline--current-role .timeline--text-container{opacity:1;transform:translate(0,0) scale(1);transition:unset}.timeline--item:after{opacity:0;transition:all .3s ease-in}.timeline--text-container.js-active{opacity:1;transform:translate(0,0) scale(1)}.timeline--item:has(.js-active):after{opacity:1}}.timeline--current-role:after{content:"◉";color:var(--linkColor);font-size:32px;left:-16px;animation:unset;opacity:1;animation-name:pulse;animation-duration:2s;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes pulse{0%{transform:scale(1)}50%{-webkit-transform:perspective(1px) scale(1.2);transform:scale(1.2)}100%{transform:scale(1)}}.polaroid--border{background:rgb(var(--light));padding:var(--md);width:fit-content;margin:0 0 var(--sm) auto;border:1px solid rgba(var(--dark),.05);border-radius:2px;width:100%}.polaroid--background{position:relative}.polaroid--bg-stable{background:rgb(var(--light));height:25vh;overflow:hidden;position:relative}.polaroid--bg-stable{z-index:1}.polaroid--bg-stable .polaroid--image{mix-blend-mode:luminosity;opacity:.8}.polaroid--image{max-width:100%;height:auto;object-fit:cover;object-position:center;width:100%;height:100%}.polaroid--border.desktop{display:none}.polaroid--border.mobile{margin-top:var(--xl);margin-bottom:0}@media screen and (min-width:780px){.polaroid--border{padding:20px 20px 80px 20px}.polaroid--bg-developing,.polaroid--bg-stable{max-height:unset;max-width:25vh;height:auto}.polaroid--border.mobile{display:none}.polaroid--border.desktop{display:block;width:fit-content}}.desktop .polaroid--background{max-height:300px;max-width:300px;overflow:clip;width:300px;height:300px}.desktop .polaroid--image{height:300px;width:auto}.polaroid--1{opacity:1}.polaroid--2{opacity:1;z-index:1}@media (prefers-reduced-motion:no-preference){.polaroid--2{--polaroidOpacity:0;opacity:var(--polaroidOpacity)}}.polaroid--slide-in{border:1px solid rgba(var(--darkest),.15);position:absolute;background:rgb(var(--light));top:0}.polaroid--slide-in .polaroid--image{mix-blend-mode:luminosity;opacity:.8}@keyframes polaroid-stable{0%{opacity:1}100%{opacity:0}}@keyframes polaroid-developing{0%{opacity:0}100%{opacity:1}}.projects-section{margin-top:var(--lg)}.projects-section .github-list{width:fit-content}.github-list li{margin:0 0 var(--xs) 0}@media screen and (min-width:600px){.projects-section .github-list{margin:0 auto}}#recommendations{padding-top:var(--xl)}#recommendations .text-align-right{margin:var(--lg) 0 0 auto}blockquote p{font-style:italic;font-weight:500;margin-bottom:var(--xs)}blockquote+figcaption{margin-left:auto;text-align:right}@media screen and (min-width:400px){blockquote+figcaption:before{content:"—";font-size:1.5em;display:inline-block;color:var(--linkColor);margin-right:var(--xxs);line-height:0;vertical-align:middle}}.carousel>*{opacity:1;flex:1;min-width:100%;scroll-snap-align:start;padding:var(--md)}.carousel--controls{display:block;width:100%}.carousel--controls button{background:0 0;border:2px solid transparent;color:var(--copyColor);border-radius:100px;padding:var(--xs) 0;cursor:pointer;position:absolute;transform:translateY(-50%);transition:opacity .5s ease-in;top:calc(100% + var(--lg) + 8px)}[data-slide-visible="1"]+.carousel--controls button:first-child,[data-slide-visible="3"]+.carousel--controls button:last-child{opacity:.15;cursor:unset}.carousel--controls .carousel--next{right:0;left:unset;transform:rotate(180deg) translateY(50%)}.carousel--controls svg{height:32px;width:32px}.carousel blockquote{opacity:.25;transition:opacity .5s ease-out}.carousel>.js-active blockquote{opacity:1}.carousel>.js-active figcaption{opacity:1;z-index:1}.carousel--wrapper{position:relative}@media screen and (max-width:1010px){.carousel--wrapper{max-width:calc(100vw - var(--md) - var(--md))}}.carousel{border-radius:var(--borderRadiusMd);background:var(--cardBackground);display:flex;flex-direction:row;flex-wrap:nowrap;margin-top:0;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;-ms-overflow-style:none;scrollbar-width:none}.carousel--pagination{list-style:none;display:flex;gap:var(--xs);justify-content:center;margin:var(--md) auto 0 auto}.carousel--pagination button{height:16px;width:16px;border:2px solid var(--copyColor);background:0 0;border-radius:100px;cursor:pointer;transition:opacity 250ms ease-in}.carousel--pagination button:focus,.carousel--pagination button:hover{background:var(--linkColor)}.carousel--pagination button.js-active{background:var(--copyColor)}.carousel figure{max-width:980px;margin:0 auto;height:100%;display:flex;flex-direction:column}.carousel figcaption{margin-top:auto;position:absolute;bottom:var(--md);right:0;padding:0 var(--md);opacity:0;z-index:0;width:100%;text-align:center}.carousel blockquote{font-style:italic;padding-bottom:var(--xl)}@media screen and (min-width:850px){.carousel>*{padding:var(--xl) var(--xl) var(--xxl) var(--xl)}}@media screen and (min-width:1200px){.carousel>*{min-height:33vh}.carousel--controls button{left:var(--lg);top:50%;transform:translateY(-50%);padding:var(--xs)}.carousel--controls .carousel--next{right:var(--lg)}.carousel blockquote{padding-bottom:var(--lg);margin:auto}.carousel figcaption{bottom:var(--xxl)}}footer{background:var(--cardBackground);--mask:radial-gradient(78.1px at 50% 110px, #000 99%, #0000 101%) calc(50% - 100px) 0/200px 100%,radial-gradient(78.1px at 50% -60px, #0000 99%, #000 101%) 50% 50px/200px 100% repeat-x;-webkit-mask:var(--mask);mask:var(--mask)}}@layer animations{.type{display:inline-flex}@media (prefers-reduced-motion:no-preference){.type .end{margin-left:auto}h1 code{text-wrap:initial;text-align:left}.type .animate{word-break:break-all;height:1.1em;width:0%;overflow:hidden;padding:0 var(--xxxs)}.type .animate:before{content:" ";display:inline-block}.js-typing .type .animate{animation:type 1.25s ease-in-out forwards}}@keyframes type{100%,90%{width:100%}}}