.toggle-icon--light[data-v-463c0f65]{height:14px;width:14px;position:absolute;top:7px;left:7px;transition:display .6s}.toggle-icon--light path[data-v-463c0f65]{fill:var(--highlight-light)}.toggle-icon--dark[data-v-ffdc2219]{height:14px;width:14px;position:absolute;top:7px;right:7px;transition:display .6s}.toggle-icon--dark path[data-v-ffdc2219]{fill:var(--highlight-dark)}.toggle{position:relative;width:52px;height:28px}.toggle input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:var(--border-light);-webkit-transition:.3s;transition:.3s}.slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;-webkit-transition:.2s;transition:.2s}body.light .slider:before{background-color:var(--background-light)}body.dark .slider:before{background-color:var(--background-dark)}input:checked+.slider{background-color:var(--border-dark)}input:focus+.slider{box-shadow:0 0 1px var(--border-dark)}input:checked+.slider:before{-webkit-transform:translateX(24px);-ms-transform:translateX(24px);transform:translate(24px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}header[data-v-af600f6f]{width:100%;padding:1rem 2rem;box-sizing:border-box;z-index:2}.header-content[data-v-af600f6f]{display:flex;justify-content:space-between;align-items:center;max-width:var(--content-max-width);margin:0 auto}.logo[data-v-af600f6f]{height:2.75rem;width:2.75rem}nav[data-v-af600f6f]{display:flex;align-items:center;gap:1.5rem;margin:0 auto}nav a[data-v-af600f6f]{background-color:transparent;transition:color .1s ease-in,box-shadow .2s ease-in-out}nav a[data-v-af600f6f]{background-image:none}.logo-link[data-v-af600f6f]{background-image:none}body.light nav a[data-v-af600f6f]{font-size:.875rem}body.light nav a.router-link-active[data-v-af600f6f],body.light nav a.router-link-exact-active[data-v-af600f6f]{color:var(--text-dark);box-shadow:inset 100px 0 0 0 var(--highlight-light)}body.light nav a[data-v-af600f6f]{color:var(--text-light);box-shadow:inset 0 0 0 0 var(--highlight-light);margin:0 -.25rem;padding:0 .25rem}body.light nav a[data-v-af600f6f]:hover{color:var(--text-dark);box-shadow:inset 100px 0 0 0 var(--highlight-light)}body.dark nav a[data-v-af600f6f]{font-size:.875rem}body.dark nav a.router-link-active[data-v-af600f6f],body.dark nav a.router-link-exact-active[data-v-af600f6f]{color:var(--text-light);box-shadow:inset 100px 0 0 0 var(--highlight-dark)}body.dark nav a[data-v-af600f6f]{color:var(--text-dark);box-shadow:inset 0 0 0 0 var(--highlight-dark);margin:0 -.25rem;padding:0 .25rem}body.dark nav a[data-v-af600f6f]:hover{color:var(--text-light);box-shadow:inset 100px 0 0 0 var(--highlight-dark)}@media(max-width:600px){.logo[data-v-af600f6f]{height:2.2rem;width:2.2rem}nav[data-v-af600f6f]{gap:1rem}}ul[data-v-7e7bb6e5]{display:flex;flex-wrap:wrap;list-style:none;padding:0}li[data-v-7e7bb6e5]{margin-right:2rem}a[data-v-7e7bb6e5] svg{width:1.5rem;height:1.5rem;transition:fill .1s}body.light a[data-v-7e7bb6e5] svg{fill:var(--text-light)}body.light a[data-v-7e7bb6e5]:hover svg{fill:var(--highlight-light)}body.dark a[data-v-7e7bb6e5] svg{fill:var(--text-dark)}body.dark a[data-v-7e7bb6e5]:hover svg{fill:var(--highlight-dark)}footer[data-v-71419acc]{bottom:0;left:0;right:0;width:100%;padding:1rem 2rem;text-align:left;box-sizing:border-box}.footer-content[data-v-71419acc]{max-width:var(--content-max-width);margin:0 auto;display:flex;justify-content:space-between;align-items:center}.email[data-v-71419acc]{margin:0;font-size:.85rem}body.light .highlight[data-v-71419acc]{color:var(--highlight-light)}body.dark .highlight[data-v-71419acc]{color:var(--highlight-dark)}@media(max-width:768px){.footer-content[data-v-71419acc]{flex-direction:column}.email[data-v-71419acc]{text-align:center}}@font-face{font-family:BNRoute22;src:url(/assets/BNRoute22-C8X8Mcuv.otf) format("opentype");font-weight:400;font-style:normal}body{--background-light: #e8e8e8;--background-dark: #3b3e51;--element-background-light: #f3f3f3;--element-background-dark: #313444;--text-light: #000;--text-dark: #fff;--heading-light: #343890;--heading-dark: #6066e8;--highlight-light: #ff407b;--highlight-dark: #1af1ff;--meta-light: #535353;--meta-lighter: #787878;--meta-dark: #c4c4c4;--meta-darker: #9b9b9b;--border-light: #d0d0d0;--border-dark: #4f4f4f;--shadow-light: #dbd2db;--shadow-dark: #1d292c;--content-max-width: 45rem;min-height:100vh;background-attachment:fixed;margin:0;padding:0;transition:.2s background;transition:.2s background-color}a{position:relative;text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-position:0% 101%;background-repeat:no-repeat;background-size:0% 1px;transition:.2s color ease-in-out;transition:.2s background ease-in-out;transition:background-size .2s}a:hover,a:focus{background-size:100% 1px}h1{font-family:BNRoute22,sans-serif;font-size:3.5rem;line-height:3.75rem;margin-top:0;text-transform:none}h2,h3,h4,h5{font-family:Inter,sans-serif;font-weight:900;letter-spacing:.015em;line-height:1.25em}nav a{font-family:Inter,sans-serif;text-transform:uppercase}pre{overflow-x:scroll}#app{font-family:PT Mono,monospace;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:left;line-height:1.5em}button{font-family:PT Mono,monospace;transition:.2s background-color}body.light{background:var(--background-light)}body.light p,body.light h1,body.light h2,body.light h3,body.light h4,body.light h5,body.light li,body.light button{color:var(--text-light)}body.light a,body.light a:active,body.light a:hover{color:var(--highlight-light)}body.light .logo path{fill:var(--highlight-light)}body.dark{background:var(--background-dark)}body.dark p,body.dark h1,body.dark h2,body.dark h3,body.dark h4,body.dark h5,body.dark li,body.dark button{color:var(--text-dark)}body.dark a,body.dark a:active,body.dark a:hover{color:var(--highlight-dark)}body.dark .logo path{fill:var(--highlight-dark)}main{padding:6rem 2rem;min-height:calc(100vh - 10rem);box-sizing:border-box}@media(max-width:600px){main{padding:3rem 1.5rem}}pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#23241f;color:#f8f8f2}.hljs-tag,.hljs-subst{color:#f8f8f2}.hljs-strong,.hljs-emphasis{color:#a8a8a2}.hljs-bullet,.hljs-quote,.hljs-number,.hljs-regexp,.hljs-literal,.hljs-link{color:#ae81ff}.hljs-code,.hljs-title,.hljs-section,.hljs-selector-class{color:#a6e22e}.hljs-strong{font-weight:700}.hljs-emphasis{font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-name,.hljs-attr{color:#f92672}.hljs-symbol,.hljs-attribute{color:#66d9ef}.hljs-params,.hljs-title.class_,.hljs-class .hljs-title{color:#f8f8f2}.hljs-string,.hljs-type,.hljs-built_in,.hljs-selector-id,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-addition,.hljs-variable,.hljs-template-variable{color:#e6db74}.hljs-comment,.hljs-deletion,.hljs-meta{color:#75715e}.loading-icon{--size: 30px;width:100px;height:100px;position:relative}.loading-icon:after,.loading-icon:before{box-sizing:border-box;position:absolute;content:"";width:var(--size);height:var(--size);top:50%;animation:up 2.4s cubic-bezier(0,0,.24,1.21) infinite;left:50%;background:var(--highlight-light)}.loading-icon:after{background:var(--highlight-dark);top:calc(50% - var(--size));left:calc(50% - var(--size));animation:down 2.4s cubic-bezier(0,0,.24,1.21) infinite}@keyframes down{0%,to{transform:none}25%{transform:translate(100%)}50%{transform:translate(100%) translateY(100%)}75%{transform:translateY(100%)}}@keyframes up{0%,to{transform:none}25%{transform:translate(-100%)}50%{transform:translate(-100%) translateY(-100%)}75%{transform:translateY(-100%)}}.loading[data-v-2b618738]{margin-top:2rem}.blog-post[data-v-2b618738]{text-align:left;display:flex;flex-direction:column;margin:0 auto;max-width:var(--content-max-width);word-break:break-word}.blog-post h1[data-v-2b618738]{margin-bottom:1rem}.blog-post[data-v-2b618738] h2,.blog-post[data-v-2b618738] h3,.blog-post[data-v-2b618738] h4,.blog-post[data-v-2b618738] h5{margin-top:2.5rem}.back[data-v-2b618738]{align-self:flex-start}.content[data-v-2b618738]{margin-top:2rem}.date[data-v-2b618738]{font-size:.8rem;margin:0 0 2rem}body.light .date[data-v-2b618738]{color:var(--meta-light)}body.dark .date[data-v-2b618738]{color:var(--meta-dark)}.blog-post-card[data-v-c2ec6a7c]{box-sizing:border-box;margin-bottom:1.5rem;padding:2rem;border-radius:1rem;transition:transform .1s ease,box-shadow .1s ease}.blog-post-card[data-v-c2ec6a7c]:hover{transform:scale(1.02) translateY(0) translateZ(0)}body.light .blog-post-card[data-v-c2ec6a7c]{background-color:var(--element-background-light);border:1px solid var(--border-light)}body.light .blog-post-card[data-v-c2ec6a7c]:hover{box-shadow:0 .5rem .75rem var(--shadow-light)}body.dark .blog-post-card[data-v-c2ec6a7c]{background-color:var(--element-background-dark);border:1px solid var(--border-dark)}body.dark .blog-post-card[data-v-c2ec6a7c]:hover{box-shadow:0 .5rem .75rem var(--shadow-dark)}.blog-post-card h2[data-v-c2ec6a7c]{margin:.5rem 0}.blog-post-card h2 a[data-v-c2ec6a7c]{color:currentColor}.tags[data-v-c2ec6a7c],.date[data-v-c2ec6a7c]{gap:.5rem}body.light .tags[data-v-c2ec6a7c],body.light .date[data-v-c2ec6a7c]{color:var(--meta-light)}body.dark .tags[data-v-c2ec6a7c],body.dark .date[data-v-c2ec6a7c]{color:var(--meta-dark)}.blog[data-v-47538e99]{display:flex;flex-direction:column;max-width:var(--content-max-width);margin:0 auto;text-align:left}body.light .highlight[data-v-47538e99]{color:var(--highlight-light)}body.dark .highlight[data-v-47538e99]{color:var(--highlight-dark)}.blog-posts[data-v-47538e99]{width:100%}.blog-posts a[data-v-47538e99]{background-image:none}@media only screen and (max-width:768px){.blog[data-v-47538e99]{width:unset}}.timeline[data-v-3486b8f2]{list-style:none;padding:0;margin:0;position:relative}.timeline[data-v-3486b8f2]:before{content:"";position:absolute;left:1.5rem;top:.25rem;bottom:.5rem;width:2px}.timeline-item[data-v-3486b8f2]{position:relative;padding-left:3.75rem;margin-bottom:2rem}.node[data-v-3486b8f2]{position:absolute;left:0;top:0;width:3rem;height:3rem;border-radius:.25rem;display:flex;align-items:center;justify-content:center;transition:box-shadow .1s}body.light .node:hover[data-v-3486b8f2]{box-shadow:0 0 0 3px var(--highlight-light)}body.light .node:hover .node-img[data-v-3486b8f2]{box-shadow:none}body.dark .node:hover[data-v-3486b8f2]{box-shadow:0 0 0 3px var(--highlight-dark)}body.dark .node:hover .node-img[data-v-3486b8f2]{box-shadow:none}.node-img[data-v-3486b8f2]{width:100%;height:100%;object-fit:contain;border-radius:.25rem;box-shadow:0 0 3px 1px #0003;transition:filter .1s}.content h3[data-v-3486b8f2]{margin:0 0 .25rem}.meta[data-v-3486b8f2]{font-size:.8rem}body.light .timeline[data-v-3486b8f2]:before{background-color:var(--border-light)}body.light .node[data-v-3486b8f2]{background-color:var(--highlight-light)}body.light .meta[data-v-3486b8f2]{color:var(--meta-light)}body.light .highlight[data-v-3486b8f2]{color:var(--highlight-light)}body.dark .timeline[data-v-3486b8f2]:before{background-color:var(--border-dark)}body.dark .node[data-v-3486b8f2]{background-color:var(--highlight-dark)}body.dark .meta[data-v-3486b8f2]{color:var(--meta-dark)}body.dark .highlight[data-v-3486b8f2]{color:var(--highlight-dark)}.timeline[data-v-0a3edc7a]{list-style:none;padding:0;margin:0;position:relative}.timeline-item[data-v-0a3edc7a]{position:relative;margin-bottom:2rem}.symbol[data-v-0a3edc7a]{padding-right:.5rem}.content h3[data-v-0a3edc7a]{margin:0 0 .25rem}.content p[data-v-0a3edc7a]{margin:.25rem 0 0}.meta[data-v-0a3edc7a]{font-size:.8rem;margin-bottom:.5rem}body.light .meta[data-v-0a3edc7a]{color:var(--meta-lighter)}body.light .meta .date[data-v-0a3edc7a]{color:var(--meta-light)}body.dark .meta[data-v-0a3edc7a]{color:var(--meta-darker)}body.dark .meta .date[data-v-0a3edc7a]{color:var(--meta-dark)}.skill-chart[data-v-17ac1f19]{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}.skill-row[data-v-17ac1f19]{display:grid;grid-template-columns:8rem 1fr 3rem;align-items:center;gap:.75rem;position:relative}.skill-label[data-v-17ac1f19]{font-family:PT Mono,monospace;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-bar-track[data-v-17ac1f19]{position:relative;height:1rem;border-radius:.25rem;overflow:visible}.skill-bar-fill[data-v-17ac1f19]{height:100%;border-radius:.25rem;transition:width .4s ease}.skill-pct[data-v-17ac1f19]{font-family:PT Mono,monospace;font-size:.8rem;text-align:right}.skill-tooltip[data-v-17ac1f19]{position:absolute;bottom:calc(100% + .5rem);left:50%;transform:translate(-50%);white-space:nowrap;font-family:PT Mono,monospace;font-size:.75rem;padding:.4rem .65rem;border-radius:.25rem;pointer-events:none;z-index:10}body.light .skill-bar-track[data-v-17ac1f19]{background-color:var(--border-light)}body.light .skill-bar-fill[data-v-17ac1f19]{background-color:var(--highlight-light)}body.light .skill-pct[data-v-17ac1f19],body.light .skill-label[data-v-17ac1f19]{color:var(--text-light)}body.light .skill-tooltip[data-v-17ac1f19]{background-color:var(--text-light);color:var(--background-light)}body.dark .skill-bar-track[data-v-17ac1f19]{background-color:var(--border-dark)}body.dark .skill-bar-fill[data-v-17ac1f19]{background-color:var(--highlight-dark)}body.dark .skill-pct[data-v-17ac1f19],body.dark .skill-label[data-v-17ac1f19]{color:var(--text-dark)}body.dark .skill-tooltip[data-v-17ac1f19]{background-color:var(--text-dark);color:var(--background-dark)}@media(max-width:768px){.skill-tooltip[data-v-17ac1f19]{white-space:normal;max-width:min(16rem,calc(100vw - 2rem));width:max-content}}.anchor-heading[data-v-2692eb48]{position:relative}.anchor-btn[data-v-2692eb48]{position:absolute;right:100%;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-family:PT Mono,monospace;font-size:1.4rem;padding:0 .5rem;opacity:0;transition:opacity .15s ease,color .15s ease}.anchor-btn.visible[data-v-2692eb48]{opacity:1}.anchor-btn.fading[data-v-2692eb48]{opacity:0}body.light .anchor-btn[data-v-2692eb48]{color:var(--highlight-light)}body.dark .anchor-btn[data-v-2692eb48]{color:var(--highlight-dark)}@media(max-width:768px){.anchor-btn[data-v-2692eb48]{display:none}}.cv[data-v-bd840291]{max-width:var(--content-max-width);margin:0 auto}body.light .highlight[data-v-bd840291]{color:var(--highlight-light)}body.dark .highlight[data-v-bd840291]{color:var(--highlight-dark)}.intro[data-v-bd840291],.work-experience[data-v-bd840291],.skills[data-v-bd840291]{margin-bottom:4rem}.banner[data-v-bd840291]{width:100%;height:300px;object-fit:cover;filter:grayscale(100%)}.more[data-v-bd840291] svg{width:1em;height:1em;fill:currentColor}.home[data-v-d3d0f579]{max-width:var(--content-max-width);margin:0 auto;display:flex;align-items:center;gap:3rem}body.light .highlight[data-v-d3d0f579]{color:var(--highlight-light)}body.dark .highlight[data-v-d3d0f579]{color:var(--highlight-dark)}.profile-picture[data-v-d3d0f579]{width:15rem;height:15rem;flex-shrink:0;color:transparent}@media(max-width:768px){h1[data-v-d3d0f579]{font-size:4rem}.home[data-v-d3d0f579]{flex-direction:column;align-items:center}.profile-picture[data-v-d3d0f579]{width:90%;max-width:22rem;height:auto}}
