.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-da51c64e]{width:1em;height:1em;display:block}.contact_link[data-v-4a2fbc93]{color:var(--color-text);justify-content:center;align-items:center;font-size:2em;display:inline-flex}.contact_link[data-v-4a2fbc93]:hover,.contact_link[data-v-4a2fbc93]:focus{color:var(--color-primary)}.contact_link .contact_label[data-v-4a2fbc93]{vertical-align:middle;margin-left:.4em;font-size:.5em}.sr-only[data-v-4a2fbc93]{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@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;transition:all .3s;position:fixed;top:0;left:0;right:0}#navigation-bar nav[data-v-2d9496f2]{box-sizing:border-box;align-items:center;width:100%;max-width:min(1300px,100%);transition:all .3s;display:flex}#navigation-bar nav .left-corner[data-v-2d9496f2]{flex-direction:row;margin-top:-.5em;display:flex}#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);stroke-width:1.2px;height:2.2rem;padding:.4em}#navigation-bar nav .nav-content[data-v-2d9496f2]{border-radius:2em;flex-wrap:wrap;justify-content:center;min-width:0;display:flex}#navigation-bar nav .nav-content .router-link[data-v-2d9496f2]{white-space:nowrap;border-radius:2em;margin:.5em;padding:.5em 1em;transition:all .3s ease-in-out}#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 0px var(--color-shadow-neu-light), 4px 2px 16px 0px 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]{background:var(--color-text);border-radius:3em;height:.25em;position:fixed;bottom:0;left:0}#navigation-bar nav .right-corner[data-v-2d9496f2]{text-align:centre;flex-direction:row;gap:.5em;display:flex}#navigation-bar nav .right-corner div[data-v-2d9496f2]{padding:.5em}#navigation-bar nav #expand-notification[data-v-2d9496f2]{cursor:pointer;transition:right .1s;position:fixed;top:.5em;right:1em}#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:2px;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.42px}#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 (width>=1024px){#navigation-bar nav[data-v-2d9496f2]{border-radius:.3em;flex-wrap:wrap;justify-content:space-between;gap:.35rem;margin:0 auto;padding:0 .5rem}#navigation-bar nav .nav-content[data-v-2d9496f2]{background-color:var(--color-glass);background-image:linear-gradient(135deg, color-mix(in srgb, var(--color-glass-sheen) 30%, transparent) 0%, color-mix(in srgb, var(--color-glass-sheen) 5%, transparent) 45%, color-mix(in srgb, var(--color-glass-sheen) 15%, transparent) 100%);-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);flex-direction:row;flex:none;align-items:center;width:fit-content;max-width:none;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]{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) 0%, color-mix(in srgb, var(--color-glass-sheen) 5%, transparent) 45%, color-mix(in srgb, var(--color-glass-sheen) 15%, transparent) 100%);-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;padding:0 1em}#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 (width<=1023px){#navigation-bar nav[data-v-2d9496f2]{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) 0%, color-mix(in srgb, var(--color-glass-sheen) 5%, transparent) 45%, color-mix(in srgb, var(--color-glass-sheen) 15%, transparent) 100%);-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);flex-direction:column;overflow:hidden}#navigation-bar nav .left-corner[data-v-2d9496f2]{text-align:start;flex-direction:row;width:100%;display:flex}#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{background:var(--color-surface-inverse);color:color-mix(in srgb, var(--color-text-inverse) 92%, transparent);box-sizing:border-box;width:100%;max-width:100%;position:relative;overflow-x:clip}footer:before{content:"";background:linear-gradient(to right, var(--color-primary), var(--color-secondary));height:3px;display:block}footer .footer-content{text-align:left;grid-template-columns:1.5fr 1fr 1fr;gap:2.5em;max-width:1000px;margin:0 auto;padding:3em 1.5em 2.5em;display:grid}footer .footer-brand svg{margin-bottom:.75em}footer .footer-brand .brand-name{color:var(--color-text-inverse);margin:0 0 .35em;font-size:1.1em;font-weight:900}footer .footer-brand .brand-tagline{color:color-mix(in srgb, var(--color-text-inverse) 65%, transparent);max-width:28ch;margin:0;font-size:.9em;line-height:1.5}footer .footer-column .column-title{letter-spacing:.14em;text-transform:uppercase;color:var(--color-primary-bright);margin:0 0 .9em;font-size:.8em;font-weight:900}footer .footer-column ul{flex-direction:column;gap:.15em;margin:0;display:flex}footer .footer-column li{padding:0}footer .footer-column li:hover{background:0 0}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:all .1s}footer .footer-column a:hover{color:var(--color-primary-bright)}footer .footer-links{flex-direction:column;align-items:flex-start;gap:.65em;display:flex}footer .footer-links .contact_link{color:color-mix(in srgb, var(--color-text-inverse) 88%, transparent)}footer .footer-bottom{border-top:1px solid color-mix(in srgb, var(--color-text-inverse) 12%, transparent);max-width:1000px;color:color-mix(in srgb, var(--color-text-inverse) 78%, transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5em 2em;margin:0 auto;padding:1.25em 1.5em;font-size:.8em;display:flex}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 (width<=768px){footer .footer-content{text-align:center;grid-template-columns:1fr;gap:2em}footer .footer-brand .brand-tagline{margin:0 auto}footer .footer-links{align-items:center}footer .footer-bottom{text-align:center;flex-direction:column}}.app-shell[data-v-a3aa31ff]{width:100%;max-width:100%;overflow-x:clip}main[data-v-a3aa31ff]{box-sizing:border-box;width:100%;max-width:min(1300px,100%);margin:auto;padding:0;position:relative}main[data-v-a3aa31ff]:before{content:"";z-index:-1;pointer-events:none;background-image:radial-gradient(var(--color-dots) 1.5px, transparent 1.5px);background-size:2em 2em;width:calc(100% + 600px);position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(90deg,#0000 0,#000 300px calc(100% - 300px),#0000 100%);mask-image:linear-gradient(90deg,#0000 0,#000 300px calc(100% - 300px),#0000 100%);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@media only screen and (width<=767px){#projectsSection .grid{display:block}#projectsSection .grid .project{margin:1em}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--site-rev:2;--color-bg:#ebebeb;--color-surface:#fff;--color-surface-inverse:#353533;--color-glass:#ffffff29;--color-glass-sheen:#fff;--color-text:#202938;--color-text-muted:#797979;--color-text-inverse:#fff;--color-primary:#009087;--color-primary-bright:#00d2c5;--color-secondary:#005b90;--color-shadow:#35435c;--color-shadow-text:#35353345;--color-shadow-neu-dark:#c5c5c5;--color-shadow-neu-light:#fff;--color-dots:#8280a6;--color-scroll-pill:#35435c;--color-trunk:var(--color-secondary);--color-branch-work:#2b9b62;--color-branch-education:#e8892f}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#131824;--color-surface:#1d2534;--color-surface-inverse:#0b0f17;--color-glass:#ffffff14;--color-glass-sheen:#fff;--color-text:#e9edf4;--color-text-muted:#98a2b3;--color-text-inverse:#fff;--color-primary:#14b8ac;--color-primary-bright:#3ccdc2;--color-secondary:#3e9bd6;--color-shadow:#000;--color-shadow-text:#00000059;--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{background:var(--color-bg);max-width:100%;color:var(--color-text);text-shadow:1px 1px 1px var(--color-shadow-text);margin:0;padding:0;font-family:Nunito,sans-serif;overflow-x:clip}html body main{max-width:100%;min-height:100vh;padding-top:5em;padding-bottom:1em}html body h1,html body h2{text-shadow:2px 2px 2px var(--color-shadow-text)}a{color:var(--color-text);font-weight:700;text-decoration:none;transition:all .1s}a:hover{color:var(--color-secondary)}em{color:var(--color-primary);font-weight:700}ul{padding:0;list-style:none}p{margin:0}p strong{color:var(--color-secondary)}li{text-shadow:none;border-radius:3em;padding:.3em;transition:all .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{box-sizing:border-box;border-radius:.3em;flex-direction:column;justify-content:center;align-items:center;width:100%;max-width:100%;min-height:60vh;margin:auto;padding:1em;display:flex;position:relative;overflow-x:clip}#timelineSection,#skills-section,#timelineSection,#contactSection,#aboutSection{content-visibility:auto;contain-intrinsic-size:1px 800px;justify-content:flex-start;align-items:stretch;min-height:auto;display:block}@media only screen and (width<=1024px){section{padding:.75em}#welcomeSection{padding:.5em}}form{flex-direction:column;justify-content:center;align-items:center;display:flex}form label{border:none;width:100%}form input{border:none;border-radius:.3em;width:100%;margin:.5em;padding:.5em}form input:focus{outline:none}form input[type=checkbox]{width:auto;margin:1em}form button{border:none;border-radius:.3em;flex-direction:column;justify-content:center;align-items:center;width:100%;margin:.5em;padding:.5em;display:flex}form button:focus{outline:none}.grid{grid-gap:1em;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);display:grid}.button{z-index:1;color:var(--color-text);cursor:pointer;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);border-radius:.5em;padding:.7em 1.7em;font-size:18px;transition:all .2s ease-in;display:inline-block;position:relative;overflow:hidden}.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:"";background-color:var(--color-shadow-text);z-index:-1;border-radius:50%;width:140%;height:180%;transition:all .5s cubic-bezier(.55,0,.1,1) .1s;display:block;position:absolute;top:100%;left:50%;transform:translate(-50%)scaleY(1)scaleX(1.25)}.button:after{content:"";background-color:var(--color-primary);z-index:-1;border-radius:50%;width:160%;height:190%;transition:all .5s cubic-bezier(.55,0,.1,1) .1s;display:block;position:absolute;top:180%;left:55%;transform:translate(-50%)scaleY(1)scaleX(1.45)}.button:hover{color:var(--color-text-inverse);border:1px solid var(--color-primary)}.button:hover:before{background-color:var(--color-primary);top:-35%;transform:translate(-50%)scaleY(1.3)scaleX(.8)}.button:hover:after{background-color:var(--color-primary);top:-45%;transform:translate(-50%)scaleY(1.3)scaleX(.8)}.loading{flex-direction:column;justify-content:center;align-items:center;display:flex}.loading span{background-color:color-mix(in srgb, var(--color-surface) 50%, transparent);border-radius:10px;width:.5em;height:1em;animation:1s linear infinite scale-up4;display:inline-block}.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)}}
