.site-title{display:flex;flex-grow:1}.skip-to-content{position:absolute;top:-3rem;opacity:0;z-index:1;transition:box-shadow .3s ease,top .3s ease,opacity .3s ease,color .3s ease;box-shadow:var(--shadow-elevation-low);background-color:var(--bg-clr);padding:.5rem 1rem}.skip-to-content:focus,.skip-to-content:focus-visible{top:2rem;opacity:1}.nav-home,.nav-link{color:var(--fg-clr-oo)}.nav-home{vertical-align:bottom;transition:unset;transition-duration:var(--transition-duration-slow);transition-property:font-size,color;transition-timing-function:var(--transition-timing-function);will-change:color;font-size:1.25rem;line-height:1;font-family:var(--font-psbl);letter-spacing:-.025em}.nav-home:hover,.nav-home:focus,.nav-home:active{color:var(--highlight-clr)}.nav-bar{display:flex;flex-shrink:1;justify-content:center;align-items:center;font-family:var(--font-ps)}.nav-list{justify-content:flex-end}.nav-item{display:inline;padding-right:.75rem;padding-left:.75rem;font-family:var(--font-psxl)}.nav-link{display:inline-block;vertical-align:middle;opacity:.77;transition:opacity;transition-duration:var(--transition-duration);transition-timing-function:var(--transition-timing-function);padding-top:.25rem;font-size:.875rem;line-height:1.25rem;letter-spacing:-.025em}.nav-link:after{display:block;transform:scaleX(0);transition:transform var(--transition-duration) var(--transition-timing-function);border-bottom:solid thin var(--highlight-clr);padding:.25rem;padding-bottom:0;content:""}.nav-link:hover,.nav-link:focus,.nav-link:focus-visible{opacity:1}.nav-link:hover:after,.nav-link:focus:after,.nav-link:focus-visible:after{transform:scaleX(.5)}.nav-link.active{opacity:1;cursor:default;color:var(--nav-fg-active-clr)}.nav-link.active:after{transform:scaleX(1)}.nav-link.active.subactive{cursor:pointer}.nav-link.active.subactive:hover,.nav-link.active.subactive:focus,.nav-link.active.subactive:focus-visible{opacity:.5}.nav-link.active.subactive:after{transform:scaleX(1)}@media screen and (min-width: 640px){.skip-to-content{padding:.75rem 1.25rem}.nav-home{margin-left:2px;font-size:1.5rem}.nav-link{font-size:1rem}}.theme-toggle{opacity:.7;transition-duration:var(--transition-duration);transition-property:opacity;transition-timing-function:var(--transition-timing-function);padding:.75rem .5rem .75rem .75rem}.theme-toggle:hover,.theme-toggle:focus,.theme-toggle:focus-visible,.theme-toggle:active{opacity:1}.theme-toggle svg{position:absolute;transition:top 1s ease-in-out 0s}.theme-toggle #moon{padding-bottom:1px}.theme-toggle *{pointer-events:none}.themeset{position:relative;width:20px;height:20px;overflow:hidden}.dark-theme .ready svg#sun{top:33px;transition-duration:.2s}.dark-theme .ready svg#moon{top:0;transition-delay:.2s}.light-theme .ready svg#moon{top:33px;transition-duration:.2s}.light-theme .ready svg#sun{top:0;transition-delay:.2s}/*! tailwindcss v2.2.19 | MIT License | https://tailwindcss.com *//*! modern-normalize v1.1.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,:before,:after{box-sizing:border-box;min-width:0}html{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp,pre{font-size:1em;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}small{font-size:80%}sub,sup{position:relative;vertical-align:baseline;font-size:75%;line-height:0}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{margin:0;font-size:100%;line-height:1.15;font-family:inherit}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}:-moz-focusring{outline:1px dotted ButtonText}:-moz-ui-invalid{box-shadow:none}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-image:none;background-color:transparent}fieldset{margin:0;padding:0}ol,ul{margin:0;padding:0;list-style:none}html{line-height:1.5;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}body{line-height:inherit;font-family:inherit}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:-moz-focusring{outline:auto}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-weight:inherit;font-size:inherit;text-wrap:balance}p{text-wrap:pretty}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;color:inherit;line-height:inherit}pre,code,kbd,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-opacity: 1;border-color:rgba(229,231,235,var(--tw-border-opacity))}@media print{:root{background:transparent!important;height:auto!important}@page{size:auto;margin:.5in 1in}html,body{background:transparent!important;height:auto!important;overflow:visible!important;font-family:Georgia,Times New Roman,Times,serif!important}html>*,html strong,html em,html .self,body>*,body strong,body em,body .self{font-family:Georgia,Times New Roman,Times,serif!important}html strong,html .self,body strong,body .self{font-weight:700!important}html em,body em{font-style:italic!important}html a,body a{border:none!important}html>div>header.header,html>div>footer.footer,html .flourish,html .links,html .cv-masthead .link-list,html .cv .experience-timeline .skills,body>div>header.header,body>div>footer.footer,body .flourish,body .links,body .cv-masthead .link-list,body .cv .experience-timeline .skills{display:none!important}.bio-picture{filter:none}.transition-container{display:block!important}.cv-masthead h1.page-heading{letter-spacing:-.083rem!important}.cv-masthead .summary{padding:0;padding-bottom:.5rem}.cv-masthead .link-list{display:none}.cv-masthead .print-links{display:block;visibility:visible;padding-top:0;text-align:center}.experience-timeline{margin:0!important}.experience-timeline .experience-summary{padding-top:.5rem}.experience-timeline .date-toggle,.experience-timeline #date-toggle-checkbox{display:none}.experience-timeline .experience-timeline-item{display:block;border:none;padding:1rem 0 0}.experience-timeline .experience-timeline-item:before{display:none!important}.experience-timeline .experience-timeline-item .experience-timeline-date{position:absolute;inset:0 0 auto auto;line-height:1.5}.experience-timeline .experience-timeline-item .experience-timeline-date .print-date{display:inline;visibility:visible;text-align:right}.experience-timeline .experience-timeline-item .experience-timeline-date .timeline-text-highlight{display:none}.experience-timeline .experience-timeline-item .timeline-text-highlight.m{display:none!important}.experience-timeline .experience-timeline-item .timeline-text-highlight.d{display:inline!important}.experience-timeline .experience-timeline-item h1.item-title{padding-right:1in;padding-bottom:.25rem;font-weight:500!important;font-size:1.25rem;font-family:var(--font-lbb);text-transform:uppercase}.experience-timeline .experience-timeline-item h1.item-title:after{border-bottom:1px solid black!important;-o-border-image:none!important;border-image:none!important;width:100%!important}.experience-timeline .experience-timeline-item .item-basics:before,.experience-timeline .experience-timeline-item .item-basics:after{display:none}.experience-timeline .experience-timeline-item .item-details{padding-bottom:1rem}.experience-timeline .experience-timeline-item .item-details .experience-info{padding-top:0}}:root{--moon: #d4cdc5ff;--moonshine: #d4cdc51f;--moonlight: #d4cdc58a;--moonshine-shadow-clr: 235deg 24% 5%;--light: #fce2b2ff;--orange: #f6aa1cff;--burnt-orange: #81320bff;--orange-100: #ffecc8ff;--orange-100-a75: #ffecc8bf;--celestial: #e3f6ffff;--celestial-a90: #e3f6ffe5;--celestial-a75: #e3f6ffbf;--celestial-a50: #e3f6ff7f;--celestial-a30: #e3f6ff4c;--grape: #231151ff;--oxford-blue-a50: #0e0f247f;--blue-rock: #101021ff;--oxford-blue: #0e0f24ff;--rich-black: #0f0f1cff;--rich-black-a75: #0f0f1cbf}:root{--sun: #fadd82ff;--sun-50: #ffe9a1ff;--sunshine: #fadd821f;--sunshine-shadow-clr: 65deg 12% 58%;--lemon: #f1f0ccff;--lemon-25: #fffee3ff;--lemon-50: #fdfdeeff;--dirty-sidewalk: #f9f9e1;--lemon-50-a75: #fdfdeebf;--jasper: #cd533bff;--jasper-a50: #cd533b7f;--sand-a50: #fc9f5b7f;--green: #5aff15ff;--darkgreen: #5e6319ff;--violet: #0b0033ff;--violet-a90: #0b0033e5;--violet-a75: #0b0033bf;--violet-a50: #0b00337f;--violet-a30: #0b00334c}:root{--clr-neut-50: #f6f6f6;--clr-neut-100: #ececec;--clr-neut-200: #dedede;--clr-neut-300: #cacaca;--clr-neut-400: #a5a5a5;--clr-neut-500: #838383;--clr-neut-600: #5d5d5d;--clr-neut-700: #4a4a4a;--clr-neut-800: #2c2c2c;--clr-neut-900: #0b0b0b;--clr-neut: var(--clr-primary-900);--clr-neut-50-rgb: 246, 246, 246;--clr-neut-100-rgb: 236, 236, 236;--clr-neut-200-rgb: 222, 222, 222;--clr-neut-300-rgb: 202, 202, 202;--clr-neut-400-rgb: 165, 165, 165;--clr-neut-500-rgb: 131, 131, 131;--clr-neut-600-rgb: 93, 93, 93;--clr-neut-700-rgb: 74, 74, 74;--clr-neut-800-rgb: 44, 44, 44;--clr-neut-900-rgb: 11, 11, 11;--clr-neut-rgb: var(--clr-primary-900-rgb);--bg-clr: var(--rich-black)}@media (prefers-color-scheme: light){:root{--bg-clr: var(--lemon-50);--bg-light-clr: var(--lemon-25);--content-bg-clr: var(--dirty-sidewalk);--bg-gradient: linear-gradient( 190deg, var(--sunshine), var(--bg-clr) 333px );--bg-lightsource: linear-gradient( 190deg, var(--sunshine), transparent 333px );--content-bg-gradient: linear-gradient( 190deg, var(--sunshine), var(--content-bg-clr) 333px );--primary-clr: var(--violet);--fg-clr: var(--violet);--fg-clr-o: var(--violet-a90);--fg-clr-oo: var(--violet-a75);--fg-clr-ooo: var(--violet-50);--fg-clr-oooo: var(--violet-a30);--highlight-clr: var(--jasper);--hardlight-clr: var(--sun);--link-clr: var(--fg-clr-oo);--link-clr--hover: var(--highlight-clr);--mark-bg-clr: var(--green);--headshot-filter: sepia(100%) saturate(70%) brightness(85%) hue-rotate(61deg);--shadow-color: var(--sunshine-shadow-clr);--shadow-elevation-low: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(100, 100, 100, .04), -18px 18px 18px -1.5px rgba(100, 100, 100, .08);--shadow-elevation-medium: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(100, 100, 100, .04), -18px 18px 18px -1.5px rgba(100, 100, 100, .08), -37px 37px 37px -3px rgba(155, 155, 155, .16);--shadow-elevation-high: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(100, 100, 100, .04), -18px 18px 18px -1.5px rgba(100, 100, 100, .08), -37px 37px 37px -3px rgba(155, 155, 155, .16), -75px 75px 75px -6px rgba(155, 155, 155, .24);--tag-clr: var(--sand-a50);--tag-border-clr: var(--jasper-a50);--posts-item-filter: brightness(100%);--posts-item-hover-filter: brightness(120%);--posts-item-link-bg-clr: rgba(var(--bg-clr), 1);--posts-item-link-filter: none;--posts-item-link-hover-filter: none;--posts-item-link-box-shadow: inset 0 0 9rem 3rem rgba(var(--black), .77);--posts-item-link-hover-box-shadow: inset 0 0 9rem 3rem rgba(var(--black), .33);--blockquotes-clr: var(--fg-clr-oo);--post-hero-filter: none;--post-title-text-shadow: 0 0 0 var(--fg-clr), .019em -.011em 0 var(--sunshine), .015em -.011em 2px rgba(255, 255, 255, .5), -1px 1px 2px rgba(0, 0, 0, .33);--post-blockquote-bg-clr: var(--bg-light-clr);--code-copied-clr: var(--darkgreen);--code-highlight-bg-clr: var(--green);--code-hover-header-clr: var(--fg-clr-oo);--code-header-hover-clr: var(--highlight-clr);--blocked-content-bg: white;--page-nav-heading: var(--fg-clr-oo);--page-nav-toggle-bg-clr: var(--sun-50);--page-nav-toggle-focus-bg-clr: var(--sun-50);--page-nav-toggle-focus-clr: var(--jasper);--page-nav-toggle-clr: var(--lemon-50-a75);--page-nav-list-bg-clr: var(--lemon-50-a75);--rim-light-bg: linear-gradient( 10deg, transparent 33%, var(--content-bg-clr) 67%, var(--hardlight-clr) 233% );--grid-rim-light-bg: linear-gradient( 10deg, transparent 33%, var(--content-bg-clr) 77%, var(--moonlight) 100% );--category-rim-light-bg: linear-gradient( 35deg, var(--bg-clr) 33%, var(--bg-clr) 77%, var(--hardlight-clr) 180% );--rim-light-mask-bg: linear-gradient( 3deg, var(--bg-clr) 95%, var(--hardlight-clr) );--category-rim-light-mask-bg: linear-gradient( 33deg, transparent, var(--hardlight-clr) );--skill-icon-brightness: brightness(.5);--skill-icon-brightness-hover: brightness(1);--skill-graph-blend: soft-light}}html.light-theme{--bg-clr: var(--lemon-50);--bg-light-clr: var(--lemon-25);--bg-gradient: linear-gradient(190deg, var(--sunshine), var(--bg-clr) 333px);--bg-lightsource: linear-gradient(190deg, var(--sunshine), transparent 333px);--content-bg-clr: var(--dirty-sidewalk);--content-bg-gradient: linear-gradient( 190deg, var(--sunshine), var(--content-bg-clr) 333px );--primary-clr: var(--violet);--fg-clr: var(--violet);--fg-clr-o: var(--violet-a90);--fg-clr-oo: var(--violet-a75);--fg-clr-ooo: var(--violet-50);--fg-clr-oooo: var(--violet-a30);--highlight-clr: var(--jasper);--hardlight-clr: var(--sun);--link-clr: var(--fg-clr-oo);--link-clr--hover: var(--highlight-clr);--mark-bg-clr: var(--green);--headshot-filter: sepia(100%) saturate(70%) brightness(85%) hue-rotate(61deg);--shadow-color: var(--sunshine-shadow-clr);--shadow-elevation-low: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(100, 100, 100, .04), -18px 18px 18px -1.5px rgba(100, 100, 100, .08);--shadow-elevation-medium: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(100, 100, 100, .04), -18px 18px 18px -1.5px rgba(100, 100, 100, .08), -37px 37px 37px -3px rgba(155, 155, 155, .16);--shadow-elevation-high: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(100, 100, 100, .04), -18px 18px 18px -1.5px rgba(100, 100, 100, .08), -37px 37px 37px -3px rgba(155, 155, 155, .16), -75px 75px 75px -6px rgba(155, 155, 155, .24);--tag-clr: var(--sand-a50);--tag-border-clr: var(--jasper-a50);--posts-item-filter: brightness(100%);--posts-item-hover-filter: brightness(120%);--posts-item-link-bg-clr: rgba(var(--bg-clr), 1);--posts-item-link-filter: none;--posts-item-link-hover-filter: none;--posts-item-link-box-shadow: inset 0 0 9rem 3rem rgba(var(--black), .77);--posts-item-link-hover-box-shadow: inset 0 0 9rem 3rem rgba(var(--black), .33);--blockquotes-clr: var(--fg-clr-oo);--post-hero-filter: none;--post-title-text-shadow: 0 0 0 var(--fg-clr), .019em -.011em 0 var(--sunshine), .015em -.011em 2px rgba(255, 255, 255, .5), -1px 1px 2px rgba(0, 0, 0, .33);--post-blockquote-bg-clr: var(--bg-light-clr);--code-copied-clr: var(--jasper);--code-highlight-bg-clr: var(--green);--code-hover-header-clr: var(--fg-clr-oo);--code-header-hover-clr: var(--highlight-clr);--blocked-content-bg: white;--page-nav-heading: var(--fg-clr-oo);--page-nav-toggle-bg-clr: var(--sun-50);--page-nav-toggle-focus-bg-clr: var(--sun-50);--page-nav-toggle-focus-clr: var(--jasper);--page-nav-toggle-clr: var(--lemon-50-a75);--page-nav-list-bg-clr: var(--lemon-50-a75);--rim-light-bg: linear-gradient( 10deg, transparent 33%, var(--content-bg-clr) 67%, var(--hardlight-clr) 233% );--category-rim-light-bg: linear-gradient( 35deg, var(--bg-clr) 33%, var(--bg-clr) 77%, var(--hardlight-clr) 180% );--rim-light-mask-bg: linear-gradient( 3deg, var(--bg-clr) 95%, var(--hardlight-clr) );--category-rim-light-mask-bg: linear-gradient( 33deg, transparent, var(--hardlight-clr) );--skill-icon-brightness: brightness(.5);--skill-icon-brightness-hover: brightness(1);--skill-graph-blend: soft-light}@media (prefers-color-scheme: dark){:root{--fg-clr: var(--moon);--primary-clr: var(--celestial);--fg-clr-o: var(--celestial-a90);--fg-clr-oo: var(--celestial-a75);--fg-clr-ooo: var(--celestial-a50);--fg-clr-oooo: var(--celestial-a30);--hardlight-clr: var(--grape);--bg-clr: var(--rich-black);--bg-light-clr: var(--oxford-blue);--content-bg-clr: var(--blue-rock);--bg-gradient: linear-gradient( 190deg, var(--moonshine), var(--bg-clr) 333px );--bg-lightsource: linear-gradient( 190deg, var(--moonshine), transparent 333px );--content-bg-gradient: linear-gradient( 190deg, var(--moonshine), var(--content-bg-clr) 333px );--shadow-color: var(--moonshine-shadow-clr);--shadow-elevation-low: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(0, 0, 0, .08), -18px 18px 18px -1.5px rgba(0, 0, 0, .16);--shadow-elevation-medium: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(0, 0, 0, .08), -18px 18px 18px -1.5px rgba(0, 0, 0, .16), -37px 37px 37px -3px rgba(0, 0, 0, .48);--shadow-elevation-high: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(0, 0, 0, .08), -18px 18px 18px -1.5px rgba(0, 0, 0, .16), -37px 37px 37px -3px rgba(0, 0, 0, .48), -75px 75px 75px -6px rgba(0, 0, 0, .72);--rim-clr: var(--moonshine);--link-clr: var(--fg-clr-oo);--link-clr--hover: var(--celestial);--highlight-clr: var(--orange);--tag-clr: var(--hardlight-clr);--tag-border-clr: var(--fg-clr-oooo);--headshot-filter: sepia(100%) saturate(43%) brightness(77%) hue-rotate(133deg);--posts-item-filter: brightness(77%);--posts-item-hover-filter: brightness(99%);--posts-item-link-bg-clr: var(--rim-light-bg);--posts-item-link-filter: brightness(100%);--posts-item-link-hover-filter: brightness(120%);--posts-item-link-box-shadow: inset 0 0 7rem .5rem rgba(0, 0, 0, .77);--post-hero-filter: brightness(77%);--blockquotes-clr: var(--orange-100-a75);--mark-bg-clr: var(--burnt-orange);--code-hover-header-clr: var(--fg-clr-oo);--code-header-hover-clr: var(--light);--code-copied-clr: var(--green);--code-highlight-bg-clr: var(--burnt-orange);--blocked-content-bg: black;--page-nav-heading: var(--moon);--page-nav-toggle-bg-clr: var(--oxford-blue-a50);--page-nav-toggle-focus-bg-clr: var(--hardlight-clr);--page-nav-toggle-focus-clr: var(--celestial);--page-nav-toggle-active-clr: var(--orange-100-a75);--page-nav-list-bg-clr: var(--rich-black-a75);--rim-light-bg: linear-gradient( 10deg, transparent 33%, var(--content-bg-clr) 77%, var(--rim-clr) 111% );--category-rim-light-bg: linear-gradient( 35deg, var(--bg-clr) 33%, var(--bg-clr) 77%, var(--rim-clr) 100% );--rim-light-mask-bg: linear-gradient(3deg, transparent, var(--rim-clr));--category-rim-light-mask-bg: linear-gradient( 33deg, transparent, var(--rim-clr) );--skill-icon-brightness: brightness(1);--skill-icon-brightness-hover: brightness(1.25);--skill-graph-blend: multiply}}html.dark-theme{--fg-clr: var(--moon);--fg-clr-o: var(--celestial-a90);--fg-clr-oo: var(--celestial-a75);--fg-clr-ooo: var(--celestial-a50);--fg-clr-oooo: var(--celestial-a30);--hardlight-clr: var(--grape);--bg-clr: var(--rich-black);--content-bg-clr: var(--blue-rock);--bg-light-clr: var(--oxford-blue);--bg-gradient: linear-gradient(190deg, var(--moonshine), var(--bg-clr) 333px);--bg-lightsource: linear-gradient( 190deg, var(--moonshine), transparent 333px );--content-bg-gradient: linear-gradient( 190deg, var(--moonshine), var(--content-bg-clr) 333px );--shadow-color: var(--moonshine-shadow-clr);--shadow-elevation-low: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(0, 0, 0, .04), -18px 18px 18px -1.5px rgba(0, 0, 0, .08);--shadow-elevation-medium: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(0, 0, 0, .04), -18px 18px 18px -1.5px rgba(0, 0, 0, .08), -37px 37px 37px -3px rgba(0, 0, 0, .16);--shadow-elevation-high: 0px 0px 0px 1px rgba(165, 165, 165, .04), -9px 9px 9px -.5px rgba(0, 0, 0, .04), -18px 18px 18px -1.5px rgba(0, 0, 0, .08), -37px 37px 37px -3px rgba(0, 0, 0, .16), -75px 75px 75px -6px rgba(0, 0, 0, .24);--primary-clr: var(--celestial);--rim-clr: var(--moonshine);--link-clr: var(--fg-clr-oo);--link-clr--hover: var(--celestial);--highlight-clr: var(--orange);--tag-clr: var(--hardlight-clr);--tag-border-clr: var(--fg-clr-oooo);--headshot-filter: sepia(100%) saturate(43%) brightness(77%) hue-rotate(133deg);--posts-item-filter: brightness(77%);--posts-item-hover-filter: brightness(99%);--posts-item-link-bg-clr: var(--rim-light-bg);--posts-item-link-filter: brightness(100%);--posts-item-link-hover-filter: brightness(120%);--posts-item-link-box-shadow: inset 0 0 7rem .5rem rgba(0, 0, 0, .77);--post-hero-filter: brightness(77%);--blockquotes-clr: var(--orange-100-a75);--mark-bg-clr: var(--burnt-orange);--code-hover-header-clr: var(--fg-clr-oo);--code-header-hover-clr: var(--light);--code-copied-clr: var(--green);--code-highlight-bg-clr: var(--burnt-orange);--blocked-content-bg: black;--page-nav-heading: var(--moon);--page-nav-toggle-bg-clr: var(--oxford-blue-a50);--page-nav-toggle-focus-bg-clr: var(--hardlight-clr);--page-nav-toggle-focus-clr: var(--celestial);--page-nav-toggle-active-clr: var(--orange-100-a75);--page-nav-list-bg-clr: var(--rich-black-a75);--rim-light-bg: linear-gradient( 10deg, transparent 33%, var(--content-bg-clr) 77%, var(--rim-clr) 111% );--grid-rim-light-bg: linear-gradient( 10deg, transparent 33%, var(--content-bg-clr) 77%, var(--moonlight) 100% );--category-rim-light-bg: linear-gradient( 35deg, var(--bg-clr) 33%, var(--bg-clr) 77%, var(--rim-clr) 100% );--rim-light-mask-bg: linear-gradient(3deg, transparent, var(--rim-clr));--category-rim-light-mask-bg: linear-gradient( 33deg, transparent, var(--rim-clr) );--skill-icon-brightness: brightness(1);--skill-icon-brightness-hover: brightness(1.25);--skill-graph-blend: multiply}:root{--transition-duration-fastest: .1s;--transition-duration-faster: .15s;--transition-duration-fast: 215ms;--transition-duration: 333ms;--transition-duration-slow: .5s;--transition-duration-slower: 1s;--transition-duration-slowest: 2s;--transition-timing-function: cubic-bezier(.455, .03, .515, .955)}@media (prefers-reduced-motion: reduce){:root{--transition-duration: 1ms !important;--transition-duration-fastest: 1ms !important;--transition-duration-faster: 1ms !important;--transition-duration-fast: 1ms !important;--transition-duration-slow: 1ms !important;--transition-duration-slower: 1ms !important;--transition-duration-slowest: 1ms !important}*,:before,:after,::view-transition-old(*),::view-transition-new(*){animation-duration:1ms!important;animation-iteration-count:1!important;transition-delay:1ms!important;transition-duration:1ms!important;scroll-behavior:auto!important}}.header,.scroll-top,.footer,.flourish,.main section,.main .privacy,.main.secondary{opacity:0;transition:opacity;transition-duration:var(--transition-duration);transition-timing-function:var(--transition-timing-function)}.flourish{transition-property:background-color,opacity}body.ready>div>.flourish{z-index:0;transition:border .5s;transition-delay:2s;box-shadow:none!important;border-top:8px solid transparent;background-color:transparent}body.ready .scroll-top{opacity:.6}body.ready .header,body.ready .footer,body.ready .flourish,body.ready .main section,body.ready .main .privacy,body.ready .main.secondary{opacity:1}body.ready .flourish{transition-property:background-color,opacity}body.ready .main section{transition-duration:var(--transition-duration);transition-property:opacity,background;transition-timing-function:var(--transition-timing-function)}body.ready .footer{transition:opacity .3s}body.ready.animating{overflow:hidden;scrollbar-color:transparent transparent}body.ready.animating>div>.flourish{transition:max-height 1s ease-in-out 1s;box-shadow:none!important;border-color:rgb(var(--foreground-rgb))}body.ready.animating .main section,body.ready.animating .main .privacy{opacity:0;transition-duration:var(--transition-duration);transition-property:opacity;transition-timing-function:var(--transition-timing-function)}body.ready.animating .scroll-top,body.ready.animating .footer{opacity:0}body.ready.animating .main .transition-container:first-of-type:last-of-type{height:auto;max-height:auto}body.ready.animating .main .transition-container:last-of-type{height:0;max-height:0;overflow:hidden}@font-face{src:url(../../../fonts/PublicSans-ExtraLight.woff2) format("woff2");font-family:Public Sans Extra Light;font-display:swap}@font-face{src:url(../../../fonts/PublicSans-Regular.woff2) format("woff2");font-family:Public Sans;font-display:swap}@font-face{src:url(../../../fonts/PublicSans-Bold.woff2) format("woff2");font-family:Public Sans Bold;font-display:swap}@font-face{src:url(../../../fonts/PublicSans-Black.woff2) format("woff2");font-family:Public Sans Black;font-display:swap}@font-face{src:url(../../../fonts/LibreBaskerville-Regular.woff2) format("woff2");font-family:Libre Baskerville;font-display:swap}@font-face{src:url(../../../fonts/LibreBaskerville-Bold.woff2) format("woff2");font-family:Libre Baskerville Bold;font-display:swap}:root{--font-psxl: "Public Sans Extra Light", sans-serif;--font-ps: "Public Sans", sans-serif;--font-psb: "Public Sans Bold", sans-serif;--font-psbl: "Public Sans Black", sans-serif;--font-lb: "Libre Baskerville", serif;--font-lbb: "Libre Baskerville Bold", serif}.main{display:flex;flex-grow:1;flex-direction:column;justify-content:center;align-items:center;justify-items:center;padding:0 .25rem;width:100%;max-width:64rem}.header,.footer{width:100%;max-width:72rem}.header{display:flex;position:relative;align-items:center;padding:1.25rem 0 0 1rem}body.ready .header{transition-duration:var(--transition-duration);transition-property:opacity}body.ready .header.scroll-transition{opacity:0;transition:opacity 0s}.posts,.post,.privacy,.category{opacity:.95;transition-duration:var(--transition-duration);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:var(--transition-timing-function);width:100%}.posts,.category{padding-right:1rem;padding-left:1rem}.post .aside{border:0;border-left-width:1px;border-left-style:solid}.post .aside,.category .aside{padding:0 0 0 1rem}.privacy>*:not(.masthead):not(.page-navigation.mini):not(.flourish),.post>*:not(.masthead):not(.page-navigation.mini):not(.flourish),.category-posts-transition-container>*:not(.masthead):not(.page-navigation.mini):not(.flourish){position:relative;z-index:7}.footer{padding:.75rem;text-align:center}.footer *{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.footer small{padding:1rem 0;font-size:.7rem;line-height:1.75}.footer small:hover p,.footer small:focus p,.footer small:focus-within p{opacity:1;transition-delay:0s;transition-duration:var(--transition-duration)}.footer small:hover .cc-link,.footer small:focus .cc-link,.footer small:focus-within .cc-link{display:inline-block;vertical-align:top;opacity:.5}.footer small:hover .cc-link:hover,.footer small:hover .cc-link:focus,.footer small:hover .cc-link:focus-visible,.footer small:hover .cc-link:active,.footer small:focus .cc-link:hover,.footer small:focus .cc-link:focus,.footer small:focus .cc-link:focus-visible,.footer small:focus .cc-link:active,.footer small:focus-within .cc-link:hover,.footer small:focus-within .cc-link:focus,.footer small:focus-within .cc-link:focus-visible,.footer small:focus-within .cc-link:active{opacity:1}.footer a{display:inline-block;transition-duration:var(--transition-duration-slow);transition-property:border color;border-bottom-width:thin;border-bottom-style:solid}.footer a:hover,.footer a:focus{border-bottom-color:var(--highlight-clr)}.footer p{transform-style:preserve-3d;opacity:.3;transition-delay:var(--transition-duration-slower);transition-duration:var(--transition-duration-slowest);transition-property:opacity,filter;transition-timing-function:var(--transition-timing-function);padding-bottom:.25rem;line-height:1.25}.footer p:last-of-type{padding-bottom:0}.footer .cc-link{display:inline-block;vertical-align:top;opacity:.5;transition:opacity .5s!important;border:none;width:17px;height:17px}.footer .icon-cc{width:17px;height:17px;color:#8b0000}.footer .fil0{fill:red}.transition-container{display:flex;flex-grow:1;flex-direction:column;justify-content:center;align-items:center;width:100%}@media (hover: none),(hover: on-demand),(-moz-touch-enabled: 1),(pointer: coarse){.header{padding:1.5rem 1.25rem 0 1.5rem}.header .theme-toggle{padding-right:0}}@media screen and (min-width: 333px){.main{padding-top:1.25rem}}@media screen and (min-width: 640px){.main{padding-top:1.25rem;padding-right:.75rem;padding-left:.75rem}.header{padding:2rem 1rem 0 2rem}.posts,.post,.privacy,.category{max-width:64rem}}@media (min-width: 640px) and (hover: none),(min-width: 640px) and (hover: on-demand),(min-width: 640px) and (-moz-touch-enabled: 1),(min-width: 640px) and (pointer: coarse){.header{padding:1.5rem 1.5rem 0}}.category,.post,.posts .summary,.cv,.privacy,.footer{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}.privacy h1,.privacy h2,.privacy h3,.privacy h4,.privacy h5,.privacy h6,.privacy h7,.post h1,.post h2,.post h3,.post h4,.post h5,.post h6,.post h7,.cv h1,.cv h2,.cv h3,.cv h4,.cv h5,.cv h6,.cv h7,.category-list h1,.category-list h2,.category-list h3,.category-list h4,.category-list h5,.category-list h6,.category-list h7{color:var(--fg-clr-o)}.meat{line-height:1.6}.meat p{padding-top:1rem;padding-bottom:1rem}.meat p code{font-size:1rem}.meat strong{font-weight:400;font-family:var(--font-psb)}.meat ol,.meat ul{margin:.75rem 0 .75rem .25rem}.meat ol li,.meat ul li{margin-bottom:.75rem}.meat ol li:last-of-type,.meat ul li:last-of-type{margin-bottom:0}.meat ol ol,.meat ol ul,.meat ul ol,.meat ul ul{margin:.75rem 0 .75rem .25rem}.meat mark{background-color:rgb(var(--foreground-mark-rgb));padding-right:.75rem;padding-left:.75rem}.meat h1,.meat h2,.meat h3,.meat h4,.meat h5,.meat h6{transition-duration:var(--transition-duration);transition-property:color;transition-timing-function:var(--transition-timing-function);margin-top:1rem;margin-bottom:1.25rem;letter-spacing:-.6px}.meat h1:first-child,.meat h2:first-child,.meat h3:first-child,.meat h4:first-child,.meat h5:first-child,.meat h6:first-child{margin-top:0}.meat h1{margin-bottom:1rem;font-size:2.25rem;line-height:2.25rem;font-family:var(--font-psbl)}.meat h1+p{padding-top:.25rem}.meat h2{margin-bottom:.5rem;font-size:1.875rem;line-height:2.25rem;font-family:var(--font-psbl)}.meat h2+p{padding-top:.25rem}.meat h3{margin-bottom:.5rem;font-size:1.5rem;line-height:2rem;font-family:var(--font-psbl)}.meat h3+p{padding-top:.25rem}.meat h4{margin-bottom:.5rem;font-size:1.25rem;line-height:1.75rem;font-family:var(--font-psb)}.meat h4+p{padding-top:.25rem}.meat h5{margin-bottom:1rem;font-size:1rem;line-height:1.5rem;font-family:var(--font-psb)}.meat h6{margin-bottom:.5rem;font-style:italic;font-size:1rem;font-size:1.125rem;line-height:1.5rem;line-height:1.75rem;font-family:var(--font-psb)}.meat h6+p{padding-top:.25rem}.meat .privacy-main .post-heading,.meat .post-article .post-heading{position:relative}.meat .privacy-main .heading-anchor-link,.meat .post-article .heading-anchor-link{display:inline;position:absolute;opacity:0;transition:opacity var(--transition-duration-slow) ease-in-out,color var(--transition-duration-slow);box-sizing:content-box;inset:0 0 auto auto;border:none;padding-right:.5rem;width:100%;height:100%;font-size:1rem;font-family:var(--font-lb);text-align:right}.meat .privacy-main .heading-anchor-link:hover,.meat .privacy-main .heading-anchor-link:focus,.meat .privacy-main .heading-anchor-link:focus-visible,.meat .privacy-main .heading-anchor-link:active,.meat .post-article .heading-anchor-link:hover,.meat .post-article .heading-anchor-link:focus,.meat .post-article .heading-anchor-link:focus-visible,.meat .post-article .heading-anchor-link:active{opacity:1;color:var(--highlight-clr)}h1.page-heading{transition-duration:var(--transition-duration);transition-property:color;transition-timing-function:var(--transition-timing-function);margin-bottom:1.25rem;font-size:2.25rem;line-height:2.5rem;font-family:var(--font-psbl);letter-spacing:-.6px}.category ul{margin:0}.category ul li:last-of-type{margin-bottom:0}.category ul li:last-of-type p:last-of-type{margin-bottom:0}@media screen and (min-width: 480px){.meat ol,.meat ul{margin:.75rem 0}.meat ol ol,.meat ol ul,.meat ul ol,.meat ul ul{margin:.75rem 0 .75rem .75rem}.meat .privacy-main .heading-anchor-link,.meat .post-article .heading-anchor-link{left:-1rem;padding-right:1rem;text-align:left}}@media screen and (min-width: 768px){.meat h1,.meat h2,.meat h3,.meat h4,.meat h5,.meat h6{margin-top:1.25rem;margin-bottom:1.75rem}.meat h1{margin-bottom:.5rem;font-size:3rem;line-height:1rem}.meat h1+p{padding-top:.5rem}.meat h2{margin-bottom:.5rem;font-size:2.25rem;line-height:2.5rem}.meat h2+p{padding-top:.5rem}.meat h3{margin-bottom:.5rem;font-size:1.875rem;line-height:2.25rem}.meat h3+p{padding-top:.5rem}.meat h4{margin-bottom:.5rem;font-size:1.5rem;line-height:2rem}.meat h4+p{padding-top:.5rem}.meat h5{margin-bottom:.5rem;font-size:1.125rem;line-height:1.75rem}.meat h5+p{padding-top:.5rem}.meat .privacy-main .heading-anchor-link,.meat .post-article .heading-anchor-link{left:-1.5rem;vertical-align:middle;padding-right:1.5rem;font-size:inherit}h1.page-heading{font-size:3rem;line-height:1}}.hidden{display:none}.visually-hidden{visibility:hidden}.sr-only{position:absolute;margin:-1px;padding:0;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);border-width:0;white-space:nowrap}:root{--white: 223, 224, 224;--black: 19, 19, 20;transition-duration:var(--transition-duration-slow);transition-property:background;transition-timing-function:var(--transition-timing-function);background:var(--bg-lightsource);background-repeat:no-repeat;background-color:var(--bg-clr)}:root :focus-visible{outline:2px dashed var(--highlight-clr);outline-offset:.25rem;border-bottom-color:transparent!important}:root a{text-decoration:none}html{display:block;position:relative;transition:background-color;transition-duration:var(--transition-duration-slow);background-color:var(--bg-clr);min-height:100%;overflow:clip;scroll-behavior:smooth}body{display:flex;position:relative;flex-direction:column;align-items:center;transition:scrollbar-color 1s;padding-right:7px;padding-left:7px;height:100vh;min-height:100vh;overflow:overlay;scroll-behavior:smooth;scrollbar-color:var(--fg-clr-oooo) transparent;scrollbar-gutter:stable;color:var(--fg-clr);font-size:1rem;line-height:1.5rem;font-family:var(--font-psxl)}body::-webkit-scrollbar-thumb{background-color:var(--fg-clr-oooo)}body::-webkit-scrollbar{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:3px;width:8px}body::-webkit-scrollbar-track{background:transparent}body::-webkit-scrollbar-thumb{border-radius:3rem}.flourish{position:fixed;transform:translateZ(0);z-index:1;transition-duration:var(--transition-duration);transition-property:background-color;transition-timing-function:var(--transition-timing-function);inset:0 0 auto;box-shadow:0 1px 2px #0000000d;background-color:var(--fg-clr);height:.5rem}#main{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);margin:0;border-width:0;padding:0;width:0;height:0;white-space:nowrap}.image-loader{display:flex;justify-content:center;align-items:center;opacity:0;transition-duration:var(--transition-duration);transition-property:opacity;transition-timing-function:var(--transition-timing-function);margin:auto}.image-loader.loaded{opacity:1}.bio a,.footer a,.privacy a,.category-posts-list .post-item-summary a,.cv article section a,.cv .timeline a,.not-found a{transition-duration:var(--transition-duration);transition-property:color,border-color;border-bottom-color:var(--link-clr);border-bottom:1px solid;color:var(--link-clr)}.bio a:hover,.bio a:focus,.footer a:hover,.footer a:focus,.privacy a:hover,.privacy a:focus,.category-posts-list .post-item-summary a:hover,.category-posts-list .post-item-summary a:focus,.cv article section a:hover,.cv article section a:focus,.cv .timeline a:hover,.cv .timeline a:focus,.not-found a:hover,.not-found a:focus{border-bottom-color:var(--highlight-clr);color:var(--link-clr--hover)}a.scroll-top{display:flex;flex-direction:column;align-items:center;z-index:0;transition:unset;transition-duration:var(--transition-duration);transition-property:color,opacity;transition-timing-function:var(--transition-timing-function);color:var(--fg-clr-oo);font-size:.75rem;line-height:1rem}a.scroll-top:hover,a.scroll-top:focus,a.scroll-top:focus-visible{opacity:1;color:var(--highlight-clr)}.scroll-top svg{transition-duration:var(--transition-duration);transition-property:color;transition-timing-function:var(--transition-timing-function);margin-top:1.25rem;margin-bottom:.3rem}.post-article a:not(.heading-anchor-link){border-bottom:1px solid var(--link-clr);color:var(--link-clr)}.post-article a:not(.heading-anchor-link):hover,.post-article a:not(.heading-anchor-link):focus,.post-article a:not(.heading-anchor-link):focus-visible{border-bottom:1px solid var(--highlight-clr);color:var(--link-clr--hover)}@media screen and (min-width: 640px){body{font-size:1.125rem;line-height:1.75rem}}
