.svg[data-v-f23e8cd5]{height:3em;filter:drop-shadow(0 0 2px var(--color-shadow))}.svg .path1[data-v-f23e8cd5]{fill:var(--color-text-inverse)}.social-icon[data-v-75032a3c]{display:block;width:1em;height:1em}.contact_link[data-v-4a2fbc93]{font-size:2em;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text)}.contact_link[data-v-4a2fbc93]:hover,.contact_link[data-v-4a2fbc93]:focus{color:var(--color-primary)}.contact_link .contact_label[data-v-4a2fbc93]{margin-left:.4em;font-size:.5em;vertical-align:middle}.sr-only[data-v-4a2fbc93]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes pillMovement-2d9496f2{0%,to{transform:translateY(0)}50%{transform:translateY(-.5em)}}@keyframes scroll-2d9496f2{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes scrollBackwards-2d9496f2{0%{transform:translate(-50%)}to{transform:translate(0)}}#navigation-bar[data-v-2d9496f2]{z-index:1000;top:0;left:0;right:0;position:fixed;transition:.3s}#navigation-bar nav[data-v-2d9496f2]{width:100%;max-width:min(1300px,100%);display:flex;align-items:center;box-sizing:border-box;transition:.3s}#navigation-bar nav .left-corner[data-v-2d9496f2]{display:flex;flex-direction:row;margin-top:-.5em}#navigation-bar nav .left-corner a[data-v-2d9496f2]{margin:1em}#navigation-bar nav .left-corner a .svg[data-v-2d9496f2]{stroke:var(--color-text);height:2.2rem;stroke-width:1.2;padding:.4em}#navigation-bar nav .nav-content[data-v-2d9496f2]{display:flex;border-radius:2em;min-width:0;flex-wrap:wrap;justify-content:center}#navigation-bar nav .nav-content .router-link[data-v-2d9496f2]{margin:.5em;padding:.5em 1em;border-radius:2em;transition:.3s ease-in-out;white-space:nowrap}#navigation-bar nav .nav-content .router-link.router-link-active[data-v-2d9496f2]{background-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:-4px -2px 16px 0 var(--color-shadow-neu-light),4px 2px 16px 0 var(--color-primary);border-radius:2em}#navigation-bar nav .nav-content .router-link[data-v-2d9496f2]:hover{color:var(--color-text-inverse)}#navigation-bar nav .nav-content .router-link[data-v-2d9496f2]:active{box-shadow:none}#navigation-bar nav .progress-bar[data-v-2d9496f2]{height:.25em;border-radius:3em;position:fixed;bottom:0;left:0;background:var(--color-text)}#navigation-bar nav .right-corner[data-v-2d9496f2]{display:flex;flex-direction:row;text-align:centre;gap:.5em}#navigation-bar nav .right-corner div[data-v-2d9496f2]{padding:.5em}#navigation-bar nav #expand-notification[data-v-2d9496f2]{position:fixed;right:1em;top:.5em;cursor:pointer;transition:right .1s}#navigation-bar nav #expand-notification svg[data-v-2d9496f2]{height:3em;transition:transform .75s cubic-bezier(.4,0,.2,1)}#navigation-bar nav #expand-notification svg .line[data-v-2d9496f2]{fill:none;stroke:var(--color-text);stroke-linecap:round;stroke-linejoin:round;stroke-width:2;transition:stroke-dasharray .75s cubic-bezier(.4,0,.2,1),stroke-dashoffset .75s cubic-bezier(.4,0,.2,1)}#navigation-bar nav #expand-notification svg .line-top-bottom[data-v-2d9496f2]{stroke-dasharray:12 63}#navigation-bar nav #expand-notification.nav-opened svg[data-v-2d9496f2]{transform:rotate(-45deg)}#navigation-bar nav #expand-notification.nav-opened .line-top-bottom[data-v-2d9496f2]{stroke-dasharray:20 300;stroke-dashoffset:-32.42}#navigation-bar nav #expand-notification.nav-closed:hover .line-top-bottom[data-v-2d9496f2]{stroke-dasharray:15 55}#navigation-bar nav.nav-closed[data-v-2d9496f2]{height:4em}#navigation-bar nav.nav-open[data-v-2d9496f2]{height:100vh}@media only screen and (min-width:1024px){#navigation-bar nav[data-v-2d9496f2]{margin:0 auto;border-radius:.3em;justify-content:space-between;flex-wrap:wrap;gap:.35rem;padding:0 .5rem}#navigation-bar nav .nav-content[data-v-2d9496f2]{flex-direction:row;align-items:center;flex:0 0 auto;width:fit-content;max-width:none;background-color:var(--color-glass);background-image:linear-gradient(135deg,color-mix(in srgb,var(--color-glass-sheen) 30%,transparent),color-mix(in srgb,var(--color-glass-sheen) 5%,transparent) 45%,color-mix(in srgb,var(--color-glass-sheen) 15%,transparent));-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);border:1px solid color-mix(in srgb,var(--color-glass-sheen) 35%,transparent);overflow:hidden}#navigation-bar nav .nav-content .router-link[data-v-2d9496f2]{padding:.45em .75em;font-size:.85rem}#navigation-bar nav .right-corner[data-v-2d9496f2]{padding:0 1em;box-shadow:6px 6px 12px var(--color-shadow-neu-dark),-6px -6px 12px var(--color-shadow-neu-light);background-color:var(--color-glass);background-image:linear-gradient(135deg,color-mix(in srgb,var(--color-glass-sheen) 30%,transparent),color-mix(in srgb,var(--color-glass-sheen) 5%,transparent) 45%,color-mix(in srgb,var(--color-glass-sheen) 15%,transparent));-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);border:1px solid color-mix(in srgb,var(--color-glass-sheen) 35%,transparent);border-radius:3em}#navigation-bar nav .right-corner .contact_link[data-v-2d9496f2]{padding:.3em .1em}#navigation-bar nav #expand-notification[data-v-2d9496f2]{display:none}}@media only screen and (max-width:1023px){#navigation-bar nav[data-v-2d9496f2]{flex-direction:column;overflow:hidden;box-shadow:6px 6px 12px var(--color-shadow-neu-dark),-6px -6px 12px var(--color-shadow-neu-light);background-color:var(--color-glass);background-image:linear-gradient(135deg,color-mix(in srgb,var(--color-glass-sheen) 30%,transparent),color-mix(in srgb,var(--color-glass-sheen) 5%,transparent) 45%,color-mix(in srgb,var(--color-glass-sheen) 15%,transparent));-webkit-backdrop-filter:blur(30px) saturate(180%);backdrop-filter:blur(30px) saturate(180%);border:1px solid color-mix(in srgb,var(--color-glass-sheen) 35%,transparent)}#navigation-bar nav .left-corner[data-v-2d9496f2]{display:flex;flex-direction:row;width:100%;text-align:start}#navigation-bar nav .nav-content[data-v-2d9496f2]{flex-direction:column;width:100%;max-width:100%;margin:1.5em 0 3em}#navigation-bar nav .nav-content a[data-v-2d9496f2]{text-align:center;padding:.85em 1em;font-size:.95rem}#navigation-bar nav .right-corner[data-v-2d9496f2]{gap:2em}#navigation-bar nav .right-corner .contact_link[data-v-2d9496f2]{font-size:3em}#navigation-bar nav .right-corner[data-v-2d9496f2]{margin:0}}footer{position:relative;background:var(--color-surface-inverse);color:color-mix(in srgb,var(--color-text-inverse) 92%,transparent);width:100%;max-width:100%;box-sizing:border-box;overflow-x:clip}footer:before{content:"";display:block;height:3px;background:linear-gradient(to right,var(--color-primary),var(--color-secondary))}footer .footer-content{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:2.5em;max-width:1000px;margin:0 auto;padding:3em 1.5em 2.5em;text-align:left}footer .footer-brand svg{margin-bottom:.75em}footer .footer-brand .brand-name{margin:0 0 .35em;font-size:1.1em;font-weight:900;color:var(--color-text-inverse)}footer .footer-brand .brand-tagline{margin:0;font-size:.9em;line-height:1.5;color:color-mix(in srgb,var(--color-text-inverse) 65%,transparent);max-width:28ch}footer .footer-column .column-title{margin:0 0 .9em;font-size:.8em;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary-bright)}footer .footer-column ul{margin:0;display:flex;flex-direction:column;gap:.15em}footer .footer-column li{padding:0}footer .footer-column li:hover{background:none}footer .footer-column li a{font-size:.95em;font-weight:600}footer .footer-column a{color:color-mix(in srgb,var(--color-text-inverse) 88%,transparent);transition:.1s}footer .footer-column a:hover{color:var(--color-primary-bright)}footer .footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:.65em}footer .footer-links .contact_link{color:color-mix(in srgb,var(--color-text-inverse) 88%,transparent)}footer .footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5em 2em;max-width:1000px;margin:0 auto;padding:1.25em 1.5em;border-top:1px solid color-mix(in srgb,var(--color-text-inverse) 12%,transparent);font-size:.8em;color:color-mix(in srgb,var(--color-text-inverse) 78%,transparent)}footer .footer-bottom p{margin:0}footer .footer-bottom strong{color:var(--color-primary-bright)}footer .footer-bottom a{color:color-mix(in srgb,var(--color-text-inverse) 88%,transparent)}footer .footer-bottom a:hover{color:var(--color-primary-bright)}@media only screen and (max-width:768px){footer .footer-content{grid-template-columns:1fr;gap:2em;text-align:center}footer .footer-brand .brand-tagline{margin:0 auto}footer .footer-links{align-items:center}footer .footer-bottom{flex-direction:column;text-align:center}}.app-shell[data-v-a3aa31ff]{width:100%;max-width:100%;overflow-x:clip}main[data-v-a3aa31ff]{max-width:min(1300px,100%);width:100%;margin:auto;padding:0;box-sizing:border-box;position:relative}main[data-v-a3aa31ff]:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:calc(100% + 600px);transform:translate(-50%);z-index:-1;pointer-events:none;background-image:radial-gradient(var(--color-dots) 1.5px,transparent 1.5px);background-size:2em 2em;-webkit-mask-image:linear-gradient(to right,transparent 0px,#000000 300px,#000000 calc(100% - 300px),transparent 100%);mask-image:linear-gradient(to right,transparent 0px,#000000 300px,#000000 calc(100% - 300px),transparent 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@media only screen and (max-width:767px){#projectsSection .grid{display:block}#projectsSection .grid .project{margin:1em}}:root{color-scheme:light;--site-rev: 2;--color-bg: #ebebeb;--color-surface: #ffffff;--color-surface-inverse: #353533;--color-glass: rgba(255, 255, 255, .16);--color-glass-sheen: #ffffff;--color-text: #202938;--color-text-muted: #797979;--color-text-inverse: #ffffff;--color-primary: #009087;--color-primary-bright: rgb(0, 209.88, 196.7625);--color-secondary: #005b90;--color-shadow: #35435c;--color-shadow-text: rgba(53, 53, 51, .27);--color-shadow-neu-dark: #c5c5c5;--color-shadow-neu-light: #ffffff;--color-dots: #8280a6;--color-scroll-pill: #35435c;--color-trunk: var(--color-secondary);--color-branch-work: #2b9b62;--color-branch-education: #e8892f}[data-theme=dark]{color-scheme:dark;--color-bg: #131824;--color-surface: #1d2534;--color-surface-inverse: #0b0f17;--color-glass: rgba(255, 255, 255, .08);--color-glass-sheen: #ffffff;--color-text: #e9edf4;--color-text-muted: #98a2b3;--color-text-inverse: #ffffff;--color-primary: #14b8ac;--color-primary-bright: #3ccdc2;--color-secondary: #3e9bd6;--color-shadow: #000000;--color-shadow-text: rgba(0, 0, 0, .35);--color-shadow-neu-dark: #0b0e15;--color-shadow-neu-light: #29334a;--color-dots: #39415a;--color-scroll-pill: #98a2b3;--color-trunk: var(--color-secondary);--color-branch-work: #43b97e;--color-branch-education: #f09a48}@keyframes pillMovement{0%,to{transform:translateY(0)}50%{transform:translateY(-.5em)}}@keyframes scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes scrollBackwards{0%{transform:translate(-50%)}to{transform:translate(0)}}@font-face{font-family:Nunito;src:url(/font/Nunito-VariableFont_wght.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:NunitoItalic;src:url(/font/Nunito-Italic-VariableFont_wght.ttf) format("truetype");font-weight:400;font-style:italic;font-display:swap}::-webkit-scrollbar{width:.5rem}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-secondary);border-radius:3em}::-webkit-scrollbar-thumb:hover{background:var(--color-secondary)}html{scroll-behavior:smooth;overflow-x:clip}html body{font-family:Nunito,sans-serif;padding:0;margin:0;overflow-x:clip;max-width:100%;background:var(--color-bg);color:var(--color-text);text-shadow:1px 1px 1px var(--color-shadow-text)}html body main{min-height:100vh;padding-bottom:1em;padding-top:5em;max-width:100%}html body h1,html body h2{text-shadow:2px 2px 2px var(--color-shadow-text)}a{text-decoration:none;color:var(--color-text);font-weight:700;transition:.1s}a:hover{color:var(--color-secondary)}em{font-weight:700;color:var(--color-primary)}ul{list-style:none;padding:0}p{margin:0}p strong{color:var(--color-secondary)}li{border-radius:3em;padding:.3em;text-shadow:none;transition:.1s}li a{font-size:1.5em}li:hover{background:radial-gradient(color-mix(in srgb,var(--color-primary) 25%,transparent) 0,transparent 75%)}section{display:flex;align-items:center;justify-content:center;flex-direction:column;box-sizing:border-box;width:100%;max-width:100%;padding:1em;margin:auto;min-height:60vh;border-radius:.3em;position:relative;overflow-x:clip}#timelineSection,#skills-section,#contactSection,#aboutSection{display:block;min-height:auto;align-items:stretch;justify-content:flex-start;content-visibility:auto;contain-intrinsic-size:1px 800px}@media only screen and (max-width:1024px){section{padding:.75em}#welcomeSection{padding:.5em}}form{display:flex;align-items:center;justify-content:center;flex-direction:column}form label{width:100%;border:none}form input{width:100%;padding:.5em;margin:.5em;border-radius:.3em;border:none}form input:focus{outline:none}form input[type=checkbox]{width:auto;margin:1em}form button{width:100%;padding:.5em;margin:.5em;border-radius:.3em;border:none;display:flex;align-items:center;justify-content:center;flex-direction:column}form button:focus{outline:none}.grid{display:grid;grid-gap:1em;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}.button{display:inline-block;transition:all .2s ease-in;position:relative;overflow:hidden;z-index:1;color:var(--color-text);padding:.7em 1.7em;cursor:pointer;font-size:18px;border-radius:.5em;background:var(--color-bg);border:1px solid var(--color-bg);box-shadow:6px 6px 12px var(--color-shadow-neu-dark),-6px -6px 12px var(--color-shadow-neu-light)}.button:active{color:var(--color-text-muted);box-shadow:inset 4px 4px 12px var(--color-shadow-neu-dark),inset -4px -4px 12px var(--color-shadow-neu-light)}.button:before{content:"";position:absolute;left:50%;transform:translate(-50%) scaleY(1) scaleX(1.25);top:100%;width:140%;height:180%;background-color:var(--color-shadow-text);border-radius:50%;display:block;transition:all .5s .1s cubic-bezier(.55,0,.1,1);z-index:-1}.button:after{content:"";position:absolute;left:55%;transform:translate(-50%) scaleY(1) scaleX(1.45);top:180%;width:160%;height:190%;background-color:var(--color-primary);border-radius:50%;display:block;transition:all .5s .1s cubic-bezier(.55,0,.1,1);z-index:-1}.button:hover{color:var(--color-text-inverse);border:1px solid var(--color-primary)}.button:hover:before{top:-35%;background-color:var(--color-primary);transform:translate(-50%) scaleY(1.3) scaleX(.8)}.button:hover:after{top:-45%;background-color:var(--color-primary);transform:translate(-50%) scaleY(1.3) scaleX(.8)}.loading{display:flex;align-items:center;justify-content:center;flex-direction:column}.loading span{display:inline-block;width:.5em;height:1em;background-color:color-mix(in srgb,var(--color-surface) 50%,transparent);border-radius:10px;animation:scale-up4 1s linear infinite}.loading span:nth-child(2){height:35px;margin:0 5px;animation-delay:.25s}.loading span:nth-child(3){animation-delay:.5s}@keyframes scale-up4{20%{background-color:var(--color-surface);transform:scaleY(1.5)}40%{transform:scaleY(1)}}
