@import"https://fonts.googleapis.com/css2?family=Darker+Grotesque&display=swap";@import"https://fonts.googleapis.com/css2?family=Open+Sans&display=swap";html{height:100%}body{margin:0;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body #app{height:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.App{--shadow-color: rgba(0, 0, 0, 1);--light-color: #fafafa;--dark-color: #0b1616;--accent-color: #00aba5}.App.dark{--loading-background: #0b1616;--loading-color: #fafafa;--side-menu-background: linear-gradient(160deg, #0b1616 55%, black 130%);--side-menu-text-color-faded: #949494;--side-menu-text-color: #fafafa;--menu-border: rgba(255, 255, 255, .18);--menu-hover: rgba(255, 255, 255, .08);--menu-active: rgba(0, 171, 165, .16);--top-menu-background: #0b1616;--top-menu-text-color-faded: #949494;--top-menu-text-color: #fafafa;--content-background: #0b1616;--content-text-color: #fafafa;--content-soft-text-color: #bfbfbf}.App.light{--loading-background: #fafafa;--loading-color: #0b1616;--side-menu-background: linear-gradient(160deg, #fafafa 60%, white 130%);--side-menu-text-color: #0b1616;--side-menu-text-color-faded: #2d5a5a;--menu-border: rgba(11, 22, 22, .1);--menu-hover: rgba(11, 22, 22, .06);--menu-active: rgba(0, 171, 165, .12);--top-menu-background: #fafafa;--top-menu-text-color-faded: rgb(20.9803921569%, 41.9607843137%, 41.9607843137%);--top-menu-text-color: #0b1616;--content-background: #fafafa;--content-text-color: #0b1616;--content-soft-text-color: #384242}.App.dark{--menu-shadow: 0 0 32px rgba(0, 0, 0, .55)}.App.light{--menu-shadow: 0 0 32px rgba(15, 40, 40, .12)}.App{--side-bar-size: 21rem;--content-buffer: calc(var(--side-bar-size) + 3rem);--top-bar-size: 5rem}.App{font-family:Open Sans,Darker Grotesque,Brandon Grotesque,sans-serif;font-size:1.08rem}.App{--default-transition: all .75s ease-in-out;--sidebar-transition: var(--default-transition), margin .75s cubic-bezier(.5, -.6, .5, 1.6);--loading-transition: opacity .75s ease-in-out}@media(prefers-reduced-motion){.App{--sidebar-transition: --default-transition, margin none;--loading-transition: none}}@keyframes ring-loader{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.App{display:flex;flex-direction:row;flex-wrap:nowrap;min-height:100%;position:relative;background:var(--content-background);transition:var(--default-transition)}.App .content-wrapper{display:flex;flex-direction:column;flex-wrap:nowrap;flex-grow:1;min-width:0}.content{flex-grow:1;padding:0 1.5rem 2rem 5rem;background-color:var(--content-background);color:var(--content-text-color);transition:var(--default-transition)}@media screen and (min-width:768px){.content{padding-left:var(--content-buffer)}}.content hr{border-style:solid;border-color:var(--accent-color);transition:var(--default-transition)}.cv{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:flex-start;gap:2rem}@media screen and (min-width:1100px){.cv{flex-direction:row}}.cv .mainSection{flex-grow:1}.cv .mainSection .introduction .name{font-size:2.5rem;margin-bottom:.5rem}.cv .mainSection .introduction .subtitle{font-size:1.5rem;font-weight:700;margin-top:0;margin-bottom:.5rem}.cv .mainSection .introduction .intro{margin-top:1rem;margin-bottom:0;color:var(--content-text-color);line-height:1.5}.cv .mainSection .introduction p b{color:var(--accent-color)}.cv .mainSection .introduction .stats{display:flex;flex-direction:column;flex-wrap:wrap;row-gap:.5em}@media screen and (min-width:768px){.cv .mainSection .introduction .stats{flex-direction:row;row-gap:.75em}}.cv .mainSection .introduction .stats .stat{flex-basis:50%;display:flex;align-items:center;gap:.4em}@media screen and (min-width:768px){.cv .mainSection .introduction .stats .stat:nth-child(2n){justify-content:flex-end;text-align:right}.cv .mainSection .introduction .stats .stat:nth-child(n+3){margin-top:.25em}}.cv .mainSection .introduction .stats .stat svg{color:var(--accent-color);flex-shrink:0}.cv .mainSection .introduction .stats .stat .text{display:inline-block;text-align:left}.cv .mainSection .experience h2{margin-top:3rem}.cv .mainSection .education h2{margin-top:1.75rem}.cv .mainSection .experience .item,.cv .mainSection .education .item{padding-bottom:1.25rem;margin-bottom:1.25rem;border-bottom:1px solid var(--content-soft-text-color)}.cv .mainSection .experience .item:last-child,.cv .mainSection .education .item:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.cv .mainSection .experience .item .time,.cv .mainSection .education .item .time{color:var(--content-soft-text-color);font-size:.9em;margin-bottom:.2em}.cv .mainSection .experience .item h3,.cv .mainSection .education .item h3{margin-top:0;margin-bottom:.4em;font-weight:400}.cv .mainSection .experience .item h3 .soft,.cv .mainSection .education .item h3 .soft{color:var(--content-soft-text-color)}.cv .mainSection .experience .item h3 .employer,.cv .mainSection .education .item h3 .employer{font-weight:600}.cv .mainSection .experience .item h3 .role,.cv .mainSection .education .item h3 .role{color:var(--content-soft-text-color)}.cv .mainSection .experience .item .timeline,.cv .mainSection .education .item .timeline{display:grid;grid-template-columns:auto auto;justify-content:start;column-gap:1.25rem;row-gap:.1rem;margin:0 0 .6rem;max-width:34rem}.cv .mainSection .experience .item .timeline .timeline-row,.cv .mainSection .education .item .timeline .timeline-row{display:contents}.cv .mainSection .experience .item .timeline .timeline-role,.cv .mainSection .education .item .timeline .timeline-role{font-weight:600}.cv .mainSection .experience .item .timeline .timeline-time,.cv .mainSection .education .item .timeline .timeline-time{color:var(--content-soft-text-color);font-size:.9em;white-space:nowrap}@media screen and (max-width:767px){.cv .mainSection .experience .item .timeline,.cv .mainSection .education .item .timeline{grid-template-columns:1fr;row-gap:.1rem}}.cv .mainSection .experience .item .timeline-caption,.cv .mainSection .education .item .timeline-caption{margin:.25rem 0 1rem;font-size:.85em;line-height:1.5;color:var(--content-soft-text-color)}.cv .mainSection .experience .item .note,.cv .mainSection .education .item .note{color:var(--content-soft-text-color);margin-top:0;margin-bottom:.75rem;line-height:1.5}.cv .mainSection .experience .item .description,.cv .mainSection .education .item .description{margin-top:0;margin-bottom:.75rem;line-height:1.5}.cv .mainSection .experience .item .projects .project,.cv .mainSection .education .item .projects .project{margin-bottom:.75rem}.cv .mainSection .experience .item .projects .project:not(:first-child),.cv .mainSection .education .item .projects .project:not(:first-child){margin-top:1rem}.cv .mainSection .experience .item .projects .project:last-child,.cv .mainSection .education .item .projects .project:last-child{margin-bottom:.25rem}.cv .mainSection .experience .item .projects .project .project-line,.cv .mainSection .education .item .projects .project .project-line{margin:0 0 .35rem;line-height:1.5}.cv .mainSection .experience .item .projects .project ul,.cv .mainSection .education .item .projects .project ul{margin-bottom:.25rem}.cv .mainSection .experience .item ul,.cv .mainSection .education .item ul{margin-top:0;margin-bottom:.75rem;color:var(--content-soft-text-color);padding-left:1.2em}.cv .mainSection .experience .item ul li,.cv .mainSection .education .item ul li{margin-bottom:.4em;line-height:1.5}.cv .mainSection .experience .item ul li:last-child,.cv .mainSection .education .item ul li:last-child{margin-bottom:0}.cv .sideSection{flex-shrink:0;width:100%}@media screen and (min-width:1100px){.cv .sideSection{max-width:25%;position:sticky;top:3.5rem;margin-top:6rem}}.cv .sideSection .skills h2{font-size:1.2em;margin-bottom:0}.cv .sideSection .skills .skill-subgroup h3{font-size:calc(1em + 1px);font-weight:500;color:var(--content-soft-text-color);margin:.7em 0 .45em;text-decoration:none;border:0}.cv .sideSection .skills .skill-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:.45em;list-style:none;margin:0;padding:0}.cv .sideSection .skills .skill-list .skill{border-radius:1rem;border:1px solid var(--accent-color);padding:.25em .7em;line-height:1.3}a.external{color:var(--content-text-color);text-decoration:none;border-bottom:1px solid var(--accent-color);transition:var(--default-transition)}a.external svg{vertical-align:-15%;color:var(--accent-color);transition:var(--default-transition)}a.external:hover{border-color:var(--content-text-color)}a.external:hover svg{color:var(--content-text-color)}.experience .item ul li a.external,.education .item ul li a.external{color:inherit}.experience .item ul li a.external:hover,.education .item ul li a.external:hover{color:var(--content-text-color)}.experience .item .projects .project-line a.project-name,.education .item .projects .project-line a.project-name{font-weight:600}.experience .item .projects .project-line .nobreak,.education .item .projects .project-line .nobreak{white-space:nowrap;font-weight:inherit}a.stat-link{color:inherit;text-decoration:none;border-bottom:1px solid var(--accent-color)}a.stat-link:hover{border-color:var(--content-text-color)}a.internal{color:var(--content-text-color);text-decoration:none;border-bottom:1px solid var(--accent-color);transition:var(--default-transition)}a.internal:hover{border-color:var(--content-text-color)}@media print{@page{margin:14mm 16mm}.sidebar,.topbar,.pull-cord{display:none!important}html .App.dark,html .App.light{--content-background: #fff;--content-text-color: #111;--content-soft-text-color: #333;--accent-color: #007772;--menu-border: rgba(0, 0, 0, .2)}html,body,#app{height:auto;background:#fff}.App{display:block;min-height:0;background:#fff!important;color:#111;font-size:10.5pt}.App .content-wrapper{display:block}.App .content{padding:0;background:#fff!important;color:#111}.App *{transition:none!important;box-shadow:none!important}.App a{color:inherit}.App h1,.App h2,.App h3,.App hr{break-after:avoid}.App hr{break-before:avoid}.App .time{break-after:avoid}.App li,.App .timeline,.App .skill-subgroup,.App .skill-list{break-inside:avoid}.App .cv{display:block}.App .sideSection{position:static;max-width:none;margin-top:1.5rem}}.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.sidebar{position:fixed;width:var(--side-bar-size);height:100vh;background:var(--side-menu-background);background-position:center;background-repeat:no-repeat;background-size:cover;color:var(--side-menu-text-color);text-align:center;box-shadow:var(--menu-shadow);border-right:1px solid var(--menu-border);box-sizing:border-box;z-index:99;flex-shrink:0}@media screen and (max-width:767px){.sidebar{width:93vw}.sidebar.minimized{transform:translate(-88.35%)}}.sidebar{transition:var(--sidebar-transition)}.sidebar picture{display:contents}.sidebar img.circle{transition:var(--sidebar-transition);margin-top:3.25rem;width:9.5rem;height:9.5rem;object-fit:cover;border-radius:50%;border:.15rem solid var(--accent-color);box-shadow:0 0 0 .45rem #00aba51f,0 14px 32px -8px #00000073}.sidebar .sidebar-name{font-size:1.75rem;font-weight:600;letter-spacing:.01em;margin:1.5rem 0 0}.sidebar sub{display:block;font-size:.8rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-top:.35rem;margin-bottom:0;color:var(--accent-color);transition:var(--default-transition)}.App.light .sidebar sub{color:#008c87}.sidebar sub:after{content:"";display:block;width:2.5rem;height:2px;margin:1.75rem auto 1.5rem;border-radius:2px;background:var(--accent-color);opacity:.55}.sidebar nav{display:flex;flex-direction:column;gap:.25rem;padding:0 1.5rem}.sidebar nav a{position:relative;font-size:1.15rem;padding:.65rem 1rem;border-radius:.75rem;text-decoration:none;color:var(--side-menu-text-color)}@media screen and (min-width:768px){.sidebar nav a{color:var(--side-menu-text-color-faded)}}.sidebar nav a:hover{color:var(--side-menu-text-color);background:var(--menu-hover)}.sidebar nav a:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}.sidebar nav a[aria-current=page]{color:var(--side-menu-text-color);background:var(--menu-active);font-weight:600}.sidebar nav a[aria-current=page]:before{content:"";position:absolute;left:0;top:28%;bottom:28%;width:3px;border-radius:3px;background:var(--accent-color)}.sidebar nav a{transition:var(--default-transition)}.sidebar .expand{position:absolute;top:0;left:88%;width:12%;height:100%;display:flex;align-items:center;font-size:2em}@media screen and (min-width:768px){.sidebar .expand{display:none}}.sidebar .expand .chevrons{display:flex;transition:var(--default-transition);height:1em;width:1.2em}.sidebar .expand .chevrons.rotate{transform:rotate(-180deg)}.sidebar .expand .chevrons svg{position:absolute}.sidebar .expand .chevrons svg:nth-child(1){left:20%}.topbar{position:sticky;top:0;height:3.5rem;flex-shrink:0;z-index:45;box-sizing:border-box;display:flex;align-items:center;gap:.5rem;padding-left:5rem;padding-right:5.5rem;background:var(--top-menu-background)}@supports (background: color-mix(in srgb,red 50%,transparent)){.topbar{background:color-mix(in srgb,var(--top-menu-background) 84%,transparent);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2)}}.topbar{border-bottom:1px solid var(--menu-border);transition:var(--default-transition)}@media screen and (max-width:899px){.topbar{position:relative}}@media screen and (min-width:768px){.topbar{padding-left:var(--content-buffer)}}.topbar .icon-btn,.topbar .lang-link{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:2.5rem;margin:0;padding:0;border:1px solid transparent;background:transparent;color:var(--top-menu-text-color-faded);font:inherit;cursor:pointer;text-decoration:none;transition:color .2s ease,background-color .2s ease,border-color .2s ease,transform .15s ease}.topbar .icon-btn:hover,.topbar .lang-link:hover{color:var(--top-menu-text-color);background:var(--menu-hover)}.topbar .icon-btn:focus-visible,.topbar .lang-link:focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}.topbar .icon-btn:active,.topbar .lang-link:active{transform:scale(.94)}.topbar .icon-btn{width:2.5rem;border-radius:50%;margin-left:-.5rem}.topbar .icon-btn span{display:inline-flex}.topbar .icon-btn span[hidden]{display:none}.topbar .icon-btn span.pop{animation:icon-pop .6s cubic-bezier(.34,1.56,.64,1)}.topbar .lang-link{gap:.4rem;padding:0 .9rem 0 .75rem;border-radius:999px;border-color:var(--menu-border);font-size:.85rem;font-weight:600;letter-spacing:.08em}.topbar .lang-link:hover{border-color:var(--top-menu-text-color-faded)}.topbar .lang-link svg{opacity:.85}@keyframes icon-pop{0%{transform:rotate(-110deg) scale(.2);opacity:0}to{transform:none;opacity:1}}.pull-cord{position:absolute;top:0;right:1.25rem;width:40px;height:120px;pointer-events:none;z-index:2;color:var(--top-menu-text-color-faded);transition:var(--default-transition)}.pull-cord svg{display:block;overflow:visible;filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}.pull-cord .cord-line{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-dasharray:1.2 2.2;opacity:.8}.pull-cord .cord-cap{fill:var(--top-menu-text-color-faded)}.pull-cord .cord-ball{fill:var(--accent-color);transition:filter .2s ease}.pull-cord .cord-shine{fill:#fff;opacity:.45}.pull-cord .cord-hit{fill:transparent;pointer-events:all;cursor:grab;touch-action:none}.pull-cord:hover .cord-ball{filter:brightness(1.15)}.pull-cord.grabbing .cord-hit{cursor:grabbing}html.theme-vt .App,html.theme-vt .App *{transition:none!important}html.theme-vt::view-transition-old(root),html.theme-vt::view-transition-new(root){animation:none;mix-blend-mode:normal}html.theme-vt::view-transition-old(root){z-index:1}html.theme-vt::view-transition-new(root){z-index:2}html.theme-vt .pull-cord{view-transition-name:pull-cord}html.theme-vt::view-transition-group(pull-cord){animation:none}html.theme-vt::view-transition-old(pull-cord){display:none}html.theme-vt::view-transition-new(pull-cord){animation:none}@media(prefers-reduced-motion:reduce){.topbar .icon-btn span.pop{animation:none}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media(prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}[data-astro-transition-scope]{animation:none!important}}
